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

Disassembly:
sub esp, 0x160
push ebx
push ebp
push esi
mov esi, ecx
mov ecx, dword [esi + 0x30]
push edi
mov dword [esp + 0x74], 0
mov dword [esp + 0x70], 0
mov dword [esp + 0x6c], 0
xor edi, edi
mov dword [esp + 0x7c], 0x3f800000
cmp dword [ecx + 0x164], edi
mov dword [esp + 0x78], 0
mov dword [esp + 0x3c], edi
jne 0x485521
add ecx, 0x108
mov eax, dword [ecx]
mov dword [esp + 0x58], eax
mov edx, dword [ecx + 4]
mov dword [esp + 0x5c], edx
mov eax, dword [ecx + 8]
mov dword [esp + 0x60], eax
jmp 0x48552b
lea edx, [esp + 0x58]
push edx
call fcn.004d2520
lea eax, [esp + 0x40]
push eax
mov ecx, esi
call fcn.004ce0e0
fld dword [esp + 0x44]
fcomp dword [0x60477c]
fld dword [esp + 0x44]
fnstsw ax
test ah, 5
jp 0x485583
fchs
fld dword [0x5da740]
fmul st(1)
call fcn.0058c3f0
imul eax, eax, 0x168
test eax, eax
mov dword [esp + 0x10], eax
fild dword [esp + 0x10]
jge 0x485573
fadd dword [0x5da2fc]
fsubr st(1)
fsubr dword [0x5da6bc]
fstp dword [esp + 0x44]
fstp st(0)
jmp 0x4855ae
fmul dword [0x5da740]
call fcn.0058c3f0
imul eax, eax, 0x168
test eax, eax
mov dword [esp + 0x10], eax
fild dword [esp + 0x10]
jge 0x4855a6
fadd dword [0x5da2fc]
fsubr dword [esp + 0x44]
fstp dword [esp + 0x44]
mov eax, dword [esp + 0x48]
mov ecx, dword [esp + 0x40]
mov edx, dword [esp + 0x44]
mov dword [esp + 0x54], eax
cmp dword [esi + 0x688], 0x71
mov dword [esp + 0x4c], ecx
mov dword [esp + 0x50], edx
jne 0x485647
mov ecx, dword [esi + 8]
mov eax, dword [0x62fe00]
lea edx, [esp + 0x24]
push edx
push 0x52
mov dword [esp + 0x30], ecx
mov dword [esp + 0x2c], edi
call dword [eax + 8]
mov eax, dword [esp + 0x2c]
add esp, 8
cmp eax, 1
jne 0x485647
mov edx, dword [esi]
push 0x5e
mov ecx, esi
call dword [edx + 0x80]
mov eax, dword [esi + 8]
mov edx, dword [0x62fe00]
lea ecx, [esp + 0x10]
push ecx
push 0x53
mov dword [esp + 0x18], eax
call dword [edx + 8]
mov eax, dword [esi + 0x6cc]
add esp, 8
cmp eax, edi
je 0x485647
mov eax, dword [eax + 0x24]
mov eax, dword [eax + 0x94]
mov ecx, dword [esi + 0x30]
push eax
call fcn.0055dc40
mov ecx, dword [esi + 0x30]
push eax
call fcn.0055dca0
or dword [esi + 0x105c], 4
cmp dword [esi + 0x688], 0x87
jne 0x4856e5
mov ecx, dword [esi + 0xe7c]
cmp ecx, edi
je 0x4856e5
test dword [esi + 0x27c], 0x40000
je 0x4856e5
mov edx, dword [esi + 0x30]
mov eax, dword [edx + 0x22c]
fld dword [eax + 8]
fcomp dword [0x5e8620]
fnstsw ax
test ah, 0x41
jne 0x4856e5
mov dword [ecx + 0xc0], 0x1f4
mov ecx, dword [esi + 0xe7c]
mov edx, dword [ecx + 8]
push 0x3f800000
push edx
call fcn.00471520
mov ecx, dword [esi + 0xe7c]
add esp, 8
lea eax, [esp + 0x30]
push eax
call fcn.00401470
mov edx, dword [esi + 0xe7c]
mov eax, dword [edx + 0x40]
push 7
push edi
push 0x43fa0000
lea ecx, [esp + 0x3c]
push ecx
mov ecx, dword [0x6800ec]
push 0xc
push eax
call fcn.004b5870
mov dword [esi + 0xe7c], edi
lea ecx, [esp + 0x40]
push ecx
lea edx, [esp + 0x5c]
push edx
mov ecx, esi
call fcn.00484890
mov ecx, esi
call fcn.004813c0
push edi
mov ecx, esi
call fcn.0047b6c0
mov ecx, dword [esi + 0x688]
mov eax, dword [esi]
imul ecx, ecx, 0x38
mov edx, dword [ecx + 0x611b08]
push edx
mov ecx, esi
call dword [eax + 0xc0]
mov eax, dword [esi]
push 1
mov ecx, esi
call dword [eax + 0x5c]
cmp eax, 1
jne 0x485833
cmp dword [esi + 0x690], edi
je 0x485825
mov eax, dword [esi + 0x688]
cmp eax, 0x46
je 0x48589c
cmp eax, 0x47
je 0x48589c
cmp eax, 0x40
jne 0x485766
lea ecx, [esp + 0x40]
push ecx
mov ecx, esi
call fcn.00477a10
mov eax, dword [esi + 0x688]
cmp eax, 0x3d
je 0x48577f
cmp eax, 0x3e
je 0x48577f
cmp eax, 0x45
jne 0x48589c
mov ecx, esi
call fcn.004720a0
test eax, eax
je 0x48589c
mov edx, dword [esi + 0x488]
cmp dword [edx + 0x2f4], 1
je 0x48589c
mov ecx, dword [esi + 0x690]
push esi
call fcn.004893f0
mov ecx, dword [esi + 0x690]
push eax
call fcn.0048d560
mov ecx, dword [esi + 0x690]
mov ebx, eax
lea eax, [esp + 0x14]
push eax
push ebx
call fcn.004894b0
lea ecx, [esp + 0x14]
push ecx
mov ecx, esi
call fcn.00471de0
mov ecx, dword [esi + 0x690]
push 1
lea edx, [esp + 0x18]
push edx
push ebx
call fcn.0048d430
lea eax, [esp + 0x14]
movzx ecx, bl
push eax
push ecx
mov ecx, dword [esi + 0x690]
call fcn.004894b0
mov edx, dword [esp + 0x1c]
lea eax, [esp + 0x14]
push eax
mov ecx, esi
mov dword [esp + 0x18], edx
mov dword [esp + 0x20], 0
mov dword [esp + 0x1c], 0
call fcn.00496a00
jmp 0x48589c
lea ecx, [esp + 0x40]
push ecx
mov ecx, esi
call fcn.00477a10
jmp 0x48589c
mov eax, dword [esi + 0x690]
cmp eax, edi
je 0x48587b
cmp dword [esi + 0x688], 0x40
je 0x48587b
mov edx, dword [eax + 0x24]
mov eax, dword [edx + 0x80]
mov ecx, dword [eax + 0x44]
cmp dword [ecx + 0x24], 0xc
je 0x48587b
lea edx, [esp + 0x98]
push edx
lea eax, [esp + 0x84]
push eax
lea ecx, [esp + 0x48]
push ecx
lea edx, [esp + 0x64]
push edx
mov ecx, esi
call fcn.004786b0
jmp 0x48589c
lea eax, [esp + 0x98]
push eax
lea ecx, [esp + 0x84]
push ecx
lea edx, [esp + 0x48]
push edx
lea eax, [esp + 0x64]
push eax
mov ecx, esi
call fcn.00478d20
mov edx, dword [esi]
push 1
mov ecx, esi
call dword [edx + 0x5c]
test eax, eax
jne 0x4858d0
mov eax, dword [esi + 0x30]
cmp eax, edi
je 0x4858d0
mov eax, dword [eax + 0x22c]
mov ecx, dword [eax]
cmp ecx, edi
je 0x4858d0
mov ecx, dword [ecx + 0x20]
mov edx, dword [ecx]
movzx ecx, word [edx + 0xa]
mov dword [esp + 0x10], ecx
fild dword [esp + 0x10]
fstp dword [eax + 0x2c]
cmp dword [esi + 0x690], edi
je 0x485907
mov eax, dword [esi + 0x688]
cmp eax, 0x3d
je 0x485900
cmp eax, 0x3e
je 0x485900
cmp eax, 0x45
je 0x485900
cmp eax, 0x46
je 0x4858f7
cmp eax, 0x47
jne 0x485907
mov ecx, esi
call fcn.00479360
jmp 0x485907
mov ecx, esi
call fcn.00479290
mov eax, dword [esi + 0x690]
cmp eax, edi
je 0x48593a
cmp dword [esi + 0x688], 0x47
je 0x48621b
mov ecx, dword [eax + 0x30]
call fcn.004d20d0
mov edx, dword [esi + 0x690]
mov dword [esi + 0x1c], eax
mov eax, dword [edx + 0x30]
mov dword [esi + 0x20], eax
jmp 0x486214
cmp dword [esi + 0xe98], edi
je 0x4859a9
mov ecx, dword [esi + 0x30]
cmp dword [ecx + 0x164], edi
jne 0x485969
add ecx, 0x108
mov edx, dword [ecx]
mov dword [esp + 0x14], edx
mov eax, dword [ecx + 4]
mov dword [esp + 0x18], eax
mov ecx, dword [ecx + 8]
mov dword [esp + 0x1c], ecx
jmp 0x485973
lea edx, [esp + 0x14]
push edx
call fcn.004d2520
mov ecx, dword [esi + 0xe98]
lea eax, [esp + 0x14]
push eax
call fcn.00502090
mov ecx, dword [esi + 0x30]
mov edx, dword [ecx]
push edi
lea eax, [esp + 0x18]
push eax
call dword [edx]
mov ecx, dword [esi + 0x30]
call fcn.004d20d0
mov ecx, dword [esi + 0x30]
mov dword [esi + 0x1c], eax
mov edx, dword [ecx + 0x28]
mov dword [esi + 0x20], edx
jmp 0x486214
mov eax, dword [esi + 0x688]
cmp eax, 0x31
je 0x4861e3
cmp eax, 0x30
je 0x4861e3
mov ecx, dword [esi + 0x1c]
call fcn.004d20d0
mov ebx, eax
mov eax, dword [esi + 0x20]
lea ecx, [esp + 0x78]
push ecx
lea edx, [esp + 0x70]
mov dword [esp + 0x14], eax
push edx
lea eax, [esp + 0x48]
push eax
mov ecx, esi
mov dword [esp + 0x74], ebx
call fcn.00471ec0
test dword [esi + 0x139c], 0x100000
je 0x485ac0
lea ecx, [esp + 0x30]
push ecx
mov ecx, esi
call fcn.004ce0e0
fld dword [esp + 0x34]
fadd dword [0x5da75c]
fst dword [esp + 0x24]
fmul dword [0x5da740]
fmul dword [0x5da6c4]
fld st(0)
fcos
fstp dword [esp + 0x64]
fsin
fld dword [esp + 0x6c]
fld dword [esp + 0x64]
fmul dword [esp + 0x6c]
fld dword [esp + 0x74]
fmul st(3)
fsubp st(1)
fstp dword [esp + 0x6c]
fld dword [esp + 0x74]
fmul dword [esp + 0x64]
fxch st(1)
fmul st(2)
faddp st(1)
fstp st(1)
fcom dword [0x5da750]
fnstsw ax
test ah, 5
jp 0x485a69
fstp st(0)
fld dword [0x5da750]
fld dword [esp + 0x24]
mov eax, dword [esi + 0x139c]
fchs
and eax, 0xffefffff
fmul dword [0x5da740]
mov dword [esi + 0x139c], eax
fmul dword [0x5da6c4]
fld st(0)
fcos
fstp dword [esp + 0x24]
fsin
fld dword [esp + 0x6c]
fld dword [esp + 0x24]
fmul dword [esp + 0x6c]
fld st(3)
fmul st(3)
fsubp st(1)
fstp dword [esp + 0x6c]
fxch st(2)
fmul dword [esp + 0x24]
fxch st(2)
fmul st(1)
faddp st(2)
fxch st(1)
fstp dword [esp + 0x74]
fstp st(0)
mov edx, dword [esi]
push 1
mov ecx, esi
call dword [edx + 0x5c]
test eax, eax
jne 0x485b53
cmp dword [esi + 0x444], 2
jne 0x485b53
cmp dword [esi + 0xeb4], edi
je 0x485b53
mov bp, word [esi + 0x43a]
lea edi, [esi + 0x3a0]
mov ecx, edi
call fcn.004bb440
cmp bp, ax
je 0x485b53
mov ecx, edi
call fcn.004bb560
test eax, eax
jne 0x485b53
mov ecx, edi
call fcn.004bb440
mov ecx, dword [0x680100]
push eax
call fcn.00433090
mov ecx, edi
mov ebp, eax
call fcn.004bb3f0
mov ecx, dword [0x680100]
push eax
call fcn.00433090
test eax, eax
je 0x485b53
mov dl, byte [ebp + 0x1a]
mov cl, 0x10
test cl, dl
je 0x485b53
test byte [eax + 0x1a], cl
je 0x485b53
mov ecx, dword [esi + 0xeb4]
test byte [ecx + 0x58], 2
je 0x485b53
push 0
call fcn.00470d00
mov ecx, esi
call fcn.00479480
mov ecx, dword [esp + 0x58]
mov edx, dword [esp + 0x5c]
lea eax, [esi + 0xa4]
mov dword [eax], ecx
mov ecx, dword [esp + 0x60]
mov dword [eax + 4], edx
mov dword [eax + 8], ecx
mov eax, dword [esp + 0x6c]
mov ecx, dword [esp + 0x70]
lea edx, [esi + 0xb0]
mov dword [edx], eax
mov eax, dword [esp + 0x74]
mov dword [edx + 4], ecx
mov ecx, dword [esp + 0x78]
mov dword [edx + 8], eax
mov edx, dword [esi + 0x688]
imul edx, edx, 0x38
mov dword [esi + 0xec], ecx
mov eax, dword [edx + 0x611b20]
xor ebp, ebp
cmp eax, ebp
mov byte [esp + 0x23], 0
je 0x485ccf
fld dword [esi + 0x58]
fcomp dword [0x60477c]
fnstsw ax
test ah, 0x41
jnp 0x485ccf
fld dword [esi + 0x1114]
mov dword [esi + 0xe2c], ebp
fcomp dword [0x5e861c]
mov dword [esi + 0xe30], ebp
fnstsw ax
test ah, 5
jp 0x485d54
lea eax, [esp + 0x24]
push eax
lea edi, [esi + 0x1108]
push edi
call fcn.004bf190
mov ecx, dword [0x68008c]
add esp, 8
mov dword [esp + 0x24], 0x42b40000
mov ecx, dword [ecx + 0x1b80]
mov edx, dword [ecx]
push ebp
lea eax, [esp + 0x28]
push eax
call dword [edx + 4]
lea ecx, [esp + 0x24]
push ecx
mov ecx, esi
call fcn.00401470
fld dword [0x5e0ddc]
fsub dword [esi + 0x1114]
mov edx, dword [0x68008c]
push ebp
fsubr dword [esi + 0x70]
fld st(0)
fmul dword [edi]
fld st(1)
fmul dword [edi + 4]
fstp dword [esp + 0x38]
fxch st(1)
fmul dword [edi + 8]
fstp dword [esp + 0x3c]
fsubr dword [esi + 0x64]
fld dword [esi + 0x68]
fsub dword [esp + 0x38]
fld dword [esi + 0x6c]
fsub dword [esp + 0x3c]
fstp dword [esp + 0x3c]
fxch st(1)
fadd dword [esp + 0x28]
fstp dword [esp + 0x28]
fld dword [esp + 0x2c]
fadd st(1)
fstp dword [esp + 0x2c]
fstp st(0)
fld dword [esp + 0x30]
fadd dword [esp + 0x3c]
fstp dword [esp + 0x30]
mov ecx, dword [edx + 0x1b80]
mov eax, dword [ecx]
lea edx, [esp + 0x28]
push edx
call dword [eax]
mov eax, dword [0x68008c]
mov ecx, dword [eax + 0x1b80]
push ecx
mov ecx, ebx
call fcn.004d3c30
mov edx, dword [0x68008c]
mov ecx, dword [edx + 0x1b80]
push ebp
push 1
call fcn.004d1a30
mov byte [esp + 0x23], 1
jmp 0x485d54
mov ecx, esi
call fcn.00479900
test al, al
mov ecx, ebx
je 0x485d15
mov byte [esp + 0x23], 1
call fcn.004d20d0
mov ebx, eax
mov eax, dword [0x68008c]
mov ecx, dword [eax + 0x1b80]
push ecx
mov ecx, ebx
mov dword [esp + 0x6c], ebx
call fcn.004d3c30
mov edx, dword [0x68008c]
mov ecx, dword [edx + 0x1b80]
push ebp
push 1
call fcn.004d1a30
jmp 0x485d20
call fcn.004d20d0
mov ebx, eax
mov dword [esp + 0x68], ebx
fld dword [esp + 0x40]
fcomp dword [esp + 0x4c]
fnstsw ax
test ah, 0x44
jp 0x485d4d
fld dword [esp + 0x44]
fcomp dword [esp + 0x50]
fnstsw ax
test ah, 0x44
jp 0x485d4d
fld dword [esp + 0x48]
fcomp dword [esp + 0x54]
fnstsw ax
test ah, 0x44
jnp 0x485d54
or dword [esi + 0x1cc], 0x20
mov eax, dword [esp + 0x10]
mov edx, dword [esi]
mov ecx, esi
mov dword [esi + 0xf4], ebx
mov dword [esi + 0xf8], eax
call dword [edx + 0x2c]
test eax, eax
je 0x485d89
mov eax, dword [esi]
push 1
mov ecx, esi
call dword [eax + 0x5c]
test eax, eax
lea edi, [esi + 0x60]
mov ecx, edi
je 0x485d85
push 0x18
jmp 0x485d90
push 8
jmp 0x485d90
lea edi, [esi + 0x60]
push 4
mov ecx, edi
call fcn.0050d840
mov edx, dword [esi]
mov ecx, esi
call dword [edx + 0x70]
test eax, eax
mov ebx, 0xfffffeff
mov ecx, edi
je 0x485db7
push ebp
call fcn.0050d810
mov eax, dword [edi + 0x16c]
and eax, ebx
jmp 0x485dc9
push 1
call fcn.0050d810
mov eax, dword [edi + 0x16c]
or eax, 0x100
mov dword [edi + 0x16c], eax
mov eax, dword [esi + 0x139c]
test ah, 0x10
je 0x485de0
and dword [edi + 0x16c], ebx
mov eax, dword [esi]
push 1
mov ecx, esi
call dword [eax + 0x5c]
cmp eax, 1
jne 0x485df6
push ebp
mov ecx, esi
call fcn.00434720
fld dword [esi + 0x45c]
lea ebx, [esi + 0xbc]
fcomp dword [0x60477c]
mov dword [esp + 0x24], 0
mov edx, dword [esp + 0x24]
mov ecx, ebx
mov dword [ecx], edx
mov dword [esp + 0x28], 0
mov eax, dword [esp + 0x28]
mov dword [ecx + 4], eax
fnstsw ax
mov dword [esp + 0x2c], 0
test ah, 0x44
mov edx, dword [esp + 0x2c]
lea ebp, [esi + 0xc8]
mov dword [ecx + 8], edx
mov dword [ebp], 0
jp 0x485e55
mov ecx, esi
call fcn.00457640
test eax, eax
je 0x485e75
mov eax, dword [0x68008c]
test byte [eax + 0x1b8c], 1
jne 0x485e75
push ebp
push ebx
mov ecx, esi
call fcn.004974f0
mov ecx, esi
call fcn.00432e40
jmp 0x485e8c
mov eax, dword [esi + 0x488]
test eax, eax
je 0x485e8c
push 0x5e8600
call fcn.00546720
add esp, 4
mov edx, dword [esi]
push 1
mov ecx, esi
mov ebx, 0x71
call dword [edx + 0x5c]
test eax, eax
jne 0x485ea3
mov ebx, 0x79
mov eax, dword [0x62f454]
cmp dword [eax + 8], 2
je 0x485ec9
mov edx, dword [esi + 0x30]
lea ecx, [esp + 0x7c]
push ecx
push ebx
push esi
push 0x47e860
push edx
mov ecx, edi
call fcn.0050e430
mov dword [esp + 0x3c], eax
mov ebx, dword [esi + 0x139c]
mov eax, dword [esi + 0x1a4]
and ebx, 0xffffff7f
xor ebp, ebp
cmp eax, ebp
mov dword [esi + 0x139c], ebx
mov ecx, ebx
je 0x485f01
mov eax, dword [eax + 0x14]
test ah, 0x20
jne 0x485ef5
test al, 2
je 0x485f01
or ecx, 0x80
mov dword [esi + 0x139c], ecx
mov ecx, esi
call fcn.00476480
lea eax, [esp + 0x14]
push eax
mov ecx, esi
call fcn.00401470
fld dword [esp + 0x14]
fsub dword [esi + 0xa4]
lea ecx, [esp + 0x8c]
push ecx
mov ecx, edi
fstp dword [esp + 0x18]
fld dword [esp + 0x1c]
fsub dword [esi + 0xa8]
fstp dword [esp + 0x1c]
fld dword [esp + 0x20]
fsub dword [esi + 0xac]
fst dword [esp + 0x20]
fmul dword [esp + 0x20]
fld dword [esp + 0x1c]
fmul dword [esp + 0x1c]
faddp st(1)
fld dword [esp + 0x18]
fmul dword [esp + 0x18]
faddp st(1)
fsqrt
fstp dword [esp + 0x68]
call fcn.0050dd40
mov ecx, edi
call fcn.0050dde0
fcomp dword [0x60477c]
mov ebx, 0xfffffffd
fnstsw ax
test ah, 0x44
jnp 0x485fc4
mov edx, dword [esi + 0x688]
imul edx, edx, 0x38
mov ecx, dword [edx + 0x611b20]
mov eax, 2
cmp ecx, eax
jne 0x485fc4
cmp dword [esp + 0x3c], eax
jne 0x485fc4
fld dword [esp + 0x7c]
fcomp dword [0x5dad2c]
fnstsw ax
test ah, 5
jp 0x485fc4
lea eax, [esp + 0x8c]
push eax
mov ecx, esi
call fcn.0047a340
jmp 0x485fd6
mov ecx, edi
call fcn.0050dc80
cmp eax, 1
jne 0x485fd6
and dword [esi + 0x139c], ebx
mov edx, dword [esi]
push 1
mov ecx, esi
call dword [edx + 0x5c]
test eax, eax
je 0x485fec
mov eax, dword [esp + 0x64]
push eax
push 0x11
jmp 0x486007
mov edx, dword [esi]
mov ecx, esi
call dword [edx + 0x2c]
test eax, eax
je 0x486000
mov eax, dword [esp + 0x64]
push eax
push 0x12
jmp 0x486007
mov ecx, dword [esp + 0x64]
push ecx
push 0x13
mov ecx, dword [0x62f45c]
call fcn.0041e120
mov eax, dword [esi + 0xa8]
mov edx, dword [esi + 0xa4]
mov ecx, dword [esi + 0xac]
mov dword [esp + 0x5c], eax
mov al, byte [esp + 0x23]
test al, al
mov dword [esp + 0x58], edx
mov dword [esp + 0x60], ecx
je 0x48613c
mov edx, dword [0x68008c]
mov eax, dword [edx + 0x1b80]
mov ecx, dword [esp + 0x68]
push eax
call fcn.004d3cf0
mov ecx, dword [0x68008c]
mov eax, dword [esi + 0xf8]
cmp eax, dword [ecx + 0x1b80]
mov edi, dword [esi + 0xf4]
jne 0x486138
mov ecx, dword [esp + 0x5c]
fld dword [esp + 0x5c]
mov eax, dword [esp + 0x58]
fadd dword [0x5da2e8]
mov edx, dword [esp + 0x60]
mov dword [esp + 0x28], ecx
mov dword [esp + 0x34], ecx
fstp dword [esp + 0x28]
push ebp
mov dword [esi + 0xf8], ebp
mov dword [esi + 0x100], ebp
mov dword [esi + 0xfc], ebp
mov ecx, dword [0x68008c]
mov dword [esp + 0x28], eax
mov dword [esp + 0x34], eax
mov dword [esp + 0x30], edx
mov dword [esp + 0x3c], edx
mov edx, dword [ecx + 0x1a80]
push 0x100011c
lea eax, [esp + 0xac]
push eax
mov dword [esp + 0x40], edx
lea edx, [esp + 0x3c]
push edx
lea eax, [esp + 0x34]
push eax
push edi
call fcn.004e6130
test eax, eax
je 0x48614a
mov eax, dword [esi + 0x114]
cmp eax, ebp
mov ebx, dword [esp + 0x138]
jle 0x486109
mov ecx, dword [esp + 0x140]
movzx edx, word [ecx + 2]
mov dword [esi + eax*4 + 0x114], edx
lea ecx, [esp + 0xa4]
call fcn.004e2c60
fld dword [eax + 4]
fcomp dword [esp + 0x5c]
fnstsw ax
test ah, 0x41
jne 0x48614e
lea ecx, [esp + 0xa4]
call fcn.004e2c60
mov eax, dword [eax + 4]
mov dword [esp + 0x5c], eax
jmp 0x48614e
mov ebx, eax
jmp 0x48614e
mov edi, dword [esi + 0xf4]
mov ebx, dword [esi + 0xf8]
jmp 0x48614e
mov ebx, dword [esp + 0x10]
fld dword [esi + 0x184]
fst dword [esi + 0x6b8]
fcomp dword [0x5da2d4]
fnstsw ax
test ah, 5
mov eax, dword [esi + 0x27c]
jp 0x486172
or eax, 2
jmp 0x486175
and eax, 0xfffffffd
fld dword [esi + 0x17c]
mov dword [esi + 0x27c], eax
call fcn.0058c3f0
fld dword [esi + 0x178]
fchs
push edi
fstp dword [esi + 0x6b4]
mov ecx, esi
mov dword [esi + 0x6b0], eax
call fcn.004ce0a0
push ebx
mov ecx, esi
call fcn.004cd3d0
mov ecx, esi
call fcn.004ce260
mov eax, dword [esi + 0xdf8]
cmp eax, 0xffffffff
je 0x48621b
mov edx, dword [0x6800f4]
lea ecx, [eax + eax*4]
test byte [edx + ecx*8 + 0x20], 1
je 0x4861d5
mov eax, dword [esi]
mov ecx, esi
call dword [eax + 0x78]
jmp 0x48621b
lea ecx, [esp + 0x58]
push ecx
mov ecx, esi
call fcn.00474a10
jmp 0x48621b
mov ecx, dword [esi + 0x30]
cmp dword [ecx + 0x164], edi
jne 0x48620a
add ecx, 0x108
mov edx, dword [ecx]
mov dword [esp + 0x30], edx
mov eax, dword [ecx + 4]
mov dword [esp + 0x34], eax
mov ecx, dword [ecx + 8]
mov dword [esp + 0x38], ecx
jmp 0x486214
lea edx, [esp + 0x30]
push edx
call fcn.004d2520
mov ecx, esi
call fcn.004ce260
mov ecx, dword [esi + 0x30]
mov eax, dword [ecx + 0x164]
xor ebx, ebx
cmp eax, ebx
push ebx
je 0x48623d
mov dword [esp + 0x3c], ebx
mov dword [esp + 0x38], ebx
mov dword [esp + 0x34], ebx
lea edx, [esp + 0x34]
jmp 0x486241
lea edx, [esp + 0x5c]
mov eax, dword [ecx]
push edx
call dword [eax]
mov eax, dword [esp + 0x7c]
mov edi, dword [esp + 0x3c]
push eax
push edi
mov ecx, esi
call fcn.004335c0
mov ecx, esi
call fcn.00433730
test eax, eax
je 0x4862a1
call fcn.00515750
test eax, eax
jne 0x4863e7
mov ecx, esi
call fcn.004354f0
test eax, eax
jne 0x4863e7
push 1
mov ecx, esi
call fcn.00498560
push 6
mov ecx, esi
call fcn.00498740
mov edx, dword [esi]
push 0x1b
mov ecx, esi
call dword [edx + 0x80]
jmp 0x4863e1
cmp edi, ebx
jne 0x4863e7
mov eax, dword [esi]
push 1
mov ecx, esi
call dword [eax + 0x5c]
test eax, eax
jne 0x4863e7
fld dword [esi + 0xc8]
fcomp dword [0x5da2f8]
fnstsw ax
test ah, 0x41
jne 0x4863e7
cmp dword [esi + 0x444], 2
jne 0x4863e7
fld dword [esi + 0xc4]
fmul dword [esi + 0xb8]
fld dword [esi + 0xc0]
fmul dword [esi + 0xb4]
faddp st(1)
fld dword [esi + 0xb0]
fmul dword [esi + 0xbc]
faddp st(1)
call fcn.0058c730
fstp dword [esp + 0x10]
mov ecx, dword [esp + 0x10]
and ecx, 0x7fffffff
mov dword [esp + 0x10], ecx
fld dword [esp + 0x10]
fmul dword [0x5da6bc]
fmul dword [0x5da6b8]
fcomp dword [0x5e85fc]
fnstsw ax
test ah, 0x41
jne 0x4863e7
call fcn.00515750
test eax, eax
jne 0x4863e7
mov ecx, esi
call fcn.00432e20
cmp eax, 1
jne 0x4863e7
lea edx, [esp + 0x14]
push edx
mov ecx, esi
call fcn.00401470
fld dword [esp + 0x14]
fsub dword [esi + 0x3b0]
fstp dword [esp + 0x14]
fld dword [esp + 0x18]
fsub dword [esi + 0x3b4]
fstp dword [esp + 0x18]
fld dword [esp + 0x1c]
fsub dword [esi + 0x3b8]
fst dword [esp + 0x1c]
fmul dword [esp + 0x1c]
fld dword [esp + 0x18]
fmul dword [esp + 0x18]
faddp st(1)
fld dword [esp + 0x14]
fmul dword [esp + 0x14]
faddp st(1)
fsqrt
fcomp dword [0x5e6c4c]
fnstsw ax
test ah, 5
jp 0x4863e7
mov ecx, esi
call fcn.004354f0
test eax, eax
jne 0x4863e7
push 1
mov ecx, esi
call fcn.00498560
push 6
mov ecx, esi
call fcn.00498740
mov eax, dword [esi]
push 0x1b
mov ecx, esi
call dword [eax + 0x80]
mov dword [esi + 0x364], ebx
mov ecx, dword [esi + 0x30]
cmp dword [ecx + 0x164], ebx
je 0x486410
mov dword [esp + 0x38], 0
mov dword [esp + 0x34], 0
mov dword [esp + 0x30], 0
lea edx, [esp + 0x30]
jmp 0x486428
mov eax, dword [esi + 0xe2c]
mov ecx, dword [esi + 0xe30]
mov dword [esp + 0x40], eax
mov dword [esp + 0x48], ecx
lea edx, [esp + 0x40]
mov ecx, esi
push edx
call fcn.004cd400
fld dword [esp + 0x40]
fcomp dword [esp + 0x4c]
fnstsw ax
test ah, 0x44
jp 0x486461
fld dword [esp + 0x44]
fcomp dword [esp + 0x50]
fnstsw ax
test ah, 0x44
jp 0x486461
fld dword [esp + 0x48]
fcomp dword [esp + 0x54]
fnstsw ax
test ah, 0x44
jp 0x486461
xor eax, eax
jmp 0x486466
mov eax, 1
mov ebp, dword [esi + 0x139c]
shl eax, 6
xor eax, ebp
and eax, 0x40
mov edx, ebp
xor edx, eax
mov eax, dword [esi + 0x488]
cmp eax, ebx
mov dword [esi + 0x139c], edx
je 0x48649b
mov eax, dword [eax + 4]
cmp dword [eax + 8], 2
jne 0x48649b
mov ecx, dword [esi + 0x30]
mov edx, dword [ecx]
push ebx
push ebx
call dword [edx + 0x18]
mov ecx, dword [esi + 0x4c]
lea eax, [esp + 0x58]
push eax
push ecx
mov ecx, dword [0x6800ec]
call fcn.004b2b00
mov edx, dword [esi]
mov ecx, esi
call dword [edx + 0x84]
test eax, eax
je 0x4864db
mov eax, dword [esi]
mov ecx, esi
call dword [eax + 0x84]
mov edx, dword [eax + 0x4c]
lea ecx, [esp + 0x58]
push ecx
mov ecx, dword [0x6800ec]
push edx
call fcn.004b2b00
mov eax, dword [esi]
push 1
mov ecx, esi
call dword [eax + 0x5c]
test eax, eax
je 0x4868aa
mov ecx, dword [esi + 0x30]
push 0
push 0
call fcn.004d1a30
mov ecx, dword [esi + 0x30]
lea ebx, [esi + 0x10e0]
mov ebp, 0x7f7fffff
mov dword [esp + 0x68], eax
mov dword [ebx], 0
mov dword [esi + 0x10e4], 0x1c
mov dword [esi + 0x1114], ebp
mov eax, dword [ecx + 0x164]
test eax, eax
lea edi, [esi + 0x10fc]
jne 0x48654a
add ecx, 0x108
mov eax, dword [ecx]
mov edx, edi
mov dword [edx], eax
mov eax, dword [ecx + 4]
mov dword [edx + 4], eax
mov ecx, dword [ecx + 8]
mov dword [edx + 8], ecx
jmp 0x486550
push edi
call fcn.004d2520
fld dword [edi + 4]
mov edx, dword [edi]
fadd dword [0x5da2d4]
mov eax, dword [edi + 8]
push 0
lea ecx, [esp + 0x18]
push ecx
fstp dword [edi + 4]
mov dword [edi], edx
mov dword [edi + 8], eax
mov ecx, dword [esi + 0x30]
push 0x15
call fcn.0055f4f0
mov ecx, dword [esi + 0x30]
mov eax, dword [ecx + 0x164]
test eax, eax
jne 0x4865a0
add ecx, 0x108
mov edx, dword [ecx]
mov dword [esp + 0x30], edx
mov eax, dword [ecx + 4]
mov dword [esp + 0x34], eax
mov ecx, dword [ecx + 8]
mov dword [esp + 0x38], ecx
jmp 0x4865aa
lea edx, [esp + 0x30]
push edx
call fcn.004d2520
mov eax, dword [esi + 0x1c]
lea ecx, [esp + 0x14]
push ecx
mov ecx, dword [0x68008c]
lea edx, [esp + 0x34]
push edx
push eax
call fcn.004e4660
push 0x3f800000
push ebx
push 0x47d6a0
push 0x41f00001
lea ecx, [esp + 0x24]
push ecx
mov ecx, dword [0x68008c]
push eax
mov dword [0x641678], ebx
call fcn.004e8f70
mov edx, dword [esi + 0x688]
imul edx, edx, 0x38
mov eax, dword [edx + 0x611b20]
test eax, eax
jne 0x4866ea
fld dword [esi + 0x1114]
fcomp dword [0x5da2d8]
fnstsw ax
test ah, 5
jp 0x4866ea
mov ecx, dword [esi + 0x30]
lea eax, [esp + 0x4c]
push eax
add ecx, 0x30
call fcn.00471da0
mov ecx, dword [esp + 0x50]
mov eax, ecx
and eax, 0x7fffffff
mov dword [esp + 0x3c], ecx
mov dword [esp + 0x3c], eax
fld dword [esp + 0x3c]
fcomp dword [0x5dad2c]
fnstsw ax
test ah, 0x41
jp 0x4866ea
fld dword [esi + 0x1108]
mov edx, dword [esi + 0x1108]
fld dword [esi + 0x1110]
mov ecx, dword [esi + 0x1110]
fld dword [esp + 0x54]
mov dword [esp + 0x3c], edx
fld dword [esp + 0x54]
mov eax, edx
fmul st(3)
mov edx, ecx
fld dword [esp + 0x4c]
mov dword [esp + 0x10], edx
fmul st(3)
mov dword [esp + 0x78], ecx
mov dword [esp + 0x24], eax
push 0x41a00000
faddp st(1)
fld st(1)
fmul st(2)
fld dword [esp + 0x50]
fmul dword [esp + 0x50]
faddp st(1)
fsqrt
fstp st(4)
fld dword [esp + 0x14]
fmul dword [esp + 0x7c]
fld dword [esp + 0x28]
fmul dword [esp + 0x40]
faddp st(1)
fsqrt
fst dword [esp + 0x14]
fmulp st(4)
fxch st(3)
fdivp st(3)
fxch st(2)
fstp dword [esp + 0x14]
fstp st(1)
fstp st(0)
call fcn.004beaf0
fcomp dword [esp + 0x14]
add esp, 4
fnstsw ax
test ah, 5
jp 0x4866ea
or dword [esi + 0x139c], 0x100000
mov eax, dword [esi + 0x688]
imul eax, eax, 0x38
mov dword [esi + 0x114c], ebp
mov ecx, dword [eax + 0x611b20]
test ecx, ecx
jne 0x486890
mov ecx, dword [0x5e82bc]
mov edx, dword [0x5e82c4]
lea eax, [esp + 0x4c]
mov dword [esp + 0x28], ecx
push eax
mov ecx, esi
mov dword [esp + 0x28], 0
mov dword [esp + 0x30], edx
call fcn.004ce0e0
mov ecx, dword [esi + 0x30]
mov eax, dword [ecx + 0x164]
test eax, eax
jne 0x486758
add ecx, 0x108
mov edx, dword [ecx]
mov dword [esp + 0x14], edx
mov eax, dword [ecx + 4]
mov dword [esp + 0x18], eax
mov ecx, dword [ecx + 8]
mov dword [esp + 0x1c], ecx
jmp 0x486762
lea edx, [esp + 0x14]
push edx
call fcn.004d2520
mov eax, dword [0x68aeec]
mov edx, dword [0x68aee8]
mov edi, eax
shl edi, 6
add edi, edx
inc eax
mov ecx, edi
mov dword [0x68aeec], eax
call fcn.00529e60
fld dword [esp + 0x54]
push ecx
fchs
mov ecx, edi
fstp dword [esp]
call fcn.0052a080
mov eax, dword [esp + 0x4c]
push eax
mov ecx, edi
call fcn.00529ee0
fld dword [esp + 0x50]
push ecx
fchs
mov ecx, edi
fstp dword [esp]
call fcn.00529fb0
lea ecx, [esp + 0x4c]
push ecx
lea edx, [esp + 0x28]
push edx
mov ecx, edi
call fcn.00529bc0
fld dword [esp + 0x14]
fadd dword [esp + 0x4c]
lea eax, [esi + 0x1118]
mov dword [0x641678], eax
mov ecx, dword [esi + 0x30]
fstp dword [esp + 0x14]
mov dword [eax], 0
fld dword [esp + 0x18]
mov dword [esi + 0x111c], 0x1c
fadd dword [esp + 0x50]
lea edi, [esi + 0x1134]
fstp dword [esp + 0x18]
fld dword [esp + 0x1c]
fadd dword [esp + 0x54]
fstp dword [esp + 0x1c]
mov eax, dword [ecx + 0x164]
test eax, eax
jne 0x48682c
add ecx, 0x108
mov edx, dword [ecx]
mov eax, edi
mov dword [eax], edx
mov edx, dword [ecx + 4]
mov dword [eax + 4], edx
mov ecx, dword [ecx + 8]
mov dword [eax + 8], ecx
jmp 0x486832
push edi
call fcn.004d2520
fld dword [edi + 4]
mov edx, dword [edi]
fadd dword [0x5da2d4]
mov eax, dword [edi + 8]
mov dword [edi], edx
lea ecx, [esp + 0x14]
push ecx
fstp dword [edi + 4]
mov dword [edi + 8], eax
mov eax, dword [esi + 0x1c]
mov ecx, dword [0x68008c]
lea edx, [esp + 0x34]
push edx
push eax
call fcn.004e4660
mov ecx, dword [0x641678]
mov edx, dword [0x641698]
push 0x3f800000
push ecx
push 0x47d6a0
push edx
lea ecx, [esp + 0x24]
push ecx
mov ecx, dword [0x68008c]
push eax
call fcn.004e8f70
dec dword [0x68aeec]
mov edx, dword [esp + 0x68]
mov ecx, dword [esi + 0x30]
push 0
push edx
call fcn.004d1a30
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x160
ret
mov ebp, 0x7f7fffff
pop edi
mov dword [esi + 0x1114], ebp
mov dword [esi + 0x114c], ebp
pop esi
pop ebp
pop ebx
add esp, 0x160
ret