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

Disassembly:
push ebp
push edi
push esi
push ebx
sub esp, 0x4c
mov ebx, dword [esp + 0x70]
lea eax, [ebx + 0x6c]
mov dword [esp], eax
lea ecx, [esp + 0x3a]
call fcn.005a50b8
push ecx
mov esi, eax
mov edi, dword [ebx + 0xc]
and edi, 0x4a
cmp edi, 0x40
je 0x5a8e98
cmp edi, 8
je 0x5a8ebc
mov dword [esp + 0x18], 0xa
lea ebp, [esp + 0x68]
mov dword [esp], ebp
lea ecx, [esp + 0x60]
call fcn.005a5838
push edx
mov byte [esp + 0x2d], al
test al, al
je 0x5a8d94
xor ebx, ebx
mov byte [esp + 0x2f], 0
mov al, byte [esi + 0x10]
mov dword [esp + 0x14], 0
mov byte [esp + 0x2e], 0
cmp dword [esp + 0x18], 0x10
je 0x5a8e8b
mov edx, dword [esp + 0x18]
mov dword [esp + 0x20], edx
mov dword [esp + 0x3c], 0x5fbbc0
test al, al
jne 0x5a8d78
mov eax, 0xffffffff
xor edx, edx
div dword [esp + 0x18]
mov dword [esp + 0x24], eax
lea edx, [esi + 0x4e]
mov dword [esp + 0x1c], edx
xor edi, edi
xor ebp, ebp
cmp byte [esi + 0x64], 0
je 0x5a8b20
cmp byte [esp + 0x2d], 0
jne 0x5a8b2c
nop
cmp byte [esi + 0x10], 0
je 0x5a89d3
cmp byte [esi + 0x25], bl
je 0x5a8bf0
cmp byte [esi + 0x24], bl
je 0x5a8b2c
mov edx, dword [esp + 0x20]
mov dword [esp + 8], edx
movsx ebx, bl
mov dword [esp + 4], ebx
mov eax, dword [esp + 0x1c]
mov dword [esp], eax
call sub.msvcrt.dll_memchr
test eax, eax
je 0x5a8b2c
sub eax, dword [esp + 0x1c]
cmp eax, 0xf
jle 0x5a8a0b
sub eax, 6
cmp dword [esp + 0x24], edi
jb 0x5a8b88
imul edi, dword [esp + 0x18]
mov edx, eax
not edx
cmp edx, edi
setb dl
or ebp, edx
add edi, eax
inc dword [esp + 0x14]
mov ecx, dword [esp + 0x60]
test ecx, ecx
je 0x5a8b99
mov eax, dword [ecx + 8]
cmp eax, dword [ecx + 0xc]
jae 0x5a9080
inc eax
mov dword [ecx + 8], eax
mov dword [esp + 0x64], 0xffffffff
mov eax, dword [ecx + 8]
cmp eax, dword [ecx + 0xc]
jae 0x5a90f2
movzx eax, byte [eax]
mov dword [esp + 0x64], eax
xor ebx, ebx
mov ecx, dword [esp + 0x68]
test ecx, ecx
je 0x5a8ff3
cmp dword [esp + 0x6c], 0xffffffff
je 0x5a8ba0
xor eax, eax
cmp bl, al
jne 0x5a8bbd
xor ebx, ebx
mov byte [esp + 0x2d], 1
mov eax, dword [esp + 0x3c]
mov edx, dword [eax - 0xc]
test edx, edx
jne 0x5a8b3d
nop
mov edx, dword [esp + 0x14]
test edx, edx
jne 0x5a8afc
cmp byte [esp + 0x2e], 0
jne 0x5a8afc
mov esi, dword [eax - 0xc]
test esi, esi
jne 0x5a8afc
mov edx, dword [esp + 0x78]
mov dword [edx], 0
mov edx, dword [esp + 0x74]
mov dword [edx], 4
cmp byte [esp + 0x2d], 0
je 0x5a8ad4
mov edx, dword [esp + 0x74]
or dword [edx], 2
mov esi, dword [esp + 0x60]
mov edi, dword [esp + 0x64]
lea ebx, [eax - 0xc]
cmp ebx, 0x5fbbb4
jne 0x5a91ff
mov eax, esi
mov edx, edi
add esp, 0x4c
pop ebx
pop esi
pop edi
pop ebp
ret 0x1c
test bl, bl
jne 0x5a8ab2
mov edx, ebp
test dl, dl
je 0x5a8ea8
mov edx, dword [esp + 0x78]
mov dword [edx], 0xffffffff
mov edx, dword [esp + 0x74]
mov dword [edx], 4
jmp 0x5a8ac6
cmp byte [esp + 0x2d], 0
je 0x5a8c24
nop
xor ebx, ebx
mov eax, dword [esp + 0x3c]
mov edx, dword [eax - 0xc]
test edx, edx
je 0x5a8a9c
lea eax, [esp + 0x3c]
mov dword [esp + 0x28], eax
movsx eax, byte [esp + 0x14]
mov dword [esp], eax
mov ecx, dword [esp + 0x28]
call fcn.005c958c
push ecx
mov edx, dword [esp + 0x28]
mov dword [esp + 8], edx
mov eax, dword [esi + 0xc]
mov dword [esp + 4], eax
mov eax, dword [esi + 8]
mov dword [esp], eax
call fcn.005e8734
test al, al
jne 0x5a8b7f
mov eax, dword [esp + 0x74]
mov dword [eax], 4
mov eax, dword [esp + 0x3c]
jmp 0x5a8a9c
mov ebp, 1
mov ecx, dword [esp + 0x60]
test ecx, ecx
jne 0x5a8a37
mov bl, 1
jmp 0x5a8a64
mov eax, dword [ecx + 8]
cmp eax, dword [ecx + 0xc]
jae 0x5a9117
movzx eax, byte [eax]
mov dword [esp + 0x6c], eax
xor eax, eax
cmp bl, al
je 0x5a8a85
mov ecx, dword [esp + 0x60]
test ecx, ecx
je 0x5a902e
mov ebx, dword [esp + 0x64]
cmp ebx, 0xffffffff
jne 0x5a89c4
mov eax, dword [ecx + 8]
cmp eax, dword [ecx + 0xc]
jae 0x5a91a2
movzx eax, byte [eax]
mov dword [esp + 0x64], eax
mov bl, al
jmp 0x5a89c4
mov ebx, dword [esp + 0x14]
test ebx, ebx
je 0x5a9020
lea eax, [esp + 0x3c]
mov dword [esp + 0x28], eax
movsx eax, byte [esp + 0x14]
mov dword [esp], eax
lea ecx, [esp + 0x3c]
call fcn.005c958c
push ecx
mov dword [esp + 0x14], 0
jmp 0x5a8a2b
mov al, byte [esp + 0x20]
add eax, 0x30
mov byte [esp + 0x1c], al
nop
cmp dword [esp + 0x20], 0xa
ja 0x5a8d08
cmp bl, 0x2f
jle 0x5a8b2c
cmp byte [esp + 0x1c], bl
jle 0x5a8b2c
movsx ebx, bl
sub ebx, 0x30
cmp dword [esp + 0x24], edi
jb 0x5a8d38
imul edi, dword [esp + 0x18]
mov eax, ebx
not eax
cmp eax, edi
setb al
or ebp, eax
add edi, ebx
inc dword [esp + 0x14]
mov ecx, dword [esp + 0x60]
test ecx, ecx
je 0x5a8d49
mov eax, dword [ecx + 8]
cmp eax, dword [ecx + 0xc]
jae 0x5a9035
inc eax
mov dword [ecx + 8], eax
mov dword [esp + 0x64], 0xffffffff
mov eax, dword [ecx + 8]
cmp eax, dword [ecx + 0xc]
jae 0x5a90a8
movzx eax, byte [eax]
mov dword [esp + 0x64], eax
xor ebx, ebx
mov ecx, dword [esp + 0x68]
test ecx, ecx
je 0x5a8fe5
cmp dword [esp + 0x6c], 0xffffffff
je 0x5a8d50
xor eax, eax
cmp bl, al
je 0x5a8a85
mov ecx, dword [esp + 0x60]
test ecx, ecx
je 0x5a9006
mov ebx, dword [esp + 0x64]
cmp ebx, 0xffffffff
jne 0x5a8c30
mov eax, dword [ecx + 8]
cmp eax, dword [ecx + 0xc]
jae 0x5a91da
movzx eax, byte [eax]
mov dword [esp + 0x64], eax
mov bl, al
cmp dword [esp + 0x20], 0xa
jbe 0x5a8c3b
nop
lea eax, [ebx - 0x30]
cmp al, 9
jbe 0x5a8c4e
lea eax, [ebx - 0x61]
cmp al, 5
jbe 0x5a8d6c
lea eax, [ebx - 0x41]
cmp al, 5
ja 0x5a8b2c
movsx ebx, bl
sub ebx, 0x37
cmp dword [esp + 0x24], edi
jae 0x5a8c5e
lea esi, [esi]
mov ebp, 1
mov ecx, dword [esp + 0x60]
test ecx, ecx
jne 0x5a8c80
mov bl, 1
jmp 0x5a8cad
mov eax, dword [ecx + 8]
cmp eax, dword [ecx + 0xc]
jae 0x5a90cd
movzx eax, byte [eax]
mov dword [esp + 0x6c], eax
xor eax, eax
jmp 0x5a8cc6
movsx ebx, bl
sub ebx, 0x57
jmp 0x5a8c54
lea eax, [esp + 0x3c]
mov dword [esp + 0x28], eax
mov dword [esp], 0x20
mov ecx, eax
call fcn.005c9314
push edi
jmp 0x5a8994
lea ecx, [esp + 0x60]
call fcn.005a5860
mov bl, al
cmp byte [esi + 0x4a], al
sete byte [esp + 0x2f]
je 0x5a8ecc
cmp byte [esi + 0x4b], al
je 0x5a8ecc
mov al, byte [esi + 0x10]
mov dword [esp + 0x14], 0
mov byte [esp + 0x2e], 0
xor ebp, ebp
test al, al
je 0x5a8dd5
cmp byte [esi + 0x25], bl
je 0x5a8fd0
cmp byte [esi + 0x24], bl
je 0x5a8fd0
cmp byte [esi + 0x4e], bl
je 0x5a8f78
cmp byte [esp + 0x2e], 0
je 0x5a8fd0
cmp byte [esi + 0x4c], bl
je 0x5a8e00
cmp byte [esi + 0x4d], bl
jne 0x5a8fd0
test edi, edi
je 0x5a8f0c
cmp dword [esp + 0x18], 0x10
jne 0x5a8fdc
xor ebp, ebp
mov byte [esp + 0x2e], 0
mov ecx, dword [esp + 0x60]
test ecx, ecx
je 0x5a8f27
mov eax, dword [ecx + 8]
cmp eax, dword [ecx + 0xc]
jae 0x5a9060
inc eax
mov dword [ecx + 8], eax
mov dword [esp + 0x64], 0xffffffff
mov eax, dword [ecx + 8]
cmp eax, dword [ecx + 0xc]
jae 0x5a9161
movzx eax, byte [eax]
mov dword [esp + 0x64], eax
xor edx, edx
mov ecx, dword [esp + 0x68]
test ecx, ecx
je 0x5a8fec
cmp dword [esp + 0x6c], 0xffffffff
je 0x5a8f30
xor eax, eax
cmp dl, al
jne 0x5a8f4d
mov dword [esp + 0x14], ebp
mov al, byte [esi + 0x10]
mov byte [esp + 0x2d], 1
cmp dword [esp + 0x18], 0x10
jne 0x5a897c
mov dword [esp + 0x20], 0x16
jmp 0x5a8984
mov dword [esp + 0x18], 8
jmp 0x5a893d
cmp byte [esp + 0x2f], 0
je 0x5a8eb1
neg edi
mov edx, dword [esp + 0x78]
mov dword [edx], edi
jmp 0x5a8ac6
mov dword [esp + 0x18], 0x10
jmp 0x5a893d
mov al, byte [esi + 0x10]
test al, al
je 0x5a8edc
cmp byte [esi + 0x25], bl
je 0x5a8db9
cmp byte [esi + 0x24], bl
je 0x5a8db9
lea ecx, [esp + 0x60]
call fcn.005e0d48
mov dword [esp + 4], ebp
mov dword [esp], eax
call fcn.005eb1a0
test al, al
jne 0x5a900d
mov byte [esp + 0x2d], 1
jmp 0x5a8961
xor ebp, ebp
mov byte [esp + 0x2e], 0
mov dword [esp + 0x18], 0x10
mov ecx, dword [esp + 0x60]
test ecx, ecx
jne 0x5a8e26
mov dl, 1
jmp 0x5a8e53
mov eax, dword [ecx + 8]
cmp eax, dword [ecx + 0xc]
jae 0x5a913c
movzx eax, byte [eax]
mov dword [esp + 0x6c], eax
xor eax, eax
cmp dl, al
je 0x5a8e74
mov ecx, dword [esp + 0x60]
test ecx, ecx
je 0x5a9027
mov ebx, dword [esp + 0x64]
cmp ebx, 0xffffffff
je 0x5a8fa4
cmp byte [esp + 0x2e], 0
je 0x5a8ffa
mov al, byte [esi + 0x10]
jmp 0x5a8dc8
cmp byte [esp + 0x2e], 0
je 0x5a8f8a
cmp dword [esp + 0x18], 0xa
jne 0x5a8df2
test edi, edi
je 0x5a8fbc
inc ebp
cmp dword [esp + 0x18], 8
je 0x5a919b
mov byte [esp + 0x2e], 1
jmp 0x5a8e1a
mov eax, dword [ecx + 8]
cmp eax, dword [ecx + 0xc]
jae 0x5a917e
movzx eax, byte [eax]
mov dword [esp + 0x64], eax
mov bl, al
jmp 0x5a8f62
xor ebp, ebp
mov byte [esp + 0x2e], 1
mov dword [esp + 0x18], 8
jmp 0x5a8e1a
mov dword [esp + 0x14], ebp
jmp 0x5a8971
mov dword [esp + 0x14], ebp
jmp 0x5a897c
mov al, 1
jmp 0x5a8cc6
mov al, 1
jmp 0x5a8e6c
mov al, 1
jmp 0x5a8a7d
mov dword [esp + 0x14], ebp
mov al, byte [esi + 0x10]
jmp 0x5a8971
mov bl, 0xff
jmp 0x5a8c30
lea ecx, [esp + 0x60]
call fcn.005a5860
mov bl, al
mov al, byte [esi + 0x10]
jmp 0x5a8db9
mov bl, 1
jmp 0x5a8a8c
mov bl, 0xff
jmp 0x5a8f62
mov bl, 0xff
jmp 0x5a89c4
mov eax, dword [ecx]
lea edx, [esp + 0x3c]
mov dword [esp + 0x28], edx
call dword [eax + 0x28]
mov ecx, dword [esp + 0x60]
mov dword [esp + 0x64], 0xffffffff
test ecx, ecx
jne 0x5a8c98
mov bl, 1
jmp 0x5a8cad
mov eax, dword [ecx]
call dword [eax + 0x28]
mov ecx, dword [esp + 0x60]
mov dword [esp + 0x64], 0xffffffff
test ecx, ecx
jne 0x5a8e3e
mov dl, 1
jmp 0x5a8e53
mov eax, dword [ecx]
lea edx, [esp + 0x3c]
mov dword [esp + 0x28], edx
call dword [eax + 0x28]
mov ecx, dword [esp + 0x60]
mov dword [esp + 0x64], 0xffffffff
test ecx, ecx
jne 0x5a8a4f
mov bl, 1
jmp 0x5a8a64
mov eax, dword [ecx]
lea edx, [esp + 0x3c]
mov dword [esp + 0x28], edx
call dword [eax + 0x24]
cmp eax, 0xffffffff
jne 0x5a8ca7
mov dword [esp + 0x60], 0
mov bl, 1
jmp 0x5a8cad
mov eax, dword [ecx]
lea edx, [esp + 0x3c]
mov dword [esp + 0x28], edx
call dword [eax + 0x24]
cmp eax, 0xffffffff
jne 0x5a8d5f
mov dword [esp + 0x68], 0
mov al, 1
jmp 0x5a8cc6
mov eax, dword [ecx]
lea edx, [esp + 0x3c]
mov dword [esp + 0x28], edx
call dword [eax + 0x24]
cmp eax, 0xffffffff
jne 0x5a8a5e
mov dword [esp + 0x60], 0
mov bl, 1
jmp 0x5a8a64
mov eax, dword [ecx]
lea edx, [esp + 0x3c]
mov dword [esp + 0x28], edx
call dword [eax + 0x24]
cmp eax, 0xffffffff
jne 0x5a8baf
mov dword [esp + 0x68], 0
mov al, 1
jmp 0x5a8a7d
mov eax, dword [ecx]
mov byte [esp + 0x10], dl
call dword [eax + 0x24]
cmp eax, 0xffffffff
mov dl, byte [esp + 0x10]
jne 0x5a8f3f
mov dword [esp + 0x68], 0
mov al, 1
jmp 0x5a8e6c
mov eax, dword [ecx]
call dword [eax + 0x24]
cmp eax, 0xffffffff
jne 0x5a8e4d
mov dword [esp + 0x60], 0
mov dl, 1
jmp 0x5a8e53
mov eax, dword [ecx]
call dword [eax + 0x24]
cmp eax, 0xffffffff
jne 0x5a8fb3
mov dword [esp + 0x60], 0
mov bl, 0xff
jmp 0x5a8f62
xor ebp, ebp
jmp 0x5a8f9a
mov eax, dword [ecx]
lea edx, [esp + 0x3c]
mov dword [esp + 0x28], edx
call dword [eax + 0x24]
cmp eax, 0xffffffff
jne 0x5a8be5
mov dword [esp + 0x60], 0
mov bl, 0xff
jmp 0x5a89c4
mov eax, dword [ecx]
lea edx, [esp + 0x3c]
mov dword [esp + 0x28], edx
call dword [eax + 0x24]
cmp eax, 0xffffffff
jne 0x5a8cf6
mov dword [esp + 0x60], 0
mov bl, 0xff
jmp 0x5a8c30
sub eax, 4
call fcn.005ee13c
test eax, eax
jg 0x5a8aeb
lea eax, [esp + 0x3b]
mov dword [esp], eax
mov ecx, ebx
call fcn.005c7c9c
push ebx
jmp 0x5a8aeb