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

Disassembly:
mov ecx, dword fs:[0x14]
mov ecx, dword [ecx]
cmp esp, dword [ecx + 8]
jbe 0x586545
sub esp, 0x6c
mov edx, dword [esp + 0x70]
mov ebx, dword [edx]
mov ebp, dword [ebx + 8]
mov ebx, dword [ebx + 4]
lea esi, [ebp - 1]
test esi, esi
jl 0x586252
mov ebx, dword [ebx + ebp*4 - 4]
nop
cmp ebx, 0x10000
jb 0x586223
shr ebx, 0x10
mov eax, 0x10
jmp 0x586225
xor eax, eax
cmp ebx, 0x100
jb 0x586233
shr ebx, 8
add eax, 8
cmp ebx, 0x100
jae 0x586538
shl esi, 5
lea ecx, [0x649bcc]
movzx ebx, byte [ecx + ebx]
add eax, ebx
add eax, esi
jmp 0x58625a
lea ecx, [0x649bcc]
xor eax, eax
lea ebx, [eax + 7]
sar ebx, 0x1f
shr ebx, 0x1d
lea eax, [eax + ebx + 7]
sar eax, 3
mov ebx, dword [esp + 0x88]
cmp ebx, eax
jne 0x586502
mov byte [esp + 0x5c], 0
mov dword [esp + 0x60], 0
mov dword [esp + 0x64], 0
mov dword [esp + 0x68], 0
mov dword [esp], 0
mov dword [esp + 4], 0
mov dword [esp + 8], 0
mov eax, dword [esp + 0x84]
mov dword [esp + 0xc], eax
mov dword [esp + 0x10], ebx
mov eax, dword [esp + 0x8c]
mov dword [esp + 0x14], eax
call fcn.00508440
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0x1c]
mov edx, dword [esp + 0x20]
mov dword [esp + 0x60], eax
mov dword [esp + 0x64], ecx
mov dword [esp + 0x68], edx
mov byte [esp + 0x5c], 0
mov byte [esp + 0x4c], 0
mov dword [esp + 0x50], 0
mov dword [esp + 0x54], 0
mov dword [esp + 0x58], 0
lea eax, [esp + 0x4c]
mov dword [esp], eax
mov eax, dword [esp + 0x70]
mov dword [esp + 4], eax
lea ecx, [esp + 0x5c]
mov dword [esp + 8], ecx
call fcn.005870c0
mov eax, dword [esp + 0x70]
mov eax, dword [eax]
mov ecx, dword [esp + 0xc]
mov edx, dword [eax + 8]
mov eax, dword [eax + 4]
lea ebx, [edx - 1]
test ebx, ebx
jl 0x586380
mov edx, dword [eax + edx*4 - 4]
nop
cmp edx, 0x10000
jb 0x586350
shr edx, 0x10
mov eax, 0x10
jmp 0x586352
xor eax, eax
cmp edx, 0x100
jb 0x586360
shr edx, 8
add eax, 8
cmp edx, 0x100
jae 0x58652c
shl ebx, 5
lea ebp, [0x649bcc]
movzx edx, byte [ebp + edx]
add edx, eax
add edx, ebx
jmp 0x586388
lea ebp, [0x649bcc]
xor edx, edx
lea ebx, [edx + 6]
sar ebx, 0x1f
shr ebx, 0x1d
lea ebx, [edx + ebx + 6]
mov esi, dword [ecx + 8]
mov edi, dword [ecx + 4]
mov eax, edx
lea edx, [esi - 1]
test edx, edx
jl 0x5863e5
mov esi, dword [edi + esi*4 - 4]
nop
cmp esi, 0x10000
jb 0x5863bb
shr esi, 0x10
mov edi, 0x10
jmp 0x5863bd
xor edi, edi
cmp esi, 0x100
jb 0x5863cb
shr esi, 8
add edi, 8
cmp esi, 0x100
jae 0x586520
shl edx, 5
movzx ebp, byte [ebp + esi]
add ebp, edi
add edx, ebp
jmp 0x5863e7
xor edx, edx
sar ebx, 3
mov ebp, ebx
shl ebx, 3
cmp edx, ebx
jg 0x5864e4
mov dword [esp + 0x44], ecx
mov dword [esp + 0x40], eax
mov dword [esp + 0x3c], ebp
lea eax, [0x612b40]
mov dword [esp], eax
mov dword [esp + 4], ebp
mov dword [esp + 8], ebp
call fcn.004476a0
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 0x44]
mov dword [esp], ecx
mov dword [esp + 4], eax
mov eax, dword [esp + 0x3c]
mov dword [esp + 8], eax
mov dword [esp + 0xc], eax
call fcn.004ff6c0
mov eax, dword [esp + 0x10]
mov dword [esp + 0x48], eax
mov ecx, dword [esp + 0x14]
mov dword [esp + 0x34], ecx
mov edx, dword [esp + 0x18]
mov dword [esp + 0x38], edx
mov ebx, dword [esp + 0x90]
test ebx, ebx
je 0x586460
mov ebx, dword [ebx]
jmp 0x586462
xor ebx, ebx
mov dword [esp + 0x30], ebx
mov eax, dword [esp + 0x74]
mov dword [esp], eax
call fcn.004fa160
mov eax, dword [esp + 4]
mov ecx, dword [esp + 8]
mov edx, dword [esp + 0x78]
mov dword [esp], edx
mov edx, dword [esp + 0x7c]
mov dword [esp + 4], edx
mov edx, dword [esp + 0x80]
mov dword [esp + 8], edx
mov edx, dword [esp + 0x48]
mov dword [esp + 0xc], edx
mov edx, dword [esp + 0x34]
mov dword [esp + 0x10], edx
mov edx, dword [esp + 0x38]
mov dword [esp + 0x14], edx
mov edx, dword [esp + 0x40]
dec edx
mov dword [esp + 0x18], edx
mov edx, dword [esp + 0x30]
mov dword [esp + 0x1c], edx
mov dword [esp + 0x20], eax
mov dword [esp + 0x24], ecx
call fcn.00585810
mov eax, dword [esp + 0x28]
mov ecx, dword [esp + 0x2c]
mov dword [esp + 0x94], eax
mov dword [esp + 0x98], ecx
add esp, 0x6c
ret
mov eax, dword [0x7b9e40]
mov ecx, dword [0x7b9e44]
mov dword [esp + 0x94], eax
mov dword [esp + 0x98], ecx
add esp, 0x6c
ret
mov eax, dword [0x7b9e40]
mov ecx, dword [0x7b9e44]
mov dword [esp + 0x94], eax
mov dword [esp + 0x98], ecx
add esp, 0x6c
ret
mov eax, esi
mov ecx, 0x100
call fcn.0045e540
mov eax, edx
mov ecx, 0x100
call fcn.0045e540
mov eax, ebx
mov ecx, 0x100
call fcn.0045e540
nop
call fcn.0045d0a0
jmp fcn.005861e0