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

Disassembly:
push ebp
push edi
push esi
push ebx
sub esp, 0x7c
mov eax, dword [esp + 0x98]
mov edx, dword [esp + 0x9c]
mov ebx, dword [esp + 0x90]
mov esi, dword [esp + 0x94]
mov edi, eax
mov dword [esp + 0x48], eax
mov eax, dword [esp + 0xa0]
mov ebp, edx
mov dword [esp + 0x4c], edx
mov edx, dword [esp + 0xac]
mov dword [esp + 0x3c], eax
mov eax, dword [esp + 0xa4]
mov dword [esp + 0x44], edx
mov dword [esp + 0x38], eax
cmp ebp, dword [esp + 0x38]
mov eax, dword [esp + 0xa8]
mov dword [esp + 0x40], eax
mov eax, dword [esp + 0xb0]
jle 0x58f465
mov eax, 0xffffffff
add esp, 0x7c
pop ebx
pop esi
pop edi
pop ebp
ret
jge 0x58f530
mov ecx, dword [esp + 0x44]
cmp dword [esp + 0x38], ecx
mov edx, dword [esp + 0x40]
jg 0x58f458
jl 0x58f481
cmp dword [esp + 0x3c], edx
ja 0x58f458
cmp esi, 0xffffffff
jl 0x58f7d0
cmp esi, dword [ebx + 0x18]
jge 0x58f7d0
mov edx, dword [ebx + 0x4ec]
test edx, edx
jle 0x58f4a0
or eax, 4
and eax, 0xfffffffe
mov dword [esp + 0x68], eax
mov eax, dword [ebx + 4]
mov eax, dword [eax + 0x48]
test eax, eax
je 0x58f640
mov dword [esp], ebx
call fcn.0058b750
cmp esi, 0xffffffff
je 0x58f551
mov ecx, dword [esp + 0x68]
mov eax, dword [ebx + 4]
mov edx, dword [esp + 0x40]
mov edi, dword [esp + 0x48]
mov ebp, dword [esp + 0x4c]
mov dword [esp + 4], esi
mov dword [esp + 0x20], ecx
mov ecx, dword [esp + 0x44]
mov dword [esp + 0x18], edx
mov dword [esp + 8], edi
mov dword [esp + 0xc], ebp
mov dword [esp], ebx
mov dword [esp + 0x1c], ecx
mov ecx, dword [esp + 0x3c]
mov dword [esp + 0x10], ecx
mov ecx, dword [esp + 0x38]
mov dword [esp + 0x14], ecx
call dword [eax + 0x48]
test eax, eax
js 0x58f45d
mov dword [esp + 0x90], ebx
add esp, 0x7c
pop ebx
pop esi
pop edi
pop ebp
jmp fcn.005880c0
cmp edi, dword [esp + 0x3c]
ja 0x58f458
mov ecx, dword [esp + 0x44]
cmp dword [esp + 0x38], ecx
mov edx, dword [esp + 0x40]
jg 0x58f458
jmp 0x58f479
cmp dword [ebx + 0x18], 1
jne 0x58f4c6
mov eax, dword [ebx + 0x1c]
mov edi, 0xf4240
mov eax, dword [eax]
mov ecx, dword [eax + 0x28]
mov esi, dword [eax + 0x2c]
mov eax, dword [esp + 0x3c]
mov dword [esp + 8], 1
mov dword [esp + 0xc], 0xf4240
mov dword [esp + 0x10], ecx
mov dword [esp + 0x14], esi
mov ebp, esi
mov dword [esp], eax
mov eax, dword [esp + 0x38]
sar ebp, 0x1f
mov dword [esp + 0x50], ecx
mov dword [esp + 4], eax
call fcn.00892710
mov ecx, dword [esp + 0x50]
mov dword [esp + 0x3c], eax
mov eax, edi
mov dword [esp + 0x38], edx
mov edi, dword [esp + 0x4c]
mov dword [esp + 0x58], esi
mov dword [esp + 8], esi
imul ecx
mov esi, dword [esp + 0x48]
mov dword [esp + 0xc], ebp
mov dword [esp + 4], edi
mov dword [esp + 0x18], 0x2003
mov dword [esp + 0x5c], ebp
mov dword [esp], esi
mov dword [esp + 0x10], eax
xor esi, esi
mov dword [esp + 0x14], edx
mov dword [esp + 0x50], eax
mov dword [esp + 0x54], edx
call fcn.00892180
mov dword [esp + 0x48], eax
mov dword [esp + 0x4c], edx
mov eax, dword [esp + 0x50]
mov edx, dword [esp + 0x54]
mov edi, dword [esp + 0x58]
mov ebp, dword [esp + 0x5c]
mov dword [esp + 0x18], 0x2002
mov dword [esp + 0x10], eax
mov dword [esp + 0x14], edx
mov eax, dword [esp + 0x40]
mov edx, dword [esp + 0x44]
mov dword [esp + 8], edi
mov dword [esp + 0xc], ebp
mov dword [esp], eax
mov dword [esp + 4], edx
call fcn.00892180
mov dword [esp + 0x40], eax
mov dword [esp + 0x44], edx
jmp 0x58f4c6
mov eax, dword [esp + 0x3c]
mov edx, dword [esp + 0x38]
mov dword [esp + 0x58], 1
mov edi, eax
sub edi, dword [esp + 0x48]
mov ebp, edx
sbb ebp, dword [esp + 0x4c]
mov dword [esp + 0x50], edi
mov edi, dword [esp + 0x40]
mov dword [esp + 0x54], ebp
mov ebp, dword [esp + 0x44]
sub edi, eax
sbb ebp, edx
mov dword [esp + 0x60], edi
mov edx, edi
mov ecx, ebp
mov dword [esp + 0x64], ebp
mov ebp, dword [esp + 0x54]
mov edi, dword [esp + 0x50]
cmp ebp, ecx
ja 0x58f696
jae 0x58f7e0
mov dword [esp + 0x58], 0
mov eax, dword [esp + 0x58]
or eax, dword [esp + 0x68]
mov dword [esp + 4], esi
mov dword [esp], ebx
mov dword [esp + 0x6c], eax
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0x3c]
mov dword [esp + 8], eax
mov eax, dword [esp + 0x38]
mov dword [esp + 0xc], eax
call fcn.0058f7f0
mov edi, dword [esp + 0x48]
mov ebp, dword [esp + 0x4c]
mov ecx, dword [esp + 0x3c]
mov edx, dword [esp + 0x38]
xor ecx, edi
xor edx, ebp
mov edi, dword [esp + 0x40]
or ecx, edx
mov ecx, dword [esp + 0x3c]
mov ebp, dword [esp + 0x44]
setne dl
xor ecx, edi
mov dword [esp + 0x58], ecx
mov ecx, dword [esp + 0x38]
mov edi, dword [esp + 0x58]
xor ecx, ebp
or edi, ecx
setne cl
test dl, cl
je 0x58f45d
mov edx, eax
shr edx, 0x1f
test dl, dl
je 0x58f45d
mov ebp, dword [esp + 0x64]
mov edx, dword [esp + 0x54]
mov edi, dword [esp + 0x60]
mov eax, dword [esp + 0x50]
cmp edx, ebp
jb 0x58f73b
ja 0x58f72b
cmp eax, edi
jbe 0x58f73b
mov eax, dword [esp + 0x40]
mov edx, dword [esp + 0x44]
mov dword [esp + 0x48], eax
mov dword [esp + 0x4c], edx
mov eax, dword [esp + 0x6c]
mov edx, dword [esp + 0x4c]
mov dword [esp + 4], esi
mov dword [esp], ebx
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0x48]
mov dword [esp + 0xc], edx
mov dword [esp + 8], eax
call fcn.0058f7f0
test eax, eax
js 0x58f45d
mov ecx, dword [esp + 0x64]
mov ebp, dword [esp + 0x54]
mov dword [esp + 0x40], 1
mov edx, dword [esp + 0x60]
mov edi, dword [esp + 0x50]
cmp ebp, ecx
jb 0x58f791
ja 0x58f789
cmp edi, edx
jbe 0x58f791
mov dword [esp + 0x40], 0
mov eax, dword [esp + 0x40]
or eax, dword [esp + 0x68]
mov dword [esp + 0x94], esi
mov dword [esp + 0x90], ebx
mov dword [esp + 0xa0], eax
mov eax, dword [esp + 0x3c]
mov dword [esp + 0x98], eax
mov eax, dword [esp + 0x38]
mov dword [esp + 0x9c], eax
add esp, 0x7c
pop ebx
pop esi
pop edi
pop ebp
jmp fcn.0058f7f0
mov eax, 0xffffffea
jmp 0x58f45d
cmp edi, edx
ja 0x58f696
jmp 0x58f68e