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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x324
push ebx
mov ebx, ecx
mov eax, dword [ebx + 8]
push esi
push edi
lea ecx, [eax + 0x80914]
call fcn.0045787d
mov ecx, eax
call fcn.0045dd87
fstp dword [esp + 0x18]
fld1
sub esp, 0xc
fstp dword [esp + 8]
lea eax, [esp + 0xbc]
fld dword [esp + 0x24]
fstp dword [esp + 4]
fld dword [esp + 0x24]
fstp dword [esp]
push eax
call fcn.0046914b
add esp, 0x10
lea ecx, [esp + 0xf0]
call fcn.004078f0
mov eax, dword [ebx + 8]
push 2
push 2
push 0
lea ecx, [eax + 0x80914]
call fcn.0045787d
mov ecx, eax
call fcn.0045fb13
fldz
lea ecx, [ebx + 0x13c8]
mov eax, dword [ecx]
push 0xffffffffffffffff
push ecx
push ecx
fst dword [esp + 4]
lea edx, [esp + 0xbc]
fstp dword [esp]
push edx
call dword [eax + 0x5c]
mov eax, dword [ebx + 0x1670]
sub eax, dword [ebx + 0x166c]
push 0x78
cdq
pop ecx
idiv ecx
and dword [esp + 0x10], 0
test eax, eax
jle 0x437c45
lea eax, [ebx + 0x17b0]
mov dword [esp + 0x1c], eax
lea eax, [ebx + 0x1d60]
mov dword [esp + 0x20], eax
mov ecx, dword [esp + 0x20]
mov eax, dword [ecx]
call dword [eax + 4]
mov ecx, dword [esp + 0x1c]
mov edx, dword [ecx]
sub esp, 0x40
push 0x10
pop ecx
shl eax, 0x18
mov edi, esp
or eax, 0xffffff
lea esi, [esp + 0xf0]
rep movsd dword es:[edi], dword [esi]
mov ecx, dword [esp + 0x5c]
push eax
call dword [edx + 0x48]
mov eax, dword [ebx + 0x1670]
sub eax, dword [ebx + 0x166c]
push 0x78
cdq
pop ecx
idiv ecx
inc dword [esp + 0x10]
add dword [esp + 0x20], 0x28
add dword [esp + 0x1c], 0x84
cmp dword [esp + 0x10], eax
jl 0x437bec
fld dword [esp + 0x18]
sub esp, 0xc
fmul qword [0x6b9de0]
lea eax, [esp + 0x1bc]
fstp dword [esp + 0x28]
fldz
fstp dword [esp + 8]
fld dword [esp + 0x28]
fstp dword [esp + 4]
fld dword [esp + 0x28]
fstp dword [esp]
push eax
call fcn.004690e4
add esp, 0x10
push eax
lea ecx, [esp + 0xf4]
call fcn.00407a2f
lea ecx, [ebx + 0x1598]
mov eax, dword [ecx]
call dword [eax + 4]
lea ecx, [ebx + 0x14f0]
lea edx, [esp + 0x140]
mov esi, eax
mov eax, dword [ecx]
push edx
call dword [eax + 0x1c]
mov ecx, 0x2710
sub ecx, esi
mov dword [esp + 0x2c], ecx
fild dword [esp + 0x2c]
sub esp, 0xc
fimul dword [eax]
lea eax, [esp + 0x2bc]
fld qword [0x6b9ef0]
fdiv st(1), st(0)
fdivp st(1)
fmul qword [0x6b9fe8]
fstp dword [esp + 0x38]
fldz
fst dword [esp + 8]
fstp dword [esp + 4]
fld dword [esp + 0x38]
fmul dword [esp + 0x24]
fstp dword [esp + 0x38]
fld dword [esp + 0x38]
fstp dword [esp]
push eax
call fcn.004690e4
fldz
pop ecx
fstp dword [esp + 8]
fld dword [esp + 0x28]
lea eax, [esp + 0x1bc]
fstp dword [esp + 4]
fld dword [esp + 0x28]
fstp dword [esp]
push eax
call fcn.004690e4
add esp, 0x10
push eax
lea ecx, [esp + 0xf4]
call fcn.00407a2f
fldz
mov eax, esi
imul eax, eax, 0xff
cdq
push 0x64
pop ecx
idiv ecx
mov edi, dword [ebx + 0x2fca58]
mov esi, 0xffffff
cdq
idiv ecx
shl eax, 0x18
or eax, esi
push eax
push ecx
push ecx
fst dword [esp + 4]
lea eax, [esp + 0x2bc]
fstp dword [esp]
push eax
lea eax, [esp + 0x1c0]
push eax
lea eax, [esp + 0x104]
push eax
lea eax, [esp + 0x84]
push eax
lea ecx, [esp + 0xcc]
call fcn.0040a033
mov ecx, eax
call fcn.0040a033
push eax
push edi
xor eax, eax
push eax
lea ecx, [ebx + 0x1584]
call fcn.004acdec
lea ecx, [ebx + 0x2fca6c]
mov eax, dword [ecx]
call dword [eax + 4]
fldz
or dword [esp + 0x14], 0xffffffff
fstp dword [esp + 0x3c]
mov edi, eax
lea eax, [esp + 0x2f0]
push eax
mov dword [esp + 0xb0], 0xff
call fcn.00469088
cmp dword [ebx + 0x2fca88], 0xffffffff
pop ecx
je 0x437e4b
mov eax, edi
imul eax, eax, 0xff
cdq
push 0x64
pop ecx
idiv ecx
push ecx
mov dword [esp + 0xb0], eax
shl eax, 0x18
or eax, esi
mov dword [esp + 0x18], eax
pop eax
sub eax, edi
mov dword [esp + 0x2c], eax
fild dword [esp + 0x2c]
sub esp, 0xc
lea eax, [esp + 0x78]
fmul qword [0x6ba2d8]
fdiv qword [0x6b9ef0]
fstp dword [esp + 0x48]
fldz
fst dword [esp + 8]
fld dword [esp + 0x48]
fmul dword [esp + 0x24]
fstp dword [esp + 0x38]
fld dword [esp + 0x38]
fstp dword [esp + 4]
fstp dword [esp]
push eax
call fcn.004690e4
add esp, 0x10
push eax
lea ecx, [esp + 0x2f4]
call fcn.00407a2f
mov eax, dword [ebx + 0x2184]
sub eax, dword [ebx + 0x2180]
push 0x78
cdq
pop ecx
idiv ecx
and dword [esp + 0x1c], 0
test eax, eax
jle 0x439091
fld dword [esp + 0x3c]
lea eax, [ebx + 0x39dc]
fmul dword [esp + 0x18]
mov dword [esp + 0x30], eax
lea eax, [ebx + 0x2f9dbc]
mov dword [esp + 0x5c], eax
lea eax, [ebx + 0x35b8]
fstp dword [esp + 0x2c]
mov dword [esp + 0x38], eax
lea eax, [ebx + 0x2f9918]
mov dword [esp + 0x68], eax
mov ecx, dword [esp + 0x1c]
mov eax, dword [ebx + 0x2fca5c]
lea eax, [ecx + eax*8 + 1]
mov dword [esp + 0x60], eax
mov eax, ecx
cdq
and edx, 3
add eax, edx
sar eax, 2
and ecx, 0x80000003
mov dword [esp + 0x20], eax
fild dword [esp + 0x20]
fmul qword [0x6ba2d0]
fstp qword [esp + 0x130]
fld qword [esp + 0x130]
fstp dword [esp + 0x24]
jns 0x437ee8
dec ecx
or ecx, 0xfffffffc
inc ecx
mov dword [esp + 0x20], ecx
fild dword [esp + 0x20]
sub esp, 0xc
lea eax, [esp + 0x78]
fmul qword [0x6ba2c8]
fstp qword [esp + 0x144]
fld qword [esp + 0x144]
fstp dword [esp + 0x2c]
fldz
fst dword [esp + 8]
fld dword [esp + 0x38]
fstp dword [esp + 4]
fstp dword [esp]
push eax
call fcn.004690e4
add esp, 0x10
push eax
lea ecx, [esp + 0xf4]
call fcn.00407a2f
mov edi, dword [esp + 0x38]
lea eax, [esp + 0xf0]
push eax
lea eax, [esp + 0x70]
push eax
lea ecx, [esp + 0xb8]
add edi, 0xffffebe4
call fcn.0040a033
mov edx, dword [edi]
sub esp, 0x40
push 0x10
pop ecx
mov edi, esp
push dword [esp + 0x54]
mov esi, eax
rep movsd dword es:[edi], dword [esi]
mov ecx, dword [esp + 0x7c]
add ecx, 0xffffebe4
call dword [edx + 0x48]
sub esp, 0xc
fldz
lea eax, [esp + 0x78]
fstp dword [esp + 8]
fld dword [esp + 0x2c]
fadd qword [0x6ba108]
fadd dword [esp + 0x48]
fmul dword [esp + 0x24]
fstp dword [esp + 0x1c]
fld dword [esp + 0x1c]
fstp dword [esp + 4]
fld dword [esp + 0x30]
fadd qword [0x6ba180]
fmul dword [esp + 0x24]
fstp dword [esp + 0x1c]
fld dword [esp + 0x1c]
fstp dword [esp]
push eax
call fcn.004690e4
add esp, 0x10
push eax
lea ecx, [esp + 0xf4]
call fcn.00407a2f
fldz
push dword [esp + 0x14]
mov esi, dword [esp + 0x6c]
mov edi, dword [esi]
push ecx
push ecx
fst dword [esp + 4]
lea eax, [esp + 0xfc]
fstp dword [esp]
push eax
lea eax, [esp + 0x7c]
push eax
lea ecx, [esp + 0xc4]
call fcn.0040a033
push eax
mov ecx, esi
call dword [edi + 0x5c]
mov eax, dword [esp + 0x30]
mov edi, dword [eax + 0x54f80]
add eax, 0x54f84
mov ecx, dword [eax]
mov dword [esp + 0x58], ecx
mov ecx, dword [eax + 4]
mov dword [esp + 0x64], ecx
mov ecx, dword [eax + 8]
mov dword [esp + 0x54], ecx
mov ecx, dword [eax + 0xc]
mov eax, dword [eax + 0x10]
mov dword [esp + 0x4c], ecx
mov dword [esp + 0x28], eax
lea esi, [esp + 0x1b0]
mov dword [esp + 0x10], 3
mov ecx, esi
call fcn.004078f0
add esi, 0x40
dec dword [esp + 0x10]
jns 0x438046
fld dword [esp + 0x20]
and dword [esp + 0x10], 0
fadd qword [0x6ba2c0]
lea esi, [esp + 0x1b0]
fadd dword [esp + 0x3c]
fmul dword [esp + 0x18]
fstp dword [esp + 0x34]
fld dword [esp + 0x24]
fadd qword [0x6ba2b8]
fstp qword [esp + 0x40]
fldz
sub esp, 0xc
fstp dword [esp + 8]
lea eax, [esp + 0x78]
fld dword [esp + 0x40]
fstp dword [esp + 4]
fild dword [esp + 0x1c]
fmul qword [0x6ba2b0]
fadd qword [esp + 0x4c]
fmul dword [esp + 0x24]
fstp dword [esp + 0x5c]
fld dword [esp + 0x5c]
fstp dword [esp]
push eax
call fcn.004690e4
add esp, 0x10
push eax
mov ecx, esi
call fcn.00407a2f
inc dword [esp + 0x10]
add esi, 0x40
cmp dword [esp + 0x10], 4
jb 0x438086
mov eax, dword [esp + 0x30]
fldz
cmp byte [eax], 0
je 0x43821d
mov eax, edi
cdq
mov ecx, 0x3e8
idiv ecx
push 0xa
pop ecx
push dword [esp + 0x14]
lea esi, [ebx + 0x31ec]
push ecx
push ecx
fst dword [esp + 4]
fstp dword [esp]
cdq
idiv ecx
lea eax, [esp + 0x1bc]
push eax
lea eax, [esp + 0x7c]
push eax
lea ecx, [esp + 0xc4]
mov dword [esp + 0x194], edx
call fcn.0040a033
push eax
xor eax, eax
push eax
push dword [esp + 0x194]
mov ecx, esi
call fcn.004acdec
fldz
push 0x64
pop ecx
mov eax, edi
cdq
idiv ecx
push 0xa
pop ecx
push dword [esp + 0x14]
push ecx
push ecx
fst dword [esp + 4]
fstp dword [esp]
cdq
idiv ecx
lea eax, [esp + 0x1fc]
push eax
lea eax, [esp + 0x7c]
push eax
lea ecx, [esp + 0xc4]
mov dword [esp + 0x1ac], edx
call fcn.0040a033
push eax
xor eax, eax
push eax
push dword [esp + 0x1ac]
mov ecx, esi
call fcn.004acdec
fldz
push 0xa
pop ecx
mov eax, edi
cdq
idiv ecx
push dword [esp + 0x14]
push ecx
push ecx
fst dword [esp + 4]
fstp dword [esp]
mov edi, edx
cdq
idiv ecx
lea eax, [esp + 0x23c]
push eax
lea eax, [esp + 0x7c]
push eax
lea ecx, [esp + 0xc4]
mov dword [esp + 0x1bc], edx
call fcn.0040a033
push eax
xor eax, eax
push eax
push dword [esp + 0x1bc]
mov ecx, esi
call fcn.004acdec
fldz
push dword [esp + 0x14]
and dword [esp + 0x168], 0
push ecx
push ecx
fst dword [esp + 4]
lea eax, [esp + 0x27c]
fstp dword [esp]
push eax
lea eax, [esp + 0x7c]
push eax
lea ecx, [esp + 0xc4]
call fcn.0040a033
push eax
push dword [esp + 0x174]
mov ecx, esi
push edi
call fcn.004acdec
jmp 0x4382e1
push dword [esp + 0x14]
lea eax, [esp + 0x1b4]
push ecx
push ecx
fst dword [esp + 4]
lea esi, [ebx + 0x31fc]
mov edi, dword [esi]
fstp dword [esp]
push eax
lea eax, [esp + 0x7c]
push eax
lea ecx, [esp + 0xc4]
call fcn.0040a033
push eax
mov ecx, esi
call dword [edi + 0x5c]
fldz
push dword [esp + 0x14]
mov edi, dword [esi]
push ecx
push ecx
fst dword [esp + 4]
lea eax, [esp + 0x1fc]
fstp dword [esp]
push eax
lea eax, [esp + 0x7c]
push eax
lea ecx, [esp + 0xc4]
call fcn.0040a033
push eax
mov ecx, esi
call dword [edi + 0x5c]
fldz
push dword [esp + 0x14]
mov edi, dword [esi]
push ecx
push ecx
fst dword [esp + 4]
lea eax, [esp + 0x23c]
fstp dword [esp]
push eax
lea eax, [esp + 0x7c]
push eax
lea ecx, [esp + 0xc4]
call fcn.0040a033
push eax
mov ecx, esi
call dword [edi + 0x5c]
fldz
push dword [esp + 0x14]
mov edi, dword [esi]
push ecx
push ecx
fst dword [esp + 4]
lea eax, [esp + 0x27c]
fstp dword [esp]
push eax
lea eax, [esp + 0x7c]
push eax
lea ecx, [esp + 0xc4]
call fcn.0040a033
push eax
mov ecx, esi
call dword [edi + 0x5c]
fldz
sub esp, 0xc
fstp dword [esp + 8]
lea eax, [esp + 0x78]
fld dword [esp + 0x40]
fstp dword [esp + 4]
fld dword [esp + 0x30]
fadd qword [0x6ba2a8]
fmul dword [esp + 0x24]
fstp dword [esp + 0x5c]
fld dword [esp + 0x5c]
fstp dword [esp]
push eax
call fcn.004690e4
add esp, 0x10
push eax
lea ecx, [esp + 0xf4]
call fcn.00407a2f
fldz
push dword [esp + 0x14]
lea eax, [esp + 0xf4]
push ecx
push ecx
fst dword [esp + 4]
lea esi, [ebx + 0x3290]
mov edi, dword [esi]
fstp dword [esp]
push eax
lea eax, [esp + 0x7c]
push eax
lea ecx, [esp + 0xc4]
call fcn.0040a033
push eax
mov ecx, esi
call dword [edi + 0x5c]
xor edi, edi
lea esi, [esp + 0x1b0]
inc edi
mov ecx, esi
call fcn.004078f0
add esi, 0x40
dec edi
jns 0x438365
fld dword [esp + 0x24]
and dword [esp + 0x10], 0
fadd qword [0x6ba2a0]
lea esi, [esp + 0x1b0]
fstp qword [esp + 0x40]
fldz
sub esp, 0xc
fstp dword [esp + 8]
lea eax, [esp + 0x78]
fld dword [esp + 0x40]
fstp dword [esp + 4]
fild dword [esp + 0x1c]
fmul qword [0x6ba2b0]
fadd qword [esp + 0x4c]
fmul dword [esp + 0x24]
fstp dword [esp + 0x5c]
fld dword [esp + 0x5c]
fstp dword [esp]
push eax
call fcn.004690e4
add esp, 0x10
push eax
mov ecx, esi
call fcn.00407a2f
inc dword [esp + 0x10]
add esi, 0x40
cmp dword [esp + 0x10], 2
jb 0x43838c
mov eax, dword [esp + 0x30]
fldz
cmp byte [eax], 0
je 0x438482
mov eax, dword [esp + 0x58]
push 0xa
pop ecx
cdq
idiv ecx
push dword [esp + 0x14]
lea esi, [ebx + 0x31ec]
push ecx
push ecx
fst dword [esp + 4]
fstp dword [esp]
mov edi, edx
cdq
idiv ecx
lea eax, [esp + 0x1bc]
push eax
lea eax, [esp + 0x7c]
push eax
lea ecx, [esp + 0xc4]
mov dword [esp + 0x184], edx
call fcn.0040a033
push eax
xor eax, eax
push eax
push dword [esp + 0x184]
mov ecx, esi
call fcn.004acdec
fldz
push dword [esp + 0x14]
and dword [esp + 0x160], 0
push ecx
push ecx
fst dword [esp + 4]
lea eax, [esp + 0x1fc]
fstp dword [esp]
push eax
lea eax, [esp + 0x7c]
push eax
lea ecx, [esp + 0xc4]
call fcn.0040a033
push eax
push dword [esp + 0x16c]
mov ecx, esi
push edi
call fcn.004acdec
jmp 0x4384e6
push dword [esp + 0x14]
lea eax, [esp + 0x1b4]
push ecx
push ecx
fst dword [esp + 4]
lea esi, [ebx + 0x31fc]
mov edi, dword [esi]
fstp dword [esp]
push eax
lea eax, [esp + 0x7c]
push eax
lea ecx, [esp + 0xc4]
call fcn.0040a033
push eax
mov ecx, esi
call dword [edi + 0x5c]
fldz
push dword [esp + 0x14]
mov edi, dword [esi]
push ecx
push ecx
fst dword [esp + 4]
lea eax, [esp + 0x1fc]
fstp dword [esp]
push eax
lea eax, [esp + 0x7c]
push eax
lea ecx, [esp + 0xc4]
call fcn.0040a033
push eax
mov ecx, esi
call dword [edi + 0x5c]
fldz
sub esp, 0xc
fstp dword [esp + 8]
lea eax, [esp + 0x78]
fld dword [esp + 0x40]
fstp dword [esp + 4]
fld dword [esp + 0x30]
fadd qword [0x6ba298]
fmul dword [esp + 0x24]
fstp dword [esp + 0x64]
fld dword [esp + 0x64]
fstp dword [esp]
push eax
call fcn.004690e4
add esp, 0x10
push eax
lea ecx, [esp + 0xf4]
call fcn.00407a2f
fldz
push dword [esp + 0x14]
lea eax, [esp + 0xf4]
push ecx
push ecx
fst dword [esp + 4]
lea esi, [ebx + 0x3290]
mov edi, dword [esi]
fstp dword [esp]
push eax
lea eax, [esp + 0x7c]
push eax
lea ecx, [esp + 0xc4]
call fcn.0040a033
push eax
mov ecx, esi
call dword [edi + 0x5c]
xor edi, edi
lea esi, [esp + 0x1b0]
inc edi
mov ecx, esi
call fcn.004078f0
add esi, 0x40
dec edi
jns 0x43856a
fld dword [esp + 0x24]
and dword [esp + 0x10], 0
fadd qword [0x6ba290]
lea esi, [esp + 0x1b0]
fstp qword [esp + 0x40]
fldz
sub esp, 0xc
fstp dword [esp + 8]
lea eax, [esp + 0x78]
fld dword [esp + 0x40]
fstp dword [esp + 4]
fild dword [esp + 0x1c]
fmul qword [0x6ba2b0]
fadd qword [esp + 0x4c]
fmul dword [esp + 0x24]
fstp dword [esp + 0x64]
fld dword [esp + 0x64]
fstp dword [esp]
push eax
call fcn.004690e4
add esp, 0x10
push eax
mov ecx, esi
call fcn.00407a2f
inc dword [esp + 0x10]
add esi, 0x40
cmp dword [esp + 0x10], 2
jb 0x438591
mov eax, dword [esp + 0x30]
fldz
cmp byte [eax], 0
je 0x43867b
mov eax, dword [esp + 0x64]
push 0xa
pop ecx
cdq
idiv ecx
push dword [esp + 0x14]
lea esi, [ebx + 0x31ec]
push ecx
push ecx
fst dword [esp + 4]
fstp dword [esp]
mov edi, edx
cdq
idiv ecx
lea eax, [esp + 0x1bc]
push eax
lea eax, [esp + 0x7c]
push eax
lea ecx, [esp + 0xc4]
mov dword [esp + 0x1a4], edx
call fcn.0040a033
push eax
xor eax, eax
push eax
push dword [esp + 0x1a4]
mov ecx, esi
call fcn.004acdec
fldz
push dword [esp + 0x14]
lea eax, [esp + 0x1f4]
push ecx
push ecx
fst dword [esp + 4]
lea ecx, [esp + 0xbc]
fstp dword [esp]
push eax
lea eax, [esp + 0x7c]
push eax
call fcn.0040a033
push eax
xor eax, eax
push eax
push edi
mov ecx, esi
call fcn.004acdec
jmp 0x4386df
push dword [esp + 0x14]
lea eax, [esp + 0x1b4]
push ecx
push ecx
fst dword [esp + 4]
lea esi, [ebx + 0x31fc]
mov edi, dword [esi]
fstp dword [esp]
push eax
lea eax, [esp + 0x7c]
push eax
lea ecx, [esp + 0xc4]
call fcn.0040a033
push eax
mov ecx, esi
call dword [edi + 0x5c]
fldz
push dword [esp + 0x14]
mov edi, dword [esi]
push ecx
push ecx
fst dword [esp + 4]
lea eax, [esp + 0x1fc]
fstp dword [esp]
push eax
lea eax, [esp + 0x7c]
push eax
lea ecx, [esp + 0xc4]
call fcn.0040a033
push eax
mov ecx, esi
call dword [edi + 0x5c]
xor edi, edi
lea esi, [esp + 0x1b0]
inc edi
mov ecx, esi
call fcn.004078f0
add esi, 0x40
dec edi
jns 0x4386e9
fld dword [esp + 0x24]
and dword [esp + 0x10], 0
fadd qword [0x6ba288]
lea esi, [esp + 0x1b0]
fstp qword [esp + 0x40]
fldz
sub esp, 0xc
fstp dword [esp + 8]
lea eax, [esp + 0x78]
fld dword [esp + 0x40]
fstp dword [esp + 4]
fild dword [esp + 0x1c]
fmul qword [0x6ba2b0]
fadd qword [esp + 0x4c]
fmul dword [esp + 0x24]
fstp dword [esp + 0x70]
fld dword [esp + 0x70]
fstp dword [esp]
push eax
call fcn.004690e4
add esp, 0x10
push eax
mov ecx, esi
call fcn.00407a2f
inc dword [esp + 0x10]
add esi, 0x40
cmp dword [esp + 0x10], 2
jb 0x438710
mov eax, dword [esp + 0x30]
fldz
cmp byte [eax], 0
je 0x438806
mov eax, dword [esp + 0x54]
push 0xa
pop ecx
cdq
idiv ecx
push dword [esp + 0x14]
lea esi, [ebx + 0x31ec]
push ecx
push ecx
fst dword [esp + 4]
fstp dword [esp]
mov edi, edx
cdq
idiv ecx
lea eax, [esp + 0x1bc]
push eax
lea eax, [esp + 0x7c]
push eax
lea ecx, [esp + 0xc4]
mov dword [esp + 0x17c], edx
call fcn.0040a033
push eax
xor eax, eax
push eax
push dword [esp + 0x17c]
mov ecx, esi
call fcn.004acdec
fldz
push dword [esp + 0x14]
and dword [esp + 0x1a8], 0
push ecx
push ecx
fst dword [esp + 4]
lea eax, [esp + 0x1fc]
fstp dword [esp]
push eax
lea eax, [esp + 0x7c]
push eax
lea ecx, [esp + 0xc4]
call fcn.0040a033
push eax
push dword [esp + 0x1b4]
mov ecx, esi
push edi
call fcn.004acdec
jmp 0x43886a
push dword [esp + 0x14]
lea eax, [esp + 0x1b4]
push ecx
push ecx
fst dword [esp + 4]
lea esi, [ebx + 0x31fc]
mov edi, dword [esi]
fstp dword [esp]
push eax
lea eax, [esp + 0x7c]
push eax
lea ecx, [esp + 0xc4]
call fcn.0040a033
push eax
mov ecx, esi
call dword [edi + 0x5c]
fldz
push dword [esp + 0x14]
mov edi, dword [esi]
push ecx
push ecx
fst dword [esp + 4]
lea eax, [esp + 0x1fc]
fstp dword [esp]
push eax
lea eax, [esp + 0x7c]
push eax
lea ecx, [esp + 0xc4]
call fcn.0040a033
push eax
mov ecx, esi
call dword [edi + 0x5c]
fldz
sub esp, 0xc
fstp dword [esp + 8]
lea eax, [esp + 0x78]
fld dword [esp + 0x40]
fstp dword [esp + 4]
fld dword [esp + 0x30]
fadd qword [0x6ba280]
fmul dword [esp + 0x24]
fstp dword [esp + 0x60]
fld dword [esp + 0x60]
fstp dword [esp]
push eax
call fcn.004690e4
add esp, 0x10
push eax
lea ecx, [esp + 0xf4]
call fcn.00407a2f
fldz
push dword [esp + 0x14]
lea eax, [esp + 0xf4]
push ecx
push ecx
fst dword [esp + 4]
lea esi, [ebx + 0x3324]
mov edi, dword [esi]
fstp dword [esp]
push eax
lea eax, [esp + 0x7c]
push eax
lea ecx, [esp + 0xc4]
call fcn.0040a033
push eax
mov ecx, esi
call dword [edi + 0x5c]
xor edi, edi
lea esi, [esp + 0x1b0]
inc edi
mov ecx, esi
call fcn.004078f0
add esi, 0x40
dec edi
jns 0x4388ee
fld dword [esp + 0x24]
and dword [esp + 0x10], 0
fadd qword [0x6ba278]
lea esi, [esp + 0x1b0]
fstp qword [esp + 0x40]
fldz
sub esp, 0xc
fstp dword [esp + 8]
lea eax, [esp + 0x78]
fld dword [esp + 0x40]
fstp dword [esp + 4]
fild dword [esp + 0x1c]
fmul qword [0x6ba2b0]
fadd qword [esp + 0x4c]
fmul dword [esp + 0x24]
fstp dword [esp + 0x60]
fld dword [esp + 0x60]
fstp dword [esp]
push eax
call fcn.004690e4
add esp, 0x10
push eax
mov ecx, esi
call fcn.00407a2f
inc dword [esp + 0x10]
add esi, 0x40
cmp dword [esp + 0x10], 2
jb 0x438915
mov eax, dword [esp + 0x30]
fldz
cmp byte [eax], 0
je 0x438a0b
mov eax, dword [esp + 0x4c]
push 0xa
pop ecx
cdq
idiv ecx
push dword [esp + 0x14]
lea esi, [ebx + 0x31ec]
push ecx
push ecx
fst dword [esp + 4]
fstp dword [esp]
mov edi, edx
cdq
idiv ecx
lea eax, [esp + 0x1bc]
push eax
lea eax, [esp + 0x7c]
push eax
lea ecx, [esp + 0xc4]
mov dword [esp + 0x18c], edx
call fcn.0040a033
push eax
xor eax, eax
push eax
push dword [esp + 0x18c]
mov ecx, esi
call fcn.004acdec
fldz
push dword [esp + 0x14]
and dword [esp + 0x150], 0
push ecx
push ecx
fst dword [esp + 4]
lea eax, [esp + 0x1fc]
fstp dword [esp]
push eax
lea eax, [esp + 0x7c]
push eax
lea ecx, [esp + 0xc4]
call fcn.0040a033
push eax
push dword [esp + 0x15c]
mov ecx, esi
push edi
call fcn.004acdec
jmp 0x438a6f
push dword [esp + 0x14]
lea eax, [esp + 0x1b4]
push ecx
push ecx
fst dword [esp + 4]
lea esi, [ebx + 0x31fc]
mov edi, dword [esi]
fstp dword [esp]
push eax
lea eax, [esp + 0x7c]
push eax
lea ecx, [esp + 0xc4]
call fcn.0040a033
push eax
mov ecx, esi
call dword [edi + 0x5c]
fldz
push dword [esp + 0x14]
mov edi, dword [esi]
push ecx
push ecx
fst dword [esp + 4]
lea eax, [esp + 0x1fc]
fstp dword [esp]
push eax
lea eax, [esp + 0x7c]
push eax
lea ecx, [esp + 0xc4]
call fcn.0040a033
push eax
mov ecx, esi
call dword [edi + 0x5c]
fldz
sub esp, 0xc
fstp dword [esp + 8]
lea eax, [esp + 0x78]
fld dword [esp + 0x40]
fstp dword [esp + 4]
fld dword [esp + 0x30]
fadd qword [0x6ba270]
fmul dword [esp + 0x24]
fstp dword [esp + 0x58]
fld dword [esp + 0x58]
fstp dword [esp]
push eax
call fcn.004690e4
add esp, 0x10
push eax
lea ecx, [esp + 0xf4]
call fcn.00407a2f
fldz
push dword [esp + 0x14]
lea eax, [esp + 0xf4]
push ecx
push ecx
fst dword [esp + 4]
lea esi, [ebx + 0x3324]
mov edi, dword [esi]
fstp dword [esp]
push eax
lea eax, [esp + 0x7c]
push eax
lea ecx, [esp + 0xc4]
call fcn.0040a033
push eax
mov ecx, esi
call dword [edi + 0x5c]
xor edi, edi
lea esi, [esp + 0x1b0]
inc edi
mov ecx, esi
call fcn.004078f0
add esi, 0x40
dec edi
jns 0x438af3
fld dword [esp + 0x24]
and dword [esp + 0x10], 0
fadd qword [0x6ba200]
lea esi, [esp + 0x1b0]
fstp qword [esp + 0x40]
fldz
sub esp, 0xc
fstp dword [esp + 8]
lea eax, [esp + 0x78]
fld dword [esp + 0x40]
fstp dword [esp + 4]
fild dword [esp + 0x1c]
fmul qword [0x6ba2b0]
fadd qword [esp + 0x4c]
fmul dword [esp + 0x24]
fstp dword [esp + 0x58]
fld dword [esp + 0x58]
fstp dword [esp]
push eax
call fcn.004690e4
add esp, 0x10
push eax
mov ecx, esi
call fcn.00407a2f
inc dword [esp + 0x10]
add esi, 0x40
cmp dword [esp + 0x10], 2
jb 0x438b1a
mov eax, dword [esp + 0x30]
fldz
cmp byte [eax], 0
je 0x438c10
mov eax, dword [esp + 0x28]
push 0xa
pop ecx
cdq
idiv ecx
push dword [esp + 0x14]
lea esi, [ebx + 0x31ec]
push ecx
push ecx
fst dword [esp + 4]
fstp dword [esp]
mov edi, edx
cdq
idiv ecx
lea eax, [esp + 0x1bc]
push eax
lea eax, [esp + 0x7c]
push eax
lea ecx, [esp + 0xc4]
mov dword [esp + 0x19c], edx
call fcn.0040a033
push eax
xor eax, eax
push eax
push dword [esp + 0x19c]
mov ecx, esi
call fcn.004acdec
fldz
push dword [esp + 0x14]
and dword [esp + 0x158], 0
push ecx
push ecx
fst dword [esp + 4]
lea eax, [esp + 0x1fc]
fstp dword [esp]
push eax
lea eax, [esp + 0x7c]
push eax
lea ecx, [esp + 0xc4]
call fcn.0040a033
push eax
push dword [esp + 0x164]
mov ecx, esi
push edi
call fcn.004acdec
jmp 0x438c74
push dword [esp + 0x14]
lea eax, [esp + 0x1b4]
push ecx
push ecx
fst dword [esp + 4]
lea esi, [ebx + 0x31fc]
mov edi, dword [esi]
fstp dword [esp]
push eax
lea eax, [esp + 0x7c]
push eax
lea ecx, [esp + 0xc4]
call fcn.0040a033
push eax
mov ecx, esi
call dword [edi + 0x5c]
fldz
push dword [esp + 0x14]
mov edi, dword [esi]
push ecx
push ecx
fst dword [esp + 4]
lea eax, [esp + 0x1fc]
fstp dword [esp]
push eax
lea eax, [esp + 0x7c]
push eax
lea ecx, [esp + 0xc4]
call fcn.0040a033
push eax
mov ecx, esi
call dword [edi + 0x5c]
mov eax, dword [esp + 0x30]
cmp byte [eax], 0
je 0x438d29
mov ecx, dword [esp + 0x38]
mov eax, dword [ecx]
call dword [eax + 0x64]
test al, al
je 0x438cc7
mov ecx, dword [ebx + 8]
mov esi, 0x80380
push 0xc8ffffff
add ecx, esi
call fcn.004569d8
mov ecx, dword [ebx + 8]
push 0xffffffffffffffff
add ecx, esi
call fcn.004565a1
mov ecx, dword [ebx + 8]
push 3
add ecx, esi
call fcn.004565ba
mov eax, dword [ebx + 8]
lea ecx, [eax + 0x80384]
mov eax, dword [ecx]
jmp 0x438d26
fld qword [esp + 0x130]
fadd qword [0x6ba268]
fmul dword [esp + 0x18]
call fcn.005f5310
fld qword [esp + 0x138]
fadd qword [0x6ba260]
mov dword [esp + 0x140], eax
fadd dword [esp + 0x3c]
fmul dword [esp + 0x18]
call fcn.005f5310
mov esi, dword [esp + 0x5c]
push eax
push dword [esp + 0x144]
lea edi, [esi - 4]
mov ecx, edi
call fcn.00456dad
push dword [esp + 0xac]
mov ecx, edi
call fcn.004565d5
mov eax, dword [esi]
mov ecx, esi
call dword [eax + 8]
fldz
sub esp, 0xc
fst dword [esp + 8]
lea eax, [esp + 0x78]
fld dword [esp + 0x38]
fstp dword [esp + 4]
fstp dword [esp]
push eax
call fcn.004690e4
add esp, 0x10
push eax
lea ecx, [esp + 0xf4]
call fcn.00407a2f
mov edi, dword [esp + 0x38]
lea eax, [esp + 0xf0]
push eax
lea eax, [esp + 0x70]
push eax
lea ecx, [esp + 0xb8]
add edi, 0xfffff098
call fcn.0040a033
mov edx, dword [edi]
sub esp, 0x40
push 0x10
pop ecx
mov edi, esp
push dword [esp + 0x54]
mov esi, eax
rep movsd dword es:[edi], dword [esi]
mov ecx, dword [esp + 0x7c]
add ecx, 0xfffff098
call dword [edx + 0x48]
mov edi, dword [esp + 0x38]
lea eax, [esp + 0xf0]
push eax
lea eax, [esp + 0x70]
push eax
lea ecx, [esp + 0xb8]
add edi, 0xfffff580
call fcn.0040a033
mov edx, dword [edi]
sub esp, 0x40
push 0x10
pop ecx
mov edi, esp
push dword [esp + 0x54]
mov esi, eax
rep movsd dword es:[edi], dword [esi]
mov ecx, dword [esp + 0x7c]
add ecx, 0xfffff580
call dword [edx + 0x48]
sub esp, 0xc
fldz
lea eax, [esp + 0x78]
fstp dword [esp + 8]
fld dword [esp + 0x2c]
fadd qword [0x6ba258]
fadd dword [esp + 0x48]
fmul dword [esp + 0x24]
fstp dword [esp + 0x34]
fld dword [esp + 0x34]
fstp dword [esp + 4]
fld dword [esp + 0x30]
fadd qword [0x6ba250]
fmul dword [esp + 0x24]
fstp dword [esp + 0x34]
fld dword [esp + 0x34]
fstp dword [esp]
push eax
call fcn.004690e4
add esp, 0x10
push eax
lea ecx, [esp + 0xf4]
call fcn.00407a2f
fldz
push dword [esp + 0x14]
lea esi, [ebx + 0x3020]
mov edi, dword [esi]
push ecx
push ecx
fst dword [esp + 4]
fstp dword [esp]
lea eax, [esp + 0xfc]
push eax
lea eax, [esp + 0x7c]
push eax
lea ecx, [esp + 0xc4]
call fcn.0040a033
push eax
mov ecx, esi
call dword [edi + 0x5c]
xor edi, edi
lea esi, [esp + 0x1b0]
inc edi
mov ecx, esi
call fcn.004078f0
add esi, 0x40
dec edi
jns 0x438e75
fld dword [esp + 0x20]
and dword [esp + 0x10], 0
fadd qword [0x6ba248]
lea esi, [esp + 0x1b0]
fadd dword [esp + 0x3c]
fmul dword [esp + 0x18]
fstp dword [esp + 0x20]
fld dword [esp + 0x24]
fadd qword [0x6ba240]
fstp qword [esp + 0x40]
fldz
sub esp, 0xc
fstp dword [esp + 8]
lea eax, [esp + 0x78]
fld dword [esp + 0x2c]
fstp dword [esp + 4]
fild dword [esp + 0x1c]
fmul qword [0x6ba238]
fadd qword [esp + 0x4c]
fmul dword [esp + 0x24]
fstp dword [esp + 0x34]
fld dword [esp + 0x34]
fstp dword [esp]
push eax
call fcn.004690e4
add esp, 0x10
push eax
mov ecx, esi
call fcn.00407a2f
inc dword [esp + 0x10]
add esi, 0x40
cmp dword [esp + 0x10], 2
jb 0x438eb2
push 0xa
pop edi
cmp dword [ebx + 0x2fca5c], edi
jne 0x438f13
sub dword [esp + 0x60], 0x50
mov eax, dword [esp + 0x60]
fldz
cdq
mov ecx, edi
idiv ecx
push dword [esp + 0x14]
push ecx
push ecx
fst dword [esp + 4]
fstp dword [esp]
mov dword [esp + 0x34], edx
cdq
idiv ecx
lea eax, [esp + 0x1bc]
push eax
lea eax, [esp + 0x7c]
push eax
lea ecx, [esp + 0xc4]
mov esi, edx
call fcn.0040a033
push eax
xor eax, eax
push eax
push esi
lea esi, [ebx + 0x3148]
mov ecx, esi
call fcn.004acdec
fldz
push dword [esp + 0x14]
lea eax, [esp + 0x1f4]
push ecx
push ecx
fst dword [esp + 4]
lea ecx, [esp + 0xbc]
fstp dword [esp]
push eax
lea eax, [esp + 0x7c]
push eax
call fcn.0040a033
push eax
xor eax, eax
push eax
push dword [esp + 0x3c]
mov ecx, esi
call fcn.004acdec
mov eax, dword [esp + 0x30]
cmp byte [eax], 0
je 0x439051
mov ecx, dword [ebx + 8]
mov eax, dword [ecx + 0x2f34]
mov edx, dword [ebx + 0x2fca5c]
dec eax
cmp edx, edi
jge 0x438fcb
mov esi, dword [esp + 0x1c]
mov ecx, dword [ecx + 0x2f30]
lea esi, [esi + edx*8]
dec ecx
cmp ecx, esi
je 0x438fd7
cmp edx, edi
jne 0x439051
cmp eax, dword [esp + 0x1c]
jne 0x439051
fldz
sub esp, 0xc
fstp dword [esp + 8]
lea eax, [esp + 0x78]
fld dword [esp + 0x2c]
fstp dword [esp + 4]
fld dword [esp + 0x30]
fadd qword [0x6ba230]
fmul dword [esp + 0x24]
fstp dword [esp + 0x34]
fld dword [esp + 0x34]
fstp dword [esp]
push eax
call fcn.004690e4
add esp, 0x10
push eax
lea ecx, [esp + 0xf4]
call fcn.00407a2f
fldz
push dword [esp + 0x14]
lea eax, [esp + 0xf4]
push ecx
push ecx
fst dword [esp + 4]
lea esi, [ebx + 0x2f8c]
mov edi, dword [esi]
fstp dword [esp]
push eax
lea eax, [esp + 0x7c]
push eax
lea ecx, [esp + 0xc4]
call fcn.0040a033
push eax
mov ecx, esi
call dword [edi + 0x5c]
mov eax, dword [ebx + 0x2184]
sub eax, dword [ebx + 0x2180]
push 0x78
cdq
pop ecx
idiv ecx
inc dword [esp + 0x1c]
add dword [esp + 0x68], 0x94
add dword [esp + 0x5c], 0x594
add dword [esp + 0x38], 0x84
add dword [esp + 0x30], 0x5ebe8
cmp dword [esp + 0x1c], eax
jl 0x437e9e
lea eax, [esp + 0xb0]
push eax
lea eax, [ebx + 0x10]
call fcn.0043f1a9
fldz
sub esp, 0xc
fst dword [esp + 8]
fst dword [esp + 4]
lea eax, [esp + 0x78]
fstp dword [esp]
push eax
call fcn.004690e4
add esp, 0x10
push eax
lea ecx, [esp + 0xf4]
call fcn.00407a2f
fldz
push 0xffffffffffffffff
push ecx
push ecx
fst dword [esp + 4]
lea eax, [esp + 0xfc]
fstp dword [esp]
push eax
lea eax, [esp + 0x7c]
lea esi, [ebx + 0x145c]
mov edi, dword [esi]
push eax
lea ecx, [esp + 0xc4]
call fcn.0040a033
push eax
mov ecx, esi
call dword [edi + 0x5c]
mov ecx, dword [ebx + 0xc]
mov eax, dword [ecx]
call dword [eax + 8]
mov eax, dword [ebx + 8]
cmp dword [eax + 0x2060], 1
jne 0x439183
fldz
sub esp, 0xc
fst dword [esp + 8]
lea eax, [esp + 0x78]
fld dword [esp + 0x24]
fmul qword [0x6b9eb0]
fstp dword [esp + 0x34]
fld dword [esp + 0x34]
fstp dword [esp + 4]
fstp dword [esp]
push eax
call fcn.004690e4
add esp, 0x10
push eax
lea ecx, [esp + 0xf4]
call fcn.00407a2f
fldz
push 0xffffffffffffffff
push ecx
push ecx
fst dword [esp + 4]
lea eax, [esp + 0xfc]
fstp dword [esp]
push eax
lea eax, [esp + 0x7c]
lea esi, [ebx + 0x15c0]
mov edi, dword [esi]
push eax
lea ecx, [esp + 0xc4]
call fcn.0040a033
push eax
mov ecx, esi
call dword [edi + 0x5c]
mov ebx, dword [ebx + 8]
push 1
push 1
push 0
lea ecx, [ebx + 0x80914]
call fcn.0045787d
mov ecx, eax
call fcn.0045fb13
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret