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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x190
push ebx
push ebp
push esi
mov esi, ecx
mov eax, dword [esi + 8]
push edi
lea ecx, [eax + 0x80918]
call fcn.0046f4f8
mov ecx, eax
call fcn.004741a6
fstp dword [esp + 0x20]
fld1
sub esp, 0xc
fstp dword [esp + 8]
lea eax, [esp + 0xd4]
fld dword [esp + 0x2c]
fst dword [esp + 4]
fstp dword [esp]
push eax
call fcn.00480011
fldz
mov edx, dword [esi + 0x2f80]
fst dword [esp + 0x74]
mov eax, dword [edx + 4]
fst dword [esp + 0x70]
fst dword [esp + 0x6c]
lea ecx, [esi + 0x2f80]
fst dword [esp + 0x68]
add esp, 0x10
fst dword [esp + 0x54]
fst dword [esp + 0x50]
fst dword [esp + 0x4c]
fst dword [esp + 0x48]
fst dword [esp + 0x44]
fst dword [esp + 0x40]
fst dword [esp + 0x3c]
fst dword [esp + 0x38]
fst dword [esp + 0x34]
fst dword [esp + 0x30]
fst dword [esp + 0x2c]
fstp dword [esp + 0x28]
call eax
shl eax, 0x18
or eax, 0xffffff
push 2
mov dword [esp + 0x80], eax
mov eax, dword [esi + 8]
push 2
push 0
lea ecx, [eax + 0x80918]
call fcn.0046f4f8
mov ecx, eax
call fcn.00475f32
fldz
mov edx, dword [esi + 0x1500]
mov edx, dword [edx + 0x5c]
push 0xffffffffffffffff
sub esp, 8
lea ecx, [esi + 0x1500]
fst dword [esp + 4]
lea eax, [esp + 0xd4]
fstp dword [esp]
push eax
call edx
fldz
mov eax, dword [esi + 0x16cc]
mov eax, dword [eax + 0x5c]
push 0xffffffffffffffff
sub esp, 8
lea ecx, [esi + 0x16cc]
fst dword [esp + 4]
lea edx, [esp + 0xd4]
fstp dword [esp]
push edx
call eax
fld dword [esp + 0x20]
fld qword [0x6d01c0]
fmul st(1)
fstp dword [esp + 0x24]
fld dword [esp + 0x24]
fst dword [esp + 0x14]
fldz
mov ecx, dword [esp + 0x14]
fst dword [esp + 0x18]
mov dword [esp + 0x84], ecx
mov edx, dword [esp + 0x18]
fld st(2)
fmul qword [0x6d01b8]
mov dword [esp + 0x88], edx
sub esp, 0xc
fstp dword [esp + 0x20]
mov eax, dword [esp + 0x20]
mov dword [esp + 0x98], eax
fst dword [esp + 0x24]
mov ecx, dword [esp + 0x24]
fxch st(1)
mov dword [esp + 0x9c], ecx
fstp dword [esp + 0x20]
mov edx, dword [esp + 0x20]
mov dword [esp + 0xa0], edx
fst dword [esp + 0x24]
mov eax, dword [esp + 0x24]
mov dword [esp + 0xa4], eax
fxch st(1)
fmul qword [0x6d01b0]
mov eax, dword [esi + 0x2f60]
add eax, eax
add eax, eax
fstp dword [esp + 0x20]
mov ecx, dword [esp + 0x20]
add eax, eax
fst dword [esp + 0x24]
mov edx, dword [esp + 0x24]
fstp dword [esp + 8]
mov dword [esp + 0xa8], ecx
mov dword [esp + 0xac], edx
fld dword [esp + eax + 0x94]
fstp dword [esp + 4]
fld dword [esp + eax + 0x90]
lea eax, [esp + 0x90]
fstp dword [esp]
push eax
call fcn.0047ffaa
add esp, 0x10
push eax
lea ecx, [esp + 0x2c]
call fcn.0040a520
fldz
mov ebx, dword [esi + 0x17f4]
push 0xffffffffffffffff
sub esp, 8
fst dword [esp + 4]
lea ecx, [esp + 0x34]
fstp dword [esp]
push ecx
lea edx, [esp + 0x94]
lea edi, [esi + 0x17f4]
push edx
lea ecx, [esp + 0xdc]
call fcn.0040f290
push eax
mov eax, dword [ebx + 0x5c]
mov ecx, edi
call eax
lea eax, [esi + 0x10]
lea ebx, [esp + 0xc8]
call fcn.004549e0
fld dword [esp + 0x20]
fld qword [0x6cfbb8]
sub esp, 0xc
fmul st(1)
lea ecx, [esp + 0x90]
fstp dword [esp + 0x74]
fldz
fstp dword [esp + 8]
fmul qword [0x6d0100]
fstp dword [esp + 0x30]
fld dword [esp + 0x30]
fstp dword [esp + 4]
fld dword [esp + 0x74]
fstp dword [esp]
push ecx
call fcn.0047ffaa
add esp, 0x10
push eax
lea ecx, [esp + 0x2c]
call fcn.0040a520
fldz
mov ebx, dword [esi + 0x1638]
push 0xffffffffffffffff
sub esp, 8
fst dword [esp + 4]
lea edx, [esp + 0x34]
fstp dword [esp]
push edx
lea eax, [esp + 0x94]
lea edi, [esi + 0x1638]
push eax
lea ecx, [esp + 0xdc]
call fcn.0040f290
mov edx, dword [ebx + 0x5c]
push eax
mov ecx, edi
call edx
lea eax, [esp + 0xc8]
push eax
lea ecx, [esi + 0x20]
push ecx
call fcn.0044f8a0
fldz
sub esp, 0xc
fstp dword [esp + 8]
fld dword [esp + 0x74]
lea edx, [esp + 0x90]
fst dword [esp + 4]
fstp dword [esp]
push edx
call fcn.0047ffaa
add esp, 0x10
push eax
lea ecx, [esp + 0x2c]
call fcn.0040a520
fldz
mov ebx, dword [edi]
push 0xffffffffffffffff
sub esp, 8
fst dword [esp + 4]
lea eax, [esp + 0x34]
fstp dword [esp]
push eax
lea ecx, [esp + 0x94]
push ecx
lea ecx, [esp + 0xdc]
call fcn.0040f290
mov edx, dword [ebx + 0x5c]
push eax
mov ecx, edi
call edx
fldz
sub esp, 0xc
fstp dword [esp + 8]
fld dword [esp + 0x74]
lea eax, [esp + 0x90]
fst dword [esp + 4]
fstp dword [esp]
push eax
call fcn.0047ffaa
add esp, 0x10
push eax
lea ecx, [esp + 0x2c]
call fcn.0040a520
fldz
push 0xffffffffffffffff
xor edi, edi
xor ebx, ebx
sub esp, 8
fst dword [esp + 4]
lea ecx, [esp + 0x34]
fstp dword [esp]
push ecx
lea edx, [esp + 0x94]
push edx
lea ecx, [esp + 0xdc]
call fcn.0040f290
push eax
push ebx
push edi
lea ecx, [esi + 0x1628]
call fcn.004c3f68
fldz
sub esp, 0xc
fstp dword [esp + 8]
fld dword [esp + 0x2c]
lea eax, [esp + 0x90]
fld qword [0x6d0028]
fmul st(1)
fstp dword [esp + 0x30]
fld dword [esp + 0x30]
fstp dword [esp + 4]
fmul qword [0x6d0020]
fstp dword [esp + 0x30]
fld dword [esp + 0x30]
fstp dword [esp]
push eax
call fcn.0047ffaa
add esp, 0x10
push eax
lea ecx, [esp + 0x2c]
call fcn.0040a520
fldz
mov ebx, dword [esi + 0x1b60]
push 0xffffffffffffffff
sub esp, 8
fst dword [esp + 4]
lea ecx, [esp + 0x34]
fstp dword [esp]
push ecx
lea edx, [esp + 0x94]
lea edi, [esi + 0x1b60]
push edx
lea ecx, [esp + 0xdc]
call fcn.0040f290
push eax
mov eax, dword [ebx + 0x5c]
mov ecx, edi
call eax
lea ecx, [esp + 0xc8]
push ecx
lea edi, [esi + 0x1bf4]
push edi
call fcn.0044f5d0
lea edx, [esp + 0xc8]
push edx
push edi
call fcn.0044f8a0
lea eax, [esp + 0xc8]
push eax
lea edi, [esi + 0x2278]
push edi
call fcn.0044f5d0
lea ecx, [esp + 0xc8]
push ecx
push edi
call fcn.0044f8a0
mov ecx, dword [esi + 0x2294]
sub ecx, dword [esi + 0x2290]
mov eax, 0x88888889
imul ecx
add edx, ecx
sar edx, 6
mov eax, edx
shr eax, 0x1f
xor edi, edi
add eax, edx
mov dword [esp + 0x78], edi
test eax, eax
jle 0x437d0a
lea ebp, [esi + 0x2f30]
lea ecx, [esi + 0x22ac]
lea edx, [esi + 0x2750]
mov dword [esp + 0x24], ebp
mov dword [esp + 0x80], ecx
mov dword [esp + 0x68], edx
mov eax, 0x55555556
imul edi
mov eax, edx
shr eax, 0x1f
add eax, edx
mov dword [esp + 0x70], eax
lea eax, [eax + eax*2]
mov ecx, edi
sub ecx, eax
mov dword [esp + 0x1c], ecx
sub esp, 0xc
lea edx, [esp + 0x90]
fild dword [esp + 0x28]
fmul qword [0x6cfd78]
fstp dword [esp + 0x78]
fild dword [esp + 0x7c]
fmul qword [0x6cfd68]
fstp dword [esp + 0x80]
fldz
fstp dword [esp + 8]
fld dword [esp + 0x80]
fadd qword [0x6d01a8]
fld dword [esp + 0x2c]
fld st(0)
fmulp st(2)
fxch st(1)
fstp dword [esp + 0x28]
fld dword [esp + 0x28]
fstp dword [esp + 4]
fld dword [esp + 0x78]
fadd qword [0x6d0150]
fmulp st(1)
fstp dword [esp + 0x28]
fld dword [esp + 0x28]
fstp dword [esp]
push edx
call fcn.0047ffaa
fld dword [eax]
fstp dword [esp + 0x38]
add esp, 0x10
fld dword [eax + 4]
push 0xffffffffffffffff
fstp dword [esp + 0x30]
sub esp, 8
fld dword [eax + 8]
lea ecx, [esp + 0x34]
fstp dword [esp + 0x3c]
lea edx, [esp + 0x90]
fld dword [eax + 0xc]
fstp dword [esp + 0x40]
fld dword [eax + 0x10]
fstp dword [esp + 0x44]
fld dword [eax + 0x14]
fstp dword [esp + 0x48]
fld dword [eax + 0x18]
fstp dword [esp + 0x4c]
fld dword [eax + 0x1c]
fstp dword [esp + 0x50]
fld dword [eax + 0x20]
fstp dword [esp + 0x54]
fld dword [eax + 0x24]
fstp dword [esp + 0x58]
fld dword [eax + 0x28]
fstp dword [esp + 0x5c]
fld dword [eax + 0x2c]
fstp dword [esp + 0x60]
fld dword [eax + 0x30]
fstp dword [esp + 0x64]
fld dword [eax + 0x34]
fstp dword [esp + 0x68]
fld dword [eax + 0x38]
fstp dword [esp + 0x6c]
fld dword [eax + 0x3c]
mov eax, dword [esp + 0x74]
mov ebx, dword [eax]
fstp dword [esp + 0x70]
fldz
fst dword [esp + 4]
fstp dword [esp]
push ecx
push edx
lea ecx, [esp + 0xdc]
call fcn.0040f290
mov ecx, dword [esp + 0x74]
push eax
mov eax, dword [ebx + 0x5c]
call eax
mov ecx, dword [esp + 0x80]
mov edx, dword [ecx]
mov edx, dword [edx + 0x30]
lea eax, [esp + 0x198]
push eax
call edx
cmp dword [eax + 4], 0xffffd8f1
je 0x437794
cmp byte [esi + edi + 0x2ef4], 0
mov dword [esp + 0x70], 0xffffffff
jne 0x4373ff
mov dword [esp + 0x70], 0xff787878
fldz
sub esp, 0xc
fstp dword [esp + 8]
lea eax, [esp + 0x90]
fld dword [esp + 0x80]
fadd qword [0x6d01a0]
fld dword [esp + 0x2c]
fld st(0)
fmulp st(2)
fxch st(1)
fstp dword [esp + 0x28]
fld dword [esp + 0x28]
fstp dword [esp + 4]
fld dword [esp + 0x78]
fadd qword [0x6d0198]
fmulp st(1)
fstp dword [esp + 0x28]
fld dword [esp + 0x28]
fstp dword [esp]
push eax
call fcn.0047ffaa
fld dword [eax]
fstp dword [esp + 0x38]
mov ecx, dword [esp + 0x80]
fld dword [eax + 4]
mov ebx, dword [esi + 0x2c84]
fstp dword [esp + 0x3c]
add esp, 0x10
fld dword [eax + 8]
push ecx
fstp dword [esp + 0x34]
sub esp, 8
fld dword [eax + 0xc]
lea edx, [esp + 0x34]
fstp dword [esp + 0x40]
lea ecx, [esp + 0xd4]
fld dword [eax + 0x10]
fstp dword [esp + 0x44]
fld dword [eax + 0x14]
fstp dword [esp + 0x48]
fld dword [eax + 0x18]
fstp dword [esp + 0x4c]
fld dword [eax + 0x1c]
fstp dword [esp + 0x50]
fld dword [eax + 0x20]
fstp dword [esp + 0x54]
fld dword [eax + 0x24]
fstp dword [esp + 0x58]
fld dword [eax + 0x28]
fstp dword [esp + 0x5c]
fld dword [eax + 0x2c]
fstp dword [esp + 0x60]
fld dword [eax + 0x30]
fstp dword [esp + 0x64]
fld dword [eax + 0x34]
fstp dword [esp + 0x68]
fld dword [eax + 0x38]
fstp dword [esp + 0x6c]
fld dword [eax + 0x3c]
lea eax, [esp + 0x90]
fstp dword [esp + 0x70]
fldz
fst dword [esp + 4]
fstp dword [esp]
push edx
push eax
call fcn.0040f290
mov edx, dword [ebx + 0x5c]
push eax
lea ecx, [esi + 0x2c84]
call edx
fldz
mov ebx, dword [esi + 0x2f64]
fst dword [esp + 0x144]
fst dword [esp + 0x140]
lea eax, [edi + ebx*8]
fst dword [esp + 0x13c]
lea ebx, [ebx + eax + 1]
fst dword [esp + 0x138]
fst dword [esp + 0x134]
fst dword [esp + 0x130]
fst dword [esp + 0x12c]
mov dword [esp + 0x1c], 0
fst dword [esp + 0x128]
lea edi, [esp + 0x110]
fst dword [esp + 0x124]
fst dword [esp + 0x120]
fst dword [esp + 0x11c]
fst dword [esp + 0x118]
fst dword [esp + 0x114]
fst dword [esp + 0x110]
fst dword [esp + 0x10c]
fst dword [esp + 0x108]
fst dword [esp + 0x184]
fst dword [esp + 0x180]
fst dword [esp + 0x17c]
fst dword [esp + 0x178]
fst dword [esp + 0x174]
fst dword [esp + 0x170]
fst dword [esp + 0x16c]
fst dword [esp + 0x168]
fst dword [esp + 0x164]
fst dword [esp + 0x160]
fst dword [esp + 0x15c]
fst dword [esp + 0x158]
fst dword [esp + 0x154]
fst dword [esp + 0x150]
fst dword [esp + 0x14c]
fst dword [esp + 0x148]
fld dword [esp + 0x74]
fadd qword [0x6cff98]
fmul dword [esp + 0x20]
fstp dword [esp + 0xc4]
fld dword [esp + 0x6c]
fadd qword [0x6d0190]
fstp qword [esp + 0x190]
jmp 0x437630
sub esp, 0xc
fstp dword [esp + 8]
lea ecx, [esp + 0x90]
fld dword [esp + 0xd0]
fstp dword [esp + 4]
fild dword [esp + 0x28]
fmul qword [0x6d0030]
fadd qword [esp + 0x19c]
fmul dword [esp + 0x2c]
fstp dword [esp + 0x20]
fld dword [esp + 0x20]
fstp dword [esp]
push ecx
call fcn.0047ffaa
fld dword [eax]
fstp dword [edi - 8]
add esp, 0x10
fld dword [eax + 4]
add edi, 0x40
fstp dword [edi - 0x44]
fld dword [eax + 8]
fstp dword [edi - 0x40]
fld dword [eax + 0xc]
fstp dword [edi - 0x3c]
fld dword [eax + 0x10]
fstp dword [edi - 0x38]
fld dword [eax + 0x14]
fstp dword [edi - 0x34]
fld dword [eax + 0x18]
fstp dword [edi - 0x30]
fld dword [eax + 0x1c]
fstp dword [edi - 0x2c]
fld dword [eax + 0x20]
fstp dword [edi - 0x28]
fld dword [eax + 0x24]
fstp dword [edi - 0x24]
fld dword [eax + 0x28]
fstp dword [edi - 0x20]
fld dword [eax + 0x2c]
fstp dword [edi - 0x1c]
fld dword [eax + 0x30]
fstp dword [edi - 0x18]
fld dword [eax + 0x34]
fstp dword [edi - 0x14]
fld dword [eax + 0x38]
fstp dword [edi - 0x10]
fld dword [eax + 0x3c]
mov eax, dword [esp + 0x1c]
fstp dword [edi - 0xc]
inc eax
fldz
mov dword [esp + 0x1c], eax
cmp eax, 2
jb 0x437630
mov eax, 0x66666667
imul ebx
sar edx, 2
mov edi, edx
shr edi, 0x1f
add edi, edx
mov eax, edi
cdq
mov ecx, 0xa
idiv ecx
lea eax, [esp + 0x108]
lea ecx, [esp + 0x84]
mov dword [esp + 0x188], edx
mov edx, dword [esp + 0x70]
push edx
sub esp, 8
fst dword [esp + 4]
fstp dword [esp]
push eax
push ecx
lea ecx, [esp + 0xdc]
call fcn.0040f290
mov edx, dword [esp + 0x194]
push eax
xor eax, eax
push eax
push edx
lea ecx, [esi + 0x2dac]
call fcn.004c3f68
fldz
mov ecx, dword [esp + 0x70]
push ecx
sub esp, 8
lea eax, [edi + edi*4]
fst dword [esp + 4]
add eax, eax
fstp dword [esp]
lea edx, [esp + 0x154]
sub ebx, eax
push edx
lea eax, [esp + 0x94]
push eax
lea ecx, [esp + 0xdc]
xor edi, edi
call fcn.0040f290
push eax
push edi
push ebx
lea ecx, [esi + 0x2dac]
call fcn.004c3f68
mov edi, dword [esp + 0x78]
cmp byte [esi + edi + 0x2ef4], 0
je 0x437cc4
fld dword [esp + 0x74]
mov ebx, dword [ebp - 0x30]
fadd qword [0x6d0188]
mov ebp, dword [ebp]
sub esp, 0xc
lea ecx, [esp + 0x90]
fstp dword [esp + 0x20]
fld dword [esp + 0x20]
fld dword [esp + 0x2c]
fld st(0)
fmulp st(2)
fxch st(1)
fstp dword [esp + 0x28]
fldz
fstp dword [esp + 8]
fld dword [esp + 0x28]
fstp dword [esp + 4]
fld dword [esp + 0x78]
fadd qword [0x6d0180]
fstp dword [esp + 0x20]
fmul dword [esp + 0x20]
fstp dword [esp + 0x20]
fld dword [esp + 0x20]
fstp dword [esp]
push ecx
call fcn.0047ffaa
fld dword [eax]
fstp dword [esp + 0x38]
add esp, 0x10
fld dword [eax + 4]
push 0xffffffffffffffff
fstp dword [esp + 0x30]
sub esp, 8
fld dword [eax + 8]
lea ecx, [esp + 0xd4]
fstp dword [esp + 0x3c]
fld dword [eax + 0xc]
fstp dword [esp + 0x40]
fld dword [eax + 0x10]
fstp dword [esp + 0x44]
fld dword [eax + 0x14]
fstp dword [esp + 0x48]
fld dword [eax + 0x18]
fstp dword [esp + 0x4c]
fld dword [eax + 0x1c]
fstp dword [esp + 0x50]
fld dword [eax + 0x20]
fstp dword [esp + 0x54]
fld dword [eax + 0x24]
fstp dword [esp + 0x58]
fld dword [eax + 0x28]
fstp dword [esp + 0x5c]
fld dword [eax + 0x2c]
fstp dword [esp + 0x60]
fld dword [eax + 0x30]
fstp dword [esp + 0x64]
fld dword [eax + 0x34]
fstp dword [esp + 0x68]
fld dword [eax + 0x38]
fstp dword [esp + 0x6c]
fld dword [eax + 0x3c]
mov eax, 0x66666667
imul ebx
fstp dword [esp + 0x70]
fldz
fst dword [esp + 4]
fstp dword [esp]
sar edx, 2
mov edi, edx
shr edi, 0x1f
add edi, edx
lea edx, [esp + 0x34]
push edx
lea eax, [esp + 0x94]
push eax
call fcn.0040f290
push eax
xor eax, eax
push eax
push edi
lea ecx, [esi + 0x2e50]
call fcn.004c3f68
fldz
sub esp, 0xc
fstp dword [esp + 8]
fld dword [esp + 0x28]
lea ecx, [esp + 0x90]
fstp dword [esp + 4]
fld dword [esp + 0x78]
fadd qword [0x6d00e8]
fstp dword [esp + 0x20]
fld dword [esp + 0x20]
fmul dword [esp + 0x2c]
fstp dword [esp + 0x20]
fld dword [esp + 0x20]
fstp dword [esp]
push ecx
call fcn.0047ffaa
fld dword [eax]
fstp dword [esp + 0x38]
add esp, 0x10
fld dword [eax + 4]
push 0xffffffffffffffff
fstp dword [esp + 0x30]
sub esp, 8
fld dword [eax + 8]
lea edx, [edi + edi*4]
fstp dword [esp + 0x3c]
lea ecx, [esp + 0x90]
fld dword [eax + 0xc]
add edx, edx
fstp dword [esp + 0x40]
sub ebx, edx
fld dword [eax + 0x10]
xor edi, edi
fstp dword [esp + 0x44]
fld dword [eax + 0x14]
fstp dword [esp + 0x48]
fld dword [eax + 0x18]
fstp dword [esp + 0x4c]
fld dword [eax + 0x1c]
fstp dword [esp + 0x50]
fld dword [eax + 0x20]
fstp dword [esp + 0x54]
fld dword [eax + 0x24]
fstp dword [esp + 0x58]
fld dword [eax + 0x28]
fstp dword [esp + 0x5c]
fld dword [eax + 0x2c]
fstp dword [esp + 0x60]
fld dword [eax + 0x30]
fstp dword [esp + 0x64]
fld dword [eax + 0x34]
fstp dword [esp + 0x68]
fld dword [eax + 0x38]
fstp dword [esp + 0x6c]
fld dword [eax + 0x3c]
lea eax, [esp + 0x34]
fstp dword [esp + 0x70]
fldz
fst dword [esp + 4]
fstp dword [esp]
push eax
push ecx
lea ecx, [esp + 0xdc]
call fcn.0040f290
push eax
push edi
push ebx
lea ecx, [esi + 0x2e50]
call fcn.004c3f68
fldz
sub esp, 0xc
fstp dword [esp + 8]
fld dword [esp + 0x80]
fadd qword [0x6d0178]
fstp dword [esp + 0x20]
fld dword [esp + 0x20]
fld dword [esp + 0x2c]
fld st(0)
fmulp st(2)
fxch st(1)
fstp dword [esp + 0x20]
lea edx, [esp + 0x90]
fld dword [esp + 0x20]
fstp dword [esp + 4]
fld dword [esp + 0x78]
fadd qword [0x6d0170]
fstp dword [esp + 0x20]
fmul dword [esp + 0x20]
fstp dword [esp + 0x20]
fld dword [esp + 0x20]
fstp dword [esp]
push edx
call fcn.0047ffaa
fld dword [eax]
fstp dword [esp + 0x38]
mov ebx, dword [esi + 0x2e60]
fld dword [eax + 4]
add esp, 0x10
fstp dword [esp + 0x2c]
lea ecx, [esp + 0x28]
fld dword [eax + 8]
lea edx, [esp + 0x84]
fstp dword [esp + 0x30]
lea edi, [esi + 0x2e60]
fld dword [eax + 0xc]
fstp dword [esp + 0x34]
fld dword [eax + 0x10]
fstp dword [esp + 0x38]
fld dword [eax + 0x14]
fstp dword [esp + 0x3c]
fld dword [eax + 0x18]
fstp dword [esp + 0x40]
fld dword [eax + 0x1c]
fstp dword [esp + 0x44]
fld dword [eax + 0x20]
fstp dword [esp + 0x48]
fld dword [eax + 0x24]
fstp dword [esp + 0x4c]
fld dword [eax + 0x28]
fstp dword [esp + 0x50]
fld dword [eax + 0x2c]
fstp dword [esp + 0x54]
fld dword [eax + 0x30]
fstp dword [esp + 0x58]
fld dword [eax + 0x34]
fstp dword [esp + 0x5c]
fld dword [eax + 0x38]
fstp dword [esp + 0x60]
fld dword [eax + 0x3c]
mov eax, dword [esp + 0x7c]
push eax
fstp dword [esp + 0x68]
fldz
sub esp, 8
fst dword [esp + 4]
fstp dword [esp]
push ecx
push edx
lea ecx, [esp + 0xdc]
call fcn.0040f290
push eax
mov eax, dword [ebx + 0x5c]
mov ecx, edi
call eax
fld dword [esp + 0x74]
fadd qword [0x6d0168]
sub esp, 0xc
fstp dword [esp + 0x20]
fld dword [esp + 0x20]
fld dword [esp + 0x2c]
fld st(0)
fmulp st(2)
fxch st(1)
fstp dword [esp + 0x28]
fldz
fstp dword [esp + 8]
fld dword [esp + 0x28]
fstp dword [esp + 4]
fld dword [esp + 0x78]
fadd qword [0x6d0160]
fstp dword [esp + 0x20]
fmul dword [esp + 0x20]
lea ecx, [esp + 0x90]
fstp dword [esp + 0x20]
fld dword [esp + 0x20]
fstp dword [esp]
push ecx
call fcn.0047ffaa
fld dword [eax]
fstp dword [esp + 0x38]
add esp, 0x10
fld dword [eax + 4]
push 0xffffffffffffffff
fstp dword [esp + 0x30]
sub esp, 8
fld dword [eax + 8]
lea ecx, [esp + 0xd4]
fstp dword [esp + 0x3c]
lea ebx, [esi + 0x2dac]
fld dword [eax + 0xc]
fstp dword [esp + 0x40]
fld dword [eax + 0x10]
fstp dword [esp + 0x44]
fld dword [eax + 0x14]
fstp dword [esp + 0x48]
fld dword [eax + 0x18]
fstp dword [esp + 0x4c]
fld dword [eax + 0x1c]
fstp dword [esp + 0x50]
fld dword [eax + 0x20]
fstp dword [esp + 0x54]
fld dword [eax + 0x24]
fstp dword [esp + 0x58]
fld dword [eax + 0x28]
fstp dword [esp + 0x5c]
fld dword [eax + 0x2c]
fstp dword [esp + 0x60]
fld dword [eax + 0x30]
fstp dword [esp + 0x64]
fld dword [eax + 0x34]
fstp dword [esp + 0x68]
fld dword [eax + 0x38]
fstp dword [esp + 0x6c]
fld dword [eax + 0x3c]
mov eax, 0x66666667
imul ebp
fstp dword [esp + 0x70]
fldz
fst dword [esp + 4]
fstp dword [esp]
sar edx, 2
mov edi, edx
shr edi, 0x1f
add edi, edx
lea edx, [esp + 0x34]
push edx
lea eax, [esp + 0x94]
push eax
call fcn.0040f290
push eax
xor eax, eax
push eax
push edi
mov ecx, ebx
call fcn.004c3f68
fldz
sub esp, 0xc
fstp dword [esp + 8]
lea ecx, [esp + 0x90]
fld dword [esp + 0x28]
fstp dword [esp + 4]
fld dword [esp + 0x78]
fadd qword [0x6d0158]
fstp dword [esp + 0x20]
fld dword [esp + 0x20]
fmul dword [esp + 0x2c]
fstp dword [esp + 0x20]
fld dword [esp + 0x20]
fstp dword [esp]
push ecx
call fcn.0047ffaa
add esp, 0x10
fld dword [eax]
push 0xffffffffffffffff
fstp dword [esp + 0x2c]
sub esp, 8
fld dword [eax + 4]
lea edx, [edi + edi*4]
fstp dword [esp + 0x38]
lea ecx, [esp + 0x90]
fld dword [eax + 8]
add edx, edx
fstp dword [esp + 0x3c]
sub ebp, edx
fld dword [eax + 0xc]
xor edi, edi
fstp dword [esp + 0x40]
fld dword [eax + 0x10]
fstp dword [esp + 0x44]
fld dword [eax + 0x14]
fstp dword [esp + 0x48]
fld dword [eax + 0x18]
fstp dword [esp + 0x4c]
fld dword [eax + 0x1c]
fstp dword [esp + 0x50]
fld dword [eax + 0x20]
fstp dword [esp + 0x54]
fld dword [eax + 0x24]
fstp dword [esp + 0x58]
fld dword [eax + 0x28]
fstp dword [esp + 0x5c]
fld dword [eax + 0x2c]
fstp dword [esp + 0x60]
fld dword [eax + 0x30]
fstp dword [esp + 0x64]
fld dword [eax + 0x34]
fstp dword [esp + 0x68]
fld dword [eax + 0x38]
fstp dword [esp + 0x6c]
fld dword [eax + 0x3c]
lea eax, [esp + 0x34]
fstp dword [esp + 0x70]
fldz
fst dword [esp + 4]
fstp dword [esp]
push eax
push ecx
lea ecx, [esp + 0xdc]
call fcn.0040f290
push eax
push edi
push ebp
mov ecx, ebx
call fcn.004c3f68
mov ebp, dword [esp + 0x24]
mov edi, dword [esp + 0x78]
mov ecx, dword [esi + 0x2294]
sub ecx, dword [esi + 0x2290]
add dword [esp + 0x68], 0x94
add dword [esp + 0x80], 0x84
mov eax, 0x88888889
imul ecx
add edx, ecx
sar edx, 6
mov eax, edx
shr eax, 0x1f
inc edi
add ebp, 4
add eax, edx
cmp edi, eax
mov dword [esp + 0x78], edi
mov dword [esp + 0x24], ebp
jl 0x43728d
lea ecx, [esp + 0xc8]
push ecx
lea edi, [esi + 0x1888]
push edi
call fcn.0044f5d0
lea edx, [esp + 0xc8]
push edx
push edi
call fcn.0044f8a0
mov ecx, dword [esi + 0xc]
mov eax, dword [ecx]
mov edx, dword [eax + 8]
call edx
mov eax, dword [esi + 8]
cmp dword [eax + 0x2064], 1
jne 0x437e28
fldz
sub esp, 0xc
fst dword [esp + 8]
lea ecx, [esp + 0x90]
fld dword [esp + 0x2c]
fmul qword [0x6cfc50]
fstp dword [esp + 0x88]
fld dword [esp + 0x88]
fstp dword [esp + 4]
fstp dword [esp]
push ecx
call fcn.0047ffaa
fld dword [eax]
fstp dword [esp + 0x38]
mov ebx, dword [esi + 0x1760]
fld dword [eax + 4]
add esp, 0x10
fstp dword [esp + 0x2c]
push 0xffffffffffffffff
fld dword [eax + 8]
sub esp, 8
fstp dword [esp + 0x3c]
lea edx, [esp + 0x34]
fld dword [eax + 0xc]
lea edi, [esi + 0x1760]
fstp dword [esp + 0x40]
lea ecx, [esp + 0xd4]
fld dword [eax + 0x10]
fstp dword [esp + 0x44]
fld dword [eax + 0x14]
fstp dword [esp + 0x48]
fld dword [eax + 0x18]
fstp dword [esp + 0x4c]
fld dword [eax + 0x1c]
fstp dword [esp + 0x50]
fld dword [eax + 0x20]
fstp dword [esp + 0x54]
fld dword [eax + 0x24]
fstp dword [esp + 0x58]
fld dword [eax + 0x28]
fstp dword [esp + 0x5c]
fld dword [eax + 0x2c]
fstp dword [esp + 0x60]
fld dword [eax + 0x30]
fstp dword [esp + 0x64]
fld dword [eax + 0x34]
fstp dword [esp + 0x68]
fld dword [eax + 0x38]
fstp dword [esp + 0x6c]
fld dword [eax + 0x3c]
lea eax, [esp + 0x90]
fstp dword [esp + 0x70]
fldz
fst dword [esp + 4]
fstp dword [esp]
push edx
push eax
call fcn.0040f290
mov edx, dword [ebx + 0x5c]
push eax
mov ecx, edi
call edx
mov esi, dword [esi + 8]
push 1
push 1
push 0
lea ecx, [esi + 0x80918]
call fcn.0046f4f8
mov ecx, eax
call fcn.00475f32
pop edi
pop esi
pop ebp
pop ebx
mov esp, ebp
pop ebp
ret