Function at 0x485e20
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 0x487d13
mov eax, dword [eax]
test eax, eax
je 0x487d13
test edx, edx
mov esi, edx
je 0x487d13
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 0x485eb1
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 0x48705f
js 0x486230
cmp al, 0x25
lea ebx, [esi + 1]
je 0x485f30
movzx esi, al
mov dword [esp], esi
call sub.msvcrt.dll_isspace
test eax, eax
je 0x486041
mov dword [esp + 0x20], 1
mov esi, ebx
jmp 0x485ef5
movzx edx, byte [esi + 1]
mov dword [esp + 0x38], 0
mov eax, edx
sub edx, 0x30
cmp edx, 9
jbe 0x486100
xor edx, edx
mov ecx, dword [esp + 0x2c]
jmp 0x485f6c
cmp al, 0x27
je 0x485f80
cmp al, 0x49
jne 0x485fb4
movzx eax, byte [ebx + 1]
cmp al, 0x36
je 0x485f90
cmp al, 0x33
je 0x485fa2
or edx, 4
add ebx, 1
cmp al, 0x2a
jne 0x485f52
or dl, 0x80
movzx eax, byte [ebx + 1]
jmp 0x485f69
test ecx, ecx
je 0x485f87
or dh, 1
movzx eax, byte [ebx + 1]
jmp 0x485f69
cmp byte [ebx + 2], 0x34
jne 0x485f66
movzx eax, byte [ebx + 3]
or edx, 0xc
add ebx, 2
jmp 0x485f69
cmp byte [ebx + 2], 0x32
jne 0x485f66
movzx eax, byte [ebx + 3]
or edx, 4
add ebx, 2
jmp 0x485f69
mov dword [esp + 0x28], edx
movzx edx, al
xor esi, esi
lea ecx, [edx - 0x30]
cmp ecx, 9
ja 0x487055
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 0x485fd0
test esi, esi
mov edx, 0xffffffff
cmove esi, edx
cmp al, 0x6a
je 0x48703c
jle 0x486160
cmp al, 0x71
je 0x487023
jg 0x4862a0
cmp al, 0x6c
je 0x4862ef
cmp al, 0x6d
jne 0x4862df
movzx eax, byte [ebx + 1]
cmp al, 0x6c
mov byte [esp + 0x34], al
je 0x487d4a
lea eax, [ebx + 1]
or dword [esp + 0x28], 0x400
mov dword [esp + 0x54], eax
jmp 0x4861a0
lea eax, [esp + 0x90]
mov dword [esp + 0x1c], eax
mov edx, eax
mov eax, dword [esp + 0x18]
call fcn.00485d30
cmp eax, 0xffffffff
mov ebp, eax
je 0x487d7f
mov eax, dword [esp + 0x20]
test eax, eax
je 0x4860e0
mov dword [esp], ebp
call sub.msvcrt.dll_isspace
test eax, eax
je 0x4860e0
mov dword [esp + 0x20], ebx
mov edi, dword [esp + 0x18]
mov ebp, dword [esp + 0x1c]
jmp 0x486090
mov dword [esp], eax
call sub.msvcrt.dll_isspace
test eax, eax
je 0x4860d2
mov edx, ebp
mov eax, edi
call fcn.00485d30
cmp eax, 0xffffffff
mov ebx, eax
jne 0x486084
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.00485c80
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 0x4861e0
mov dword [esp + 0x20], 0
mov esi, ebx
jmp 0x485ef5
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 0x486143
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 0x486122
mov dword [esp + 0x38], ebx
mov ebx, dword [esp + 0x1c]
mov esi, edx
mov eax, edi
mov edx, esi
cmp dl, 0x24
je 0x486fed
mov dword [esp + 0x38], 0
jmp 0x485f4a
cmp al, 0x4c
je 0x487023
jle 0x487016
cmp al, 0x61
je 0x4862c1
cmp al, 0x68
jne 0x4862df
movzx eax, byte [ebx + 1]
cmp al, 0x68
mov byte [esp + 0x34], al
je 0x487d66
or dword [esp + 0x28], 2
lea eax, [ebx + 1]
mov dword [esp + 0x54], eax
lea esi, [esi]
cmp byte [esp + 0x34], 0
je case.0x4861d9.1
mov eax, dword [esp + 0x54]
lea ebx, [eax + 1]
mov eax, dword [esp + 0x20]
test eax, eax
jne 0x486320
movzx ecx, byte [esp + 0x34]
cmp cl, 0x5b
mov eax, ecx
jne 0x486310
movzx eax, byte [esp + 0x34]
sub eax, 0x25
cmp al, 0x53
ja case.0x4861d9.1
movzx eax, al
jmp dword [eax*4 + 0x5af16c]
mov edi, ebp
mov ecx, dword [esp + 0x1c]
mov edx, dword [esp + 0x18]
mov eax, edi
mov dword [esp], 0
call fcn.00485dc0
jmp case.0x4861d9.1
fstp st(0)
jmp case.0x4861d9.1
fstp st(0)
jmp case.0x4861d9.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.00485c80
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.004892f0
test eax, eax
jle 0x486ff9
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.00485d30
cmp eax, 0xffffffff
je 0x4870b2
add ebx, 1
movzx edx, byte [ebx - 1]
cmp eax, edx
jne 0x4870b2
cmp ebx, ebp
jne 0x48626f
mov ebp, eax
mov esi, ebx
jmp 0x485ef5
cmp al, 0x74
je 0x4862a8
cmp al, 0x7a
jne 0x4862df
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 0x4861a0
movzx eax, byte [ebx + 1]
mov ecx, eax
mov byte [esp + 0x34], al
and eax, 0xfffffff7
cmp al, 0x53
je 0x4870db
cmp cl, 0x73
je 0x4870db
movzx eax, byte [ebx]
mov dword [esp + 0x54], ebx
mov byte [esp + 0x34], al
jmp 0x4861a0
movzx eax, byte [ebx + 1]
cmp al, 0x6c
mov byte [esp + 0x34], al
je 0x487d31
lea eax, [ebx + 1]
or dword [esp + 0x28], 4
mov dword [esp + 0x54], eax
jmp 0x4861a0
and eax, 0xffffffdf
cmp al, 0x43
je 0x48639b
cmp cl, 0x6e
je 0x48639b
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 0x486fc4
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.00485d30
cmp eax, 0xffffffff
mov esi, eax
je 0x486fe3
mov dword [esp], eax
call sub.msvcrt.dll_isspace
test eax, eax
jne 0x486354
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.00485dc0
movzx eax, byte [esp + 0x34]
cmp al, 0x63
je 0x486553
cmp al, 0x73
jne 0x4861ca
test byte [esp + 0x28], 4
jne case.0x4861d9.46
mov edi, dword [esp + 0x28]
mov eax, edi
and eax, 0x80
mov dword [esp + 0x20], eax
jne 0x48645c
mov eax, edi
test ah, 6
je 0x4871b8
mov ecx, dword [esp + 0x38]
test ecx, ecx
je 0x4881df
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 0x488af2
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 0x488ad9
mov eax, dword [esp + 0x8c]
test eax, eax
je 0x486435
mov edx, dword [eax]
cmp edx, 0x1f
jbe 0x48643c
call fcn.00485d10
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.00485d30
cmp eax, 0xffffffff
mov ebp, eax
je 0x487d7f
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 0x4864dc
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 0x487a11
test esi, esi
jle 0x4864c4
sub esi, 1
je 0x487879
mov edx, dword [esp + 0x1c]
mov eax, dword [esp + 0x18]
call fcn.00485d30
cmp eax, 0xffffffff
mov ebx, eax
je 0x487879
mov dword [esp], ebx
call sub.msvcrt.dll_isspace
test eax, eax
jne 0x487d86
test ebp, ebp
jne 0x4864b7
mov eax, dword [esp + 0x34]
lea edx, [edi + 1]
mov byte [edi], bl
test eax, eax
jne 0x4864a0
mov edi, edx
jmp 0x4864b7
mov ecx, dword [esp + 0x28]
mov eax, ecx
and eax, 0x80
mov dword [esp + 0x20], eax
jne 0x4860e8
mov eax, ecx
test al, 8
je 0x487f80
mov ecx, dword [esp + 0x38]
test ecx, ecx
je 0x488279
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 0x485ef5
test byte [esp + 0x28], 4
jne case.0x4861d9.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 0x487eb2
mov eax, edi
and eax, 0x600
mov dword [esp + 0x34], eax
jne 0x487252
mov edi, dword [esp + 0x38]
test edi, edi
je 0x488237
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.0x4861d9.1
lea eax, [esp + 0x90]
mov dword [esp + 0x1c], eax
mov edx, eax
mov eax, dword [esp + 0x18]
call fcn.00485d30
cmp eax, 0xffffffff
mov ebp, eax
je 0x4889e7
mov dword [esp + 0x38], ebx
mov edi, dword [esp + 0x58]
jmp 0x486633
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 0x4878c0
sub esi, 1
mov ecx, ebp
lea edi, [eax + 1]
test esi, esi
mov byte [eax], cl
jle 0x487bea
mov edx, dword [esp + 0x1c]
mov eax, dword [esp + 0x18]
call fcn.00485d30
cmp eax, 0xffffffff
mov ebp, eax
je 0x487bea
mov eax, dword [esp + 0x34]
test eax, eax
jne 0x4865f0
mov ebx, dword [esp + 0x40]
mov eax, edi
jmp 0x486609
mov edi, dword [esp + 0x28]
mov eax, edi
and eax, 4
mov dword [esp + 0x20], eax
jne 0x4870ef
mov eax, dword [esp + 0x28]
test al, 0x80
jne 0x4866ec
test ah, 6
je 0x48841c
mov edi, dword [esp + 0x38]
test edi, edi
je 0x488754
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 0x488af2
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 0x488ad9
mov eax, dword [esp + 0x8c]
test eax, eax
je 0x4866c5
mov edx, dword [eax]
cmp edx, 0x1f
jbe 0x4866cc
call fcn.00485d10
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 0x487bac
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 0x487b96
cmp al, 0x2d
jne 0x486771
jmp 0x487b96
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.0x4861d9.1
cmp al, 0x5d
je 0x4876d1
cmp al, 0x2d
jne 0x486760
movzx edx, byte [ebx]
test dl, dl
je 0x486760
cmp dl, 0x5d
je 0x486760
movzx ecx, byte [ebx - 2]
cmp cl, dl
ja 0x486760
jae 0x48676e
nop
mov edx, dword [esp + 0x98]
movzx eax, cl
add ecx, 1
mov byte [edx + eax], 1
cmp byte [ebx], cl
ja 0x4867a0
jmp 0x48676b
movzx eax, byte [esp + 0x34]
sub eax, 0x58
cmp al, 0x20
ja case.0x4867ca.1
movzx eax, al
jmp dword [eax*4 + 0x5af2bc]
mov ecx, dword [esp + 0x28]
mov eax, ecx
and eax, 0x80
mov dword [esp + 0x20], eax
jne 0x486870
test ch, 6
je 0x487221
mov ecx, dword [esp + 0x38]
test ecx, ecx
je 0x48824d
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 0x488af2
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 0x488ad9
mov eax, dword [esp + 0x8c]
test eax, eax
je 0x486849
mov edx, dword [eax]
cmp edx, 0x1f
jbe 0x486850
call fcn.00485d10
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.00485d30
cmp eax, 0xffffffff
mov ebp, eax
je 0x487d7f
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 0x488a86
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 0x4868e7
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.00489170
cmp eax, 0xfffffffe
jne 0x487c47
mov edx, esi
mov eax, edi
call fcn.00485d30
cmp eax, 0xffffffff
mov ebx, eax
jne 0x4868e0
call sub.msvcrt.dll__errno
mov dword [eax], 0x2a
jmp case.0x4861d9.1
lea eax, [esp + 0x90]
mov dword [esp + 0x1c], eax
mov edx, eax
mov eax, dword [esp + 0x18]
call fcn.00485d30
cmp eax, 0xffffffff
mov ebp, eax
je 0x487d7f
cmp eax, 0x25
je 0x4860e8
mov ecx, dword [esp + 0x1c]
mov edx, dword [esp + 0x18]
mov dword [esp], 1
call fcn.00485dc0
jmp case.0x4861d9.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 0x486a32
test ch, 6
je 0x4871f0
mov ecx, dword [esp + 0x38]
test ecx, ecx
je 0x488221
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 0x488af2
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 0x488ad9
mov eax, dword [esp + 0x8c]
test eax, eax
je 0x486a13
mov edx, dword [eax]
cmp edx, 0x1f
jbe 0x486a1a
call fcn.00485d10
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.00485d30
cmp eax, 0xffffffff
mov ebp, eax
je 0x487d7f
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 0x486af6
mov edx, dword [esp + 0x34]
test edx, edx
je 0x486af6
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 0x486af6
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 0x486ad1
cmp ebx, esi
jbe 0x487dab
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 0x486ac1
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 0x486b17
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.00489170
cmp eax, 0xfffffffe
jne 0x487a6c
mov eax, dword [esp + 0x18]
mov edx, ebp
call fcn.00485d30
cmp eax, 0xffffffff
mov edi, eax
jne 0x486b10
jmp 0x486926
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.00485d30
cmp eax, 0xffffffff
mov dword [esp + 0x68], eax
je 0x488a21
mov eax, dword [esp + 0x68]
sub eax, 0x2b
and eax, 0xfffffffd
je 0x487188
mov ebp, dword [esp + 0x68]
mov dword [esp], ebp
call sub.msvcrt.dll_tolower
cmp eax, 0x6e
je 0x488516
cmp eax, 0x69
je 0x488450
test esi, esi
mov byte [esp + 0x60], 0x65
mov dword [esp + 0x20], 0
je 0x486bca
cmp ebp, 0x30
je 0x4886ef
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 0x486dd9
lea esi, [esi]
cmp byte [esp + 0x5c], 0
je 0x487544
mov ecx, dword [esp + 0x98]
movzx eax, byte [esp + 0x60]
cmp al, byte [ecx + ebx - 1]
je 0x4876c0
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 0x4875b0
mov ecx, dword [esp + 0x50]
movzx edx, byte [ecx]
cmp ebp, edx
mov eax, edx
jne 0x48867d
cmp byte [ecx + 1], 0
lea edi, [ecx + 1]
je 0x4875de
mov dword [esp + 0x64], ebx
mov ebp, dword [esp + 0x34]
mov esi, dword [esp + 0x18]
mov ebx, dword [esp + 0x1c]
jmp 0x486c92
movzx ecx, byte [edi]
sub ebp, 1
cmp ecx, eax
jne 0x487859
add edi, 1
cmp byte [edi], 0
je 0x4875cd
test ebp, ebp
je 0x48786a
mov edx, ebx
mov eax, esi
call fcn.00485d30
cmp eax, 0xffffffff
jne 0x486c70
mov dword [esp + 0x34], ebp
mov ebp, eax
movzx eax, byte [edi]
mov ebx, dword [esp + 0x64]
test al, al
je 0x487dc8
mov edx, dword [esp + 0x6c]
test edx, edx
je 0x4875b9
mov ecx, dword [esp + 0x50]
sub edi, ecx
test edi, edi
jle 0x48891b
mov esi, dword [esp + 0x2c]
movzx eax, byte [esi]
cmp byte [ecx], al
jne 0x488912
mov dword [esp + 0x64], ebx
mov eax, esi
mov ebx, ecx
mov ecx, esi
jmp 0x486cfc
movzx edx, byte [ebx + edx]
cmp byte [eax], dl
jne 0x487d28
add eax, 1
mov edx, eax
sub edx, ecx
cmp edx, edi
jl 0x486cf0
mov ebx, dword [esp + 0x64]
cmp edx, edi
jne 0x4875bd
movzx ecx, byte [eax]
cmp ecx, ebp
mov edx, ecx
jne 0x486d82
cmp byte [eax + 1], 0
lea edi, [eax + 1]
je 0x486d8a
mov eax, dword [esp + 0x34]
test eax, eax
je 0x48828b
mov dword [esp + 0x64], ebx
mov esi, dword [esp + 0x18]
mov ebx, dword [esp + 0x34]
mov ebp, dword [esp + 0x1c]
jmp 0x486d67
movzx ecx, byte [edi]
sub ebx, 1
cmp ecx, eax
mov edx, ecx
jne 0x488622
add edi, 1
cmp byte [edi], 0
je 0x488745
test ebx, ebx
je 0x4889fc
mov edx, ebp
mov eax, esi
call fcn.00485d30
cmp eax, 0xffffffff
jne 0x486d43
movzx edx, byte [edi]
mov dword [esp + 0x34], ebx
mov ebp, eax
mov ebx, dword [esp + 0x64]
test dl, dl
jne 0x48828b
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 0x48791f
mov edx, dword [esp + 0x1c]
mov eax, dword [esp + 0x18]
call fcn.00485d30
cmp eax, 0xffffffff
mov ebp, eax
je 0x48791f
test edi, edi
setg al
movzx eax, al
sub edi, eax
lea eax, [ebp - 0x30]
mov dword [esp + 0x20], edi
cmp eax, 9
ja 0x486c00
mov ecx, dword [esp + 0x98]
lea edx, [esp + 0x94]
mov eax, ebx
call fcn.00485c10
mov ecx, ebp
mov dword [esp + 0x98], eax
mov byte [eax + ebx], cl
add ebx, 1
jmp 0x486d9b
mov dword [esp + 0x30], 0xa
lea eax, [esp + 0x90]
mov dword [esp + 0x1c], eax
mov edx, eax
mov eax, dword [esp + 0x18]
call fcn.00485d30
cmp eax, 0xffffffff
mov ebp, eax
je 0x487d7f
lea eax, [eax - 0x2b]
xor edi, edi
and eax, 0xfffffffd
je 0x487e6e
test esi, esi
setne al
cmp ebp, 0x30
jne 0x4872de
test al, al
je 0x4872de
test esi, esi
jle 0x487f09
lea eax, [esp + 0x94]
mov ecx, dword [esp + 0x98]
sub esi, 1
mov edx, eax
mov eax, edi
call fcn.00485c10
mov edx, dword [esp + 0x1c]
mov dword [esp + 0x98], eax
lea ecx, [edi + 1]
mov byte [eax + edi], 0x30
mov eax, dword [esp + 0x18]
mov dword [esp + 0x20], ecx
call fcn.00485d30
test esi, esi
mov ebp, eax
jne 0x487f41
mov ecx, dword [esp + 0x30]
mov eax, 8
mov edi, eax
test ecx, ecx
cmovne edi, ecx
mov dword [esp + 0x30], edi
cmp dword [esp + 0x20], 1
jne 0x486ec7
mov eax, dword [esp + 0x98]
movzx eax, byte [eax]
sub eax, 0x2b
test al, 0xfd
je 0x4861e0
mov ecx, dword [esp + 0x1c]
mov edx, dword [esp + 0x18]
mov eax, ebp
mov dword [esp], 0
call fcn.00485dc0
lea eax, [esp + 0x94]
mov dword [esp + 0x34], eax
mov edi, dword [esp + 0x20]
mov ecx, dword [esp + 0x98]
mov edx, dword [esp + 0x34]
mov eax, edi
call fcn.00485c10
mov dword [esp + 0x98], eax
mov byte [eax + edi], 0
mov eax, dword [esp + 0x28]
mov esi, eax
and esi, 8
je 0x487c15
test al, 0x10
mov eax, dword [esp + 0x30]
mov dword [esp + 8], eax
lea eax, [esp + 0x9c]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x98]
mov dword [esp], eax
je 0x4880c0
call fcn.00489350
mov dword [esp + 0x74], edx
mov edi, dword [esp + 0x9c]
cmp dword [esp + 0x98], edi
je case.0x4861d9.1
mov ecx, dword [esp + 0x28]
mov edi, ecx
and edi, 0x80
mov dword [esp + 0x20], edi
jne 0x4860e8
mov edi, ecx
and edi, 0x10
je 0x4880ce
test esi, esi
je 0x4883f1
mov ecx, dword [esp + 0x38]
test ecx, ecx
je 0x488647
mov edi, dword [esp + 0x44]
cmp ecx, 1
lea edx, [edi + ecx*4 - 4]
cmove edx, edi
mov edx, dword [edx]
mov dword [edx], eax
mov eax, dword [esp + 0x74]
mov dword [edx + 4], eax
add dword [esp + 0x3c], 1
mov esi, ebx
jmp 0x485ef5
mov dword [esp], 0xffffffff
call sub.msvcrt.dll_isspace
test eax, eax
je 0x487001
call sub.msvcrt.dll__errno
cmp dword [eax], 4
jne 0x486fb4
mov ecx, dword [esp + 0x3c]
mov eax, 0xffffffff
test ecx, ecx
cmovne eax, ecx
mov edi, eax
jmp 0x4860ab
mov ebx, dword [esp + 0x20]
mov esi, dword [esp + 0x5c]
jmp 0x486fc4
lea ebx, [ecx + 1]
movzx eax, byte [ecx + 1]
jmp 0x485f4a
movzx eax, byte [esi]
jmp 0x485f06
lea eax, [esp + 0x90]
mov ebp, 0xffffffff
mov dword [esp + 0x1c], eax
jmp 0x48637e
test al, al
je case.0x4861d9.1
jmp 0x4862df
lea eax, [ebx + 1]
or dword [esp + 0x28], 0xc
mov dword [esp + 0x54], eax
movzx eax, byte [ebx + 1]
mov byte [esp + 0x34], al
jmp 0x4861a0
lea eax, [ebx + 1]
or dword [esp + 0x28], 8
mov dword [esp + 0x54], eax
movzx eax, byte [ebx + 1]
mov byte [esp + 0x34], al
jmp 0x4861a0
mov esi, 0xffffffff
jmp 0x485ff1
mov edx, dword [esp + 0x20]
test edx, edx
je case.0x4861d9.1
lea eax, [esp + 0x90]
mov esi, dword [esp + 0x18]
mov dword [esp + 0x1c], eax
mov edi, eax
lea esi, [esi]
mov edx, edi
mov eax, esi
call fcn.00485d30
mov dword [esp], eax
mov ebx, eax
call sub.msvcrt.dll_isspace
test eax, eax
jne 0x487080
mov ecx, dword [esp + 0x1c]
mov edx, dword [esp + 0x18]
mov eax, ebx
mov dword [esp], 0
call fcn.00485dc0
jmp case.0x4861d9.1
mov ecx, dword [esp + 0x1c]
mov edx, dword [esp + 0x18]
mov dword [esp], 1
call fcn.00485dc0
mov edi, dword [esp + 0x3c]
mov eax, 0xffffffff
test edi, edi
cmovne eax, edi
mov edi, eax
jmp 0x4860ab
lea eax, [ebx + 1]
or dword [esp + 0x28], 0x200
mov dword [esp + 0x54], eax
jmp 0x4861a0
mov eax, edi
test al, 0x80
jne 0x4866ec
test ah, 6
mov ecx, dword [esp + 0x38]
je 0x488483
test ecx, ecx
je 0x488631
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 0x488af2
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 0x488ad9
mov eax, dword [esp + 0x8c]
test eax, eax
je 0x48715c
mov edx, dword [eax]
cmp edx, 0x1f
jbe 0x487163
call fcn.00485d10
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
jmp 0x4866ec
test esi, esi
je case.0x4861d9.1
mov edx, dword [esp + 0x1c]
mov eax, dword [esp + 0x18]
call fcn.00485d30
cmp eax, 0xffffffff
mov ebp, eax
je case.0x4861d9.1
test esi, esi
jle 0x4882ae
sub esi, 1
jmp 0x486b96
mov edi, dword [esp + 0x38]
test edi, edi
je 0x4881f5
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
jne 0x48645c
jmp case.0x4861d9.1
mov edi, dword [esp + 0x38]
test edi, edi
je 0x48820b
mov ecx, dword [esp + 0x44]
cmp edi, 1
lea eax, [ecx + edi*4 - 4]
cmove eax, ecx
mov eax, dword [eax]
mov dword [esp + 0x4c], eax
mov edi, dword [esp + 0x4c]
test edi, edi
jne 0x486a32
jmp case.0x4861d9.1
mov edi, dword [esp + 0x38]
test edi, edi
je 0x488263
mov ecx, dword [esp + 0x44]
cmp edi, 1
lea eax, [ecx + edi*4 - 4]
cmove eax, ecx
mov eax, dword [eax]
mov dword [esp + 0x4c], eax
mov ecx, dword [esp + 0x4c]
test ecx, ecx
jne 0x486870
jmp case.0x4861d9.1
mov ecx, dword [esp + 0x38]
test ecx, ecx
je 0x488176
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 0x488af2
cmp esi, 0x400
mov eax, 0x400
cmovle eax, esi
mov dword [esp], eax
mov dword [esp + 0x40], eax
call sub.msvcrt.dll_malloc
mov edi, eax
mov eax, dword [esp + 0x24]
test edi, edi
mov dword [eax], edi
je 0x488ad9
mov eax, dword [esp + 0x8c]
test eax, eax
je 0x4872ba
mov edx, dword [eax]
cmp edx, 0x1f
jbe 0x4872c1
call fcn.00485d10
mov edx, dword [eax]
lea ecx, [edx + 1]
mov dword [esp + 0x8c], eax
mov dword [esp + 0x58], edi
mov dword [eax], ecx
mov ecx, dword [esp + 0x24]
mov dword [eax + edx*4 + 8], ecx
jmp 0x4865bb
cmp ebp, 0xffffffff
setne dl
and eax, edx
mov edx, dword [esp + 0x30]
test edx, edx
jne 0x4872f6
mov dword [esp + 0x30], 0xa
test al, al
mov dword [esp + 0x20], edi
je 0x48733b
mov eax, dword [esp + 0x28]
mov dword [esp + 0x5c], ebx
mov ebx, ebp
and eax, 0x100
mov dword [esp + 0x54], eax
cmp dword [esp + 0x30], 0x10
je 0x487431
lea eax, [ebx - 0x30]
cmp eax, 9
ja 0x4874a0
lea eax, [ebx - 0x2f]
cmp eax, dword [esp + 0x30]
jle 0x487441
mov ebp, ebx
mov ebx, dword [esp + 0x5c]
mov esi, dword [esp + 0x20]
test esi, esi
jne 0x486eab
test byte [esp + 0x28], 0x20
je 0x4861e0
mov dword [esp], ebp
call sub.msvcrt.dll_tolower
cmp al, 0x28
jne 0x4861e0
mov edi, 0x6e
mov ebp, ebx
mov esi, 0x5af159
mov ebx, edi
mov edx, dword [esp + 0x1c]
mov eax, dword [esp + 0x18]
call fcn.00485d30
cmp eax, 0xffffffff
mov edi, eax
je 0x4861e2
mov dword [esp], eax
call sub.msvcrt.dll_tolower
cmp bl, al
jne 0x4861e2
add esi, 1
movzx ebx, byte [esi]
test bl, bl
jne 0x487370
lea eax, [esp + 0x94]
mov ecx, dword [esp + 0x98]
mov ebx, ebp
mov ebp, edi
mov dword [esp + 0x34], eax
mov edx, eax
xor eax, eax
call fcn.00485c10
mov dword [esp + 0x20], 1
mov dword [esp + 0x98], eax
mov byte [eax], 0x30
jmp 0x486ee8
mov dword [esp + 0x30], 8
jmp case.0x4867ca.1
or dword [esp + 0x28], 0x10
mov dword [esp + 0x30], 0
jmp case.0x4867ca.1
or dword [esp + 0x28], 0x10
mov dword [esp + 0x30], 0xa
jmp case.0x4867ca.1
mov dword [esp + 0x30], 0x10
jmp case.0x4867ca.1
mov eax, dword [esp + 0x28]
mov dword [esp + 0x30], 0x10
and eax, 0xfffffff1
or eax, 0x24
mov dword [esp + 0x28], eax
jmp case.0x4867ca.1
mov dword [esp], ebx
call sub.msvcrt.dll_isxdigit
test eax, eax
je 0x487335
mov edi, dword [esp + 0x20]
mov ecx, dword [esp + 0x98]
lea edx, [esp + 0x94]
mov eax, edi
call fcn.00485c10
mov dword [esp + 0x98], eax
mov byte [eax + edi], bl
xor eax, eax
test esi, esi
mov edx, dword [esp + 0x1c]
lea ecx, [edi + 1]
setg al
sub esi, eax
mov eax, dword [esp + 0x18]
mov dword [esp + 0x20], ecx
call fcn.00485d30
cmp eax, 0xffffffff
mov ebx, eax
setne dl
test esi, esi
setne al
test dl, al
jne 0x487311
jmp 0x487335
cmp dword [esp + 0x30], 0xa
jne 0x487335
mov edi, dword [esp + 0x54]
test edi, edi
je 0x487335
test esi, esi
mov ecx, 0x7fffffff
cmovg ecx, esi
mov ebp, ecx
mov ecx, dword [esp + 0x2c]
movzx edx, byte [ecx]
cmp edx, ebx
mov eax, edx
jne 0x4881d6
cmp byte [ecx + 1], 0
lea edi, [ecx + 1]
je 0x487531
mov dword [esp + 0x34], esi
mov ebx, dword [esp + 0x18]
mov esi, dword [esp + 0x1c]
jmp 0x487512
movzx ecx, byte [edi]
sub ebp, 1
cmp ecx, eax
jne 0x48763a
add edi, 1
cmp byte [edi], 0
je 0x487647
test ebp, ebp
je 0x487652
mov edx, esi
mov eax, ebx
call fcn.00485d30
cmp eax, 0xffffffff
jne 0x4874f0
mov ebx, eax
movzx eax, byte [edi]
mov esi, dword [esp + 0x34]
test al, al
jne 0x488c02
mov edi, dword [esp + 0x20]
test esi, esi
cmovle ebp, esi
mov esi, ebp
sub edi, 1
jmp 0x487445
test byte [esp + 0x28], 0x40
je 0x48755b
mov dword [esp], ebp
call sub.msvcrt.dll_isxdigit
test eax, eax
jne 0x486dd9
test ebx, ebx
je 0x486c21
mov dword [esp], ebp
call sub.msvcrt.dll_tolower
cmp byte [esp + 0x60], al
jne 0x486c21
mov ecx, dword [esp + 0x98]
lea edx, [esp + 0x94]
mov eax, ebx
call fcn.00485c10
movzx ecx, byte [esp + 0x60]
mov dword [esp + 0x98], eax
mov byte [esp + 0x5c], 1
mov byte [esp + 0x54], 1
mov byte [eax + ebx], cl
add ebx, 1
jmp 0x486d9b
mov eax, dword [esp + 0x50]
cmp byte [eax], 0
je 0x487620
mov eax, dword [esp + 0x2c]
test eax, eax
je 0x48828b
movzx edx, byte [eax]
jmp 0x486d82
mov dword [esp + 0x34], ebp
mov ebp, eax
mov eax, dword [esp + 0x50]
mov ebx, dword [esp + 0x64]
movzx eax, byte [eax]
test al, al
je 0x487620
mov esi, dword [esp + 0x50]
mov edi, ebx
nop
lea esi, [esi]
mov ecx, dword [esp + 0x98]
lea edx, [esp + 0x94]
mov eax, ebx
add esi, 1
add ebx, 1
call fcn.00485c10
mov dword [esp + 0x98], eax
movzx edx, byte [esi - 1]
mov byte [eax + edi], dl
cmp byte [esi], 0
mov edi, ebx
jne 0x4875f0
mov ecx, dword [esp + 0x20]
test ecx, ecx
jle 0x487630
mov eax, dword [esp + 0x34]
mov dword [esp + 0x20], eax
mov byte [esp + 0x54], 1
jmp 0x486d9b
mov ebx, eax
mov esi, dword [esp + 0x34]
mov eax, ecx
jmp 0x487529
mov esi, dword [esp + 0x34]
mov ebx, eax
jmp 0x487531
mov ebx, dword [esp + 0x5c]
mov ebp, eax
cmp dword [esp + 0x2c], edi
jae 0x48733b
mov ecx, dword [esp + 0x1c]
mov edx, dword [esp + 0x18]
mov eax, ebp
mov dword [esp], 0
lea ebp, [edi - 1]
call fcn.00485dc0
cmp ebp, dword [esp + 0x2c]
jbe 0x4876ad
mov esi, ebp
movzx eax, byte [esi]
mov ecx, dword [esp + 0x1c]
sub esi, 1
mov edx, dword [esp + 0x18]
mov dword [esp], 1
call fcn.00485dc0
cmp esi, dword [esp + 0x2c]
jne 0x487683
mov eax, dword [esp + 0x2c]
sub eax, edi
lea ebp, [ebp + eax + 1]
movzx ebp, byte [ebp]
jmp 0x48733b
lea eax, [ebp - 0x2b]
and eax, 0xfffffffd
jne 0x486c21
jmp 0x486de0
mov eax, dword [esp + 0x20]
test eax, eax
je 0x487ae0
mov eax, dword [esp + 0x90]
mov dword [esp + 0x5c], eax
lea eax, [esp + 0x90]
mov dword [esp + 0x1c], eax
mov edx, eax
mov eax, dword [esp + 0x18]
call fcn.00485d30
cmp eax, 0xffffffff
mov ebp, eax
je 0x487d7f
mov eax, dword [esp + 0x28]
xor edi, edi
mov dword [esp + 0x54], ebx
mov dword [esp + 0x20], edi
mov ebx, ebp
mov dword [esp + 0xa4], 0
mov edi, dword [esp + 0x18]
and eax, 0x80
mov ebp, eax
jmp 0x487752
sub esi, 1
test esi, esi
jle 0x487dd4
mov edx, dword [esp + 0x1c]
mov eax, edi
call fcn.00485d30
cmp eax, 0xffffffff
mov ebx, eax
je 0x487dd4
mov eax, dword [esp + 0x98]
movzx ecx, byte [esp + 0x34]
cmp cl, byte [eax + ebx]
je 0x4881b1
test ebp, ebp
jne 0x487731
lea eax, [esp + 0xa4]
mov dword [esp + 8], 1
mov byte [esp + 0xab], bl
mov dword [esp + 0xc], eax
lea eax, [esp + 0xab]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x4c]
mov dword [esp], eax
call fcn.00489170
cmp eax, 0xfffffffe
je 0x487915
add dword [esp + 0x4c], 2
test dword [esp + 0x28], 0x600
mov ecx, dword [esp + 0x4c]
je 0x48784c
mov eax, dword [esp + 0x24]
mov edx, dword [esp + 0x40]
mov dword [esp + 0x20], 0
mov eax, dword [eax]
add edx, edx
mov dword [esp + 0x38], edx
add edx, eax
cmp ecx, edx
jne 0x487731
mov ecx, dword [esp + 0x40]
mov edx, dword [esp + 0x38]
mov dword [esp + 0x20], esi
mov dword [esp + 0x4c], ebx
add ecx, 1
mov ebx, edx
mov esi, ecx
jmp 0x487810
cmp ebx, esi
jbe 0x4885dc
mov eax, dword [esp + 0x24]
mov ebx, esi
mov eax, dword [eax]
lea ecx, [ebx + ebx]
mov dword [esp], eax
mov dword [esp + 4], ecx
call sub.msvcrt.dll_realloc
test eax, eax
je 0x487800
mov ecx, dword [esp + 0x24]
mov edx, ebx
mov esi, dword [esp + 0x20]
mov ebx, dword [esp + 0x4c]
mov dword [esp + 0x40], edx
mov dword [esp + 0x20], 0
mov dword [ecx], eax
add eax, dword [esp + 0x38]
mov dword [esp + 0x4c], eax
jmp 0x487731
mov dword [esp + 0x20], 0
jmp 0x487731
mov dword [esp + 0x34], ebp
mov ebx, dword [esp + 0x64]
mov ebp, eax
mov eax, ecx
jmp 0x486cad
mov dword [esp + 0x34], ebp
mov ebx, dword [esp + 0x64]
mov ebp, eax
jmp 0x486cb5
mov ebp, ebx
mov ebx, dword [esp + 0x38]
mov dword [esp + 0x58], edi
mov eax, dword [esp + 0x20]
test eax, eax
jne 0x4860e8
mov eax, dword [esp + 0x58]
mov ecx, dword [esp + 0x40]
lea esi, [eax + 1]
mov byte [eax], 0
mov eax, dword [esp + 0x24]
mov edx, esi
call fcn.00485b60
mov dword [esp + 0x58], esi
add dword [esp + 0x3c], 1
mov esi, ebx
mov dword [esp + 0x24], 0
jmp 0x485ef5
mov eax, dword [esp + 0x40]
lea ebx, [esi - 1]
mov dword [esp + 0x28], esi
cmp eax, esi
lea edi, [eax + 1]
cmovl ebx, eax
add ebx, eax
mov esi, ebx
mov ebx, dword [esp + 0x24]
jmp 0x4878ec
cmp esi, edi
jbe 0x487dab
mov edx, dword [ebx]
mov esi, edi
mov dword [esp + 4], esi
mov dword [esp], edx
call sub.msvcrt.dll_realloc
test eax, eax
je 0x4878e0
mov edi, dword [esp + 0x24]
mov ebx, esi
mov esi, dword [esp + 0x28]
mov dword [edi], eax
add eax, dword [esp + 0x40]
mov dword [esp + 0x40], ebx
jmp 0x486609
add dword [esp + 0x20], 1
jmp 0x48773c
mov dword [esp + 0x20], ebx
mov ebx, dword [esp + 0x70]
mov eax, dword [esp + 0x20]
test eax, eax
je case.0x4861d9.1
test byte [esp + 0x28], 0x40
je 0x487945
cmp dword [esp + 0x20], 2
je case.0x4861d9.1
lea eax, [esp + 0x94]
mov dword [esp + 0x34], eax
mov edi, dword [esp + 0x20]
mov ecx, dword [esp + 0x98]
mov edx, dword [esp + 0x34]
mov eax, edi
call fcn.00485c10
test byte [esp + 0x28], 8
mov dword [esp + 0x98], eax
mov byte [eax + edi], 0
jne 0x488108
mov edi, dword [esp + 0x28]
mov eax, edi
test al, 4
lea eax, [esp + 0x9c]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x98]
mov dword [esp], eax
je 0x48801b
call fcn.00488f10
mov eax, edi
test al, 0x80
jne 0x487cf0
mov edx, dword [esp + 0x9c]
mov eax, dword [esp + 0x98]
cmp edx, eax
je 0x4861fa
mov edi, dword [esp + 0x38]
test edi, edi
je 0x488659
mov esi, dword [esp + 0x44]
cmp edi, 1
lea ecx, [esi + edi*4 - 4]
cmove ecx, esi
mov ecx, dword [ecx]
cmp dword [esp + 0x68], 0x2d
fstp qword [esp + 0x78]
fld qword [esp + 0x78]
je 0x487a0d
fstp qword [ecx]
cmp edx, eax
je case.0x4861d9.1
add dword [esp + 0x3c], 1
mov dword [esp + 0x20], 0
mov esi, ebx
jmp 0x485ef5
fchs
jmp 0x4879ef
mov ecx, dword [esp + 0x40]
mov dword [esp + 0x54], ebp
mov dword [esp + 0x58], ebx
mov ebp, dword [esp + 0x24]
lea edx, [ecx + ecx]
lea edi, [ecx + 1]
mov ebx, edx
jmp 0x487a3d
cmp ebx, edi
jbe 0x488074
mov eax, dword [ebp]
mov ebx, edi
mov dword [esp + 4], ebx
mov dword [esp], eax
call sub.msvcrt.dll_realloc
test eax, eax
je 0x487a30
mov edi, dword [esp + 0x24]
mov edx, ebx
mov ebp, dword [esp + 0x54]
mov ebx, dword [esp + 0x58]
mov dword [edi], eax
mov edi, dword [esp + 0x40]
mov dword [esp + 0x40], edx
add edi, eax
jmp 0x4864b7
cmp eax, 1
jne 0x486926
sub dword [esp + 0x28], 1
add dword [esp + 0x4c], 2
mov eax, dword [esp + 0x28]
test eax, eax
jle 0x487a9d
mov eax, dword [esp + 0x18]
mov edx, ebp
call fcn.00485d30
cmp eax, 0xffffffff
mov edi, eax
jne 0x486a79
mov eax, dword [esp + 0x20]
mov ebx, dword [esp + 0x38]
mov ebp, edi
test eax, eax
jne 0x4860e8
mov eax, dword [esp + 0x40]
mov edx, dword [esp + 0x4c]
mov esi, ebx
lea ecx, [eax + eax]
mov eax, dword [esp + 0x24]
call fcn.00485b60
add dword [esp + 0x3c], 1
mov dword [esp + 0x24], 0
jmp 0x485ef5
mov eax, dword [esp + 0x90]
mov dword [esp + 0x5c], eax
lea eax, [esp + 0x90]
mov dword [esp + 0x1c], eax
mov edx, eax
mov eax, dword [esp + 0x18]
call fcn.00485d30
cmp eax, 0xffffffff
mov ebp, eax
je 0x487d7f
mov edi, dword [esp + 0x28]
mov dword [esp + 0x54], ebx
mov ebx, ebp
mov eax, edi
and eax, 0x80
mov ecx, eax
mov eax, edi
mov edi, dword [esp + 0x58]
and eax, 0x600
mov ebp, ecx
mov dword [esp + 0x38], eax
jmp 0x487b6c
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 0x487fc5
sub esi, 1
test esi, esi
jle 0x487e0f
mov edx, dword [esp + 0x1c]
mov eax, dword [esp + 0x18]
call fcn.00485d30
cmp eax, 0xffffffff
mov ebx, eax
je 0x487e0f
mov eax, dword [esp + 0x98]
movzx ecx, byte [esp + 0x34]
cmp cl, byte [eax + ebx]
je 0x48818c
test ebp, ebp
jne 0x487b49
mov ecx, dword [esp + 0x38]
lea edx, [edi + 1]
mov byte [edi], bl
test ecx, ecx
jne 0x487b32
mov edi, edx
jmp 0x487b49
mov edx, dword [esp + 0x98]
add ebx, 1
mov byte [edx + eax], 1
movzx eax, byte [ebx]
jmp 0x486771
mov edx, dword [esp + 0x98]
mov dword [esp + 0x94], 0x100
mov eax, 0x100
test edx, edx
je 0x487bd6
mov dword [esp], edx
call sub.msvcrt.dll_free
mov eax, dword [esp + 0x94]
mov dword [esp], eax
call sub.msvcrt.dll_malloc
mov dword [esp + 0x98], eax
jmp 0x486725
mov dword [esp + 0x58], edi
mov ecx, ebx
mov edx, dword [esp + 0x58]
mov ebx, dword [esp + 0x38]
mov eax, dword [esp + 0x24]
mov esi, ebx
call fcn.00485b60
add dword [esp + 0x3c], 1
mov dword [esp + 0x24], 0
jmp 0x485ef5
mov eax, dword [esp + 0x30]
test byte [esp + 0x28], 0x10
mov dword [esp + 8], eax
lea eax, [esp + 0x9c]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x98]
mov dword [esp], eax
je 0x4880fe
call sub.msvcrt.dll_strtol
jmp 0x486f46
cmp eax, 1
mov ebp, ebx
jne 0x486926
mov eax, dword [esp + 0x20]
add dword [esp + 0x4c], 2
mov ebx, dword [esp + 0x4c]
test eax, eax
jne 0x487c85
test dword [esp + 0x28], 0x600
je 0x487c85
mov eax, dword [esp + 0x24]
mov ecx, dword [eax]
mov eax, dword [esp + 0x40]
lea edx, [eax + eax]
lea eax, [ecx + edx]
cmp ebx, eax
je 0x488a33
mov eax, dword [esp + 0x38]
test eax, eax
jle 0x487c96
sub eax, 1
mov dword [esp + 0x38], eax
je 0x487caa
mov edx, esi
mov eax, edi
call fcn.00485d30
cmp eax, 0xffffffff
mov ebp, eax
jne 0x4868ac
mov ebx, dword [esp + 0x34]
mov esi, dword [esp + 0x20]
test esi, esi
jne 0x4860e8
mov eax, dword [esp + 0x4c]
xor edi, edi
lea esi, [eax + 2]
mov word [eax], di
mov eax, dword [esp + 0x40]
mov edx, esi
lea ecx, [eax + eax]
mov eax, dword [esp + 0x24]
call fcn.00485b60
mov dword [esp + 0x4c], esi
add dword [esp + 0x3c], 1
mov esi, ebx
mov dword [esp + 0x24], 0
jmp 0x485ef5
fstp st(0)
jmp 0x487cfa
fstp st(0)
jmp 0x487cfa
fstp st(0)
mov eax, dword [esp + 0x98]
cmp dword [esp + 0x9c], eax
jne 0x4860e8
jmp case.0x4861d9.1
call sub.msvcrt.dll__errno
mov dword [eax], 0x16
mov eax, 0xffffffff
jmp 0x486222
mov ebx, dword [esp + 0x64]
jmp 0x4875c5
lea eax, [ebx + 2]
or dword [esp + 0x28], 0xc
mov dword [esp + 0x54], eax
movzx eax, byte [ebx + 2]
mov byte [esp + 0x34], al
jmp 0x4861a0
lea eax, [ebx + 2]
or dword [esp + 0x28], 0x404
mov dword [esp + 0x54], eax
movzx eax, byte [ebx + 2]
mov byte [esp + 0x34], al
jmp 0x4861a0
lea eax, [ebx + 2]
or dword [esp + 0x28], 1
mov dword [esp + 0x54], eax
movzx eax, byte [ebx + 2]
mov byte [esp + 0x34], al
jmp 0x4861a0
mov edi, ebp
jmp 0x4860a2
mov ecx, dword [esp + 0x1c]
mov edx, dword [esp + 0x18]
mov ebp, ebx
mov dword [esp], 1
mov eax, ebp
mov dword [esp + 0x58], edi
mov ebx, dword [esp + 0x38]
call fcn.00485dc0
jmp 0x487883
lea eax, [esp + 0x8c]
lea edx, [esp + 0x98]
call fcn.00485b90
mov eax, 0xffffffff
jmp 0x486222
mov eax, dword [esp + 0x50]
movzx eax, byte [eax]
jmp 0x4875de
mov ebp, ebx
mov edi, dword [esp + 0x20]
mov ebx, dword [esp + 0x54]
test edi, edi
jne 0x486926
mov eax, dword [esp + 0x5c]
cmp eax, dword [esp + 0x90]
je case.0x4861d9.1
mov eax, dword [esp + 0x28]
and eax, 0x80
mov dword [esp + 0x20], eax
jne 0x4860e8
jmp 0x487cba
mov ebp, ebx
mov ebx, dword [esp + 0x54]
mov dword [esp + 0x58], edi
mov eax, dword [esp + 0x5c]
cmp eax, dword [esp + 0x90]
je case.0x4861d9.1
test byte [esp + 0x28], 0x80
jne 0x485f28
mov eax, dword [esp + 0x58]
mov ecx, dword [esp + 0x40]
lea esi, [eax + 1]
mov byte [eax], 0
mov eax, dword [esp + 0x24]
mov edx, esi
call fcn.00485b60
mov dword [esp + 0x58], esi
add dword [esp + 0x3c], 1
mov esi, ebx
mov dword [esp + 0x20], 0
mov dword [esp + 0x24], 0
jmp 0x485ef5
lea eax, [esp + 0x94]
mov ecx, dword [esp + 0x98]
mov edi, 1
mov edx, eax
xor eax, eax
call fcn.00485c10
mov ecx, ebp
mov dword [esp + 0x98], eax
mov edx, dword [esp + 0x1c]
mov byte [eax], cl
xor eax, eax
test esi, esi
setg al
sub esi, eax
mov eax, dword [esp + 0x18]
call fcn.00485d30
mov ebp, eax
jmp 0x486e36
lea eax, [esp + 0x90]
mov dword [esp + 0x1c], eax
mov edx, eax
mov eax, dword [esp + 0x18]
call fcn.00485d30
cmp eax, 0xffffffff
mov ebp, eax
je 0x4889e7
mov eax, ebp
mov edi, dword [esp + 0x18]
mov ebp, ebx
mov ebx, dword [esp + 0x1c]
jmp 0x487eef
mov edx, ebx
mov eax, edi
call fcn.00485d30
cmp eax, 0xffffffff
je 0x487ef6
sub esi, 1
test esi, esi
jg 0x487ee1
mov ebx, ebp
mov dword [esp + 0x20], 0
mov ebp, eax
mov esi, ebx
jmp 0x485ef5
lea eax, [esp + 0x94]
mov ecx, dword [esp + 0x98]
mov edx, eax
mov eax, edi
call fcn.00485c10
mov edx, dword [esp + 0x1c]
mov dword [esp + 0x98], eax
lea ecx, [edi + 1]
mov byte [eax + edi], 0x30
mov eax, dword [esp + 0x18]
mov dword [esp + 0x20], ecx
call fcn.00485d30
mov ebp, eax
mov dword [esp], ebp
call sub.msvcrt.dll_tolower
cmp eax, 0x78
je 0x488938
mov ecx, dword [esp + 0x30]
test ecx, ecx
jne 0x488926
cmp ebp, 0xffffffff
mov dword [esp + 0x30], 8
setne al
test esi, esi
setne dl
and eax, edx
test al, al
jne 0x4872fe
jmp 0x486eab
mov eax, dword [esp + 0x28]
and eax, 4
mov dword [esp + 0x20], eax
je 0x4884b0
mov ecx, dword [esp + 0x38]
test ecx, ecx
je 0x4886c7
mov edi, dword [esp + 0x44]
cmp ecx, 1
lea eax, [edi + ecx*4 - 4]
cmove eax, edi
mov eax, dword [eax]
mov edx, dword [esp + 0x90]
mov dword [esp + 0x20], 0
mov esi, ebx
mov dword [eax], edx
jmp 0x485ef5
mov ecx, dword [esp + 0x40]
mov dword [esp + 0x58], esi
mov dword [esp + 0x60], ebx
mov esi, dword [esp + 0x24]
lea edx, [ecx + ecx]
lea edi, [ecx + 1]
mov ebx, edx
jmp 0x487fec
cmp ebx, edi
jbe 0x4883c0
mov eax, dword [esi]
mov ebx, edi
mov dword [esp + 4], ebx
mov dword [esp], eax
call sub.msvcrt.dll_realloc
test eax, eax
je 0x487fe0
mov edi, dword [esp + 0x24]
mov edx, ebx
mov esi, dword [esp + 0x58]
mov ebx, dword [esp + 0x60]
mov dword [edi], eax
mov edi, dword [esp + 0x40]
mov dword [esp + 0x40], edx
add edi, eax
jmp 0x487b49
call fcn.00488e60
test byte [esp + 0x28], 0x80
jne 0x487cf4
mov edx, dword [esp + 0x9c]
mov eax, dword [esp + 0x98]
cmp edx, eax
je 0x4861fe
mov edi, dword [esp + 0x38]
test edi, edi
je 0x4886b5
mov esi, dword [esp + 0x44]
cmp edi, 1
lea ecx, [esi + edi*4 - 4]
cmove ecx, esi
mov ecx, dword [ecx]
cmp dword [esp + 0x68], 0x2d
je 0x48806b
fstp dword [ecx]
jmp 0x4879f1
fchs
fstp dword [ecx]
jmp 0x4879f1
test dword [esp + 0x28], 0x400
jne 0x4880f7
mov eax, dword [esp + 0x24]
mov ecx, dword [esp + 0x40]
mov dword [esp + 0x24], 0
mov eax, dword [eax]
mov byte [eax + ecx - 1], 0
mov eax, dword [esp + 0x3c]
add eax, 1
lea edx, [esp + 0x98]
mov ecx, dword [esp + 0x24]
mov dword [esp], edx
lea edx, [esp + 0x8c]
call fcn.00485c80
jmp 0x486222
call fcn.00489660
mov dword [esp + 0x74], edx
jmp 0x486f46
test esi, esi
je 0x4884e8
mov edi, dword [esp + 0x38]
test edi, edi
je 0x488610
mov ecx, dword [esp + 0x44]
cmp edi, 1
lea edx, [ecx + edi*4 - 4]
cmove edx, ecx
mov edx, dword [edx]
jmp 0x486f9f
mov eax, 0xffffffff
jmp 0x48809c
call sub.msvcrt.dll_strtoul
jmp 0x486f46
lea eax, [esp + 0x9c]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x98]
mov dword [esp], eax
call fcn.00488f10
test byte [esp + 0x28], 0x80
jne 0x487cf8
mov edx, dword [esp + 0x9c]
mov eax, dword [esp + 0x98]
cmp edx, eax
je 0x486202
mov edi, dword [esp + 0x38]
test edi, edi
je 0x48866b
mov esi, dword [esp + 0x44]
cmp edi, 1
lea ecx, [esi + edi*4 - 4]
cmove ecx, esi
mov ecx, dword [ecx]
cmp dword [esp + 0x68], 0x2d
je 0x48816d
fstp xword [ecx]
jmp 0x4879f1
fchs
fstp xword [ecx]
jmp 0x4879f1
mov eax, dword [esp + 0x48]
mov ecx, dword [eax]
add eax, 4
mov dword [esp + 0x48], eax
mov dword [esp + 0x24], ecx
jmp 0x487272
mov ecx, dword [esp + 0x1c]
mov edx, dword [esp + 0x18]
mov ebp, ebx
mov dword [esp], 1
mov eax, ebp
mov dword [esp + 0x58], edi
mov ebx, dword [esp + 0x54]
call fcn.00485dc0
jmp 0x487e19
mov ecx, dword [esp + 0x1c]
mov edx, dword [esp + 0x18]
mov ebp, ebx
mov dword [esp], 1
mov eax, ebp
mov edi, dword [esp + 0x20]
mov ebx, dword [esp + 0x54]
call fcn.00485dc0
jmp 0x487dde
mov edi, dword [esp + 0x2c]
jmp 0x487529
mov eax, dword [esp + 0x48]
mov ecx, dword [eax]
add eax, 4
mov dword [esp + 0x48], eax
mov dword [esp + 0x24], ecx
jmp 0x4863fb
mov eax, dword [esp + 0x48]
mov ecx, dword [eax]
add eax, 4
mov dword [esp + 0x48], eax
mov dword [esp + 0x58], ecx
jmp 0x4871d8
mov eax, dword [esp + 0x48]
mov ecx, dword [eax]
add eax, 4
mov dword [esp + 0x48], eax
mov dword [esp + 0x4c], ecx
jmp 0x487210
mov eax, dword [esp + 0x48]
mov ecx, dword [eax]
add eax, 4
mov dword [esp + 0x48], eax
mov dword [esp + 0x24], ecx
jmp 0x4869c9
mov eax, dword [esp + 0x48]
mov ecx, dword [eax]
add eax, 4
mov dword [esp + 0x48], eax
mov dword [esp + 0x58], ecx
jmp 0x4865af
mov eax, dword [esp + 0x48]
mov ecx, dword [eax]
add eax, 4
mov dword [esp + 0x48], eax
mov dword [esp + 0x24], ecx
jmp 0x48680f
mov eax, dword [esp + 0x48]
mov edi, dword [eax]
add eax, 4
mov dword [esp + 0x48], eax
mov dword [esp + 0x4c], edi
jmp 0x487241
mov ecx, dword [esp + 0x48]
mov eax, dword [ecx]
add ecx, 4
mov dword [esp + 0x48], ecx
jmp 0x48653c
mov dword [esp + 0x20], ebx
mov ebx, dword [esp + 0x70]
mov ecx, dword [esp + 0x1c]
mov edx, dword [esp + 0x18]
mov eax, ebp
mov dword [esp], 0
call fcn.00485dc0
jmp 0x487927
mov dword [esp], eax
call sub.msvcrt.dll_tolower
cmp eax, 0x6e
je 0x4888a7
cmp eax, 0x69
jne 0x486bb0
lea eax, [esp + 0x94]
mov ecx, dword [esp + 0x98]
mov dword [esp + 0x34], eax
mov edx, eax
xor eax, eax
call fcn.00485c10
mov ecx, ebp
mov dword [esp + 0x98], eax
mov byte [eax], cl
mov edi, 1
mov ebp, ebx
jmp 0x48830a
test esi, esi
je case.0x4861d9.1
mov edi, edx
mov edx, dword [esp + 0x1c]
mov eax, dword [esp + 0x18]
call fcn.00485d30
cmp eax, 0xffffffff
mov ebx, eax
je case.0x4861d9.1
mov dword [esp], eax
call sub.msvcrt.dll_tolower
movsx edx, byte [edi + 0x5af168]
cmp eax, edx
jne case.0x4861d9.1
mov edx, dword [esp + 0x34]
xor eax, eax
mov ecx, dword [esp + 0x98]
test esi, esi
setg al
sub esi, eax
mov eax, edi
call fcn.00485c10
lea edx, [edi + 1]
cmp byte [edx + 0x5af168], 0
mov dword [esp + 0x98], eax
mov byte [eax + edi], bl
jne 0x488300
mov eax, ebx
test esi, esi
mov ebx, ebp
mov dword [esp + 0x20], edx
mov ebp, eax
je 0x487950
mov edx, dword [esp + 0x1c]
mov eax, dword [esp + 0x18]
call fcn.00485d30
cmp eax, 0xffffffff
mov ebp, eax
je 0x487950
mov dword [esp], eax
call sub.msvcrt.dll_tolower
cmp eax, 0x69
je 0x488b3f
mov ecx, dword [esp + 0x1c]
mov edx, dword [esp + 0x18]
mov eax, ebp
mov dword [esp], 0
call fcn.00485dc0
jmp 0x487950
test dword [esp + 0x28], 0x400
jne 0x4880f7
mov eax, dword [esp + 0x24]
mov edi, dword [esp + 0x40]
mov dword [esp + 0x24], 0
mov eax, dword [eax]
mov byte [eax + edi - 1], 0
mov eax, dword [esp + 0x3c]
add eax, 1
jmp 0x48809c
test byte [esp + 0x28], 4
je 0x488686
mov edi, dword [esp + 0x38]
test edi, edi
jne 0x488840
mov edi, dword [esp + 0x48]
mov edx, dword [edi]
lea ecx, [edi + 4]
mov dword [esp + 0x48], ecx
mov dword [edx], eax
jmp 0x486fa8
mov ecx, dword [esp + 0x38]
test ecx, ecx
je 0x4885c6
mov edi, dword [esp + 0x44]
cmp ecx, 1
lea eax, [edi + ecx*4 - 4]
cmove eax, edi
mov eax, dword [eax]
mov dword [esp + 0x58], eax
mov eax, dword [esp + 0x58]
test eax, eax
jne 0x4866ec
jmp case.0x4861d9.1
lea eax, [esp + 0x94]
mov ecx, dword [esp + 0x98]
mov dword [esp + 0x34], eax
mov edx, eax
xor eax, eax
call fcn.00485c10
mov ecx, ebp
test esi, esi
mov dword [esp + 0x98], eax
mov byte [eax], cl
jne 0x4882ee
jmp case.0x4861d9.1
test ecx, ecx
je 0x4886d9
mov edi, dword [esp + 0x44]
cmp ecx, 1
lea eax, [edi + ecx*4 - 4]
cmove eax, edi
mov eax, dword [eax]
mov dword [esp + 0x4c], eax
mov eax, dword [esp + 0x4c]
test eax, eax
jne 0x4866ec
jmp case.0x4861d9.1
test byte [esp + 0x28], 2
je 0x48876a
mov edi, dword [esp + 0x38]
test edi, edi
je 0x488857
mov ecx, dword [esp + 0x44]
cmp edi, 1
lea eax, [ecx + edi*4 - 4]
cmove eax, ecx
mov eax, dword [eax]
mov edx, dword [esp + 0x90]
mov esi, ebx
mov word [eax], dx
jmp 0x485ef5
test byte [esp + 0x28], 4
je 0x4887af
mov ecx, dword [esp + 0x38]
test ecx, ecx
je 0x4887d3
mov edi, dword [esp + 0x44]
cmp ecx, 1
lea edx, [edi + ecx*4 - 4]
cmove edx, edi
mov edx, dword [edx]
mov dword [edx], eax
jmp 0x486fa8
lea eax, [esp + 0x94]
mov ecx, dword [esp + 0x98]
mov dword [esp + 0x34], eax
mov edx, eax
xor eax, eax
call fcn.00485c10
mov ecx, ebp
test esi, esi
mov dword [esp + 0x98], eax
mov byte [eax], cl
je case.0x4861d9.1
mov edi, 1
mov ebp, ebx
jmp 0x488557
test esi, esi
je case.0x4861d9.1
mov edi, edx
mov edx, dword [esp + 0x1c]
mov eax, dword [esp + 0x18]
call fcn.00485d30
cmp eax, 0xffffffff
mov ebx, eax
je case.0x4861d9.1
mov dword [esp], eax
call sub.msvcrt.dll_tolower
movsx edx, byte [edi + 0x5af164]
cmp eax, edx
jne case.0x4861d9.1
mov edx, dword [esp + 0x34]
xor eax, eax
mov ecx, dword [esp + 0x98]
test esi, esi
setg al
sub esi, eax
mov eax, edi
call fcn.00485c10
lea edx, [edi + 1]
cmp byte [edx + 0x5af164], 0
mov dword [esp + 0x98], eax
mov byte [eax + edi], bl
jne 0x48854d
mov eax, ebx
mov dword [esp + 0x20], edx
mov ebx, ebp
mov ebp, eax
jmp 0x487950
mov eax, dword [esp + 0x48]
mov edi, dword [eax]
add eax, 4
mov dword [esp + 0x48], eax
mov dword [esp + 0x58], edi
jmp 0x48843c
test dword [esp + 0x28], 0x400
jne 0x4880f7
mov eax, dword [esp + 0x24]
mov edi, dword [esp + 0x40]
xor ebp, ebp
mov eax, dword [eax]
mov word [eax + edi*2 - 2], bp
mov eax, dword [esp + 0x3c]
mov dword [esp + 0x24], 0
add eax, 1
jmp 0x48809c
mov edi, dword [esp + 0x48]
lea ecx, [edi + 4]
mov edx, dword [edi]
mov dword [esp + 0x48], ecx
jmp 0x486f9f
mov dword [esp + 0x34], ebx
mov ebp, eax
mov ebx, dword [esp + 0x64]
jmp 0x486d82
mov eax, dword [esp + 0x48]
mov ecx, dword [eax]
add eax, 4
mov dword [esp + 0x48], eax
mov dword [esp + 0x24], ecx
jmp 0x487122
mov ecx, dword [esp + 0x48]
lea edi, [ecx + 4]
mov edx, dword [ecx]
mov dword [esp + 0x48], edi
jmp 0x486f9f
mov edi, dword [esp + 0x48]
mov ecx, dword [edi]
add edi, 4
mov dword [esp + 0x48], edi
jmp 0x4879e0
mov edi, dword [esp + 0x48]
mov ecx, dword [edi]
add edi, 4
mov dword [esp + 0x48], edi
jmp 0x48815f
mov edi, dword [esp + 0x50]
jmp 0x486cad
test byte [esp + 0x28], 2
je 0x4888e4
mov ecx, dword [esp + 0x38]
test ecx, ecx
je 0x4888d2
mov edi, dword [esp + 0x44]
cmp ecx, 1
lea edx, [edi + ecx*4 - 4]
cmove edx, edi
mov edx, dword [edx]
mov word [edx], ax
jmp 0x486fa8
mov edi, dword [esp + 0x48]
mov ecx, dword [edi]
add edi, 4
mov dword [esp + 0x48], edi
jmp 0x48805d
mov ecx, dword [esp + 0x48]
mov eax, dword [ecx]
add ecx, 4
mov dword [esp + 0x48], ecx
jmp 0x487fad
mov eax, dword [esp + 0x48]
mov ecx, dword [eax]
add eax, 4
mov dword [esp + 0x48], eax
mov dword [esp + 0x4c], ecx
jmp 0x48849f
lea eax, [esp + 0x94]
mov ecx, dword [esp + 0x98]
mov edx, eax
mov dword [esp + 0x34], eax
xor eax, eax
call fcn.00485c10
mov edx, dword [esp + 0x1c]
mov dword [esp + 0x98], eax
mov byte [eax], 0x30
mov eax, dword [esp + 0x18]
call fcn.00485d30
test esi, esi
mov ebp, eax
jle 0x488954
mov edi, esi
sub edi, 1
jne 0x488b27
xor esi, esi
mov dword [esp + 0x20], 1
jmp 0x486bca
mov dword [esp + 0x34], ebx
mov ebp, eax
mov ebx, dword [esp + 0x64]
jmp 0x486d8a
mov eax, dword [esp + 0x48]
mov ecx, dword [eax]
add eax, 4
mov dword [esp + 0x48], eax
mov dword [esp + 0x24], ecx
jmp 0x48668b
mov eax, dword [esp + 0x28]
and eax, 1
mov dword [esp + 0x20], eax
je 0x48887b
mov ecx, dword [esp + 0x38]
test ecx, ecx
je 0x488869
mov edi, dword [esp + 0x44]
cmp ecx, 1
lea eax, [edi + ecx*4 - 4]
cmove eax, edi
mov eax, dword [eax]
mov edx, dword [esp + 0x90]
mov dword [esp + 0x20], 0
mov esi, ebx
mov byte [eax], dl
jmp 0x485ef5
test byte [esp + 0x28], 2
je 0x4887f9
mov edi, dword [esp + 0x38]
test edi, edi
je 0x4887e7
mov ecx, dword [esp + 0x44]
cmp edi, 1
lea edx, [ecx + edi*4 - 4]
cmove edx, ecx
mov edx, dword [edx]
jmp 0x4886ad
mov ecx, dword [esp + 0x48]
mov edx, dword [ecx]
add ecx, 4
mov dword [esp + 0x48], ecx
mov dword [edx], eax
jmp 0x486fa8
mov edi, dword [esp + 0x48]
lea ecx, [edi + 4]
mov edx, dword [edi]
mov dword [esp + 0x48], ecx
jmp 0x4886ad
test byte [esp + 0x28], 1
je 0x488823
mov ecx, dword [esp + 0x38]
test ecx, ecx
je 0x488b13
mov edi, dword [esp + 0x44]
cmp ecx, 1
lea edx, [edi + ecx*4 - 4]
cmove edx, edi
mov edx, dword [edx]
mov byte [edx], al
jmp 0x486fa8
mov edi, dword [esp + 0x38]
test edi, edi
jne 0x488840
mov edi, dword [esp + 0x48]
mov edx, dword [edi]
add edi, 4
mov dword [esp + 0x48], edi
mov dword [edx], eax
jmp 0x486fa8
mov ecx, dword [esp + 0x44]
cmp edi, 1
lea edx, [ecx + edi*4 - 4]
cmove edx, ecx
mov edx, dword [edx]
mov dword [edx], eax
jmp 0x486fa8
mov edi, dword [esp + 0x48]
lea ecx, [edi + 4]
mov eax, dword [edi]
mov dword [esp + 0x48], ecx
jmp 0x4884d7
mov ecx, dword [esp + 0x48]
mov eax, dword [ecx]
add ecx, 4
mov dword [esp + 0x48], ecx
jmp 0x488797
mov edi, dword [esp + 0x38]
test edi, edi
je 0x488a0f
mov ecx, dword [esp + 0x44]
cmp edi, 1
lea eax, [ecx + edi*4 - 4]
cmove eax, ecx
mov eax, dword [eax]
mov edx, dword [esp + 0x90]
mov esi, ebx
mov dword [eax], edx
jmp 0x485ef5
lea eax, [esp + 0x94]
mov ecx, dword [esp + 0x98]
mov dword [esp + 0x34], eax
mov edx, eax
xor eax, eax
call fcn.00485c10
mov ecx, ebp
mov dword [esp + 0x98], eax
mov byte [eax], cl
jmp 0x488544
mov ecx, dword [esp + 0x48]
mov edx, dword [ecx]
add ecx, 4
mov dword [esp + 0x48], ecx
jmp 0x4886ad
test byte [esp + 0x28], 1
je 0x488aa5
mov edi, dword [esp + 0x38]
test edi, edi
je 0x488ac5
mov ecx, dword [esp + 0x44]
cmp edi, 1
lea edx, [ecx + edi*4 - 4]
cmove edx, ecx
mov edx, dword [edx]
mov byte [edx], al
jmp 0x486fa8
mov eax, dword [esp + 0x2c]
jmp 0x4875c5
mov eax, dword [esp + 0x2c]
xor edx, edx
jmp 0x486d0b
test esi, esi
setne al
cmp ebp, 0xffffffff
setne dl
and eax, edx
jmp 0x487f73
test dword [esp + 0x30], 0xffffffef
je 0x4889b5
cmp ebp, 0xffffffff
setne al
test esi, esi
setne dl
and eax, edx
jmp 0x487f73
mov dword [esp], eax
call sub.msvcrt.dll_tolower
cmp eax, 0x78
jne 0x488738
mov ecx, dword [esp + 0x98]
mov edx, dword [esp + 0x34]
mov eax, 1
call fcn.00485c10
mov ecx, ebp
mov dword [esp + 0x98], eax
mov edx, dword [esp + 0x1c]
mov byte [eax + 1], cl
mov eax, dword [esp + 0x28]
and ah, 0xfe
or eax, 0x40
mov dword [esp + 0x28], eax
mov eax, dword [esp + 0x18]
call fcn.00485d30
mov byte [esp + 0x60], 0x70
mov ebp, eax
mov dword [esp + 0x20], 2
jmp 0x486bca
xor eax, eax
test esi, esi
mov edx, dword [esp + 0x1c]
setg al
sub esi, eax
mov eax, dword [esp + 0x18]
call fcn.00485d30
test esi, esi
mov ebp, eax
mov dword [esp + 0x30], 0x10
setne al
cmp ebp, 0xffffffff
setne dl
and eax, edx
jmp 0x487f73
mov ecx, dword [esp + 0x3c]
mov eax, 0xffffffff
mov edi, eax
test ecx, ecx
cmovne edi, ecx
jmp 0x4860ab
mov edi, dword [esp + 0x64]
mov ebx, dword [esp + 0x70]
mov ebp, eax
mov dword [esp + 0x20], edi
jmp 0x488293
mov edi, dword [esp + 0x48]
lea ecx, [edi + 4]
mov eax, dword [edi]
mov dword [esp + 0x48], ecx
jmp 0x488897
mov eax, dword [esp + 0x3c]
test eax, eax
cmove eax, dword [esp + 0x68]
mov edi, eax
jmp 0x4860ab
mov eax, dword [esp + 0x40]
mov ebx, edx
add eax, 1
mov dword [esp + 0x4c], eax
jmp 0x488a56
mov eax, dword [esp + 0x4c]
cmp ebx, eax
jbe 0x4885dc
mov ecx, dword [esp + 0x24]
mov ebx, eax
mov ecx, dword [ecx]
lea eax, [ebx + ebx]
mov dword [esp], ecx
mov dword [esp + 0x54], edx
mov dword [esp + 4], eax
call sub.msvcrt.dll_realloc
test eax, eax
mov edx, dword [esp + 0x54]
je 0x488a42
mov ecx, dword [esp + 0x24]
mov dword [esp + 0x40], ebx
mov dword [ecx], eax
add eax, edx
mov dword [esp + 0x4c], eax
jmp 0x487c85
mov ecx, dword [esp + 0x1c]
mov edx, dword [esp + 0x18]
mov eax, ebp
mov dword [esp], 1
mov ebx, dword [esp + 0x34]
call fcn.00485dc0
jmp 0x487cae
mov ecx, dword [esp + 0x38]
test ecx, ecx
jne 0x4884ff
mov ecx, dword [esp + 0x48]
mov edx, dword [ecx]
lea edi, [ecx + 4]
mov dword [esp + 0x48], edi
mov dword [edx], eax
jmp 0x486fa8
mov edi, dword [esp + 0x48]
mov edx, dword [edi]
lea ecx, [edi + 4]
mov dword [esp + 0x48], ecx
mov byte [edx], al
jmp 0x486fa8
test dword [esp + 0x28], 0x400
mov eax, 0xffffffff
cmove eax, dword [esp + 0x3c]
mov edi, eax
jmp 0x4860ab
lea eax, [esp + 0x98]
lea edx, [esp + 0x8c]
xor ecx, ecx
mov dword [esp], eax
mov eax, dword [esp + 0x3c]
call fcn.00485c80
jmp 0x486222
mov ecx, dword [esp + 0x48]
mov edx, dword [ecx]
add ecx, 4
mov dword [esp + 0x48], ecx
mov byte [edx], al
jmp 0x486fa8
mov dword [esp], eax
call sub.msvcrt.dll_tolower
cmp eax, 0x78
je 0x488c0d
mov esi, edi
jmp 0x488738
test esi, esi
jle 0x488c60
mov ecx, dword [esp + 0x98]
mov edx, dword [esp + 0x34]
sub esi, 1
mov eax, dword [esp + 0x20]
call fcn.00485c10
lea ecx, [edi + 2]
mov edi, dword [esp + 0x20]
test esi, esi
mov dword [esp + 0x98], eax
mov dword [esp + 0x54], ecx
mov ecx, ebp
mov byte [eax + edi], cl
je case.0x4861d9.1
mov edi, 0x5af15f
jmp 0x488be9
mov dword [esp], eax
call sub.msvcrt.dll_tolower
movsx edx, byte [edi]
cmp eax, edx
jne case.0x4861d9.1
xor eax, eax
test esi, esi
mov ecx, dword [esp + 0x98]
setg al
mov edx, dword [esp + 0x34]
add edi, 1
sub esi, eax
mov eax, dword [esp + 0x54]
call fcn.00485c10
mov ecx, dword [esp + 0x54]
cmp byte [edi], 0
mov dword [esp + 0x98], eax
lea edx, [ecx + 1]
mov dword [esp + 0x20], edx
mov edx, ecx
mov ecx, ebp
mov byte [eax + edx], cl
je 0x487950
test esi, esi
je case.0x4861d9.1
mov eax, dword [esp + 0x20]
mov dword [esp + 0x54], eax
mov edx, dword [esp + 0x1c]
mov eax, dword [esp + 0x18]
call fcn.00485d30
cmp eax, 0xffffffff
mov ebp, eax
jne 0x488b84
jmp case.0x4861d9.1
mov ebp, ebx
mov ebx, dword [esp + 0x5c]
jmp 0x487658
mov ecx, dword [esp + 0x98]
mov edx, dword [esp + 0x34]
mov eax, 1
sub esi, 2
call fcn.00485c10
mov ecx, ebp
mov dword [esp + 0x98], eax
mov edx, dword [esp + 0x1c]
mov byte [eax + 1], cl
mov eax, dword [esp + 0x28]
and ah, 0xfe
or eax, 0x40
mov dword [esp + 0x28], eax
mov eax, dword [esp + 0x18]
call fcn.00485d30
mov byte [esp + 0x60], 0x70
mov ebp, eax
mov dword [esp + 0x20], 2
jmp 0x486bca
mov ecx, dword [esp + 0x98]
mov edx, dword [esp + 0x34]
mov eax, dword [esp + 0x20]
call fcn.00485c10
lea ecx, [edi + 2]
mov edi, dword [esp + 0x20]
mov dword [esp + 0x98], eax
mov dword [esp + 0x54], ecx
mov ecx, ebp
mov byte [eax + edi], cl
jmp 0x488b7d