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

Disassembly:
push ebp
sub esp, 0x70
push 0x6c
mov eax, 0x661847
call fcn.006315b1
mov ebx, ecx
push 0
call fcn.004add04
test eax, eax
jne 0x4ae0cd
mov ecx, ebx
call fcn.004ad49c
jmp 0x4ae8ae
mov esi, dword [ebx + 0xa4]
and dword [ebx + 0x150], 0
xor ecx, ecx
mov eax, esi
mov edx, 0x484
mul edx
seto cl
mov byte [ebx + 0x14c], 1
mov dword [ebp + 0x58], esi
neg ecx
or ecx, eax
xor eax, eax
add ecx, 4
setb al
neg eax
or eax, ecx
push eax
call fcn.005f0d78
pop ecx
mov dword [ebp + 0x64], eax
xor edi, edi
mov dword [ebp - 4], edi
cmp eax, edi
je 0x4ae130
push fcn.004ad2f6
push 0x4ad35f
push esi
lea edi, [eax + 4]
push 0x484
push edi
mov dword [eax], esi
call fcn.0062ff62
mov eax, dword [ebx + 0xc]
mov dword [ebx + 0x10], edi
mov ecx, dword [eax + 0x11944]
mov dword [ebp + 0x4c], ecx
fild dword [ebp + 0x4c]
or dword [ebp - 4], 0xffffffff
cmp esi, 4
fdiv qword [0x6b6368]
mov eax, dword [eax + 0x11948]
mov dword [ebp + 0x50], eax
fstp dword [ebp + 0x70]
jge 0x4ae18b
push 4
pop eax
sub eax, esi
mov dword [ebp + 0x64], eax
fild dword [ebp + 0x64]
fmul qword [0x67fef8]
fld qword [0x67ff80]
fsub st(1)
fldz
fadd st(1), st(0)
fxch st(1)
fstp dword [ebp + 0x48]
fld qword [0x67ff78]
fsubrp st(2)
faddp st(1)
jmp 0x4ae19e
fldz
fld qword [0x67ff80]
fadd st(1)
fstp dword [ebp + 0x48]
fadd qword [0x67ff78]
lea eax, [ebp + 0x40]
fstp dword [ebp + 0x68]
push eax
call fcn.0045920f
push eax
call fcn.004b6b21
pop ecx
mov ecx, eax
call fcn.004b6678
mov ecx, eax
call fcn.0045b32f
and dword [ebp + 0x54], 0
test esi, esi
jle 0x4ae79d
xor esi, esi
mov dword [ebp + 0x6c], esi
push dword [ebp + 0x54]
mov ecx, ebx
call fcn.004add04
mov edi, eax
mov dword [ebp + 0x64], edi
test edi, edi
je 0x4ae782
mov eax, dword [ebx + 0x10]
push dword [ebx + 0x14]
lea ecx, [eax + esi]
mov eax, dword [ecx]
call dword [eax + 0x28]
mov eax, dword [ebx + 0x10]
push dword [ebx + 0x18]
lea ecx, [eax + esi]
mov eax, dword [ecx]
call dword [eax + 0x24]
mov eax, dword [ebx + 0x10]
push dword [ebx + 0x1c]
lea ecx, [eax + esi]
mov eax, dword [ecx]
call dword [eax + 0x2c]
mov eax, dword [ebx + 0x10]
push 0
push dword [ebx + 0x20]
lea ecx, [eax + esi]
mov eax, dword [ecx]
call dword [eax + 0x98]
mov ecx, eax
call fcn.004daecd
mov eax, dword [ebx + 0x10]
push dword [ebx + 0x24]
lea ecx, [eax + esi]
mov eax, dword [ecx]
call dword [eax + 0x30]
mov eax, dword [ebx + 0x10]
push dword [ebx + 0x2c]
lea ecx, [eax + esi]
push dword [ebx + 0x28]
mov eax, dword [ecx]
call dword [eax + 0x34]
mov eax, dword [ebx + 0x10]
push dword [ebx + 0x30]
lea ecx, [eax + esi]
mov eax, dword [ecx]
call dword [eax + 0x38]
mov eax, dword [ebx + 0x10]
push dword [ebx + 0x34]
lea ecx, [eax + esi]
mov eax, dword [ecx]
call dword [eax + 0x3c]
mov eax, dword [ebx + 0x10]
push dword [ebx + 0x38]
lea ecx, [eax + esi]
mov eax, dword [ecx]
call dword [eax + 0x40]
mov eax, dword [ebx + 0x10]
push dword [ebx + 0x3c]
lea ecx, [eax + esi]
mov eax, dword [ecx]
call dword [eax + 0x44]
mov eax, dword [ebx + 0x10]
push dword [ebx + 0x40]
lea ecx, [eax + esi]
mov eax, dword [ecx]
call dword [eax + 0x48]
mov eax, dword [ebx + 0x10]
push dword [ebx + 0x44]
lea ecx, [eax + esi]
mov eax, dword [ecx]
call dword [eax + 0x4c]
sub esp, 0x1c
mov ecx, esp
mov dword [ebp + 0x5c], esp
push 0x67fe02
call fcn.00403fb6
mov eax, dword [ebx + 0x10]
lea ecx, [eax + esi]
mov eax, dword [ecx]
add edi, 8
push edi
call dword [eax + 0xe0]
mov eax, dword [ebx + 0x10]
lea ecx, [eax + esi]
mov eax, dword [ecx]
call dword [eax + 0xf0]
fld dword [ebp + 0x70]
fmul qword [0x67ff70]
mov eax, dword [ebx + 0x10]
fstp dword [ebp + 0x5c]
fld dword [ebp + 0x5c]
fstp dword [ebp + 0x30]
mov ecx, dword [ebp + 0x30]
fild dword [ebp + 0x54]
mov dword [eax + esi + 0x474], ecx
fmul qword [0x67fef8]
fstp qword [ebp + 0x38]
fld dword [ebp + 0x48]
fsub qword [ebp + 0x38]
fmul dword [ebp + 0x70]
fstp dword [ebp + 0x34]
mov ecx, dword [ebp + 0x34]
mov dword [eax + esi + 0x478], ecx
mov eax, dword [ebx + 0x10]
lea edi, [eax + esi]
fld dword [edi + 0x474]
call fcn.00631790
fld dword [edi + 0x478]
mov dword [ebp - 0x20], eax
call fcn.00631790
mov edx, dword [edi]
push eax
push dword [ebp - 0x20]
mov ecx, edi
call dword [edx + 0xc8]
mov eax, dword [ebx + 0x10]
push dword [ebx + 0x50]
lea ecx, [eax + esi + 0x1f8]
mov eax, dword [ecx]
call dword [eax + 0x28]
mov eax, dword [ebx + 0x10]
push dword [ebx + 0x54]
lea ecx, [eax + esi + 0x1f8]
mov eax, dword [ecx]
call dword [eax + 0x24]
mov eax, dword [ebx + 0x10]
push dword [ebx + 0x58]
lea ecx, [eax + esi + 0x1f8]
mov eax, dword [ecx]
call dword [eax + 0x2c]
mov eax, dword [ebx + 0x10]
push 0
push dword [ebx + 0x5c]
lea ecx, [eax + esi + 0x1f8]
mov eax, dword [ecx]
call dword [eax + 0x98]
mov ecx, eax
call fcn.004daecd
mov eax, dword [ebx + 0x10]
push dword [ebx + 0x60]
lea ecx, [eax + esi + 0x1f8]
mov eax, dword [ecx]
call dword [eax + 0x30]
mov eax, dword [ebx + 0x10]
push dword [ebx + 0x68]
lea ecx, [eax + esi + 0x1f8]
push dword [ebx + 0x64]
mov eax, dword [ecx]
call dword [eax + 0x34]
mov eax, dword [ebx + 0x10]
push dword [ebx + 0x6c]
lea ecx, [eax + esi + 0x1f8]
mov eax, dword [ecx]
call dword [eax + 0x38]
mov eax, dword [ebx + 0x10]
push dword [ebx + 0x70]
lea ecx, [eax + esi + 0x1f8]
mov eax, dword [ecx]
call dword [eax + 0x3c]
mov eax, dword [ebx + 0x10]
push dword [ebx + 0x74]
lea ecx, [eax + esi + 0x1f8]
mov eax, dword [ecx]
call dword [eax + 0x40]
mov eax, dword [ebx + 0x10]
push dword [ebx + 0x78]
lea ecx, [eax + esi + 0x1f8]
mov eax, dword [ecx]
call dword [eax + 0x44]
mov eax, dword [ebx + 0x10]
push dword [ebx + 0x7c]
lea ecx, [eax + esi + 0x1f8]
mov eax, dword [ecx]
call dword [eax + 0x48]
mov eax, dword [ebx + 0x10]
push dword [ebx + 0x80]
lea ecx, [eax + esi + 0x1f8]
mov eax, dword [ecx]
call dword [eax + 0x4c]
sub esp, 0x1c
mov ecx, esp
mov dword [ebp - 0x18], esp
push 0x67fe03
call fcn.00403fb6
mov eax, dword [ebx + 0x10]
mov edx, dword [ebp + 0x64]
lea ecx, [eax + esi + 0x1f8]
mov eax, dword [ecx]
add edx, 0x24
push edx
call dword [eax + 0xe0]
mov eax, dword [ebx + 0x10]
lea ecx, [eax + esi + 0x1f8]
mov eax, dword [ecx]
call dword [eax + 0xf0]
fld dword [ebp + 0x5c]
mov eax, dword [ebx + 0x10]
fstp dword [ebp + 0x4c]
fld dword [ebp + 0x68]
mov ecx, dword [ebp + 0x4c]
fsub qword [ebp + 0x38]
mov dword [eax + esi + 0x47c], ecx
fmul dword [ebp + 0x70]
fstp dword [ebp + 0x50]
mov ecx, dword [ebp + 0x50]
mov dword [eax + esi + 0x480], ecx
mov eax, dword [ebx + 0x10]
lea edi, [eax + esi]
fld dword [edi + 0x47c]
call fcn.00631790
fld dword [edi + 0x480]
mov dword [ebp + 8], eax
call fcn.00631790
push eax
push dword [ebp + 8]
lea ecx, [edi + 0x1f8]
mov edx, dword [ecx]
call dword [edx + 0xc8]
push 4
pop eax
push eax
xor eax, eax
inc eax
push eax
push 3
pop eax
push eax
mov ecx, dword [ebx + 0x10]
xor eax, eax
inc eax
push eax
push 2
pop eax
push eax
xor eax, eax
inc eax
push eax
push eax
push eax
xor eax, eax
xor edi, edi
push eax
inc edi
inc eax
push eax
lea ecx, [ecx + esi + 0x3f0]
mov edx, dword [ecx]
push 5
mov dword [ebp], 2
pop eax
push eax
push dword [ebp]
lea eax, [ebx + 0x354]
push eax
call dword [edx + 0x84]
mov eax, dword [ebx + 0x10]
lea ecx, [eax + esi + 0x3f0]
mov eax, dword [ecx]
push edi
call dword [eax + 0x18]
mov eax, dword [ebx + 0x10]
lea ecx, [eax + esi + 0x3f0]
mov eax, dword [ecx]
call dword [eax + 0x7c]
fld dword [ebp + 0x70]
mov eax, dword [ebp + 0x64]
cmp dword [eax + 0x54], 0
je 0x4ae657
fmul qword [0x67ff68]
call fcn.00631790
fld dword [ebp + 0x68]
fadd qword [ebp + 0x38]
mov edi, eax
fmul dword [ebp + 0x70]
call fcn.00631790
mov ecx, dword [ebx + 0x10]
lea ecx, [ecx + esi + 0x3f0]
mov edx, dword [ecx]
push eax
push edi
call dword [edx + 0x2c]
mov eax, dword [ebx + 0x10]
lea ecx, [eax + esi + 0x3f0]
mov eax, dword [ecx]
lea edx, [ebp - 0x60]
push edx
call dword [eax + 0x30]
mov eax, dword [eax]
mov dword [ebp + 0x10], eax
mov eax, dword [ebx + 0x10]
lea ecx, [eax + esi + 0x3f0]
mov eax, dword [ecx]
lea edx, [ebp - 0x58]
push edx
call dword [eax + 0x30]
mov eax, dword [eax + 4]
mov dword [ebp + 0x14], eax
mov eax, dword [ebx + 0x10]
lea ecx, [eax + esi + 0x3f0]
mov eax, dword [ecx]
lea edx, [ebp - 0x68]
push edx
call dword [eax + 0x34]
fild dword [eax]
fmul dword [ebp + 0x70]
call fcn.00631790
mov edi, eax
mov eax, dword [ebx + 0x10]
lea ecx, [eax + esi + 0x3f0]
mov eax, dword [ecx]
lea edx, [ebp - 0x78]
push edx
call dword [eax + 0x30]
mov eax, dword [eax]
add eax, edi
mov dword [ebp + 0x18], eax
mov eax, dword [ebx + 0x10]
lea ecx, [eax + esi + 0x3f0]
mov eax, dword [ecx]
lea edx, [ebp - 0x70]
push edx
call dword [eax + 0x34]
fild dword [eax + 4]
fmul dword [ebp + 0x70]
call fcn.00631790
mov edi, eax
mov eax, dword [ebx + 0x10]
lea ecx, [eax + esi + 0x3f0]
mov eax, dword [ecx]
lea edx, [ebp - 0x40]
push edx
call dword [eax + 0x30]
mov eax, dword [eax + 4]
add eax, edi
mov dword [ebp + 0x1c], eax
mov eax, dword [ebx + 0x10]
lea ecx, [eax + esi + 0x3f0]
mov eax, dword [ecx]
sub esp, 0x10
mov edi, esp
lea esi, [ebp + 0x10]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
call dword [eax + 0x38]
mov eax, dword [ebx + 0xc]
cmp dword [eax + 0x84c], 0
je 0x4ae76d
cmp dword [eax + 0x860], 0
je 0x4ae76d
mov eax, dword [ebx + 0x10]
mov ecx, dword [ebp + 0x6c]
lea ecx, [eax + ecx + 0x3f0]
mov eax, dword [ecx]
call dword [eax + 0x78]
jmp 0x4ae77f
fmul qword [0x67ff60]
call fcn.00631790
fld dword [ebp + 0x68]
fadd qword [ebp + 0x38]
mov edi, eax
fmul dword [ebp + 0x70]
call fcn.00631790
mov ecx, dword [ebx + 0x10]
lea ecx, [ecx + esi + 0x3f0]
mov edx, dword [ecx]
push eax
push edi
call dword [edx + 0x2c]
mov eax, dword [ebx + 0x10]
lea ecx, [eax + esi + 0x3f0]
mov eax, dword [ecx]
lea edx, [ebp - 0x28]
push edx
call dword [eax + 0x30]
mov eax, dword [eax]
add eax, dword [ebp + 0x40]
lea edx, [ebp - 0x50]
mov dword [ebp + 0x20], eax
mov eax, dword [ebx + 0x10]
lea ecx, [eax + esi + 0x3f0]
mov eax, dword [ecx]
push edx
call dword [eax + 0x30]
mov eax, dword [eax + 4]
add eax, dword [ebp + 0x44]
lea edx, [ebp - 0x30]
mov dword [ebp + 0x24], eax
mov eax, dword [ebx + 0x10]
lea ecx, [eax + esi + 0x3f0]
mov eax, dword [ecx]
push edx
call dword [eax + 0x34]
fild dword [eax]
fmul dword [ebp + 0x70]
call fcn.00631790
mov edi, eax
mov eax, dword [ebx + 0x10]
lea ecx, [eax + esi + 0x3f0]
mov eax, dword [ecx]
lea edx, [ebp - 0x38]
push edx
call dword [eax + 0x30]
mov eax, dword [eax]
add eax, dword [ebp + 0x40]
lea edx, [ebp - 0x48]
add eax, edi
mov dword [ebp + 0x28], eax
mov eax, dword [ebx + 0x10]
lea ecx, [eax + esi + 0x3f0]
mov eax, dword [ecx]
push edx
call dword [eax + 0x34]
fild dword [eax + 4]
fmul dword [ebp + 0x70]
call fcn.00631790
mov edi, eax
mov eax, dword [ebx + 0x10]
lea ecx, [eax + esi + 0x3f0]
mov eax, dword [ecx]
lea edx, [ebp - 0x14]
push edx
call dword [eax + 0x30]
mov eax, dword [eax + 4]
add eax, dword [ebp + 0x44]
add eax, edi
mov dword [ebp + 0x2c], eax
mov eax, dword [ebx + 0x10]
lea ecx, [eax + esi + 0x3f0]
mov eax, dword [ecx]
sub esp, 0x10
lea esi, [ebp + 0x20]
mov edi, esp
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
call dword [eax + 0x38]
mov eax, dword [ebx + 0x10]
mov ecx, dword [ebp + 0x6c]
sub esp, 0x10
mov edi, esp
lea esi, [ebp + 0x20]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
lea ecx, [eax + ecx + 0x3f0]
mov eax, dword [ecx]
movsd dword es:[edi], dword [esi]
call dword [eax + 0x38]
mov eax, dword [ebx + 0x10]
mov ecx, dword [ebp + 0x6c]
lea ecx, [eax + ecx + 0x3f0]
mov eax, dword [ecx]
call dword [eax + 0x7c]
mov esi, dword [ebp + 0x6c]
inc dword [ebp + 0x54]
mov eax, dword [ebp + 0x54]
add esi, 0x484
cmp eax, dword [ebp + 0x58]
mov dword [ebp + 0x6c], esi
jl 0x4ae1d0
mov esi, dword [ebp + 0x58]
xor eax, eax
push eax
lea ecx, [ebx + 0x158]
mov edx, dword [ecx]
push eax
push eax
call dword [edx]
fld dword [ebp + 0x70]
fmul qword [0x67ff10]
lea ecx, [ebp - 0x14]
lea edi, [ebx + 0x3ec]
mov eax, dword [edi]
fstp dword [ebx + 0x644]
push ecx
fld dword [ebp + 0x70]
mov ecx, edi
fmul qword [0x67ff18]
fstp dword [ebx + 0x648]
call dword [eax + 0x1c]
fild dword [eax]
push 4
pop eax
cmp esi, eax
fmul dword [ebp + 0x70]
mov dword [ebp + 0x68], eax
fadd dword [ebx + 0x644]
fstp dword [ebx + 0x64c]
fld dword [ebp + 0x70]
fmul qword [0x67ff58]
fstp dword [ebp + 0x5c]
fld dword [ebp + 0x5c]
fstp dword [ebx + 0x650]
jge 0x4ae80e
mov dword [ebp + 0x68], esi
cmp esi, eax
fld dword [ebx + 0x664]
fsub dword [ebx + 0x668]
fild dword [ebp + 0x68]
fidiv dword [ebp + 0x58]
fstp dword [ebp + 0x64]
fld dword [ebp + 0x64]
fmul st(1)
fstp dword [ebp + 0x64]
fld dword [ebp + 0x64]
fstp dword [ebx + 0x640]
jg 0x4ae83e
fstp st(0)
fldz
jmp 0x4ae850
fsub dword [ebp + 0x64]
sub esi, dword [ebp + 0x68]
fstp dword [ebp + 0x64]
fld dword [ebp + 0x64]
mov dword [ebp + 0x64], esi
fidiv dword [ebp + 0x64]
mov eax, dword [edi]
fstp dword [ebx + 0x63c]
fld dword [ebp + 0x70]
lea ecx, [ebp + 0x60]
fmul qword [0x67ff50]
push ecx
mov ecx, edi
fstp dword [ebx + 0x654]
fld dword [ebp + 0x5c]
fstp dword [ebx + 0x660]
call dword [eax + 0x1c]
fild dword [eax]
lea ecx, [ebx + 0x9b4]
mov eax, dword [ecx]
fmul dword [ebp + 0x70]
fadd dword [ebx + 0x654]
fstp dword [ebx + 0x65c]
fld dword [ebx + 0x660]
fsub dword [ebx + 0x640]
fstp dword [ebx + 0x658]
call dword [eax + 0x78]
mov eax, dword [ebx]
mov ecx, ebx
call dword [eax + 4]
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
add ebp, 0x74
leave
ret