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

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x525486
mov eax, dword fs:[0]
push eax
sub esp, 0xac
mov eax, dword [0x5750c8]
xor eax, ebp
mov dword [ebp - 0x10], eax
push ebx
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov ebx, ecx
mov ecx, dword [ebp + 8]
mov edi, edx
sub ecx, ebx
mov eax, 0xea0ea0eb
imul ecx
add edx, ecx
sar edx, 7
mov esi, edx
mov ecx, edi
sub ecx, ebx
shr esi, 0x1f
add esi, edx
mov eax, 0xea0ea0eb
imul ecx
add edx, ecx
sar edx, 7
mov ecx, edx
shr ecx, 0x1f
add ecx, edx
mov eax, ecx
mov dword [ebp - 0xac], edi
mov dword [ebp - 0xb4], ebx
mov dword [ebp - 0xb8], esi
mov dword [ebp - 0xa4], eax
mov edi, esi
test esi, esi
je 0x40cea6
cdq
idiv edi
mov dword [ebp - 0xa4], edi
mov eax, dword [ebp - 0xa4]
mov edi, edx
test edx, edx
jne 0x40ce91
cmp eax, ecx
jge 0x40d17e
test eax, eax
jle 0x40d17e
mov ecx, esi
mov esi, eax
imul ecx, ecx, 0x8c
imul esi, esi, 0x8c
add esi, ebx
mov dword [ebp - 0xb0], ecx
mov dword [ebp - 0xa8], esi
jmp 0x40cef2
mov esi, dword [ebp - 0xa8]
mov ecx, dword [ebp - 0xb0]
mov ebx, dword [ebp - 0xb4]
lea eax, [esi + ecx]
mov dword [ebp - 0xa0], esi
cmp eax, dword [ebp - 0xac]
je 0x40cf16
mov ebx, eax
jmp 0x40cf16
mov esi, dword [ebp - 0xa0]
mov eax, dword [esi]
mov ecx, dword [esi + 4]
mov edx, dword [esi + 8]
mov dword [ebp - 0x9c], eax
lea eax, [ebp - 0x90]
mov dword [ebp - 0x98], ecx
lea ecx, [esi + 0xc]
push eax
mov dword [ebp - 0x94], edx
call fcn.00408ae0
mov dword [ebp - 4], 0
add esi, 0x1c
mov ecx, 0x14
lea edi, [ebp - 0x80]
rep movsd dword es:[edi], dword [esi]
mov esi, dword [ebp - 0xa0]
mov ecx, dword [esi + 0x6c]
mov edx, dword [esi + 0x74]
fld dword [esi + 0x70]
mov eax, dword [esi + 0x78]
mov dword [ebp - 0x30], ecx
fstp dword [ebp - 0x2c]
lea ecx, [ebp - 0x20]
push ecx
lea ecx, [esi + 0x7c]
mov dword [ebp - 0x28], edx
mov dword [ebp - 0x24], eax
call fcn.00404070
mov dword [ebp - 4], 1
mov edx, dword [ebx]
mov dword [esi], edx
mov eax, dword [ebx + 4]
mov dword [esi + 4], eax
mov ecx, dword [ebx + 8]
lea eax, [ebx + 0xc]
push eax
lea eax, [esi + 0xc]
mov dword [esi + 8], ecx
call fcn.00407bc0
mov ecx, ebx
lea eax, [esi + 0x1c]
sub ecx, esi
mov dword [ebp - 0xa0], 0x14
mov edx, dword [ecx + eax]
mov dword [eax], edx
add eax, 4
dec dword [ebp - 0xa0]
jne 0x40cfb1
mov eax, dword [ebx + 0x6c]
mov dword [esi + 0x6c], eax
fld dword [ebx + 0x70]
fstp dword [esi + 0x70]
mov ecx, dword [ebx + 0x74]
mov dword [esi + 0x74], ecx
mov edx, dword [ebx + 0x78]
lea eax, [ebx + 0x7c]
lea ecx, [esi + 0x7c]
mov dword [esi + 0x78], edx
call fcn.00407dc0
mov eax, dword [ebp - 0x9c]
mov ecx, dword [ebp - 0x98]
mov edx, dword [ebp - 0x94]
mov dword [ebx], eax
lea eax, [ebp - 0x90]
push eax
lea eax, [ebx + 0xc]
mov dword [ebx + 4], ecx
mov dword [ebx + 8], edx
call fcn.00407bc0
fld dword [ebp - 0x2c]
mov ecx, dword [ebp - 0x80]
mov edx, dword [ebp - 0x7c]
mov eax, dword [ebp - 0x78]
mov dword [ebx + 0x1c], ecx
mov ecx, dword [ebp - 0x74]
mov dword [ebx + 0x20], edx
mov edx, dword [ebp - 0x70]
mov dword [ebx + 0x24], eax
mov eax, dword [ebp - 0x6c]
mov dword [ebx + 0x28], ecx
mov ecx, dword [ebp - 0x68]
mov dword [ebx + 0x2c], edx
mov edx, dword [ebp - 0x64]
mov dword [ebx + 0x30], eax
mov eax, dword [ebp - 0x60]
mov dword [ebx + 0x34], ecx
mov ecx, dword [ebp - 0x5c]
mov dword [ebx + 0x38], edx
mov edx, dword [ebp - 0x58]
mov dword [ebx + 0x3c], eax
mov eax, dword [ebp - 0x54]
mov dword [ebx + 0x40], ecx
mov ecx, dword [ebp - 0x50]
mov dword [ebx + 0x44], edx
mov edx, dword [ebp - 0x4c]
mov dword [ebx + 0x48], eax
mov eax, dword [ebp - 0x48]
mov dword [ebx + 0x4c], ecx
mov ecx, dword [ebp - 0x44]
mov dword [ebx + 0x50], edx
mov edx, dword [ebp - 0x40]
mov dword [ebx + 0x54], eax
mov eax, dword [ebp - 0x3c]
mov dword [ebx + 0x58], ecx
mov ecx, dword [ebp - 0x38]
mov dword [ebx + 0x5c], edx
mov edx, dword [ebp - 0x34]
mov dword [ebx + 0x60], eax
mov eax, dword [ebp - 0x30]
mov dword [ebx + 0x64], ecx
mov ecx, dword [ebp - 0x28]
mov dword [ebx + 0x68], edx
fstp dword [ebx + 0x70]
mov edx, dword [ebp - 0x24]
mov dword [ebx + 0x6c], eax
mov dword [ebx + 0x74], ecx
lea eax, [ebp - 0x20]
lea ecx, [ebx + 0x7c]
mov dword [ebx + 0x78], edx
call fcn.00407dc0
mov dword [ebp - 4], 0xffffffff
mov eax, dword [ebp - 0x20]
test eax, eax
je 0x40d0c0
push eax
call dword [sym.imp.MSVCR100.dll_void___cdecl_operator_delete_void__]
add esp, 4
mov eax, dword [ebp - 0x90]
test eax, eax
je 0x40d110
mov edi, dword [ebp - 0x8c]
mov esi, eax
cmp eax, edi
je 0x40d106
cmp dword [esi + 0x14], 0x10
jb 0x40d0ee
mov eax, dword [esi]
push eax
call dword [sym.imp.MSVCR100.dll_void___cdecl_operator_delete_void__]
mov eax, dword [ebp - 0x90]
add esp, 4
mov dword [esi + 0x14], 0xf
mov dword [esi + 0x10], 0
mov byte [esi], 0
add esi, 0x1c
cmp esi, edi
jne 0x40d0d6
push eax
call dword [sym.imp.MSVCR100.dll_void___cdecl_operator_delete_void__]
add esp, 4
mov ecx, dword [ebp - 0xac]
sub ecx, ebx
mov eax, 0xea0ea0eb
imul ecx
add edx, ecx
mov ecx, dword [ebp - 0xb8]
sar edx, 7
mov eax, edx
shr eax, 0x1f
add eax, edx
mov dword [ebp - 0xa0], ebx
cmp ecx, eax
jge 0x40d143
add ebx, dword [ebp - 0xb0]
jmp 0x40d153
mov ebx, ecx
sub ebx, eax
imul ebx, ebx, 0x8c
add ebx, dword [ebp - 0xb4]
cmp ebx, dword [ebp - 0xa8]
jne 0x40cf10
mov eax, dword [ebp - 0xa4]
sub dword [ebp - 0xa8], 0x8c
dec eax
mov dword [ebp - 0xa4], eax
test eax, eax
jg 0x40cee0
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.0045f06e
mov esp, ebp
pop ebp
ret