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

Disassembly:
push ebp
push edi
push esi
push ebx
sub esp, 0xbc
test eax, eax
mov dword [esp + 0x18], eax
mov dword [esp + 0x44], ecx
mov dword [esp + 0x8c], 0
mov dword [esp + 0x90], 0
mov dword [esp + 0x94], 0
mov dword [esp + 0x98], 0
je 0x5aca73
mov eax, dword [eax]
test eax, eax
je 0x5aca73
test edx, edx
mov esi, edx
je 0x5aca73
mov dword [esp + 0xa0], 0
call sub.msvcrt.dll_localeconv
mov eax, dword [eax]
mov dword [esp + 0x50], eax
call sub.msvcrt.dll_localeconv
mov eax, dword [eax + 4]
test eax, eax
mov dword [esp + 0x2c], eax
mov edi, eax
je 0x5aac11
cmp byte [eax], 0
mov eax, 0
cmovne eax, edi
mov dword [esp + 0x2c], eax
mov eax, dword [esp + 0x44]
xor edi, edi
mov dword [esp + 0x30], 0
mov dword [esp + 0x20], 0
mov dword [esp + 0x3c], 0
mov ebp, edi
mov dword [esp + 0x4c], 0
mov dword [esp + 0x24], 0
mov dword [esp + 0x48], eax
mov dword [esp + 0x58], 0
mov dword [esp + 0x40], 0
movzx eax, byte [esi]
test al, al
je 0x5abdbf
js 0x5aaf90
cmp al, 0x25
lea ebx, [esi + 1]
je 0x5aac90
movzx esi, al
mov dword [esp], esi
call sub.msvcrt.dll_isspace
test eax, eax
je 0x5aada1
mov dword [esp + 0x20], 1
mov esi, ebx
jmp 0x5aac55
movzx edx, byte [esi + 1]
mov dword [esp + 0x38], 0
mov eax, edx
sub edx, 0x30
cmp edx, 9
jbe 0x5aae60
xor edx, edx
mov ecx, dword [esp + 0x2c]
jmp 0x5aaccc
cmp al, 0x27
je 0x5aace0
cmp al, 0x49
jne 0x5aad14
movzx eax, byte [ebx + 1]
cmp al, 0x36
je 0x5aacf0
cmp al, 0x33
je 0x5aad02
or edx, 4
add ebx, 1
cmp al, 0x2a
jne 0x5aacb2
or dl, 0x80
movzx eax, byte [ebx + 1]
jmp 0x5aacc9
test ecx, ecx
je 0x5aace7
or dh, 1
movzx eax, byte [ebx + 1]
jmp 0x5aacc9
cmp byte [ebx + 2], 0x34
jne 0x5aacc6
movzx eax, byte [ebx + 3]
or edx, 0xc
add ebx, 2
jmp 0x5aacc9
cmp byte [ebx + 2], 0x32
jne 0x5aacc6
movzx eax, byte [ebx + 3]
or edx, 4
add ebx, 2
jmp 0x5aacc9
mov dword [esp + 0x28], edx
movzx edx, al
xor esi, esi
lea ecx, [edx - 0x30]
cmp ecx, 9
ja 0x5abdb5
lea esi, [esi]
lea eax, [esi + esi*4]
add ebx, 1
lea esi, [edx + eax*2 - 0x30]
movzx edx, byte [ebx]
lea ecx, [edx - 0x30]
mov eax, edx
cmp ecx, 9
jbe 0x5aad30
test esi, esi
mov edx, 0xffffffff
cmove esi, edx
cmp al, 0x6a
je 0x5abd9c
jle 0x5aaec0
cmp al, 0x71
je 0x5abd83
jg 0x5ab000
cmp al, 0x6c
je 0x5ab04f
cmp al, 0x6d
jne 0x5ab03f
movzx eax, byte [ebx + 1]
cmp al, 0x6c
mov byte [esp + 0x34], al
je 0x5acaaa
lea eax, [ebx + 1]
or dword [esp + 0x28], 0x400
mov dword [esp + 0x54], eax
jmp 0x5aaf00
lea eax, [esp + 0x90]
mov dword [esp + 0x1c], eax
mov edx, eax
mov eax, dword [esp + 0x18]
call fcn.005aaa90
cmp eax, 0xffffffff
mov ebp, eax
je 0x5acadf
mov eax, dword [esp + 0x20]
test eax, eax
je 0x5aae40
mov dword [esp], ebp
call sub.msvcrt.dll_isspace
test eax, eax
je 0x5aae40
mov dword [esp + 0x20], ebx
mov edi, dword [esp + 0x18]
mov ebp, dword [esp + 0x1c]
jmp 0x5aadf0
mov dword [esp], eax
call sub.msvcrt.dll_isspace
test eax, eax
je 0x5aae32
mov edx, ebp
mov eax, edi
call fcn.005aaa90
cmp eax, 0xffffffff
mov ebx, eax
jne 0x5aade4
mov edi, eax
mov eax, dword [esp + 0x3c]
test eax, eax
cmovne edi, eax
lea eax, [esp + 0x98]
mov ecx, dword [esp + 0x24]
lea edx, [esp + 0x8c]
mov dword [esp], eax
mov eax, edi
call fcn.005aa9e0
add esp, 0xbc
pop ebx
pop esi
pop edi
pop ebp
ret
mov ebp, ebx
mov ebx, dword [esp + 0x20]
nop
lea esi, [esi]
cmp esi, ebp
jne 0x5aaf40
mov dword [esp + 0x20], 0
mov esi, ebx
jmp 0x5aac55
lea ecx, [esi + 2]
movzx esi, byte [esi + 2]
mov dword [esp + 0x38], edx
mov edx, esi
movzx edx, dl
lea edi, [edx - 0x30]
cmp edi, 9
ja 0x5aaea3
mov dword [esp + 0x1c], ebx
mov ebx, dword [esp + 0x38]
mov edi, eax
lea eax, [ebx + ebx*4]
add ecx, 1
lea ebx, [edx + eax*2 - 0x30]
movzx edx, byte [ecx]
lea esi, [edx - 0x30]
cmp esi, 9
jbe 0x5aae82
mov dword [esp + 0x38], ebx
mov ebx, dword [esp + 0x1c]
mov esi, edx
mov eax, edi
mov edx, esi
cmp dl, 0x24
je 0x5abd4d
mov dword [esp + 0x38], 0
jmp 0x5aacaa
cmp al, 0x4c
je 0x5abd83
jle 0x5abd76
cmp al, 0x61
je 0x5ab021
cmp al, 0x68
jne 0x5ab03f
movzx eax, byte [ebx + 1]
cmp al, 0x68
mov byte [esp + 0x34], al
je 0x5acac6
or dword [esp + 0x28], 2
lea eax, [ebx + 1]
mov dword [esp + 0x54], eax
lea esi, [esi]
cmp byte [esp + 0x34], 0
je case.0x5aaf39.1
mov eax, dword [esp + 0x54]
lea ebx, [eax + 1]
mov eax, dword [esp + 0x20]
test eax, eax
jne 0x5ab080
movzx ecx, byte [esp + 0x34]
cmp cl, 0x5b
mov eax, ecx
jne 0x5ab070
movzx eax, byte [esp + 0x34]
sub eax, 0x25
cmp al, 0x53
ja case.0x5aaf39.1
movzx eax, al
jmp dword [eax*4 + 0x718a74]
mov edi, ebp
mov ecx, dword [esp + 0x1c]
mov edx, dword [esp + 0x18]
mov eax, edi
mov dword [esp], 0
call fcn.005aab20
jmp case.0x5aaf39.1
fstp st(0)
jmp case.0x5aaf39.1
fstp st(0)
jmp case.0x5aaf39.1
fstp st(0)
lea eax, [esp + 0x98]
mov ecx, dword [esp + 0x24]
lea edx, [esp + 0x8c]
mov dword [esp], eax
mov eax, dword [esp + 0x3c]
call fcn.005aa9e0
add esp, 0xbc
pop ebx
pop esi
pop edi
pop ebp
ret
mov dword [esp], esi
call sub.msvcrt.dll_strlen
lea edx, [esp + 0xa0]
mov dword [esp + 4], eax
mov dword [esp], esi
mov dword [esp + 8], edx
call fcn.005a93e0
test eax, eax
jle 0x5abd59
lea edi, [esi + eax]
mov ebx, esi
lea eax, [esp + 0x90]
mov esi, dword [esp + 0x18]
mov ebp, edi
mov dword [esp + 0x1c], eax
mov edi, eax
mov edx, edi
mov eax, esi
call fcn.005aaa90
cmp eax, 0xffffffff
je 0x5abe12
add ebx, 1
movzx edx, byte [ebx - 1]
cmp eax, edx
jne 0x5abe12
cmp ebx, ebp
jne 0x5aafcf
mov ebp, eax
mov esi, ebx
jmp 0x5aac55
cmp al, 0x74
je 0x5ab008
cmp al, 0x7a
jne 0x5ab03f
lea eax, [ebx + 1]
or dword [esp + 0x28], 4
mov dword [esp + 0x54], eax
movzx eax, byte [ebx + 1]
mov byte [esp + 0x34], al
jmp 0x5aaf00
movzx eax, byte [ebx + 1]
mov ecx, eax
mov byte [esp + 0x34], al
and eax, 0xfffffff7
cmp al, 0x53
je 0x5abe3b
cmp cl, 0x73
je 0x5abe3b
movzx eax, byte [ebx]
mov dword [esp + 0x54], ebx
mov byte [esp + 0x34], al
jmp 0x5aaf00
movzx eax, byte [ebx + 1]
cmp al, 0x6c
mov byte [esp + 0x34], al
je 0x5aca91
lea eax, [ebx + 1]
or dword [esp + 0x28], 4
mov dword [esp + 0x54], eax
jmp 0x5aaf00
and eax, 0xffffffdf
cmp al, 0x43
je 0x5ab0fb
cmp cl, 0x6e
je 0x5ab0fb
call sub.msvcrt.dll__errno
mov edi, dword [eax]
call sub.msvcrt.dll__errno
mov dword [eax], 0
lea eax, [esp + 0x90]
cmp ebp, 0xffffffff
mov dword [esp + 0x1c], eax
je 0x5abd24
mov dword [esp + 0x20], ebx
mov ebx, dword [esp + 0x18]
mov ebp, eax
mov dword [esp + 0x5c], esi
mov edx, ebp
mov eax, ebx
call fcn.005aaa90
cmp eax, 0xffffffff
mov esi, eax
je 0x5abd43
mov dword [esp], eax
call sub.msvcrt.dll_isspace
test eax, eax
jne 0x5ab0b4
mov ebp, esi
mov ebx, dword [esp + 0x20]
mov esi, dword [esp + 0x5c]
call sub.msvcrt.dll__errno
mov ecx, dword [esp + 0x1c]
mov edx, dword [esp + 0x18]
mov dword [eax], edi
mov dword [esp], 0
mov eax, ebp
call fcn.005aab20
movzx eax, byte [esp + 0x34]
cmp al, 0x63
je 0x5ab2b3
cmp al, 0x73
jne 0x5aaf2a
test byte [esp + 0x28], 4
jne case.0x5aaf39.46
mov edi, dword [esp + 0x28]
mov eax, edi
and eax, 0x80
mov dword [esp + 0x20], eax
jne 0x5ab1bc
mov eax, edi
test ah, 6
je 0x5abf18
mov ecx, dword [esp + 0x38]
test ecx, ecx
je 0x5acf3f
mov edi, dword [esp + 0x44]
cmp ecx, 1
lea eax, [edi + ecx*4 - 4]
cmove eax, edi
mov eax, dword [eax]
mov dword [esp + 0x24], eax
mov eax, dword [esp + 0x24]
test eax, eax
je 0x5ad852
mov dword [esp], 0x64
call sub.msvcrt.dll_malloc
mov edi, eax
mov eax, dword [esp + 0x24]
test edi, edi
mov dword [eax], edi
je 0x5ad839
mov eax, dword [esp + 0x8c]
test eax, eax
je 0x5ab195
mov edx, dword [eax]
cmp edx, 0x1f
jbe 0x5ab19c
call fcn.005aaa70
mov edx, dword [eax]
lea ecx, [edx + 1]
mov dword [esp + 0x8c], eax
mov dword [esp + 0x58], edi
mov dword [esp + 0x40], 0x64
mov dword [eax], ecx
mov ecx, dword [esp + 0x24]
mov dword [eax + edx*4 + 8], ecx
lea eax, [esp + 0x90]
mov dword [esp + 0x1c], eax
mov edx, eax
mov eax, dword [esp + 0x18]
call fcn.005aaa90
cmp eax, 0xffffffff
mov ebp, eax
je 0x5acadf
mov eax, dword [esp + 0x28]
mov dword [esp + 0x38], ebx
mov ebx, ebp
mov edi, dword [esp + 0x58]
mov ebp, dword [esp + 0x20]
and eax, 0x600
mov dword [esp + 0x34], eax
jmp 0x5ab23c
mov eax, dword [esp + 0x24]
mov edi, dword [esp + 0x40]
mov eax, dword [eax]
lea ecx, [eax + edi]
mov edi, edx
cmp edx, ecx
je 0x5ac771
test esi, esi
jle 0x5ab224
sub esi, 1
je 0x5ac5d9
mov edx, dword [esp + 0x1c]
mov eax, dword [esp + 0x18]
call fcn.005aaa90
cmp eax, 0xffffffff
mov ebx, eax
je 0x5ac5d9
mov dword [esp], ebx
call sub.msvcrt.dll_isspace
test eax, eax
jne 0x5acae6
test ebp, ebp
jne 0x5ab217
mov eax, dword [esp + 0x34]
lea edx, [edi + 1]
mov byte [edi], bl
test eax, eax
jne 0x5ab200
mov edi, edx
jmp 0x5ab217
mov ecx, dword [esp + 0x28]
mov eax, ecx
and eax, 0x80
mov dword [esp + 0x20], eax
jne 0x5aae48
mov eax, ecx
test al, 8
je 0x5acce0
mov ecx, dword [esp + 0x38]
test ecx, ecx
je 0x5acfd9
mov edi, dword [esp + 0x44]
cmp ecx, 1
lea eax, [edi + ecx*4 - 4]
cmove eax, edi
mov eax, dword [eax]
mov ecx, dword [esp + 0x90]
mov dword [eax + 4], 0
mov esi, ebx
mov dword [eax], ecx
jmp 0x5aac55
test byte [esp + 0x28], 4
jne case.0x5aaf39.30
mov edi, dword [esp + 0x28]
cmp esi, 0xffffffff
mov eax, 1
cmove esi, eax
mov eax, edi
and eax, 0x80
mov dword [esp + 0x20], eax
jne 0x5acc12
mov eax, edi
and eax, 0x600
mov dword [esp + 0x34], eax
jne 0x5abfb2
mov edi, dword [esp + 0x38]
test edi, edi
je 0x5acf97
mov ecx, dword [esp + 0x44]
cmp edi, 1
lea eax, [ecx + edi*4 - 4]
cmove eax, ecx
mov eax, dword [eax]
mov dword [esp + 0x58], eax
mov eax, dword [esp + 0x58]
test eax, eax
je case.0x5aaf39.1
lea eax, [esp + 0x90]
mov dword [esp + 0x1c], eax
mov edx, eax
mov eax, dword [esp + 0x18]
call fcn.005aaa90
cmp eax, 0xffffffff
mov ebp, eax
je 0x5ad747
mov dword [esp + 0x38], ebx
mov edi, dword [esp + 0x58]
jmp 0x5ab393
mov eax, dword [esp + 0x24]
mov edx, dword [eax]
mov eax, dword [esp + 0x40]
lea ecx, [edx + eax]
mov ebx, eax
mov eax, edi
cmp edi, ecx
je 0x5ac620
sub esi, 1
mov ecx, ebp
lea edi, [eax + 1]
test esi, esi
mov byte [eax], cl
jle 0x5ac94a
mov edx, dword [esp + 0x1c]
mov eax, dword [esp + 0x18]
call fcn.005aaa90
cmp eax, 0xffffffff
mov ebp, eax
je 0x5ac94a
mov eax, dword [esp + 0x34]
test eax, eax
jne 0x5ab350
mov ebx, dword [esp + 0x40]
mov eax, edi
jmp 0x5ab369
mov edi, dword [esp + 0x28]
mov eax, edi
and eax, 4
mov dword [esp + 0x20], eax
jne 0x5abe4f
mov eax, dword [esp + 0x28]
test al, 0x80
jne 0x5ab44c
test ah, 6
je 0x5ad17c
mov edi, dword [esp + 0x38]
test edi, edi
je 0x5ad4b4
mov ecx, dword [esp + 0x44]
cmp edi, 1
lea eax, [ecx + edi*4 - 4]
cmove eax, ecx
mov eax, dword [eax]
mov dword [esp + 0x24], eax
mov eax, dword [esp + 0x24]
test eax, eax
je 0x5ad852
mov dword [esp], 0x64
call sub.msvcrt.dll_malloc
mov edi, eax
mov eax, dword [esp + 0x24]
test edi, edi
mov dword [eax], edi
je 0x5ad839
mov eax, dword [esp + 0x8c]
test eax, eax
je 0x5ab425
mov edx, dword [eax]
cmp edx, 0x1f
jbe 0x5ab42c
call fcn.005aaa70
mov edx, dword [eax]
lea ecx, [edx + 1]
mov dword [esp + 0x8c], eax
mov dword [esp + 0x58], edi
mov dword [esp + 0x40], 0x64
mov dword [eax], ecx
mov ecx, dword [esp + 0x24]
mov dword [eax + edx*4 + 8], ecx
mov edi, dword [esp + 0x54]
movzx eax, byte [edi + 1]
lea edx, [edi + 2]
cmp al, 0x5e
sete byte [esp + 0x34]
cmp al, 0x5e
mov eax, 0x7fffffff
cmove ebx, edx
test esi, esi
cmovs esi, eax
cmp dword [esp + 0x94], 0xff
jbe 0x5ac90c
mov eax, dword [esp + 0x98]
lea edi, [eax + 4]
mov dword [eax], 0
mov dword [eax + 0xfc], 0
and edi, 0xfffffffc
sub eax, edi
lea ecx, [eax + 0x100]
xor eax, eax
shr ecx, 2
rep stosd dword es:[edi], eax
movzx eax, byte [ebx]
cmp al, 0x5d
je 0x5ac8f6
cmp al, 0x2d
jne 0x5ab4d1
jmp 0x5ac8f6
mov edx, dword [esp + 0x98]
mov byte [edx + eax], 1
movzx edx, byte [ebx]
movzx eax, dl
add ebx, 1
test al, al
je case.0x5aaf39.1
cmp al, 0x5d
je 0x5ac431
cmp al, 0x2d
jne 0x5ab4c0
movzx edx, byte [ebx]
test dl, dl
je 0x5ab4c0
cmp dl, 0x5d
je 0x5ab4c0
movzx ecx, byte [ebx - 2]
cmp cl, dl
ja 0x5ab4c0
jae 0x5ab4ce
nop
mov edx, dword [esp + 0x98]
movzx eax, cl
add ecx, 1
mov byte [edx + eax], 1
cmp byte [ebx], cl
ja 0x5ab500
jmp 0x5ab4cb
movzx eax, byte [esp + 0x34]
sub eax, 0x58
cmp al, 0x20
ja case.0x5ab52a.1
movzx eax, al
jmp dword [eax*4 + 0x718bc4]
mov ecx, dword [esp + 0x28]
mov eax, ecx
and eax, 0x80
mov dword [esp + 0x20], eax
jne 0x5ab5d0
test ch, 6
je 0x5abf81
mov ecx, dword [esp + 0x38]
test ecx, ecx
je 0x5acfad
mov edi, dword [esp + 0x44]
cmp ecx, 1
lea eax, [edi + ecx*4 - 4]
cmove eax, edi
mov eax, dword [eax]
mov dword [esp + 0x24], eax
mov edi, dword [esp + 0x24]
test edi, edi
je 0x5ad852
mov dword [esp], 0xc8
call sub.msvcrt.dll_malloc
mov edi, eax
mov eax, dword [esp + 0x24]
test edi, edi
mov dword [eax], edi
je 0x5ad839
mov eax, dword [esp + 0x8c]
test eax, eax
je 0x5ab5a9
mov edx, dword [eax]
cmp edx, 0x1f
jbe 0x5ab5b0
call fcn.005aaa70
mov edx, dword [eax]
lea ecx, [edx + 1]
mov dword [esp + 0x8c], eax
mov dword [esp + 0x4c], edi
mov dword [esp + 0x40], 0x64
mov dword [eax], ecx
mov ecx, dword [esp + 0x24]
mov dword [eax + edx*4 + 8], ecx
lea eax, [esp + 0x90]
mov dword [esp + 0x1c], eax
mov edx, eax
mov eax, dword [esp + 0x18]
call fcn.005aaa90
cmp eax, 0xffffffff
mov ebp, eax
je 0x5acadf
mov dword [esp + 0x38], esi
mov edi, dword [esp + 0x18]
mov esi, dword [esp + 0x1c]
mov dword [esp + 0xa4], 0
mov dword [esp + 0x34], ebx
mov dword [esp], ebp
call sub.msvcrt.dll_isspace
test eax, eax
jne 0x5ad7e6
mov edx, dword [esp + 0x20]
mov ecx, ebp
mov byte [esp + 0xab], cl
test edx, edx
cmove eax, dword [esp + 0x4c]
mov ebx, eax
mov eax, ebp
mov ebp, ebx
mov ebx, eax
jmp 0x5ab647
mov byte [esp + 0xab], al
lea eax, [esp + 0xa4]
mov dword [esp + 8], 1
mov dword [esp], ebp
mov dword [esp + 0xc], eax
lea eax, [esp + 0xab]
mov dword [esp + 4], eax
call fcn.005a9260
cmp eax, 0xfffffffe
jne 0x5ac9a7
mov edx, esi
mov eax, edi
call fcn.005aaa90
cmp eax, 0xffffffff
mov ebx, eax
jne 0x5ab640
call sub.msvcrt.dll__errno
mov dword [eax], 0x2a
jmp case.0x5aaf39.1
lea eax, [esp + 0x90]
mov dword [esp + 0x1c], eax
mov edx, eax
mov eax, dword [esp + 0x18]
call fcn.005aaa90
cmp eax, 0xffffffff
mov ebp, eax
je 0x5acadf
cmp eax, 0x25
je 0x5aae48
mov ecx, dword [esp + 0x1c]
mov edx, dword [esp + 0x18]
mov dword [esp], 1
call fcn.005aab20
jmp case.0x5aaf39.1
mov ecx, dword [esp + 0x28]
cmp esi, 0xffffffff
mov eax, 1
cmove esi, eax
mov eax, ecx
and eax, 0x80
mov dword [esp + 0x20], eax
jne 0x5ab792
test ch, 6
je 0x5abf50
mov ecx, dword [esp + 0x38]
test ecx, ecx
je 0x5acf81
mov edi, dword [esp + 0x44]
cmp ecx, 1
lea eax, [edi + ecx*4 - 4]
cmove eax, edi
mov eax, dword [eax]
mov dword [esp + 0x24], eax
mov ebp, dword [esp + 0x24]
test ebp, ebp
je 0x5ad852
cmp esi, 0x400
mov eax, 0x400
cmovle eax, esi
mov dword [esp + 0x40], eax
add eax, eax
mov dword [esp], eax
call sub.msvcrt.dll_malloc
mov edi, eax
mov eax, dword [esp + 0x24]
test edi, edi
mov dword [eax], edi
je 0x5ad839
mov eax, dword [esp + 0x8c]
test eax, eax
je 0x5ab773
mov edx, dword [eax]
cmp edx, 0x1f
jbe 0x5ab77a
call fcn.005aaa70
mov edx, dword [eax]
lea ecx, [edx + 1]
mov dword [esp + 0x8c], eax
mov dword [esp + 0x4c], edi
mov dword [eax], ecx
mov ecx, dword [esp + 0x24]
mov dword [eax + edx*4 + 8], ecx
lea eax, [esp + 0x90]
mov dword [esp + 0x1c], eax
mov edx, eax
mov eax, dword [esp + 0x18]
call fcn.005aaa90
cmp eax, 0xffffffff
mov ebp, eax
je 0x5acadf
mov eax, dword [esp + 0x28]
mov edi, ebp
mov ebp, dword [esp + 0x1c]
mov dword [esp + 0xa4], 0
mov dword [esp + 0x38], ebx
mov dword [esp + 0x28], esi
and eax, 0x600
mov dword [esp + 0x34], eax
mov ecx, dword [esp + 0x20]
mov eax, edi
mov byte [esp + 0xab], al
test ecx, ecx
jne 0x5ab856
mov edx, dword [esp + 0x34]
test edx, edx
je 0x5ab856
mov eax, dword [esp + 0x24]
mov ecx, dword [eax]
mov eax, dword [esp + 0x40]
add eax, eax
mov dword [esp + 0x1c], eax
add eax, ecx
cmp dword [esp + 0x4c], eax
jne 0x5ab856
mov esi, dword [esp + 0x28]
mov eax, dword [esp + 0x40]
lea ebx, [esi - 1]
cmp eax, esi
lea esi, [eax + 1]
cmovle ebx, eax
add ebx, eax
jmp 0x5ab831
cmp ebx, esi
jbe 0x5acb0b
mov eax, dword [esp + 0x24]
mov ebx, esi
mov ecx, dword [eax]
lea eax, [ebx + ebx]
mov dword [esp], ecx
mov dword [esp + 4], eax
call sub.msvcrt.dll_realloc
test eax, eax
je 0x5ab821
mov ecx, dword [esp + 0x24]
mov dword [esp + 0x40], ebx
mov dword [ecx], eax
add eax, dword [esp + 0x1c]
mov dword [esp + 0x4c], eax
mov eax, dword [esp + 0x20]
mov ebx, 0
lea esi, [esp + 0xab]
test eax, eax
cmove ebx, dword [esp + 0x4c]
jmp 0x5ab877
mov byte [esp + 0xab], al
lea eax, [esp + 0xa4]
mov dword [esp + 8], 1
mov dword [esp + 4], esi
mov dword [esp], ebx
mov dword [esp + 0xc], eax
call fcn.005a9260
cmp eax, 0xfffffffe
jne 0x5ac7cc
mov eax, dword [esp + 0x18]
mov edx, ebp
call fcn.005aaa90
cmp eax, 0xffffffff
mov edi, eax
jne 0x5ab870
jmp 0x5ab686
xor eax, eax
test esi, esi
setg al
sub esi, eax
lea eax, [esp + 0x90]
mov dword [esp + 0x1c], eax
mov edx, eax
mov eax, dword [esp + 0x18]
call fcn.005aaa90
cmp eax, 0xffffffff
mov dword [esp + 0x68], eax
je 0x5ad781
mov eax, dword [esp + 0x68]
sub eax, 0x2b
and eax, 0xfffffffd
je 0x5abee8
mov ebp, dword [esp + 0x68]
mov dword [esp], ebp
call sub.msvcrt.dll_tolower
cmp eax, 0x6e
je 0x5ad276
cmp eax, 0x69
je 0x5ad1b0
test esi, esi
mov byte [esp + 0x60], 0x65
mov dword [esp + 0x20], 0
je 0x5ab92a
cmp ebp, 0x30
je 0x5ad44f
mov eax, dword [esp + 0x28]
mov dword [esp + 0x70], ebx
mov byte [esp + 0x5c], 0
mov ebx, dword [esp + 0x20]
mov byte [esp + 0x54], 0
mov dword [esp + 0x20], esi
and eax, 0x100
mov dword [esp + 0x6c], eax
lea eax, [ebp - 0x30]
cmp eax, 9
jbe 0x5abb39
lea esi, [esi]
cmp byte [esp + 0x5c], 0
je 0x5ac2a4
mov ecx, dword [esp + 0x98]
movzx eax, byte [esp + 0x60]
cmp al, byte [ecx + ebx - 1]
je 0x5ac420
mov edi, dword [esp + 0x20]
mov eax, 0x7fffffff
test edi, edi
cmovg eax, edi
cmp byte [esp + 0x54], 0
mov dword [esp + 0x34], eax
jne 0x5ac310
mov ecx, dword [esp + 0x50]
movzx edx, byte [ecx]
cmp ebp, edx
mov eax, edx
jne 0x5ad3dd
cmp byte [ecx + 1], 0
lea edi, [ecx + 1]
je 0x5ac33e
mov dword [esp + 0x64], ebx
mov ebp, dword [esp + 0x34]
mov esi, dword [esp + 0x18]
mov ebx, dword [esp + 0x1c]
jmp 0x5ab9f2
movzx ecx, byte [edi]
sub ebp, 1
cmp ecx, eax
jne 0x5ac5b9
add edi, 1
cmp byte [edi], 0
je 0x5ac32d
test ebp, ebp
je 0x5ac5ca
mov edx, ebx
mov eax, esi
call fcn.005aaa90
cmp eax, 0xffffffff
jne 0x5ab9d0
mov dword [esp + 0x34], ebp
mov ebp, eax
movzx eax, byte [edi]
mov ebx, dword [esp + 0x64]
test al, al
je 0x5acb28
mov edx, dword [esp + 0x6c]
test edx, edx
je 0x5ac319
mov ecx, dword [esp + 0x50]
sub edi, ecx
test edi, edi
jle 0x5ad67b
mov esi, dword [esp + 0x2c]
movzx eax, byte [esi]
cmp byte [ecx], al
jne 0x5ad672
mov dword [esp + 0x64], ebx
mov eax, esi
mov ebx, ecx
mov ecx, esi
jmp 0x5aba5c
movzx edx, byte [ebx + edx]
cmp byte [eax], dl
jne 0x5aca88
add eax, 1
mov edx, eax
sub edx, ecx
cmp edx, edi
jl 0x5aba50
mov ebx, dword [esp + 0x64]
cmp edx, edi
jne 0x5ac31d
movzx ecx, byte [eax]
cmp ecx, ebp
mov edx, ecx
jne 0x5abae2
cmp byte [eax + 1], 0
lea edi, [eax + 1]
je 0x5abaea
mov eax, dword [esp + 0x34]
test eax, eax
je 0x5acfeb
mov dword [esp + 0x64], ebx
mov esi, dword [esp + 0x18]
mov ebx, dword [esp + 0x34]
mov ebp, dword [esp + 0x1c]
jmp 0x5abac7
movzx ecx, byte [edi]
sub ebx, 1
cmp ecx, eax
mov edx, ecx
jne 0x5ad382
add edi, 1
cmp byte [edi], 0
je 0x5ad4a5
test ebx, ebx
je 0x5ad75c
mov edx, ebp
mov eax, esi
call fcn.005aaa90
cmp eax, 0xffffffff
jne 0x5abaa3
movzx edx, byte [edi]
mov dword [esp + 0x34], ebx
mov ebp, eax
mov ebx, dword [esp + 0x64]
test dl, dl
jne 0x5acfeb
mov eax, dword [esp + 0x20]
mov edi, dword [esp + 0x34]
test eax, eax
cmovle edi, eax
mov dword [esp + 0x20], edi
mov edi, dword [esp + 0x20]
test edi, edi
je 0x5ac67f
mov edx, dword [esp + 0x1c]
mov eax, dword [esp + 0x18]
call fcn.005aaa90
cmp eax, 0xffffffff
mov ebp, eax
je 0x5ac67f
test edi, edi
setg al
movzx eax, al
sub edi, eax
lea eax, [ebp - 0x30]
mov dword [esp + 0x20], edi
cmp eax, 9
ja 0x5ab960
mov ecx, dword [esp + 0x98]
lea edx, [esp + 0x94]
mov eax, ebx
call fcn.005aa970
mov ecx, ebp
mov dword [esp + 0x98], eax
mov byte [eax + ebx], cl
invalid