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

Disassembly:
push 0xffffffffffffffff
push 0x570ab8
mov eax, dword fs:[0]
push eax
sub esp, 0x48
mov eax, dword [0x59ad00]
xor eax, esp
mov dword [esp + 0x44], eax
push ebx
push ebp
push esi
push edi
mov eax, dword [0x59ad00]
xor eax, esp
push eax
lea eax, [esp + 0x5c]
mov dword fs:[0], eax
fld qword [0x57b620]
mov eax, dword [esp + 0x70]
mov edx, dword [esp + 0x78]
mov ebp, ecx
mov ecx, dword [esp + 0x74]
mov dword [esp + 0x38], ecx
mov ecx, dword [esp + 0x7c]
fst qword [ecx]
mov dword [esp + 0x44], ecx
fstp qword [ecx + 8]
mov dword [edx], 0xffffffff
mov ecx, dword [eax]
mov dword [esp + 0x2c], eax
mov eax, dword [eax + 4]
mov dword [esp + 0x30], ebp
mov dword [esp + 0x3c], edx
cmp ecx, eax
je 0x40803b
mov edx, eax
sub edx, ecx
sar edx, 2
cmp edx, 1
jne 0x407cf1
mov eax, dword [eax - 4]
lea edx, [eax + eax*2]
mov eax, dword [ebp + 0x220]
add edx, edx
mov ecx, dword [eax + edx*8]
mov eax, dword [eax + edx*8 + 4]
cmp ecx, dword [esp + 0x6c]
jne 0x407d46
mov ecx, eax
jmp 0x407d46
mov ecx, dword [ecx + edx*4 - 8]
mov edx, dword [eax - 4]
mov esi, dword [ebp + 0x220]
lea ecx, [ecx + ecx*2]
lea edx, [edx + edx*2]
add edx, edx
mov edi, dword [esi + edx*8]
mov edx, dword [esi + edx*8 + 4]
shl ecx, 4
add ecx, esi
mov esi, dword [ecx]
mov ecx, dword [ecx + 4]
cmp edi, esi
je 0x407d2c
cmp edi, ecx
je 0x407d2c
cmp edx, esi
je 0x407d2e
cmp edx, ecx
je 0x407d2e
or edx, 0xffffffff
jmp 0x407d2e
mov edx, edi
mov eax, dword [eax - 4]
lea eax, [eax + eax*2]
shl eax, 4
add eax, dword [ebp + 0x220]
mov ecx, dword [eax]
cmp ecx, edx
jne 0x407d46
mov ecx, dword [eax + 4]
push ecx
mov ecx, dword [ebp + 0xd0]
call fcn.00541370
mov ebx, eax
test ebx, ebx
je 0x40803b
mov ecx, dword [ebp + 0xd0]
call fcn.00541ad0
mov edi, eax
xor esi, esi
test edi, edi
jle 0x407d88
nop
mov ecx, dword [ebp + 0xd0]
push esi
call fcn.00541da0
inc esi
mov dword [eax + 0x10], 0
cmp esi, edi
jl 0x407d70
xor edi, edi
mov dword [esp + 0x1c], edi
mov dword [esp + 0x20], edi
mov dword [esp + 0x24], edi
mov esi, dword [ebx + 4]
push 1
lea ecx, [esp + 0x20]
mov dword [esp + 0x68], edi
call fcn.0041a8b0
mov eax, dword [esp + 0x20]
cmp eax, edi
je 0x407db2
mov dword [eax], esi
add eax, 4
mov dword [esp + 0x20], eax
xor eax, eax
lea edx, [esp + 0x1c]
push edx
mov ecx, ebp
mov dword [esp + 0x38], 0xffffffff
mov dword [esp + 0x4c], eax
mov dword [esp + 0x50], eax
mov dword [esp + 0x54], eax
mov dword [esp + 0x58], eax
call fcn.00407260
cmp eax, edi
je 0x40802a
jmp 0x407df0
mov ecx, dword [eax + 4]
mov ebx, dword [esp + 0x24]
mov edi, dword [esp + 0x20]
mov ebp, dword [esp + 0x1c]
mov dword [ecx + 0x10], 1
mov edx, dword [eax]
mov dword [esp + 0x40], edx
mov dword [esp + 0x14], eax
mov edx, dword [esp + 0x38]
mov esi, dword [esp + 0x14]
lea eax, [esp + 0x48]
push eax
lea ecx, [esp + 0x38]
push ecx
mov ecx, dword [esp + 0x38]
push edx
push esi
call fcn.004056d0
test al, al
jne 0x40800b
mov eax, dword [esi + 8]
mov ecx, eax
lea ebx, [ebx]
mov edx, dword [eax + 4]
cmp dword [edx + 0x10], 0
je 0x407eb6
mov eax, dword [eax + 0xc]
cmp eax, ecx
jne 0x407e40
xor esi, esi
mov dword [esp + 0x18], esi
mov dword [esp + 0x14], esi
test esi, esi
je 0x407f5b
mov eax, dword [esi + 4]
lea ecx, [esp + 0x14]
mov dword [eax + 0x10], 1
cmp ecx, edi
jae 0x407ee8
mov edx, ecx
cmp ebp, edx
ja 0x407ee8
mov esi, ecx
sub esi, ebp
sar esi, 2
cmp edi, ebx
jne 0x407edc
mov eax, edi
sub eax, ebp
sar eax, 2
cmp eax, 0x3ffffffe
ja 0x40801f
mov ecx, ebx
sub ecx, ebp
inc eax
sar ecx, 2
cmp eax, ecx
jbe 0x407edc
mov edx, ecx
shr edx, 1
mov edi, 0x3fffffff
sub edi, edx
cmp edi, ecx
jae 0x407ebe
xor ecx, ecx
jmp 0x407ec0
mov esi, eax
mov dword [esp + 0x18], eax
jmp 0x407e56
add ecx, edx
cmp ecx, eax
jae 0x407ec6
mov ecx, eax
push ecx
lea ecx, [esp + 0x20]
call fcn.00404e80
mov ebx, dword [esp + 0x24]
mov edi, dword [esp + 0x20]
mov ebp, dword [esp + 0x1c]
test edi, edi
je 0x407f41
mov eax, dword [ebp + esi*4]
mov dword [edi], eax
jmp 0x407f41
cmp edi, ebx
jne 0x407f3b
mov eax, edi
sub eax, ebp
sar eax, 2
cmp eax, 0x3ffffffe
ja 0x40801f
mov ecx, ebx
sub ecx, ebp
inc eax
sar ecx, 2
cmp eax, ecx
jbe 0x407f3b
mov edx, ecx
shr edx, 1
mov edi, 0x3fffffff
sub edi, edx
cmp edi, ecx
jae 0x407f1d
xor ecx, ecx
jmp 0x407f1f
add ecx, edx
cmp ecx, eax
jae 0x407f25
mov ecx, eax
push ecx
lea ecx, [esp + 0x20]
call fcn.00404e80
mov ebx, dword [esp + 0x24]
mov edi, dword [esp + 0x20]
mov ebp, dword [esp + 0x1c]
test edi, edi
je 0x407f41
mov dword [edi], esi
mov ecx, dword [esp + 0x18]
mov edx, dword [ecx + 8]
mov eax, dword [esp + 0x40]
add edi, 4
mov dword [esp + 0x20], edi
cmp dword [edx], eax
jne 0x407e10
lea ecx, [esp + 0x1c]
push ecx
mov ecx, dword [esp + 0x34]
call fcn.00407260
test eax, eax
jne 0x407df0
mov edi, dword [esp + 0x20]
mov ebp, dword [esp + 0x1c]
mov eax, dword [esp + 0x34]
test eax, eax
js 0x40802e
mov ecx, dword [esp + 0x44]
fld qword [esp + 0x48]
mov edx, dword [esp + 0x3c]
fstp qword [ecx]
fld qword [esp + 0x50]
mov dword [esp + 0x18], ebp
fstp qword [ecx + 8]
mov dword [edx], eax
cmp ebp, edi
je 0x4080cd
mov ebx, dword [esp + 0x2c]
mov eax, dword [esp + 0x18]
mov ecx, dword [eax]
mov edx, dword [ecx + 4]
mov eax, dword [ebx + 4]
mov esi, dword [edx]
lea ecx, [esp + 0x14]
mov dword [esp + 0x14], esi
cmp ecx, eax
jae 0x408067
mov edx, dword [ebx]
cmp edx, ecx
ja 0x408067
mov esi, ecx
mov ecx, dword [ebx + 8]
sub esi, edx
sar esi, 2
cmp eax, ecx
jne 0x408057
sub eax, edx
sar eax, 2
cmp eax, 0x3ffffffe
ja 0x40801f
sub ecx, edx
inc eax
sar ecx, 2
cmp eax, ecx
jbe 0x408057
mov edx, ecx
shr edx, 1
mov ebx, 0x3fffffff
sub ebx, edx
cmp ebx, ecx
jae 0x408043
xor ecx, ecx
jmp 0x408045
cmp ebp, edi
je 0x407f79
sub edi, 4
mov dword [esp + 0x20], edi
jmp 0x407f79
push 0x57b720
call dword [sym.imp.MSVCP100.dll_void___cdecl_std::_Xlength_error_char_const__]
mov ebp, dword [esp + 0x1c]
test ebp, ebp
je 0x40803b
push ebp
call sub.MSVCR100.dll_void___cdecl_operator_delete_void__
add esp, 4
or eax, 0xffffffff
jmp 0x4080dc
add ecx, edx
cmp ecx, eax
jae 0x40804b
mov ecx, eax
mov ebx, dword [esp + 0x2c]
push ecx
mov ecx, ebx
call fcn.00404e80
mov eax, dword [ebx + 4]
test eax, eax
je 0x4080b6
mov edx, dword [ebx]
mov ecx, dword [edx + esi*4]
mov dword [eax], ecx
jmp 0x4080b6
mov ecx, dword [ebx + 8]
cmp eax, ecx
jne 0x4080ad
mov edx, dword [ebx]
sub eax, edx
sar eax, 2
cmp eax, 0x3ffffffe
ja 0x40801f
sub ecx, edx
inc eax
sar ecx, 2
cmp eax, ecx
jbe 0x4080ad
mov edx, ecx
shr edx, 1
mov ebx, 0x3fffffff
sub ebx, edx
cmp ebx, ecx
jae 0x408099
xor ecx, ecx
jmp 0x40809b
add ecx, edx
cmp ecx, eax
jae 0x4080a1
mov ecx, eax
mov ebx, dword [esp + 0x2c]
push ecx
mov ecx, ebx
call fcn.00404e80
mov eax, dword [ebx + 4]
test eax, eax
je 0x4080b6
mov dword [eax], esi
mov eax, dword [esp + 0x18]
add dword [ebx + 4], 4
add eax, 4
mov dword [esp + 0x18], eax
cmp eax, edi
jne 0x407fac
test ebp, ebp
je 0x4080da
push ebp
call sub.MSVCR100.dll_void___cdecl_operator_delete_void__
add esp, 4
xor eax, eax
mov ecx, dword [esp + 0x5c]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebp
pop ebx
mov ecx, dword [esp + 0x44]
xor ecx, esp
call fcn.00551a8e
add esp, 0x54
ret 0x14