Function at 0x638860
Capabilities:
Resolve function by parsing pe exports

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff0
sub esp, 0x264
cmp dword [0x786358], 0
push ebx
push esi
push edi
je 0x639759
mov eax, dword [0x9cdd20]
mov dword [esp + 0x60], eax
call fcn.004062f0
fldz
xorps xmm1, xmm1
mov ecx, eax
test ecx, ecx
je 0x638956
mov esi, dword [esp + 0x60]
jmp 0x6388a5
xorps xmm1, xmm1
fldz
cmp dword [ecx + 0x14], 0
mov edx, dword [ecx]
je 0x63893b
mov eax, dword [ecx + 8]
fild dword [ecx + 8]
test eax, eax
jge 0x6388c1
fadd dword [0x6f9a18]
fstp dword [edx]
mov eax, dword [ecx + 0xc]
test eax, eax
fild dword [ecx + 0xc]
jge 0x6388d3
fadd dword [0x6f9a18]
fstp dword [esp + 0x1c]
fld dword [esp + 0x1c]
fst dword [edx + 4]
cmp dword [ecx + 0xc], 0
je 0x638934
fdivr dword [edx]
fstp dword [esp + 0x3c]
fld dword [esp + 0x3c]
fld1
fsubrp st(1)
fstp dword [esp + 0x1c]
fld dword [esp + 0x1c]
fcompi st(1)
jb 0x638906
movss xmm0, dword [esp + 0x3c]
jmp 0x63890e
movss xmm0, dword [0x6cc5ec]
movss dword [esp + 0x38], xmm0
fld dword [esp + 0x38]
fldz
fsubrp st(1)
fstp dword [esp + 0x1c]
fld dword [esp + 0x1c]
fcompi st(1)
fstp st(0)
jb 0x63892d
movaps xmm0, xmm1
movss dword [edx + 0xc], xmm0
jmp 0x63893d
fstp st(1)
movss dword [edx + 0xc], xmm1
fstp st(0)
mov eax, esi
mov dword [ecx], 0
call fcn.004062f0
mov ecx, eax
test ecx, ecx
jne 0x6388a0
jmp 0x638958
fstp st(0)
mov eax, dword [0x819afc]
mov ecx, eax
shr ecx, 5
and ecx, 1
mov dword [esp + 0x54], ecx
jne 0x638973
or eax, 0x24
mov dword [0x819afc], eax
mov ecx, eax
shr ecx, 6
and ecx, 1
mov dword [esp + 0x6c], ecx
je 0x63898c
and eax, 0xffffffbf
or eax, 4
mov dword [0x819afc], eax
mov ecx, eax
shr ecx, 7
and ecx, 1
mov dword [esp + 0x1c], ecx
je 0x6389a7
and eax, 0xffffff7f
or eax, 1
mov dword [0x819afc], eax
mov cl, byte [0x819b10]
cmp cl, 1
movzx edx, cl
mov dword [esp + 0x70], edx
je 0x6389c8
or eax, 1
mov dword [0x819afc], eax
mov byte [0x819b10], 1
mov edi, eax
shr edi, 0xb
and edi, 1
mov dword [esp + 0x7c], edi
je 0x6389e3
and eax, 0xfffff7ff
or eax, 1
mov dword [0x819afc], eax
mov esi, eax
shr esi, 8
and esi, 1
mov dword [esp + 0x74], esi
jne 0x6389fb
or eax, 0x101
mov dword [0x819afc], eax
push 2
push 2
push 2
push 2
lea ecx, [esp + 0x90]
call fcn.00403ee0
movsx eax, word [0x819b16]
cmp eax, 1
mov dword [esp + 0x78], eax
je 0x638a2f
or dword [0x819afc], 8
mov word [0x819b16], 1
mov ecx, dword [0x805be8]
test ecx, ecx
jne 0x638a3d
xor eax, eax
jmp 0x638a44
movzx eax, word [ecx]
movzx ecx, word [ecx + 2]
test eax, eax
mov dword [esp + 0x58], eax
fild dword [esp + 0x58]
jge 0x638a56
fadd dword [0x6f9a18]
test ecx, ecx
fstp dword [esp + 0x48]
mov dword [esp + 0x58], ecx
fild dword [esp + 0x58]
jge 0x638a6c
fadd dword [0x6f9a18]
mov eax, dword [0x9d2c30]
fstp dword [esp + 0x44]
xorps xmm2, xmm2
imul eax, eax, 0x4d0
movss xmm1, dword [esp + 0x48]
movss xmm3, dword [esp + 0x44]
movss xmm0, xmm2
unpcklps xmm0, xmm0
unpcklps xmm1, xmm3
shufps xmm1, xmm0, 0x44
movaps xmm0, xmmword [eax + 0x9ce070]
movaps xmmword [esp + 0xe0], xmm0
movaps xmm0, xmmword [eax + 0x9ce080]
movaps xmmword [esp + 0xf0], xmm0
movaps xmm0, xmmword [eax + 0x9ce090]
movaps xmmword [esp + 0x100], xmm0
movaps xmm0, xmmword [eax + 0x9ce0a0]
movaps xmmword [esp + 0x110], xmm0
movaps xmm0, xmmword [eax + 0x9cdfb0]
movaps xmmword [esp + 0x1d0], xmm0
movaps xmm0, xmmword [eax + 0x9cdfc0]
movaps xmmword [esp + 0x1e0], xmm0
movaps xmm0, xmmword [eax + 0x9cdfd0]
movaps xmmword [esp + 0x1f0], xmm0
movaps xmm0, xmmword [eax + 0x9cdfe0]
movaps xmmword [esp + 0x200], xmm0
movss xmm0, dword [eax + 0x9cdfe0]
movss dword [esp + 0x20], xmm0
movss xmm0, dword [eax + 0x9cdfe4]
movss dword [esp + 0x24], xmm0
movss xmm0, dword [eax + 0x9cdfe8]
movss dword [esp + 0x28], xmm0
movss dword [esp + 0x2c], xmm2
movaps xmm0, xmmword [esp + 0x20]
movaps xmmword [esp + 0x190], xmm0
xorps xmm0, xmm0
movaps xmmword [esp + 0x1b0], xmm0
movss xmm0, dword [0x6cc5e8]
shufps xmm0, xmm0, 0
movaps xmmword [esp + 0x170], xmm1
movaps xmmword [esp + 0x1c0], xmm0
call fcn.0057d880
mov eax, dword [eax + 0x2c]
mov ecx, dword [eax + 8]
mov edx, dword [ecx + 0x10]
mov dword [esp + 0x58], edx
call fcn.0057d880
mov eax, dword [eax + 0x30]
mov ecx, dword [eax + 8]
mov eax, dword [0x93db24]
cmp dword [0x805cb4], eax
mov edx, dword [ecx + 0x10]
mov dword [esp + 0x68], edx
je 0x638bbc
mov ecx, dword [0x7e43a0]
mov dword [0x805cb4], eax
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 0x170]
push ecx
call eax
mov eax, dword [0x93db3c]
test eax, eax
je 0x638bc9
mov eax, dword [eax]
jmp 0x638bcb
xor eax, eax
cmp dword [0x805cb0], eax
je 0x638bea
mov ecx, dword [0x7e43a0]
mov dword [0x805cb0], eax
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 0x15c]
push ecx
call eax
mov ecx, dword [0x9d2c30]
movaps xmm2, xmmword [0x805d00]
imul ecx, ecx, 0x4d0
add ecx, 0x9ce070
movups xmm1, xmmword [ecx]
movaps xmm0, xmm1
cmpneqps xmm0, xmm2
movmskps eax, xmm0
neg eax
sbb eax, eax
mov edx, 0x805d00
movaps xmmword [edx], xmm1
movups xmm1, xmmword [ecx + 0x10]
movaps xmm2, xmmword [0x805d10]
lea edx, [ecx + 0x10]
neg eax
movaps xmm0, xmm1
cmpneqps xmm0, xmm2
mov ebx, 0x805d10
movaps xmmword [ebx], xmm1
movups xmm1, xmmword [edx + 0x10]
movaps xmm2, xmmword [0x805d20]
movmskps ebx, xmm0
neg ebx
sbb ebx, ebx
neg ebx
add edx, 0x10
or eax, ebx
mov ebx, 0x805d20
movaps xmmword [ebx], xmm1
movaps xmm0, xmm1
movups xmm1, xmmword [edx + 0x10]
cmpneqps xmm0, xmm2
movaps xmm2, xmmword [0x805d30]
movmskps ebx, xmm0
neg ebx
sbb ebx, ebx
add edx, 0x10
neg ebx
mov edx, 0x805d30
movaps xmmword [edx], xmm1
movaps xmm0, xmm1
or eax, ebx
cmpneqps xmm0, xmm2
movmskps edx, xmm0
neg edx
sbb edx, edx
neg edx
or eax, edx
je 0x638cad
mov eax, dword [0x7e43a0]
mov edx, dword [eax]
push 4
push ecx
push 0
push eax
mov eax, dword [edx + 0x178]
call eax
xor eax, eax
cmp dword [0x786358], eax
mov dword [esp + 0x48], eax
jbe 0x639617
mov dword [esp + 0x3c], eax
mov ecx, dword [0x786364]
mov eax, dword [ebp + 8]
mov edx, dword [esp + 0x3c]
mov eax, dword [eax]
test eax, eax
lea esi, [edx + ecx]
movzx ecx, word [esi + 0x2c]
mov dword [esp + 0x40], esi
je 0x6395f3
mov eax, dword [eax + 4]
mov edx, ecx
shr edx, 3
movzx edx, byte [edx + eax]
and ecx, 7
mov eax, 1
shl eax, cl
and edx, eax
je 0x6395f3
movss xmm0, dword [esi + 0x20]
movss xmm1, dword [0x6e997c]
mov ecx, dword [esi + 0x24]
shufps xmm0, xmm0, 0
movaps xmm2, xmm0
mulps xmm2, xmmword [esp + 0x1d0]
movaps xmm3, xmm0
mulps xmm3, xmmword [esp + 0x1e0]
mulps xmm0, xmmword [esp + 0x1f0]
shufps xmm1, xmm1, 0
movaps xmmword [esp + 0x120], xmm2
mulps xmm2, xmm1
movaps xmmword [esp + 0x1a0], xmm3
mulps xmm3, xmm1
movss xmm1, dword [0x6bb308]
shufps xmm1, xmm1, 0
mulps xmm0, xmm1
push ecx
xor edi, edi
movaps xmmword [esp + 0xc4], xmm2
movaps xmmword [esp + 0xd4], xmm3
movaps xmmword [esp + 0x154], xmm0
call fcn.00402260
movzx eax, word [esi + 0x28]
mov ebx, eax
shl ebx, 5
add ebx, dword [0x786360]
lea edx, [eax*8]
sub edx, eax
mov eax, dword [0x78635c]
add esp, 4
cmp word [esi + 0x2a], 0
mov dword [esp + 0x50], ebx
lea edi, [eax + edx*4]
mov dword [esp + 0x44], 0
jbe 0x6395f3
jmp 0x638dc0
fld dword [edi + 0x18]
fstp dword [esp + 0x18]
fld dword [esp + 0x18]
call fcn.004ad3a0
fstp dword [esp + 0x14]
fld dword [esp + 0x14]
fstp dword [esp + 0x20]
fld dword [esp + 0x18]
call fcn.004ad4d0
fstp dword [esp + 0x14]
fld dword [esp + 0x14]
movaps xmm4, xmmword [esp + 0x1a0]
movaps xmm3, xmmword [esp + 0x120]
fstp dword [esp + 0x14]
fld dword [esp + 0x14]
mov ecx, dword [esp + 0x40]
fstp dword [esp + 0x14]
push ecx
movss xmm1, dword [esp + 0x18]
fld dword [esp + 0x24]
fstp dword [esp + 0x24]
movss xmm0, dword [esp + 0x24]
fld dword [ecx + 0x20]
mov eax, dword [0x9d2c30]
imul eax, eax, 0x4d0
shufps xmm0, xmm0, 0
movaps xmm2, xmm0
shufps xmm1, xmm1, 0
movaps xmm5, xmm1
mulps xmm0, xmm4
mulps xmm1, xmm3
addps xmm0, xmm1
movaps xmmword [esp + 0x164], xmm0
movaps xmm0, xmmword [ebx]
add eax, 0x9ce230
movaps xmmword [esp + 0x94], xmm0
fstp dword [esp + 0xa0]
fld dword [esp + 0xa0]
mulps xmm5, xmm4
mulps xmm2, xmm3
fstp dword [esp]
lea esi, [eax + 0x130]
subps xmm2, xmm5
lea eax, [esp + 0x94]
movaps xmmword [esp + 0x184], xmm2
call fcn.00418110
add esp, 4
test eax, eax
jne 0x638eac
xorps xmm0, xmm0
movss dword [edi + 8], xmm0
movss dword [edi + 0xc], xmm0
jmp 0x6395ce
movaps xmm1, xmmword [esp + 0x90]
movaps xmm0, xmmword [esp + 0x190]
mov edx, dword [esp + 0x40]
test byte [edx + 0x2e], 2
subps xmm0, xmm1
mulps xmm0, xmm0
movaps xmm1, xmm0
shufps xmm1, xmm0, 0x55
movaps xmm2, xmm0
shufps xmm2, xmm0, 0
shufps xmm0, xmm0, 0xaa
addps xmm1, xmm2
addps xmm1, xmm0
sqrtps xmm0, xmm1
movss dword [esp + 0xb0], xmm0
je 0x63954d
call fcn.00635180
test eax, eax
je 0x638f08
xorps xmm0, xmm0
movss dword [esp + 0x4c], xmm0
jmp 0x638f19
movss xmm0, dword [0x6f9aa0]
movss dword [esp + 0x4c], xmm0
xorps xmm0, xmm0
mov eax, dword [0x954080]
test eax, eax
je 0x638f31
cmp dword [eax + 0x1b0], 7
jne 0x638f31
movss dword [esp + 0x4c], xmm0
fld dword [esp + 0xb0]
fld qword [0x6fa138]
fcompi st(1)
fstp st(0)
ja 0x639006
movss xmm1, dword [esp + 0xb0]
comiss xmm1, dword [0x6d7db4]
ja 0x639006
comiss xmm0, dword [edi + 0x14]
jbe 0x638f8c
call fcn.00406fb0
fmul qword [0x6f9c00]
fstp dword [edi + 0x18]
call fcn.00406fb0
fmul qword [0x6f9ba8]
fadd qword [0x6f9af0]
fmul qword [0x6f9c68]
fstp dword [edi + 0x14]
fld dword [edi + 0x14]
sub esp, 8
fsub dword [esp + 0x54]
fstp dword [esp + 0x28]
fld dword [esp + 0x28]
fstp dword [esp + 4]
fldz
fstp dword [esp]
call fcn.00402e80
fstp dword [esp + 0x20]
fld dword [esp + 0x20]
xorps xmm0, xmm0
fst dword [edi + 0x14]
add esp, 8
fld dword [0x6e54d0]
fxch st(1)
fcompi st(1)
fstp st(0)
ja 0x639013
movss xmm1, dword [esp + 0x18]
ucomiss xmm1, xmm0
lahf
test ah, 0x44
jp 0x639018
movss dword [edi + 0xc], xmm0
call fcn.00406fb0
fmul qword [0x6f9ba8]
fadd qword [0x6f9af0]
fstp dword [edi + 0x14]
call fcn.00406fb0
fmul qword [0x6f9c00]
xorps xmm0, xmm0
fstp dword [edi + 0x18]
jmp 0x639018
movss xmm1, dword [0x6f99f4]
movss dword [edi + 0x14], xmm1
movss dword [edi + 0xc], xmm0
fld dword [edi + 0xc]
fstp dword [esp + 0x14]
fld dword [edi + 8]
fstp dword [esp + 0x18]
fld dword [esp + 0x18]
fld dword [esp + 0x14]
fcomi st(1)
jbe 0x63950e
movss xmm1, dword [esp + 0x14]
fstp st(1)
movss dword [edi + 8], xmm1
fstp st(0)
fld dword [esp + 0xb0]
fsub qword [0x6f9c48]
fdiv qword [0x6fa370]
fstp dword [esp + 0x14]
fld dword [esp + 0x14]
fldz
fsubrp st(1)
fstp dword [esp + 0x20]
fldz
fld dword [esp + 0x20]
fcompi st(1)
jae 0x639078
movss xmm0, dword [esp + 0x14]
movss dword [esp + 0x5c], xmm0
fld dword [esp + 0x5c]
fld1
fsubrp st(1)
fstp dword [esp + 0x20]
fld dword [esp + 0x20]
fcompi st(1)
fstp st(0)
jae 0x63909c
movss xmm0, dword [0x6cc5ec]
fld dword [edi + 8]
movss dword [esp + 0x38], xmm0
fmul dword [esp + 0x38]
fnstcw word [esp + 0x18]
movzx eax, word [esp + 0x18]
fstp dword [esp + 0x20]
fld dword [esp + 0x20]
or eax, 0xc00
fmul qword [0x6f9ac8]
mov dword [esp + 0x20], eax
fldcw word [esp + 0x20]
fistp qword [esp + 0x20]
mov eax, dword [esp + 0x20]
cmp eax, 0xff
fldcw word [esp + 0x18]
jbe 0x6390e5
mov eax, 0xff
movaps xmm1, xmmword [ebx]
movaps xmm0, xmmword [esp + 0x150]
movzx eax, al
mov ecx, eax
shl ecx, 8
or ecx, eax
shl ecx, 8
or ecx, eax
shl ecx, 8
or ecx, eax
addps xmm0, xmm1
mov esi, edi
mov dword [edi + 0x10], ecx
movaps xmmword [esp + 0xa0], xmm0
call fcn.00406290
movaps xmm0, xmmword [esp + 0xa0]
mov esi, eax
test esi, esi
je 0x63941f
mov edx, dword [esp + 0x60]
mov ecx, dword [esp + 0x40]
movaps xmm2, xmmword [esp + 0xd0]
movaps xmm1, xmmword [esp + 0xc0]
lea eax, [esp + 0x210]
mov dword [esi + 0x10], edx
push eax
or edx, 0xffffffff
call fcn.00405a60
mov eax, dword [0x819b00]
add esp, 4
test eax, eax
mov ebx, eax
je 0x639175
or dword [0x819afc], 1
mov dword [0x819b00], 0
mov eax, dword [esi + 4]
cmp eax, 0x200
jae 0x6391a0
cmp dword [eax*4 + 0x8053a8], 0
lea eax, [eax*4 + 0x8053a8]
je 0x6391a0
test eax, eax
je 0x6391a0
mov eax, dword [eax]
mov ecx, dword [eax]
mov edx, dword [ecx + 0x18]
push 2
push eax
call edx
mov eax, dword [esp + 0x68]
cmp dword [0x805cb8], eax
je 0x6391c5
mov ecx, eax
mov eax, dword [0x7e43a0]
mov dword [0x805cb8], ecx
mov edx, dword [eax]
push ecx
push eax
mov eax, dword [edx + 0x1ac]
call eax
cmp dword [0x805be8], 0
je 0x63920b
test byte [0x819afc], 0x1f
je 0x6391dc
call fcn.0058a570
mov eax, dword [0x7e43a0]
mov ecx, dword [eax]
push 0x18
lea edx, [esp + 0x214]
push edx
push 2
push 5
push eax
mov eax, dword [ecx + 0x14c]
call eax
xor eax, eax
mov dword [0x805bf0], eax
mov dword [0x805c30], eax
mov dword [0x805c70], eax
mov eax, dword [esi + 4]
cmp eax, 0x200
jae 0x639236
cmp dword [eax*4 + 0x8053a8], 0
lea eax, [eax*4 + 0x8053a8]
je 0x639236
test eax, eax
je 0x639236
mov eax, dword [eax]
mov ecx, dword [eax]
mov edx, dword [ecx + 0x18]
push 1
push eax
call edx
movaps xmm0, xmmword [esp + 0xa0]
movaps xmm5, xmmword [esp + 0x100]
movaps xmm6, xmmword [esp + 0xf0]
movaps xmm7, xmmword [esp + 0xe0]
movaps xmm3, xmm0
shufps xmm3, xmm0, 0xaa
mulps xmm3, xmm5
movaps xmm1, xmm0
shufps xmm1, xmm0, 0x55
mulps xmm1, xmm6
addps xmm3, xmm1
movaps xmm1, xmm0
shufps xmm1, xmm0, 0
mulps xmm1, xmm7
addps xmm1, xmmword [esp + 0x110]
addps xmm3, xmm1
movaps xmm2, xmm0
addps xmm2, xmmword [esp + 0xc0]
movaps xmm1, xmm2
shufps xmm1, xmm2, 0xaa
mulps xmm1, xmm5
movaps xmm4, xmm2
shufps xmm4, xmm2, 0x55
mulps xmm4, xmm6
addps xmm1, xmm4
movaps xmm4, xmm2
shufps xmm4, xmm2, 0
mulps xmm4, xmm7
addps xmm4, xmmword [esp + 0x110]
addps xmm1, xmm4
movaps xmm4, xmm0
addps xmm4, xmmword [esp + 0xd0]
movaps xmm2, xmm4
shufps xmm2, xmm4, 0xaa
mulps xmm2, xmm5
movaps xmm5, xmm4
shufps xmm5, xmm4, 0x55
mulps xmm5, xmm6
addps xmm2, xmm5
movaps xmm5, xmm4
shufps xmm5, xmm4, 0
movaps xmm6, xmm1
shufps xmm6, xmm1, 0xff
divps xmm1, xmm6
movaps xmm6, xmmword [esp + 0x1b0]
mulps xmm5, xmm7
addps xmm5, xmmword [esp + 0x110]
movaps xmm4, xmm3
shufps xmm4, xmm3, 0xff
divps xmm3, xmm4
movaps xmm4, xmmword [esp + 0x1c0]
mulps xmm1, xmm4
addps xmm1, xmm4
addps xmm2, xmm5
movaps xmm5, xmmword [esp + 0x170]
mulps xmm3, xmm4
addps xmm3, xmm4
mulps xmm1, xmm5
mulps xmm3, xmm5
subps xmm1, xmm3
movaps xmm7, xmm1
movaps xmm1, xmm2
shufps xmm1, xmm2, 0xff
divps xmm2, xmm1
mulps xmm2, xmm4
addps xmm2, xmm4
movaps xmm4, xmm3
addps xmm4, xmm7
minps xmm4, xmm5
movaps xmm1, xmm6
maxps xmm1, xmm4
movaps xmm4, xmm3
subps xmm4, xmm7
minps xmm4, xmm5
movaps xmm7, xmm6
maxps xmm7, xmm4
subps xmm1, xmm7
mulps xmm2, xmm5
subps xmm2, xmm3
movaps xmm7, xmm3
addps xmm7, xmm2
subps xmm3, xmm2
fnstcw word [esp + 0x18]
movzx eax, word [esp + 0x18]
mulps xmm1, xmm1
minps xmm3, xmm5
movaps xmm2, xmm1
shufps xmm2, xmm1, 0x55
movaps xmm4, xmm6
maxps xmm6, xmm3
movaps xmm3, xmm1
shufps xmm3, xmm1, 0
addps xmm2, xmm3
shufps xmm1, xmm1, 0xaa
addps xmm2, xmm1
sqrtps xmm1, xmm2
minps xmm7, xmm5
maxps xmm4, xmm7
movss dword [esp + 0x140], xmm1
subps xmm4, xmm6
mulps xmm4, xmm4
movaps xmm1, xmm4
movaps xmm2, xmm1
shufps xmm2, xmm1, 0x55
movaps xmm3, xmm1
shufps xmm3, xmm1, 0
shufps xmm1, xmm1, 0xaa
addps xmm2, xmm3
addps xmm2, xmm1
or eax, 0xc00
sqrtps xmm1, xmm2
movss dword [esp + 0x130], xmm1
fld dword [esp + 0x130]
fmul dword [esp + 0x140]
mov dword [esp + 0x20], eax
fldcw word [esp + 0x20]
fistp qword [esp + 0x20]
mov eax, dword [esp + 0x20]
mov dword [esi + 0xc], eax
cmp dword [0x819b00], ebx
fldcw word [esp + 0x18]
je 0x63941f
or dword [0x819afc], 1
mov dword [0x819b00], ebx
mov edx, dword [edi + 0x10]
xor ebx, ebx
cmp edx, ebx
je 0x6395ca
movss xmm3, dword [esp + 0x38]
movaps xmm2, xmmword [esp + 0x160]
movaps xmm1, xmmword [esp + 0x180]
lea ecx, [esp + 0x210]
shufps xmm3, xmm3, 0
push ecx
mov ecx, dword [esp + 0x44]
mulps xmm2, xmm3
mulps xmm1, xmm3
call fcn.00405a60
mov ax, word [0x819b18]
add esp, 4
cmp ax, 8
movsx esi, ax
je 0x63947f
or dword [0x819afc], 4
mov word [0x819b18], 8
mov ecx, dword [esp + 0x58]
cmp dword [0x805cb8], ecx
je 0x6394a2
mov eax, dword [0x7e43a0]
mov dword [0x805cb8], ecx
mov edx, dword [eax]
push ecx
push eax
mov eax, dword [edx + 0x1ac]
call eax
cmp dword [0x805be8], ebx
je 0x6394e8
test byte [0x819afc], 0x1f
je 0x6394b8
call fcn.0058a570
mov eax, dword [0x7e43a0]
mov ecx, dword [eax]
push 0x18
lea edx, [esp + 0x214]
push edx
push 2
push 5
push eax
mov eax, dword [ecx + 0x14c]
call eax
mov dword [0x805bf0], ebx
mov dword [0x805c30], ebx
mov dword [0x805c70], ebx
movsx ecx, word [0x819b18]
cmp ecx, esi
mov ebx, dword [esp + 0x50]
je 0x6395ce
or dword [0x819afc], 4
mov word [0x819b18], si
jmp 0x6395ce
fxch st(1)
fcomi st(1)
fstp st(1)
jbe 0x639043
fld dword [esp + 0x4c]
sub esp, 8
fdiv qword [0x6fa368]
fsubp st(1)
fstp dword [esp + 0x28]
fld dword [esp + 0x28]
fstp dword [esp + 4]
fldz
fstp dword [esp]
call fcn.00402e80
fstp dword [edi + 8]
xorps xmm0, xmm0
add esp, 8
jmp 0x639045
fld dword [edi + 8]
xorps xmm0, xmm0
fstp dword [esp + 0x18]
fld dword [edi + 0xc]
fld dword [esp + 0x18]
fld st(0)
fsubp st(2)
fxch st(1)
fmul qword [0x6fa360]
faddp st(1)
fstp dword [esp + 0x20]
fld dword [esp + 0x20]
fst dword [edi + 8]
fstp dword [esp + 0x14]
fld dword [esp + 0x14]
fldz
fsubrp st(1)
fstp dword [esp + 0x20]
fldz
fld dword [esp + 0x20]
fcompi st(1)
jb 0x639596
movaps xmm1, xmm0
jmp 0x63959c
movss xmm1, dword [esp + 0x14]
movss dword [esp + 0x64], xmm1
fld dword [esp + 0x64]
fld1
fsubrp st(1)
fstp dword [esp + 0x20]
fld dword [esp + 0x20]
fcompi st(1)
fstp st(0)
jae 0x6395c0
movss xmm1, dword [0x6cc5ec]
movss dword [edi + 8], xmm1
jmp 0x639045
mov ebx, dword [esp + 0x50]
mov edx, dword [esp + 0x40]
mov eax, dword [esp + 0x44]
movzx ecx, word [edx + 0x2a]
add eax, 1
add ebx, 0x20
add edi, 0x1c
cmp eax, ecx
mov dword [esp + 0x44], eax
mov dword [esp + 0x50], ebx
jb 0x638dc0
mov eax, dword [esp + 0x48]
add dword [esp + 0x3c], 0x30
add eax, 1
cmp eax, dword [0x786358]
mov dword [esp + 0x48], eax
jb 0x638cc3
mov esi, dword [esp + 0x74]
mov edi, dword [esp + 0x7c]
movsx edx, word [0x819b16]
mov eax, dword [esp + 0x78]
cmp edx, eax
mov ebx, dword [esp + 0x1c]
je 0x639637
or dword [0x819afc], 8
mov word [0x819b16], ax
mov eax, dword [esp + 0x8c]
mov ecx, dword [esp + 0x88]
mov edx, dword [esp + 0x84]
push 0x819af0
push eax
mov eax, dword [esp + 0x88]
push ecx
push edx
push eax
call fcn.004043b0
mov eax, dword [0x819afc]
mov ecx, eax
shr ecx, 8
xor edx, edx
add esp, 0x14
and ecx, 1
test esi, esi
setne dl
cmp ecx, edx
je 0x639693
shl esi, 8
xor esi, eax
and esi, 0x100
xor esi, eax
or esi, 1
mov eax, esi
mov dword [0x819afc], eax
mov ecx, eax
shr ecx, 0xb
xor edx, edx
and ecx, 1
test edi, edi
setne dl
cmp ecx, edx
je 0x6396bd
shl edi, 0xb
xor edi, eax
and edi, 0x800
xor edi, eax
or edi, 1
mov eax, edi
mov dword [0x819afc], eax
movzx edx, byte [0x819b10]
mov ecx, dword [esp + 0x70]
cmp edx, ecx
je 0x6396da
or eax, 1
mov dword [0x819afc], eax
mov byte [0x819b10], cl
mov ecx, eax
shr ecx, 7
xor edx, edx
and ecx, 1
test ebx, ebx
setne dl
cmp ecx, edx
je 0x639704
shl ebx, 7
xor ebx, eax
and ebx, 0x80
xor ebx, eax
or ebx, 1
mov eax, ebx
mov dword [0x819afc], eax
mov ecx, dword [esp + 0x6c]
mov edx, eax
shr edx, 6
xor ebx, ebx
and edx, 1
test ecx, ecx
setne bl
cmp edx, ebx
je 0x63972f
shl ecx, 6
xor ecx, eax
and ecx, 0x40
xor ecx, eax
or ecx, 4
mov eax, ecx
mov dword [0x819afc], eax
mov ecx, dword [esp + 0x54]
mov edx, eax
shr edx, 5
xor ebx, ebx
and edx, 1
test ecx, ecx
setne bl
cmp edx, ebx
je 0x639759
shl ecx, 5
xor ecx, eax
and ecx, 0x20
xor ecx, eax
or ecx, 4
mov dword [0x819afc], ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret