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

Disassembly:
mov ecx, dword fs:[0x14]
mov ecx, dword [ecx]
cmp esp, dword [ecx + 8]
jbe 0x58630f
sub esp, 0x74
mov edx, dword [esp + 0x78]
mov eax, dword [edx + 0xc]
test eax, eax
je 0x5860ad
mov ebx, dword [edx]
mov ecx, dword [edx + 4]
cmp ecx, eax
jbe 0x586309
lea ebp, [eax + eax*2]
mov eax, edx
lea edx, [ebx + ebp*8]
cmp byte [edx], 3
jne 0x5860a1
lea edx, [ebx + ebp*8 + 8]
mov edx, dword [edx]
test dl, 4
je 0x5860a1
mov dword [esp + 0x14], ecx
xor edx, edx
jmp 0x5860c3
mov dword [esp + 0x7c], 0
add esp, 0x74
ret
mov dword [esp + 0x7c], 0
add esp, 0x74
ret
lea ebx, [edi + 0x18]
lea edx, [esi + 1]
mov ecx, dword [esp + 0x14]
cmp edx, ecx
jge 0x58615e
lea edi, [esp + 0x38]
mov esi, ebx
call fcn.00464aa4
mov ecx, dword [eax + 4]
mov ebp, dword [eax]
mov esi, edx
mov edx, dword [esp + 0x3c]
cmp edx, ecx
jae 0x586302
lea edx, [edx + edx*2]
lea edx, [ebp + edx*8]
movzx edx, byte [edx]
mov edi, ebx
movzx ebx, byte [esp + 0x38]
cmp bl, 1
ja 0x58611e
cmp dl, 4
je 0x58613a
mov edx, dword [esp + 0x40]
cmp edx, ecx
jae 0x5862fb
lea ecx, [edx + edx*2]
lea ecx, [ebp + ecx*8]
cmp byte [ecx], 4
jne 0x5860b9
jmp 0x58613a
cmp bl, 3
jne 0x586133
cmp dl, 4
jne 0x5860b9
mov ecx, dword [esp + 0x40]
test cl, 8
jne 0x5860b9
jmp 0x586146
cmp dl, 4
jne 0x5860b9
jmp 0x586152
mov dword [esp + 0x7c], 0
add esp, 0x74
ret
mov dword [esp + 0x7c], 0
add esp, 0x74
ret
mov dword [esp + 0x7c], 0
add esp, 0x74
ret
mov dword [esp], eax
call fcn.005842f0
mov eax, dword [esp + 4]
mov dword [esp], eax
call fcn.00584700
mov eax, dword [esp + 4]
test eax, eax
je 0x586190
mov dword [esp + 0x18], eax
nop
mov ecx, dword [esp + 0x78]
mov edx, dword [ecx]
mov ecx, dword [ecx + 4]
mov dword [esp + 0x14], ecx
xor ebx, ebx
jmp 0x5861a2
mov dword [esp + 0x7c], eax
add esp, 0x74
ret
add edx, 0x18
lea ebx, [esi + 1]
mov ecx, dword [esp + 0x14]
cmp ebx, ecx
jge 0x586190
lea edi, [esp + 0x20]
mov esi, edx
call fcn.00464aa4
movzx ecx, byte [esp + 0x20]
cmp cl, 6
ja 0x586207
cmp cl, 1
jbe 0x58620c
mov ebp, dword [eax]
mov ecx, dword [eax + 4]
cmp ebx, ecx
jae 0x5862f4
lea ecx, [ebx + ebx*8]
mov dword [ebp + ecx*4 + 0x1c], 0
mov dword [ebp + ecx*4 + 0x20], 0
lea edi, [ebp + ecx*4 + 0x18]
mov esi, ebx
mov ebx, dword [0x7f8db0]
test ebx, ebx
jne 0x5861fa
mov dword [ebp + ecx*4 + 0x18], 0
jmp 0x586198
mov ecx, eax
xor eax, eax
call fcn.00464380
mov eax, ecx
jmp 0x586198
cmp cl, 7
jne 0x586210
mov esi, ebx
jmp 0x586198
cmp cl, 0xa
ja 0x5862df
mov ebp, dword [eax]
mov ecx, dword [eax + 4]
cmp ebx, ecx
jae 0x5862ed
lea ecx, [ebx + ebx*8]
mov dword [ebp + ecx*4 + 0x1c], 0
mov dword [ebp + ecx*4 + 0x20], 0
lea edi, [ebp + ecx*4 + 0x18]
mov esi, edx
mov edx, dword [0x7f8db0]
test edx, edx
jne 0x586253
mov dword [ebp + ecx*4 + 0x18], 0
jmp 0x58625e
mov edx, eax
xor eax, eax
call fcn.00464380
mov eax, edx
mov dword [esp + 0x10], ecx
lea edi, [esp + 0x50]
mov edx, eax
xor eax, eax
call fcn.004645c7
lea edi, [esp + 0x50]
mov eax, esi
lea esi, [esp + 0x20]
call fcn.00464aa4
mov ecx, dword [edx + 4]
mov ebp, dword [edx]
cmp ebx, ecx
jae 0x5862e6
mov ecx, dword [esp + 0x10]
lea edi, [ebp + ecx*4]
mov ecx, dword [0x7f8db0]
test ecx, ecx
jne 0x5862a4
lea esi, [esp + 0x50]
call fcn.00464a86
jmp 0x5862d2
mov dword [esp + 0xc], ebx
mov dword [esp + 0x1c], eax
lea eax, [0x5fdae0]
mov dword [esp], eax
mov dword [esp + 4], edi
lea eax, [esp + 0x50]
mov dword [esp + 8], eax
call fcn.004116d0
mov eax, dword [esp + 0x1c]
mov edx, dword [esp + 0x18]
mov ebx, dword [esp + 0xc]
mov edx, eax
mov esi, ebx
mov eax, dword [esp + 0x18]
jmp 0x586198
mov esi, ebx
jmp 0x586198
mov eax, ebx
call fcn.00464400
mov eax, ebx
call fcn.00464400
mov eax, ebx
call fcn.00464400
mov eax, edx
call fcn.00464410
mov eax, edx
call fcn.00464410
call fcn.00464400
nop
call fcn.00462f70
jmp fcn.00586050