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

Disassembly:
sub esp, 0x1c8
push ebx
push ebp
mov ebp, dword [esp + 0x1d4]
mov ebx, 1
push esi
push edi
cmp dword [ebp + 0x14], ebx
je 0x40e559
mov eax, dword [ebp + 8]
mov eax, dword [eax + 8]
mov esi, dword [eax + 0x80118]
jmp 0x40e565
mov ecx, dword [ebp + 8]
mov eax, dword [ecx + 8]
mov esi, dword [eax + 0x8011c]
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 edx, [esp + 0x164]
fld dword [esp + 0x2c]
fst dword [esp + 4]
fstp dword [esp]
push edx
call fcn.00480011
fldz
fst dword [esp + 0x7c]
add esp, 0x10
fst dword [esp + 0x68]
lea eax, [esp + 0x70]
fst dword [esp + 0x64]
push eax
fst dword [esp + 0x64]
mov ecx, esi
fst dword [esp + 0x60]
fst dword [esp + 0x5c]
fst dword [esp + 0x58]
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]
fstp dword [esp + 0x34]
call fcn.0045dd7f
mov ecx, esi
call fcn.0045dd74
fldz
sub esp, 0xc
fstp dword [esp + 8]
fild dword [esp + 0x80]
lea ecx, [esp + 0x1a4]
mov edi, eax
fstp dword [esp + 4]
fild dword [esp + 0x7c]
fstp dword [esp]
push ecx
call fcn.0047ffaa
mov edx, dword [ebp + 8]
mov eax, dword [edx + 8]
shl edi, 0x18
add esp, 0x10
or edi, 0xffffff
cmp dword [eax + 0x20e8], ebx
mov ecx, esi
sete bl
call fcn.0045ec3b
test bl, bl
je 0x40ec28
test al, al
je 0x40ec28
mov ecx, dword [esi + 0x10c]
call fcn.0047ec1b
fldz
mov ecx, dword [ebp + 8]
fst dword [esp + 0x1c]
mov edx, dword [ecx + 8]
cmp dword [edx + 0x2064], 1
mov ebx, eax
jne 0x40e67c
fld dword [0x6cfe48]
fstp dword [esp + 0x1c]
sub esp, 0xc
fstp dword [esp + 8]
lea eax, [esp + 0x124]
fld dword [esp + 0x28]
fadd qword [0x6cfca0]
fld dword [esp + 0x2c]
fld st(0)
fmulp st(2)
fxch st(1)
fstp dword [esp + 0x30]
fld dword [esp + 0x30]
fstp dword [esp + 4]
fmul qword [0x6cfe40]
fstp dword [esp + 0x30]
fld dword [esp + 0x30]
fstp dword [esp]
push eax
call fcn.0047ffaa
add esp, 0x10
push eax
lea ecx, [esp + 0x34]
call fcn.0040a520
fldz
mov esi, dword [ebp + 0xbdc60]
push edi
sub esp, 8
fst dword [esp + 4]
lea ecx, [esp + 0x1a4]
fstp dword [esp]
push ecx
lea edx, [esp + 0x128]
push edx
lea eax, [esp + 0x44]
push eax
lea ecx, [esp + 0xf0]
push ecx
lea ecx, [esp + 0x174]
call fcn.0040f290
mov ecx, eax
call fcn.0040f290
mov edx, dword [esi + 0x5c]
push eax
lea ecx, [ebp + 0xbdc60]
call edx
fld dword [0x6cfe3c]
fst dword [esp + 0x14]
mov eax, dword [esp + 0x14]
fld dword [0x6cfe38]
mov dword [esp + 0x78], eax
fst dword [esp + 0x18]
mov ecx, dword [esp + 0x18]
fld dword [0x6cfe34]
mov dword [esp + 0x7c], ecx
fstp dword [esp + 0x14]
mov edx, dword [esp + 0x14]
mov dword [esp + 0x80], edx
fst dword [esp + 0x18]
mov eax, dword [esp + 0x18]
fld dword [0x6cfe30]
mov dword [esp + 0x84], eax
fstp dword [esp + 0x14]
mov ecx, dword [esp + 0x14]
fld dword [0x6cfe2c]
mov dword [esp + 0x88], ecx
fstp dword [esp + 0x18]
mov edx, dword [esp + 0x18]
fld dword [0x6cfe28]
mov dword [esp + 0x8c], edx
fstp dword [esp + 0x14]
mov eax, dword [esp + 0x14]
fld dword [0x6cfe24]
mov dword [esp + 0x90], eax
fst dword [esp + 0x18]
mov ecx, dword [esp + 0x18]
fld dword [0x6cfe20]
mov dword [esp + 0x94], ecx
fstp dword [esp + 0x14]
mov edx, dword [esp + 0x14]
fld dword [0x6cfe1c]
mov dword [esp + 0x98], edx
fstp dword [esp + 0x18]
mov eax, dword [esp + 0x18]
fxch st(2)
fstp dword [esp + 0x14]
mov ecx, dword [esp + 0x14]
fld dword [0x6cfe18]
mov dword [esp + 0x9c], eax
fst dword [esp + 0x18]
mov edx, dword [esp + 0x18]
fld dword [0x6cfe14]
mov dword [esp + 0xa0], ecx
fstp dword [esp + 0x14]
mov eax, dword [esp + 0x14]
mov dword [esp + 0xa4], edx
fstp dword [esp + 0x18]
mov ecx, dword [esp + 0x18]
fld dword [0x6cfe10]
mov dword [esp + 0xa8], eax
fst dword [esp + 0x14]
mov edx, dword [esp + 0x14]
fld dword [0x6cfe0c]
mov dword [esp + 0xac], ecx
fstp dword [esp + 0x18]
mov eax, dword [esp + 0x18]
fld dword [0x6cfe08]
mov dword [esp + 0xb0], edx
fstp dword [esp + 0x14]
mov ecx, dword [esp + 0x14]
fxch st(2)
mov dword [esp + 0xb4], eax
fstp dword [esp + 0x18]
mov edx, dword [esp + 0x18]
fld dword [0x6cfe04]
mov dword [esp + 0xb8], ecx
fst dword [esp + 0x14]
mov eax, dword [esp + 0x14]
fld dword [0x6cfe00]
mov dword [esp + 0xbc], edx
fstp dword [esp + 0x18]
mov ecx, dword [esp + 0x18]
mov dword [esp + 0xc0], eax
fstp dword [esp + 0x14]
mov edx, dword [esp + 0x14]
mov dword [esp + 0xc4], ecx
fst dword [esp + 0x18]
mov eax, dword [esp + 0x18]
fxch st(1)
mov dword [esp + 0xc8], edx
fstp dword [esp + 0x14]
mov ecx, dword [esp + 0x14]
mov dword [esp + 0xcc], eax
fstp dword [esp + 0x18]
mov edx, dword [esp + 0x18]
mov dword [esp + 0xd0], ecx
lea eax, [esp + 0x78]
mov ecx, 0xc
lea esi, [ebp + 0xbdcf4]
mov dword [esp + 0xd4], edx
mov dword [esp + 0x28], eax
mov dword [esp + 0x2c], ecx
mov dword [esp + 0x24], esi
cmp ecx, ebx
jg 0x40e9b0
fldz
sub esp, 0xc
fstp dword [esp + 8]
fld dword [eax + 4]
fadd dword [esp + 0x28]
fld dword [esp + 0x2c]
fld st(0)
fmulp st(2)
fxch st(1)
fstp dword [esp + 0x20]
fld dword [esp + 0x20]
fstp dword [esp + 4]
fmul dword [eax]
lea eax, [esp + 0xe4]
fstp dword [esp + 0x20]
fld dword [esp + 0x20]
fstp dword [esp]
push eax
call fcn.0047ffaa
add esp, 0x10
push eax
lea ecx, [esp + 0x34]
call fcn.0040a520
fldz
mov eax, dword [esi]
push edi
sub esp, 8
fst dword [esp + 4]
lea ecx, [esp + 0x1a4]
fstp dword [esp]
push ecx
lea edx, [esp + 0xe8]
push edx
lea ecx, [esp + 0x44]
push ecx
lea edx, [esp + 0x130]
push edx
lea ecx, [esp + 0x174]
mov dword [esp + 0x30], eax
call fcn.0040f290
mov ecx, eax
call fcn.0040f290
mov esi, dword [esp + 0x30]
push eax
mov eax, dword [esp + 0x24]
mov eax, dword [eax + 0x5c]
mov ecx, esi
call eax
mov ecx, dword [esp + 0x2c]
mov eax, dword [esp + 0x28]
dec ecx
add eax, 8
add esi, 0x94
mov dword [esp + 0x2c], ecx
mov dword [esp + 0x28], eax
mov dword [esp + 0x24], esi
test ecx, ecx
jg 0x40e900
fld dword [esp + 0x1c]
sub esp, 0xc
cmp ebx, 1
fadd qword [0x6cfdf8]
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]
fmul qword [0x6cfdf0]
jle 0x40eb28
fstp dword [esp + 0x20]
lea ecx, [esp + 0xe4]
fld dword [esp + 0x20]
fstp dword [esp]
push ecx
call fcn.0047ffaa
add esp, 0x10
push eax
lea ecx, [esp + 0x34]
call fcn.0040a520
fldz
mov eax, 0x66666667
imul ebx
sar edx, 2
push edi
mov esi, edx
sub esp, 8
shr esi, 0x1f
add esi, edx
fst dword [esp + 4]
lea edx, [esp + 0x1a4]
fstp dword [esp]
push edx
lea eax, [esp + 0xe8]
push eax
lea ecx, [esp + 0x44]
push ecx
lea edx, [esp + 0x130]
push edx
lea ecx, [esp + 0x174]
add ebp, 0xbe478
call fcn.0040f290
mov ecx, eax
call fcn.0040f290
push eax
xor eax, eax
push eax
push esi
mov ecx, ebp
call fcn.004c3f68
fldz
sub esp, 0xc
fstp dword [esp + 8]
fld dword [esp + 0x28]
lea eax, [esp + 0xe4]
fstp dword [esp + 4]
fld dword [esp + 0x2c]
fmul qword [0x6cfde8]
fstp dword [esp + 0x20]
fld dword [esp + 0x20]
fstp dword [esp]
push eax
call fcn.0047ffaa
add esp, 0x10
push eax
lea ecx, [esp + 0x34]
call fcn.0040a520
fldz
push edi
sub esp, 8
fst dword [esp + 4]
lea ecx, [esi + esi*4]
fstp dword [esp]
add ecx, ecx
lea edx, [esp + 0x1a4]
push edx
sub ebx, ecx
lea eax, [esp + 0xe8]
push eax
lea ecx, [esp + 0x44]
push ecx
lea edx, [esp + 0x130]
push edx
lea ecx, [esp + 0x174]
xor esi, esi
call fcn.0040f290
mov ecx, eax
call fcn.0040f290
push eax
push esi
push ebx
mov ecx, ebp
call fcn.004c3f68
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x1c8
ret 4
fstp dword [esp + 0x20]
lea eax, [esp + 0xe4]
fld dword [esp + 0x20]
fstp dword [esp]
push eax
call fcn.0047ffaa
add esp, 0x10
push eax
lea ecx, [esp + 0x34]
call fcn.0040a520
fldz
push edi
sub esp, 8
fst dword [esp + 4]
lea ecx, [esp + 0x1a4]
fstp dword [esp]
push ecx
lea edx, [esp + 0xe8]
push edx
lea eax, [esp + 0x44]
push eax
lea ecx, [esp + 0x130]
push ecx
lea ecx, [esp + 0x174]
xor esi, esi
xor ebx, ebx
add ebp, 0xbe51c
call fcn.0040f290
mov ecx, eax
call fcn.0040f290
push eax
push ebx
push esi
mov ecx, ebp
call fcn.004c3f68
fldz
sub esp, 0xc
fstp dword [esp + 8]
fld dword [esp + 0x28]
lea edx, [esp + 0xe4]
fstp dword [esp + 4]
fld dword [esp + 0x2c]
fmul qword [0x6cfde8]
fstp dword [esp + 0x20]
fld dword [esp + 0x20]
fstp dword [esp]
push edx
call fcn.0047ffaa
add esp, 0x10
push eax
lea ecx, [esp + 0x34]
call fcn.0040a520
fldz
push edi
sub esp, 8
fst dword [esp + 4]
lea eax, [esp + 0x1a4]
fstp dword [esp]
push eax
lea ecx, [esp + 0xe8]
push ecx
lea edx, [esp + 0x44]
push edx
lea eax, [esp + 0x130]
push eax
lea ecx, [esp + 0x174]
lea esi, [ebx + 1]
call fcn.0040f290
mov ecx, eax
call fcn.0040f290
push eax
push ebx
push esi
mov ecx, ebp
call fcn.004c3f68
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x1c8
ret 4