
FUNCTION 0xdb86f0
00db86f0 push esi
00db86f1 push edi
00db86f2 mov edi, edx
00db86f4 mov esi, ecx
00db86f6 call 0xda3620
00db86fb mov eax, dword ptr [eax + 0x3094]
00db8701 mov eax, dword ptr [eax + 8]
00db8704 push eax
00db8705 mov edx, edi
00db8707 mov ecx, esi
00db8709 call 0xdb8650
00db870e mov ecx, dword ptr [esp + 0x18]
00db8712 mov edx, dword ptr [esp + 0x14]
00db8716 push ecx
00db8717 mov ecx, dword ptr [esp + 0x14]
00db871b push edx
00db871c mov edx, dword ptr [esp + 0x14]
00db8720 push ecx
00db8721 push edx
00db8722 mov edx, eax
00db8724 mov ecx, esi
00db8726 call 0xdb59f0
00db872b pop edi
00db872c pop esi
00db872d ret 0x10
00db8730 push ebx
00db8731 mov ebx, esp
00db8733 sub esp, 8
00db8736 and esp, 0xfffffff0
00db8739 add esp, 4
00db873c push ebp
00db873d mov ebp, dword ptr [ebx + 4]
00db8740 mov dword ptr [esp + 4], ebp
00db8744 mov ebp, esp
00db8746 sub esp, 0x58
00db8749 push esi
00db874a push edi
00db874b call 0xda3620
00db8750 cmp dword ptr [eax], 0
00db8753 jle 0xdb8a56
00db8759 mov eax, dword ptr [ebx + 0xc]
00db875c mov edi, dword ptr [eax + 0xc]
00db875f shl edi, 6
00db8762 lea eax, [edi + 0x5f]
00db8765 mov ecx, eax
00db8767 and ecx, 0xf
00db876a sub eax, ecx
00db876c call 0xe23210
00db8771 lea eax, [esp + 0xf]
00db8775 mov edx, eax
00db8777 and edx, 0xf
00db877a sub eax, edx
00db877c push edi
00db877d mov edi, dword ptr [ebx + 0xc]
00db8780 mov edx, dword ptr [edi + 0x10]
00db8783 mov esi, eax
00db8785 mov ecx, esi
00db8787 call 0xd958b0
00db878c mov dword ptr [ebp - 0x14], 0
00db8793 call 0xda3620
00db8798 cmp dword ptr [eax + 0x21d34], 0
00db879f jne 0xdb87aa
00db87a1 mov dword ptr [ebp - 8], 0xffffffff
00db87a8 jmp 0xdb87b8
00db87aa call 0xda3620
00db87af mov eax, dword ptr [eax + 0x21e28]
00db87b5 mov dword ptr [ebp - 8], eax
00db87b8 cmp dword ptr [edi + 0xc], 0
00db87bc mov dword ptr [ebp - 0x18], 0
00db87c3 jle 0xdb8a4d
00db87c9 lea eax, [esi + 0xc]
00db87cc mov dword ptr [ebp - 0x28], eax
00db87cf mov dword ptr [ebp - 4], eax
00db87d2 mov eax, 0xfffffff4
00db87d7 sub eax, esi
00db87d9 mov dword ptr [ebp - 0x20], eax
00db87dc lea esp, [esp]
00db87e0 mov edi, dword ptr [ebp - 0x20]
00db87e3 add edi, dword ptr [ebp - 4]
00db87e6 mov eax, dword ptr [ebx + 0xc]
00db87e9 add edi, dword ptr [eax + 0x10]
00db87ec mov eax, dword ptr [edi + 8]
00db87ef mov ecx, eax
00db87f1 and cl, 7
00db87f4 cmp cl, 1
00db87f7 jne 0xdb8a30
00db87fd mov ecx, dword ptr [edi + 0xc]
00db8800 and ecx, 0xff
00db8806 lea edx, [ecx - 5]
00db8809 mov dword ptr [ebp - 0x1c], edx
00db880c cmp edx, 0xb
00db880f ja 0xdb8a30
00db8815 jmp dword ptr [edx*4 + 0xdb8ee0]
00db881c mov esi, 1
00db8821 jmp 0xdb8860
00db8823 mov esi, 2
00db8828 jmp 0xdb8860
00db882a mov esi, 4
00db882f jmp 0xdb8860
00db8831 mov esi, 8
00db8836 jmp 0xdb8860
00db8838 mov esi, 0x10
00db883d jmp 0xdb8860
00db883f mov esi, 0x20
00db8844 jmp 0xdb8860
00db8846 mov esi, 0x40
00db884b jmp 0xdb8860
00db884d mov esi, 0x80
00db8852 jmp 0xdb8860
00db8854 mov esi, 0x100
00db8859 jmp 0xdb8860
00db885b mov esi, 0x200
00db8860 test dword ptr [ebp - 8], esi
00db8863 jne 0xdb8a30
00db8869 mov edx, eax
00db886b shr edx, 6
00db886e and edx, 1
00db8871 je 0xdb88bd
00db8873 cmp ecx, 9
00db8876 je 0xdb887d
00db8878 cmp ecx, 0xa
00db887b jne 0xdb88bd
00db887d movaps xmm0, xmmword ptr [0xfd1720]
00db8884 mulps xmm0, xmmword ptr [edi + 0x20]
00db8888 xor eax, eax
00db888a cmp ecx, 9
00db888d setne al
00db8890 movaps xmmword ptr [edi + 0x20], xmm0
00db8894 movaps xmm0, xmmword ptr [0xfd1700]
00db889b mulps xmm0, xmmword ptr [edi + 0x30]
00db889f movaps xmmword ptr [edi + 0x30], xmm0
00db88a3 lea ecx, [eax + 6]
00db88a6 mov eax, dword ptr [edi + 0xc]
00db88a9 and eax, 0xffffff00
00db88ae or eax, ecx
00db88b0 mov ecx, dword ptr [ebp - 4]
00db88b3 mov dword ptr [edi + 0xc], eax
00db88b6 mov dword ptr [ecx], eax
00db88b8 jmp 0xdb8a30
00db88bd test edx, edx
00db88bf je 0xdb8906
00db88c1 cmp ecx, 8
00db88c4 jne 0xdb894a
00db88ca test byte ptr [ebp - 8], 1
00db88ce je 0xdb890b
00db88d0 movaps xmm0, xmmword ptr [0xfd1730]
00db88d7 mulps xmm0, xmmword ptr [edi + 0x20]
00db88db mov edx, dword ptr [ebp - 4]
00db88de movaps xmmword ptr [edi + 0x20], xmm0
00db88e2 movaps xmm0, xmmword ptr [0xfd1740]
00db88e9 mulps xmm0, xmmword ptr [edi + 0x30]
00db88ed movaps xmmword ptr [edi + 0x30], xmm0
00db88f1 mov eax, dword ptr [edi + 0xc]
00db88f4 and eax, 0xffffff05
00db88f9 or eax, 5
00db88fc mov dword ptr [edi + 0xc], eax
00db88ff mov dword ptr [edx], eax
00db8901 jmp 0xdb8a30
00db8906 cmp ecx, 8
00db8909 jne 0xdb894a
00db890b movzx ecx, byte ptr [edi + 0xa]
00db890f mov edx, dword ptr [ebx + 8]
00db8912 mov edx, dword ptr [edx + 0xc]
00db8915 lea ecx, [ecx + ecx*8]
00db8918 mov esi, dword ptr [edx + ecx*8 + 8]
00db891c shr eax, 7
00db891f lea edx, [edx + ecx*8]
00db8922 mov ecx, dword ptr [edx + 0xc]
00db8925 and eax, 0x1ff
00db892a add eax, dword ptr [edx + 0x10]
00db892d call 0xdb7970
00db8932 mov eax, dword ptr [edi + 0xc]
00db8935 mov ecx, dword ptr [ebp - 4]
00db8938 and eax, 0xffffff04
00db893d or eax, 4
00db8940 mov dword ptr [edi + 0xc], eax
00db8943 mov dword ptr [ecx], eax
00db8945 jmp 0xdb8a30
00db894a movzx esi, byte ptr [edi + 0xa]
00db894e lea edx, [esi + esi*8]
00db8951 mov esi, dword ptr [ebx + 8]
00db8954 mov esi, dword ptr [esi + 0xc]
00db8957 lea esi, [esi + edx*8]
00db895a mov edx, dword ptr [esi]
00db895c test dl, 4
00db895f je 0xdb8972
00db8961 test dl, 8
00db8964 jne 0xdb8972
00db8966 cmp dword ptr [esi + 0x10], 0
00db896a je 0xdb8972
00db896c cmp dword ptr [esi + 0xc], 0
00db8970 jg 0xdb89e7
00db8972 mov eax, dword ptr [ebp - 0x1c]
00db8975 cmp eax, 7
00db8978 ja 0xdb89d8
00db897a jmp dword ptr [eax*4 + 0xdb8f10]
00db8981 test byte ptr [ebp - 8], 2
00db8985 mov eax, dword ptr [edi + 0xc]
00db8988 mov ecx, 0
00db898d setne cl
00db8990 and eax, 0xffffff00
00db8995 lea ecx, [ecx*4 + 4]
00db899c or eax, ecx
00db899e mov dword ptr [edi + 0xc], eax
00db89a1 jmp 0xdb8a30
00db89a6 movzx ecx, byte ptr [ebp - 8]
00db89aa mov eax, dword ptr [edi + 0xc]
00db89ad and ecx, 1
00db89b0 or ecx, 4
00db89b3 and eax, 0xffffff00
00db89b8 or eax, ecx
00db89ba mov dword ptr [edi + 0xc], eax
00db89bd jmp 0xdb8a30
00db89bf mov eax, dword ptr [edi + 0xc]
00db89c2 mov ecx, 6
00db89c7 and eax, 0xffffff00
00db89cc or eax, ecx
00db89ce mov dword ptr [edi + 0xc], eax
00db89d1 jmp 0xdb8a30
00db89d3 mov ecx, 7
00db89d8 mov eax, dword ptr [edi + 0xc]
00db89db and eax, 0xffffff00
00db89e0 or eax, ecx
00db89e2 mov dword ptr [edi + 0xc], eax
00db89e5 jmp 0xdb8a30
00db89e7 mov ecx, dword ptr [ebp - 0x1c]
00db89ea jmp dword ptr [ecx*4 + 0xdb8f30]
00db89f1 mov ecx, 4
00db89f6 jmp 0xdb8a17
00db89f8 mov ecx, 1
00db89fd jmp 0xdb8a17
00db89ff mov ecx, 3
00db8a04 jmp 0xdb8a17
00db8a06 movzx ecx, byte ptr [ebp - 8]
00db8a0a and ecx, 8
00db8a0d or ecx, 2
00db8a10 jmp 0xdb8a17
00db8a12 mov ecx, 7
00db8a17 mov edx, dword ptr [edi + 0xc]
00db8a1a and edx, 0xffffff00
00db8a20 or edx, ecx
00db8a22 or eax, 0xff80
00db8a27 inc dword ptr [ebp - 0x14]
00db8a2a mov dword ptr [edi + 0xc], edx
00db8a2d mov dword ptr [edi + 8], eax
00db8a30 mov eax, dword ptr [ebp - 0x18]
00db8a33 mov ecx, dword ptr [ebx + 0xc]
00db8a36 add dword ptr [ebp - 4], 0x40
00db8a3a inc eax
00db8a3b mov dword ptr [ebp - 0x18], eax
00db8a3e cmp eax, dword ptr [ecx + 0xc]
00db8a41 jl 0xdb87e0
00db8a47 cmp dword ptr [ebp - 0x14], 0
00db8a4b jg 0xdb8a6c
00db8a4d mov edx, dword ptr [ebx + 0xc]
00db8a50 mov dword ptr [edx], 0
00db8a56 mov ecx, dword ptr [ebx + 8]
00db8a59 call 0xdf3d00
00db8a5e lea esp, [ebp - 0x60]
00db8a61 pop edi
00db8a62 pop esi
00db8a63 mov esp, ebp
00db8a65 pop ebp
00db8a66 mov esp, ebx
00db8a68 pop ebx
00db8a69 ret 8
00db8a6c mov eax, dword ptr [ebx + 8]
00db8a6f mov esi, dword ptr [eax + 8]
00db8a72 and esi, 0xffff
00db8a78 mov ecx, 4
00db8a7d jle 0xdb8a94
00db8a7f mov eax, dword ptr [eax + 0xc]
00db8a82 add eax, 8
00db8a85 mov edi, esi
00db8a87 mov edx, dword ptr [eax]
00db8a89 cmp ecx, edx
00db8a8b cmovle ecx, edx
00db8a8e add eax, 0x48
00db8a91 dec edi
00db8a92 jne 0xdb8a87
00db8a94 lea eax, [ecx*4]
00db8a9b mov dword ptr [ebp - 0xc], eax
00db8a9e add eax, 0x10
00db8aa1 mov ecx, eax
00db8aa3 and ecx, 0xf
00db8aa6 sub eax, ecx
00db8aa8 call 0xe23210
00db8aad xor edx, edx
00db8aaf mov dword ptr [ebp - 4], esp
00db8ab2 mov dword ptr [ebp - 0x10], edx
00db8ab5 cmp esi, edx
00db8ab7 jle 0xdb8c70
00db8abd mov dword ptr [ebp - 0x1c], edx
00db8ac0 mov eax, dword ptr [ebx + 8]
00db8ac3 mov eax, dword ptr [eax + 0xc]
00db8ac6 add eax, dword ptr [ebp - 0x1c]
00db8ac9 mov ecx, dword ptr [eax]
00db8acb test cl, 4
00db8ace je 0xdb8c51
00db8ad4 test cl, 8
00db8ad7 jne 0xdb8c51
00db8add cmp dword ptr [eax + 0x10], edx
00db8ae0 je 0xdb8c51
00db8ae6 cmp dword ptr [eax + 0xc], edx
00db8ae9 jle 0xdb8c51

