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

Disassembly:
sub esp, 0x5c
push ebx
mov ebx, ecx
mov eax, dword [ebx + 4]
mov ecx, dword [eax + 4]
push esi
push edi
mov edi, dword [esp + 0x74]
mov edx, 8
cmp ecx, edx
mov ecx, dword [edi + 4]
mov esi, dword [ecx + 4]
mov dword [esp + 0xc], ebx
je 0x5846d1
cmp esi, edx
je 0x584674
test ecx, ecx
je 0x5845f6
mov esi, dword [ecx + 0x28]
jmp 0x5845f8
xor esi, esi
test ecx, ecx
je 0x584601
mov edx, dword [ecx + 0x24]
jmp 0x584603
xor edx, edx
mov ecx, dword [esp + 0x7c]
mov eax, dword [ecx + 4]
mov ecx, dword [ecx]
lea edi, [esp + 0x28]
push edi
add esi, eax
push esi
add edx, ecx
push edx
push eax
push ecx
call fcn.00574e2c
mov eax, dword [ebx + 4]
add esp, 0x14
test eax, eax
je 0x58462d
mov esi, dword [eax + 0x28]
jmp 0x58462f
xor esi, esi
test eax, eax
je 0x584638
mov eax, dword [eax + 0x24]
jmp 0x58463a
xor eax, eax
mov edx, dword [esp + 0x70]
mov ecx, dword [edx + 4]
mov edx, dword [edx]
lea edi, [esp + 0x38]
push edi
add esi, ecx
push esi
add eax, edx
push eax
push ecx
push edx
call fcn.00574e2c
mov ecx, edi
push ecx
lea edx, [esp + 0x40]
push edx
call fcn.0057513c
add esp, 0x1c
neg eax
pop edi
sbb eax, eax
pop esi
neg eax
pop ebx
add esp, 0x5c
ret 0x14
test eax, eax
je 0x58467d
mov esi, dword [eax + 0x28]
jmp 0x58467f
xor esi, esi
test eax, eax
je 0x584688
mov edx, dword [eax + 0x24]
jmp 0x58468a
xor edx, edx
mov ecx, dword [esp + 0x70]
mov eax, dword [ecx + 4]
mov ecx, dword [ecx]
lea ebx, [esp + 0x38]
push ebx
add esi, eax
push esi
add edx, ecx
push edx
push eax
push ecx
call fcn.00574e2c
mov ecx, dword [esp + 0x90]
mov edx, dword [esp + 0x8c]
add esp, 0x14
mov eax, ebx
push eax
push ecx
push edx
mov ecx, edi
call fcn.0058048c
neg al
pop edi
pop esi
pop ebx
sbb eax, eax
neg eax
add esp, 0x5c
ret 0x14
cmp esi, edx
je 0x584732
test ecx, ecx
je 0x5846de
mov esi, dword [ecx + 0x28]
jmp 0x5846e0
xor esi, esi
test ecx, ecx
je 0x5846e9
mov edx, dword [ecx + 0x24]
jmp 0x5846eb
xor edx, edx
mov ecx, dword [esp + 0x7c]
mov eax, dword [ecx + 4]
mov ecx, dword [ecx]
lea edi, [esp + 0x38]
push edi
add esi, eax
push esi
add edx, ecx
push edx
push eax
push ecx
call fcn.00574e2c
mov ecx, dword [esp + 0x84]
mov edx, dword [esp + 0x80]
add esp, 0x14
mov eax, edi
push eax
push ecx
push edx
mov ecx, ebx
call fcn.0058048c
neg al
pop edi
pop esi
pop ebx
sbb eax, eax
neg eax
add esp, 0x5c
ret 0x14
test eax, eax
je 0x58473b
mov esi, dword [eax + 0x28]
jmp 0x58473d
xor esi, esi
test eax, eax
je 0x584746
mov edx, dword [eax + 0x24]
jmp 0x584748
xor edx, edx
push ebp
mov ebp, dword [esp + 0x74]
mov eax, dword [ebp + 4]
mov ecx, dword [ebp]
lea ebx, [esp + 0x5c]
push ebx
add esi, eax
push esi
add edx, ecx
push edx
push eax
push ecx
call fcn.00574e2c
mov eax, dword [edi + 4]
add esp, 0x14
test eax, eax
je 0x584774
mov esi, dword [eax + 0x28]
jmp 0x584776
xor esi, esi
test eax, eax
je 0x58477f
mov eax, dword [eax + 0x24]
jmp 0x584781
xor eax, eax
mov ebx, dword [esp + 0x80]
mov ecx, dword [ebx + 4]
mov edx, dword [ebx]
lea edi, [esp + 0x4c]
push edi
add esi, ecx
push esi
add eax, edx
push eax
push ecx
push edx
call fcn.00574e2c
lea ecx, [esp + 0x30]
push ecx
mov edx, edi
push edx
lea eax, [esp + 0x78]
push eax
call fcn.0057509c
mov eax, dword [esp + 0x3c]
add esp, 0x20
cmp eax, 0x7ffffff
je 0x584926
mov ecx, dword [esp + 0x78]
mov ecx, dword [ecx + 4]
mov eax, dword [ecx + 0x1c]
test eax, eax
je 0x584926
call fcn.006251ac
test eax, eax
je 0x584926
mov edx, dword [esp + 0x10]
mov ecx, dword [edx + 4]
test ecx, ecx
je 0x58491a
mov eax, dword [ecx + 0x1c]
test eax, eax
je 0x58491a
call fcn.006251ac
test eax, eax
je 0x58491a
mov eax, dword [esp + 0x70]
mov ecx, dword [esp + 0x24]
mov esi, dword [esp + 0x28]
mov edi, dword [esp + 0x20]
shl eax, 0x18
mov dword [esp + 0x14], eax
mov eax, dword [esp + 0x7c]
shl eax, 0x18
mov dword [esp + 0x18], eax
mov eax, dword [esp + 0x1c]
mov edx, eax
sub edx, dword [ebp]
sub esi, ecx
mov dword [esp + 0x2c], edx
mov edx, ecx
sub edx, dword [ebp + 4]
mov ebp, dword [ebx + 4]
mov dword [esp + 0x34], edx
mov edx, dword [ebx]
sub ecx, ebp
sub edi, eax
sub eax, edx
mov dword [esp + 0x44], ecx
lea ecx, [esp + 0x74]
mov dword [esp + 0x3c], eax
mov eax, dword [esp + 0x10]
mov ebp, dword [eax + 4]
push ecx
lea edx, [esp + 0x30]
push edx
push ebp
mov dword [esp + 0x1c], ebp
call fcn.0057c5ec
mov edx, dword [esp + 0x84]
mov ebx, eax
lea eax, [esp + 0x8c]
push eax
mov eax, dword [edx + 4]
lea ecx, [esp + 0x4c]
push ecx
push eax
call fcn.0057c5ec
mov ecx, dword [esp + 0x8c]
mov edx, dword [esp + 0x98]
sar ecx, 2
sar edx, 2
add esp, 0x18
test esi, esi
mov dword [esp + 0x74], ecx
mov dword [esp + 0x80], edx
mov dword [esp + 0x7c], 0
jle 0x584913
test edi, edi
mov dword [esp + 0x70], 0
jle 0x5848f1
mov ebp, ebx
mov ecx, eax
sub ebp, eax
mov edx, dword [esp + 0x14]
cmp dword [ecx + ebp], edx
jb 0x5848e1
mov edx, dword [esp + 0x18]
cmp dword [ecx], edx
jae 0x584932
mov edx, dword [esp + 0x70]
inc edx
add ecx, 4
cmp edx, edi
mov dword [esp + 0x70], edx
jl 0x5848d0
mov ecx, dword [esp + 0x74]
mov edx, dword [esp + 0x80]
lea ebx, [ebx + ecx*4]
mov ecx, dword [esp + 0x7c]
inc ecx
cmp ecx, esi
lea eax, [eax + edx*4]
mov dword [esp + 0x7c], ecx
jl 0x5848be
mov ebp, dword [esp + 0x10]
mov ecx, ebp
call fcn.006251cc
mov eax, dword [esp + 0x78]
mov ecx, dword [eax + 4]
call fcn.006251cc
pop ebp
pop edi
pop esi
xor al, al
pop ebx
add esp, 0x5c
ret 0x14
pop ebp
pop edi
pop esi
mov al, 1
pop ebx
add esp, 0x5c
ret 0x14