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

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff8
sub esp, 0x90
mov esi, dword [ebp + 0x10]
mov edi, dword [ebp + 0xc]
push 0
push 1
push 0x61b8e3
push esi
push edi
call fcn.004c0440
add esp, 0x14
mov ebx, eax
test al, al
je 0x592494
test esi, esi
je 0x592c25
mov edx, edi
inc edx
dec esi
mov dword [esp + 0x2c], 0xffffffff
jmp 0x5924c5
mov dword [esp + 0x2c], 1
push 0
push 1
push 0x61fa7f
push esi
push edi
call fcn.004c0440
add esp, 0x14
test al, al
je 0x5924c2
test esi, esi
je 0x592c28
mov edx, dword [ebp + 0xc]
inc edx
dec esi
jmp 0x5924c5
mov edx, dword [ebp + 0xc]
mov edi, dword [ebp + 8]
cmp esi, 3
je 0x5924f6
cmp esi, 1
je 0x5924db
test esi, esi
jne 0x592515
jmp 0x592be3
cmp byte [edx], 0x30
jne 0x592515
mov byte [edi], 1
mov dword [edi + 0xc], 0
mov dword [edi + 8], 0
jmp 0x592be6
push esi
push 0x61fa10
push edx
mov dword [esp + 0xc], edx
call fcn.005de9dd
mov edx, dword [esp + 0xc]
add esp, 0xc
test eax, eax
je 0x592bf0
cvtsi2sd xmm0, dword [esp + 0x2c]
movsd qword [esp + 0x50], xmm0
xor ecx, ecx
mov dword [esp + 0x1c], 0
mov dword [esp + 0x28], ecx
mov dword [esp + 0xc], esi
lea eax, [edx + esi]
mov dword [esp + 8], eax
xor eax, eax
xor esi, esi
xor ebx, ebx
mov dword [esp + 0x24], eax
movsx ecx, byte [edx + eax]
mov eax, ecx
add al, 0xc6
cmp al, 0xf6
jb 0x5925e0
mov eax, 0xcccccccc
cmp eax, esi
mov eax, 0xccccccc
sbb eax, ebx
jl 0x592be0
mov edi, edx
mov eax, esi
mov edx, 0xa
mul edx
add ecx, 0xffffffd0
lea esi, [ebx + ebx*4]
lea edx, [edx + esi*2]
mov dword [esp], edx
mov edx, ecx
sar edx, 0x1f
mov ebx, 0xffffffff
sub ebx, ecx
mov esi, SysReAllocString
sbb esi, edx
cmp ebx, eax
mov ebx, dword [esp]
sbb esi, ebx
jl 0x592be0
mov esi, eax
add esi, ecx
adc ebx, edx
mov eax, dword [esp + 0x24]
inc eax
cmp dword [esp + 0xc], eax
mov edx, edi
jne 0x592540
cmp dword [esp + 8], edx
je 0x592be0
xor ecx, ecx
mov dword [esp + 0x20], 1
mov dword [esp + 0x10], 0
xor edx, edx
mov dword [esp + 0xc], 0
jmp 0x592770
mov dword [esp + 4], esi
mov edi, dword [esp + 0x24]
lea eax, [edx + edi]
mov dword [esp + 0x18], eax
mov esi, edx
mov edx, dword [esp + 0xc]
mov eax, edx
sub eax, edi
cmp cl, 0x2e
jne 0x59263f
lea ecx, [esi + edi]
inc ecx
mov dword [esp + 8], ecx
dec edx
sub edx, edi
mov dword [esp + 0xc], edx
jne 0x592670
mov dword [esp + 0xc], 0
mov dword [esp + 0x20], 1
xor ecx, ecx
mov dword [esp + 0x10], 0
xor edx, edx
mov esi, dword [esp + 4]
cmp dword [esp + 0x24], 0
je 0x592759
jmp 0x592770
test edi, edi
mov esi, dword [esp + 4]
je 0x592be0
xor ecx, ecx
mov dword [esp + 0x20], 1
mov dword [esp + 0x10], 0
mov edx, dword [esp + 0x18]
mov dword [esp + 8], edx
mov dword [esp + 0xc], eax
xor edx, edx
jmp 0x592770
mov dword [esp], ebx
add dword [esp + 0x18], eax
xor edx, edx
mov dword [esp + 0x20], 1
mov dword [esp + 0x14], 0
mov dword [esp + 0x10], 0
mov ebx, dword [esp + 8]
mov esi, dword [esp + 4]
nop dword [eax]
movzx ecx, byte [ebx]
mov eax, ecx
add al, 0xc6
cmp al, 0xf6
mov dword [esp + 8], ebx
jb 0x59274b
mov ebx, dword [esp + 0x14]
mov eax, ebx
mov edi, 0xa
mov dword [esp + 0x34], edx
mul edi
mov dword [esp + 0x30], eax
add ecx, 0xffffffd0
mov edi, dword [esp + 0x10]
lea eax, [edi + edi]
lea eax, [eax + eax*4]
add dword [esp + 0x30], ecx
adc eax, edx
mov dword [esp + 0x38], eax
mov esi, dword [esp + 0x20]
mov eax, esi
mov ecx, 0xa
mul ecx
mov ecx, 0xcccccccc
cmp ecx, esi
mov ecx, 0xccccccc
sbb ecx, dword [esp + 0x34]
cmovge ebx, dword [esp + 0x30]
mov dword [esp + 0x14], ebx
cmovge edi, dword [esp + 0x38]
mov dword [esp + 0x10], edi
mov edi, dword [esp + 4]
mov ecx, dword [esp + 0x34]
lea ecx, [ecx + ecx*4]
lea ecx, [edx + ecx*2]
mov edx, dword [esp + 0x34]
cmovge esi, eax
mov dword [esp + 0x20], esi
mov esi, edi
cmovge edx, ecx
mov ebx, dword [esp + 8]
inc ebx
dec dword [esp + 0xc]
jne 0x5926a0
mov dword [esp + 0xc], 0
mov eax, dword [esp + 0x18]
mov dword [esp + 8], eax
mov ecx, dword [esp + 0x14]
mov ebx, dword [esp]
cmp dword [esp + 0x24], 0
jne 0x592770
mov eax, dword [esp + 0x20]
xor eax, 1
or eax, edx
je 0x592be0
nop dword [eax + eax]
mov dword [esp + 4], esi
mov dword [esp + 0x34], edx
mov dword [esp], ebx
mov dword [esp + 0x14], ecx
mov edi, 0x634f08
mov dword [esp + 0x24], 2
push 0
push 2
push 0x61fa14
mov esi, dword [esp + 0x18]
push esi
mov ebx, dword [esp + 0x18]
push ebx
call fcn.004c0440
add esp, 0x14
test al, al
jne 0x592860
mov edi, 0x634f18
push 0
push 2
push 0x61fa17
push esi
push ebx
call fcn.004c0440
add esp, 0x14
test al, al
jne 0x592860
mov edi, 0x634f28
push 0
push 2
push 0x61fa1a
push esi
push ebx
call fcn.004c0440
add esp, 0x14
test al, al
jne 0x592860
mov edi, 0x634f38
mov dword [esp + 0x24], 1
push 0
push 1
push 0x61fa21
mov esi, dword [esp + 0x18]
push esi
mov ebx, dword [esp + 0x18]
push ebx
call fcn.004c0440
add esp, 0x14
test al, al
jne 0x592860
mov edi, 0x634f48
push 0
push 1
push 0x61fa1f
push esi
push ebx
call fcn.004c0440
add esp, 0x14
test al, al
jne 0x592860
mov edi, 0x634f58
push 0
push 1
push 0x61fa1d
push esi
push ebx
call fcn.004c0440
add esp, 0x14
test al, al
je 0x592be0
nop word cs:[eax + eax]
mov eax, dword [esp + 0x24]
sub dword [esp + 0xc], eax
jb 0x592c1c
mov ecx, dword [edi + 8]
mov esi, dword [edi + 0xc]
mov edi, dword [esp + 4]
mov eax, edi
mov ebx, dword [esp]
or eax, ebx
mov eax, dword [esp + 0x14]
mov dword [esp + 0x30], ecx
mov dword [esp + 0x38], esi
je 0x5929e9
mov ecx, dword [esp + 0x2c]
sar ecx, 0x1f
mov eax, edi
mul dword [esp + 0x2c]
mov dword [esp + 0x18], eax
imul ecx, edi
add ecx, edx
imul ebx, dword [esp + 0x2c]
add ebx, ecx
mov edx, esi
sar edx, 0x1f
mov ecx, esi
xor ecx, edx
mov eax, dword [esp + 0x30]
xor eax, edx
sub eax, edx
sbb ecx, edx
mov dword [esp + 4], ecx
mov edx, ebx
sar edx, 0x1f
mov ecx, esi
mov esi, dword [esp + 0x18]
xor ecx, ebx
xor ebx, edx
xor esi, edx
sub esi, edx
sbb ebx, edx
mov dword [esp + 0x3c], eax
mul esi
mov dword [esp + 0x4c], eax
mov dword [esp + 0x48], edx
mov dword [esp + 0x18], ecx
mov eax, ecx
shr eax, 0x1f
cmp eax, esi
mov ecx, 0
sbb ecx, ebx
jae 0x592944
mov ecx, 0xffffffff
add ecx, 1
mov edi, SysReAllocString
adc edi, 0
cmp dword [esp + 0x18], 0
mov edx, 0xffffffff
cmovns ecx, edx
mov dword [esp], ecx
mov ecx, SysReAllocString
cmovns edi, ecx
add eax, edx
mov ecx, SysReAllocString
adc ecx, 0
push ebx
push esi
push ecx
push eax
call fcn.005fde60
cmp eax, dword [esp + 0x3c]
sbb edx, dword [esp + 4]
mov edx, dword [esp]
jb 0x592974
mov eax, dword [esp + 0x3c]
imul eax, ebx
mov ecx, dword [esp + 0x48]
add ecx, eax
mov eax, dword [esp + 4]
imul eax, esi
add eax, ecx
mov ecx, dword [esp + 0x4c]
mov edx, ecx
neg edx
mov edi, 0
sbb edi, eax
cmp dword [esp + 0x18], 0
cmovns edi, eax
cmovns edx, ecx
mov eax, 0xffffffff
add eax, edx
mov ecx, SysReAllocString
adc ecx, edi
add eax, 2
adc ecx, 0
cmp eax, 2
sbb ecx, 0
mov esi, dword [esp + 0xc]
mov eax, edx
mov edx, dword [esp + 0x28]
jae 0x5929fb
mov dword [esp + 4], edi
mov dword [esp], eax
mov eax, 0xffffffff
add eax, edx
mov ecx, SysReAllocString
mov ebx, dword [esp + 0x1c]
adc ecx, ebx
add eax, 2
adc ecx, 0
mov edi, edx
mov edx, 1
cmp edx, eax
mov eax, 0
sbb eax, ecx
jb 0x592a27
mov edx, dword [esp]
mov eax, edi
xor eax, edx
mov edi, dword [esp + 4]
xor ebx, edi
or ebx, eax
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x10]
je 0x592a40
jmp 0x592c1f
mov edx, dword [esp + 0x28]
mov edi, dword [esp + 0x1c]
mov esi, dword [esp + 0xc]
mov ecx, dword [esp + 0x10]
jmp 0x592a40
add edx, eax
mov ecx, dword [esp + 0x1c]
adc ecx, edi
seto al
mov ebx, ecx
sar ebx, 0x1f
lea edi, [ebx - 0x80000000]
test al, al
cmove ebx, edx
mov edx, ebx
test al, al
cmove edi, ecx
mov ecx, dword [esp + 0x10]
mov eax, dword [esp + 0x14]
jmp 0x592a40
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x10]
mov edx, dword [esp]
mov edi, dword [esp + 4]
nop word cs:[eax + eax]
mov ebx, eax
or eax, ecx
mov eax, dword [esp + 0x30]
je 0x592b7b
mov dword [esp + 4], edi
mov dword [esp], edx
movd xmm0, ebx
movd xmm1, ecx
movss xmm2, dword [esp + 0x20]
movss xmm3, dword [esp + 0x34]
punpckldq xmm0, xmm1
movq qword [esp + 0x80], xmm0
fild qword [esp + 0x80]
fstp qword [esp + 0x78]
movsd xmm0, qword [esp + 0x78]
mulsd xmm0, qword [esp + 0x50]
unpcklps xmm2, xmm3
movlps qword [esp + 0x70], xmm2
fild qword [esp + 0x70]
fstp qword [esp + 0x68]
divsd xmm0, qword [esp + 0x68]
movd xmm1, eax
movd xmm2, dword [esp + 0x38]
punpckldq xmm1, xmm2
movq qword [esp + 0x60], xmm1
fild qword [esp + 0x60]
fstp qword [esp + 0x58]
mulsd xmm0, qword [esp + 0x58]
movsd xmm1, qword [0x62bc70]
ucomisd xmm0, xmm1
mov edx, 0
mov eax, 0xffffffff
cmovae edx, eax
mov ecx, 0
mov eax, SysReAllocString
cmovae ecx, eax
movsd xmm2, qword [0x62bc68]
ucomisd xmm2, xmm0
maxsd xmm0, xmm1
movsd qword [esp + 0x40], xmm0
fld qword [esp + 0x40]
fisttp qword [esp + 0x40]
jb 0x592b13
mov ecx, dword [esp + 0x44]
mov edx, dword [esp + 0x40]
mov eax, 0xffffffff
add eax, edx
mov ebx, ecx
mov ecx, SysReAllocString
adc ecx, ebx
add eax, 2
adc ecx, 0
cmp eax, 2
sbb ecx, 0
jae 0x592b87
mov dword [esp + 0x1c], ebx
mov dword [esp + 0x28], edx
mov eax, 0xffffffff
mov ebx, dword [esp]
add eax, ebx
mov ecx, SysReAllocString
mov edi, dword [esp + 4]
adc ecx, edi
add eax, 2
adc ecx, 0
mov edx, 1
cmp edx, eax
mov eax, 0
sbb eax, ecx
jb 0x592bb4
mov ecx, dword [esp + 0x28]
xor ebx, ecx
xor edi, dword [esp + 0x1c]
or edi, ebx
mov eax, dword [esp + 8]
je 0x592bc0
jmp 0x592c22
mov ecx, edx
mov dword [esp + 0x1c], edi
mov eax, dword [esp + 8]
jmp 0x592bc0
mov edi, dword [esp]
add edi, edx
mov eax, dword [esp + 4]
adc eax, ebx
seto bl
mov ecx, eax
sar ecx, 0x1f
lea edx, [ecx - 0x80000000]
test bl, bl
cmove ecx, edi
test bl, bl
cmove edx, eax
mov dword [esp + 0x1c], edx
mov eax, dword [esp + 8]
jmp 0x592bc0
mov eax, dword [esp + 8]
mov ecx, dword [esp + 0x28]
nop dword [eax]
add eax, dword [esp + 0x24]
mov edx, eax
test esi, esi
mov edi, dword [ebp + 8]
jne 0x59252b
mov byte [edi], 1
mov dword [edi + 8], ecx
mov eax, dword [esp + 0x1c]
mov dword [edi + 0xc], eax
jmp 0x592be6
mov edi, dword [ebp + 8]
mov byte [edi], 0
mov eax, edi
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret
xor eax, eax
mov ecx, 0xffffffff
add ecx, 1
adc eax, 0x7fffffff
mov edx, 0xffffffff
test bl, bl
cmove ecx, edx
mov edx, SysReAllocString
cmovne edx, eax
mov byte [edi], 1
mov dword [edi + 8], ecx
mov dword [edi + 0xc], edx
jmp 0x592be6
int3
int3
int3
int3
int3