FUNCTION 0xdc0a90
00dc0a90 push esi
00dc0a91 mov esi, ecx
00dc0a93 mov eax, dword ptr [esi + 0xc]
00dc0a96 mov dword ptr [esi], 0xfd19cc
00dc0a9c test eax, eax
00dc0a9e jle 0xdc0acf
00dc0aa0 mov eax, dword ptr [esi + 0x14]
00dc0aa3 mov eax, dword ptr [eax + 0x78]
00dc0aa6 sub eax, 0
00dc0aa9 je 0xdc0ac1
00dc0aab call 0xdc05f0
00dc0ab0 mov edx, dword ptr [esi]
00dc0ab2 mov eax, dword ptr [edx + 8]
00dc0ab5 mov ecx, esi
00dc0ab7 call eax
00dc0ab9 mov ecx, esi
00dc0abb pop esi
00dc0abc jmp 0xdbbe80
00dc0ac1 call 0xdc0470
00dc0ac6 mov edx, dword ptr [esi]
00dc0ac8 mov eax, dword ptr [edx + 8]
00dc0acb mov ecx, esi
00dc0acd call eax
00dc0acf mov ecx, esi
00dc0ad1 pop esi
00dc0ad2 jmp 0xdbbe80

FUNCTION 0xdc0470
00dc0470 sub esp, 0xc
00dc0473 xorps xmm1, xmm1
00dc0476 push ebx
00dc0477 mov ebx, ecx
00dc0479 mov eax, dword ptr [ebx + 0x14]
00dc047c movss xmm0, dword ptr [eax + 0x64]
00dc0481 subss xmm0, dword ptr [eax + 0x10]
00dc0486 comiss xmm1, xmm0
00dc0489 movss dword ptr [esp + 8], xmm0
00dc048f jae 0xdc05b1
00dc0495 mov eax, dword ptr [ebx]
00dc0497 mov edx, dword ptr [eax + 0x10]
00dc049a push edi
00dc049b call edx
00dc049d mov edi, eax
00dc049f mov eax, dword ptr [ebx + 0xc]
00dc04a2 lea ecx, [esp + 0x10]
00dc04a6 push ecx
00dc04a7 push eax
00dc04a8 mov edx, edi
00dc04aa mov ecx, ebx
00dc04ac mov dword ptr [esp + 0x18], 0
00dc04b4 call 0xdc0010
00dc04b9 fstp dword ptr [esp + 8]
00dc04bd mov ecx, dword ptr [ebx + 0x14]
00dc04c0 cmp dword ptr [ecx + 0xa4], 0
00dc04c7 je 0xdc04e1
00dc04c9 mov ebx, ecx
00dc04cb movss xmm0, dword ptr [ebx + 0x10]
00dc04d0 addss xmm0, dword ptr [esp + 8]
00dc04d6 pop edi
00dc04d7 movss dword ptr [ebx + 0x10], xmm0
00dc04dc pop ebx
00dc04dd add esp, 0xc
00dc04e0 ret 
00dc04e1 movss xmm2, dword ptr [esp + 8]
00dc04e7 xorps xmm0, xmm0
00dc04ea comiss xmm0, xmm2
00dc04ed jae 0xdc05b0
00dc04f3 movss xmm3, dword ptr [esp + 0xc]
00dc04f9 movss xmm1, dword ptr [0xec6e14]
00dc0501 movaps xmm0, xmm3
00dc0504 divss xmm0, xmm2
00dc0508 comiss xmm0, xmm1
00dc050b jbe 0xdc0510
00dc050d movaps xmm0, xmm1
00dc0510 movss xmm1, dword ptr [ecx + 0x7c]
00dc0515 comiss xmm1, xmm0
00dc0518 push esi
00dc0519 jbe 0xdc058d
00dc051b mov esi, dword ptr [ebx + 0xc]
00dc051e mulss xmm1, xmm2
00dc0522 comiss xmm1, xmm3
00dc0525 jbe 0xdc058d
00dc0527 jmp 0xdc0530
00dc0529 lea esp, [esp]
00dc0530 movzx eax, word ptr [ecx + 0xa0]
00dc0537 dec esi
00dc0538 cmp word ptr [edi + esi*2], ax
00dc053c jne 0xdc054e
00dc053e dec esi
00dc053f test esi, esi
00dc0541 jle 0xdc0550
00dc0543 cmp word ptr [edi + esi*2], ax
00dc0547 je 0xdc054e
00dc0549 dec esi
00dc054a test esi, esi
00dc054c jg 0xdc0543
00dc054e test esi, esi
00dc0550 js 0xdc05b6
00dc0552 lea ecx, [esp + 0x14]
00dc0556 push ecx
00dc0557 lea edx, [esi + 1]
00dc055a push edx
00dc055b mov edx, edi
00dc055d mov ecx, ebx
00dc055f mov dword ptr [edi + esi*2], 0x2026
00dc0566 call 0xdc0010
00dc056b fst dword ptr [esp + 0xc]
00dc056f mov ecx, dword ptr [ebx + 0x14]
00dc0572 fmul dword ptr [ecx + 0x7c]
00dc0575 movss xmm3, dword ptr [esp + 0x10]
00dc057b fld dword ptr [esp + 0x10]
00dc057f fxch st(1)
00dc0581 fcompi st(1)
00dc0583 fstp st(0)
00dc0585 ja 0xdc0530
00dc0587 movss xmm2, dword ptr [esp + 0xc]
00dc058d mov edx, dword ptr [esp + 0x14]
00dc0591 mov eax, dword ptr [ebx + 0xc]
00dc0594 push edx
00dc0595 sub esp, 8
00dc0598 movss dword ptr [esp + 4], xmm3
00dc059e movss dword ptr [esp], xmm2
00dc05a3 push eax
00dc05a4 mov edx, edi
00dc05a6 mov ecx, ebx
00dc05a8 call 0xdbff40
00dc05ad fstp st(0)
00dc05af pop esi
00dc05b0 pop edi
00dc05b1 pop ebx
00dc05b2 add esp, 0xc
00dc05b5 ret 
00dc05b6 push 0
00dc05b8 sub esp, 8
00dc05bb movss dword ptr [esp + 4], xmm3
00dc05c1 movss dword ptr [esp], xmm3
00dc05c6 push 1
00dc05c8 lea edx, [esp + 0x24]
00dc05cc mov ecx, ebx
00dc05ce mov dword ptr [esp + 0x24], 0x2026
00dc05d6 call 0xdbff40
00dc05db fstp st(0)
00dc05dd pop esi
00dc05de pop edi
00dc05df pop ebx
00dc05e0 add esp, 0xc
00dc05e3 ret 
00dc05f0 sub esp, 0x28
00dc05f3 xorps xmm1, xmm1
00dc05f6 push ebx
00dc05f7 mov ebx, ecx
00dc05f9 mov eax, dword ptr [ebx + 0x14]
