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

Disassembly:
mov ecx, dword fs:[0x14]
mov ecx, dword [ecx]
lea eax, [esp - 0x28]
cmp eax, dword [ecx + 8]
jbe 0x580bf1
sub esp, 0xa8
lea eax, [0x5db380]
mov dword [esp], eax
mov ecx, dword [esp + 0xb0]
mov dword [esp + 4], ecx
mov edx, dword [esp + 0xb8]
lea ebx, [ecx + edx*2 + 1]
mov dword [esp + 0x30], ebx
mov dword [esp + 8], ebx
call fcn.004450a0
mov eax, dword [esp + 0xc]
mov dword [esp + 0xa4], eax
mov ecx, dword [esp + 0xac]
cmp eax, ecx
je 0x580429
mov dword [esp], eax
mov dword [esp + 4], ecx
mov ecx, dword [esp + 0xb0]
mov dword [esp + 8], ecx
call fcn.0045e7b0
mov ecx, dword [esp + 0xb8]
mov edx, dword [esp + 0xb4]
mov eax, dword [esp + 0xa4]
mov ebp, dword [esp + 0xb0]
mov ebx, dword [esp + 0x30]
xor esi, esi
xor edi, edi
xor esi, esi
mov dword [esp + 0x24], esi
xor esi, esi
jmp 0x580472
mov ebp, dword [esp + 0xb8]
mov dword [esp + 0x24], edx
mov ebp, ecx
mov ecx, dword [esp + 0xb8]
mov edx, dword [esp + 0xb4]
mov dword [esp + 0x2c], ebp
mov dword [esp + 0x44], edi
cmp ecx, esi
jle 0x580546
movzx edx, byte [esi + edx]
cmp edx, 0x80
jge 0x5804fd
inc esi
cmp edx, 0x80
jge 0x5804ed
lea ecx, [ebp + 1]
cmp ecx, ebx
ja 0x5804a8
mov byte [eax + ebp], dl
inc edi
mov edx, dword [esp + 0x24]
jmp 0x580457
mov dword [esp + 0x28], edx
mov dword [esp + 0x6c], esi
lea edx, [0x5db380]
mov dword [esp], edx
mov dword [esp + 4], eax
mov dword [esp + 8], ebp
mov dword [esp + 0xc], ebx
mov dword [esp + 0x10], ecx
call fcn.00445150
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x18]
mov ebx, dword [esp + 0x1c]
inc ecx
mov edx, dword [esp + 0x28]
mov ebp, dword [esp + 0x2c]
mov esi, dword [esp + 0x6c]
mov edi, dword [esp + 0x44]
jmp 0x58049e
mov ebp, dword [esp + 0x24]
inc ebp
mov edx, ebp
mov ecx, dword [esp + 0x2c]
jmp 0x580457
mov dword [esp + 0x68], ebx
mov dword [esp + 0x98], eax
mov eax, dword [esp + 0xb4]
mov dword [esp], eax
mov dword [esp + 4], ecx
mov dword [esp + 8], esi
call fcn.00454f20
mov edx, dword [esp + 0xc]
mov esi, dword [esp + 0x10]
mov eax, dword [esp + 0x98]
mov ecx, dword [esp + 0xb8]
mov ebx, dword [esp + 0x68]
mov ebp, dword [esp + 0x2c]
mov edi, dword [esp + 0x44]
jmp 0x58048f
test edi, edi
jle 0x580baa
lea esi, [ebp + 1]
cmp esi, ebx
ja 0x580b62
mov byte [eax + ebp], 0x2d
mov ebp, dword [esp + 0x24]
mov dword [esp + 0x80], eax
mov eax, pe_nt_image_headers32
mov dword [esp + 0x34], eax
xor eax, eax
mov dword [esp + 0x48], eax
mov eax, 0x48
mov dword [esp + 0x50], eax
mov eax, dword [esp + 0x80]
jmp 0x580a62
mov esi, dword [esp + 0x2c]
mov edi, dword [esp + 0x64]
mov dword [esp + 0x6c], ebx
mov dword [esp + 0x38], ebp
mov ebx, dword [esp + 0x30]
mov ebp, dword [esp + 0x24]
mov ebx, dword [esp + 0x6c]
cmp ecx, ebx
jle 0x58060a
movzx ebp, byte [ebx + edx]
cmp ebp, 0x80
jge 0x5805d3
inc ebx
mov esi, dword [esp + 0x38]
cmp ebp, esi
jge 0x5805cd
mov edi, dword [esp + 0x34]
cmp ebp, edi
jge 0x58058c
mov ebp, esi
jmp 0x58058c
mov edi, dword [esp + 0x34]
jmp 0x5805c9
mov dword [esp], edx
mov dword [esp + 4], ecx
mov dword [esp + 8], ebx
call fcn.00454f20
mov ebp, dword [esp + 0xc]
mov ebx, dword [esp + 0x10]
mov eax, dword [esp + 0x98]
mov ecx, dword [esp + 0xb8]
mov edx, dword [esp + 0xb4]
mov esi, dword [esp + 0x2c]
mov edi, dword [esp + 0x64]
jmp 0x5805b9
mov ebx, dword [esp + 0x38]
mov edx, dword [esp + 0x34]
sub ebx, edx
lea edx, [edi + 1]
imul edx, ebx
mov ebx, dword [esp + 0x48]
add edx, ebx
test edx, edx
jl 0x580a9d
mov ebx, dword [esp + 0xb4]
mov dword [esp + 0x70], eax
xor eax, eax
mov dword [esp + 0x6c], eax
mov eax, dword [esp + 0x70]
jmp 0x580659
mov ecx, dword [esp + 0xb8]
mov dword [esp + 0x6c], ebp
mov dword [esp + 0x50], ebx
mov ebp, dword [esp + 0x24]
mov ebx, dword [esp + 0xb4]
mov dword [esp + 0x24], ebp
mov ebp, dword [esp + 0x6c]
cmp ecx, ebp
jle 0x580a45
mov dword [esp + 0x60], edi
mov dword [esp + 0x4c], edx
movzx ebx, byte [ebp + ebx]
cmp ebx, 0x80
jge 0x5809fc
inc ebp
mov ecx, dword [esp + 0x38]
cmp ebx, ecx
jge 0x580718
inc edx
test edx, edx
jl 0x58069a
mov ebx, dword [esp + 0x50]
jmp 0x58063f
lea eax, [0x5f6ee0]
mov dword [esp], eax
call fcn.0040b8d0
mov edi, dword [esp + 4]
mov eax, dword [esp + 0xb8]
mov dword [edi + 4], eax
mov eax, dword [0x7a0970]
test eax, eax
jne 0x58070a
mov eax, dword [esp + 0xb4]
mov dword [edi], eax
mov dword [edi + 0xc], 2
lea eax, [0x60efaa]
mov dword [edi + 8], eax
mov dword [esp + 0xbc], 0
mov dword [esp + 0xc0], 0
lea eax, [0x65ec44]
mov dword [esp + 0xc4], eax
mov dword [esp + 0xc8], edi
add esp, 0xa8
ret
mov eax, dword [esp + 0xb4]
call fcn.0045de10
jmp 0x5806c9
jle 0x580723
mov ebx, dword [esp + 0x50]
jmp 0x58063f
mov dword [esp + 0x5c], ebp
mov ebx, dword [esp + 0x50]
mov dword [esp + 0x90], eax
mov eax, 0x24
mov dword [esp + 0x40], eax
mov eax, dword [esp + 0x90]
jmp 0x580792
mov dword [esp + 0x2c], edx
mov edx, dword [esp + 0x98]
mov byte [edx + esi], cl
mov edx, dword [esp + 0x40]
add edx, 0x24
mov dword [esp + 0x40], edx
mov eax, dword [esp + 0x64]
cmp ebp, 0xffffffff
je 0x58076b
cdq
idiv ebp
jmp 0x58076d
neg eax
mov edx, dword [esp + 0x2c]
mov ebp, dword [esp + 0x40]
mov ecx, dword [esp + 0x38]
mov ebp, dword [esp + 0x5c]
mov edx, eax
mov dword [esp + 0x30], edi
mov esi, dword [esp + 0x2c]
mov eax, dword [esp + 0x98]
mov edi, dword [esp + 0x60]
mov ecx, dword [esp + 0x40]
sub ecx, ebx
cmp ecx, 1
jge 0x5809e9
mov ecx, 1
mov dword [esp + 0x2c], esi
cmp ecx, edx
jg 0x58088f
sub edx, ecx
lea ebp, [ecx - 0x24]
xchg ebp, ebx
neg ebx
xchg ebp, ebx
test ebp, ebp
je 0x580beb
mov dword [esp + 0xa0], eax
mov dword [esp + 0x64], edx
mov eax, edx
cmp ebp, 0xffffffff
je 0x5807dc
cdq
idiv ebp
jmp 0x5807de
xor edx, edx
mov eax, edi
lea edi, [edx + ecx]
cmp edi, 0x1a
jae 0x580879
lea ecx, [edx + ecx + 0x61]
lea edx, [esi + 1]
mov edi, dword [esp + 0x30]
cmp edx, edi
ja 0x58081c
mov dword [esp + 0x88], eax
mov eax, dword [esp + 0xa0]
mov dword [esp + 0x98], eax
mov eax, dword [esp + 0x88]
jmp 0x580744
mov dword [esp + 0x58], ebp
mov byte [esp + 0x22], cl
lea eax, [0x5db380]
mov dword [esp], eax
mov ecx, dword [esp + 0xa0]
mov dword [esp + 4], ecx
mov dword [esp + 8], esi
mov dword [esp + 0xc], edi
mov dword [esp + 0x10], edx
call fcn.00445150
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x18]
mov edi, dword [esp + 0x1c]
lea edx, [ecx + 1]
movzx ecx, byte [esp + 0x22]
mov ebx, dword [esp + 0x50]
mov ebp, dword [esp + 0x58]
mov esi, dword [esp + 0x2c]
mov dword [esp + 0x98], eax
mov eax, dword [esp + 0x60]
jmp 0x580744
lea edi, [edx + ecx - 0x1a]
cmp edi, 0xa
jae 0x580bd3
lea ecx, [edx + ecx + 0x16]
jmp 0x5807f0
cmp edx, 0x1a
jae 0x5809d5
lea ecx, [edx + 0x61]
lea edx, [esi + 1]
mov ebx, dword [esp + 0x30]
cmp edx, ebx
ja 0x58098e
mov dword [esp + 0x2c], edx
mov byte [eax + esi], cl
mov ecx, dword [esp + 0x44]
cmp edi, ecx
jne 0x58096e
mov esi, eax
mov eax, 0x5d9f7391
mov ecx, dword [esp + 0x4c]
imul ecx
sar edx, 8
sar ecx, 0x1f
sub edx, ecx
cmp edi, 0xffffffff
je 0x580bb6
lea ecx, [edi + 1]
mov eax, edx
mov edi, eax
cmp ecx, 0xffffffff
je 0x5808ec
cdq
idiv ecx
jmp 0x5808ee
neg eax
lea edx, [edi + eax]
xor eax, eax
jmp 0x58090c
mov edi, eax
mov eax, 0xea0ea0eb
imul edx
mov eax, edi
mov edi, dword [esp + 0x4c]
add edx, edi
sar edx, 5
add eax, 0x24
mov dword [esp + 0x4c], edx
cmp edx, 0x1c7
jg 0x5808f5
lea edi, [edx + edx*8]
cmp edx, 0xffffffda
je 0x580bb1
mov dword [esp + 0x3c], eax
mov edx, dword [esp + 0x24]
dec edx
mov dword [esp + 0x24], edx
shl edi, 2
mov edx, dword [esp + 0x4c]
add edx, 0x26
mov eax, edi
mov ebp, edx
cmp ebp, 0xffffffff
je 0x580949
cdq
idiv ebp
jmp 0x58094b
neg eax
mov edx, dword [esp + 0x3c]
add edx, eax
mov ebp, dword [esp + 0x5c]
mov dword [esp + 0x30], ebx
mov eax, esi
mov edi, ecx
mov ecx, dword [esp + 0x38]
mov ebx, edx
mov esi, dword [esp + 0x2c]
xor edx, edx
jmp 0x58063f
mov ecx, dword [esp + 0x4c]
shr ecx, 0x1f
mov dword [esp + 0x64], ecx
mov ecx, dword [esp + 0x4c]
mov esi, dword [esp + 0x64]
add ecx, esi
sar ecx, 1
mov esi, eax
mov edx, ecx
jmp 0x5808d2
mov byte [esp + 0x23], cl
lea ecx, [0x5db380]
mov dword [esp], ecx
mov dword [esp + 4], eax
mov dword [esp + 8], esi
mov dword [esp + 0xc], ebx
mov dword [esp + 0x10], edx
call fcn.00445150
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x18]
mov ebx, dword [esp + 0x1c]
lea edx, [ecx + 1]
movzx ecx, byte [esp + 0x23]
mov ebp, dword [esp + 0x5c]
mov esi, dword [esp + 0x2c]
mov edi, dword [esp + 0x60]
jmp 0x5808aa
lea ecx, [edx - 0x1a]
cmp ecx, 0xa
jae 0x580bbb
lea ecx, [edx + 0x16]
jmp 0x58089b
cmp ecx, 0x1a
jle 0x5807a6
mov ecx, 0x1a
jmp 0x5807a6
mov dword [esp + 0x54], esi
mov dword [esp + 0x9c], eax
mov eax, dword [esp + 0xb4]
mov dword [esp], eax
mov dword [esp + 4], ecx
mov dword [esp + 8], ebp
call fcn.00454f20
mov ebx, dword [esp + 0xc]
mov ebp, dword [esp + 0x10]
mov eax, dword [esp + 0x9c]
mov ecx, dword [esp + 0xb8]
mov edx, dword [esp + 0x4c]
mov esi, dword [esp + 0x54]
mov edi, dword [esp + 0x60]
jmp 0x580683
inc edx
mov ebp, dword [esp + 0x38]
inc ebp
mov dword [esp + 0x34], ebp
mov dword [esp + 0x48], edx
mov ebx, dword [esp + 0x30]
mov edx, dword [esp + 0xb4]
mov ebp, dword [esp + 0x24]
test ebp, ebp
je 0x580b1b
mov dword [esp + 0x24], ebp
mov dword [esp + 0x98], eax
mov dword [esp + 0x2c], esi
mov dword [esp + 0x30], ebx
mov dword [esp + 0x64], edi
mov dword [esp + 0x78], eax
xor eax, eax
mov dword [esp + 0x6c], eax
mov eax, 0x7fffffff
mov dword [esp + 0x38], eax
mov eax, dword [esp + 0x78]
jmp 0x5805a4
lea eax, [0x5f6ee0]
mov dword [esp], eax
call fcn.0040b8d0
mov edi, dword [esp + 4]
mov eax, dword [esp + 0xb8]
mov dword [edi + 4], eax
mov eax, dword [0x7a0970]
test eax, eax
jne 0x580b0d
mov eax, dword [esp + 0xb4]
mov dword [edi], eax
mov dword [edi + 0xc], 2
lea eax, [0x60efaa]
mov dword [edi + 8], eax
mov dword [esp + 0xbc], 0
mov dword [esp + 0xc0], 0
lea eax, [0x65ec44]
mov dword [esp + 0xc4], eax
mov dword [esp + 0xc8], edi
add esp, 0xa8
ret
mov eax, dword [esp + 0xb4]
call fcn.0045de10
jmp 0x580acc
mov dword [esp], 0
mov dword [esp + 4], eax
mov dword [esp + 8], esi
call fcn.00448630
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 0x10]
mov dword [esp + 0xbc], eax
mov dword [esp + 0xc0], ecx
mov dword [esp + 0xc4], 0
mov dword [esp + 0xc8], 0
add esp, 0xa8
ret
lea ecx, [0x5db380]
mov dword [esp], ecx
mov dword [esp + 4], eax
mov dword [esp + 8], ebp
mov dword [esp + 0xc], ebx
mov dword [esp + 0x10], esi
call fcn.00445150
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x18]
mov ebx, dword [esp + 0x1c]
lea esi, [ecx + 1]
mov ecx, dword [esp + 0xb8]
mov edx, dword [esp + 0xb4]
mov ebp, dword [esp + 0x2c]
mov edi, dword [esp + 0x44]
jmp 0x580559
mov esi, ebp
jmp 0x58055d
call fcn.004303f0
call fcn.004303f0
lea eax, [0x5db180]
mov dword [esp], eax
lea eax, [0x65c290]
mov dword [esp + 4], eax
call fcn.00431a30
lea eax, [0x5db180]
mov dword [esp], eax
lea eax, [0x65c290]
mov dword [esp + 4], eax
call fcn.00431a30
call fcn.004303f0
nop
call fcn.0045c8b0
jmp fcn.005803b0