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

Disassembly:
push ebp
push edi
push esi
push ebx
mov esi, edx
sub esp, 0xbc
mov dword [esp + 0x1c], eax
mov eax, dword [eax]
mov dword [esp + 0x30], ecx
mov dword [esp + 0x8c], 0
mov dword [esp + 0x90], 0
mov dword [esp + 0x94], 0
test eax, eax
mov dword [esp + 0x98], 0
sete dl
test esi, esi
sete al
or dl, al
jne 0x5eb9c5
mov dword [esp + 0xa0], 0
call sub.msvcrt.dll_localeconv
mov eax, dword [eax]
mov dword [esp + 0x54], eax
call sub.msvcrt.dll_localeconv
mov ecx, dword [eax + 4]
test ecx, ecx
mov dword [esp + 0x2c], ecx
je 0x5ea499
cmp byte [ecx], 0
mov eax, 0
cmovne eax, ecx
mov dword [esp + 0x2c], eax
mov eax, dword [esp + 0x30]
xor edi, edi
mov dword [esp + 0x38], 0
mov dword [esp + 0x20], 0
mov dword [esp + 0x28], 0
mov ebp, edi
mov dword [esp + 0x3c], 0
mov dword [esp + 0x24], 0
mov dword [esp + 0x44], eax
mov dword [esp + 0x50], 0
mov dword [esp + 0x4c], 0
movzx eax, byte [esi]
test al, al
je 0x5eb8fc
js 0x5ea5b0
cmp al, 0x25
lea ebx, [esi + 1]
je 0x5ea5e5
movzx esi, al
mov dword [esp], esi
call sub.msvcrt.dll_isspace
test eax, eax
jne 0x5ea5a0
lea edi, [esp + 0x90]
mov eax, dword [esp + 0x1c]
mov edx, edi
call fcn.005ea320
cmp eax, 0xffffffff
mov ebp, eax
je 0x5ebb70
mov eax, dword [esp + 0x20]
test eax, eax
je 0x5ea541
mov dword [esp], ebp
call sub.msvcrt.dll_isspace
test eax, eax
jne 0x5ea7a2
cmp esi, ebp
je 0x5ea671
mov edx, dword [esp + 0x1c]
mov ecx, edi
mov dword [esp], 0
mov eax, ebp
call fcn.005ea3b0
jmp case.0x5ea86f.1
fstp st(0)
jmp case.0x5ea86f.1
fstp st(0)
jmp case.0x5ea86f.1
fstp st(0)
lea esi, [esi]
lea eax, [esp + 0x98]
mov ecx, dword [esp + 0x24]
lea edx, [esp + 0x8c]
mov dword [esp], eax
mov eax, dword [esp + 0x28]
call fcn.005ea290
add esp, 0xbc
pop ebx
pop esi
pop edi
pop ebp
ret
mov dword [esp + 0x20], 1
mov esi, ebx
jmp 0x5ea4dd
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.005e8890
test eax, eax
jg 0x5ea680
movzx eax, byte [esi]
lea ebx, [esi + 1]
cmp al, 0x25
jne 0x5ea4f9
movzx edx, byte [esi + 1]
mov dword [esp + 0x48], 0
mov eax, edx
sub edx, 0x30
cmp edx, 9
jbe 0x5eada3
xor esi, esi
mov ecx, dword [esp + 0x2c]
jmp 0x5ea643
cmp al, 0x27
je 0x5ea6c0
cmp al, 0x49
jne 0x5ea700
movzx eax, byte [ebx + 1]
cmp al, 0x36
je 0x5ea6d3
or esi, 4
cmp al, 0x33
je 0x5ea6e5
mov esi, esi
lea edi, [edi]
add ebx, 1
cmp al, 0x2a
jne 0x5ea610
or esi, 0x80
movzx eax, byte [ebx + 1]
jmp 0x5ea640
fstp st(0)
jmp 0x5ea65d
fstp st(0)
jmp 0x5ea65d
fstp st(0)
mov eax, dword [esp + 0x98]
cmp dword [esp + 0x9c], eax
je case.0x5ea86f.1
mov dword [esp + 0x20], 0
mov esi, ebx
jmp 0x5ea4dd
mov ebp, dword [esp + 0x1c]
lea ebx, [esi + eax]
lea edi, [esp + 0x90]
mov edx, edi
mov eax, ebp
call fcn.005ea320
cmp eax, 0xffffffff
je 0x5eafc0
add esi, 1
movzx edx, byte [esi - 1]
cmp eax, edx
jne 0x5eafc0
cmp ebx, esi
jne 0x5ea68e
mov ebp, eax
mov esi, ebx
jmp 0x5ea4dd
mov edx, esi
movzx eax, byte [ebx + 1]
or dh, 1
test ecx, ecx
cmovne esi, edx
jmp 0x5ea640
cmp byte [ebx + 2], 0x34
je 0x5ea793
or esi, 4
jmp 0x5ea640
cmp byte [ebx + 2], 0x32
jne 0x5ea640
movzx eax, byte [ebx + 3]
add ebx, 2
jmp 0x5ea640
movzx edx, al
mov dword [esp + 0x40], 0
lea ecx, [edx - 0x30]
cmp ecx, 9
ja 0x5eaffb
xor ecx, ecx
lea esi, [esi]
lea eax, [ecx + ecx*4]
add ebx, 1
lea ecx, [edx + eax*2 - 0x30]
movzx edx, byte [ebx]
lea edi, [edx - 0x30]
mov eax, edx
cmp edi, 9
jbe 0x5ea720
test ecx, ecx
mov edx, 0xffffffff
cmovne edx, ecx
mov dword [esp + 0x40], edx
cmp al, 0x6a
je 0x5eb963
jle 0x5ea802
cmp al, 0x71
je 0x5eb0a0
jg 0x5eaf93
cmp al, 0x6c
je 0x5eb9a6
cmp al, 0x6d
jne 0x5ea820
movzx eax, byte [ebx + 1]
cmp al, 0x6c
mov byte [esp + 0x34], al
je 0x5ebf8d
lea eax, [ebx + 1]
or esi, 0x400
mov dword [esp + 0x58], eax
jmp 0x5ea830
movzx eax, byte [ebx + 3]
or esi, 0xc
add ebx, 2
jmp 0x5ea640
mov dword [esp + 0x20], ebx
mov ebp, dword [esp + 0x1c]
jmp 0x5ea7c0
mov dword [esp], eax
call sub.msvcrt.dll_isspace
test eax, eax
je 0x5eaff0
mov edx, edi
mov eax, ebp
call fcn.005ea320
cmp eax, 0xffffffff
mov ebx, eax
jne 0x5ea7b0
mov edi, eax
mov eax, dword [esp + 0x28]
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.005ea290
add esp, 0xbc
pop ebx
pop esi
pop edi
pop ebp
ret
cmp al, 0x4c
je 0x5eb0a0
jle 0x5eb008
cmp al, 0x61
je 0x5eb97a
cmp al, 0x68
je 0x5eb021
movzx eax, byte [ebx]
mov dword [esp + 0x58], ebx
mov byte [esp + 0x34], al
nop
lea esi, [esi]
cmp byte [esp + 0x34], 0
je case.0x5ea86f.1
mov edi, dword [esp + 0x20]
mov eax, dword [esp + 0x58]
test edi, edi
lea ebx, [eax + 1]
jne 0x5eaba3
movzx ecx, byte [esp + 0x34]
cmp cl, 0x5b
jne 0x5eab95
movzx eax, byte [esp + 0x34]
sub eax, 0x25
cmp al, 0x53
ja case.0x5ea86f.1
movzx eax, al
jmp dword [eax*4 + 0x75ba54]
mov eax, esi
and eax, 0x80
mov dword [esp + 0x20], eax
jne 0x5ea919
test esi, 0x600
je 0x5eb040
mov eax, dword [esp + 0x48]
test eax, eax
jne 0x5ec0f8
mov eax, dword [esp + 0x44]
mov edi, dword [eax]
add eax, 4
mov dword [esp + 0x44], eax
mov dword [esp + 0x24], edi
mov ebp, dword [esp + 0x24]
test ebp, ebp
je 0x5ecdb3
mov dword [esp], 0xc8
call sub.msvcrt.dll_malloc
mov edi, dword [esp + 0x24]
test eax, eax
mov dword [esp + 0x3c], eax
mov dword [edi], eax
je 0x5ec0cc
mov eax, dword [esp + 0x8c]
test eax, eax
je 0x5ea8f6
mov edx, dword [eax]
cmp edx, 0x1f
jbe 0x5ea8fd
call fcn.005ea270
mov edx, dword [eax]
mov edi, dword [esp + 0x24]
lea ecx, [edx + 1]
mov dword [esp + 0x8c], eax
mov dword [esp + 0x4c], 0x64
mov dword [eax], ecx
mov dword [eax + edx*4 + 8], edi
lea edi, [esp + 0x90]
mov eax, dword [esp + 0x1c]
mov edx, edi
call fcn.005ea320
cmp eax, 0xffffffff
mov ebp, eax
je 0x5ebb70
mov dword [esp + 0x48], esi
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 0x5ecba3
mov edx, dword [esp + 0x20]
mov ecx, ebp
mov byte [esp + 0xab], cl
test edx, edx
cmove eax, dword [esp + 0x3c]
mov ebx, eax
lea eax, [esp + 0xa4]
mov dword [esp + 8], 1
mov dword [esp], ebx
mov dword [esp + 0xc], eax
lea eax, [esp + 0xab]
mov dword [esp + 4], eax
call fcn.005e8720
cmp eax, 0xfffffffe
jne 0x5ebc00
mov edx, edi
mov eax, esi
call fcn.005ea320
cmp eax, 0xffffffff
mov ebp, eax
je 0x5eafe0
mov byte [esp + 0xab], al
jmp 0x5ea973
mov edi, dword [esp + 0x40]
mov eax, 1
cmp edi, 0xffffffff
cmovne eax, edi
mov dword [esp + 0x40], eax
mov eax, esi
and eax, 0x80
mov dword [esp + 0x20], eax
jne 0x5eaa78
test esi, 0x600
je 0x5eb070
mov edx, dword [esp + 0x48]
test edx, edx
jne 0x5ec115
mov eax, dword [esp + 0x44]
mov edi, dword [eax]
add eax, 4
mov dword [esp + 0x44], eax
mov dword [esp + 0x24], edi
mov eax, dword [esp + 0x24]
test eax, eax
je 0x5ecdb3
mov edi, dword [esp + 0x40]
mov eax, 0x400
cmp edi, 0x400
cmovle eax, edi
mov dword [esp + 0x4c], eax
add eax, eax
mov dword [esp], eax
call sub.msvcrt.dll_malloc
mov edi, dword [esp + 0x24]
test eax, eax
mov dword [esp + 0x3c], eax
mov dword [edi], eax
je 0x5ec0cc
mov eax, dword [esp + 0x8c]
test eax, eax
je 0x5eaa5d
mov edx, dword [eax]
cmp edx, 0x1f
jbe 0x5eaa64
call fcn.005ea270
mov edx, dword [eax]
mov edi, dword [esp + 0x24]
lea ecx, [edx + 1]
mov dword [esp + 0x8c], eax
mov dword [eax], ecx
mov dword [eax + edx*4 + 8], edi
lea edi, [esp + 0x90]
mov eax, dword [esp + 0x1c]
mov edx, edi
call fcn.005ea320
cmp eax, 0xffffffff
mov ebp, eax
je 0x5ebb70
and esi, 0x600
mov dword [esp + 0xa4], 0
mov dword [esp + 0x48], ebx
mov dword [esp + 0x34], esi
mov eax, ebp
mov byte [esp + 0xab], al
mov eax, dword [esp + 0x20]
test eax, eax
jne 0x5eab31
mov eax, dword [esp + 0x34]
test eax, eax
je 0x5eab31
mov eax, dword [esp + 0x24]
mov ecx, dword [esp + 0x4c]
mov eax, dword [eax]
lea ebx, [ecx + ecx]
lea ecx, [eax + ebx]
cmp dword [esp + 0x3c], ecx
jne 0x5eab31
mov edx, dword [esp + 0x40]
mov ecx, dword [esp + 0x4c]
mov dword [esp + 0x3c], ebx
lea esi, [edx - 1]
cmp ecx, edx
cmovle esi, ecx
add esi, ecx
add ecx, 1
mov ebx, ecx
jmp 0x5eab0a
cmp ebx, esi
jae 0x5ec446
mov eax, dword [esp + 0x24]
mov esi, ebx
mov eax, dword [eax]
lea ecx, [esi + esi]
mov dword [esp], eax
mov dword [esp + 4], ecx
call sub.msvcrt.dll_realloc
test eax, eax
je 0x5eaafa
mov ebx, dword [esp + 0x3c]
mov ecx, dword [esp + 0x24]
mov dword [esp + 0x4c], esi
mov dword [ecx], eax
add eax, ebx
mov dword [esp + 0x3c], eax
mov eax, dword [esp + 0x20]
mov ebx, 0
lea esi, [esp + 0xab]
test eax, eax
cmove ebx, dword [esp + 0x3c]
mov eax, edi
mov edi, ebp
mov ebp, eax
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.005e8720
cmp eax, 0xfffffffe
jne 0x5ebb8f
mov eax, dword [esp + 0x1c]
mov edx, ebp
call fcn.005ea320
cmp eax, 0xffffffff
mov edi, eax
je 0x5eafe0
mov byte [esp + 0xab], al
jmp 0x5eab4e
mov eax, ecx
and eax, 0xffffffdf
cmp al, 0x43
je 0x5eac12
cmp cl, 0x6e
je 0x5eac12
call sub.msvcrt.dll__errno
mov eax, dword [eax]
mov edi, ebp
mov dword [esp + 0x20], eax
call sub.msvcrt.dll__errno
mov dword [eax], 0
cmp edi, 0xffffffff
je 0x5ead84
lea ebp, [esp + 0x90]
mov eax, dword [esp + 0x1c]
mov edx, ebp
call fcn.005ea320
cmp eax, 0xffffffff
mov edi, eax
je 0x5ead84
mov dword [esp], eax
call sub.msvcrt.dll_isspace
test eax, eax
jne 0x5eabbb
mov eax, ebp
mov ebp, edi
mov edi, eax
call sub.msvcrt.dll__errno
mov ecx, dword [esp + 0x20]
mov edx, dword [esp + 0x1c]
mov dword [eax], ecx
mov dword [esp], 0
mov ecx, edi
mov eax, ebp
call fcn.005ea3b0
movzx eax, byte [esp + 0x34]
cmp al, 0x63
je 0x5eae00
cmp al, 0x73
jne 0x5ea85c
mov eax, esi
and eax, 4
mov dword [esp + 0x20], eax
jne case.0x5ea86f.46
mov eax, esi
and eax, 0x80
mov dword [esp + 0x34], eax
jne 0x5eaccf
test esi, 0x600
je 0x5ec34d
mov ecx, dword [esp + 0x48]
test ecx, ecx
jne 0x5eca70
mov eax, dword [esp + 0x44]
mov edi, dword [eax]
add eax, 4
mov dword [esp + 0x44], eax
mov dword [esp + 0x24], edi
mov edx, dword [esp + 0x24]
test edx, edx
je 0x5ecdb3
mov dword [esp], 0x64
call sub.msvcrt.dll_malloc
mov edi, dword [esp + 0x24]
test eax, eax
mov dword [esp + 0x50], eax
mov dword [edi], eax
je 0x5ec0cc
mov eax, dword [esp + 0x8c]
test eax, eax
je 0x5eacac
mov edx, dword [eax]
cmp edx, 0x1f
jbe 0x5eacb3
call fcn.005ea270
mov edx, dword [eax]
mov edi, dword [esp + 0x24]
lea ecx, [edx + 1]
mov dword [esp + 0x8c], eax
mov dword [esp + 0x4c], 0x64
mov dword [eax], ecx
mov dword [eax + edx*4 + 8], edi
lea edi, [esp + 0x90]
mov eax, dword [esp + 0x1c]
mov edx, edi
call fcn.005ea320
cmp eax, 0xffffffff
mov ebp, eax
je 0x5eca4e
mov eax, esi
mov dword [esp + 0x58], ebx
mov dword [esp + 0x5c], esi
and eax, 0x600
mov ebx, ebp
mov esi, dword [esp + 0x40]
mov dword [esp + 0x48], eax
mov ebp, dword [esp + 0x50]
jmp 0x5ead44
mov eax, dword [esp + 0x24]
mov ecx, dword [esp + 0x4c]
mov ebp, edx
mov eax, dword [eax]
add ecx, eax
cmp edx, ecx
je 0x5ec2f8
test esi, esi
jle 0x5ead2e
sub esi, 1
je 0x5ebfd5
mov eax, dword [esp + 0x1c]
mov edx, edi
call fcn.005ea320
cmp eax, 0xffffffff
mov ebx, eax
je 0x5ebfd5
mov dword [esp], ebx
call sub.msvcrt.dll_isspace
test eax, eax
jne 0x5ec380
mov eax, dword [esp + 0x34]
test eax, eax
jne 0x5ead21
mov eax, dword [esp + 0x48]
lea edx, [ebp + 1]
mov byte [ebp], bl
test eax, eax
jne 0x5ead0b
mov ebp, edx
jmp 0x5ead21
mov dword [esp], 0xffffffff
call sub.msvcrt.dll_isspace
test eax, eax
je 0x5eb952
call sub.msvcrt.dll__errno
cmp dword [eax], 4
jne 0x5ead70
mov edi, dword [esp + 0x28]
mov eax, 0xffffffff
test edi, edi
cmovne eax, edi
mov edi, eax
jmp 0x5ea7db
lea ecx, [esi + 2]
movzx esi, byte [esi + 2]
mov dword [esp + 0x48], edx
mov edx, esi
movzx edx, dl
lea edi, [edx - 0x30]
cmp edi, 9
ja 0x5eade6
mov dword [esp + 0x34], ebx
mov ebx, dword [esp + 0x48]
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 0x5eadc5
mov dword [esp + 0x48], ebx
mov ebx, dword [esp + 0x34]
mov esi, edx
mov eax, edi
mov edx, esi
cmp dl, 0x24
je 0x5eb015
mov dword [esp + 0x48], 0
jmp 0x5ea5ff
test esi, 4
jne case.0x5ea86f.30
mov edi, dword [esp + 0x40]
mov eax, 1
cmp edi, 0xffffffff
cmovne eax, edi
mov dword [esp + 0x40], eax
mov eax, esi
and eax, 0x80
mov dword [esp + 0x20], eax
jne 0x5eb4a6
mov eax, esi
and eax, 0x600
mov dword [esp + 0x34], eax
je 0x5ec3a3
mov eax, dword [esp + 0x48]
test eax, eax
jne 0x5ecb3d
mov eax, dword [esp + 0x44]
mov edi, dword [eax]
add eax, 4
mov dword [esp + 0x44], eax
mov dword [esp + 0x24], edi
mov eax, dword [esp + 0x24]
test eax, eax
je 0x5ecdb3
mov edi, dword [esp + 0x40]
mov eax, 0x400
cmp edi, 0x400
cmovle eax, edi
mov dword [esp], eax
mov dword [esp + 0x4c], eax
call sub.msvcrt.dll_malloc
mov ecx, eax
mov eax, dword [esp + 0x24]
test ecx, ecx
mov dword [eax], ecx
je 0x5ec0cc
mov eax, dword [esp + 0x8c]
test eax, eax
je 0x5eaeaa
mov edx, dword [eax]
cmp edx, 0x1f
jbe 0x5eaeb9
mov dword [esp + 0x48], ecx
call fcn.005ea270
mov ecx, dword [esp + 0x48]
mov edx, dword [eax]
mov edi, dword [esp + 0x24]
lea esi, [edx + 1]
mov dword [esp + 0x8c], eax
mov dword [eax], esi
mov dword [eax + edx*4 + 8], edi
lea edi, [esp + 0x90]
mov eax, dword [esp + 0x1c]
mov dword [esp + 0x48], ecx
mov edx, edi
call fcn.005ea320
cmp eax, 0xffffffff
mov ebp, eax
mov ecx, dword [esp + 0x48]
je 0x5eca4e
mov dword [esp + 0x48], ebx
mov ebx, dword [esp + 0x40]
mov dword [esp + 0x40], edi
jmp 0x5eaf2c
sub ebx, 1
mov eax, ebp
lea edi, [ecx + 1]
test ebx, ebx
mov byte [ecx], al
jle 0x5ec148
mov edx, dword [esp + 0x40]
mov eax, dword [esp + 0x1c]
call fcn.005ea320
cmp eax, 0xffffffff
mov ebp, eax
je 0x5ec148
mov ecx, edi
mov eax, dword [esp + 0x34]
mov edi, dword [esp + 0x4c]
test eax, eax
mov esi, edi
je 0x5eaf00
mov eax, dword [esp + 0x24]
mov eax, dword [eax]
lea edx, [eax + edi]
cmp ecx, edx
jne 0x5eaf00
lea esi, [ebx - 1]
cmp edi, ebx
mov dword [esp + 0x50], ebx
mov ebx, dword [esp + 0x24]
cmovl esi, edi
add esi, edi
add edi, 1
jmp 0x5eaf6a
cmp edi, esi
jae 0x5ec446
mov eax, dword [ebx]
mov esi, edi
mov dword [esp + 4], esi
mov dword [esp], eax
call sub.msvcrt.dll_realloc
test eax, eax
je 0x5eaf5e
mov ecx, dword [esp + 0x4c]
mov edi, dword [esp + 0x24]
mov ebx, dword [esp + 0x50]
mov dword [esp + 0x4c], esi
mov dword [edi], eax
add ecx, eax
jmp 0x5eaf00
cmp al, 0x74
je 0x5eaf9f
cmp al, 0x7a
jne 0x5ea820
lea eax, [ebx + 1]
or esi, 4
mov dword [esp + 0x58], eax
movzx eax, byte [ebx + 1]
mov byte [esp + 0x34], al
jmp 0x5ea830
mov edx, dword [esp + 0x1c]
mov ecx, edi
mov dword [esp], 1
call fcn.005ea3b0
jmp 0x5ead8e
call sub.msvcrt.dll__errno
mov dword [eax], 0x2a
jmp case.0x5ea86f.1
mov ebp, ebx
mov ebx, dword [esp + 0x20]
jmp 0x5ea541
mov dword [esp + 0x40], 0xffffffff
jmp 0x5ea745
test al, al
je case.0x5ea86f.1
jmp 0x5ea820
lea ebx, [ecx + 1]
movzx eax, byte [ecx + 1]
jmp 0x5ea5ff
movzx eax, byte [ebx + 1]
cmp al, 0x68
mov byte [esp + 0x34], al
je 0x5ebfa7
lea eax, [ebx + 1]
or esi, 2
mov dword [esp + 0x58], eax
jmp 0x5ea830
mov edi, dword [esp + 0x48]
test edi, edi
jne 0x5ec1d2
mov eax, dword [esp + 0x44]
mov edi, dword [eax]
add eax, 4
mov dword [esp + 0x44], eax
mov dword [esp + 0x3c], edi
mov ecx, dword [esp + 0x3c]
test ecx, ecx
jne 0x5ea919
jmp case.0x5ea86f.1
mov eax, dword [esp + 0x48]
test eax, eax
jne 0x5ec173
mov eax, dword [esp + 0x44]
mov edi, dword [eax]
add eax, 4
mov dword [esp + 0x44], eax
mov dword [esp + 0x3c], edi
mov eax, dword [esp + 0x3c]
test eax, eax
jne 0x5eaa78
jmp case.0x5ea86f.1
lea eax, [ebx + 1]
or esi, 0xc
mov dword [esp + 0x58], eax
movzx eax, byte [ebx + 1]
mov byte [esp + 0x34], al
jmp 0x5ea830
mov eax, esi
mov edi, esi
and eax, 0x80
and edi, 4
mov dword [esp + 0x5c], eax
mov dword [esp + 0x20], edi
je 0x5ec06d
test eax, eax
jne 0x5eb161
test esi, 0x600
je 0x5ec901
mov edx, dword [esp + 0x48]
test edx, edx
jne 0x5ecd04
mov eax, dword [esp + 0x44]
mov edi, dword [eax]
add eax, 4
mov dword [esp + 0x44], eax
mov dword [esp + 0x24], edi
mov eax, dword [esp + 0x24]
test eax, eax
je 0x5ecdb3
mov dword [esp], 0xc8
call sub.msvcrt.dll_malloc
mov edi, dword [esp + 0x24]
test eax, eax
mov dword [esp + 0x3c], eax
mov dword [edi], eax
je 0x5ec0cc
mov eax, dword [esp + 0x8c]
test eax, eax
je 0x5eb13e
mov edx, dword [eax]
cmp edx, 0x1f
jbe 0x5eb145
call fcn.005ea270
mov edx, dword [eax]
mov edi, dword [esp + 0x24]
lea ecx, [edx + 1]
mov dword [esp + 0x8c], eax
mov dword [eax], ecx
mov dword [eax + edx*4 + 8], edi
mov dword [esp + 0x4c], 0x64
mov edi, dword [esp + 0x58]
movzx eax, byte [edi + 1]
cmp al, 0x5e
sete byte [esp + 0x34]
add edi, 2
cmp al, 0x5e
cmove ebx, edi
mov edi, dword [esp + 0x40]
mov eax, 0x7fffffff
test edi, edi
cmovns eax, edi
cmp dword [esp + 0x94], 0xff
mov dword [esp + 0x40], eax
mov eax, dword [esp + 0x98]
ja 0x5eb1d0
test eax, eax
mov dword [esp + 0x94], 0x100
mov edx, 0x100
je 0x5eb1c1
mov dword [esp], eax
call fcn.005f67d0
mov edx, dword [esp + 0x94]
mov dword [esp], edx
call sub.msvcrt.dll_malloc
mov dword [esp + 0x98], eax
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 0x5ec132
cmp al, 0x2d
jne 0x5eb221
jmp 0x5ec132
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.0x5ea86f.1
cmp al, 0x5d
je 0x5eb9fe
cmp al, 0x2d
jne 0x5eb210
movzx edx, byte [ebx]
test dl, dl
je 0x5eb210
cmp dl, 0x5d
je 0x5eb210
movzx ecx, byte [ebx - 2]
cmp cl, dl
ja 0x5eb210
jae 0x5eb21e
mov edx, dword [esp + 0x98]
movzx eax, cl
add ecx, 1
mov byte [edx + eax], 1
cmp byte [ebx], cl
ja 0x5eb24e
jmp 0x5eb21b
mov eax, esi
and eax, 0x80
mov dword [esp + 0x20], eax
jne 0x5ea671
test esi, 8
mov eax, dword [esp + 0x90]
je 0x5ec519
mov esi, dword [esp + 0x48]
test esi, esi
jne 0x5ecb89
mov edi, dword [esp + 0x44]
mov edx, dword [edi]
add edi, 4
mov dword [esp + 0x44], edi
mov dword [edx], eax
mov dword [edx + 4], 0
mov esi, ebx
jmp 0x5ea4dd
mov edi, dword [esp + 0x40]
xor eax, eax
test edi, edi
setg al
sub edi, eax
mov eax, dword [esp + 0x1c]
mov dword [esp + 0x40], edi
lea edi, [esp + 0x90]
mov edx, edi
call fcn.005ea320
cmp eax, 0xffffffff
mov dword [esp + 0x68], eax
je 0x5eca4e
mov ebp, dword [esp + 0x68]
lea eax, [ebp - 0x2b]
and eax, 0xfffffffd
je 0x5ec190
mov dword [esp], ebp
call sub.msvcrt.dll_tolower
cmp eax, 0x6e
je 0x5ecbd5
cmp eax, 0x69
je 0x5eca8d
mov ecx, dword [esp + 0x40]
mov byte [esp + 0x5c], 0x65
mov dword [esp + 0x34], 0
test ecx, ecx
jne 0x5ec3d0
mov eax, esi
mov dword [esp + 0x6c], ebx
mov dword [esp + 0x64], esi
and eax, 0x100
mov dword [esp + 0x20], edi
mov byte [esp + 0x58], 0
mov byte [esp + 0x60], 0
mov dword [esp + 0x70], eax
mov ebx, ebp
mov esi, dword [esp + 0x34]
mov edi, dword [esp + 0x40]
jmp 0x5eb3cf
mov ecx, dword [esp + 0x98]
movzx eax, byte [esp + 0x5c]
cmp byte [ecx + esi - 1], al
je 0x5ebf7c
mov eax, dword [esp + 0x54]
test edi, edi
movzx eax, byte [eax]
jle 0x5eb9da
cmp byte [esp + 0x60], 0
je 0x5ebd40
test al, al
je 0x5eb3ae
mov eax, dword [esp + 0x2c]
mov dword [esp + 0x34], edi
test eax, eax
je 0x5ebe6e
cmp byte [eax], 0
jne 0x5ebe6e
test edi, edi
cmovg edi, dword [esp + 0x34]
test edi, edi
je 0x5ec0e5
mov edx, dword [esp + 0x20]
mov eax, dword [esp + 0x1c]
call fcn.005ea320
cmp eax, 0xffffffff
mov ebx, eax
je 0x5ec0e5
xor eax, eax
test edi, edi
setg al
sub edi, eax
lea eax, [ebx - 0x30]
cmp eax, 9
jbe 0x5eb8d5
cmp byte [esp + 0x58], 0
jne 0x5eb352
test byte [esp + 0x64], 0x40
je 0x5eb3fd
mov dword [esp], ebx
call sub.msvcrt.dll_isxdigit
test eax, eax
jne 0x5eb8d5
test esi, esi
je 0x5eb368
mov dword [esp], ebx
call sub.msvcrt.dll_tolower
cmp byte [esp + 0x5c], al
jne 0x5eb368
mov ecx, dword [esp + 0x98]
lea edx, [esp + 0x94]
mov eax, esi
call fcn.005ea200
movzx ecx, byte [esp + 0x5c]
mov dword [esp + 0x98], eax
mov byte [esp + 0x58], 1
mov byte [esp + 0x60], 1
mov byte [eax + esi], cl
add esi, 1
jmp 0x5eb3a6
lea edi, [esp + 0x90]
mov eax, dword [esp + 0x1c]
mov edx, edi
call fcn.005ea320
cmp eax, 0xffffffff
mov ebp, eax
je 0x5eca4e
cmp eax, 0x25
je 0x5ea671
mov edx, dword [esp + 0x1c]
mov ecx, edi
mov dword [esp], 1
call fcn.005ea3b0
jmp case.0x5ea86f.1
movzx eax, byte [esp + 0x34]
sub eax, 0x58
cmp al, 0x20
ja case.0x5eb49f.1
movzx eax, al
jmp dword [eax*4 + 0x75bba4]
lea edi, [esp + 0x90]
mov eax, dword [esp + 0x1c]
mov edx, edi
call fcn.005ea320
cmp eax, 0xffffffff
mov ebp, eax
je 0x5eca4e
mov eax, ebp
mov esi, dword [esp + 0x40]
mov ebp, ebx
mov ebx, dword [esp + 0x1c]
jmp 0x5eb4df
mov edx, edi
mov eax, ebx
call fcn.005ea320
cmp eax, 0xffffffff
je 0x5eb4e6
sub esi, 1
test esi, esi
jg 0x5eb4d1
mov ebx, ebp
mov dword [esp + 0x20], 0
mov ebp, eax
mov esi, ebx
jmp 0x5ea4dd
mov dword [esp + 0x38], 0xa
lea edi, [esp + 0x90]
mov eax, dword [esp + 0x1c]
mov edx, edi
call fcn.005ea320
cmp eax, 0xffffffff
mov ebp, eax
je 0x5eca4e
lea eax, [eax - 0x2b]
mov dword [esp + 0x20], 0
and eax, 0xfffffffd
jne 0x5eb576
lea eax, [esp + 0x94]
mov ecx, dword [esp + 0x98]
mov edx, eax
xor eax, eax
call fcn.005ea200
mov ecx, ebp
mov dword [esp + 0x98], eax
mov edx, edi
mov byte [eax], cl
mov ecx, dword [esp + 0x40]
xor eax, eax
test ecx, ecx
setg al
sub ecx, eax
mov eax, dword [esp + 0x1c]
mov dword [esp + 0x40], ecx
call fcn.005ea320
mov dword [esp + 0x20], 1
mov ebp, eax
mov eax, dword [esp + 0x40]
test eax, eax
setne dl
cmp ebp, 0x30
jne 0x5ec201
test dl, dl
je 0x5ec201
mov ebp, dword [esp + 0x20]
test eax, eax
lea ecx, [ebp + 1]
mov dword [esp + 0x34], ecx
mov ecx, dword [esp + 0x98]
jle 0x5ec675
sub eax, 1
lea edx, [esp + 0x94]
mov dword [esp + 0x40], eax
mov eax, ebp
call fcn.005ea200
mov dword [esp + 0x98], eax
mov byte [eax + ebp], 0x30
mov edx, edi
mov eax, dword [esp + 0x1c]
call fcn.005ea320
mov edx, dword [esp + 0x40]
mov ebp, eax
xor eax, eax
test edx, edx
jne 0x5ec6a1
mov ecx, dword [esp + 0x38]
test ecx, ecx
jne 0x5ec660
mov ecx, dword [esp + 0x34]
mov dword [esp + 0x38], 8
mov dword [esp + 0x20], ecx
test al, al
je 0x5eb6b7
mov eax, esi
mov dword [esp + 0x5c], ebx
mov dword [esp + 0x60], esi
and eax, 0x100
mov ebx, ebp
mov esi, dword [esp + 0x40]
mov dword [esp + 0x58], eax
mov dword [esp + 0x34], edi
jmp 0x5eb696
lea eax, [ebx - 0x30]
cmp eax, 9
ja 0x5eb833
lea eax, [ebx - 0x2f]
cmp eax, dword [esp + 0x38]
jg 0x5eb6a9
mov ebp, dword [esp + 0x20]
mov ecx, dword [esp + 0x98]
lea edx, [esp + 0x94]
mov eax, ebp
lea edi, [ebp + 1]
call fcn.005ea200
mov dword [esp + 0x98], eax
mov byte [eax + ebp], bl
xor eax, eax
test esi, esi
mov edx, dword [esp + 0x34]
mov dword [esp + 0x20], edi
setg al
sub esi, eax
mov eax, dword [esp + 0x1c]
call fcn.005ea320
cmp eax, 0xffffffff
mov ebx, eax
setne dl
test esi, esi
setne al
test dl, al
je 0x5eb6a9
cmp dword [esp + 0x38], 0x10
jne 0x5eb630
mov dword [esp], ebx
invalid