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

Disassembly:
mov ecx, dword [0x8cbf38]
mov ecx, dword fs:[ecx]
mov ecx, dword [ecx]
lea eax, [esp - 0x70]
cmp eax, dword [ecx + 8]
jbe 0x58ed03
sub esp, 0xf0
mov eax, 0
mov dword [esp + 0xec], eax
mov byte [esp + 0x53], 0
mov dword [esp + 0x100], 0
mov dword [esp + 0x104], 0
mov eax, dword [esp + 0xf4]
test byte [eax], al
lea ecx, [eax + 0x68]
mov dword [esp + 0xc8], ecx
mov dword [esp], ecx
call fcn.00475ad0
mov dword [esp + 0xcc], 0
mov dword [esp + 0xd0], 0
lea eax, [0x58ed10]
mov dword [esp + 0xcc], eax
mov eax, dword [esp + 0xc8]
mov dword [esp + 0xd0], eax
lea eax, [esp + 0xcc]
mov dword [esp + 0xec], eax
mov byte [esp + 0x53], 1
mov dword [esp + 0xb0], 0
mov dword [esp + 0xb4], 0
mov eax, dword [esp + 0xf8]
mov dword [esp + 0xb0], eax
mov ecx, dword [esp + 0xfc]
mov dword [esp + 0xb4], ecx
mov edx, dword [esp + 0xf4]
mov ebx, dword [edx + 0x70]
mov ebp, dword [esp + 0xb0]
lea esi, [0x633c60]
mov dword [esp], esi
mov dword [esp + 4], ebx
mov dword [esp + 0xc], ecx
mov dword [esp + 8], ebp
call fcn.00413910
movzx eax, byte [esp + 0x14]
test al, al
jne 0x58ea7d
mov eax, dword [esp + 0xf4]
mov ecx, dword [eax + 0x44]
mov edx, dword [eax + 0x48]
mov ebx, dword [eax + 0x4c]
mov dword [esp], ecx
mov dword [esp + 4], edx
mov dword [esp + 8], ebx
call fcn.005a9dd0
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 0x10]
mov edx, dword [esp + 0x14]
mov ebx, dword [esp + 0xf4]
movzx ebp, byte [ebx + 0x74]
mov esi, dword [ebx + 0x64]
mov edi, dword [ebx + 0x50]
mov dword [esp + 0x94], edi
mov edi, dword [ebx + 0x54]
mov dword [esp + 0x90], edi
mov edi, dword [ebx + 0x58]
mov dword [esp + 0x8c], edi
mov edi, dword [ebx + 0x5c]
mov dword [esp + 0x88], edi
mov edi, dword [ebx + 0x60]
mov dword [esp + 0x84], edi
mov edi, dword [ebx + 0x78]
mov dword [esp + 0xc4], edi
lea edi, [0x702760]
mov dword [esp], edi
mov dword [esp + 4], ebx
mov dword [esp + 8], eax
mov dword [esp + 0xc], ecx
mov dword [esp + 0x10], edx
xchg ebp, eax
mov byte [esp + 0x14], al
xchg ebp, eax
mov dword [esp + 0x18], esi
mov dword [esp + 0x1c], 0
mov dword [esp + 0x20], 0
mov eax, dword [esp + 0xf8]
mov dword [esp + 0x24], eax
mov ecx, dword [esp + 0xfc]
mov dword [esp + 0x28], ecx
mov edx, dword [esp + 0x94]
mov dword [esp + 0x2c], edx
mov edx, dword [esp + 0x90]
mov dword [esp + 0x30], edx
mov edx, dword [esp + 0x8c]
mov dword [esp + 0x34], edx
mov edx, dword [esp + 0x88]
mov dword [esp + 0x38], edx
mov edx, dword [esp + 0x84]
mov dword [esp + 0x3c], edx
mov edx, dword [esp + 0xc4]
mov dword [esp + 0x40], edx
call fcn.0058efa0
mov eax, dword [esp + 0xf4]
mov ecx, dword [eax + 0x50]
mov edx, dword [eax + 0x54]
mov ebx, dword [eax + 0x58]
mov ebp, dword [eax + 0x5c]
mov esi, dword [eax]
mov esi, dword [esi + 4]
cvtsi2sd xmm0, esi
movsd xmm1, qword [0x700eb0]
divsd xmm0, xmm1
mov esi, dword [esp + 0x44]
mov dword [esp + 0xb8], esi
mov edi, dword [esp + 0x48]
mov dword [esp + 0x60], edi
mov dword [esp], ecx
mov dword [esp + 4], edx
mov dword [esp + 8], ebx
mov dword [esp + 0xc], ebp
movsd qword [esp + 0x10], xmm0
call fcn.005c0570
mov eax, dword [esp + 0xf4]
mov ecx, dword [eax + 0x60]
mov edx, dword [eax]
mov edx, dword [edx + 4]
cvtsi2sd xmm0, edx
movsd xmm1, qword [0x700eb0]
divsd xmm0, xmm1
cvtsi2sd xmm1, ecx
mulsd xmm1, xmm0
mov ecx, dword [esp + 0x18]
mov edx, dword [esp + 0x20]
mov ebx, dword [esp + 0x1c]
mov ebp, dword [esp + 0x24]
movsd qword [esp + 0xa0], xmm1
mov esi, dword [esp + 0xa4]
mov edi, esi
shr esi, 0x14
and esi, 0x7ff
cmp esi, 0x3ff
jae 0x58e93e
and edi, 0x80000000
cmp esi, 0x3fe
jne 0x58e937
or edi, 0x3ff00000
xor esi, esi
jmp 0x58ea4c
mov eax, dword [esp + 0xa0]
cmp esi, 0x433
jae 0x58ea43
mov dword [esp + 0x94], ecx
mov dword [esp + 0x90], ebx
mov dword [esp + 0x8c], ebp
lea ebx, [esi - 0x3ff]
mov dword [esp + 0x68], ebx
mov ecx, ebx
mov ebp, 0x80000
shr ebp, cl
mov dword [esp + 0x80], ebp
mov ebp, 0xfffff
shr ebp, cl
mov dword [esp + 0x7c], ebp
mov ebp, 0xffffffff
shr ebp, cl
mov dword [esp + 0x78], ebp
add esi, 0xfffffbe1
mov ecx, esi
mov ebp, 0x80000
shr ebp, cl
mov dword [esp + 0x74], ebp
mov ebx, 0xfffff
shr ebx, cl
mov dword [esp + 0x70], ebx
neg ecx
mov ebx, 0x80000
shl ebx, cl
mov ebp, 0xfffff
shl ebp, cl
cmp ecx, 0x20
sbb ecx, ecx
and ebx, ecx
and ebp, ecx
cmp esi, 0x20
sbb ecx, ecx
mov esi, ebp
mov ebp, dword [esp + 0x74]
and ebp, ecx
or ebp, ebx
mov dword [esp + 0x74], ebp
mov ebx, dword [esp + 0x70]
and ebx, ecx
mov dword [esp + 0x70], ebx
mov ecx, eax
add eax, ebp
mov ebx, dword [esp + 0x68]
cmp ebx, 0x20
sbb ebx, ebx
mov dword [esp + 0x6c], ebx
mov ebp, dword [esp + 0x80]
and ebp, ebx
mov ebx, dword [esp + 0x74]
add ecx, ebx
adc edi, ebp
mov ebx, dword [esp + 0x7c]
mov ebp, dword [esp + 0x6c]
and ebx, ebp
not ebx
mov ecx, ebx
mov ebx, dword [esp + 0x78]
and ebx, ebp
or ebx, esi
mov ebp, dword [esp + 0x70]
or ebx, ebp
not ebx
and eax, ebx
and edi, ecx
mov ecx, dword [esp + 0x94]
mov ebx, dword [esp + 0x90]
mov ebp, dword [esp + 0x8c]
mov esi, eax
mov eax, dword [esp + 0xf4]
mov dword [esp + 0xa8], esi
mov dword [esp + 0xac], edi
add ecx, edx
add ebx, ebp
mov ebp, dword [esp + 0xb8]
movsd xmm0, qword [esp + 0xa8]
movsd qword [esp + 0x98], xmm0
xor edx, edx
xor esi, esi
jmp 0x58ead9
mov eax, dword [esp + 0x10]
mov ecx, dword [eax]
mov eax, dword [eax + 4]
mov dword [esp + 0x100], ecx
mov dword [esp + 0x104], eax
mov byte [esp + 0x53], 0
mov edx, dword [esp + 0xec]
mov eax, dword [edx]
call eax
add esp, 0xf0
ret
mov ebx, dword [esp + 0xc0]
add ebx, 0x18
mov esi, dword [esp + 0x94]
inc esi
movsd xmm0, qword [esp + 0x98]
mov ecx, eax
mov eax, dword [esp + 0xf4]
mov edi, edx
mov edx, esi
mov esi, ebp
mov ebp, ebx
mov ebx, edi
mov edi, ecx
mov ecx, dword [esp + 0x60]
cmp edx, ecx
jge 0x58ec39
mov dword [esp + 0x94], edx
mov dword [esp + 0x58], ebx
mov dword [esp + 0x90], edi
mov dword [esp + 0x5c], esi
mov dword [esp + 0xc0], ebp
lea edi, [esp + 0xd4]
mov esi, ebp
call fcn.0046c594
mov ecx, dword [esp + 0xd4]
mov edx, dword [esp + 0xd8]
mov dword [esp], eax
mov dword [esp + 4], ecx
mov dword [esp + 8], edx
call fcn.005a98f0
mov eax, dword [esp + 0xd4]
mov ecx, dword [esp + 0xd8]
mov edx, dword [esp + 0x10]
mov dword [esp + 0x8c], edx
mov ebx, dword [esp + 0xc]
mov dword [esp + 0x88], ebx
lea ebp, [0x63df60]
mov dword [esp], ebp
mov dword [esp + 4], eax
mov dword [esp + 8], ecx
call fcn.0040d750
mov eax, dword [esp + 0xc]
test eax, eax
je 0x58eb92
mov dword [esp + 0x64], eax
mov ecx, dword [esp + 0x10]
mov dword [esp + 0xbc], ecx
mov edx, dword [eax + 0x10]
mov dword [esp], ecx
call edx
movzx eax, byte [esp + 4]
test al, al
jne 0x58eba2
mov eax, dword [esp + 0x8c]
mov dword [esp + 0xe8], eax
jmp 0x58ebcb
mov eax, dword [esp + 0x64]
mov eax, dword [eax + 0x14]
mov ecx, dword [esp + 0xe4]
mov edx, dword [esp + 0xbc]
mov dword [esp], edx
mov dword [esp + 4], ecx
call eax
mov eax, dword [esp + 8]
mov dword [esp + 0xe8], eax
mov eax, dword [esp + 0x88]
mov dword [esp + 0xe4], eax
mov ecx, dword [esp + 0xf4]
cmp byte [ecx + 0x74], 1
jne 0x58ec0b
mov ebx, dword [esp + 0xe8]
mov ebp, dword [esp + 0x5c]
cmp ebp, ebx
jg 0x58ebf7
mov ebp, ebx
mov edx, eax
mov eax, dword [esp + 0x90]
add eax, edx
mov edx, dword [esp + 0x58]
jmp 0x58eaab
mov ebx, dword [esp + 0x5c]
cmp ebx, eax
jg 0x58ec15
mov ebx, eax
mov eax, dword [esp + 0xe8]
mov ecx, dword [esp + 0x58]
add ecx, eax
mov edx, ecx
mov eax, dword [esp + 0x90]
mov ebp, ebx
mov ecx, dword [esp + 0xf4]
jmp 0x58eaab
cvttsd2si ebp, xmm0
cmp byte [eax + 0x74], 1
jne 0x58ec4e
dec ecx
imul ebp, ecx
lea ecx, [edi + ebp]
add ebx, esi
jmp 0x58ec57
dec ecx
imul ebp, ecx
add ebx, ebp
lea ecx, [esi + edi]
test ecx, ecx
jle 0x58ecd0
test ebx, ebx
jle 0x58ecd0
mov dword [esp + 0x58], ebx
mov dword [esp + 0x54], ecx
mov dword [esp + 0xb0], 0
mov dword [esp + 0xb4], 0
mov ecx, dword [esp + 0xf8]
mov dword [esp + 0xb0], ecx
mov ecx, dword [esp + 0xfc]
mov dword [esp + 0xb4], ecx
mov eax, dword [eax + 0x70]
mov edx, dword [esp + 0xb0]
lea ebx, [0x633c60]
mov dword [esp], ebx
mov dword [esp + 4], eax
mov dword [esp + 0xc], ecx
mov dword [esp + 8], edx
call fcn.00413a80
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0x54]
mov dword [eax], ecx
mov edx, dword [esp + 0x58]
mov dword [eax + 4], edx
jmp 0x58ecd2
mov edx, ebx
mov dword [esp + 0x100], ecx
mov dword [esp + 0x104], edx
mov byte [esp + 0x53], 0
mov edx, dword [esp + 0xec]
mov eax, dword [edx]
call eax
add esp, 0xf0
ret
call fcn.0046aab0
jmp fcn.0058e660