Function at 0x4a6b30
Capabilities:
Parse credit card information
Resolve function by parsing pe exports

Disassembly:
push ebp
mov ebp, eax
push edi
push esi
mov esi, edx
push ebx
sub esp, 0xac
mov dword [esp + 0x30], ecx
mov ecx, dword [eax]
mov dword [esp + 0x74], 0
test ecx, ecx
mov dword [esp + 0x78], 0
sete al
test edx, edx
mov dword [esp + 0x7c], 0
mov dword [esp + 0x80], 0
sete dl
or al, dl
jne 0x4a8508
mov dword [esp + 0x90], 0
mov dword [esp + 0x94], 0
call sub.msvcrt.dll_localeconv
mov eax, dword [eax]
mov dword [esp + 0x50], eax
call sub.msvcrt.dll_localeconv
mov ecx, dword [eax + 4]
mov dword [esp + 0x28], ecx
test ecx, ecx
je 0x4a6bb6
xor eax, eax
cmp byte [ecx], 0
cmovne eax, ecx
mov dword [esp + 0x28], eax
movzx eax, byte [esi]
test al, al
je 0x4a84f9
mov edi, dword [esp + 0x30]
mov dword [esp + 0x34], 0
mov dword [esp + 0x18], 0
mov dword [esp + 0x24], 0
mov dword [esp + 0x3c], 0
mov dword [esp + 0x20], 0
mov dword [esp + 0x4c], 0
mov dword [esp + 0x40], 0
mov dword [esp + 0x14], ebp
mov dword [esp + 0x10], esi
mov dword [esp + 0x38], edi
xor edi, edi
test al, al
js 0x4a6dc0
mov eax, dword [esp + 0x10]
movzx ebx, byte [eax]
lea esi, [eax + 1]
cmp bl, 0x25
je 0x4a6e38
mov dword [esp], ebx
call sub.msvcrt.dll_isspace
test eax, eax
jne 0x4a6d00
lea eax, [esp + 0x78]
mov dword [esp + 0x2c], eax
mov edx, eax
mov eax, dword [esp + 0x14]
call fcn.004a6a40
mov edi, eax
cmp eax, 0xffffffff
je 0x4a82f8
mov eax, dword [esp + 0x18]
test eax, eax
je 0x4a6c6c
mov dword [esp], edi
call sub.msvcrt.dll_isspace
test eax, eax
jne 0x4a7158
cmp ebx, edi
je 0x4a6e20
mov ebp, dword [esp + 0x14]
test byte [ebp + 0x1004], 1
je 0x4a71e0
mov eax, dword [ebp + 0x1008]
sub dword [esp + 0x78], 1
mov dword [ebp + eax*4 + 4], edi
add eax, 1
mov dword [ebp + 0x1008], eax
mov ebx, dword [esp + 0x74]
test ebx, ebx
je 0x4a6cb9
lea esi, [esi]
mov eax, ebx
mov ebx, dword [ebx + 4]
mov dword [esp], eax
call sub.msvcrt.dll_free
test ebx, ebx
jne 0x4a6ca8
mov edi, dword [esp + 0x20]
mov dword [esp + 0x74], 0
test edi, edi
je 0x4a6cd9
mov eax, dword [edi]
mov dword [esp], eax
call sub.msvcrt.dll_free
mov dword [edi], 0
mov eax, dword [esp + 0x80]
mov dword [esp], eax
call sub.msvcrt.dll_free
mov eax, dword [esp + 0x24]
add esp, 0xac
pop ebx
pop esi
pop edi
pop ebp
ret
mov dword [esp + 0x10], esi
mov dword [esp + 0x18], 1
mov eax, dword [esp + 0x10]
movzx eax, byte [eax]
test al, al
jne 0x4a6c0b
mov ecx, dword [esp + 0x18]
mov ebp, dword [esp + 0x14]
test ecx, ecx
je 0x4a6d71
lea esi, [esp + 0x78]
lea esi, [esi]
nop
mov edx, esi
mov eax, ebp
call fcn.004a6a40
mov dword [esp], eax
mov ebx, eax
call sub.msvcrt.dll_isspace
test eax, eax
jne 0x4a6d30
cmp ebx, 0xffffffff
je 0x4a6d71
test byte [ebp + 0x1004], 1
je 0x4a9350
mov eax, dword [ebp + 0x1008]
sub dword [esp + 0x78], 1
mov dword [ebp + eax*4 + 4], ebx
add eax, 1
mov dword [ebp + 0x1008], eax
mov ebx, dword [esp + 0x74]
mov esi, dword [esp + 0x80]
test ebx, ebx
je 0x4a6d91
mov eax, ebx
mov ebx, dword [ebx + 4]
mov dword [esp], eax
call sub.msvcrt.dll_free
test ebx, ebx
jne 0x4a6d80
mov edi, dword [esp + 0x20]
mov dword [esp + 0x74], 0
test edi, edi
je 0x4a6db1
mov eax, dword [edi]
mov dword [esp], eax
call sub.msvcrt.dll_free
mov dword [edi], 0
mov dword [esp], esi
call sub.msvcrt.dll_free
jmp 0x4a6ce8
mov esi, dword [esp + 0x10]
mov dword [esp], esi
call sub.msvcrt.dll_strlen
lea edx, [esp + 0x90]
mov dword [esp], esi
mov dword [esp + 8], edx
mov dword [esp + 4], eax
call fcn.004b70e0
test eax, eax
jle 0x4a6c13
mov esi, dword [esp + 0x10]
lea ebp, [esp + 0x78]
lea ebx, [esi + eax]
mov eax, dword [esp + 0x14]
mov edx, ebp
call fcn.004a6a40
mov edi, eax
cmp eax, 0xffffffff
je 0x4a8143
movzx eax, byte [esi]
add esi, 1
cmp edi, eax
jne 0x4a8143
cmp esi, ebx
jne 0x4a6df6
jmp 0x4a6e28
mov dword [esp + 0x18], 0
mov dword [esp + 0x10], esi
jmp 0x4a6d0c
mov eax, dword [esp + 0x10]
mov dword [esp + 0x44], 0
movzx edx, byte [eax + 1]
mov eax, edx
sub edx, 0x30
cmp edx, 9
jbe 0x4a7780
mov ecx, dword [esp + 0x28]
xor ebx, ebx
jmp 0x4a6e7a
cmp al, 0x27
je 0x4a6e90
cmp al, 0x49
jne 0x4a6ed0
movzx eax, byte [esi + 1]
cmp al, 0x36
je 0x4a6ea0
cmp al, 0x33
je 0x4a6eb8
or ebx, 4
add esi, 1
cmp al, 0x2a
jne 0x4a6e60
movzx eax, byte [esi + 1]
or bl, 0x80
jmp 0x4a6e77
mov edx, ebx
movzx eax, byte [esi + 1]
or dh, 1
test ecx, ecx
cmovne ebx, edx
jmp 0x4a6e77
cmp byte [esi + 2], 0x34
jne 0x4a6e74
movzx eax, byte [esi + 3]
or ebx, 0xc
add esi, 2
jmp 0x4a6e77
cmp byte [esi + 2], 0x32
jne 0x4a6e74
movzx eax, byte [esi + 3]
or ebx, 4
add esi, 2
jmp 0x4a6e77
movzx edx, al
xor ebp, ebp
lea ecx, [edx - 0x30]
cmp ecx, 9
ja 0x4a819e
lea esi, [esi]
lea eax, [ebp + ebp*4]
add esi, 1
lea ebp, [edx + eax*2 - 0x30]
movzx edx, byte [esi]
lea ecx, [edx - 0x30]
mov eax, edx
cmp ecx, 9
jbe 0x4a6ee8
test ebp, ebp
mov edx, 0xffffffff
cmove ebp, edx
test al, al
je 0x4a81a8
sub eax, 0x4c
cmp al, 0x2e
ja case.0x4a6f1c.1
movzx eax, al
jmp dword [eax*4 + 0x5eae94]
movzx eax, byte [esi]
mov dword [esp + 0x48], esi
mov byte [esp + 0x2c], al
lea esi, [esi]
nop
cmp byte [esp + 0x2c], 0
je 0x4a8d28
mov eax, dword [esp + 0x48]
add eax, 1
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0x18]
test eax, eax
jne 0x4a7968
movzx ecx, byte [esp + 0x2c]
cmp cl, 0x5b
jne 0x4a7210
mov eax, ebx
mov edi, ebx
and eax, 0x80
and edi, 4
mov dword [esp + 0x54], eax
mov dword [esp + 0x18], edi
jne 0x4a7d62
mov esi, dword [esp + 0x54]
test esi, esi
jne 0x4a7024
test bh, 6
je 0x4a91da
mov ecx, dword [esp + 0x44]
test ecx, ecx
jne 0x4a9907
mov eax, dword [esp + 0x38]
mov edi, dword [eax]
add eax, 4
mov dword [esp + 0x38], eax
mov dword [esp + 0x20], edi
mov edx, dword [esp + 0x20]
test edx, edx
je 0x4a94c4
mov dword [esp], 0x64
call sub.msvcrt.dll_malloc
mov edi, dword [esp + 0x20]
mov dword [esp + 0x4c], eax
mov dword [edi], eax
test eax, eax
je 0x4a7dba
mov esi, dword [esp + 0x74]
test esi, esi
je 0x4a6ff2
mov edx, dword [esi]
mov eax, esi
lea ecx, [edx + 1]
cmp edx, 0x1f
jbe 0x4a700e
mov dword [esp], 0x88
call sub.msvcrt.dll_malloc
mov ecx, 1
xor edx, edx
mov dword [eax], 0
mov dword [eax + 4], esi
mov edi, dword [esp + 0x20]
mov dword [esp + 0x74], eax
mov dword [eax], ecx
mov dword [eax + edx*4 + 8], edi
mov dword [esp + 0x40], 0x64
mov edi, dword [esp + 0x48]
movzx eax, byte [edi + 1]
lea edx, [edi + 2]
mov edi, dword [esp + 0x80]
cmp al, 0x5e
mov eax, 0x7fffffff
cmovne edx, dword [esp + 0x10]
mov dword [esp + 0x44], edi
sete byte [esp + 0x48]
test ebp, ebp
cmovs ebp, eax
cmp dword [esp + 0x7c], 0xff
mov dword [esp + 0x10], edx
ja 0x4a708e
mov dword [esp + 0x7c], 0x100
mov eax, 0x100
test edi, edi
je 0x4a707b
mov dword [esp], edi
call sub.msvcrt.dll_free
mov eax, dword [esp + 0x7c]
mov dword [esp], eax
call sub.msvcrt.dll_malloc
mov dword [esp + 0x44], eax
mov dword [esp + 0x80], eax
mov eax, dword [esp + 0x44]
lea edi, [eax + 4]
mov dword [eax], 0
mov dword [eax + 0xfc], 0
and edi, 0xfffffffc
sub eax, edi
mov ecx, eax
xor eax, eax
add ecx, 0x100
shr ecx, 2
rep stosd dword es:[edi], eax
mov eax, dword [esp + 0x10]
movzx eax, byte [eax]
cmp al, 0x5d
je 0x4a8939
cmp al, 0x2d
je 0x4a8939
add dword [esp + 0x10], 1
test al, al
je 0x4a7ada
mov dword [esp + 0x2c], ebx
mov edx, dword [esp + 0x10]
jmp 0x4a7104
mov edi, dword [esp + 0x44]
mov byte [edi + eax], 1
movzx eax, byte [edx - 1]
test al, al
je 0x4a7ada
cmp al, 0x5d
je 0x4a89bb
add edx, 1
cmp al, 0x2d
jne 0x4a70f0
movzx ecx, byte [edx - 1]
cmp cl, 0x5d
je 0x4a70f0
test cl, cl
je 0x4a70f0
movzx esi, byte [edx - 3]
mov ebx, esi
cmp bl, cl
ja 0x4a70f0
jae 0x4a979b
mov ebx, dword [esp + 0x2c]
mov edi, dword [esp + 0x44]
mov ecx, esi
movzx eax, cl
add ecx, 1
mov byte [edi + eax], 1
movzx eax, byte [edx - 1]
cmp al, cl
ja 0x4a713a
mov dword [esp + 0x2c], ebx
jmp 0x4a70fc
mov ebp, dword [esp + 0x14]
mov edi, dword [esp + 0x2c]
mov dword [esp + 0x10], ebx
jmp 0x4a7180
mov dword [esp], eax
call sub.msvcrt.dll_isspace
test eax, eax
je 0x4a7a76
mov edx, edi
mov eax, ebp
call fcn.004a6a40
mov ebx, eax
cmp eax, 0xffffffff
jne 0x4a7170
mov eax, dword [esp + 0x24]
test eax, eax
je 0x4a7a88
mov ebx, dword [esp + 0x74]
test ebx, ebx
je 0x4a71c0
lea esi, [esi]
mov eax, ebx
mov ebx, dword [ebx + 4]
mov dword [esp], eax
call sub.msvcrt.dll_free
test ebx, ebx
jne 0x4a71a8
lea esi, [esi]
mov ebx, dword [esp + 0x20]
mov dword [esp + 0x74], 0
test ebx, ebx
je 0x4a6cd9
mov edi, dword [esp + 0x20]
jmp 0x4a6cc9
mov eax, dword [ebp]
mov dword [esp], edi
mov dword [esp + 4], eax
call sub.msvcrt.dll_ungetc
sub dword [esp + 0x78], 1
jmp 0x4a6c9d
lea eax, [esi + 1]
or ebx, 4
mov dword [esp + 0x48], eax
movzx eax, byte [esi + 1]
mov byte [esp + 0x2c], al
jmp 0x4a6f38
mov eax, ecx
and eax, 0xffffffdf
cmp al, 0x43
je 0x4a7222
cmp cl, 0x6e
jne 0x4a7968
movzx eax, byte [esp + 0x2c]
cmp al, 0x63
je 0x4a77e0
cmp al, 0x73
jne 0x4a7388
test bl, 4
jne case.0x4a73b0.46
mov eax, ebx
and eax, 0x80
mov dword [esp + 0x18], eax
jne 0x4a72e7
test bh, 6
je 0x4a8c3d
mov eax, dword [esp + 0x44]
test eax, eax
jne 0x4a93a5
mov eax, dword [esp + 0x38]
mov edi, dword [eax]
add eax, 4
mov dword [esp + 0x38], eax
mov dword [esp + 0x20], edi
mov eax, dword [esp + 0x20]
test eax, eax
je 0x4a94c4
mov dword [esp], 0x64
call sub.msvcrt.dll_malloc
mov edi, dword [esp + 0x20]
mov dword [esp + 0x4c], eax
mov dword [edi], eax
test eax, eax
je 0x4a7dba
mov esi, dword [esp + 0x74]
test esi, esi
je 0x4a72b5
mov edx, dword [esi]
mov eax, esi
lea ecx, [edx + 1]
cmp edx, 0x1f
jbe 0x4a72d1
mov dword [esp], 0x88
call sub.msvcrt.dll_malloc
mov ecx, 1
xor edx, edx
mov dword [eax], 0
mov dword [eax + 4], esi
mov edi, dword [esp + 0x20]
mov dword [eax], ecx
mov dword [esp + 0x74], eax
mov dword [eax + edx*4 + 8], edi
mov dword [esp + 0x40], 0x64
lea eax, [esp + 0x78]
mov dword [esp + 0x2c], eax
mov edx, eax
mov eax, dword [esp + 0x14]
call fcn.004a6a40
mov edi, eax
cmp eax, 0xffffffff
je 0x4a9657
mov esi, ebx
mov dword [esp + 0x44], ebx
mov edi, dword [esp + 0x2c]
mov ebx, eax
and esi, 0x600
mov dword [esp + 0x2c], esi
mov esi, dword [esp + 0x4c]
jmp 0x4a735a
mov ecx, dword [esp + 0x20]
mov esi, eax
mov edx, dword [ecx]
mov ecx, dword [esp + 0x40]
add ecx, edx
cmp eax, ecx
je 0x4a8bfa
test ebp, ebp
jle 0x4a7344
sub ebp, 1
je 0x4a8568
mov eax, dword [esp + 0x14]
mov edx, edi
call fcn.004a6a40
mov ebx, eax
cmp eax, 0xffffffff
je 0x4a8568
mov dword [esp], ebx
call sub.msvcrt.dll_isspace
test eax, eax
jne 0x4a8d4a
mov ecx, dword [esp + 0x18]
test ecx, ecx
jne 0x4a7337
mov edx, dword [esp + 0x2c]
mov byte [esi], bl
lea eax, [esi + 1]
test edx, edx
jne 0x4a7321
mov esi, eax
jmp 0x4a7337
movzx eax, byte [esp + 0x2c]
cmp al, 0x67
jg 0x4a7724
cmp al, 0x24
jle case.0x4a73b0.1
movzx eax, byte [esp + 0x2c]
sub eax, 0x25
cmp al, 0x42
ja case.0x4a73b0.1
movzx eax, al
jmp dword [eax*4 + 0x5eaf50]
mov eax, ebx
and eax, 0x80
mov dword [esp + 0x18], eax
jne 0x4a745e
test bh, 6
je 0x4a7afe
mov eax, dword [esp + 0x44]
test eax, eax
jne 0x4a8c96
mov eax, dword [esp + 0x38]
mov edi, dword [eax]
add eax, 4
mov dword [esp + 0x38], eax
mov dword [esp + 0x20], edi
mov eax, dword [esp + 0x20]
test eax, eax
je 0x4a94c4
mov dword [esp], 0xc8
call sub.msvcrt.dll_malloc
mov edi, dword [esp + 0x20]
mov dword [esp + 0x3c], eax
mov dword [edi], eax
test eax, eax
je 0x4a7dba
mov esi, dword [esp + 0x74]
test esi, esi
je 0x4a742c
mov edx, dword [esi]
mov eax, esi
lea ecx, [edx + 1]
cmp edx, 0x1f
jbe 0x4a7448
mov dword [esp], 0x88
call sub.msvcrt.dll_malloc
mov ecx, 1
xor edx, edx
mov dword [eax], 0
mov dword [eax + 4], esi
mov edi, dword [esp + 0x20]
mov dword [eax], ecx
mov dword [esp + 0x74], eax
mov dword [eax + edx*4 + 8], edi
mov dword [esp + 0x40], 0x64
lea eax, [esp + 0x78]
mov dword [esp + 0x2c], eax
mov edx, eax
mov eax, dword [esp + 0x14]
call fcn.004a6a40
mov edi, eax
cmp eax, 0xffffffff
je 0x4a9743
mov eax, ebx
mov dword [esp + 0x58], ebx
lea esi, [esp + 0x98]
and eax, 0x600
mov dword [esp + 0x48], ebp
mov ebp, dword [esp + 0x14]
mov dword [esp + 0x98], 0
mov dword [esp + 0x9c], 0
mov dword [esp + 0x54], eax
mov dword [esp + 0x44], esi
mov esi, dword [esp + 0x2c]
mov dword [esp], edi
call sub.msvcrt.dll_isspace
test eax, eax
jne 0x4a9711
mov edx, dword [esp + 0x18]
mov ecx, edi
test edx, edx
cmove eax, dword [esp + 0x3c]
mov ebx, eax
mov eax, esi
mov esi, edi
mov edi, eax
mov eax, dword [esp + 0x44]
mov dword [esp + 8], 1
mov dword [esp], ebx
mov dword [esp + 0xc], eax
lea eax, [esp + 0x8b]
mov dword [esp + 4], eax
mov byte [esp + 0x8b], cl
call fcn.004b6f40
cmp eax, 0xfffffffe
jne 0x4a83e5
mov edx, edi
mov eax, ebp
call fcn.004a6a40
mov esi, eax
cmp eax, 0xffffffff
je 0x4a7a46
mov ecx, eax
jmp 0x4a74dd
cmp ebp, 0xffffffff
mov eax, 1
cmove ebp, eax
mov eax, ebx
and eax, 0x80
mov dword [esp + 0x18], eax
jne 0x4a75de
test bh, 6
je 0x4a7aa5
mov eax, dword [esp + 0x44]
test eax, eax
jne 0x4a8cea
mov eax, dword [esp + 0x38]
mov edi, dword [eax]
add eax, 4
mov dword [esp + 0x38], eax
mov dword [esp + 0x20], edi
mov edi, dword [esp + 0x20]
test edi, edi
je 0x4a94c4
mov eax, 0x400
cmp ebp, eax
cmovle eax, ebp
mov dword [esp + 0x40], eax
add eax, eax
mov dword [esp], eax
call sub.msvcrt.dll_malloc
mov edi, dword [esp + 0x20]
mov dword [esp + 0x3c], eax
mov dword [edi], eax
test eax, eax
je 0x4a7dba
mov esi, dword [esp + 0x74]
test esi, esi
je 0x4a75b4
mov edx, dword [esi]
mov eax, esi
lea ecx, [edx + 1]
cmp edx, 0x1f
jbe 0x4a75d0
mov dword [esp], 0x88
call sub.msvcrt.dll_malloc
mov ecx, 1
xor edx, edx
mov dword [eax], 0
mov dword [eax + 4], esi
mov edi, dword [esp + 0x20]
mov dword [eax], ecx
mov dword [esp + 0x74], eax
mov dword [eax + edx*4 + 8], edi
lea eax, [esp + 0x78]
mov dword [esp + 0x2c], eax
mov edx, eax
mov eax, dword [esp + 0x14]
call fcn.004a6a40
cmp eax, 0xffffffff
je 0x4a9665
lea esi, [esp + 0x98]
and ebx, 0x600
mov dword [esp + 0x48], ebp
mov ebp, dword [esp + 0x14]
mov dword [esp + 0x98], 0
mov dword [esp + 0x9c], 0
mov dword [esp + 0x44], esi
mov esi, dword [esp + 0x2c]
mov dword [esp + 0x54], ebx
mov ebx, eax
mov eax, dword [esp + 0x18]
mov byte [esp + 0x8b], bl
test eax, eax
jne 0x4a76c8
mov eax, dword [esp + 0x54]
test eax, eax
je 0x4a76c8
mov eax, dword [esp + 0x20]
mov edi, dword [esp + 0x40]
mov eax, dword [eax]
lea edx, [edi + edi]
lea ecx, [eax + edx]
cmp dword [esp + 0x3c], ecx
jne 0x4a76c8
mov ecx, dword [esp + 0x48]
mov dword [esp + 0x3c], esi
mov esi, ebx
mov ebx, edx
mov edi, ecx
sub edi, 1
mov dword [esp + 0x2c], edi
mov edi, dword [esp + 0x40]
cmp edi, ecx
mov ecx, dword [esp + 0x2c]
cmovle ecx, edi
add ecx, edi
add edi, 1
mov dword [esp + 0x2c], ecx
mov ecx, dword [esp + 0x2c]
mov dword [esp], eax
add ecx, ecx
mov dword [esp + 4], ecx
call sub.msvcrt.dll_realloc
test eax, eax
je 0x4a9d08
mov edi, dword [esp + 0x20]
mov edx, ebx
mov ebx, esi
mov esi, dword [esp + 0x3c]
mov dword [edi], eax
add eax, edx
mov dword [esp + 0x3c], eax
mov eax, dword [esp + 0x2c]
mov dword [esp + 0x40], eax
lea esi, [esi]
mov eax, dword [esp + 0x18]
xor edi, edi
test eax, eax
mov eax, esi
cmove edi, dword [esp + 0x3c]
mov esi, ebx
mov ebx, eax
mov eax, dword [esp + 0x44]
mov dword [esp + 8], 1
mov dword [esp], edi
mov dword [esp + 0xc], eax
lea eax, [esp + 0x8b]
mov dword [esp + 4], eax
call fcn.004b6f40
cmp eax, 0xfffffffe
jne 0x4a8490
mov edx, ebx
mov eax, ebp
call fcn.004a6a40
mov esi, eax
cmp eax, 0xffffffff
je 0x4a7a16
mov byte [esp + 0x8b], al
jmp 0x4a76db
movzx eax, byte [esp + 0x2c]
lea ecx, [eax - 0x69]
cmp cl, 0xf
ja case.0x4a73b0.1
mov eax, 1
shl eax, cl
test eax, 0x90c1
jne case.0x4a73b0.51
cmp cl, 0xa
je 0x4a7240
cmp cl, 5
je 0x4a8326
mov ebx, dword [esp + 0x74]
test ebx, ebx
je 0x4a71c0
lea esi, [esi]
mov eax, ebx
mov ebx, dword [ebx + 4]
mov dword [esp], eax
call sub.msvcrt.dll_free
test ebx, ebx
jne 0x4a7768
jmp 0x4a71c0
mov ebx, dword [esp + 0x10]
mov dword [esp + 0x44], edx
movzx edx, byte [ebx + 2]
lea ecx, [ebx + 2]
lea ebp, [edx - 0x30]
mov ebx, edx
cmp ebp, 9
ja 0x4a77c7
mov dword [esp + 0x10], esi
mov esi, dword [esp + 0x44]
lea esi, [esi]
lea ebx, [esi + esi*4]
add ecx, 1
lea esi, [edx + ebx*2 - 0x30]
movzx edx, byte [ecx]
lea ebp, [edx - 0x30]
mov ebx, edx
cmp ebp, 9
jbe 0x4a77a8
mov dword [esp + 0x44], esi
mov esi, dword [esp + 0x10]
cmp bl, 0x24
je 0x4a81ce
mov dword [esp + 0x44], 0
jmp 0x4a6e56
test bl, 4
jne case.0x4a73b0.30
cmp ebp, 0xffffffff
mov eax, 1
cmove ebp, eax
mov eax, ebx
and eax, 0x80
mov dword [esp + 0x18], eax
jne 0x4a7deb
mov esi, ebx
and esi, 0x600
je 0x4a8d82
mov eax, dword [esp + 0x44]
test eax, eax
jne 0x4a9693
mov eax, dword [esp + 0x38]
mov edi, dword [eax]
add eax, 4
mov dword [esp + 0x38], eax
mov dword [esp + 0x20], edi
mov edi, dword [esp + 0x20]
test edi, edi
je 0x4a94c4
mov eax, 0x400
cmp ebp, eax
cmovle eax, ebp
mov dword [esp], eax
mov dword [esp + 0x40], eax
call sub.msvcrt.dll_malloc
mov ecx, eax
mov eax, dword [esp + 0x20]
mov dword [eax], ecx
test ecx, ecx
je 0x4a7dba
mov edi, dword [esp + 0x74]
test edi, edi
je 0x4a7876
mov edx, dword [edi]
mov eax, edi
lea ebx, [edx + 1]
cmp edx, 0x1f
jbe 0x4a789a
mov dword [esp], 0x88
mov ebx, 1
mov dword [esp + 0x2c], ecx
call sub.msvcrt.dll_malloc
mov ecx, dword [esp + 0x2c]
xor edx, edx
mov dword [eax], 0
mov dword [eax + 4], edi
mov edi, dword [esp + 0x20]
mov dword [eax], ebx
mov dword [esp + 0x74], eax
mov dword [eax + edx*4 + 8], edi
lea eax, [esp + 0x78]
mov dword [esp + 0x44], ecx
mov dword [esp + 0x2c], eax
mov edx, eax
mov eax, dword [esp + 0x14]
call fcn.004a6a40
mov ecx, dword [esp + 0x44]
cmp eax, 0xffffffff
mov edi, eax
je 0x4a98b6
mov ebx, edi
mov dword [esp + 0x44], esi
mov edi, ebp
mov eax, ecx
mov ebp, dword [esp + 0x2c]
jmp 0x4a7908
sub edi, 1
mov byte [eax], bl
lea esi, [eax + 1]
test edi, edi
jle 0x4a8970
mov eax, dword [esp + 0x14]
mov edx, ebp
call fcn.004a6a40
mov ebx, eax
cmp eax, 0xffffffff
je 0x4a8970
mov eax, esi
mov edx, dword [esp + 0x44]
test edx, edx
je 0x4a78e0
mov ecx, dword [esp + 0x20]
mov edx, dword [ecx]
mov ecx, dword [esp + 0x40]
lea esi, [edx + ecx]
cmp eax, esi
jne 0x4a78e0
cmp ecx, edi
lea eax, [edi - 1]
mov dword [esp + 0x2c], ebp
mov ebp, ebx
cmovl eax, ecx
lea esi, [ecx + eax]
add ecx, 1
mov ebx, ecx
mov dword [esp + 4], esi
mov dword [esp], edx
call sub.msvcrt.dll_realloc
test eax, eax
je 0x4a9d21
mov ecx, dword [esp + 0x20]
mov ebx, ebp
mov ebp, dword [esp + 0x2c]
mov dword [ecx], eax
add eax, dword [esp + 0x40]
mov dword [esp + 0x40], esi
jmp 0x4a78e0
call sub.msvcrt.dll__errno
mov esi, dword [eax]
call sub.msvcrt.dll__errno
mov dword [esp + 0x18], ebx
mov ebx, edi
mov edi, dword [esp + 0x14]
mov dword [eax], 0
jmp 0x4a79a0
mov dword [esp], eax
call sub.msvcrt.dll_isspace
test eax, eax
je 0x4a82a8
cmp ebx, 0xffffffff
je 0x4a79b7
lea edx, [esp + 0x78]
mov eax, edi
call fcn.004a6a40
mov ebx, eax
cmp eax, 0xffffffff
jne 0x4a7990
mov ebx, dword [esp + 0x18]
jmp 0x4a79d4
mov dword [esp], 0xffffffff
call sub.msvcrt.dll_isspace
test eax, eax
je 0x4a83d4
call sub.msvcrt.dll__errno
cmp dword [eax], 4
jne 0x4a79c0
mov esi, dword [esp + 0x24]
test esi, esi
je 0x4a7a88
mov ebx, dword [esp + 0x74]
test ebx, ebx
je 0x4a71c0
lea esi, [esi]
lea esi, [esi]
mov eax, ebx
mov ebx, dword [ebx + 4]
mov dword [esp], eax
call sub.msvcrt.dll_free
test ebx, ebx
jne 0x4a7a00
jmp 0x4a71c0
call sub.msvcrt.dll__errno
mov ebx, dword [esp + 0x74]
mov dword [eax], 0x2a
test ebx, ebx
je 0x4a71c0
lea esi, [esi]
mov eax, ebx
mov ebx, dword [ebx + 4]
mov dword [esp], eax
call sub.msvcrt.dll_free
test ebx, ebx
jne 0x4a7a30
jmp 0x4a71c0
call sub.msvcrt.dll__errno
mov ebx, dword [esp + 0x74]
mov dword [eax], 0x2a
test ebx, ebx
je 0x4a71c0
lea esi, [esi]
mov eax, ebx
mov ebx, dword [ebx + 4]
mov dword [esp], eax
call sub.msvcrt.dll_free
test ebx, ebx
jne 0x4a7a60
jmp 0x4a71c0
mov edi, ebx
mov ebx, dword [esp + 0x10]
jmp 0x4a6c6c
lea edx, [esp + 0x80]
lea eax, [esp + 0x74]
call fcn.004a68b0
mov dword [esp + 0x24], 0xffffffff
jmp 0x4a6ce8
mov esi, dword [esp + 0x44]
test esi, esi
jne 0x4a8cce
mov eax, dword [esp + 0x38]
mov edi, dword [eax]
add eax, 4
mov dword [esp + 0x38], eax
mov dword [esp + 0x3c], edi
mov ecx, dword [esp + 0x3c]
test ecx, ecx
jne 0x4a75de
jmp 0x4a7ada
fstp st(0)
jmp 0x4a7ada
fstp st(0)
jmp 0x4a7ada
fstp st(0)
lea eax, [esp + 0x80]
mov ecx, dword [esp + 0x20]
lea edx, [esp + 0x74]
mov dword [esp], eax
mov eax, dword [esp + 0x24]
call fcn.004a69b0
mov dword [esp + 0x24], eax
jmp 0x4a6ce8
mov edi, dword [esp + 0x44]
test edi, edi
jne 0x4a8cb2
mov eax, dword [esp + 0x38]
mov edi, dword [eax]
add eax, 4
mov dword [esp + 0x38], eax
mov dword [esp + 0x3c], edi
mov esi, dword [esp + 0x3c]
test esi, esi
jne 0x4a745e
jmp 0x4a7ada
lea eax, [esi + 1]
or ebx, 0xc
mov dword [esp + 0x48], eax
movzx eax, byte [esi + 1]
mov byte [esp + 0x2c], al
jmp 0x4a6f38
xor eax, eax
test ebp, ebp
setg al
sub ebp, eax
lea eax, [esp + 0x78]
mov dword [esp + 0x2c], eax
mov edx, eax
mov eax, dword [esp + 0x14]
call fcn.004a6a40
mov dword [esp + 0x64], eax
cmp eax, 0xffffffff
je 0x4a99b0
mov eax, dword [esp + 0x64]
sub eax, 0x2b
and eax, 0xfffffffd
jne 0x4a8955
test ebp, ebp
je 0x4a7ada
mov edx, dword [esp + 0x2c]
mov eax, dword [esp + 0x14]
call fcn.004a6a40
mov edi, eax
cmp eax, 0xffffffff
je 0x4a7ada
xor eax, eax
test ebp, ebp
setg al
sub ebp, eax
mov dword [esp], edi
call sub.msvcrt.dll_tolower
cmp eax, 0x6e
je 0x4a9529
cmp eax, 0x69
je 0x4a90f9
mov byte [esp + 0x54], 0x65
mov dword [esp + 0x18], 0
test ebp, ebp
je 0x4a7bdd
cmp edi, 0x30
je 0x4a93eb
mov byte [esp + 0x58], 0
mov byte [esp + 0x60], 0
mov dword [esp + 0x5c], ebx
lea esi, [esi]
nop
lea eax, [edi - 0x30]
cmp eax, 9
jbe 0x4a7c73
cmp byte [esp + 0x58], 0
je 0x4a80b0
mov ecx, dword [esp + 0x80]
mov edx, dword [esp + 0x18]
movzx eax, byte [esp + 0x54]
cmp byte [ecx + edx - 1], al
je 0x4a82e7
test ebp, ebp
mov eax, 0x7fffffff
cmovg eax, ebp
cmp byte [esp + 0x60], 0
mov dword [esp + 0x48], eax
mov eax, dword [esp + 0x50]
movzx eax, byte [eax]
je 0x4a81da
test al, al
jne 0x4a8120
test ebp, ebp
jle 0x4a7c9c
mov edx, dword [esp + 0x2c]
mov eax, dword [esp + 0x14]
call fcn.004a6a40
mov edi, eax
cmp eax, 0xffffffff
je 0x4a886a
mov ebp, dword [esp + 0x48]
lea esi, [esi]
lea eax, [edi - 0x30]
sub ebp, 1
cmp eax, 9
ja 0x4a7bf8
mov ecx, dword [esp + 0x80]
mov esi, dword [esp + 0x18]
lea edx, [esp + 0x7c]
mov eax, esi
call fcn.004a6930
mov ecx, edi
mov dword [esp + 0x80], eax
mov byte [eax + esi], cl
lea eax, [esi + 1]
mov dword [esp + 0x18], eax
test ebp, ebp
je 0x4a886a
mov edx, dword [esp + 0x2c]
mov eax, dword [esp + 0x14]
call fcn.004a6a40
mov edi, eax
cmp eax, 0xffffffff
je 0x4a886a
test ebp, ebp
jg 0x4a7c68
jmp 0x4a7bf0
movzx ecx, byte [esi + 1]
mov eax, ecx
mov byte [esp + 0x2c], cl
and eax, 0xfffffff7
cmp al, 0x53
je 0x4a7cdf
cmp cl, 0x73
jne case.0x4a6f1c.1
lea eax, [esi + 1]
or bh, 2
mov dword [esp + 0x48], eax
jmp 0x4a6f38
movzx eax, byte [esi + 1]
mov byte [esp + 0x2c], al
cmp al, 0x6c
je 0x4a8520
lea eax, [esi + 1]
or ebx, 4
mov dword [esp + 0x48], eax
jmp 0x4a6f38
movzx eax, byte [esi + 1]
mov byte [esp + 0x2c], al
cmp al, 0x6c
je 0x4a8537
lea eax, [esi + 1]
or bh, 4
mov dword [esp + 0x48], eax
jmp 0x4a6f38
movzx eax, byte [esi + 1]
mov byte [esp + 0x2c], al
cmp al, 0x68
je 0x4a8551
lea eax, [esi + 1]
or ebx, 2
mov dword [esp + 0x48], eax
jmp 0x4a6f38
lea eax, [esi + 1]
or ebx, 8
mov dword [esp + 0x48], eax
movzx eax, byte [esi + 1]
mov byte [esp + 0x2c], al
jmp 0x4a6f38
test eax, eax
jne 0x4a7024
test bh, 6
je 0x4a9210
mov eax, dword [esp + 0x44]
test eax, eax
jne 0x4a989a
mov eax, dword [esp + 0x38]
mov edi, dword [eax]
add eax, 4
mov dword [esp + 0x38], eax
mov dword [esp + 0x20], edi
mov eax, dword [esp + 0x20]
test eax, eax
je 0x4a94c4
mov dword [esp], 0xc8
call sub.msvcrt.dll_malloc
mov edi, dword [esp + 0x20]
mov dword [esp + 0x3c], eax
mov dword [edi], eax
test eax, eax
jne 0x4a6fde
test bh, 4
mov eax, 0xffffffff
cmove eax, dword [esp + 0x24]
mov edi, eax
lea eax, [esp + 0x80]
mov ecx, dword [esp + 0x20]
lea edx, [esp + 0x74]
mov dword [esp], eax
mov eax, edi
call fcn.004a69b0
mov dword [esp + 0x24], eax
jmp 0x4a6ce8
lea eax, [esp + 0x78]
mov dword [esp + 0x2c], eax
mov edx, eax
mov eax, dword [esp + 0x14]
call fcn.004a6a40
mov edi, eax
cmp eax, 0xffffffff
je 0x4a98b6
mov ebx, dword [esp + 0x14]
mov esi, dword [esp + 0x2c]
mov eax, edi
jmp 0x4a7e26
mov edx, esi
mov eax, ebx
call fcn.004a6a40
cmp eax, 0xffffffff
je 0x4a7e2d
sub ebp, 1
test ebp, ebp
jg 0x4a7e18
mov dword [esp + 0x18], 0
mov edi, eax
jmp 0x4a6d0c
movzx eax, byte [esp + 0x2c]
sub eax, 0x58
cmp al, 0x20
ja case.0x4a7e4b.1
movzx eax, al
jmp dword [eax*4 + 0x5eb05c]
mov dword [esp + 0x34], 0xa
or ebx, 0x10
lea eax, [esp + 0x78]
mov dword [esp + 0x2c], eax
mov edx, eax
mov eax, dword [esp + 0x14]
call fcn.004a6a40
mov edi, eax
cmp eax, 0xffffffff
je 0x4a9657
lea eax, [eax - 0x2b]
mov dword [esp + 0x54], 0
and eax, 0xfffffffd
je 0x4a8e47
test ebp, ebp
setne dl
cmp edi, 0x30
jne 0x4a85c4
test dl, dl
je 0x4a85c4
mov eax, dword [esp + 0x54]
mov ecx, dword [esp + 0x80]
lea edi, [eax + 1]
mov dword [esp + 0x18], edi
test ebp, ebp
jle 0x4a903d
lea esi, [esp + 0x7c]
mov edi, eax
sub ebp, 1
mov edx, esi
call fcn.004a6930
mov edx, dword [esp + 0x2c]
mov byte [eax + edi], 0x30
mov dword [esp + 0x80], eax
mov eax, dword [esp + 0x14]
call fcn.004a6a40
mov edi, eax
test ebp, ebp
jne 0x4a9068
mov ecx, dword [esp + 0x34]
mov eax, dword [esp + 0x18]
test ecx, ecx
mov dword [esp + 0x54], eax
jne 0x4a7f09
mov dword [esp + 0x34], 8
cmp dword [esp + 0x54], 1
mov ebp, dword [esp + 0x80]
jne 0x4a7f26
movzx eax, byte [ebp]
sub eax, 0x2b
test al, 0xfd
je 0x4a8bf1
lea esi, [esp + 0x7c]
cmp edi, 0xffffffff
je 0x4a7f5c
mov eax, dword [esp + 0x14]
test byte [eax + 0x1004], 1
je 0x4a9867
mov ecx, dword [esp + 0x14]
sub dword [esp + 0x78], 1
mov eax, dword [ecx + 0x1008]
mov dword [ecx + eax*4 + 4], edi
add eax, 1
mov dword [ecx + 0x1008], eax
mov edx, esi
mov esi, dword [esp + 0x54]
mov ecx, ebp
mov eax, esi
call fcn.004a6930
mov byte [eax + esi], 0
mov ebp, eax
mov esi, ebx
mov dword [esp + 0x80], eax
mov eax, ebx
and esi, 0x10
and eax, 8
mov dword [esp], ebp
mov dword [esp + 0x2c], eax
mov eax, dword [esp + 0x34]
mov dword [esp + 8], eax
lea eax, [esp + 0x84]
mov dword [esp + 4], eax
je 0x4a895e
test esi, esi
je 0x4a8f25
call fcn.004ad1f0
mov dword [esp + 0x1c], edx
mov ecx, dword [esp + 0x1c]
mov dword [esp + 0x18], eax
mov dword [esp + 0x6c], ecx
cmp ebp, dword [esp + 0x84]
je 0x4a7ada
mov ecx, ebx
and ecx, 0x80
mov dword [esp + 0x18], ecx
jne 0x4a8054
test esi, esi
je 0x4a8f2f
mov ebp, dword [esp + 0x2c]
test ebp, ebp
jne 0x4a8f90
test bl, 4
jne 0x4a9369
test bl, 2
jne 0x4a9811
and bl, 1
je 0x4a9d75
cmp dword [esp + 0x44], 0
jne 0x4a9cbe
mov ecx, dword [esp + 0x38]
mov edx, dword [ecx]
add ecx, 4
mov dword [esp + 0x38], ecx
mov byte [edx], al
add dword [esp + 0x24], 1
jmp 0x4a6d0c
lea eax, [esp + 0x78]
mov dword [esp + 0x2c], eax
mov edx, eax
mov eax, dword [esp + 0x14]
call fcn.004a6a40
mov edi, eax
cmp eax, 0xffffffff
je 0x4a9657
cmp eax, 0x25
jne 0x4a9ca3
mov dword [esp + 0x18], 0
jmp 0x4a6d0c
mov dword [esp + 0x34], 0x10
jmp case.0x4a7e4b.1
mov dword [esp + 0x34], 0
or ebx, 0x10
jmp case.0x4a7e4b.1
mov dword [esp + 0x34], 0xa
jmp case.0x4a7e4b.1
mov eax, ebx
mov dword [esp + 0x34], 0x10
and eax, 0xfffffff1
or eax, 0x24
mov ebx, eax
jmp case.0x4a7e4b.1
mov dword [esp + 0x34], 8
jmp case.0x4a7e4b.1
test byte [esp + 0x5c], 0x40
je 0x4a80c7
mov dword [esp], edi
call sub.msvcrt.dll_isxdigit
test eax, eax
jne 0x4a7c73
mov eax, dword [esp + 0x18]
test eax, eax
je 0x4a7c1d
mov dword [esp], edi
call sub.msvcrt.dll_tolower
cmp byte [esp + 0x54], al
jne 0x4a7c1d
mov esi, dword [esp + 0x18]
mov ecx, dword [esp + 0x80]
lea edx, [esp + 0x7c]
mov eax, esi
call fcn.004a6930
movzx ecx, byte [esp + 0x54]
mov byte [esp + 0x58], 1
mov dword [esp + 0x80], eax
mov byte [eax + esi], cl
lea eax, [esi + 1]
mov dword [esp + 0x18], eax
mov byte [esp + 0x60], 1
jmp 0x4a7c9c
mov eax, dword [esp + 0x28]
test eax, eax
je 0x4a9311
movzx eax, byte [eax]
test al, al
jne 0x4a9311
test ebp, ebp
cmovg ebp, dword [esp + 0x48]
jmp 0x4a7c9c
mov ebp, dword [esp + 0x14]
test byte [ebp + 0x1004], 1
je 0x4a8efd
mov eax, dword [ebp + 0x1008]
sub dword [esp + 0x78], 1
mov dword [ebp + eax*4 + 4], edi
add eax, 1
mov dword [ebp + 0x1008], eax
mov eax, dword [esp + 0x24]
test eax, eax
je 0x4a7a88
mov ebx, dword [esp + 0x74]
test ebx, ebx
je 0x4a71c0
lea esi, [esi]
mov eax, ebx
mov ebx, dword [ebx + 4]
mov dword [esp], eax
call sub.msvcrt.dll_free
test ebx, ebx
jne 0x4a8188
jmp 0x4a71c0
mov ebp, 0xffffffff
jmp 0x4a6f0a
mov ebx, dword [esp + 0x74]
test ebx, ebx
je 0x4a71c0
lea esi, [esi]
mov eax, ebx
mov ebx, dword [ebx + 4]
mov dword [esp], eax
call sub.msvcrt.dll_free
test ebx, ebx
jne 0x4a81b8
jmp 0x4a71c0
movzx eax, byte [ecx + 1]
lea esi, [ecx + 1]
jmp 0x4a6e56
movzx edx, al
mov esi, dword [esp + 0x50]
cmp edx, edi
jne 0x4a8379
mov dword [esp + 0x68], ebp
mov edx, edi
mov ebp, dword [esp + 0x14]
mov edi, dword [esp + 0x48]
jmp 0x4a822e
test edi, edi
je 0x4a8e38
mov edx, dword [esp + 0x2c]
mov eax, ebp
call fcn.004a6a40
mov edx, eax
cmp eax, 0xffffffff
je 0x4a836b
movzx ebx, byte [esi]
sub edi, 1
mov eax, ebx
cmp edx, ebx
jne 0x4a8f16
mov ebx, esi
add esi, 1
cmp byte [esi], 0
jne 0x4a8200
mov ebp, dword [esp + 0x68]
mov dword [esp + 0x48], edi
mov edi, edx
mov eax, dword [esp + 0x50]
cmp byte [eax], 0
je 0x4a9c9a
mov ebx, dword [esp + 0x18]
mov ecx, dword [esp + 0x80]
sub eax, ebx
mov esi, eax
nop
lea edx, [esp + 0x7c]
mov eax, ebx
call fcn.004a6930
mov ecx, eax
mov dword [esp + 0x80], eax
mov eax, ebx
add ebx, 1
movzx edx, byte [esi + ebx - 1]
mov byte [ecx + eax], dl
cmp byte [esi + ebx], 0
jne 0x4a8260
mov dword [esp + 0x18], ebx
test ebp, ebp
jle 0x4a9d36
mov byte [esp + 0x60], 1
mov ebp, dword [esp + 0x48]
jmp 0x4a7c9c
mov edi, ebx
mov ebx, dword [esp + 0x18]
call sub.msvcrt.dll__errno
mov dword [eax], esi
mov eax, dword [esp + 0x14]
test byte [eax + 0x1004], 1
je 0x4a8c7a
mov ecx, dword [esp + 0x14]
sub dword [esp + 0x78], 1
mov eax, dword [ecx + 0x1008]
mov dword [ecx + eax*4 + 4], edi
add eax, 1
mov dword [ecx + 0x1008], eax
jmp 0x4a7222
lea eax, [edi - 0x2b]
and eax, 0xfffffffd
jne 0x4a7c1d
jmp 0x4a7c7a
mov eax, dword [esp + 0x24]
test eax, eax
je 0x4a7a88
mov ebx, dword [esp + 0x74]
test ebx, ebx
je 0x4a71c0
mov eax, ebx
mov ebx, dword [ebx + 4]
mov dword [esp], eax
call sub.msvcrt.dll_free
test ebx, ebx
jne 0x4a8310
jmp 0x4a71c0
mov eax, ebx
and eax, 0x80
mov dword [esp + 0x18], eax
jne 0x4a8054
mov eax, dword [esp + 0x78]
test bl, 8
je 0x4a8fc1
mov ebx, dword [esp + 0x44]
test ebx, ebx
jne 0x4a9494
mov ecx, dword [esp + 0x38]
mov edx, dword [ecx]
add ecx, 4
mov dword [esp + 0x38], ecx
mov dword [edx], eax
mov dword [edx + 4], 0
jmp 0x4a6d0c
mov dword [esp + 0x48], edi
mov ebp, dword [esp + 0x68]
mov edi, eax
movzx eax, byte [ebx + 1]
test al, al
je 0x4a8242
test dword [esp + 0x5c], 0x100
je 0x4a8120
sub esi, dword [esp + 0x50]
mov edx, dword [esp + 0x28]
xor ecx, ecx
test esi, esi
jle 0x4a96af
mov dword [esp + 0x68], ebp
mov eax, dword [esp + 0x28]
mov ebp, dword [esp + 0x50]
jmp 0x4a83c0
lea ebx, [edx + 1]
mov ecx, ebx
sub ecx, eax
cmp ecx, esi
jge 0x4a9240
mov edx, ebx
movzx ebx, byte [edx]
cmp bl, byte [ebp + ecx]
je 0x4a83af
mov ebp, dword [esp + 0x68]
mov eax, ebx
jmp 0x4a812f
call sub.msvcrt.dll__errno
mov edi, 0xffffffff
mov dword [eax], esi
jmp 0x4a7222
mov ecx, edi
mov edi, esi
mov esi, ecx
cmp eax, 1
jne 0x4a993f
mov eax, dword [esp + 0x18]
add dword [esp + 0x3c], 2
mov edx, dword [esp + 0x3c]
test eax, eax
jne 0x4a8424
mov eax, dword [esp + 0x54]
test eax, eax
je 0x4a8424
mov eax, dword [esp + 0x40]
mov ebx, dword [esp + 0x20]
lea ecx, [eax + eax]
mov eax, dword [ebx]
add eax, ecx
cmp edx, eax
je 0x4a97bc
mov eax, dword [esp + 0x48]
test eax, eax
jle 0x4a8435
sub eax, 1
mov dword [esp + 0x48], eax
je 0x4a8449
mov edx, esi
mov eax, ebp
call fcn.004a6a40
mov edi, eax
cmp eax, 0xffffffff
jne 0x4a74b8
mov ebp, dword [esp + 0x18]
test ebp, ebp
jne 0x4a8054
mov eax, dword [esp + 0x3c]
lea ebx, [eax + 2]
mov word [eax], 0
mov eax, dword [esp + 0x40]
mov edx, ebx
mov ecx, eax
add ecx, eax
mov eax, dword [esp + 0x20]
call fcn.004a6870
add dword [esp + 0x24], 1
mov dword [esp + 0x3c], ebx
mov dword [esp + 0x20], 0
jmp 0x4a6d0c
mov edi, ebx
mov ebx, esi
mov esi, edi
cmp eax, 1
jne 0x4a993f
sub dword [esp + 0x48], 1
mov eax, dword [esp + 0x48]
add dword [esp + 0x3c], 2
test eax, eax
jle 0x4a84c5
mov edx, edi
mov eax, ebp
call fcn.004a6a40
mov ebx, eax
cmp eax, 0xffffffff
jne 0x4a7633
cmp dword [esp + 0x18], 0
mov edi, ebx
jne 0x4a8054
mov eax, dword [esp + 0x40]
mov edx, dword [esp + 0x3c]
mov ecx, eax
add ecx, eax
mov eax, dword [esp + 0x20]
call fcn.004a6870
add dword [esp + 0x24], 1
mov dword [esp + 0x20], 0
jmp 0x4a6d0c
mov dword [esp + 0x24], 0
xor esi, esi
jmp 0x4a6db1
call sub.msvcrt.dll__errno
mov dword [esp + 0x24], 0xffffffff
mov dword [eax], 0x16
jmp 0x4a6ce8
lea eax, [esi + 2]
or ebx, 0xc
mov dword [esp + 0x48], eax
movzx eax, byte [esi + 2]
mov byte [esp + 0x2c], al
jmp 0x4a6f38
lea eax, [esi + 2]
or ebx, 0x404
mov dword [esp + 0x48], eax
movzx eax, byte [esi + 2]
mov byte [esp + 0x2c], al
jmp 0x4a6f38
lea eax, [esi + 2]
or ebx, 1
mov dword [esp + 0x48], eax
movzx eax, byte [esi + 2]
mov byte [esp + 0x2c], al
jmp 0x4a6f38
mov dword [esp + 0x4c], esi
mov edi, ebx
mov eax, dword [esp + 0x18]
test eax, eax
jne 0x4a8054
mov eax, dword [esp + 0x4c]
mov esi, dword [esp + 0x20]
mov byte [eax], 0
lea ebx, [eax + 1]
test esi, esi
je 0x4a85ae
mov eax, dword [esi]
test eax, eax
je 0x4a85ae
mov edx, ebx
sub edx, eax
cmp dword [esp + 0x40], edx
je 0x4a85ae
mov dword [esp + 4], edx
mov dword [esp], eax
call sub.msvcrt.dll_realloc
test eax, eax
je 0x4a85ae
mov dword [esi], eax
add dword [esp + 0x24], 1
mov dword [esp + 0x4c], ebx
mov dword [esp + 0x20], 0
jmp 0x4a6d0c
cmp edi, 0xffffffff
setne al
and eax, edx
mov edx, dword [esp + 0x34]
test edx, edx
jne 0x4a85dc
mov dword [esp + 0x34], 0xa
test al, al
je 0x4a8688
mov eax, ebx
mov dword [esp + 0x5c], ebx
mov ebx, edi
mov edi, dword [esp + 0x2c]
and eax, 0x100
mov dword [esp + 0x48], ebp
mov ebp, dword [esp + 0x14]
mov dword [esp + 0x58], eax
jmp 0x4a866f
lea eax, [ebx - 0x30]
cmp eax, 9
ja 0x4a8708
lea eax, [ebx - 0x2f]
cmp eax, dword [esp + 0x34]
jg 0x4a8708
mov eax, dword [esp + 0x54]
mov esi, eax
add eax, 1
mov dword [esp + 0x54], eax
mov ecx, dword [esp + 0x80]
lea edx, [esp + 0x7c]
mov eax, esi
call fcn.004a6930
mov edx, edi
mov byte [eax + esi], bl
mov esi, dword [esp + 0x48]
mov dword [esp + 0x80], eax
xor eax, eax
test esi, esi
setg al
sub esi, eax
mov eax, ebp
mov dword [esp + 0x48], esi
call fcn.004a6a40
mov ebx, eax
cmp eax, 0xffffffff
je 0x4a8682
test esi, esi
je 0x4a8682
cmp dword [esp + 0x34], 0x10
jne 0x4a8608
mov dword [esp], ebx
call sub.msvcrt.dll_isxdigit
test eax, eax
jne 0x4a8621
mov edi, ebx
mov ebx, dword [esp + 0x5c]
mov eax, dword [esp + 0x54]
test eax, eax
jne 0x4a7f09
test bl, 0x20
je 0x4a8bf1
mov dword [esp], edi
call sub.msvcrt.dll_tolower
cmp al, 0x28
jne 0x4a8bf1
mov dword [esp + 0x18], ebx
mov ebp, dword [esp + 0x14]
mov esi, 0x5eae81
mov ebx, dword [esp + 0x2c]
jmp 0x4a86d8
mov dword [esp], eax
call sub.msvcrt.dll_tolower
cmp byte [esi], al
jne 0x4a86e8
add esi, 1
cmp byte [esi], 0
je 0x4a94e6
mov edx, ebx
mov eax, ebp
call fcn.004a6a40
mov edi, eax
cmp eax, 0xffffffff
jne 0x4a86c0
mov dword [esp], 0
mov ecx, dword [esp + 0x2c]
mov edx, ebp
mov eax, edi
call fcn.004a6ad0
jmp 0x4a7ada
cmp dword [esp + 0x34], 0xa
jne 0x4a8682
mov eax, dword [esp + 0x58]
test eax, eax
je 0x4a8682
mov esi, dword [esp + 0x28]
mov eax, dword [esp + 0x48]
mov ecx, 0x7fffffff
movzx edx, byte [esi]
test eax, eax
cmovg ecx, eax
mov eax, edx
cmp edx, ebx
jne 0x4a9296
mov edx, ebx
mov dword [esp + 0x18], edi
mov ebx, ecx
jmp 0x4a877a
test ebx, ebx
je 0x4a87a5
mov edx, dword [esp + 0x18]
mov eax, ebp
call fcn.004a6a40
mov edx, eax
cmp eax, 0xffffffff
je 0x4a8838
movzx edi, byte [esi]
sub ebx, 1
mov eax, edi
cmp edx, edi
jne 0x4a8860
mov edi, esi
add esi, 1
cmp byte [esi], 0
jne 0x4a8750
mov edi, dword [esp + 0x18]
mov ecx, ebx
mov ebx, edx
mov eax, dword [esp + 0x48]
test eax, eax
cmovle ecx, eax
mov eax, dword [esp + 0x54]
mov dword [esp + 0x48], ecx
lea esi, [eax - 1]
jmp 0x4a862e
mov eax, dword [esp + 0x18]
mov ebx, dword [esp + 0x5c]
mov edi, edx
mov dword [esp + 0x2c], eax
cmp esi, dword [esp + 0x28]
jbe 0x4a8688
mov dword [esp], 0
mov ecx, dword [esp + 0x2c]
mov eax, edi
lea ebp, [esi - 1]
mov edx, dword [esp + 0x14]
call fcn.004a6ad0
cmp ebp, dword [esp + 0x28]
jbe 0x4a9ba0
mov dword [esp + 0x18], esi
mov edi, ebp
mov esi, ebx
mov ebx, dword [esp + 0x14]
jmp 0x4a8813
mov eax, dword [ebx + 0x1008]
sub dword [esp + 0x78], 1
mov dword [ebx + eax*4 + 4], ecx
add eax, 1
mov dword [ebx + 0x1008], eax
sub edi, 1
cmp edi, dword [esp + 0x28]
je 0x4a9b8f
movzx ecx, byte [edi]
test byte [ebx + 0x1004], 1
jne 0x4a87ee
mov eax, dword [ebx]
mov dword [esp], ecx
mov dword [esp + 4], eax
call sub.msvcrt.dll_ungetc
sub dword [esp + 0x78], 1
jmp 0x4a8806
mov eax, edi
mov edi, dword [esp + 0x18]
mov ecx, ebx
mov ebx, edx
movzx eax, byte [eax + 1]
test al, al
je 0x4a878c
mov edi, ebx
mov ebx, dword [esp + 0x5c]
jmp 0x4a87b3
mov ecx, ebx
mov edi, dword [esp + 0x18]
mov ebx, edx
jmp 0x4a8846
mov ebx, dword [esp + 0x5c]
mov ecx, dword [esp + 0x18]
test ecx, ecx
je 0x4a7ada
test bl, 0x40
je 0x4a888a
cmp dword [esp + 0x18], 2
je 0x4a7ada
lea esi, [esp + 0x7c]
mov ebp, dword [esp + 0x18]
mov ecx, dword [esp + 0x80]
mov edx, esi
mov eax, ebp
call fcn.004a6930
mov byte [eax + ebp], 0
mov esi, eax
mov ebp, ebx
mov dword [esp + 0x80], eax
lea eax, [esp + 0x84]
and ebp, 0x80
mov dword [esp + 4], eax
mov dword [esp], esi
test bl, 8
jne 0x4a8ff8
and ebx, 4
je 0x4a90b0
call fcn.004a61f0
test ebp, ebp
jne 0x4a8d06
mov ecx, dword [esp + 0x84]
cmp esi, ecx
je 0x4a7ad0
cmp dword [esp + 0x64], 0x2d
fstp qword [esp + 0x18]
fld qword [esp + 0x18]
jne 0x4a8904
fchs
mov eax, dword [esp + 0x44]
test eax, eax
jne 0x4a9832
mov edx, dword [esp + 0x38]
lea eax, [edx + 4]
mov edx, dword [edx]
mov dword [esp + 0x38], eax
fstp qword [edx]
cmp esi, ecx
je 0x4a7ada
add dword [esp + 0x24], 1
mov dword [esp + 0x18], 0
jmp 0x4a6d0c
mov edi, dword [esp + 0x44]
mov byte [edi + eax], 1
mov edi, dword [esp + 0x10]
movzx eax, byte [edi + 1]
add edi, 1
mov dword [esp + 0x10], edi
jmp 0x4a70d0
mov edi, dword [esp + 0x64]
jmp 0x4a7ba9
test esi, esi
je 0x4a8fb7
call sub.msvcrt.dll_strtol
jmp 0x4a7fbf
mov eax, dword [esp + 0x20]
mov dword [esp + 0x4c], esi
mov edi, ebx
test eax, eax
je 0x4a84e7
mov esi, dword [esp + 0x20]
mov eax, dword [esi]
test eax, eax
je 0x4a84e7
mov edx, dword [esp + 0x4c]
sub edx, eax
cmp dword [esp + 0x40], edx
je 0x4a84e7
mov dword [esp + 4], edx
mov dword [esp], eax
call sub.msvcrt.dll_realloc
test eax, eax
je 0x4a84e7
mov dword [esi], eax
jmp 0x4a84e7
mov eax, dword [esp + 0x78]
mov ebx, dword [esp + 0x2c]
mov dword [esp + 0x10], edx
mov edx, dword [esp + 0x18]
mov dword [esp + 0x5c], eax
test edx, edx
je 0x4a8b58
lea eax, [esp + 0x78]
mov dword [esp + 0x2c], eax
mov edx, eax
mov eax, dword [esp + 0x14]
call fcn.004a6a40
mov edi, eax
cmp eax, 0xffffffff
je 0x4a9657
mov eax, ebx
lea esi, [esp + 0x98]
mov dword [esp + 0x64], ebx
mov edx, edi
and eax, 0x600
mov edi, dword [esp + 0x2c]
mov ebx, dword [esp + 0x44]
mov dword [esp + 0x2c], esi
mov dword [esp + 0x98], 0
mov esi, dword [esp + 0x14]
mov dword [esp + 0x9c], 0
mov dword [esp + 0x58], 0
mov dword [esp + 0x60], eax
jmp 0x4a8a5d
sub ebp, 1
je 0x4a8db0
mov edx, edi
mov eax, esi
call fcn.004a6a40
mov edx, eax
cmp eax, 0xffffffff
je 0x4a8db0
movzx eax, byte [esp + 0x48]
cmp byte [ebx + edx], al
je 0x4a92dd
mov eax, dword [esp + 0x54]
test eax, eax
jne 0x4a8a40
mov eax, dword [esp + 0x2c]
mov dword [esp + 8], 1
mov byte [esp + 0x8b], dl
mov dword [esp + 0xc], eax
lea eax, [esp + 0x8b]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x3c]
mov dword [esp + 0x18], edx
mov dword [esp], eax
call fcn.004b6f40
mov edx, dword [esp + 0x18]
cmp eax, 0xfffffffe
je 0x4a8c70
mov eax, dword [esp + 0x60]
add dword [esp + 0x3c], 2
test eax, eax
je 0x4a8b4b
mov ecx, dword [esp + 0x20]
mov eax, dword [esp + 0x40]
mov dword [esp + 0x58], 0
mov ecx, dword [ecx]
add eax, eax
mov dword [esp + 0x44], eax
add eax, ecx
cmp dword [esp + 0x3c], eax
jne 0x4a8a40
mov eax, dword [esp + 0x44]
mov dword [esp + 0x18], eax
mov eax, dword [esp + 0x40]
mov dword [esp + 0x40], edi
mov edi, esi
mov esi, ebx
mov ebx, edx
add eax, 1
mov dword [esp + 0x3c], eax
mov eax, dword [esp + 0x18]
mov dword [esp], ecx
add eax, eax
mov dword [esp + 4], eax
call sub.msvcrt.dll_realloc
test eax, eax
je 0x4a9bee
mov ecx, dword [esp + 0x20]
mov edx, ebx
mov dword [esp + 0x58], 0
mov ebx, esi
mov esi, edi
mov edi, dword [esp + 0x40]
mov dword [ecx], eax
add eax, dword [esp + 0x44]
mov dword [esp + 0x3c], eax
mov eax, dword [esp + 0x18]
mov dword [esp + 0x40], eax
jmp 0x4a8a40
mov dword [esp + 0x58], 0
jmp 0x4a8a40
lea eax, [esp + 0x78]
mov dword [esp + 0x2c], eax
mov edx, eax
mov eax, dword [esp + 0x14]
call fcn.004a6a40
mov edi, eax
cmp eax, 0xffffffff
je 0x4a9657
mov eax, ebx
mov esi, dword [esp + 0x4c]
mov dword [esp + 0x4c], ebx
mov ebx, edi
and eax, 0x600
mov edi, dword [esp + 0x2c]
mov dword [esp + 0x58], eax
jmp 0x4a8bc6
mov ecx, dword [esp + 0x20]
mov esi, eax
mov edx, dword [ecx]
mov ecx, dword [esp + 0x40]
add ecx, edx
cmp eax, ecx
je 0x4a9253
sub ebp, 1
je 0x4a8e8b
mov eax, dword [esp + 0x14]
mov edx, edi
call fcn.004a6a40
mov ebx, eax
cmp eax, 0xffffffff
je 0x4a8e8b
mov ecx, dword [esp + 0x44]
movzx eax, byte [esp + 0x48]
cmp byte [ecx + ebx], al
je 0x4a929f
mov ecx, dword [esp + 0x54]
test ecx, ecx
jne 0x4a8ba7
mov edx, dword [esp + 0x58]
mov byte [esi], bl
lea eax, [esi + 1]
test edx, edx
jne 0x4a8b91
mov esi, eax
jmp 0x4a8ba7
mov ebp, dword [esp + 0x14]
jmp 0x4a86e8
mov eax, dword [esp + 0x40]
mov dword [esp + 0x48], edi
mov edi, ebx
lea ecx, [eax + eax]
lea esi, [eax + 1]
mov ebx, ecx
mov dword [esp + 4], ebx
mov dword [esp], edx
call sub.msvcrt.dll_realloc
test eax, eax
je 0x4a9bdd
mov esi, dword [esp + 0x40]
mov edx, dword [esp + 0x20]
mov ecx, ebx
mov ebx, edi
mov dword [esp + 0x40], ecx
mov edi, dword [esp + 0x48]
mov dword [edx], eax
add esi, eax
jmp 0x4a7337
mov edi, dword [esp + 0x44]
test edi, edi
jne 0x4a9389
mov eax, dword [esp + 0x38]
mov edi, dword [eax]
add eax, 4
mov dword [esp + 0x38], eax
mov dword [esp + 0x4c], edi
mov esi, dword [esp + 0x4c]
test esi, esi
jne 0x4a72e7
jmp 0x4a7ada
add dword [esp + 0x58], 1
jmp 0x4a8a49
mov eax, dword [esp + 0x14]
mov eax, dword [eax]
mov dword [esp], edi
mov dword [esp + 4], eax
call sub.msvcrt.dll_ungetc
sub dword [esp + 0x78], 1
jmp 0x4a7222
mov edx, dword [esp + 0x44]
mov edi, dword [esp + 0x30]
sub edx, 1
lea eax, [edi + edx*4]
cmove eax, edi
mov eax, dword [eax]
mov dword [esp + 0x20], eax
jmp 0x4a73ee
mov edx, dword [esp + 0x44]
mov edi, dword [esp + 0x30]
sub edx, 1
lea eax, [edi + edx*4]
cmove eax, edi
mov eax, dword [eax]
mov dword [esp + 0x3c], eax
jmp 0x4a7b1b
mov edx, dword [esp + 0x44]
mov edi, dword [esp + 0x30]
sub edx, 1
lea eax, [edi + edx*4]
cmove eax, edi
mov eax, dword [eax]
mov dword [esp + 0x3c], eax
jmp 0x4a7ac2
mov edx, dword [esp + 0x44]
mov edi, dword [esp + 0x30]
sub edx, 1
lea eax, [edi + edx*4]
cmove eax, edi
mov eax, dword [eax]
mov dword [esp + 0x20], eax
jmp 0x4a756a
fstp st(0)
jmp 0x4a8d10
fstp st(0)
jmp 0x4a8d10
fstp st(0)
cmp esi, dword [esp + 0x84]
jne 0x4a8054
jmp 0x4a7ada
mov ebx, dword [esp + 0x74]
test ebx, ebx
je 0x4a71c0
mov eax, ebx
mov ebx, dword [ebx + 4]
mov dword [esp], eax
call sub.msvcrt.dll_free
test ebx, ebx
jne 0x4a8d34
jmp 0x4a71c0
mov eax, dword [esp + 0x14]
mov dword [esp + 0x4c], esi
mov edi, ebx
test byte [eax + 0x1004], 1
je 0x4a984f
mov ecx, dword [esp + 0x14]
sub dword [esp + 0x78], 1
mov eax, dword [ecx + 0x1008]
mov dword [ecx + eax*4 + 4], ebx
add eax, 1
mov dword [ecx + 0x1008], eax
jmp 0x4a856e
mov ecx, dword [esp + 0x44]
test ecx, ecx
jne 0x4a94ac
mov eax, dword [esp + 0x38]
mov ecx, dword [eax]
add eax, 4
mov dword [esp + 0x38], eax
test ecx, ecx
jne 0x4a78a8
jmp 0x4a7ada
mov edi, edx
mov eax, dword [esp + 0x58]
test eax, eax
jne 0x4a993f
mov eax, dword [esp + 0x5c]
cmp dword [esp + 0x78], eax
je 0x4a7ada
mov ebp, dword [esp + 0x54]
mov dword [esp + 0x18], 0
test ebp, ebp
jne 0x4a6d0c
mov eax, dword [esp + 0x3c]
xor esi, esi
mov word [eax], si
mov esi, dword [esp + 0x20]
lea ebx, [eax + 2]
test esi, esi
je 0x4a8e1a
mov eax, dword [esi]
test eax, eax
je 0x4a8e1a
mov ecx, dword [esp + 0x40]
mov edx, ebx
sub edx, eax
add ecx, ecx
cmp ecx, edx
je 0x4a8e1a
mov dword [esp + 4], edx
mov dword [esp], eax
call sub.msvcrt.dll_realloc
test eax, eax
je 0x4a8e1a
mov dword [esi], eax
add dword [esp + 0x24], 1
mov dword [esp + 0x18], 0
mov dword [esp + 0x3c], ebx
mov dword [esp + 0x20], 0
jmp 0x4a6d0c
mov dword [esp + 0x48], edi
mov ebp, dword [esp + 0x68]
mov edi, edx
jmp 0x4a8381
mov ecx, dword [esp + 0x80]
lea esi, [esp + 0x7c]
xor eax, eax
mov edx, esi
call fcn.004a6930
mov ecx, edi
mov edx, dword [esp + 0x2c]
mov dword [esp + 0x80], eax
mov byte [eax], cl
xor eax, eax
test ebp, ebp
setg al
sub ebp, eax
mov eax, dword [esp + 0x14]
call fcn.004a6a40
mov dword [esp + 0x54], 1
mov edi, eax
jmp 0x4a7e8f
mov dword [esp + 0x4c], esi
mov eax, dword [esp + 0x78]
mov edi, ebx
cmp dword [esp + 0x5c], eax
je 0x4a7ada
mov esi, dword [esp + 0x54]
test esi, esi
jne 0x4a6d0c
mov eax, dword [esp + 0x4c]
mov esi, dword [esp + 0x20]
mov byte [eax], 0
lea ebx, [eax + 1]
test esi, esi
je 0x4a8edf
mov eax, dword [esi]
test eax, eax
je 0x4a8edf
mov edx, ebx
sub edx, eax
cmp dword [esp + 0x40], edx
je 0x4a8edf
mov dword [esp + 4], edx
mov dword [esp], eax
call sub.msvcrt.dll_realloc
test eax, eax
je 0x4a8edf
mov dword [esi], eax
add dword [esp + 0x24], 1
mov dword [esp + 0x18], 0
mov dword [esp + 0x4c], ebx
mov dword [esp + 0x20], 0
jmp 0x4a6d0c
mov eax, dword [ebp]
mov dword [esp], edi
mov dword [esp + 4], eax
call sub.msvcrt.dll_ungetc
sub dword [esp + 0x78], 1
jmp 0x4a816c
mov dword [esp + 0x48], edi
mov ebp, dword [esp + 0x68]
mov edi, edx
jmp 0x4a8379
call fcn.004ad4e0
jmp 0x4a7faf
mov esi, dword [esp + 0x2c]
test esi, esi
jne 0x4a8f90
test bl, 4
jne 0x4a9369
test bl, 2
jne 0x4a9811
and bl, 1
je 0x4a9d40
cmp dword [esp + 0x44], 0
je 0x4a8014
mov edx, dword [esp + 0x44]
xor ecx, ecx
jmp 0x4a8f6a
mov ecx, 1
sub edx, 1
jne 0x4a8f65
mov esi, dword [esp + 0x30]
mov edx, dword [esp + 0x44]
test cl, cl
lea edx, [esi + edx*4 - 4]
cmove edx, esi
mov edx, dword [edx]
jmp 0x4a8021
mov ebx, dword [esp + 0x44]
test ebx, ebx
jne 0x4a9510
mov ecx, dword [esp + 0x38]
mov edx, dword [ecx]
add ecx, 4
mov dword [esp + 0x38], ecx
mov dword [edx], eax
mov eax, dword [esp + 0x6c]
mov dword [edx + 4], eax
jmp 0x4a8023
call sub.msvcrt.dll_strtoul
jmp 0x4a7fbf
mov ecx, ebx
and ecx, 4
mov dword [esp + 0x18], ecx
je 0x4a93c1
mov ecx, dword [esp + 0x44]
test ecx, ecx
jne 0x4a97a3
mov ecx, dword [esp + 0x38]
mov edx, dword [ecx]
add ecx, 4
mov dword [esp + 0x38], ecx
mov dword [edx], eax
mov dword [esp + 0x18], 0
jmp 0x4a6d0c
call fcn.004a61f0
test ebp, ebp
jne 0x4a8d0a
mov ecx, dword [esp + 0x84]
cmp esi, ecx
je 0x4a7ad4
cmp dword [esp + 0x64], 0x2d
jne 0x4a901d
fchs
mov edx, dword [esp + 0x44]
test edx, edx
jne 0x4a98ce
mov edx, dword [esp + 0x38]
lea eax, [edx + 4]
mov edx, dword [edx]
fstp xword [edx]
mov dword [esp + 0x38], eax
jmp 0x4a891f
mov edi, dword [esp + 0x54]
lea esi, [esp + 0x7c]
mov edx, esi
mov eax, edi
call fcn.004a6930
mov edx, dword [esp + 0x2c]
mov byte [eax + edi], 0x30
mov dword [esp + 0x80], eax
mov eax, dword [esp + 0x14]
call fcn.004a6a40
mov edi, eax
mov dword [esp], edi
call sub.msvcrt.dll_tolower
cmp eax, 0x78
je 0x4a961a
cmp edi, 0xffffffff
mov esi, dword [esp + 0x34]
setne al
test ebp, ebp
setne dl
and eax, edx
test esi, esi
jne 0x4a9096
mov dword [esp + 0x34], 8
test al, al
mov eax, dword [esp + 0x18]
mov dword [esp + 0x54], eax
jne 0x4a85e4
jmp 0x4a7f09
call fcn.004a6150
test ebp, ebp
jne 0x4a8d0e
mov ecx, dword [esp + 0x84]
cmp esi, ecx
je 0x4a7ad8
fld st(0)
mov eax, dword [esp + 0x44]
cmp dword [esp + 0x64], 0x2d
fchs
fcmovne st(0), st(1)
fstp st(1)
test eax, eax
jne 0x4a9986
mov edx, dword [esp + 0x38]
lea eax, [edx + 4]
mov edx, dword [edx]
mov dword [esp + 0x38], eax
fstp dword [edx]
jmp 0x4a891f
lea esi, [esp + 0x7c]
mov ecx, dword [esp + 0x80]
xor eax, eax
mov edx, esi
call fcn.004a6930
mov dword [esp + 0x54], esi
mov ecx, eax
mov dword [esp + 0x80], eax
mov eax, edi
mov edi, 1
mov byte [ecx], al
mov esi, ecx
mov dword [esp + 0x5c], ebx
jmp 0x4a9188
mov edx, dword [esp + 0x2c]
mov eax, dword [esp + 0x14]
call fcn.004a6a40
mov ebx, eax
cmp eax, 0xffffffff
je 0x4a918c
mov dword [esp], eax
call sub.msvcrt.dll_tolower
mov edx, eax
movsx eax, byte [edi + 0x5eae8a]
cmp edx, eax
jne 0x4a918c
xor eax, eax
test ebp, ebp
mov edx, dword [esp + 0x54]
mov ecx, esi
setg al
sub ebp, eax
mov eax, edi
call fcn.004a6930
cmp byte [edi + 0x5eae8b], 0
mov esi, eax
mov dword [esp + 0x80], eax
lea eax, [edi + 1]
mov byte [esi + edi], bl
je 0x4a99e0
mov edi, eax
test ebp, ebp
jne 0x4a912b
mov ebx, dword [esp + 0x74]
mov dword [esp + 0x48], esi
test ebx, ebx
je 0x4a91a9
mov eax, ebx
mov ebx, dword [ebx + 4]
mov dword [esp], eax
call sub.msvcrt.dll_free
test ebx, ebx
jne 0x4a9198
mov edi, dword [esp + 0x20]
mov dword [esp + 0x74], 0
test edi, edi
je 0x4a91c9
mov eax, dword [edi]
mov dword [esp], eax
call sub.msvcrt.dll_free
mov dword [edi], 0
mov eax, dword [esp + 0x48]
mov dword [esp], eax
call sub.msvcrt.dll_free
jmp 0x4a6ce8
mov eax, dword [esp + 0x44]
test eax, eax
jne 0x4a9923
mov eax, dword [esp + 0x38]
mov edi, dword [eax]
add eax, 4
mov dword [esp + 0x38], eax
mov dword [esp + 0x4c], edi
mov eax, dword [esp + 0x4c]
test eax, eax
jne 0x4a7024
jmp 0x4a7ada
mov eax, dword [esp + 0x44]
test eax, eax
jne 0x4a98eb
mov eax, dword [esp + 0x38]
mov edi, dword [eax]
add eax, 4
mov dword [esp + 0x38], eax
mov dword [esp + 0x3c], edi
mov edi, dword [esp + 0x3c]
test edi, edi
jne 0x4a7024
jmp 0x4a7ada
mov ebp, dword [esp + 0x68]
je 0x4a96b9
movzx eax, byte [edx + 1]
jmp 0x4a812f
mov eax, dword [esp + 0x40]
mov dword [esp + 0x2c], edi
mov edi, ebx
lea ecx, [eax + eax]
lea esi, [eax + 1]
mov ebx, ecx
mov dword [esp + 4], ebx
mov dword [esp], edx
call sub.msvcrt.dll_realloc
test eax, eax
je 0x4a9c89
mov esi, dword [esp + 0x40]
mov edx, dword [esp + 0x20]
mov ecx, ebx
mov ebx, edi
mov dword [esp + 0x40], ecx
mov edi, dword [esp + 0x2c]
mov dword [edx], eax
add esi, eax
jmp 0x4a8ba7
mov esi, dword [esp + 0x28]
jmp 0x4a8846
mov eax, dword [esp + 0x14]
mov dword [esp + 0x4c], esi
mov edi, ebx
test byte [eax + 0x1004], 1
je 0x4a99c2
mov ecx, dword [esp + 0x14]
mov eax, dword [esp + 0x78]
mov edx, dword [ecx + 0x1008]
sub eax, 1
mov dword [esp + 0x78], eax
mov dword [ecx + edx*4 + 4], ebx
add edx, 1
mov dword [ecx + 0x1008], edx
jmp 0x4a8e95
mov eax, dword [esp + 0x14]
mov edi, edx
test byte [eax + 0x1004], 1
je 0x4a994f
mov ecx, dword [esp + 0x14]
sub dword [esp + 0x78], 1
mov eax, dword [ecx + 0x1008]
mov dword [ecx + eax*4 + 4], edx
add eax, 1
mov dword [ecx + 0x1008], eax
jmp 0x4a8db2
mov ebx, dword [esp + 0x5c]
cmp edi, 0xffffffff
je 0x4a886e
mov eax, dword [esp + 0x14]
test byte [eax + 0x1004], 1
je 0x4a9771
mov ecx, dword [esp + 0x14]
sub dword [esp + 0x78], 1
mov eax, dword [ecx + 0x1008]
mov dword [ecx + eax*4 + 4], edi
add eax, 1
mov dword [ecx + 0x1008], eax
jmp 0x4a886e
mov eax, dword [ebp]
mov dword [esp], ebx
mov dword [esp + 4], eax
call sub.msvcrt.dll_ungetc
sub dword [esp + 0x78], 1
jmp 0x4a6d71
mov ecx, dword [esp + 0x44]
test ecx, ecx
jne 0x4a987f
mov ecx, dword [esp + 0x38]
mov edx, dword [ecx]
add ecx, 4
mov dword [esp + 0x38], ecx
mov dword [edx], eax
jmp 0x4a8023
mov edx, dword [esp + 0x44]
mov edi, dword [esp + 0x30]
sub edx, 1
lea eax, [edi + edx*4]
cmove eax, edi
mov eax, dword [eax]
mov dword [esp + 0x4c], eax
jmp 0x4a8c5a
mov edx, dword [esp + 0x44]
mov edi, dword [esp + 0x30]
sub edx, 1
lea eax, [edi + edx*4]
cmove eax, edi
mov eax, dword [eax]
mov dword [esp + 0x20], eax
jmp 0x4a7277
test bl, 2
je 0x4a9460
mov edx, dword [esp + 0x44]
test edx, edx
jne 0x4a9b1a
mov ecx, dword [esp + 0x38]
mov edx, dword [ecx]
add ecx, 4
mov dword [esp + 0x38], ecx
mov word [edx], ax
jmp 0x4a6d0c
mov ecx, dword [esp + 0x80]
lea esi, [esp + 0x7c]
xor eax, eax
mov edx, esi
call fcn.004a6930
mov edx, dword [esp + 0x2c]
mov byte [eax], 0x30
mov dword [esp + 0x80], eax
mov dword [esp + 0x18], eax
mov eax, dword [esp + 0x14]
call fcn.004a6a40
test ebp, ebp
mov ecx, dword [esp + 0x18]
mov edi, eax
jle 0x4a9435
sub ebp, 1
mov dword [esp + 0x18], 1
je 0x4a7bdd
mov dword [esp], edi
mov dword [esp + 0x18], ecx
call sub.msvcrt.dll_tolower
mov ecx, dword [esp + 0x18]
cmp eax, 0x78
je 0x4a9b33
mov byte [esp + 0x54], 0x65
mov dword [esp + 0x18], 1
jmp 0x4a7bdd
and ebx, 1
mov dword [esp + 0x18], ebx
je 0x4a9967
cmp dword [esp + 0x44], 0
jne 0x4a9bc4
mov ecx, dword [esp + 0x38]
mov edx, dword [ecx]
add ecx, 4
mov dword [esp + 0x38], ecx
mov byte [edx], al
mov dword [esp + 0x18], 0
jmp 0x4a6d0c
mov ecx, dword [esp + 0x44]
mov esi, dword [esp + 0x30]
sub ecx, 1
lea edx, [esi + ecx*4]
cmove edx, esi
mov edx, dword [edx]
jmp 0x4a835d
mov edx, dword [esp + 0x44]
mov edi, dword [esp + 0x30]
sub edx, 1
lea eax, [edi + edx*4]
cmove eax, edi
mov ecx, dword [eax]
jmp 0x4a8d9b
lea eax, [esp + 0x80]
xor ecx, ecx
lea edx, [esp + 0x74]
mov dword [esp], eax
mov eax, dword [esp + 0x24]
call fcn.004a69b0
mov dword [esp + 0x24], eax
jmp 0x4a6ce8
mov ecx, dword [esp + 0x80]
lea esi, [esp + 0x7c]
xor eax, eax
mov ebx, dword [esp + 0x18]
mov edx, esi
call fcn.004a6930
mov dword [esp + 0x54], 1
mov byte [eax], 0x30
mov ebp, eax
jmp 0x4a7f5c
mov esi, dword [esp + 0x30]
mov ecx, dword [esp + 0x44]
mov edx, esi
sub ecx, 1
je 0x4a9522
lea edx, [esi + ecx*4]
mov edx, dword [edx]
jmp 0x4a8fa9
lea esi, [esp + 0x7c]
mov ecx, dword [esp + 0x80]
xor eax, eax
mov edx, esi
call fcn.004a6930
mov dword [esp + 0x54], ebx
mov ecx, eax
mov dword [esp + 0x80], eax
mov eax, edi
mov byte [ecx], al
mov eax, 1
mov ebx, ecx
mov dword [esp + 0x48], esi
mov esi, eax
jmp 0x4a95c2
mov edx, dword [esp + 0x2c]
mov eax, dword [esp + 0x14]
call fcn.004a6a40
mov edi, eax
cmp eax, 0xffffffff
je 0x4a95c6
mov dword [esp], eax
call sub.msvcrt.dll_tolower
mov edx, eax
movsx eax, byte [esi + 0x5eae86]
cmp edx, eax
jne 0x4a95c6
xor eax, eax
test ebp, ebp
mov edx, dword [esp + 0x48]
mov ecx, ebx
setg al
sub ebp, eax
mov eax, esi
call fcn.004a6930
cmp byte [esi + 0x5eae87], 0
mov ebx, eax
mov dword [esp + 0x80], eax
lea eax, [esi + 1]
mov dword [esp + 0x18], eax
mov eax, edi
mov byte [ebx + esi], al
je 0x4a99a3
mov esi, dword [esp + 0x18]
test ebp, ebp
jne 0x4a955d
mov ecx, ebx
mov ebx, dword [esp + 0x74]
mov esi, ecx
test ebx, ebx
je 0x4a95e5
mov eax, ebx
mov ebx, dword [ebx + 4]
mov dword [esp], eax
call sub.msvcrt.dll_free
test ebx, ebx
jne 0x4a95d2
mov ecx, esi
mov edi, dword [esp + 0x20]
mov dword [esp + 0x74], 0
test edi, edi
je 0x4a960d
mov eax, dword [edi]
mov dword [esp + 0x10], ecx
mov dword [esp], eax
call sub.msvcrt.dll_free
mov dword [edi], 0
mov ecx, dword [esp + 0x10]
mov dword [esp], ecx
call sub.msvcrt.dll_free
jmp 0x4a6ce8
test byte [esp + 0x34], 0xa
jne 0x4a9789
xor eax, eax
test ebp, ebp
mov edx, dword [esp + 0x2c]
setg al
sub ebp, eax
mov eax, dword [esp + 0x14]
call fcn.004a6a40
mov dword [esp + 0x34], 0x10
cmp eax, 0xffffffff
mov edi, eax
setne al
test ebp, ebp
setne dl
and eax, edx
jmp 0x4a9096
mov eax, dword [esp + 0x24]
test eax, eax
cmovne edi, eax
jmp 0x4a7dc9
mov edx, dword [esp + 0x24]
test edx, edx
je 0x4a7a88
mov ebx, dword [esp + 0x74]
test ebx, ebx
je 0x4a71c0
mov eax, ebx
mov ebx, dword [ebx + 4]
mov dword [esp], eax
call sub.msvcrt.dll_free
test ebx, ebx
jne 0x4a967d
jmp 0x4a71c0
mov edx, dword [esp + 0x44]
mov edi, dword [esp + 0x30]
sub edx, 1
lea eax, [edi + edx*4]
cmove eax, edi
mov eax, dword [eax]
mov dword [esp + 0x20], eax
jmp 0x4a7830
jne 0x4a8120
mov ebx, dword [esp + 0x28]
movzx edx, byte [ebx]
mov eax, edx
cmp edi, edx
jne 0x4a812f
mov esi, ebp
jmp 0x4a9700
mov eax, dword [esp + 0x48]
test eax, eax
je 0x4a9ce7
mov edx, dword [esp + 0x2c]
mov eax, dword [esp + 0x14]
call fcn.004a6a40
mov edi, eax
cmp eax, 0xffffffff
je 0x4a9cdc
movzx edx, byte [ebx]
sub dword [esp + 0x48], 1
mov eax, edx
cmp edi, edx
jne 0x4a9cd5
mov ebp, ebx
add ebx, 1
cmp byte [ebx], 0
jne 0x4a96ca
mov ebp, esi
jmp 0x4a8137
mov eax, dword [esp + 0x14]
test byte [eax + 0x1004], 1
je 0x4a9cf0
mov ecx, dword [esp + 0x14]
sub dword [esp + 0x78], 1
mov eax, dword [ecx + 0x1008]
mov dword [ecx + eax*4 + 4], edi
add eax, 1
mov dword [ecx + 0x1008], eax
jmp 0x4a8449
mov ecx, dword [esp + 0x24]
test ecx, ecx
je 0x4a7a88
mov ebx, dword [esp + 0x74]
test ebx, ebx
je 0x4a71c0
mov eax, ebx
mov ebx, dword [ebx + 4]
mov dword [esp], eax
call sub.msvcrt.dll_free
test ebx, ebx
jne 0x4a975b
jmp 0x4a71c0
mov eax, dword [eax]
mov dword [esp], edi
mov dword [esp + 4], eax
call sub.msvcrt.dll_ungetc
sub dword [esp + 0x78], 1
jmp 0x4a886e
test ebp, ebp
setne al
cmp edi, 0xffffffff
setne dl
and eax, edx
jmp 0x4a9096
movzx eax, cl
jmp 0x4a7104
mov esi, dword [esp + 0x30]
mov ecx, dword [esp + 0x44]
mov edx, esi
sub ecx, 1
je 0x4a97b5
lea edx, [esi + ecx*4]
mov edx, dword [edx]
jmp 0x4a8fe9
mov edx, dword [esp + 0x40]
mov dword [esp + 0x2c], ebp
mov ebx, ecx
mov ebp, edi
mov dword [esp + 0x3c], esi
mov edi, ecx
add edx, 1
mov esi, edx
lea eax, [ebx + ebx]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x20]
mov eax, dword [eax]
mov dword [esp], eax
call sub.msvcrt.dll_realloc
test eax, eax
je 0x4a9d94
mov edx, dword [esp + 0x20]
mov ecx, edi
mov esi, dword [esp + 0x3c]
mov edi, ebp
mov dword [esp + 0x40], ebx
mov ebp, dword [esp + 0x2c]
mov dword [edx], eax
add eax, ecx
mov dword [esp + 0x3c], eax
jmp 0x4a8424
mov edx, dword [esp + 0x44]
test edx, edx
jne 0x4a9a3e
mov ecx, dword [esp + 0x38]
mov edx, dword [ecx]
add ecx, 4
mov dword [esp + 0x38], ecx
mov word [edx], ax
jmp 0x4a8023
mov ebx, dword [esp + 0x30]
mov edx, dword [esp + 0x44]
mov eax, ebx
sub edx, 1
je 0x4a9844
lea eax, [ebx + edx*4]
mov edx, dword [eax]
mov eax, dword [esp + 0x38]
jmp 0x4a8919
mov eax, dword [eax]
mov dword [esp], ebx
mov dword [esp + 4], eax
call sub.msvcrt.dll_ungetc
sub dword [esp + 0x78], 1
jmp 0x4a856e
mov eax, dword [eax]
mov dword [esp], edi
mov dword [esp + 4], eax
call sub.msvcrt.dll_ungetc
sub dword [esp + 0x78], 1
jmp 0x4a7f5c
mov esi, dword [esp + 0x30]
mov ecx, dword [esp + 0x44]
mov edx, esi
sub ecx, 1
je 0x4a9891
lea edx, [esi + ecx*4]
mov edx, dword [edx]
mov dword [edx], eax
jmp 0x4a8023
mov edx, dword [esp + 0x44]
mov edi, dword [esp + 0x30]
sub edx, 1
lea eax, [edi + edx*4]
cmove eax, edi
mov eax, dword [eax]
mov dword [esp + 0x20], eax
jmp 0x4a7d90
cmp dword [esp + 0x24], 0
jne 0x4a7ada
mov dword [esp + 0x24], 0xffffffff
jmp 0x4a7ada
mov ebx, dword [esp + 0x30]
mov edx, dword [esp + 0x44]
mov eax, ebx
sub edx, 1
je 0x4a98e0
lea eax, [ebx + edx*4]
mov edx, dword [eax]
mov eax, dword [esp + 0x38]
jmp 0x4a9032
mov edx, dword [esp + 0x44]
mov edi, dword [esp + 0x30]
sub edx, 1
lea eax, [edi + edx*4]
cmove eax, edi
mov eax, dword [eax]
mov dword [esp + 0x3c], eax
jmp 0x4a922d
mov edx, dword [esp + 0x44]
mov edi, dword [esp + 0x30]
sub edx, 1
lea eax, [edi + edx*4]
cmove eax, edi
mov eax, dword [eax]
mov dword [esp + 0x20], eax
jmp 0x4a6fb4
mov edx, dword [esp + 0x44]
mov edi, dword [esp + 0x30]
sub edx, 1
lea eax, [edi + edx*4]
cmove eax, edi
mov eax, dword [eax]
mov dword [esp + 0x4c], eax
jmp 0x4a91f7
call sub.msvcrt.dll__errno
mov dword [eax], 0x2a
jmp 0x4a7ada
mov eax, dword [eax]
mov dword [esp], edx
mov dword [esp + 4], eax
call sub.msvcrt.dll_ungetc
sub dword [esp + 0x78], 1
jmp 0x4a8db2
cmp dword [esp + 0x44], 0
jne 0x4a9ba9
mov ecx, dword [esp + 0x38]
mov edx, dword [ecx]
add ecx, 4
mov dword [esp + 0x38], ecx
mov dword [edx], eax
jmp 0x4a6d0c
mov ebx, dword [esp + 0x30]
mov edx, dword [esp + 0x44]
mov eax, ebx
sub edx, 1
je 0x4a9998
lea eax, [ebx + edx*4]
mov edx, dword [eax]
mov eax, dword [esp + 0x38]
jmp 0x4a90ee
mov ebx, dword [esp + 0x54]
mov esi, dword [esp + 0x48]
jmp 0x4a888e
mov eax, dword [esp + 0x24]
test eax, eax
cmove eax, dword [esp + 0x64]
mov edi, eax
jmp 0x4a7dc9
mov eax, dword [eax]
mov dword [esp], ebx
mov dword [esp + 4], eax
call sub.msvcrt.dll_ungetc
mov eax, dword [esp + 0x78]
sub eax, 1
mov dword [esp + 0x78], eax
jmp 0x4a8e95
mov dword [esp + 0x48], esi
mov esi, dword [esp + 0x54]
mov dword [esp + 0x58], edi
mov edi, ebx
mov ebx, dword [esp + 0x5c]
mov dword [esp + 0x18], eax
test ebp, ebp
je 0x4a888e
mov edx, dword [esp + 0x2c]
mov eax, dword [esp + 0x14]
call fcn.004a6a40
mov edi, eax
cmp eax, 0xffffffff
je 0x4a888e
mov dword [esp], eax
call sub.msvcrt.dll_tolower
cmp eax, 0x69
je 0x4a9a57
mov dword [esp], 0
mov ecx, dword [esp + 0x2c]
mov eax, edi
mov edx, dword [esp + 0x14]
call fcn.004a6ad0
jmp 0x4a888e
mov esi, dword [esp + 0x30]
mov ecx, dword [esp + 0x44]
mov edx, esi
sub ecx, 1
je 0x4a9a50
lea edx, [esi + ecx*4]
mov edx, dword [edx]
jmp 0x4a982a
test ebp, ebp
jle 0x4a9a5e
sub ebp, 1
mov ecx, dword [esp + 0x48]
mov eax, dword [esp + 0x18]
mov edx, esi
call fcn.004a6930
mov edx, dword [esp + 0x58]
mov ecx, edi
mov dword [esp + 0x58], ebx
mov dword [esp + 0x80], eax
add edx, 2
mov dword [esp + 0x48], 0x5eae8e
mov dword [esp + 0x54], edx
mov edx, dword [esp + 0x18]
mov ebx, dword [esp + 0x54]
mov byte [eax + edx], cl
jmp 0x4a9a9e
mov ebx, dword [esp + 0x18]
test ebp, ebp
je 0x4a7ada
mov edx, dword [esp + 0x2c]
mov eax, dword [esp + 0x14]
call fcn.004a6a40
mov edi, eax
cmp eax, 0xffffffff
je 0x4a7ada
mov dword [esp], eax
call sub.msvcrt.dll_tolower
mov edx, eax
mov eax, dword [esp + 0x48]
movsx eax, byte [eax + 1]
cmp edx, eax
jne 0x4a7ada
test ebp, ebp
jle 0x4a9adf
sub ebp, 1
mov ecx, dword [esp + 0x80]
mov edx, esi
mov eax, ebx
call fcn.004a6930
lea ecx, [ebx + 1]
add dword [esp + 0x48], 1
mov dword [esp + 0x18], ecx
mov ecx, edi
mov dword [esp + 0x80], eax
mov byte [eax + ebx], cl
mov eax, dword [esp + 0x48]
cmp byte [eax + 1], 0
jne 0x4a9a9a
mov ebx, dword [esp + 0x58]
jmp 0x4a888e
mov esi, dword [esp + 0x30]
mov ecx, dword [esp + 0x44]
mov edx, esi
sub ecx, 1
je 0x4a9b2c
lea edx, [esi + ecx*4]
mov edx, dword [edx]
jmp 0x4a93e3
mov edx, esi
mov eax, 1
call fcn.004a6930
mov ecx, edi
mov edx, dword [esp + 0x2c]
mov dword [esp + 0x80], eax
mov byte [eax + 1], cl
mov eax, ebx
and ah, 0xfe
or eax, 0x40
mov ebx, eax
mov eax, dword [esp + 0x14]
call fcn.004a6a40
mov edi, eax
test ebp, ebp
jle 0x4a9b7d
mov byte [esp + 0x54], 0x70
sub ebp, 1
mov dword [esp + 0x18], 2
jmp 0x4a7bdd
mov byte [esp + 0x54], 0x70
mov dword [esp + 0x18], 2
jmp 0x4a7bdd
mov eax, dword [esp + 0x28]
mov ebx, esi
mov esi, dword [esp + 0x18]
add eax, 1
sub eax, esi
add ebp, eax
movzx edi, byte [ebp]
jmp 0x4a8688
mov esi, dword [esp + 0x30]
mov ecx, dword [esp + 0x44]
mov edx, esi
sub ecx, 1
je 0x4a9bbb
lea edx, [esi + ecx*4]
mov edx, dword [edx]
mov dword [edx], eax
jmp 0x4a6d0c
mov esi, dword [esp + 0x30]
mov ecx, dword [esp + 0x44]
mov edx, esi
sub ecx, 1
je 0x4a9bd6
lea edx, [esi + ecx*4]
mov edx, dword [edx]
jmp 0x4a9485
cmp esi, ebx
jae 0x4a9c09
mov eax, dword [esp + 0x20]
mov ebx, esi
mov edx, dword [eax]
jmp 0x4a8c0c
mov eax, dword [esp + 0x3c]
mov ecx, dword [esp + 0x18]
cmp eax, ecx
jae 0x4a9c35
mov ecx, dword [esp + 0x20]
mov dword [esp + 0x18], eax
mov ecx, dword [ecx]
jmp 0x4a8b04
mov eax, dword [esp + 0x44]
test ah, 4
je 0x4a9c69
or eax, 0xffffffff
lea edx, [esp + 0x80]
mov ecx, dword [esp + 0x20]
mov dword [esp], edx
lea edx, [esp + 0x74]
call fcn.004a69b0
mov dword [esp + 0x24], eax
jmp 0x4a6ce8
mov eax, dword [esp + 0x64]
mov ecx, dword [esp + 0x44]
test ah, 4
jne 0x4a9c12
mov eax, dword [esp + 0x20]
mov eax, dword [eax]
mov word [eax + ecx - 2], 0
mov eax, dword [esp + 0x24]
mov dword [esp + 0x20], 0
add eax, 1
jmp 0x4a9c15
mov eax, dword [esp + 0x4c]
test ah, 4
jne 0x4a9c12
mov eax, dword [esp + 0x20]
mov edi, dword [esp + 0x40]
mov eax, dword [eax]
mov byte [eax + edi - 1], 0
mov eax, dword [esp + 0x24]
mov dword [esp + 0x20], 0
add eax, 1
jmp 0x4a9c15
cmp esi, ebx
jae 0x4a9c60
mov eax, dword [esp + 0x20]
mov ebx, esi
mov edx, dword [eax]
jmp 0x4a9265
mov ebx, dword [esp + 0x18]
jmp 0x4a8287
mov ebp, dword [esp + 0x14]
mov ecx, dword [esp + 0x2c]
mov dword [esp], 1
mov edx, ebp
call fcn.004a6ad0
jmp 0x4a7ada
mov edx, dword [esp + 0x44]
xor ecx, ecx
jmp 0x4a9ccb
mov ecx, 1
sub edx, 1
jne 0x4a9cc6
jmp 0x4a8f6f
mov ebp, esi
jmp 0x4a812f
xchg esi, ebp
movzx eax, byte [esi + 1]
jmp 0x4a812f
mov ebx, dword [esp + 0x5c]
jmp 0x4a931e
mov eax, dword [eax]
mov dword [esp], edi
mov dword [esp + 4], eax
call sub.msvcrt.dll_ungetc
sub dword [esp + 0x78], 1
jmp 0x4a8449
cmp edi, dword [esp + 0x2c]
jae 0x4a7a88
mov eax, dword [esp + 0x20]
mov dword [esp + 0x2c], edi
mov eax, dword [eax]
jmp 0x4a768f
cmp ebx, esi
jae 0x4a7a88
mov eax, dword [esp + 0x20]
mov esi, ebx
mov edx, dword [eax]
jmp 0x4a7937
mov byte [esp + 0x60], 1
jmp 0x4a7c9c
cmp dword [esp + 0x44], 0
je 0x4a9375
mov edx, dword [esp + 0x44]
xor ecx, ecx
jmp 0x4a9d58
mov ecx, 1
sub edx, 1
jne 0x4a9d53
mov esi, dword [esp + 0x30]
mov edx, dword [esp + 0x44]
test cl, cl
lea edx, [esi + edx*4 - 4]
cmove edx, esi
mov edx, dword [edx]
jmp 0x4a9893
cmp dword [esp + 0x44], 0
je 0x4a9375
mov edx, dword [esp + 0x44]
xor ecx, ecx
jmp 0x4a9d8d
mov ecx, 1
sub edx, 1
jne 0x4a9d88
jmp 0x4a9d5d
cmp esi, ebx
jae 0x4a9d9f
mov ebx, esi
jmp 0x4a97d3
mov eax, dword [esp + 0x58]
mov ecx, edi
test ah, 4
je 0x4a9c42
jmp 0x4a9c12