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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x188
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 + 0xcc]
fld dword [esp + 0x2c]
fst dword [esp + 4]
fstp dword [esp]
push eax
call fcn.00480011
fldz
mov edx, dword [esi + 0x61aec]
fst dword [esp + 0x7c]
mov eax, dword [edx + 4]
fst dword [esp + 0x78]
fst dword [esp + 0x74]
lea ecx, [esi + 0x61aec]
fst dword [esp + 0x70]
add esp, 0x10
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]
fst dword [esp + 0x34]
fstp dword [esp + 0x30]
call eax
mov ebp, eax
mov eax, dword [esi + 8]
push 2
shl ebp, 0x18
push 2
or ebp, 0xffffff
push 0
lea ecx, [eax + 0x80918]
mov dword [esp + 0xc8], ebp
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 + 0xcc]
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 + 0xcc]
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 + 0x18]
mov ecx, dword [esp + 0x18]
fldz
mov dword [esp + 0x7c], ecx
fst dword [esp + 0x1c]
sub esp, 0xc
mov edx, dword [esp + 0x28]
fld st(2)
fmul qword [0x6d01b8]
mov dword [esp + 0x8c], edx
fstp dword [esp + 0x24]
mov eax, dword [esp + 0x24]
mov dword [esp + 0x90], eax
fst dword [esp + 0x28]
mov ecx, dword [esp + 0x28]
fxch st(1)
mov dword [esp + 0x94], ecx
fstp dword [esp + 0x24]
mov edx, dword [esp + 0x24]
mov dword [esp + 0x98], edx
fst dword [esp + 0x28]
mov eax, dword [esp + 0x28]
mov dword [esp + 0x9c], eax
fxch st(1)
fmul qword [0x6d01b0]
mov eax, dword [esi + 0x2e10]
add eax, eax
add eax, eax
fstp dword [esp + 0x24]
mov ecx, dword [esp + 0x24]
add eax, eax
fst dword [esp + 0x28]
mov edx, dword [esp + 0x28]
fstp dword [esp + 8]
mov dword [esp + 0xa0], ecx
mov dword [esp + 0xa4], edx
fld dword [esp + eax + 0x8c]
fstp dword [esp + 4]
fld dword [esp + eax + 0x88]
lea eax, [esp + 0x88]
fstp dword [esp]
push eax
call fcn.0047ffaa
add esp, 0x10
push eax
lea ecx, [esp + 0x34]
call fcn.0040a520
fldz
mov ebx, dword [esi + 0x17f4]
push 0xffffffffffffffff
sub esp, 8
fst dword [esp + 4]
lea ecx, [esp + 0x3c]
fstp dword [esp]
push ecx
lea edx, [esp + 0x8c]
lea edi, [esi + 0x17f4]
push edx
lea ecx, [esp + 0xd4]
call fcn.0040f290
push eax
mov eax, dword [ebx + 0x5c]
mov ecx, edi
call eax
lea eax, [esi + 0x10]
lea ebx, [esp + 0xc0]
call fcn.004549e0
fld dword [esp + 0x20]
fld qword [0x6cfbb8]
sub esp, 0xc
fmul st(1)
lea ecx, [esp + 0x88]
fstp dword [esp + 0x34]
fldz
fstp dword [esp + 8]
fmul qword [0x6d0100]
fstp dword [esp + 0x30]
fld dword [esp + 0x30]
fstp dword [esp + 4]
fld dword [esp + 0x34]
fstp dword [esp]
push ecx
call fcn.0047ffaa
add esp, 0x10
push eax
lea ecx, [esp + 0x34]
call fcn.0040a520
fldz
mov ebx, dword [esi + 0x1638]
push 0xffffffffffffffff
sub esp, 8
fst dword [esp + 4]
lea edx, [esp + 0x3c]
fstp dword [esp]
push edx
lea eax, [esp + 0x8c]
lea edi, [esi + 0x1638]
push eax
lea ecx, [esp + 0xd4]
call fcn.0040f290
mov edx, dword [ebx + 0x5c]
push eax
mov ecx, edi
call edx
lea eax, [esp + 0xc0]
push eax
lea ecx, [esi + 0x20]
push ecx
call fcn.0044f8a0
fldz
sub esp, 0xc
fstp dword [esp + 8]
fld dword [esp + 0x34]
lea edx, [esp + 0x88]
fst dword [esp + 4]
fstp dword [esp]
push edx
call fcn.0047ffaa
add esp, 0x10
push eax
lea ecx, [esp + 0x34]
call fcn.0040a520
fldz
mov ebx, dword [edi]
push 0xffffffffffffffff
sub esp, 8
fst dword [esp + 4]
lea eax, [esp + 0x3c]
fstp dword [esp]
push eax
lea ecx, [esp + 0x8c]
push ecx
lea ecx, [esp + 0xd4]
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 + 0x34]
lea eax, [esp + 0x88]
fst dword [esp + 4]
fstp dword [esp]
push eax
call fcn.0047ffaa
add esp, 0x10
push eax
lea ecx, [esp + 0x34]
call fcn.0040a520
fldz
push 0xffffffffffffffff
xor edi, edi
sub esp, 8
fst dword [esp + 4]
lea ecx, [esp + 0x3c]
fstp dword [esp]
push ecx
lea edx, [esp + 0x8c]
lea ebx, [edi + 1]
push edx
lea ecx, [esp + 0xd4]
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 + 0x88]
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 + 0x34]
call fcn.0040a520
fldz
mov ebx, dword [esi + 0x1b60]
push 0xffffffffffffffff
sub esp, 8
fst dword [esp + 4]
lea ecx, [esp + 0x3c]
fstp dword [esp]
push ecx
lea edx, [esp + 0x8c]
lea edi, [esi + 0x1b60]
push edx
lea ecx, [esp + 0xd4]
call fcn.0040f290
push eax
mov eax, dword [ebx + 0x5c]
mov ecx, edi
call eax
lea ecx, [esp + 0xc0]
push ecx
lea edi, [esi + 0x1bf4]
push edi
call fcn.0044f5d0
lea edx, [esp + 0xc0]
push edx
push edi
call fcn.0044f8a0
lea eax, [esp + 0xc0]
push eax
lea edi, [esi + 0x2278]
push edi
call fcn.0044f5d0
lea ecx, [esp + 0xc0]
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
add eax, edx
xor ebx, ebx
test eax, eax
jle 0x441679
lea edi, [esi + 0x2750]
lea ecx, [esi + 0x22ac]
mov dword [esp + 0x24], edi
mov dword [esp + 0x74], ecx
jmp 0x44101b
mov ebp, dword [esp + 0xbc]
mov ecx, dword [esp + 0x74]
mov eax, 0x55555556
imul ebx
mov eax, edx
shr eax, 0x1f
add eax, edx
mov dword [esp + 0x2c], eax
lea edx, [eax + eax*2]
mov eax, ebx
sub eax, edx
mov edx, dword [ecx]
mov edx, dword [edx + 0x30]
mov dword [esp + 0x14], eax
lea eax, [esp + 0x190]
push eax
fild dword [esp + 0x18]
fmul qword [0x6cfd78]
fstp dword [esp + 0x2c]
fild dword [esp + 0x30]
fmul qword [0x6cfd68]
fstp dword [esp + 0x30]
call edx
cmp dword [eax + 4], 0xffffd8f1
je 0x44163b
fldz
sub esp, 0xc
fstp dword [esp + 8]
lea eax, [esp + 0x88]
fld dword [esp + 0x38]
fadd qword [0x6d01a8]
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]
fld dword [esp + 0x34]
fadd qword [0x6d0150]
fmulp st(1)
fstp dword [esp + 0x20]
fld dword [esp + 0x20]
fstp dword [esp]
push eax
call fcn.0047ffaa
fld dword [eax]
fstp dword [esp + 0x40]
add esp, 0x10
fld dword [eax + 4]
push ebp
fstp dword [esp + 0x38]
sub esp, 8
fld dword [eax + 8]
lea ecx, [esp + 0x3c]
fstp dword [esp + 0x44]
lea edx, [esp + 0x88]
fld dword [eax + 0xc]
fstp dword [esp + 0x48]
fld dword [eax + 0x10]
fstp dword [esp + 0x4c]
fld dword [eax + 0x14]
fstp dword [esp + 0x50]
fld dword [eax + 0x18]
fstp dword [esp + 0x54]
fld dword [eax + 0x1c]
fstp dword [esp + 0x58]
fld dword [eax + 0x20]
fstp dword [esp + 0x5c]
fld dword [eax + 0x24]
fstp dword [esp + 0x60]
fld dword [eax + 0x28]
fstp dword [esp + 0x64]
fld dword [eax + 0x2c]
fstp dword [esp + 0x68]
fld dword [eax + 0x30]
fstp dword [esp + 0x6c]
fld dword [eax + 0x34]
fstp dword [esp + 0x70]
fld dword [eax + 0x38]
fstp dword [esp + 0x74]
fld dword [eax + 0x3c]
fstp dword [esp + 0x78]
fldz
fst dword [esp + 4]
fstp dword [esp]
push ecx
push edx
lea ecx, [esp + 0xd4]
call fcn.0040f290
push eax
mov eax, dword [edi]
mov eax, dword [eax + 0x5c]
mov ecx, edi
call eax
cmp byte [ebx + esi + 0x2dbc], 0
mov dword [esp + 0x70], 0xffffffff
jne 0x441179
mov dword [esp + 0x70], 0xff787878
fldz
sub esp, 0xc
fstp dword [esp + 8]
lea ecx, [esp + 0x88]
fld dword [esp + 0x38]
fadd qword [0x6d01a0]
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]
fld dword [esp + 0x34]
fadd qword [0x6d0198]
fmulp st(1)
fstp dword [esp + 0x20]
fld dword [esp + 0x20]
fstp dword [esp]
push ecx
call fcn.0047ffaa
fld dword [eax]
fstp dword [esp + 0x40]
mov edx, dword [esp + 0x80]
fld dword [eax + 4]
mov ebp, dword [esi + 0x2c84]
fstp dword [esp + 0x44]
add esp, 0x10
fld dword [eax + 8]
push edx
fstp dword [esp + 0x3c]
sub esp, 8
fld dword [eax + 0xc]
lea ecx, [esp + 0x88]
fstp dword [esp + 0x48]
lea edi, [esi + 0x2c84]
fld dword [eax + 0x10]
fstp dword [esp + 0x4c]
fld dword [eax + 0x14]
fstp dword [esp + 0x50]
fld dword [eax + 0x18]
fstp dword [esp + 0x54]
fld dword [eax + 0x1c]
fstp dword [esp + 0x58]
fld dword [eax + 0x20]
fstp dword [esp + 0x5c]
fld dword [eax + 0x24]
fstp dword [esp + 0x60]
fld dword [eax + 0x28]
fstp dword [esp + 0x64]
fld dword [eax + 0x2c]
fstp dword [esp + 0x68]
fld dword [eax + 0x30]
fstp dword [esp + 0x6c]
fld dword [eax + 0x34]
fstp dword [esp + 0x70]
fld dword [eax + 0x38]
fstp dword [esp + 0x74]
fld dword [eax + 0x3c]
lea eax, [esp + 0x3c]
fstp dword [esp + 0x78]
fldz
fst dword [esp + 4]
fstp dword [esp]
push eax
push ecx
lea ecx, [esp + 0xd4]
call fcn.0040f290
mov edx, dword [ebp + 0x5c]
push eax
mov ecx, edi
call edx
fldz
mov ebp, dword [esi + 0x2e14]
fst dword [esp + 0x13c]
fst dword [esp + 0x138]
lea eax, [ebx + ebp*8]
fst dword [esp + 0x134]
lea ebp, [eax + ebp + 1]
fst dword [esp + 0x130]
fst dword [esp + 0x12c]
fst dword [esp + 0x128]
mov dword [esp + 0x14], 0
fst dword [esp + 0x124]
lea edi, [esp + 0x108]
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 + 0x104]
fst dword [esp + 0x100]
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]
fst dword [esp + 0x144]
fst dword [esp + 0x140]
fld dword [esp + 0x2c]
fadd qword [0x6cff98]
fmul dword [esp + 0x20]
fstp dword [esp + 0x78]
fld dword [esp + 0x28]
fadd qword [0x6d0190]
fstp qword [esp + 0x180]
lea ebx, [ebx]
sub esp, 0xc
fstp dword [esp + 8]
lea ecx, [esp + 0x88]
fld dword [esp + 0x84]
fstp dword [esp + 4]
fild dword [esp + 0x20]
fmul qword [0x6d0030]
fadd qword [esp + 0x18c]
fmul dword [esp + 0x2c]
fstp dword [esp + 0x24]
fld dword [esp + 0x24]
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 + 0x14]
fstp dword [edi - 0xc]
inc eax
fldz
mov dword [esp + 0x14], eax
cmp eax, 2
jb 0x4413a0
mov eax, 0x66666667
imul ebp
sar edx, 2
mov edi, edx
shr edi, 0x1f
add edi, edx
mov eax, edi
cdq
mov ecx, 0xa
idiv ecx
lea eax, [esp + 0x100]
lea ecx, [esp + 0x7c]
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 + 0xd4]
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 + 0x14c]
sub ebp, eax
push edx
lea eax, [esp + 0x8c]
push eax
lea ecx, [esp + 0xd4]
xor edi, edi
call fcn.0040f290
push eax
push edi
push ebp
lea ecx, [esi + 0x2dac]
call fcn.004c3f68
cmp byte [ebx + esi + 0x2dbc], 0
je 0x44163b
fldz
sub esp, 0xc
fstp dword [esp + 8]
lea ecx, [esp + 0x88]
fld dword [esp + 0x38]
fadd qword [0x6d01d8]
fld dword [esp + 0x2c]
fld st(0)
fmulp st(2)
fxch st(1)
fstp dword [esp + 0x24]
fld dword [esp + 0x24]
fstp dword [esp + 4]
fld dword [esp + 0x34]
fadd qword [0x6d01d0]
fmulp st(1)
fstp dword [esp + 0x24]
fld dword [esp + 0x24]
fstp dword [esp]
push ecx
call fcn.0047ffaa
fld dword [eax]
fstp dword [esp + 0x40]
add esp, 0x10
fld dword [eax + 4]
fstp dword [esp + 0x34]
fld dword [eax + 8]
fstp dword [esp + 0x38]
fld dword [eax + 0xc]
fstp dword [esp + 0x3c]
fld dword [eax + 0x10]
fstp dword [esp + 0x40]
fld dword [eax + 0x14]
fstp dword [esp + 0x44]
fld dword [eax + 0x18]
fstp dword [esp + 0x48]
fld dword [eax + 0x1c]
fstp dword [esp + 0x4c]
fld dword [eax + 0x20]
fstp dword [esp + 0x50]
fld dword [eax + 0x24]
fstp dword [esp + 0x54]
fld dword [eax + 0x28]
fstp dword [esp + 0x58]
fld dword [eax + 0x2c]
fstp dword [esp + 0x5c]
fld dword [eax + 0x30]
fstp dword [esp + 0x60]
fld dword [eax + 0x34]
fstp dword [esp + 0x64]
fld dword [eax + 0x38]
fstp dword [esp + 0x68]
fld dword [eax + 0x3c]
mov eax, dword [esi + 0x2e14]
lea edx, [ebx + eax*8]
fstp dword [esp + 0x6c]
add edx, eax
mov eax, dword [esi + 0x2e10]
lea eax, [eax + eax*2]
push edx
lea eax, [esi + eax*8 + 0x61a00]
call fcn.004428e0
fldz
push 0xffffffffffffffff
sub esp, 8
fst dword [esp + 4]
fstp dword [esp]
cmp dword [eax + 0x1c], edi
jne 0x44160f
lea ecx, [esp + 0x3c]
push ecx
lea edx, [esp + 0x8c]
xor ebp, ebp
push edx
jmp 0x441621
lea eax, [esp + 0x3c]
push eax
lea ecx, [esp + 0x8c]
mov ebp, 1
push ecx
lea ecx, [esp + 0xd4]
call fcn.0040f290
push eax
push ebp
push edi
lea ecx, [esi + 0x61bf0]
call fcn.004c3f68
mov ecx, dword [esi + 0x2294]
sub ecx, dword [esi + 0x2290]
mov edi, dword [esp + 0x24]
add dword [esp + 0x74], 0x84
mov eax, 0x88888889
imul ecx
add edx, ecx
sar edx, 6
mov eax, edx
shr eax, 0x1f
inc ebx
add edi, 0x94
add eax, edx
cmp ebx, eax
mov dword [esp + 0x24], edi
jl 0x441010
lea ecx, [esp + 0xc0]
push ecx
lea edi, [esi + 0x1888]
push edi
call fcn.0044f5d0
lea edx, [esp + 0xc0]
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 0x441791
fldz
sub esp, 0xc
fst dword [esp + 8]
lea ecx, [esp + 0x88]
fld dword [esp + 0x2c]
fmul qword [0x6cfc50]
fstp dword [esp + 0x24]
fld dword [esp + 0x24]
fstp dword [esp + 4]
fstp dword [esp]
push ecx
call fcn.0047ffaa
fld dword [eax]
fstp dword [esp + 0x40]
mov ebx, dword [esi + 0x1760]
fld dword [eax + 4]
add esp, 0x10
fstp dword [esp + 0x34]
push 0xffffffffffffffff
fld dword [eax + 8]
sub esp, 8
fstp dword [esp + 0x44]
lea edx, [esp + 0x3c]
fld dword [eax + 0xc]
lea edi, [esi + 0x1760]
fstp dword [esp + 0x48]
lea ecx, [esp + 0xcc]
fld dword [eax + 0x10]
fstp dword [esp + 0x4c]
fld dword [eax + 0x14]
fstp dword [esp + 0x50]
fld dword [eax + 0x18]
fstp dword [esp + 0x54]
fld dword [eax + 0x1c]
fstp dword [esp + 0x58]
fld dword [eax + 0x20]
fstp dword [esp + 0x5c]
fld dword [eax + 0x24]
fstp dword [esp + 0x60]
fld dword [eax + 0x28]
fstp dword [esp + 0x64]
fld dword [eax + 0x2c]
fstp dword [esp + 0x68]
fld dword [eax + 0x30]
fstp dword [esp + 0x6c]
fld dword [eax + 0x34]
fstp dword [esp + 0x70]
fld dword [eax + 0x38]
fstp dword [esp + 0x74]
fld dword [eax + 0x3c]
lea eax, [esp + 0x88]
fstp dword [esp + 0x78]
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