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

Disassembly:
push 0xffffffffffffffff
mov eax, dword fs:[0]
push 0x4ccb59
push eax
mov dword fs:[0], esp
sub esp, 0x92c
push ebx
xor ebx, ebx
push ebp
push esi
mov esi, ecx
mov eax, dword [esi + 0xc5c]
fld dword [esi + 0xc50]
dec eax
fmul dword [0x4d3548]
xor ecx, ecx
cmp eax, ebx
setle cl
fst dword [esi + 0xc50]
xor edx, edx
fcomp qword [0x4d3540]
push edi
dec ecx
and eax, ecx
mov dword [esi + 0xc5c], eax
mov eax, dword [esi + 0x320]
dec eax
cmp eax, ebx
setle dl
xor ecx, ecx
dec edx
and eax, edx
mov dword [esi + 0x320], eax
mov eax, dword [esi + 0x2f0]
dec eax
cmp eax, ebx
setle cl
xor edx, edx
dec ecx
and eax, ecx
mov dword [esi + 0x2f0], eax
mov eax, dword [esi + 0x2f4]
dec eax
cmp eax, ebx
setle dl
dec edx
and eax, edx
mov dword [esi + 0x2f4], eax
fnstsw ax
test ah, 5
jp 0x405ea4
mov dword [esi + 0xc50], ebx
mov ecx, dword [esi + 0xc54]
cmp ecx, ebx
je 0x405eba
mov eax, dword [esi + 0xc50]
push eax
call fcn.0045c600
mov eax, dword [esi + 0x320]
or ebp, 0xffffffff
cmp eax, ebx
je 0x405fa1
push 0x28
call fcn.004bdcbb
add esp, 4
mov dword [esp + 0x10], eax
cmp eax, ebx
mov dword [esp + 0x944], ebx
je 0x405ef9
mov ecx, dword [esi + 0x14]
mov edx, dword [ecx + 0x87c]
push edx
mov ecx, eax
call fcn.00443980
mov edi, eax
jmp 0x405efb
xor edi, edi
push 1
push 0x19
mov ecx, 0x4fa478
mov dword [esp + 0x94c], ebp
call fcn.00461480
mov dword [esp + 0x18], eax
fild dword [esp + 0x18]
push 1
push 0x19
mov ecx, 0x4fa478
fadd dword [esi + 0x16c]
fstp dword [esp + 0x34]
call fcn.00461480
mov dword [esp + 0x18], eax
fild dword [esp + 0x18]
push 1
push 0x19
mov ecx, 0x4fa478
fadd dword [esi + 0x168]
fstp dword [esp + 0x1c]
call fcn.00461480
mov dword [esp + 0x18], eax
fild dword [esp + 0x18]
lea eax, [edi + 8]
lea ecx, [esp + 0x68]
cmp eax, ecx
fadd dword [esi + 0x164]
je 0x405f7b
mov edx, dword [esp + 0x14]
fstp dword [eax]
mov ecx, dword [esp + 0x2c]
mov dword [eax + 4], edx
mov dword [eax + 8], ecx
jmp 0x405f7d
fstp st(0)
lea eax, [edi + 0x14]
lea edx, [esp + 0x68]
cmp eax, edx
je 0x405f90
mov dword [eax], ebx
mov dword [eax + 4], ebx
mov dword [eax + 8], ebx
mov eax, dword [esi + 0x14]
add eax, 0x3b40
push edi
lea ecx, [eax + 4]
call fcn.00456f30
mov ecx, dword [esi + 0x748]
fld dword [esi + 0x74c]
cmp ecx, 1
jne 0x405fd1
fsub dword [0x4d3310]
fld dword [0x4d3538]
fcomp st(1)
fnstsw ax
test ah, 0x41
jne 0x405fee
fstp st(0)
fld dword [0x4d3538]
jmp 0x405fee
fadd dword [0x4d3310]
fld dword [0x4d3370]
fcomp st(1)
fnstsw ax
test ah, 5
jp 0x405fee
fstp st(0)
fld dword [0x4d3370]
cmp ecx, 2
fstp dword [esi + 0x74c]
fld dword [esi + 0x750]
jne 0x40601e
fsub dword [0x4d3310]
fld dword [0x4d3538]
fcomp st(1)
fnstsw ax
test ah, 0x41
jne 0x40603b
fstp st(0)
fld dword [0x4d3538]
jmp 0x40603b
fadd dword [0x4d3310]
fld dword [0x4d3370]
fcomp st(1)
fnstsw ax
test ah, 5
jp 0x40603b
fstp st(0)
fld dword [0x4d3370]
mov eax, dword [esi + 0x744]
fstp dword [esi + 0x750]
dec eax
xor ecx, ecx
cmp eax, ebx
setl cl
dec ecx
and eax, ecx
mov dword [esi + 0x744], eax
dec dword [esi + 0x300]
jns 0x406066
mov dword [esi + 0x300], ebx
mov edx, dword [esi + 0x2a0]
dec edx
mov eax, edx
cmp eax, ebx
mov dword [esi + 0x2a0], edx
jg 0x406083
mov dword [esi + 0x29c], 0x3f800000
dec dword [esi + 0xc]
jne 0x4060a1
mov eax, dword [esi + 0xc28]
cmp eax, ebx
je 0x4060a1
push eax
call fcn.004be35a
add esp, 4
mov dword [esi + 0xc28], ebx
mov al, byte [esi + 0x14c]
test al, al
jne 0x4082c9
cmp dword [esi + 0x18], ebp
je 0x4061b3
mov al, byte [esi + 0x768]
test al, al
je 0x4061b3
mov al, byte [esi + 0x310]
test al, al
je 0x406107
fld dword [esi + 0x16c]
lea eax, [esi + 0x304]
fld dword [esi + 0x168]
lea edx, [esp + 0x68]
cmp eax, edx
fld dword [esi + 0x164]
je 0x4060fa
fstp dword [eax]
fstp dword [eax + 4]
fstp dword [eax + 8]
jmp 0x406100
fstp st(0)
fstp st(0)
fstp st(0)
mov byte [esi + 0x310], 0
fld dword [esi + 0x16c]
mov eax, dword [esi + 0x164]
fld dword [esi + 0x168]
mov dword [esp + 0x30], eax
fld dword [esi + 0x30c]
fsub st(2)
fstp dword [esp + 0x18]
fld dword [esi + 0x308]
fsub st(1)
fstp st(2)
fstp st(0)
fld dword [esi + 0x304]
fsub dword [esp + 0x30]
fld st(1)
fmulp st(2)
fld dword [esp + 0x18]
fmul dword [esp + 0x18]
faddp st(2)
fld st(0)
fmul st(1)
faddp st(2)
fstp st(0)
fcom dword [0x4d3370]
fnstsw ax
test ah, 0x41
jnp 0x4061b1
fsqrt
fcomp dword [0x4d33ec]
fnstsw ax
test ah, 0x41
jne 0x4061b3
mov eax, dword [esi + 0x18]
mov ecx, dword [esi + 0x10]
lea edx, [eax + eax*4]
shl edx, 5
mov al, byte [edx + ecx + 0x7b2]
test al, al
jne 0x4061b3
mov eax, dword [esi + 0x18]
lea eax, [eax + eax*4]
shl eax, 5
mov edx, ecx
push 0x3f800000
lea edi, [eax + edx + 0x7c0]
call fcn.0042acd0
fadd dword [edi]
fstp dword [edi]
mov byte [esi + 0x310], 1
jmp 0x4061b3
fstp st(0)
xor eax, eax
lea ecx, [esi + 0x778]
mov dword [ecx], eax
mov dword [ecx + 4], eax
mov dword [ecx + 8], eax
mov dword [ecx + 0xc], eax
lea eax, [esi + 0x7c8]
mov edi, 0x10
mov ecx, dword [eax]
dec ecx
xor edx, edx
cmp ecx, ebx
setl dl
add eax, 4
dec edx
and ecx, edx
dec edi
mov dword [eax - 4], ecx
jne 0x4061d1
mov eax, dword [esi + 0x808]
dec eax
xor ecx, ecx
cmp eax, ebx
setl cl
xor edx, edx
dec ecx
and eax, ecx
mov dword [esi + 0x808], eax
mov eax, dword [esi + 0x80c]
dec eax
cmp eax, ebx
setl dl
dec edx
and eax, edx
mov dword [esi + 0x80c], eax
mov al, byte [esi + 0x324]
test al, al
je 0x40624b
fld dword [esi + 0x2fc]
fsub dword [0x4d3438]
fst dword [esi + 0x2fc]
fcomp dword [0x4d3370]
fnstsw ax
test ah, 5
jp 0x40624b
mov dword [esi + 0x2fc], ebx
mov byte [esi + 0x2e8], 1
mov ecx, dword [esi + 0x2d8]
dec ecx
mov eax, ecx
cmp eax, ebx
mov dword [esi + 0x2d8], ecx
jg 0x40626b
mov byte [esi + 0x2d5], 0
mov dword [esi + 0x2d8], ebx
lea ebp, [esi + 0x810]
mov ecx, ebp
call fcn.00456dc0
test eax, eax
je 0x406660
push 0
lea ecx, [esp + 0x110]
call fcn.00456930
mov edi, 1
mov ecx, ebp
mov dword [esp + 0x944], edi
mov dword [esp + 0x1c], 0
call fcn.004569d0
mov ebx, eax
xor eax, eax
mov dword [ebp + ebx*4 + 8], eax
cmp dword [ebp + 4], eax
jle 0x4062c2
mov eax, dword [ebp + 0x40c]
mov eax, dword [eax]
mov dword [ebp + ebx*4 + 8], edi
test eax, eax
mov edi, eax
je 0x4063d0
lea esp, [esp]
lea ecx, [esp + 0xc8]
call fcn.0045b1f0
mov ecx, dword [edi + 8]
mov edx, dword [edi + 4]
mov eax, dword [edi]
push ecx
push edx
push eax
lea ecx, [esp + 0xd4]
mov byte [esp + 0x950], 2
call fcn.0045b2d0
lea eax, [esi + 0x20]
push eax
lea ecx, [esp + 0xd0]
push ecx
lea edx, [esp + 0xd4]
push edx
call fcn.0045db66
fld dword [esi + 0x284]
fchs
fld dword [esp + 0xe0]
fadd dword [esp + 0xd0]
fmul dword [0x4d3370]
fld dword [esp + 0xf0]
fmul st(2)
faddp st(1)
fadd dword [esp + 0x100]
fstp st(1)
fld dword [esi + 0x284]
fmul dword [0x4d33f0]
fsubr dword [esi + 0x168]
fxch st(1)
fcompp
fnstsw ax
test ah, 5
jp 0x406399
mov ecx, dword [esp + 0x1c]
mov al, byte [edi + 0x10]
inc ecx
test al, al
mov dword [esp + 0x1c], ecx
jne 0x406393
mov ecx, dword [edi + 0xc]
dec ecx
mov eax, ecx
test eax, eax
mov dword [edi + 0xc], ecx
jg 0x406393
push edi
mov ecx, ebp
call fcn.00456db0
push edi
lea ecx, [esp + 0x110]
call fcn.00456f30
mov byte [edi + 0x10], 1
jmp 0x40639d
mov byte [edi + 0x10], 0
lea ecx, [esp + 0xc8]
mov byte [esp + 0x944], 1
call fcn.0045b160
mov eax, dword [ebp + ebx*4 + 8]
cmp eax, dword [ebp + 4]
jge 0x4063d0
mov ecx, dword [ebp + 0x40c]
mov edi, dword [ecx + eax*4]
inc eax
test edi, edi
mov dword [ebp + ebx*4 + 8], eax
jne 0x4062d0
mov ecx, dword [esi + 0x1a4]
lea eax, [ecx + 0xca4]
lea edx, [esp + 0x20]
cmp edx, eax
je 0x4063fa
fld dword [eax]
mov edx, dword [eax + 4]
fst dword [esp + 0x20]
mov dword [esp + 0x24], edx
fld dword [eax + 8]
fst dword [esp + 0x28]
jmp 0x406402
fld dword [esp + 0x20]
fld dword [esp + 0x28]
mov edx, dword [esp + 0x1c]
test edx, edx
jle 0x406431
mov eax, edx
lea esp, [esp]
dec eax
fxch st(1)
fmul dword [0x4d3534]
fxch st(1)
fmul dword [0x4d3534]
jne 0x406410
fst dword [esp + 0x28]
fxch st(1)
fst dword [esp + 0x20]
fstp st(1)
jmp 0x406433
fstp st(0)
lea eax, [ecx + 0xca4]
lea ecx, [esp + 0x20]
cmp eax, ecx
je 0x406453
mov ecx, dword [esp + 0x24]
fstp dword [eax]
mov dword [eax + 4], ecx
mov ecx, dword [esp + 0x28]
mov dword [eax + 8], ecx
jmp 0x406455
fstp st(0)
test edx, edx
jle 0x4065e1
push 0
push 5
mov ecx, 0x4fa478
call fcn.00461480
test eax, eax
jne 0x4065e1
fld dword [esp + 0x24]
fmul dword [esp + 0x24]
fld dword [esp + 0x28]
fmul dword [esp + 0x28]
faddp st(1)
fld dword [esp + 0x20]
fmul dword [esp + 0x20]
faddp st(1)
fcom dword [0x4d3370]
fnstsw ax
test ah, 0x41
jp 0x4064a6
fstp st(0)
fld dword [0x4d3370]
jmp 0x4064a8
fsqrt
fcomp qword [0x4d3448]
fnstsw ax
test ah, 0x41
jne 0x4065e1
mov edx, dword [esi + 0x14]
fld dword [esi + 0x16c]
mov ecx, dword [edx + 0x8b4]
fld dword [esi + 0x168]
fld dword [esi + 0x164]
push 0x3f800000
sub esp, 0xc
mov eax, esp
lea edx, [esp + 0x78]
cmp eax, edx
je 0x4064fa
mov dword [eax], 0
mov dword [eax + 4], 0xbf800000
mov dword [eax + 8], 0
sub esp, 0xc
mov eax, esp
lea edx, [esp + 0x84]
cmp eax, edx
je 0x406514
fstp dword [eax]
fstp dword [eax + 4]
fstp dword [eax + 8]
jmp 0x40651a
fstp st(0)
fstp st(0)
fstp st(0)
lea eax, [esp + 0x78]
push eax
call fcn.004694b0
fld dword [esp + 0x60]
fsub dword [esi + 0x168]
fabs
fld dword [esi + 0x284]
fadd dword [0x4d3494]
fcompp
fnstsw ax
test ah, 1
jne 0x4065e1
fld dword [esi + 0x16c]
mov ecx, dword [esi + 0x164]
fld dword [esi + 0x284]
push 0x20
fadd dword [0x4d3530]
mov dword [esp + 0x60], ecx
fsubr dword [esi + 0x168]
fstp dword [esp + 0x64]
fstp dword [esp + 0x68]
call fcn.004bdcbb
add esp, 4
mov dword [esp + 0x10], eax
test eax, eax
mov byte [esp + 0x944], 3
je 0x4065c5
sub esp, 0xc
mov ecx, esp
lea edx, [esp + 0x68]
cmp ecx, edx
mov dword [esp + 0x24], esp
je 0x4065b2
mov edx, dword [esp + 0x68]
mov dword [ecx], edx
mov edx, dword [esp + 0x6c]
mov dword [ecx + 4], edx
mov edx, dword [esp + 0x70]
mov dword [ecx + 8], edx
mov ecx, dword [esi + 0x14]
mov edx, dword [ecx + 0x87c]
push edx
mov ecx, eax
call fcn.004490e0
jmp 0x4065c7
xor eax, eax
mov ecx, dword [esi + 0x14]
add ecx, 0x3b40
push eax
add ecx, 4
mov byte [esp + 0x948], 1
call fcn.00456f30
lea ecx, [esp + 0x10c]
call fcn.004569d0
lea edi, [esp + eax*4 + 0x114]
mov dword [edi], 0
mov eax, dword [esp + 0x110]
test eax, eax
jg 0x406609
xor ecx, ecx
jmp 0x406618
mov eax, dword [esp + 0x518]
mov ecx, dword [eax]
mov dword [edi], 1
test ecx, ecx
je 0x406647
lea esp, [esp]
push ecx
call fcn.004bde8d
mov eax, dword [edi]
mov ecx, dword [esp + 0x114]
add esp, 4
cmp eax, ecx
jge 0x406647
mov ecx, dword [esp + 0x518]
mov ecx, dword [ecx + eax*4]
inc eax
test ecx, ecx
mov dword [edi], eax
jne 0x406620
lea ecx, [esp + 0x10c]
mov dword [esp + 0x944], 0xffffffff
call fcn.00456970
xor ebx, ebx
mov al, byte [esi + 0x2f9]
test al, al
je 0x40669a
fld dword [esi + 0x2fc]
fadd dword [0x4d352c]
fst dword [esi + 0x2fc]
fcomp dword [0x4d3310]
fnstsw ax
test ah, 0x41
jne 0x40669a
mov dword [esi + 0x2fc], 0x3f800000
mov byte [esi + 0x2f9], 0
mov ecx, dword [esi + 0x16c]
mov edx, dword [esi + 0x164]
mov eax, dword [esi + 0x168]
mov dword [esi + 0x160], ecx
mov ecx, dword [esi + 0x170]
mov dword [esi + 0x158], edx
mov edx, dword [esi + 0x178]
mov dword [esi + 0x15c], eax
mov eax, dword [esi + 0x174]
mov dword [esp + 0x98], ecx
push ebx
lea ecx, [esp + 0x528]
mov dword [esp + 0x5c], edx
mov dword [esp + 0x20], eax
mov dword [esi + 0x178], ebx
mov dword [esi + 0x174], ebx
mov dword [esi + 0x170], ebx
call fcn.00456930
mov edx, dword [esi + 0x14]
mov eax, dword [edx + 0x8b4]
push eax
lea ecx, [esp + 0x528]
mov dword [esp + 0x948], 4
call fcn.00456ea0
fld dword [esi + 0x188]
mov eax, dword [esi + 0x1a4]
fstp dword [eax + 0xc70]
mov ecx, dword [esi + 0x1a4]
lea eax, [ecx + 0xca4]
lea edx, [esp + 0x5c]
cmp edx, eax
je 0x406759
mov edx, dword [eax]
mov dword [esp + 0x5c], edx
mov edx, dword [eax + 4]
mov eax, dword [eax + 8]
mov dword [esp + 0x60], edx
mov dword [esp + 0x64], eax
fld dword [esp + 0x1c]
mov eax, dword [esp + 0x1c]
fmul dword [esi + 0x1ac]
mov edx, dword [esp + 0x98]
fld dword [esp + 0x58]
mov dword [esp + 0x84], eax
fmul dword [esi + 0x1b0]
mov dword [esp + 0x80], edx
mov edx, dword [esp + 0x58]
mov dword [esp + 0x88], edx
faddp st(1)
fld dword [esp + 0x98]
fmul dword [esi + 0x1a8]
faddp st(1)
fchs
fld st(0)
fmul dword [esi + 0x1b0]
fld st(1)
fmul dword [esi + 0x1ac]
fstp dword [esp + 0x18]
fxch st(1)
fmul dword [esi + 0x1a8]
fstp dword [esp + 0x30]
fadd dword [esp + 0x58]
fld dword [esp + 0x18]
fadd dword [esp + 0x1c]
fld dword [esp + 0x98]
fadd dword [esp + 0x30]
fld st(0)
fmul st(1)
fld st(2)
fmul st(3)
faddp st(1)
fld st(3)
fmul st(4)
faddp st(1)
fcom dword [0x4d3370]
fnstsw ax
test ah, 0x41
jp 0x406802
fstp st(0)
fld dword [0x4d3370]
jmp 0x406804
fsqrt
fld dword [esp + 0x98]
fmul dword [esp + 0x98]
fld dword [esp + 0x1c]
fmul dword [esp + 0x1c]
faddp st(1)
fld dword [esp + 0x58]
fmul dword [esp + 0x58]
faddp st(1)
fcom dword [0x4d3370]
fnstsw ax
test ah, 0x41
jp 0x40683d
fstp st(0)
fld dword [0x4d3370]
jmp 0x40683f
fsqrt
fxch st(1)
fcomp st(1)
fnstsw ax
fstp st(0)
test ah, 0x44
jp 0x406863
fstp dword [esp + 0x80]
fstp dword [esp + 0x84]
fstp dword [esp + 0x88]
jmp 0x406869
fstp st(0)
fstp st(0)
fstp st(0)
mov eax, dword [esp + 0x80]
mov edx, dword [esp + 0x84]
mov dword [esp + 0x8c], eax
mov eax, dword [esp + 0x88]
mov dword [esp + 0x90], edx
mov edx, dword [ecx]
mov dword [esp + 0x94], eax
call dword [edx + 0x18]
push 0x20
call fcn.004bdcbb
add esp, 4
mov dword [esp + 0x10], eax
cmp eax, ebx
mov byte [esp + 0x944], 5
je 0x4068c3
lea ecx, [esp + 0x524]
push ecx
mov ecx, eax
call fcn.00466a50
jmp 0x4068c5
xor eax, eax
mov dword [eax + 0x10], 0xa
mov edx, dword [esi + 0x278]
mov dword [eax + 0xc], edx
cmp dword [esi + 0x80c], ebx
mov dword [esp + 0x1c], eax
mov byte [esp + 0x944], 4
jg 0x4068f5
mov ecx, dword [esi + 0x1a4]
mov edx, dword [ecx]
push eax
call dword [edx + 0x14]
push 0x14
call fcn.004bdcbb
add esp, 4
mov dword [esp + 0x10], eax
cmp eax, ebx
mov byte [esp + 0x944], 6
je 0x406922
mov ecx, dword [esi + 0x14]
add ecx, 0x2a18
push ecx
mov ecx, eax
call fcn.0046a460
jmp 0x406924
xor eax, eax
mov cl, byte [esi + 0x324]
test cl, cl
mov dword [esp + 0x18], eax
mov byte [esp + 0x944], 4
jne 0x40694f
mov edx, dword [esi + 0x27c]
mov dword [eax + 0xc], edx
mov ecx, dword [esi + 0x1a4]
mov edx, dword [ecx]
push eax
call dword [edx + 0x14]
mov eax, dword [esi + 0x1a4]
fld dword [esi + 0x284]
fstp dword [eax + 0xc78]
mov eax, dword [esi + 0x16c]
fld dword [esi + 0x284]
mov ecx, dword [esi + 0x168]
fld dword [esi + 0x284]
mov edx, dword [esi + 0x164]
mov dword [esp + 0x2c], eax
fstp dword [esp + 0x34]
mov eax, dword [esi + 0x284]
mov dword [esp + 0x30], eax
fstp dword [esp + 0x38]
fld dword [esi + 0x16c]
push 0x3c23d70a
fld dword [esi + 0x168]
lea eax, [esp + 0x34]
push eax
fstp dword [esp + 0x80]
lea eax, [esp + 0x88]
push eax
fstp dword [esp + 0x88]
mov dword [esp + 0x20], ecx
mov ecx, edx
lea eax, [esp + 0x80]
mov dword [esp + 0x80], ecx
mov ecx, dword [esi + 0x1a4]
push eax
lea eax, [esp + 0x78]
mov dword [esp + 0x30], edx
mov edx, dword [ecx]
push eax
call dword [edx + 4]
fld dword [eax + 8]
fld dword [eax + 4]
mov ecx, dword [eax]
fstp dword [esp + 0x40]
mov eax, dword [esp + 0x40]
mov edx, ecx
mov dword [esp + 0x50], eax
fstp dword [esp + 0x44]
mov al, byte [esi + 0x2cc]
test al, al
mov dword [esp + 0x3c], ecx
mov ecx, dword [esp + 0x44]
mov dword [esp + 0x4c], edx
mov dword [esp + 0x54], ecx
jne 0x406a32
mov al, byte [esi + 0x2f9]
test al, al
jne 0x406a32
mov al, byte [esi + 0x2f8]
test al, al
je 0x406a66
fld dword [esi + 0x16c]
mov edx, dword [esi + 0x164]
fld dword [esi + 0x168]
mov eax, edx
fstp dword [esp + 0x40]
mov ecx, dword [esp + 0x40]
mov dword [esp + 0x3c], edx
fstp dword [esp + 0x44]
mov edx, dword [esp + 0x44]
mov dword [esp + 0x4c], eax
mov dword [esp + 0x50], ecx
mov dword [esp + 0x54], edx
fld dword [esp + 0x20]
fsub dword [esp + 0x4c]
fld dword [esp + 0x14]
fsub dword [esp + 0x50]
fld dword [esp + 0x2c]
fsub dword [esp + 0x54]
fld st(2)
fmulp st(3)
fld st(0)
fmul st(1)
faddp st(3)
fld st(1)
fmul st(2)
faddp st(3)
fstp st(0)
fstp st(0)
fcom dword [0x4d3370]
fnstsw ax
test ah, 0x41
jp 0x406aa9
fstp st(0)
fld dword [0x4d3370]
jmp 0x406aab
fsqrt
fmul dword [0x4d33d8]
fcom qword [0x4d3430]
fnstsw ax
test ah, 5
jp 0x406ac6
fstp st(0)
fld dword [0x4d3370]
fcom qword [0x4d3428]
fnstsw ax
test ah, 0x41
jne 0x406adb
fstp st(0)
fld dword [0x4d33d8]
fadd dword [esi + 0x150]
fcom dword [0x4d3424]
fst dword [esi + 0x150]
fnstsw ax
test ah, 1
jne 0x406b02
fsub dword [0x4d3420]
fstp dword [esi + 0x150]
jmp 0x406b04
fstp st(0)
mov ecx, dword [esi + 0x1a4]
mov eax, dword [ecx]
call dword [eax + 0x18]
fld dword [esi + 0x25c]
fmul qword [0x4d3418]
mov al, byte [esi + 0x324]
test al, al
mov byte [esp + 0x4b], 0
fstp dword [esi + 0x25c]
mov byte [esi + 0x14d], 0
jne 0x40717e
mov ecx, dword [esi + 0x1a4]
add ecx, 0x18
call fcn.004569d0
mov ebx, eax
mov eax, dword [esi + 0x1a4]
add eax, 0x18
mov dword [eax + ebx*4 + 8], 0
mov ecx, dword [eax + 4]
test ecx, ecx
jg 0x406b67
xor ebp, ebp
jmp 0x406b77
mov ecx, dword [eax + 0x40c]
mov ebp, dword [ecx]
mov dword [eax + ebx*4 + 8], 1
test ebp, ebp
je 0x40717e
nop
cmp dword [ebp], 2
jne 0x406bd3
mov edx, dword [esp + 0x1c]
cmp dword [ebp + 0x64], edx
jne 0x406bd3
mov al, byte [esi + 0x768]
test al, al
je 0x406bd3
mov al, byte [esi + 0x324]
test al, al
jne 0x406bd3
fld dword [esi + 0x16c]
lea eax, [esi + 0x2dc]
fld dword [esi + 0x168]
lea ecx, [esp + 0x68]
cmp eax, ecx
fld dword [esi + 0x164]
je 0x406bcd
fstp dword [eax]
fstp dword [eax + 4]
fstp dword [eax + 8]
jmp 0x406bd3
fstp st(0)
fstp st(0)
fstp st(0)
cmp dword [ebp], 1
jne 0x407154
mov edx, dword [esp + 0x1c]
cmp dword [ebp + 0x64], edx
jne 0x406c79
mov eax, dword [esi + 0x2ec]
mov edi, 2
cmp eax, edi
jl 0x406c0a
mov al, byte [esi + 0x2e9]
test al, al
jne 0x406c0a
mov ecx, esi
call fcn.00403770
cmp byte [esi + 0x2e9], 1
mov byte [esp + 0x4b], 1
jne 0x406c79
mov ecx, dword [esi + 0x1a4]
fld dword [ecx + 0xca8]
fcomp dword [0x4d3370]
fnstsw ax
test ah, 1
jne 0x406c3b
mov eax, dword [esi + 0x748]
test eax, eax
je 0x406c72
fld dword [ecx + 0xca4]
fcomp dword [0x4d3370]
fnstsw ax
test ah, 0x41
jp 0x406c57
cmp dword [esi + 0x748], 1
je 0x406c72
fld dword [ecx + 0xcac]
fcomp dword [0x4d3370]
fnstsw ax
test ah, 1
jne 0x406c79
cmp dword [esi + 0x748], edi
jne 0x406c79
mov eax, dword [esi]
mov ecx, esi
call dword [eax + 0x20]
cmp dword [ebp], 1
jne 0x407154
mov ecx, dword [esp + 0x18]
cmp dword [ebp + 0x64], ecx
jne 0x407154
mov edi, dword [ebp + 0xc]
fld dword [esi + 0x16c]
fld dword [esi + 0x168]
mov eax, dword [edi + 0x168]
fld dword [esi + 0x164]
mov edx, dword [edi + 0x16c]
fld dword [edi + 0x164]
mov dword [esp + 0x2c], eax
fxch st(1)
mov dword [esp + 0x10], edx
fsub st(1)
fstp dword [esp + 0x20]
fstp st(0)
fsub dword [esp + 0x2c]
fstp dword [esp + 0x24]
fsub dword [esp + 0x10]
fstp dword [esp + 0x28]
fld dword [esp + 0x20]
fmul dword [0x4d3528]
fstp dword [esp + 0x20]
fld dword [esp + 0x24]
fmul dword [0x4d3528]
fld dword [esp + 0x28]
fmul dword [0x4d3528]
fstp dword [esp + 0x28]
fld dword [esp + 0x20]
fmul dword [esp + 0x20]
fld st(1)
fmul st(2)
faddp st(1)
fld dword [esp + 0x28]
fmul dword [esp + 0x28]
faddp st(1)
fld st(0)
fcom dword [0x4d3370]
fnstsw ax
test ah, 0x41
jnp 0x406d37
fsqrt
fcomp dword [0x4d3420]
fnstsw ax
test ah, 5
jp 0x406d7f
jmp 0x406d39
fstp st(0)
fcom dword [0x4d3370]
fnstsw ax
test ah, 0x41
jp 0x406d50
fstp st(0)
fld dword [0x4d3370]
jmp 0x406d65
fsqrt
fcom dword [0x4d3370]
fnstsw ax
test ah, 0x41
jne 0x406d65
fdivr dword [0x4d3420]
fld dword [esp + 0x20]
fmul st(1)
fstp dword [esp + 0x20]
fxch st(1)
fmul st(1)
fxch st(1)
fld dword [esp + 0x28]
fmul st(1)
fstp dword [esp + 0x28]
mov edx, dword [edi]
fstp st(0)
fld dword [esp + 0x28]
push 0x3f800000
fchs
sub esp, 0xc
fstp dword [esp + 8]
mov ecx, edi
fchs
fstp dword [esp + 4]
fld dword [esp + 0x30]
fchs
fstp dword [esp]
call dword [edx + 0x18]
mov eax, dword [esp + 0x28]
mov edx, dword [esi]
push 0x3f800000
push eax
mov eax, dword [esp + 0x28]
push eax
push eax
mov ecx, esi
call dword [edx + 0x18]
mov eax, dword [esi + 0x1a4]
add eax, 0xc98
lea ecx, [esp + 0x3c]
cmp ecx, eax
je 0x406de1
mov edx, dword [eax + 4]
fld dword [eax]
fld dword [eax + 8]
mov dword [esp + 0x40], edx
jmp 0x406de9
fld dword [esp + 0x3c]
fld dword [esp + 0x44]
fld st(1)
fmul st(2)
fld st(1)
fmul st(2)
faddp st(1)
fld dword [esp + 0x40]
fmul dword [esp + 0x40]
faddp st(1)
fcom dword [0x4d3370]
fnstsw ax
test ah, 0x41
jp 0x406e14
fstp st(0)
fld dword [0x4d3370]
jmp 0x406e29
fsqrt
fcom dword [0x4d3370]
fnstsw ax
test ah, 0x41
jne 0x406e29
fdivr dword [0x4d3310]
fld st(0)
fmul st(3)
fstp dword [esp + 0x3c]
fld dword [esp + 0x40]
fmul st(1)
fstp dword [esp + 0x40]
fxch st(1)
fmul st(1)
fstp dword [esp + 0x44]
fstp st(0)
fstp st(0)
fld dword [esp + 0x44]
fmul dword [ebp + 0x28]
fld dword [esp + 0x40]
fmul dword [ebp + 0x24]
faddp st(1)
fld dword [esp + 0x3c]
fmul dword [ebp + 0x20]
faddp st(1)
fcom qword [0x4d3520]
fnstsw ax
test ah, 0x41
jne 0x406f40
fcomp qword [0x4d33c8]
fnstsw ax
test ah, 5
jp 0x406f42
fld dword [ebp + 0x38]
fld dword [ebp + 0x34]
fld dword [ebp + 0x30]
fld st(0)
fmul st(1)
fld st(2)
fmul st(3)
faddp st(1)
fld st(3)
fmul st(4)
faddp st(1)
fstp st(3)
fstp st(0)
fstp st(0)
fcom dword [0x4d3370]
fnstsw ax
test ah, 0x41
jp 0x406eb8
fstp st(0)
fld dword [0x4d3370]
jmp 0x406eba
fsqrt
fld dword [ebp + 0x2c]
fabs
fxch st(1)
fmul dword [0x4d3518]
fadd qword [0x4d33c8]
fxch st(1)
fxch st(1)
fmulp st(1)
fst dword [esp + 0x14]
fcomp qword [0x4d33b0]
fnstsw ax
test ah, 0x41
jne 0x406eec
mov dword [esp + 0x14], 0x3f800000
mov ecx, dword [esp + 0x14]
fld dword [esi + 0x16c]
mov eax, dword [esi + 0x164]
fld dword [esi + 0x168]
push ecx
fstp dword [esp + 0x7c]
mov ecx, dword [esp + 0x7c]
sub esp, 0xc
fstp dword [esp + 0x8c]
mov edx, esp
mov dword [edx], eax
mov dword [edx + 4], ecx
mov ecx, dword [esi + 0x10]
mov ecx, dword [ecx + 0x618]
mov dword [esp + 0x84], eax
mov eax, dword [esp + 0x8c]
mov dword [edx + 8], eax
call fcn.0045cf80
jmp 0x406fd1
fstp st(0)
fld dword [ebp + 0x38]
fld dword [ebp + 0x34]
fld dword [ebp + 0x30]
fld st(0)
fmul st(1)
fld st(2)
fmul st(3)
faddp st(1)
fld st(3)
fmul st(4)
faddp st(1)
fstp st(3)
fstp st(0)
fstp st(0)
fcom dword [0x4d3370]
fnstsw ax
test ah, 0x41
jnp 0x406fcf
fsqrt
fcom dword [0x4d3494]
fnstsw ax
test ah, 0x41
jne 0x406fcf
fmul qword [0x4d3308]
mov edx, dword [esi + 0x164]
mov dword [esp + 0x30], edx
fstp dword [esp + 0x14]
mov eax, dword [esp + 0x14]
fld dword [esi + 0x16c]
fld dword [esi + 0x168]
push eax
sub esp, 0xc
fstp dword [esp + 0x44]
mov eax, dword [esp + 0x44]
mov ecx, esp
fstp dword [esp + 0x48]
mov dword [ecx], edx
mov edx, dword [esp + 0x48]
mov dword [ecx + 4], eax
mov eax, dword [esi + 0x10]
mov dword [ecx + 8], edx
mov ecx, dword [eax + 0x618]
call fcn.0045cf80
jmp 0x406fd1
fstp st(0)
fld dword [edi + 0x284]
fld dword [esi + 0x284]
fmul qword [0x4d3510]
fcompp
fnstsw ax
test ah, 0x41
jne 0x407094
mov edx, dword [edi]
mov ecx, edi
call dword [edx + 0x20]
cmp dword [esi + 0x18], 0xffffffff
je 0x407094
mov ecx, dword [esi + 0x10]
push 0x43fa0000
call fcn.0042acd0
call fcn.004bde94
push eax
push 0x4d3508
push 0x4fa560
call fcn.0046a3b0
mov ebp, eax
mov eax, dword [esi + 0xc28]
add esp, 0xc
test eax, eax
je 0x40703b
push eax
call fcn.004be35a
add esp, 4
mov eax, ebp
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x407040
sub eax, edx
inc eax
push eax
call fcn.004bdcb6
mov edx, eax
add esp, 4
mov dword [esi + 0xc28], eax
mov ecx, ebp
sub edx, ebp
nop
mov al, byte [ecx]
mov byte [edx + ecx], al
inc ecx
test al, al
jne 0x407060
mov eax, dword [esi + 0x18]
mov ecx, dword [esi + 0x10]
lea eax, [eax + eax*4]
shl eax, 5
push 0x43fa0000
mov dword [esi + 0xc], 0xc8
lea ebp, [eax + ecx + 0x7c0]
call fcn.0042acd0
fadd dword [ebp]
fstp dword [ebp]
fld dword [edi + 0x284]
fmul qword [0x4d3510]
fld dword [esi + 0x284]
fcompp
fnstsw ax
test ah, 5
jp 0x407154
mov edx, dword [esi]
mov ecx, esi
call dword [edx + 0x20]
cmp dword [edi + 0x18], 0xffffffff
je 0x407154
mov ecx, dword [esi + 0x10]
push 0x43fa0000
call fcn.0042acd0
call fcn.004bde94
push eax
push 0x4d3508
push 0x4fa560
call fcn.0046a3b0
mov ebp, eax
mov eax, dword [edi + 0xc28]
add esp, 0xc
test eax, eax
je 0x4070fe
push eax
call fcn.004be35a
add esp, 4
mov eax, ebp
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x407103
sub eax, edx
inc eax
push eax
call fcn.004bdcb6
mov edx, eax
add esp, 4
mov dword [edi + 0xc28], eax
mov ecx, ebp
sub edx, ebp
mov al, byte [ecx]
mov byte [edx + ecx], al
inc ecx
test al, al
jne 0x407122
mov dword [edi + 0xc], 0xc8
mov edi, dword [edi + 0x18]
mov ecx, dword [esi + 0x10]
lea eax, [edi + edi*4]
shl eax, 5
push 0x43fa0000
lea edi, [eax + ecx + 0x7c0]
call fcn.0042acd0
fadd dword [edi]
fstp dword [edi]
mov eax, dword [esi + 0x1a4]
mov ecx, dword [eax + ebx*4 + 0x20]
mov edx, dword [eax + 0x1c]
add eax, 0x18
cmp ecx, edx
jge 0x40717e
mov edx, dword [eax + 0x40c]
mov ebp, dword [edx + ecx*4]
inc ecx
test ebp, ebp
mov dword [eax + ebx*4 + 8], ecx
jne 0x406b80
mov al, byte [esi + 0x14d]
test al, al
je 0x4071a8
mov eax, dword [esi + 0x2f4]
cmp eax, 0x4b
mov dword [esi + 0x2ec], 0
jg 0x4071a2
mov eax, 0x4b
mov dword [esi + 0x2f4], eax
mov al, byte [esi + 0x2e9]
test al, al
je 0x407222
mov al, byte [esi + 0x324]
test al, al
jne 0x407222
mov ecx, dword [esi + 0x748]
test ecx, ecx
jne 0x4071df
fld dword [esi + 0x168]
fsub dword [esp + 0x50]
fabs
fcomp qword [0x4d3500]
fnstsw ax
test ah, 5
jnp 0x40721b
cmp ecx, 1
jne 0x4071fd
fld dword [esi + 0x164]
fsub dword [esp + 0x4c]
fabs
fcomp qword [0x4d3500]
fnstsw ax
test ah, 5
jnp 0x40721b
cmp ecx, 2
jne 0x407222
fld dword [esi + 0x16c]
fsub dword [esp + 0x54]
fabs
fcomp qword [0x4d3500]
fnstsw ax
test ah, 5
jp 0x407222
mov eax, dword [esi]
mov ecx, esi
call dword [eax + 0x20]
mov al, byte [esi + 0x324]
xor bl, bl
test al, al
jne 0x407b55
mov ecx, dword [esi + 0x1a4]
add ecx, 0x848
call fcn.004569d0
mov edi, eax
mov eax, dword [esi + 0x1a4]
add eax, 0x848
mov dword [eax + edi*4 + 8], 0
mov ecx, dword [eax + 4]
test ecx, ecx
jg 0x407263
xor edx, edx
jmp 0x407273
mov ecx, dword [eax + 0x40c]
mov edx, dword [ecx]
mov dword [eax + edi*4 + 8], 1
test edx, edx
je 0x4072c2
jmp 0x407280
mov al, byte [esi + 0x768]
test al, al
je 0x407294
mov ecx, dword [esi + 0x14]
mov eax, dword [ecx]
push edx
push esi
call dword [eax + 0x74]
mov eax, dword [esi + 0x1a4]
mov ecx, dword [eax + edi*4 + 0x850]
mov edx, dword [eax + 0x84c]
add eax, 0x848
cmp ecx, edx
jge 0x4072c2
mov edx, dword [eax + 0x40c]
mov edx, dword [edx + ecx*4]
inc ecx
test edx, edx
mov dword [eax + edi*4 + 8], ecx
jne 0x407280
mov ecx, dword [esi + 0x1a4]
add ecx, 0x18
call fcn.004569d0
mov ebp, eax
mov eax, dword [esi + 0x1a4]
add eax, 0x18
xor ecx, ecx
mov dword [eax + ebp*4 + 8], ecx
cmp dword [eax + 4], ecx
jle 0x4072f6
mov ecx, dword [eax + 0x40c]
mov ecx, dword [ecx]
mov dword [eax + ebp*4 + 8], 1
test ecx, ecx
mov edi, ecx
je 0x407a95
mov eax, dword [edi]
cmp eax, 2
je 0x40730c
cmp eax, 1
jne 0x407319
mov edx, dword [esp + 0x1c]
cmp dword [edi + 0x64], edx
je 0x40762d
cmp eax, 5
jne 0x4075fa
fld dword [edi + 0x54]
fcomp qword [0x4d3428]
fnstsw ax
test ah, 0x41
jne 0x407369
lea ecx, [esp + 0xa4]
lea eax, [esi + 0x1a8]
cmp eax, ecx
je 0x407357
mov dword [eax], 0
mov dword [eax + 4], 0x3f800000
mov dword [eax + 8], 0
fld dword [esi + 0x25c]
fmul qword [0x4d3440]
fstp dword [esi + 0x25c]
fld dword [edi + 0x54]
fcomp dword [0x4d3310]
fnstsw ax
test ah, 0x41
jne 0x40743d
mov al, byte [esi + 0xc4c]
test al, al
jne 0x40743d
mov ecx, dword [esi + 0x14]
push 1
push esi
mov byte [esi + 0x2e9], 1
call fcn.0041a2b0
fld dword [esi + 0x16c]
fld dword [esi + 0x168]
sub esp, 0xc
fld dword [esi + 0x164]
mov eax, esp
fstp dword [eax]
lea edx, [esp + 0x3c]
mov dword [esp + 0x1c], esp
fstp dword [eax + 4]
push edx
fstp dword [eax + 8]
mov eax, dword [esi + 0x14]
mov ecx, dword [eax + 0x87c]
mov ecx, dword [ecx + 0x174]
call fcn.00458270
fld dword [esp + 0x30]
fcomp dword [0x4d34f8]
fnstsw ax
test ah, 5
jnp 0x407436
fld dword [esp + 0x34]
fcomp dword [0x4d34f8]
fnstsw ax
test ah, 5
jnp 0x407436
mov ecx, dword [esi + 0x10]
mov edx, dword [ecx + 0x15c]
add edx, 0x32
mov dword [esp + 0x10], edx
fild dword [esp + 0x10]
fcomp dword [esp + 0x30]
fnstsw ax
test ah, 5
jnp 0x407436
mov eax, dword [ecx + 0x160]
add eax, 0x32
mov dword [esp + 0x10], eax
fild dword [esp + 0x10]
fcomp dword [esp + 0x34]
fnstsw ax
test ah, 5
jp 0x40743d
mov byte [esi + 0x2e8], 1
cmp dword [esi + 0x18], 0xffffffff
je 0x4075fa
fld dword [edi + 0x54]
fcomp qword [0x4d34f0]
fnstsw ax
test ah, 1
jne 0x4075cf
mov eax, dword [esi + 0x2ec]
test eax, eax
jne 0x4075cf
mov eax, dword [esi + 0x2f4]
test eax, eax
jne 0x4075cf
mov eax, dword [esi + 0x1a4]
add eax, 0xc8c
lea ecx, [esp + 0x3c]
cmp ecx, eax
je 0x40749e
mov edx, dword [eax]
mov ecx, dword [eax + 4]
mov dword [esp + 0x3c], edx
mov edx, dword [eax + 8]
mov dword [esp + 0x40], ecx
mov dword [esp + 0x44], edx
fld dword [esi + 0x284]
mov ecx, dword [esi + 0x164]
fmul dword [0x4d33f0]
mov edx, dword [esi + 0x14]
mov dword [esp + 0x20], ecx
mov ecx, dword [edx + 0x8b4]
fld st(0)
fmul dword [eax + 8]
lea edx, [esp + 0x3c]
fld st(1)
fmul dword [eax + 4]
fstp dword [esp + 0x10]
fxch st(1)
fmul dword [eax]
mov eax, dword [esi + 0x168]
mov dword [esp + 0x2c], eax
fstp dword [esp + 0xbc]
fsubr dword [esi + 0x16c]
fld dword [esp + 0x2c]
fsub dword [esp + 0x10]
fld dword [esp + 0x20]
fsub dword [esp + 0xbc]
fld dword [esi + 0x284]
fmul dword [0x4d33fc]
fstp dword [esp + 0x10]
mov eax, dword [esp + 0x10]
push eax
sub esp, 0xc
mov eax, esp
cmp eax, edx
je 0x40752f
mov edx, dword [esp + 0x4c]
mov dword [eax], edx
mov edx, dword [esp + 0x50]
mov dword [eax + 4], edx
mov edx, dword [esp + 0x54]
mov dword [eax + 8], edx
sub esp, 0xc
mov eax, esp
lea edx, [esp + 0xc0]
cmp eax, edx
je 0x407549
fstp dword [eax]
fstp dword [eax + 4]
fstp dword [eax + 8]
jmp 0x40754f
fstp st(0)
fstp st(0)
fstp st(0)
lea eax, [esp + 0x90]
push eax
call fcn.004694b0
fld dword [esi + 0x16c]
fld dword [esi + 0x168]
mov edx, dword [esp + 0x78]
fld dword [esp + 0x7c]
mov ecx, dword [esi + 0x164]
fxch st(2)
mov dword [esp + 0xb4], edx
fsub st(2)
mov dword [esp + 0x68], ecx
fstp dword [esp + 0x14]
fstp st(1)
fsub dword [esp + 0xb4]
fld dword [esp + 0x68]
fsub dword [esp + 0x74]
fld st(0)
fmul st(1)
fld st(2)
fmul st(3)
faddp st(1)
fld dword [esp + 0x14]
fmul dword [esp + 0x14]
faddp st(1)
fstp st(2)
fstp st(0)
fsqrt
fld dword [esi + 0x284]
fmul dword [0x4d3420]
fcompp
fnstsw ax
test ah, 5
jp 0x4075cf
inc dword [esi + 0x2ec]
mov ecx, dword [esi + 0x2ec]
test ecx, ecx
je 0x4075fa
mov al, byte [esi + 0xc4c]
test al, al
jne 0x4075fa
fld dword [edi + 0x54]
fcomp qword [0x4d3308]
fnstsw ax
test ah, 1
jne 0x4075fa
inc ecx
mov dword [esi + 0x2ec], ecx
mov eax, dword [esi + 0x1a4]
mov ecx, dword [eax + ebp*4 + 0x20]
mov edx, dword [eax + 0x1c]
add eax, 0x18
cmp ecx, edx
jge 0x407a95
mov edx, dword [eax + 0x40c]
mov edi, dword [edx + ecx*4]
inc ecx
test edi, edi
mov dword [eax + ebp*4 + 8], ecx
jne 0x407300
jmp 0x407a95
fld dword [esp + 0x94]
lea edx, [edi + 0x20]
fmul dword [edx + 8]
fld dword [esp + 0x90]
fmul dword [edx + 4]
faddp st(1)
fld dword [esp + 0x8c]
fmul dword [edx]
faddp st(1)
fchs
fld st(0)
fmul dword [edx + 8]
fld st(1)
fmul dword [edx + 4]
fstp dword [esp + 0x10]
fxch st(1)
fmul dword [edx]
fstp dword [esp + 0x68]
fld dword [esp + 0x94]
fadd st(1)
fstp dword [esp + 0x14]
fstp st(0)
fld dword [esp + 0x90]
fadd dword [esp + 0x10]
fstp dword [esp + 0x2c]
fld dword [esp + 0x68]
fadd dword [esp + 0x8c]
fst dword [esp + 0x30]
fmul dword [esp + 0x30]
fld dword [esp + 0x2c]
fmul dword [esp + 0x2c]
faddp st(1)
fld dword [esp + 0x14]
fmul dword [esp + 0x14]
faddp st(1)
fcom dword [0x4d3370]
fnstsw ax
test ah, 0x41
jp 0x4076c5
fstp st(0)
fld dword [0x4d3370]
jmp 0x4076da
fsqrt
fcom dword [0x4d3370]
fnstsw ax
test ah, 0x41
jne 0x4076da
fdivr dword [0x4d3310]
fld dword [esp + 0x30]
mov ecx, dword [esi + 0x1a4]
fmul st(1)
fld dword [esp + 0x2c]
fmul st(2)
fld dword [esp + 0x14]
fmul st(3)
fmul dword [ecx + 0xc94]
fxch st(1)
fmul dword [ecx + 0xc90]
faddp st(1)
fxch st(1)
fmul dword [ecx + 0xc8c]
faddp st(1)
fcomp dword [0x4d34e8]
fnstsw ax
fstp st(0)
test ah, 5
jp 0x40771d
mov bl, 1
fld dword [esi + 0x16c]
fld dword [esi + 0x168]
fld dword [esi + 0x164]
fsub dword [esp + 0x4c]
fstp dword [esp + 0x30]
fsub dword [esp + 0x50]
fxch st(1)
fsub dword [esp + 0x54]
fld st(0)
fmul st(1)
fld st(2)
fmul st(3)
faddp st(1)
fld dword [esp + 0x30]
fmul dword [esp + 0x30]
faddp st(1)
fxch st(2)
fstp st(1)
fstp st(0)
fcom dword [0x4d3370]
fnstsw ax
test ah, 0x41
jp 0x407772
fstp st(0)
fld dword [0x4d3370]
jmp 0x407789
fsqrt
fcom dword [0x4d34e4]
fnstsw ax
test ah, 0x41
jne 0x407789
fstp st(0)
fld dword [0x4d34e4]
fmul dword [0x4d34e0]
fstp dword [esi + 0x25c]
mov eax, dword [edi]
cmp eax, 2
jne 0x4079ab
mov al, byte [esp + 0x4b]
test al, al
jne 0x4079ab
test bl, bl
jne 0x4079b3
lea eax, [esp + 0x20]
cmp eax, edx
je 0x4077ce
mov eax, dword [edx]
fld dword [edx + 8]
mov dword [esp + 0x20], eax
mov eax, dword [edx + 4]
mov dword [esp + 0x24], eax
jmp 0x4077d2
fld dword [esp + 0x28]
fld st(0)
mov eax, dword [edi + 0x10]
mov eax, dword [eax + 0x434]
fmul dword [eax + 0x24]
add eax, 4
fld dword [esp + 0x24]
fmul dword [eax + 0x10]
faddp st(1)
fld dword [esp + 0x20]
fmul dword [eax]
faddp st(1)
fstp dword [esp + 0x3c]
fld st(0)
fmul dword [eax + 0x24]
fld dword [esp + 0x24]
fmul dword [eax + 0x14]
faddp st(1)
fld dword [esp + 0x20]
fmul dword [eax + 4]
faddp st(1)
fstp dword [esp + 0x40]
fmul dword [eax + 0x28]
fld dword [esp + 0x24]
fmul dword [eax + 0x18]
faddp st(1)
fld dword [esp + 0x20]
fmul dword [eax + 8]
faddp st(1)
fstp dword [esp + 0x44]
fld dword [esp + 0x3c]
fmul dword [esp + 0x5c]
fld dword [esp + 0x64]
fmul dword [esp + 0x44]
faddp st(1)
fld dword [esp + 0x60]
fmul dword [esp + 0x40]
faddp st(1)
fchs
fld dword [esp + 0x44]
fmul st(1)
fld dword [esp + 0x40]
fmul st(2)
fstp dword [esp + 0x10]
fld dword [esp + 0x3c]
fmul st(2)
fstp dword [esp + 0x68]
fld dword [esp + 0x64]
fadd st(1)
fstp dword [esp + 0x2c]
fstp st(0)
fstp st(0)
fld dword [esp + 0x60]
fadd dword [esp + 0x10]
fstp dword [esp + 0x14]
fld dword [esp + 0x68]
fadd dword [esp + 0x5c]
fstp dword [esp + 0x30]
fld dword [ecx + 0xcac]
fld dword [ecx + 0xca8]
fld dword [ecx + 0xca4]
fld st(0)
fmul st(1)
fld st(2)
fmul st(3)
faddp st(1)
fld st(3)
fmul st(4)
faddp st(1)
fstp st(3)
fstp st(0)
fstp st(0)
fcom dword [0x4d3370]
fnstsw ax
test ah, 0x41
jp 0x4078c9
fstp st(0)
fld dword [0x4d3370]
jmp 0x4078cb
fsqrt
fld dword [esp + 0x30]
fmul dword [esp + 0x30]
fld dword [esp + 0x14]
fmul dword [esp + 0x14]
faddp st(1)
fld dword [esp + 0x2c]
fmul dword [esp + 0x2c]
faddp st(1)
fcom dword [0x4d3370]
fst dword [esp + 0x10]
fnstsw ax
test ah, 0x41
jp 0x407902
fstp st(0)
fld dword [0x4d3370]
jmp 0x407904
fsqrt
fxch st(1)
fcomp st(1)
fnstsw ax
fstp st(0)
test ah, 1
jne 0x407a95
fld dword [esp + 0x10]
fcom dword [0x4d3370]
fnstsw ax
test ah, 0x41
jnp 0x407a93
fsqrt
fcomp dword [0x4d3420]
fnstsw ax
test ah, 0x41
jne 0x407a95
lea ecx, [esp + 0x20]
lea eax, [esi + 0x1a8]
cmp eax, ecx
je 0x40795f
mov edx, dword [esp + 0x3c]
mov ecx, dword [esp + 0x40]
mov dword [eax], edx
mov edx, dword [esp + 0x44]
mov dword [eax + 4], ecx
mov dword [eax + 8], edx
fld dword [esp + 0x98]
fadd dword [esp + 0x58]
fcomp dword [0x4d3370]
fnstsw ax
test ah, 0x44
jp 0x407a95
mov eax, dword [esi + 0x1a4]
add eax, 0xca4
lea ecx, [esp + 0x30]
cmp eax, ecx
je 0x407a95
mov edx, dword [esp + 0x30]
mov ecx, dword [esp + 0x14]
mov dword [eax], edx
mov edx, dword [esp + 0x2c]
mov dword [eax + 4], ecx
mov dword [eax + 8], edx
jmp 0x407a95
test bl, bl
je 0x407a95
fld dword [ecx + 0xc64]
fld dword [ecx + 0xc78]
fld dword [0x4d3310]
fdiv dword [0x4db170]
fxch st(1)
fdiv dword [0x4db16c]
fdivr dword [0x4d3310]
fdivp st(1)
fdiv dword [0x4db174]
fmulp st(1)
fmul qword [0x4d33c8]
fmul dword [esi + 0x29c]
fld dword [esp + 0x98]
fadd dword [esp + 0x58]
fcomp dword [0x4d3370]
fnstsw ax
test ah, 0x44
jp 0x407a1e
fcom qword [0x4d34d8]
fnstsw ax
test ah, 5
jp 0x407a3a
fstp st(0)
fld dword [0x4d343c]
jmp 0x407a3a
fcom qword [0x4d3448]
fnstsw ax
test ah, 5
jp 0x407a3a
fstp st(0)
mov byte [esi + 0x260], 1
fld dword [0x4d33e8]
fmul dword [0x4db170]
add ecx, 0xc98
lea eax, [esp + 0xa4]
cmp ecx, eax
fmul dword [0x4db174]
fld dword [ecx - 0x20]
fdiv dword [0x4db16c]
fdivp st(1)
fst dword [ecx - 0x34]
fld st(0)
fmul dword [ecx - 4]
fstp dword [esp + 0x14]
fld st(0)
fmul dword [ecx - 8]
fstp dword [esp + 0x10]
fmul dword [ecx - 0xc]
je 0x407bb2
mov edx, dword [esp + 0x10]
fstp dword [ecx]
mov eax, dword [esp + 0x14]
mov dword [ecx + 4], edx
mov dword [ecx + 8], eax
jmp 0x407bb4
fstp st(0)
mov ecx, dword [esi + 0x1a4]
fld dword [ecx + 0xc64]
fld dword [ecx + 0xc78]
fld dword [0x4d3310]
fdiv dword [0x4db170]
fxch st(1)
fdiv dword [0x4db16c]
fdivr dword [0x4d3310]
fdivp st(1)
fdiv dword [0x4db174]
fmulp st(1)
fmul qword [0x4d3460]
fmul dword [esi + 0x29c]
fcom dword [esi + 0x2a4]
fnstsw ax
test ah, 0x41
jne 0x407b03
mov al, byte [esi + 0xc4c]
fstp st(0)
test al, al
fld dword [esi + 0x2a4]
mov byte [esi + 0x260], 0
je 0x407b03
fmul dword [0x4d33e8]
fmul dword [0x4db170]
add ecx, 0xc98
lea edx, [esp + 0xa4]
cmp ecx, edx
fmul dword [0x4db174]
fld dword [ecx - 0x20]
fdiv dword [0x4db16c]
fdivp st(1)
fst dword [ecx - 0x34]
fld st(0)
fmul dword [ecx - 4]
fstp dword [esp + 0x14]
fld st(0)
fmul dword [ecx - 8]
fstp dword [esp + 0x10]
fmul dword [ecx - 0xc]
je 0x407bb2
mov eax, dword [esp + 0x10]
fstp dword [ecx]
mov edx, dword [esp + 0x14]
mov dword [ecx + 4], eax
mov dword [ecx + 8], edx
jmp 0x407bb4
fld dword [esi + 0x2a4]
mov eax, dword [esi + 0x1a4]
fmul dword [0x4db170]
add eax, 0xc98
lea ecx, [esp + 0xa4]
cmp eax, ecx
fmul dword [0x4db174]
fld dword [eax - 0x20]
fdiv dword [0x4db16c]
fdivp st(1)
fst dword [eax - 0x34]
fld st(0)
fmul dword [eax - 4]
fstp dword [esp + 0x14]
fld st(0)
fmul dword [eax - 8]
fstp dword [esp + 0x10]
fmul dword [eax - 0xc]
je 0x407bb2
mov edx, dword [esp + 0x10]
fstp dword [eax]
mov ecx, dword [esp + 0x14]
mov dword [eax + 4], edx
mov dword [eax + 8], ecx
jmp 0x407bb4
fstp st(0)
mov ecx, dword [esp + 0x1c]
mov edx, dword [ecx]
push 1
call dword [edx]
mov ecx, dword [esp + 0x18]
test ecx, ecx
je 0x407bcc
mov eax, dword [ecx]
push 1
call dword [eax]
fld dword [esi + 0x16c]
sub esp, 0xc
fld dword [esi + 0x168]
mov eax, esp
fld dword [esi + 0x164]
mov dword [esp + 0x1c], esp
fstp dword [eax]
fstp dword [eax + 4]
fstp dword [eax + 8]
mov ecx, dword [esi + 0x10]
mov ecx, dword [ecx + 0x178]
call fcn.00469e70
mov ecx, dword [esi + 0x258]
test ecx, ecx
je 0x407c18
fmul dword [esi + 0x25c]
push ecx
fstp dword [esp]
call fcn.0045c600
jmp 0x407c1a
fstp st(0)
lea ecx, [esi + 0x264]
call fcn.0045c5b0
fld dword [esp + 0x4c]
fsub dword [esi + 0x164]
mov edx, dword [esp + 0x4c]
mov ecx, dword [esp + 0x54]
mov eax, dword [esp + 0x50]
fstp dword [esi + 0x17c]
push 1
fld dword [esp + 0x54]
sub esp, 0xc
fsub dword [esi + 0x168]
lea edi, [esi + 0x2c0]
lea ebp, [esi + 0x1c]
mov dword [esi + 0x164], edx
fstp dword [esi + 0x180]
mov edx, dword [ebp]
fld dword [esp + 0x64]
mov dword [esi + 0x168], eax
fsub dword [esi + 0x16c]
mov dword [esi + 0x16c], ecx
mov ecx, ebp
fstp dword [esi + 0x184]
fld dword [esi + 0x2c8]
fmul dword [0x4d3420]
fadd dword [esp + 0x64]
fstp dword [esp + 8]
fld dword [esi + 0x2c4]
fmul dword [0x4d3420]
fadd dword [esp + 0x60]
fstp dword [esp + 4]
fld dword [edi]
fmul dword [0x4d3420]
fadd dword [esp + 0x5c]
fstp dword [esp]
call dword [edx + 0x34]
mov ecx, dword [esi + 0x16c]
mov edx, dword [esi + 0x168]
mov eax, dword [ebp]
xor ebx, ebx
push ebx
push ecx
mov ecx, dword [esi + 0x164]
push edx
push ecx
mov ecx, ebp
call dword [eax + 0x34]
fld dword [edi]
fadd dword [esi + 0x164]
lea edx, [esp + 0xa4]
cmp edi, edx
fstp dword [esi + 0x164]
fld dword [esi + 0x2c4]
fadd dword [esi + 0x168]
fstp dword [esi + 0x168]
fld dword [esi + 0x2c8]
fadd dword [esi + 0x16c]
fstp dword [esi + 0x16c]
je 0x407d25
mov dword [edi], ebx
mov dword [edi + 4], ebx
mov dword [edi + 8], ebx
mov eax, dword [esi + 0x18]
cmp eax, ebx
jl 0x407d85
lea ecx, [esi + 0x758]
lea edx, [esp + 0x30]
cmp edx, ecx
je 0x407d48
mov edx, dword [ecx]
fld dword [ecx + 4]
fld dword [ecx + 8]
mov dword [esp + 0x30], edx
jmp 0x407d50
fld dword [esp + 0x34]
fld dword [esp + 0x38]
mov ecx, dword [esi + 0x10]
fxch st(1)
mov ecx, dword [ecx + 0x178]
fstp dword [esp + 0x34]
mov edx, dword [esp + 0x30]
lea eax, [eax + eax*2]
fstp dword [esp + 0x38]
lea ecx, [ecx + eax*4 + 0x854]
mov eax, dword [esp + 0x34]
mov dword [ecx], edx
mov dword [esp + 0x30], edx
mov edx, dword [esp + 0x38]
mov dword [ecx + 4], eax
mov dword [ecx + 8], edx
mov eax, dword [esi + 0x194]
mov ecx, dword [esi + 0x190]
push ebx
push ebx
push eax
push ecx
mov ecx, 0x4fa2a0
call fcn.0045b500
fstp dword [esp + 0x1c]
mov cl, byte [esi + 0x19c]
test cl, cl
mov eax, 3
je 0x407db7
mov eax, 0xf
cmp eax, ebx
jle 0x407df9
mov ebp, eax
lea ecx, [ecx]
fld dword [esi + 0x198]
call fcn.004bde94
fld dword [esp + 0x1c]
mov edi, eax
call fcn.004bde94
cmp edi, eax
je 0x407df6
push edi
push eax
mov ecx, 0x4fa2a0
call fcn.0045b5e0
mov dword [esp + 0x10], eax
fild dword [esp + 0x10]
fadd dword [esp + 0x1c]
fstp dword [esp + 0x1c]
dec ebp
jne 0x407dc0
mov edi, dword [esp + 0x1c]
push edi
mov ecx, 0x4fa2a0
call fcn.0045b4c0
fchs
push edi
fstp dword [esi + 0x190]
mov ecx, 0x4fa2a0
call fcn.0045b4e0
fstp dword [esi + 0x194]
cmp dword [esi + 0x748], ebx
jne 0x407e49
mov edx, dword [esi + 0x184]
mov eax, dword [esi + 0x17c]
push ebx
push ebx
push edx
push eax
mov ecx, 0x4fa2a0
call fcn.0045b500
fstp dword [esi + 0x198]
cmp dword [esi + 0x748], 1
jne 0x407e77
mov ecx, dword [esi + 0x184]
fld dword [esi + 0x180]
push ebx
fchs
push ebx
push ecx
push ecx
mov ecx, 0x4fa2a0
fstp dword [esp]
call fcn.0045b500
fstp dword [esi + 0x198]
cmp dword [esi + 0x748], 2
jne 0x407ea0
mov edx, dword [esi + 0x180]
mov eax, dword [esi + 0x17c]
push ebx
push ebx
push edx
push eax
mov ecx, 0x4fa2a0
call fcn.0045b500
fstp dword [esi + 0x198]
mov byte [esi + 0x19c], 0
sub esp, 0xc
mov eax, esp
mov dword [eax], 0x47c35000
mov dword [eax + 4], 0x47c35000
mov dword [eax + 8], 0xc7c35000
fld dword [esi + 0x16c]
fld dword [esi + 0x168]
mov dword [esp + 0x1c], esp
fld dword [esi + 0x164]
sub esp, 0xc
mov eax, esp
fstp dword [eax]
mov ecx, 0x4fa2a0
mov dword [esp + 0x28], esp
fstp dword [eax + 4]
fstp dword [eax + 8]
call fcn.0045b8b0
call fcn.004bde94
mov dword [esi + 8], eax
mov al, byte [esi + 0x324]
test al, al
jne 0x408149
mov ecx, dword [esi + 0x1a4]
fld dword [esi + 0x188]
fmul dword [0x4d33fc]
add ecx, 0xca4
mov edx, 3
fld dword [ecx + 8]
fld dword [ecx + 4]
fld dword [ecx]
fld st(1)
fmul st(2)
fld st(3)
fmul st(4)
faddp st(1)
fld st(1)
fmul st(2)
faddp st(1)
fstp st(3)
fstp st(0)
fstp st(0)
fcom dword [0x4d3370]
fnstsw ax
test ah, 0x41
jp 0x407f59
fstp st(0)
fld dword [0x4d3370]
jmp 0x407f5b
fsqrt
fcom st(1)
fnstsw ax
test ah, 0x41
jne 0x407fb6
fmul dword [0x4d33f0]
mov byte [esi + 0x31d], 1
fst dword [esi + 0x318]
fsubr dword [esi + 0x314]
fcom dword [0x4d34d0]
fst dword [esi + 0x314]
fnstsw ax
test ah, 5
jp 0x407fa8
fadd dword [0x4d3454]
mov byte [esi + 0x31c], 1
fstp dword [esi + 0x314]
jmp 0x408140
fstp st(0)
mov byte [esi + 0x31c], 1
jmp 0x408140
mov al, byte [esi + 0x31e]
test al, al
jne 0x40813e
fld dword [esi + 0x318]
fsub dword [0x4d33b8]
fst dword [esi + 0x318]
fcomp dword [0x4d3370]
fnstsw ax
test ah, 5
jp 0x407fe9
mov dword [esi + 0x318], ebx
fmul dword [0x4d33d8]
mov byte [esi + 0x31d], 0
fst dword [esp + 0x18]
fadd dword [esi + 0x314]
fcom dword [0x4d345c]
fst dword [esi + 0x314]
fnstsw ax
test ah, 0x41
jne 0x408028
fsub dword [0x4d3310]
mov byte [esi + 0x31c], 1
fstp dword [esi + 0x314]
jmp 0x40802a
fstp st(0)
fld dword [esi + 0x314]
fsub dword [esi + 0x318]
fsub dword [0x4d33f0]
fstp dword [esp + 0x14]
mov eax, dword [esp + 0x14]
mov dword [esi + 0x314], eax
mov al, byte [esi + 0x31c]
test al, al
je 0x408077
fld dword [esi + 0x318]
fcomp dword [0x4d3370]
fnstsw ax
test ah, 0x44
jp 0x408077
fld dword [esp + 0x14]
fsub dword [0x4d3310]
fstp dword [esi + 0x314]
fld dword [esi + 0x314]
fcomp dword [0x4d34cc]
fnstsw ax
test ah, 5
jp 0x4080b6
fld dword [esi + 0x318]
fcomp dword [0x4d3370]
fnstsw ax
test ah, 0x44
jp 0x4080b6
fld dword [esi + 0x314]
mov byte [esi + 0x31c], 0
fadd dword [0x4d3494]
fstp dword [esi + 0x314]
fld dword [esi + 0x314]
fcomp dword [0x4d3370]
fnstsw ax
test ah, 5
jp 0x408140
mov al, byte [esi + 0x31c]
test al, al
jne 0x408140
fld dword [esi + 0x318]
fcomp dword [0x4d3370]
fnstsw ax
test ah, 0x44
jp 0x408140
fld dword [esi + 0x314]
fadd dword [0x4d33e8]
fst dword [esi + 0x314]
fld dword [esp + 0x18]
fcomp dword [0x4d3424]
fnstsw ax
test ah, 5
jp 0x408117
fadd dword [0x4d33e8]
fstp dword [esi + 0x314]
jmp 0x408119
fstp st(0)
fld dword [esp + 0x18]
fcomp dword [0x4d3494]
fnstsw ax
test ah, 5
jp 0x408140
fld dword [esi + 0x314]
fadd dword [0x4d33e8]
fstp dword [esi + 0x314]
jmp 0x408140
fstp st(0)
dec edx
jne 0x407f24
fstp st(0)
mov eax, dword [esi + 0x18]
or ecx, 0xffffffff
cmp eax, ecx
je 0x40823d
fld dword [esi + 0x16c]
mov edx, dword [esi + 0x164]
fld dword [esi + 0x168]
mov eax, dword [esi + 0x764]
fxch st(1)
mov dword [esp + 0x68], edx
fsub dword [esi + 0x760]
mov dword [esp + 0x18], eax
fstp dword [esp + 0x10]
fsub dword [esi + 0x75c]
fld dword [esp + 0x68]
fsub dword [esi + 0x758]
fmul dword [esp + 0x18]
fxch st(1)
fmul dword [esp + 0x18]
fstp dword [esp + 0x34]
fld dword [esp + 0x10]
fmul dword [esp + 0x18]
fstp dword [esp + 0x38]
fadd dword [esi + 0x758]
fstp dword [esi + 0x758]
fld dword [esp + 0x34]
fadd dword [esi + 0x75c]
fstp dword [esi + 0x75c]
fld dword [esp + 0x38]
fadd dword [esi + 0x760]
fstp dword [esi + 0x760]
mov al, byte [esi + 0x768]
test al, al
jne 0x4081f7
fld dword [esi + 0x764]
fmul dword [0x4d34c8]
fstp dword [esi + 0x764]
jmp 0x40823d
fld dword [esi + 0x764]
fcomp qword [0x4d3540]
fnstsw ax
test ah, 0x41
jp 0x408214
mov dword [esi + 0x764], 0x3c23d70a
fld dword [esi + 0x764]
fmul qword [0x4d34c0]
fst dword [esi + 0x764]
fcomp dword [0x4d3310]
fnstsw ax
test ah, 0x41
jne 0x40823d
mov dword [esi + 0x764], 0x3f800000
mov al, byte [esi + 0x769]
test al, al
je 0x408281
fld dword [esi + 0x16c]
lea eax, [esi + 0x758]
fld dword [esi + 0x168]
lea edx, [esp + 0xa4]
cmp eax, edx
fld dword [esi + 0x164]
je 0x408274
fstp dword [eax]
fstp dword [eax + 4]
fstp dword [eax + 8]
jmp 0x40827a
fstp st(0)
fstp st(0)
fstp st(0)
mov byte [esi + 0x769], 0
mov al, byte [esi + 0xc3c]
test al, al
je 0x4082b6
mov eax, dword [esi + 0xc40]
mov edx, dword [esi + 0xc44]
mov dword [esi + 0x164], eax
mov eax, dword [esi + 0xc48]
mov dword [esi + 0x168], edx
mov dword [esi + 0x16c], eax
mov byte [esi + 0xc3c], 0
mov dword [esp + 0x944], ecx
lea ecx, [esp + 0x524]
call fcn.00456970
mov ecx, dword [esp + 0x93c]
pop edi
pop esi
pop ebp
mov dword fs:[0], ecx
pop ebx
add esp, 0x938
ret