Function at 0x4a5fd0
Capabilities:
Query environment variable

Disassembly:
push ebp
push edi
push esi
push ebx
sub esp, 0x5c
mov eax, dword [0x4b2770]
mov dword [0x4e85d0], 0
test eax, eax
jne 0x4a6230
mov dword [0x4b2770], 1
mov eax, 1
mov dword [esp], str.POSIXLY_CORRECT
mov dword [0x4e85d4], eax
mov dword [0x4e85d8], eax
mov dword [0x4e85e4], 0
call sub.msvcrt.dll_getenv
mov edi, dword [esp + 0x78]
mov dword [0x4e85dc], eax
movzx edx, byte [edi]
cmp dl, 0x2d
je 0x4a64b4
cmp dl, 0x2b
je 0x4a64a0
test eax, eax
sete al
movzx eax, al
mov dword [0x4e85e0], eax
mov dword [0x4e85cc], 1
mov eax, dword [0x4e85e4]
test eax, eax
je 0x4a6243
movzx ecx, byte [eax]
test cl, cl
mov byte [esp + 0x2c], cl
je 0x4a6243
mov dword [esp + 0x28], eax
mov ecx, dword [esp + 0x7c]
test ecx, ecx
je 0x4a62f4
mov eax, dword [0x4b2770]
lea edi, [eax*4]
mov dword [esp + 0x38], eax
mov dword [esp + 0x40], edi
mov edi, dword [esp + 0x74]
mov eax, dword [edi + eax*4]
mov edi, eax
mov dword [esp + 0x3c], eax
movzx eax, byte [eax + 1]
cmp al, 0x2d
mov byte [esp + 0x47], al
mov ebx, eax
je 0x4a60f2
mov edx, dword [esp + 0x84]
test edx, edx
je 0x4a62f4
cmp byte [edi + 2], 0
jne 0x4a60f2
mov edi, dword [esp + 0x78]
movzx edx, byte [edi]
test dl, dl
je 0x4a60f2
cmp al, dl
je 0x4a66a4
mov eax, edi
jmp 0x4a60e8
cmp bl, cl
je 0x4a66a4
add eax, 1
movzx ecx, byte [eax]
test cl, cl
jne 0x4a60e0
movzx eax, byte [esp + 0x2c]
mov esi, dword [esp + 0x28]
test al, al
jne 0x4a63ee
mov eax, dword [esp + 0x7c]
mov ebp, dword [eax]
test ebp, ebp
je 0x4a65e2
mov eax, esi
sub eax, dword [esp + 0x28]
mov dword [esp + 0x4c], esi
mov ebx, dword [esp + 0x7c]
xor edi, edi
mov dword [esp + 0x48], 0xffffffff
mov dword [esp + 0x34], 0
mov dword [esp + 0x30], 0
mov esi, eax
jmp 0x4a6154
mov dword [esp + 0x34], 1
add ebx, 0x10
mov ebp, dword [ebx]
add edi, 1
test ebp, ebp
je 0x4a61a0
mov eax, dword [esp + 0x28]
mov dword [esp + 8], esi
mov dword [esp], ebp
mov dword [esp + 4], eax
call sub.msvcrt.dll_strncmp
test eax, eax
jne 0x4a6148
mov dword [esp], ebp
call sub.msvcrt.dll_strlen
cmp eax, esi
je 0x4a6560
mov eax, dword [esp + 0x30]
test eax, eax
jne 0x4a6140
mov dword [esp + 0x30], ebx
add ebx, 0x10
mov ebp, dword [ebx]
mov dword [esp + 0x48], edi
add edi, 1
test ebp, ebp
jne 0x4a6154
nop
lea esi, [esi]
mov eax, dword [esp + 0x34]
mov esi, dword [esp + 0x4c]
test eax, eax
je 0x4a6c7b
mov eax, dword [0x4b276c]
mov ebx, dword [esp + 0x28]
test eax, eax
je 0x4a61f6
mov eax, dword [esp + 0x3c]
mov dword [esp + 0xc], eax
mov eax, dword [esp + 0x74]
mov eax, dword [eax]
mov dword [esp + 4], str._s:_option___s_is_ambiguous_n
mov dword [esp + 8], eax
mov eax, dword [sym.imp.msvcrt.dll__iob]
add eax, 0x40
mov dword [esp], eax
call sub.msvcrt.dll_fprintf
mov eax, dword [0x4b2770]
mov ebx, dword [0x4e85e4]
mov dword [esp + 0x38], eax
mov dword [esp], ebx
call sub.msvcrt.dll_strlen
add eax, ebx
mov dword [0x4e85e4], eax
mov eax, dword [esp + 0x38]
mov dword [0x4b2768], 0
add eax, 1
mov dword [0x4b2770], eax
add esp, 0x5c
mov eax, 0x3f
pop ebx
pop esi
pop edi
pop ebp
ret
mov esi, dword [0x4e85cc]
test esi, esi
je 0x4a5ffd
jmp 0x4a6052
mov eax, dword [0x4b2770]
cmp dword [0x4e85d4], eax
jle 0x4a6255
mov dword [0x4e85d4], eax
cmp eax, dword [0x4e85d8]
jge 0x4a6262
mov dword [0x4e85d8], eax
mov ebx, dword [0x4e85e0]
cmp ebx, 1
je 0x4a6405
cmp dword [esp + 0x70], eax
je 0x4a6474
mov edi, dword [esp + 0x74]
mov ecx, 3
mov ebp, dword [edi + eax*4]
mov edi, 0x4e1dd4
mov esi, ebp
repe cmpsb byte [esi], byte es:[edi]
seta cl
mov esi, ecx
setb cl
mov edx, esi
cmp dl, cl
jne 0x4a63b0
mov edx, dword [0x4e85d8]
mov ecx, dword [0x4e85d4]
add eax, 1
mov dword [0x4b2770], eax
cmp edx, ecx
je 0x4a65c0
cmp eax, ecx
je 0x4a62d1
mov eax, dword [esp + 0x74]
call fcn.004a5f10
mov edx, dword [0x4e85d8]
mov eax, dword [esp + 0x70]
cmp eax, edx
mov dword [0x4e85d4], eax
mov dword [0x4b2770], eax
jne 0x4a6487
add esp, 0x5c
mov eax, 0xffffffff
pop ebx
pop esi
pop edi
pop ebp
ret
mov eax, dword [esp + 0x28]
lea ecx, [eax + 1]
mov eax, dword [esp + 0x78]
mov dword [0x4e85e4], ecx
movzx edx, byte [eax]
test dl, dl
je 0x4a6333
cmp byte [esp + 0x2c], dl
je 0x4a64c8
mov eax, dword [esp + 0x78]
movzx ebx, byte [esp + 0x2c]
jmp 0x4a6329
cmp dl, bl
je 0x4a64d0
add eax, 1
movzx edx, byte [eax]
test dl, dl
jne 0x4a6321
mov eax, dword [esp + 0x28]
cmp byte [eax + 1], 0
jne 0x4a6353
mov edx, 1
xor eax, eax
add dword [0x4b2770], 1
test dl, dl
je 0x4a6540
mov eax, dword [0x4b276c]
movsx ebx, byte [esp + 0x2c]
test eax, eax
je 0x4a6394
mov eax, dword [0x4e85dc]
mov dword [esp + 0xc], ebx
test eax, eax
mov eax, dword [esp + 0x74]
mov eax, dword [eax]
mov dword [esp + 8], eax
je 0x4a67db
mov eax, dword [sym.imp.msvcrt.dll__iob]
mov dword [esp + 4], str._s:_illegal_option_____c_n
add eax, 0x40
mov dword [esp], eax
call sub.msvcrt.dll_fprintf
mov dword [0x4b2768], ebx
add esp, 0x5c
mov eax, 0x3f
pop ebx
pop esi
pop edi
pop ebp
ret
cmp byte [ebp], 0x2d
je 0x4a6503
test ebx, ebx
je 0x4a62e7
add eax, 1
mov dword [0x4e85d0], ebp
mov dword [0x4b2770], eax
mov eax, 1
add esp, 0x5c
pop ebx
pop esi
pop edi
pop ebp
ret
add esi, 1
movzx eax, byte [esi]
test al, al
je 0x4a6103
cmp al, 0x3d
jne 0x4a63e0
mov eax, dword [esp + 0x7c]
mov ebp, dword [eax]
test ebp, ebp
jne 0x4a6111
jmp 0x4a65e2
mov edx, dword [0x4e85d4]
cmp dword [0x4e85d8], edx
je 0x4a6690
cmp eax, edx
je 0x4a642a
mov eax, dword [esp + 0x74]
call fcn.004a5f10
mov edx, dword [0x4b2770]
cmp dword [esp + 0x70], edx
mov eax, edx
jle 0x4a6464
mov esi, dword [esp + 0x70]
mov ecx, dword [esp + 0x74]
jmp 0x4a6451
add edx, 1
cmp esi, edx
mov dword [0x4b2770], edx
je 0x4a64f2
mov eax, dword [ecx + edx*4]
cmp byte [eax], 0x2d
jne 0x4a6440
cmp byte [eax + 1], 0
je 0x4a6440
mov eax, dword [0x4b2770]
mov dword [0x4e85d4], edx
cmp dword [esp + 0x70], eax
jne 0x4a627b
mov eax, dword [0x4e85d4]
mov edx, dword [0x4e85d8]
cmp eax, edx
je 0x4a62e7
mov dword [0x4b2770], edx
add esp, 0x5c
mov eax, 0xffffffff
pop ebx
pop esi
pop edi
pop ebp
ret
mov dword [0x4e85e0], 0
add dword [esp + 0x78], 1
jmp 0x4a6048
mov dword [0x4e85e0], 2
add dword [esp + 0x78], 1
jmp 0x4a6048
mov eax, dword [esp + 0x78]
lea esi, [esi]
test eax, eax
mov edi, dword [esp + 0x28]
sete bl
cmp byte [esp + 0x2c], 0x3a
sete dl
or edx, ebx
cmp byte [edi + 1], 0
je 0x4a6344
jmp 0x4a634b
mov eax, dword [esp + 0x70]
mov edx, eax
mov dword [0x4e85d4], edx
jmp 0x4a646a
movzx ecx, byte [ebp + 1]
test cl, cl
je 0x4a63ba
mov ebx, dword [esp + 0x7c]
test ebx, ebx
setne al
cmp cl, 0x2d
sete cl
movzx ecx, cl
and eax, ecx
lea eax, [ebp + eax + 1]
movzx ebx, byte [eax]
mov dword [0x4e85e4], eax
mov dword [esp + 0x28], eax
mov byte [esp + 0x2c], bl
jmp 0x4a6072
cmp byte [eax], 0x57
movzx edx, byte [eax + 1]
je 0x4a66b6
cmp dl, 0x3a
je 0x4a67a2
movsx eax, byte [esp + 0x2c]
jmp 0x4a63d5
mov esi, dword [esp + 0x4c]
mov eax, dword [esp + 0x38]
add eax, 1
mov dword [0x4b2770], eax
cmp byte [esi], 0
jne 0x4a65cc
cmp dword [ebx + 4], 1
je 0x4a689f
mov esi, dword [esp + 0x28]
mov dword [esp], esi
call sub.msvcrt.dll_strlen
mov edx, dword [esp + 0x80]
add eax, esi
mov dword [0x4e85e4], eax
test edx, edx
je 0x4a65a6
mov eax, dword [esp + 0x80]
mov dword [eax], edi
mov eax, dword [ebx + 8]
test eax, eax
je 0x4a68f1
mov edx, dword [ebx + 0xc]
mov dword [eax], edx
xor eax, eax
jmp 0x4a63d5
mov dword [0x4e85d8], eax
mov edx, eax
jmp 0x4a62d1
mov ebp, dword [ebx + 4]
test ebp, ebp
je 0x4a67f8
add esi, 1
mov dword [0x4e85d0], esi
jmp 0x4a657f
cmp byte [esp + 0x47], 0x2d
je 0x4a6626
mov eax, dword [esp + 0x84]
test eax, eax
je 0x4a6626
mov eax, dword [esp + 0x78]
movzx eax, byte [eax]
test al, al
je 0x4a6626
movzx ebx, byte [esp + 0x2c]
cmp al, bl
je 0x4a6c65
mov eax, dword [esp + 0x78]
mov ecx, ebx
jmp 0x4a661c
cmp dl, cl
je 0x4a6b8b
add eax, 1
movzx edx, byte [eax]
test dl, dl
jne 0x4a6614
mov eax, dword [0x4b276c]
test eax, eax
je 0x4a6678
cmp byte [esp + 0x47], 0x2d
mov eax, dword [esp + 0x28]
je 0x4a6abe
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0x3c]
movsx eax, byte [eax]
mov dword [esp + 0xc], eax
mov eax, dword [esp + 0x74]
mov eax, dword [eax]
mov dword [esp + 4], str._s:_unrecognized_option___c_s_n
mov dword [esp + 8], eax
mov eax, dword [sym.imp.msvcrt.dll__iob]
add eax, 0x40
mov dword [esp], eax
call sub.msvcrt.dll_fprintf
mov eax, dword [0x4b2770]
mov dword [esp + 0x38], eax
mov dword [0x4e85e4], 0x4e1ec0
jmp 0x4a6205
cmp eax, edx
je 0x4a642a
mov dword [0x4e85d8], eax
mov edx, eax
jmp 0x4a642a
mov eax, dword [esp + 0x28]
lea ecx, [eax + 1]
mov dword [0x4e85e4], ecx
jmp 0x4a630c
cmp dl, 0x3b
jne 0x4a654d
mov eax, dword [esp + 0x28]
cmp byte [eax + 1], 0
je 0x4a69ac
add dword [0x4b2770], 1
mov dword [0x4e85d0], ecx
mov dword [esp + 0x28], ecx
mov eax, dword [esp + 0x28]
movzx ebx, byte [eax]
mov dword [0x4e85e4], eax
test bl, bl
je 0x4a6b7e
cmp bl, 0x3d
jne 0x4a6705
jmp 0x4a6b7e
cmp bl, 0x3d
je 0x4a670f
add eax, 1
movzx ebx, byte [eax]
test bl, bl
jne 0x4a6700
mov dword [esp + 0x34], eax
mov eax, dword [esp + 0x7c]
mov esi, dword [eax]
test esi, esi
je 0x4a6bef
mov ebp, dword [esp + 0x34]
mov byte [esp + 0x3c], bl
xor edi, edi
sub ebp, dword [esp + 0x28]
mov dword [esp + 0x38], 0
mov ebx, eax
mov dword [esp + 0x30], 0
mov dword [esp + 0x2c], 0
jmp 0x4a6768
mov dword [esp + 0x30], 1
add ebx, 0x10
mov esi, dword [ebx]
add edi, 1
test esi, esi
je 0x4a68f9
mov eax, dword [esp + 0x28]
mov dword [esp + 8], ebp
mov dword [esp], esi
mov dword [esp + 4], eax
call sub.msvcrt.dll_strncmp
test eax, eax
jne 0x4a6758
mov dword [esp], esi
call sub.msvcrt.dll_strlen
cmp eax, ebp
je 0x4a6a44
mov eax, dword [esp + 0x2c]
test eax, eax
jne 0x4a6750
mov dword [esp + 0x38], edi
mov dword [esp + 0x2c], ebx
jmp 0x4a6758
cmp byte [eax + 2], 0x3a
mov eax, dword [esp + 0x28]
je 0x4a68cb
cmp byte [eax + 1], 0
je 0x4a6871
add dword [0x4b2770], 1
movsx eax, byte [esp + 0x2c]
mov dword [0x4e85d0], ecx
mov dword [0x4e85e4], 0
jmp 0x4a63d5
mov eax, dword [sym.imp.msvcrt.dll__iob]
mov dword [esp + 4], str._s:_invalid_option_____c_n
add eax, 0x40
mov dword [esp], eax
call sub.msvcrt.dll_fprintf
jmp 0x4a6394
mov esi, dword [0x4b276c]
test esi, esi
je 0x4a657f
mov eax, dword [esp + 0x74]
mov edi, dword [esp + 0x40]
mov eax, dword [eax + edi]
cmp byte [eax + 1], 0x2d
je 0x4a69e9
mov edx, dword [ebx]
mov dword [esp + 0x10], edx
movsx eax, byte [eax]
mov dword [esp + 0xc], eax
mov eax, dword [esp + 0x74]
mov eax, dword [eax]
mov dword [esp + 4], str._s:_option___c_s_doesnt_allow_an_argument_n
mov dword [esp + 8], eax
mov eax, dword [sym.imp.msvcrt.dll__iob]
add eax, 0x40
mov dword [esp], eax
call sub.msvcrt.dll_fprintf
mov esi, dword [0x4e85e4]
mov dword [esp], esi
call sub.msvcrt.dll_strlen
add eax, esi
mov dword [0x4e85e4], eax
mov eax, dword [ebx + 0xc]
mov dword [0x4b2768], eax
mov eax, 0x3f
jmp 0x4a63d5
mov eax, dword [0x4b2770]
cmp dword [esp + 0x70], eax
je 0x4a6a16
mov edi, dword [esp + 0x74]
lea edx, [eax + 1]
mov dword [0x4b2770], edx
mov eax, dword [edi + eax*4]
mov dword [0x4e85d0], eax
movsx eax, byte [esp + 0x2c]
jmp 0x4a67cc
cmp dword [esp + 0x70], eax
jle 0x4a696c
mov eax, dword [esp + 0x38]
mov esi, dword [esp + 0x40]
add eax, 2
mov dword [0x4b2770], eax
mov eax, dword [esp + 0x74]
mov eax, dword [eax + esi + 4]
mov dword [0x4e85d0], eax
jmp 0x4a657f
cmp byte [eax + 1], 0
je 0x4a69da
add dword [0x4b2770], 1
mov dword [0x4e85d0], ecx
mov dword [0x4e85e4], 0
jmp 0x4a6556
mov eax, dword [ebx + 0xc]
jmp 0x4a63d5
mov esi, dword [esp + 0x30]
movzx ebx, byte [esp + 0x3c]
test esi, esi
je 0x4a6c9f
mov ecx, dword [0x4b276c]
mov ebx, dword [esp + 0x28]
test ecx, ecx
je 0x4a694c
mov edi, dword [esp + 0x74]
mov eax, dword [0x4b2770]
mov eax, dword [edi + eax*4]
mov dword [esp + 0xc], eax
mov eax, dword [edi]
mov dword [esp + 4], str._s:_option___W__s_is_ambiguous_n
mov dword [esp + 8], eax
mov eax, dword [sym.imp.msvcrt.dll__iob]
add eax, 0x40
mov dword [esp], eax
call sub.msvcrt.dll_fprintf
mov ebx, dword [0x4e85e4]
mov dword [esp], ebx
call sub.msvcrt.dll_strlen
add eax, ebx
add dword [0x4b2770], 1
mov dword [0x4e85e4], eax
mov eax, 0x3f
jmp 0x4a63d5
mov ecx, dword [0x4b276c]
mov esi, dword [esp + 0x28]
test ecx, ecx
jne 0x4a6af2
mov dword [esp], esi
call sub.msvcrt.dll_strlen
add eax, esi
mov dword [0x4e85e4], eax
mov eax, dword [ebx + 0xc]
mov dword [0x4b2768], eax
mov eax, dword [esp + 0x78]
cmp byte [eax], 0x3a
jne 0x4a639a
mov eax, 0x3a
jmp 0x4a63d5
mov eax, dword [0x4b2770]
cmp dword [esp + 0x70], eax
je 0x4a6b2e
mov edi, dword [esp + 0x74]
lea edx, [eax + 1]
mov dword [0x4b2770], edx
mov ecx, dword [edi + eax*4]
mov dword [0x4e85d0], ecx
mov dword [esp + 0x28], ecx
jmp 0x4a66de
mov dword [0x4e85d0], 0
jmp 0x4a68e2
mov eax, dword [ebx]
mov dword [esp + 0xc], eax
mov eax, dword [esp + 0x74]
mov eax, dword [eax]
mov dword [esp + 4], str._s:_option_____s_doesnt_allow_an_argument_n
mov dword [esp + 8], eax
mov eax, dword [sym.imp.msvcrt.dll__iob]
add eax, 0x40
mov dword [esp], eax
call sub.msvcrt.dll_fprintf
jmp 0x4a684a
mov eax, dword [0x4b276c]
movsx ebx, byte [esp + 0x2c]
test eax, eax
jne 0x4a6c03
mov eax, dword [esp + 0x78]
mov dword [0x4b2768], ebx
cmp byte [eax], 0x3a
setne al
movzx eax, al
lea eax, [eax + eax*4 + 0x3a]
jmp 0x4a67cc
mov dword [esp + 0x7c], ebx
movzx ebx, byte [esp + 0x3c]
test bl, bl
mov eax, dword [esp + 0x7c]
je 0x4a6b9d
cmp dword [eax + 4], 0
jne 0x4a6c2e
cmp dword [0x4b276c], 0
je 0x4a6a98
mov eax, dword [esp + 0x7c]
mov eax, dword [eax]
mov dword [esp + 0xc], eax
mov eax, dword [esp + 0x74]
mov eax, dword [eax]
mov dword [esp + 4], str._s:_option___W__s_doesnt_allow_an_argument_n
mov dword [esp + 8], eax
mov eax, dword [sym.imp.msvcrt.dll__iob]
add eax, 0x40
mov dword [esp], eax
call sub.msvcrt.dll_fprintf
mov edx, dword [0x4e85e4]
xor eax, eax
or ecx, 0xffffffff
mov edi, edx
repne scasb al, byte es:[edi]
mov eax, ecx
not eax
lea eax, [edx + eax - 1]
mov dword [0x4e85e4], eax
mov eax, 0x3f
jmp 0x4a63d5
mov dword [esp + 0xc], eax
mov eax, dword [esp + 0x74]
mov eax, dword [eax]
mov dword [esp + 4], str._s:_unrecognized_option_____s_n
mov dword [esp + 8], eax
mov eax, dword [sym.imp.msvcrt.dll__iob]
add eax, 0x40
mov dword [esp], eax
call sub.msvcrt.dll_fprintf
mov eax, dword [0x4b2770]
mov dword [esp + 0x38], eax
jmp 0x4a6678
mov eax, dword [esp + 0x74]
mov edi, dword [esp + 0x40]
mov eax, dword [eax + edi]
mov dword [esp + 0xc], eax
mov eax, dword [esp + 0x74]
mov eax, dword [eax]
mov dword [esp + 4], str._s:_option___s_requires_an_argument_n
mov dword [esp + 8], eax
mov eax, dword [sym.imp.msvcrt.dll__iob]
add eax, 0x40
mov dword [esp], eax
call sub.msvcrt.dll_fprintf
mov esi, dword [0x4e85e4]
jmp 0x4a697e
mov eax, dword [0x4b276c]
movsx ebx, byte [esp + 0x2c]
test eax, eax
je 0x4a6b62
mov eax, dword [esp + 0x74]
mov dword [esp + 0xc], ebx
mov eax, dword [eax]
mov dword [esp + 4], str._s:_option_requires_an_argument_____c_n
mov dword [esp + 8], eax
mov eax, dword [sym.imp.msvcrt.dll__iob]
add eax, 0x40
mov dword [esp], eax
call sub.msvcrt.dll_fprintf
mov eax, dword [esp + 0x78]
mov dword [0x4b2768], ebx
cmp byte [eax], 0x3a
setne al
movzx eax, al
lea eax, [eax + eax*4 + 0x3a]
jmp 0x4a63d5
mov eax, dword [esp + 0x28]
mov dword [esp + 0x34], eax
jmp 0x4a6713
mov eax, dword [esp + 0x28]
lea ecx, [eax + 1]
mov dword [0x4e85e4], ecx
jmp 0x4a6316
cmp dword [eax + 4], 1
je 0x4a6c40
mov ebx, dword [esp + 0x28]
mov dword [esp], ebx
call sub.msvcrt.dll_strlen
mov edx, dword [esp + 0x80]
lea ecx, [ebx + eax]
mov dword [0x4e85e4], ecx
test edx, edx
je 0x4a6bd0
mov eax, dword [esp + 0x80]
mov dword [eax], edi
mov eax, dword [esp + 0x7c]
mov eax, dword [eax + 8]
test eax, eax
je 0x4a6c93
mov edi, dword [esp + 0x7c]
mov edx, dword [edi + 0xc]
mov dword [eax], edx
xor eax, eax
jmp 0x4a63d5
mov dword [0x4e85e4], 0
mov eax, 0x57
jmp 0x4a63d5
mov eax, dword [esp + 0x74]
mov dword [esp + 0xc], ebx
mov eax, dword [eax]
mov dword [esp + 4], str._s:_option_requires_an_argument_____c_n
mov dword [esp + 8], eax
mov eax, dword [sym.imp.msvcrt.dll__iob]
add eax, 0x40
mov dword [esp], eax
call sub.msvcrt.dll_fprintf
jmp 0x4a6a28
mov ebx, dword [esp + 0x34]
add ebx, 1
mov dword [0x4e85d0], ebx
jmp 0x4a6ba7
mov eax, dword [0x4b2770]
cmp dword [esp + 0x70], eax
jle 0x4a6cbb
mov ebx, dword [esp + 0x74]
lea edx, [eax + 1]
mov dword [0x4b2770], edx
mov eax, dword [ebx + eax*4]
mov dword [0x4e85d0], eax
jmp 0x4a6ba7
mov eax, dword [esp + 0x28]
lea ecx, [eax + 1]
mov eax, dword [esp + 0x78]
mov dword [0x4e85e4], ecx
jmp 0x4a64d0
cmp dword [esp + 0x30], 0
je 0x4a65e2
mov edi, dword [esp + 0x48]
mov ebx, dword [esp + 0x30]
jmp 0x4a6564
mov eax, dword [esp + 0x7c]
mov eax, dword [eax + 0xc]
jmp 0x4a63d5
cmp dword [esp + 0x2c], 0
je 0x4a6bef
mov eax, dword [esp + 0x2c]
mov edi, dword [esp + 0x38]
mov dword [esp + 0x7c], eax
jmp 0x4a6a4d
cmp dword [0x4b276c], 0
je 0x4a6cee
mov edi, dword [esp + 0x74]
mov eax, dword [edi + eax*4 - 4]
mov dword [esp + 0xc], eax
mov eax, dword [edi]
mov dword [esp + 4], str._s:_option___s_requires_an_argument_n
mov dword [esp + 8], eax
mov eax, dword [sym.imp.msvcrt.dll__iob]
add eax, 0x40
mov dword [esp], eax
call sub.msvcrt.dll_fprintf
mov edx, dword [0x4e85e4]
xor eax, eax
or ecx, 0xffffffff
mov edi, edx
repne scasb al, byte es:[edi]
mov eax, ecx
not eax
lea eax, [edx + eax - 1]
mov dword [0x4e85e4], eax
mov eax, dword [esp + 0x78]
cmp byte [eax], 0x3a
jne 0x4a639a
jmp 0x4a69a2