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

Disassembly:
mov ecx, dword fs:[0x14]
mov ecx, dword [ecx]
lea eax, [esp - 0x44]
cmp eax, dword [ecx + 8]
jbe 0x5fbf10
sub esp, 0xc4
mov eax, dword [esp + 0xe0]
mov ecx, dword [eax + 8]
mov dword [esp + 0x7c], ecx
cmp ecx, 0x20
sbb edx, edx
mov dword [esp + 0xa4], edx
mov ebx, dword [esp + 0xf8]
mov ebp, dword [ebx]
mov dword [esp + 0x54], ebp
mov esi, dword [esp + 0xe4]
mov edi, dword [esi + 0x30]
mov ebx, dword [esp + 0xe8]
mov dword [esp], ebx
call edi
mov eax, dword [esp + 0xc8]
mov ecx, dword [esp + 0xcc]
lea edx, [ecx + eax]
mov dword [esp + 0x78], edx
mov ebx, ecx
mov ecx, dword [esp + 0x7c]
mov ebp, 1
shl ebp, cl
mov ecx, dword [esp + 0xa4]
and ebp, ecx
mov dword [esp + 0xa4], ebp
cmp dword [esp + 4], eax
jbe 0x5fb619
mov eax, ebx
jmp 0x5fb64e
mov eax, dword [esp + 0xe4]
mov ecx, dword [eax + 0x30]
mov edx, dword [esp + 0xe8]
mov dword [esp], edx
call ecx
mov eax, dword [esp + 4]
mov ecx, dword [esp + 0x78]
mov edx, ecx
sub ecx, eax
lea eax, [ecx + 1]
mov ebp, dword [esp + 0xa4]
mov ebx, eax
mov eax, dword [esp + 0xcc]
mov dword [esp + 0x70], ebx
mov ecx, dword [esp + 0xe0]
cmp dword [ecx + 4], 9
jge 0x5fb666
mov esi, 0x40
jmp 0x5fb66b
mov esi, 0x200
mov dword [esp + 0x44], esi
mov eax, dword [esp + 0xe4]
mov ecx, dword [eax + 0x24]
mov edx, dword [esp + 0xe8]
mov dword [esp], edx
mov ebx, dword [esp + 0xec]
mov dword [esp + 4], ebx
mov ebp, dword [esp + 0xf0]
mov dword [esp + 8], ebp
mov edi, dword [esp + 0xf4]
mov dword [esp + 0xc], edi
call ecx
lea eax, [0x8db9c0]
mov dword [esp], eax
call fcn.0045c710
mov eax, dword [esp + 0xcc]
mov ecx, dword [esp + 0x44]
lea edx, [ecx + eax]
mov ebx, dword [esp + 8]
lea ebp, [0x728820]
cmp dword [esp + 4], ebp
je 0x5fb6d4
xor ebx, ebx
mov dword [esp + 0x4c], edx
test ebx, ebx
jne 0x5fb6ee
lea eax, [0x74ca80]
mov dword [esp], eax
call fcn.0040b440
mov ebx, dword [esp + 4]
mov dword [esp + 0xbc], ebx
lea eax, [0x8db9c0]
mov dword [esp], eax
call fcn.0045c710
mov eax, dword [esp + 8]
lea ecx, [0x728820]
cmp dword [esp + 4], ecx
je 0x5fb715
xor eax, eax
test eax, eax
jne 0x5fb731
lea eax, [0x74ca80]
mov dword [esp], eax
call fcn.0040b440
mov eax, dword [esp + 4]
lea ecx, [0x728820]
mov dword [esp + 0xb8], eax
mov ebx, dword [esp + 0xa4]
add ebx, 0xfffffff0
mov dword [esp + 0x48], ebx
mov edx, dword [esp + 0xcc]
mov ebp, dword [esp + 0x54]
mov esi, dword [esp + 0x4c]
jmp 0x5fb75d
mov ebp, edx
mov esi, ebx
mov edx, ecx
mov dword [esp + 0x6c], edx
mov dword [esp + 0x54], ebp
mov dword [esp + 0x4c], esi
mov eax, dword [esp + 0xe4]
mov ecx, dword [eax + 0x18]
mov ebx, dword [esp + 0xe8]
mov dword [esp], ebx
call ecx
mov eax, dword [esp + 4]
mov ecx, dword [esp + 0x6c]
add eax, ecx
mov edx, dword [esp + 0x78]
cmp eax, edx
jae 0x5fbbdd
sub edx, ecx
mov ebx, dword [esp + 0x48]
cmp ecx, ebx
jae 0x5fb7a3
mov ebp, ecx
jmp 0x5fb7a7
mov ebp, ecx
mov ecx, ebx
mov dword [esp + 0x5c], edx
mov eax, dword [esp + 0xb8]
mov dword [eax], 0
mov dword [eax + 0xc], 0
mov dword [eax + 4], 0
mov dword [eax + 8], 0x7e4
mov ebx, dword [esp + 0xe4]
mov esi, dword [ebx + 0x14]
mov dword [esp + 0xa0], esi
mov edi, dword [esp + 0xe0]
mov ebx, dword [edi + 0x38]
mov esi, dword [esp + 0xe8]
mov dword [esp], esi
add edi, 0x3c
mov dword [esp + 0xc0], edi
mov dword [esp + 4], edi
mov edi, dword [esp + 0xd0]
mov dword [esp + 8], edi
mov edi, dword [esp + 0xd4]
mov dword [esp + 0xc], edi
mov edi, dword [esp + 0xd8]
mov dword [esp + 0x10], edi
mov edi, dword [esp + 0xdc]
mov dword [esp + 0x14], edi
mov edi, dword [esp + 0xec]
mov dword [esp + 0x18], edi
mov edi, dword [esp + 0xf0]
mov dword [esp + 0x1c], edi
mov edi, dword [esp + 0xf4]
mov dword [esp + 0x20], edi
mov dword [esp + 0x24], ebp
mov dword [esp + 0x28], edx
mov dword [esp + 0x2c], ecx
mov dword [esp + 0x30], 0
mov dword [esp + 0x34], ebx
mov dword [esp + 0x38], eax
mov ecx, dword [esp + 0xa0]
call ecx
mov eax, dword [esp + 0xb8]
cmp dword [eax + 8], 0x7e4
ja 0x5fb95c
mov ecx, dword [esp + 0x54]
inc ecx
mov edx, dword [esp + 0x6c]
lea ebx, [edx + 1]
mov ebp, dword [esp + 0x4c]
cmp ebp, ebx
jae 0x5fbe8c
mov dword [esp + 0x9c], ecx
mov dword [esp + 0x98], ebx
mov esi, dword [esp + 0x44]
lea edi, [ebp + esi*4]
cmp edi, ebx
jae 0x5fb90a
mov eax, dword [esp + 0xe4]
mov ecx, dword [eax + 0x30]
mov edx, dword [esp + 0xe8]
mov dword [esp], edx
call ecx
nop
mov eax, dword [esp + 4]
dec eax
cmp eax, 4
ja 0x5fb8de
mov eax, 4
mov ecx, dword [esp + 0x6c]
add ecx, 0x11
mov edx, dword [esp + 0x78]
mov ebx, edx
sub edx, eax
cmp edx, ecx
ja 0x5fb8f3
mov ecx, edx
mov dword [esp + 0x40], ecx
mov eax, dword [esp + 0x98]
mov edx, dword [esp + 0x9c]
jmp 0x5fbf07
mov eax, dword [esp + 0xe4]
mov ecx, dword [eax + 0x30]
mov edx, dword [esp + 0xe8]
mov dword [esp], edx
call ecx
nop
mov eax, dword [esp + 4]
dec eax
cmp eax, 2
ja 0x5fb930
mov eax, 2
mov ecx, dword [esp + 0x6c]
add ecx, 9
mov edx, dword [esp + 0x78]
mov ebx, edx
sub edx, eax
cmp edx, ecx
ja 0x5fb945
mov ecx, edx
mov dword [esp + 0x3c], ecx
mov eax, dword [esp + 0x98]
mov edx, dword [esp + 0x9c]
jmp 0x5fbe79
mov ecx, dword [esp + 0x5c]
dec ecx
mov edx, dword [esp + 0x6c]
xor ebx, ebx
mov ebp, dword [esp + 0x54]
jmp 0x5fbc4d
mov ecx, dword [esp + 0x68]
jmp 0x5fb981
mov ecx, dword [esp + 0xa4]
mov ebp, dword [esp + 0x54]
mov dword [esp + 0x54], ebp
mov dword [esp + 0x64], ecx
mov ebx, dword [edx]
lea ebx, [ecx + ebx*2]
mov esi, dword [esp + 0x44]
add ebx, esi
mov dword [esp + 0x4c], ebx
nop
mov edi, dword [esp + 0x48]
cmp ecx, edi
jb 0x5fb9a3
mov ecx, edi
mov dword [esp + 0x74], ecx
mov eax, dword [edx + 4]
mov dword [esp], eax
mov dword [esp + 4], ecx
mov eax, dword [esp + 0xec]
mov dword [esp + 8], eax
mov ebx, dword [esp + 0xf0]
mov dword [esp + 0xc], ebx
mov ebp, dword [esp + 0xf4]
mov dword [esp + 0x10], ebp
call fcn.005fb440
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x74]
mov edx, dword [esp + 0xb8]
cmp dword [edx + 4], ecx
ja 0x5fba64
test eax, eax
jbe 0x5fba64
mov ecx, dword [esp + 0xf0]
cmp ecx, 2
jbe 0x5fbdff
mov ebx, dword [esp + 0xec]
mov ebp, dword [ebx + 8]
cmp ecx, 3
jbe 0x5fbdf3
mov dword [esp + 0x50], eax
mov dword [ebx + 0xc], ebp
mov eax, dword [ebx + 4]
mov dword [ebx + 8], eax
mov eax, dword [ebx]
mov dword [ebx + 4], eax
mov eax, dword [edx + 4]
mov dword [ebx], eax
mov eax, dword [esp + 0xe4]
mov ebp, dword [eax + 0x24]
mov esi, dword [esp + 0xe8]
mov dword [esp], esi
mov edi, dword [esp + 0xec]
mov dword [esp + 4], edi
mov dword [esp + 8], ecx
mov ebx, dword [esp + 0xf4]
mov dword [esp + 0xc], ebx
call ebp
mov eax, dword [esp + 0x50]
mov edx, dword [esp + 0xb8]
mov ecx, dword [esp + 0xe0]
lea ebx, [ecx + 0x2c]
mov ebp, dword [edx]
mov esi, dword [edx + 0xc]
mov dword [esp], ebx
mov ebx, dword [esp + 0x54]
mov dword [esp + 4], ebx
mov dword [esp + 8], ebp
mov dword [esp + 0xc], esi
mov dword [esp + 0x10], eax
call fcn.00612db0
lea edi, [esp + 0xa8]
lea esi, [esp + 0x14]
call fcn.00457248
mov eax, dword [esp + 0xfc]
mov ecx, dword [eax + 4]
inc ecx
mov edx, dword [eax]
mov ebx, dword [eax + 8]
cmp ebx, ecx
jae 0x5fbb02
mov dword [esp], edx
mov dword [esp + 4], ecx
mov dword [esp + 8], ebx
mov dword [esp + 0xc], 1
lea eax, [0x750240]
mov dword [esp + 0x10], eax
call fcn.00442820
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x18]
mov edx, dword [esp + 0x1c]
mov edi, dword [esp + 0xfc]
mov dword [edi + 8], edx
mov edx, dword [0x901e80]
test edx, edx
jne 0x5fbaf9
mov dword [edi], eax
jmp 0x5fbafe
call fcn.00456ac0
mov edx, eax
mov eax, edi
mov dword [eax + 4], ecx
dec ecx
shl ecx, 4
lea edi, [edx + ecx]
lea esi, [esp + 0xa8]
call fcn.00457248
mov ecx, dword [esp + 0x54]
mov edx, dword [esp + 0x100]
add dword [edx], ecx
mov ecx, dword [esp + 0xb8]
mov ebx, dword [ecx]
mov ebp, dword [esp + 0x64]
mov esi, edx
lea edx, [ebx + ebp]
mov dword [esp + 0x60], edx
mov edi, eax
mov eax, dword [esp + 0x70]
cmp eax, edx
ja 0x5fbb47
mov edx, eax
lea eax, [ebp + 2]
mov esi, dword [ecx + 4]
shr ebx, 2
cmp esi, ebx
jae 0x5fbb73
shl esi, 2
mov ebx, dword [esp + 0x60]
sub ebx, esi
cmp ebx, eax
jb 0x5fbb63
mov eax, ebx
cmp eax, edx
jbe 0x5fbb6b
mov eax, edx
jmp 0x5fbb79
mov ebx, eax
mov eax, edx
mov edx, ebx
jmp 0x5fbb79
mov ebx, eax
mov eax, edx
mov edx, ebx
mov ecx, dword [esp + 0xe4]
mov ebx, dword [ecx + 0x34]
mov ebp, dword [esp + 0xe8]
mov dword [esp], ebp
mov esi, dword [esp + 0xd0]
mov dword [esp + 4], esi
mov edi, dword [esp + 0xd4]
mov dword [esp + 8], edi
mov edi, dword [esp + 0xd8]
mov dword [esp + 0xc], edi
mov edi, dword [esp + 0xdc]
mov dword [esp + 0x10], edi
mov dword [esp + 0x14], edx
mov dword [esp + 0x18], eax
call ebx
mov eax, dword [esp + 0xb8]
mov ecx, dword [eax]
mov edx, dword [esp + 0x64]
add ecx, edx
xor edx, edx
mov ebx, dword [esp + 0x4c]
jmp 0x5fb757
sub edx, ecx
mov eax, dword [esp + 0x54]
add eax, edx
mov ecx, dword [esp + 0xf8]
mov dword [ecx], eax
lea eax, [0x8db9c0]
mov dword [esp], eax
lea ecx, [0x728820]
mov dword [esp + 4], ecx
mov edx, dword [esp + 0xb8]
mov dword [esp + 8], edx
call fcn.0045c680
lea eax, [0x8db9c0]
mov dword [esp], eax
lea eax, [0x728820]
mov dword [esp + 4], eax
mov eax, dword [esp + 0xbc]
mov dword [esp + 8], eax
call fcn.0045c680
add esp, 0xc4
ret
mov esi, dword [esp + 0x94]
dec esi
mov eax, edx
mov edx, dword [esp + 0x68]
mov ebx, ecx
mov ecx, esi
mov dword [esp + 0x54], ebp
mov esi, dword [esp + 0xe0]
cmp dword [esi + 4], 5
jge 0x5fbc7e
mov edi, dword [eax]
dec edi
cmp ecx, edi
ja 0x5fbc67
mov edi, ecx
mov ebp, dword [esp + 0xbc]
mov dword [ebp], edi
mov ebp, dword [esp + 0x54]
mov edi, dword [esp + 0xbc]
jmp 0x5fbc8b
mov edi, dword [esp + 0xbc]
mov dword [edi], 0
mov dword [esp + 0x58], ebx
mov dword [esp + 0xa4], edx
mov dword [edi + 0xc], 0
mov dword [edi + 4], 0
mov dword [edi + 8], 0x7e4
inc edx
mov dword [esp + 0x68], edx
mov ebp, dword [esp + 0x48]
cmp ebp, edx
ja 0x5fbcba
mov edx, ebp
mov dword [esp + 0x94], ecx
mov eax, dword [esp + 0xe4]
mov ebx, dword [eax + 0x14]
mov ebp, dword [esi + 0x38]
mov eax, dword [esp + 0xe8]
mov dword [esp], eax
mov eax, dword [esp + 0xc0]
mov dword [esp + 4], eax
mov eax, dword [esp + 0xd0]
mov dword [esp + 8], eax
mov eax, dword [esp + 0xd4]
mov dword [esp + 0xc], eax
mov eax, dword [esp + 0xd8]
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0xdc]
mov dword [esp + 0x14], eax
mov eax, dword [esp + 0xec]
mov dword [esp + 0x18], eax
mov eax, dword [esp + 0xf0]
mov dword [esp + 0x1c], eax
mov eax, dword [esp + 0xf4]
mov dword [esp + 0x20], eax
mov eax, dword [esp + 0x68]
mov dword [esp + 0x24], eax
mov dword [esp + 0x28], ecx
mov dword [esp + 0x2c], edx
mov dword [esp + 0x30], 0
mov dword [esp + 0x34], ebp
mov dword [esp + 0x38], edi
call ebx
mov eax, dword [esp + 0xbc]
mov ecx, dword [eax + 8]
mov edx, dword [esp + 0xb8]
mov ebx, dword [edx + 8]
add ebx, 0xaf
cmp ecx, ebx
jb 0x5fb976
mov ebx, dword [eax + 4]
mov ebp, dword [eax + 0xc]
mov esi, dword [eax]
mov dword [edx], esi
mov dword [edx + 4], ebx
mov dword [edx + 8], ecx
mov dword [edx + 0xc], ebp
mov ecx, dword [esp + 0x58]
inc ecx
cmp ecx, 4
jl 0x5fbd95
xor ebx, ebx
jmp 0x5fbde1
mov dword [esp + 0x90], ecx
mov eax, dword [esp + 0xe4]
mov ecx, dword [eax + 0x18]
mov edx, dword [esp + 0xe8]
mov dword [esp], edx
call ecx
mov eax, dword [esp + 4]
mov ecx, dword [esp + 0xa4]
lea eax, [eax + ecx + 1]
mov ecx, dword [esp + 0x78]
cmp eax, ecx
setb al
mov ecx, dword [esp + 0x90]
mov edx, dword [esp + 0xb8]
mov ebx, eax
mov eax, dword [esp + 0xbc]
mov ebp, dword [esp + 0x54]
inc ebp
test bl, bl
jne 0x5fbc3b
jmp 0x5fb970
mov eax, 3
mov ecx, eax
call fcn.00456b40
mov eax, 2
call fcn.00456b40
mov dword [esp + 0x8c], eax
mov dword [esp + 0x88], edx
mov ecx, dword [esp + 0xe4]
mov edx, dword [ecx + 0x2c]
mov ebx, dword [esp + 0xe8]
mov dword [esp], ebx
mov ebp, dword [esp + 0xd0]
mov dword [esp + 4], ebp
mov esi, dword [esp + 0xd4]
mov dword [esp + 8], esi
mov edi, dword [esp + 0xd8]
mov dword [esp + 0xc], edi
mov edi, dword [esp + 0xdc]
mov dword [esp + 0x10], edi
mov dword [esp + 0x14], eax
call edx
mov eax, dword [esp + 0x8c]
add eax, 2
mov ecx, dword [esp + 0x88]
lea edx, [ecx + 2]
mov ecx, dword [esp + 0x3c]
mov ebx, dword [esp + 0x78]
cmp eax, ecx
jb 0x5fbe09
mov ebp, dword [esp + 0x4c]
mov ebx, eax
mov ecx, edx
mov eax, dword [esp + 0xb8]
mov edx, ecx
mov ecx, ebx
mov ebx, ebp
jmp 0x5fb757
mov dword [esp + 0x84], eax
mov dword [esp + 0x80], edx
mov ecx, dword [esp + 0xe4]
mov edx, dword [ecx + 0x2c]
mov ebx, dword [esp + 0xe8]
mov dword [esp], ebx
mov ebp, dword [esp + 0xd0]
mov dword [esp + 4], ebp
mov esi, dword [esp + 0xd4]
mov dword [esp + 8], esi
mov edi, dword [esp + 0xd8]
mov dword [esp + 0xc], edi
mov edi, dword [esp + 0xdc]
mov dword [esp + 0x10], edi
mov dword [esp + 0x14], eax
call edx
mov eax, dword [esp + 0x84]
add eax, 4
mov ecx, dword [esp + 0x80]
lea edx, [ecx + 4]
mov ecx, dword [esp + 0x40]
mov ebx, dword [esp + 0x78]
cmp eax, ecx
jb 0x5fbe97
jmp 0x5fbe7d
call fcn.00455690
jmp fcn.005fb580