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

Disassembly:
mov ecx, dword fs:[0x14]
mov ecx, dword [ecx]
cmp esp, dword [ecx + 8]
jbe 0x5b8fd7
sub esp, 0x64
mov ecx, dword [esp + 0x74]
test ecx, ecx
je 0x5b8645
nop
nop
movzx edx, byte [0x7a1de0]
test dl, dl
je 0x5b85e3
mov edx, dword [esp + 0x74]
mov dword [0x7a1de4], edx
mov edx, dword [0x7c78f0]
test edx, edx
jne 0x5b85d2
mov eax, dword [esp + 0x78]
mov dword [0x7a1de8], eax
jmp 0x5b85e7
lea edi, [0x7a1de8]
mov eax, dword [esp + 0x78]
call fcn.00463730
jmp 0x5b85e7
mov eax, dword [esp + 0x78]
mov dword [esp + 0x4c], ecx
mov dword [esp + 0x50], eax
mov edx, dword [esp + 0x4c]
test edx, edx
je 0x5b8612
nop
movzx ebx, byte [edx + 0xf]
mov ebp, ebx
and ebx, 0x1f
xchg ebp, eax
test al, 0x20
xchg ebp, eax
jne 0x5b860e
or ebx, 0x80
mov ebp, eax
jmp 0x5b861a
mov ebp, eax
xor ebx, ebx
xor eax, eax
xor edx, edx
nop
mov esi, ebx
and ebx, 0x1f
cmp ebx, 0x16
jne 0x5b864f
test esi, 0x200
jne 0x5b864f
test esi, 0x80
je 0x5b8639
mov ebx, dword [eax]
jmp 0x5b863b
mov ebx, eax
test ebx, ebx
jne 0x5b864f
xor ecx, ecx
xor ebp, ebp
jmp 0x5b864f
mov ebp, dword [esp + 0x78]
xor esi, esi
xor edx, edx
xor eax, eax
test ecx, ecx
je 0x5b8e76
test esi, esi
je 0x5b8d28
mov dword [esp + 0x34], esi
mov ebx, dword [esp + 0x68]
mov edi, dword [ebx]
mov esi, dword [edi]
mov edi, dword [edi + 4]
test esi, esi
je 0x5b86ce
mov dword [esp], esi
mov dword [esp + 4], edi
mov dword [esp + 8], edx
mov dword [esp + 0xc], eax
mov eax, dword [esp + 0x34]
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0x7c]
mov dword [esp + 0x14], eax
mov ecx, dword [esp + 0x80]
mov dword [esp + 0x18], ecx
mov edx, dword [esp + 0x84]
mov dword [esp + 0x1c], edx
call fcn.005b7b80
mov eax, dword [esp + 0x28]
mov ecx, dword [esp + 0x28]
mov edx, dword [esp + 0x2c]
mov ebx, dword [esp + 0x20]
mov ebp, dword [esp + 0x24]
test eax, eax
jne 0x5b8c77
mov ecx, ebx
mov ebx, dword [esp + 0x68]
nop
mov eax, dword [esp + 0x84]
mov edx, eax
and eax, 0x1f
lea esi, [eax - 2]
nop
cmp esi, 4
ja 0x5b86eb
mov eax, 2
jmp 0x5b8707
lea esi, [eax - 7]
cmp esi, 4
ja 0x5b86fa
mov eax, 7
jmp 0x5b8707
lea esi, [eax - 0xd]
cmp esi, 1
ja 0x5b8707
mov eax, 0xd
mov dword [esp + 0x30], eax
cmp eax, 0x13
ja 0x5b8901
cmp eax, 7
ja 0x5b880f
cmp eax, 1
je 0x5b87c6
cmp eax, 2
je 0x5b877d
cmp eax, 7
jne 0x5b8a16
mov dword [esp], ebx
mov eax, dword [esp + 0x6c]
mov dword [esp + 4], eax
mov esi, dword [esp + 0x70]
mov dword [esp + 8], esi
mov dword [esp + 0xc], ecx
mov dword [esp + 0x10], ebp
mov ecx, dword [esp + 0x7c]
mov dword [esp + 0x14], ecx
mov ecx, dword [esp + 0x80]
mov dword [esp + 0x18], ecx
mov dword [esp + 0x1c], edx
call fcn.005baad0
mov eax, dword [esp + 0x20]
mov ecx, dword [esp + 0x24]
mov edx, 1
jmp 0x5b8b95
mov dword [esp], ebx
mov eax, dword [esp + 0x6c]
mov dword [esp + 4], eax
mov esi, dword [esp + 0x70]
mov dword [esp + 8], esi
mov dword [esp + 0xc], ecx
mov dword [esp + 0x10], ebp
mov ecx, dword [esp + 0x7c]
mov dword [esp + 0x14], ecx
mov ecx, dword [esp + 0x80]
mov dword [esp + 0x18], ecx
mov dword [esp + 0x1c], edx
call fcn.005ba0d0
mov eax, dword [esp + 0x20]
mov ecx, dword [esp + 0x24]
mov edx, 1
jmp 0x5b8b95
mov dword [esp], ebx
mov eax, dword [esp + 0x6c]
mov dword [esp + 4], eax
mov esi, dword [esp + 0x70]
mov dword [esp + 8], esi
mov dword [esp + 0xc], ecx
mov dword [esp + 0x10], ebp
mov ecx, dword [esp + 0x7c]
mov dword [esp + 0x14], ecx
mov ecx, dword [esp + 0x80]
mov dword [esp + 0x18], ecx
mov dword [esp + 0x1c], edx
call fcn.005bb720
mov eax, dword [esp + 0x20]
mov ecx, dword [esp + 0x24]
mov edx, 1
jmp 0x5b8b95
cmp eax, 0xd
je 0x5b88b8
cmp eax, 0x11
je 0x5b886f
cmp eax, 0x13
jne 0x5b8a16
mov dword [esp], ebx
mov eax, dword [esp + 0x6c]
mov dword [esp + 4], eax
mov esi, dword [esp + 0x70]
mov dword [esp + 8], esi
mov dword [esp + 0xc], ecx
mov dword [esp + 0x10], ebp
mov ecx, dword [esp + 0x7c]
mov dword [esp + 0x14], ecx
mov ecx, dword [esp + 0x80]
mov dword [esp + 0x18], ecx
mov dword [esp + 0x1c], edx
call fcn.005bf0b0
mov eax, dword [esp + 0x20]
mov ecx, dword [esp + 0x24]
mov edx, 1
jmp 0x5b8b95
mov dword [esp], ebx
mov eax, dword [esp + 0x6c]
mov dword [esp + 4], eax
mov esi, dword [esp + 0x70]
mov dword [esp + 8], esi
mov dword [esp + 0xc], ecx
mov dword [esp + 0x10], ebp
mov ecx, dword [esp + 0x7c]
mov dword [esp + 0x14], ecx
mov ecx, dword [esp + 0x80]
mov dword [esp + 0x18], ecx
mov dword [esp + 0x1c], edx
call fcn.005c0370
mov eax, dword [esp + 0x20]
mov ecx, dword [esp + 0x24]
mov edx, 1
jmp 0x5b8b95
mov dword [esp], ebx
mov eax, dword [esp + 0x6c]
mov dword [esp + 4], eax
mov esi, dword [esp + 0x70]
mov dword [esp + 8], esi
mov dword [esp + 0xc], ecx
mov dword [esp + 0x10], ebp
mov ecx, dword [esp + 0x7c]
mov dword [esp + 0x14], ecx
mov ecx, dword [esp + 0x80]
mov dword [esp + 0x18], ecx
mov dword [esp + 0x1c], edx
call fcn.005bc010
mov eax, dword [esp + 0x20]
mov ecx, dword [esp + 0x24]
mov edx, 1
jmp 0x5b8b95
cmp eax, 0x16
ja 0x5b89fb
cmp eax, 0x14
je 0x5b89b2
cmp eax, 0x15
jne 0x5b8961
mov dword [esp], ebx
mov eax, dword [esp + 0x6c]
mov dword [esp + 4], eax
mov esi, dword [esp + 0x70]
mov dword [esp + 8], esi
mov dword [esp + 0xc], ecx
mov dword [esp + 0x10], ebp
mov ecx, dword [esp + 0x7c]
mov dword [esp + 0x14], ecx
mov ecx, dword [esp + 0x80]
mov dword [esp + 0x18], ecx
mov dword [esp + 0x1c], edx
call fcn.005bc9e0
mov eax, dword [esp + 0x20]
mov ecx, dword [esp + 0x24]
mov edx, 1
jmp 0x5b8b95
mov dword [esp], ebx
mov eax, dword [esp + 0x6c]
mov dword [esp + 4], eax
mov esi, dword [esp + 0x70]
mov dword [esp + 8], esi
mov dword [esp + 0xc], ecx
mov dword [esp + 0x10], ebp
mov ecx, dword [esp + 0x7c]
mov dword [esp + 0x14], ecx
mov ecx, dword [esp + 0x80]
mov dword [esp + 0x18], ecx
mov dword [esp + 0x1c], edx
call fcn.005beb00
movzx eax, byte [esp + 0x20]
mov ecx, dword [esp + 0x24]
mov edx, dword [esp + 0x28]
mov ebx, edx
mov edx, eax
mov eax, ecx
mov ecx, ebx
jmp 0x5b8b95
mov dword [esp], ebx
mov eax, dword [esp + 0x6c]
mov dword [esp + 4], eax
mov esi, dword [esp + 0x70]
mov dword [esp + 8], esi
mov dword [esp + 0xc], ecx
mov dword [esp + 0x10], ebp
mov ecx, dword [esp + 0x7c]
mov dword [esp + 0x14], ecx
mov ecx, dword [esp + 0x80]
mov dword [esp + 0x18], ecx
mov dword [esp + 0x1c], edx
call fcn.005b8ff0
mov eax, dword [esp + 0x20]
mov ecx, dword [esp + 0x24]
mov edx, 1
jmp 0x5b8b95
cmp eax, 0x17
je 0x5b8b51
cmp eax, 0x18
je 0x5b8b0b
cmp eax, 0x19
je 0x5b8ac2
mov dword [esp + 0x54], 0
mov dword [esp + 0x58], 0
mov dword [esp + 0x5c], 0
mov dword [esp + 0x60], 0
mov eax, dword [esp + 0x6c]
mov dword [esp], eax
mov eax, dword [esp + 0x70]
mov dword [esp + 4], eax
call fcn.00409680
mov eax, dword [esp + 8]
lea ecx, [0x5e1fa0]
mov dword [esp + 0x54], ecx
mov dword [esp + 0x58], eax
mov eax, dword [esp + 0x30]
mov dword [esp], eax
call fcn.00409570
mov eax, dword [esp + 4]
lea ecx, [0x5e4380]
mov dword [esp + 0x5c], ecx
mov dword [esp + 0x60], eax
lea eax, [0x612e2a]
mov dword [esp], eax
mov dword [esp + 4], 0x18
lea eax, [esp + 0x54]
mov dword [esp + 8], eax
mov dword [esp + 0xc], 2
mov dword [esp + 0x10], 2
call fcn.004c4b50
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x18]
mov dword [esp + 0x88], eax
mov dword [esp + 0x8c], ecx
add esp, 0x64
ret
mov dword [esp], ebx
mov eax, dword [esp + 0x6c]
mov dword [esp + 4], eax
mov esi, dword [esp + 0x70]
mov dword [esp + 8], esi
mov dword [esp + 0xc], ecx
mov dword [esp + 0x10], ebp
mov ecx, dword [esp + 0x7c]
mov dword [esp + 0x14], ecx
mov ecx, dword [esp + 0x80]
mov dword [esp + 0x18], ecx
mov dword [esp + 0x1c], edx
call fcn.005c0f20
mov eax, dword [esp + 0x20]
mov ecx, dword [esp + 0x24]
mov edx, 1
jmp 0x5b8b95
mov dword [esp], ebx
mov eax, dword [esp + 0x6c]
mov dword [esp + 4], eax
mov esi, dword [esp + 0x70]
mov dword [esp + 8], esi
mov dword [esp + 0xc], ecx
mov dword [esp + 0x10], ebp
mov ecx, dword [esp + 0x7c]
mov dword [esp + 0x14], ecx
mov ecx, dword [esp + 0x80]
mov dword [esp + 0x18], ecx
mov dword [esp + 0x1c], edx
call fcn.005b96a0
mov eax, dword [esp + 0x20]
mov ecx, dword [esp + 0x24]
mov edx, 1
jmp 0x5b8b95
mov dword [esp], ebx
mov eax, dword [esp + 0x6c]
mov dword [esp + 4], eax
mov esi, dword [esp + 0x70]
mov dword [esp + 8], esi
mov dword [esp + 0xc], ecx
mov dword [esp + 0x10], ebp
mov ecx, dword [esp + 0x7c]
mov dword [esp + 0x14], ecx
mov ecx, dword [esp + 0x80]
mov dword [esp + 0x18], ecx
mov dword [esp + 0x1c], edx
call fcn.005bf4a0
mov eax, dword [esp + 0x20]
mov ecx, dword [esp + 0x24]
mov edx, 1
test dl, dl
je 0x5b8c63
mov edx, dword [esp + 0x68]
mov edx, dword [edx]
mov edx, dword [edx + 0x10]
test edx, edx
je 0x5b8c63
mov ebx, dword [esp + 0x70]
test ebx, ebx
je 0x5b8c63
mov ebp, dword [edx + 4]
inc ebp
mov esi, dword [edx]
mov edi, ecx
mov ecx, dword [edx + 8]
cmp ecx, ebp
jae 0x5b8c2f
mov dword [esp + 0x48], edi
mov dword [esp + 0x38], eax
mov dword [esp + 0x44], edx
mov dword [esp], esi
mov dword [esp + 4], ebp
mov dword [esp + 8], ecx
mov dword [esp + 0xc], 1
lea eax, [0x5e1fa0]
mov dword [esp + 0x10], eax
call fcn.0044a1f0
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x18]
mov edx, dword [esp + 0x1c]
mov edi, dword [esp + 0x44]
mov dword [edi + 8], edx
mov edx, dword [0x7c78f0]
test edx, edx
jne 0x5b8c18
mov dword [edi], eax
jmp 0x5b8c1d
call fcn.00463730
mov edx, edi
mov ebx, dword [esp + 0x70]
mov edi, dword [esp + 0x48]
mov ebp, ecx
mov esi, eax
mov eax, dword [esp + 0x38]
mov dword [edx + 4], ebp
lea ecx, [esi + ebp*8 - 4]
mov dword [ecx], ebx
lea ecx, [esi + ebp*8 - 8]
mov edx, dword [0x7c78f0]
test edx, edx
jne 0x5b8c4e
mov edx, dword [esp + 0x6c]
mov dword [ecx], edx
jmp 0x5b8c65
mov edx, edi
mov edi, ecx
mov ebx, eax
mov eax, dword [esp + 0x6c]
call fcn.00463730
mov eax, ebx
mov edi, edx
jmp 0x5b8c65
mov edi, ecx
mov dword [esp + 0x88], eax
mov dword [esp + 0x8c], edi
add esp, 0x64
ret
mov dword [esp + 0x3c], edx
mov dword [esp + 0x40], ecx
mov dword [esp + 0x54], 0
mov dword [esp + 0x58], 0
mov dword [esp + 0x5c], 0
mov dword [esp + 0x60], 0
mov eax, dword [esp + 0x6c]
mov dword [esp], eax
mov eax, dword [esp + 0x70]
mov dword [esp + 4], eax
call fcn.00409680
mov eax, dword [esp + 8]
lea ecx, [0x5e1fa0]
mov dword [esp + 0x54], ecx
mov dword [esp + 0x58], eax
mov eax, dword [esp + 0x40]
test eax, eax
je 0x5b8cd2
mov ecx, dword [eax + 4]
jmp 0x5b8cd4
mov ecx, eax
mov dword [esp + 0x5c], ecx
mov eax, dword [esp + 0x3c]
mov dword [esp + 0x60], eax
lea eax, [0x61290b]
mov dword [esp], eax
mov dword [esp + 4], 0x17
lea eax, [esp + 0x54]
mov dword [esp + 8], eax
mov dword [esp + 0xc], 2
mov dword [esp + 0x10], 2
call fcn.004c4b50
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x18]
mov dword [esp + 0x88], eax
mov dword [esp + 0x8c], ecx
add esp, 0x64
ret
mov eax, dword [esp + 0x84]
test eax, eax
je 0x5b8d46
test eax, 0x200
jne 0x5b8d46
lea ecx, [0x663100]
mov edx, dword [esp + 0x7c]
jmp 0x5b8d6d
mov ecx, dword [esp + 0x7c]
mov dword [esp], ecx
mov edx, dword [esp + 0x80]
mov dword [esp + 4], edx
mov dword [esp + 8], eax
call fcn.004be9f0
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 0x10]
mov edx, ecx
mov ecx, eax
mov dword [esp], ecx
mov dword [esp + 4], edx
call fcn.004bf750
mov eax, dword [esp + 8]
mov ecx, dword [esp + 0xc]
mov edx, dword [esp + 0x10]
mov ebx, dword [esp + 0x7c]
mov dword [esp], ebx
mov ebx, dword [esp + 0x80]
mov dword [esp + 4], ebx
mov ebx, dword [esp + 0x84]
mov dword [esp + 8], ebx
mov dword [esp + 0xc], eax
mov dword [esp + 0x10], ecx
mov dword [esp + 0x14], edx
call fcn.004bd9d0
mov eax, dword [esp + 0x68]
mov eax, dword [eax]
mov eax, dword [eax + 0x10]
test eax, eax
je 0x5b8e5c
mov ecx, dword [esp + 0x70]
test ecx, ecx
je 0x5b8e5c
mov edx, dword [eax + 4]
inc edx
mov ebx, dword [eax]
mov ebp, dword [eax + 8]
cmp ebp, edx
jae 0x5b8e33
mov dword [esp + 0x44], eax
mov dword [esp], ebx
mov dword [esp + 4], edx
mov dword [esp + 8], ebp
mov dword [esp + 0xc], 1
lea eax, [0x5e1fa0]
mov dword [esp + 0x10], eax
call fcn.0044a1f0
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x18]
mov edx, dword [esp + 0x1c]
mov edi, dword [esp + 0x44]
mov dword [edi + 8], edx
mov edx, dword [0x7c78f0]
test edx, edx
jne 0x5b8e24
mov dword [edi], eax
jmp 0x5b8e29
call fcn.00463730
mov edx, ecx
mov ebx, eax
mov eax, edi
mov ecx, dword [esp + 0x70]
mov dword [eax + 4], edx
lea ebp, [ebx + edx*8 - 4]
mov dword [ebp], ecx
lea edi, [ebx + edx*8 - 8]
mov ecx, dword [0x7c78f0]
test ecx, ecx
jne 0x5b8e53
mov eax, dword [esp + 0x6c]
mov dword [edi], eax
jmp 0x5b8e5c
mov eax, dword [esp + 0x6c]
call fcn.00463730
mov dword [esp + 0x88], 0
mov dword [esp + 0x8c], 0
add esp, 0x64
ret
mov eax, dword [esp + 0x68]
mov ecx, dword [eax]
movzx ecx, byte [ecx + 0xa]
test cl, cl
je 0x5b8fbd
mov ecx, dword [esp + 0x84]
test ecx, ecx
je 0x5b8ea7
test ecx, 0x200
jne 0x5b8ea7
lea edx, [0x663100]
mov ebx, dword [esp + 0x7c]
jmp 0x5b8ece
mov eax, dword [esp + 0x7c]
mov dword [esp], eax
mov edx, dword [esp + 0x80]
mov dword [esp + 4], edx
mov dword [esp + 8], ecx
call fcn.004be9f0
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 0x10]
mov edx, eax
mov ebx, ecx
mov dword [esp], edx
mov dword [esp + 4], ebx
call fcn.004bf750
mov eax, dword [esp + 8]
mov ecx, dword [esp + 0xc]
mov edx, dword [esp + 0x10]
mov ebx, dword [esp + 0x7c]
mov dword [esp], ebx
mov ebx, dword [esp + 0x80]
mov dword [esp + 4], ebx
mov ebx, dword [esp + 0x84]
mov dword [esp + 8], ebx
mov dword [esp + 0xc], eax
mov dword [esp + 0x10], ecx
mov dword [esp + 0x14], edx
call fcn.004bd9d0
mov eax, dword [esp + 0x68]
mov eax, dword [eax]
mov eax, dword [eax + 0x10]
test eax, eax
je 0x5b8fbd
mov ecx, dword [esp + 0x70]
test ecx, ecx
je 0x5b8fbd
mov edx, dword [eax + 4]
inc edx
mov ebx, dword [eax]
mov ebp, dword [eax + 8]
cmp ebp, edx
jae 0x5b8f94
mov dword [esp + 0x44], eax
mov dword [esp], ebx
mov dword [esp + 4], edx
mov dword [esp + 8], ebp
mov dword [esp + 0xc], 1
lea eax, [0x5e1fa0]
mov dword [esp + 0x10], eax
call fcn.0044a1f0
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x18]
mov edx, dword [esp + 0x1c]
mov edi, dword [esp + 0x44]
mov dword [edi + 8], edx
mov edx, dword [0x7c78f0]
test edx, edx
jne 0x5b8f85
mov dword [edi], eax
jmp 0x5b8f8a
call fcn.00463730
mov edx, ecx
mov ebx, eax
mov eax, edi
mov ecx, dword [esp + 0x70]
mov dword [eax + 4], edx
lea ebp, [ebx + edx*8 - 4]
mov dword [ebp], ecx
lea edi, [ebx + edx*8 - 8]
mov ecx, dword [0x7c78f0]
test ecx, ecx
jne 0x5b8fb4
mov eax, dword [esp + 0x6c]
mov dword [edi], eax
jmp 0x5b8fbd
mov eax, dword [esp + 0x6c]
call fcn.00463730
mov dword [esp + 0x88], 0
mov dword [esp + 0x8c], 0
add esp, 0x64
ret
call fcn.00462320
jmp fcn.005b8580