Function at 0x46e380
Capabilities:
Query environment variable

Disassembly:
push ebp
push edi
push esi
push ebx
sub esp, 0x5c
mov eax, dword [0x47b910]
mov dword [0x4b44a4], 0
test eax, eax
jne 0x46e5e0
mov dword [0x47b910], 1
mov eax, 1
mov dword [esp], str.POSIXLY_CORRECT
mov dword [0x4b44a8], eax
mov dword [0x4b44ac], eax
mov dword [0x4b44b8], 0
call sub.msvcrt.dll_getenv
mov edi, dword [esp + 0x78]
mov dword [0x4b44b0], eax
movzx edx, byte [edi]
cmp dl, 0x2d
je 0x46e8a0
cmp dl, 0x2b
je 0x46e850
test eax, eax
sete al
movzx eax, al
mov dword [0x4b44b4], eax
mov dword [0x4b44a0], 1
mov eax, dword [0x4b44b8]
test eax, eax
je 0x46e5f3
movzx ecx, byte [eax]
test cl, cl
mov byte [esp + 0x2c], cl
je 0x46e5f3
mov dword [esp + 0x28], eax
mov eax, dword [esp + 0x7c]
test eax, eax
je 0x46e6a4
mov eax, dword [0x47b910]
lea edi, [eax*4]
mov dword [esp + 0x38], eax
mov dword [esp + 0x48], edi
mov edi, dword [esp + 0x74]
mov eax, dword [edi + eax*4]
mov dword [esp + 0x3c], eax
movzx eax, byte [eax + 1]
cmp al, 0x2d
mov byte [esp + 0x43], al
je 0x46e4a2
mov eax, dword [esp + 0x84]
test eax, eax
je 0x46e6a4
mov eax, dword [esp + 0x3c]
cmp byte [eax + 2], 0
jne 0x46e4a2
mov eax, dword [esp + 0x78]
movzx edx, byte [eax]
test dl, dl
je 0x46e4a2
movzx ebx, byte [esp + 0x43]
cmp bl, dl
je 0x46ea80
mov eax, dword [esp + 0x78]
jmp 0x46e498
cmp bl, cl
je 0x46ea80
add eax, 1
movzx ecx, byte [eax]
test cl, cl
jne 0x46e490
movzx eax, byte [esp + 0x2c]
mov esi, dword [esp + 0x28]
cmp al, 0x3d
jne 0x46e79e
mov eax, dword [esp + 0x7c]
mov ebp, dword [eax]
test ebp, ebp
je 0x46e9c2
mov eax, esi
sub eax, dword [esp + 0x28]
mov dword [esp + 0x4c], esi
mov ebx, dword [esp + 0x7c]
xor edi, edi
mov dword [esp + 0x44], 0xffffffff
mov dword [esp + 0x34], 0
mov dword [esp + 0x30], 0
mov esi, eax
jmp 0x46e504
mov dword [esp + 0x34], 1
add ebx, 0x10
mov ebp, dword [ebx]
add edi, 1
test ebp, ebp
je 0x46e550
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 0x46e4f8
mov dword [esp], ebp
call sub.msvcrt.dll_strlen
cmp eax, esi
je 0x46e990
mov eax, dword [esp + 0x30]
test eax, eax
jne 0x46e4f0
mov dword [esp + 0x30], ebx
add ebx, 0x10
mov ebp, dword [ebx]
mov dword [esp + 0x44], edi
add edi, 1
test ebp, ebp
jne 0x46e504
nop
lea esi, [esi]
mov eax, dword [esp + 0x34]
mov esi, dword [esp + 0x4c]
test eax, eax
je 0x46e920
mov eax, dword [0x47b90c]
mov ebx, dword [esp + 0x28]
test eax, eax
je 0x46e5a6
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 fcn.0046e350
mov eax, dword [0x47b910]
mov ebx, dword [0x4b44b8]
mov dword [esp + 0x38], eax
mov dword [esp], ebx
call sub.msvcrt.dll_strlen
add eax, ebx
mov dword [0x4b44b8], eax
mov eax, dword [esp + 0x38]
mov dword [0x47b908], 0
add eax, 1
mov dword [0x47b910], eax
add esp, 0x5c
mov eax, 0x3f
pop ebx
pop esi
pop edi
pop ebp
ret
mov ecx, dword [0x4b44a0]
test ecx, ecx
je 0x46e3ad
jmp 0x46e402
mov eax, dword [0x47b910]
cmp dword [0x4b44a8], eax
jle 0x46e605
mov dword [0x4b44a8], eax
cmp eax, dword [0x4b44ac]
jge 0x46e612
mov dword [0x4b44ac], eax
mov ebx, dword [0x4b44b4]
cmp ebx, 1
je 0x46e7b5
cmp dword [esp + 0x70], eax
je 0x46e820
mov edi, dword [esp + 0x74]
mov ecx, 3
mov ebp, dword [edi + eax*4]
mov edi, 0x49c2ac
mov esi, ebp
repe cmpsb byte [esi], byte es:[edi]
seta cl
mov esi, ecx
setb cl
mov edx, esi
cmp dl, cl
jne 0x46e760
mov edx, dword [0x4b44ac]
mov ecx, dword [0x4b44a8]
add eax, 1
mov dword [0x47b910], eax
cmp edx, ecx
je 0x46e9a0
cmp eax, ecx
je 0x46e681
mov eax, dword [esp + 0x74]
call fcn.0046e270
mov edx, dword [0x4b44ac]
mov eax, dword [esp + 0x70]
cmp eax, edx
mov dword [0x4b44a8], eax
mov dword [0x47b910], eax
jne 0x46e833
add esp, 0x5c
mov eax, 0xffffffff
pop ebx
pop esi
pop edi
pop ebp
ret
mov eax, dword [esp + 0x78]
movzx edx, byte [eax]
mov eax, dword [esp + 0x28]
lea ecx, [eax + 1]
test dl, dl
mov dword [0x4b44b8], ecx
je 0x46e6e3
cmp dl, byte [esp + 0x2c]
je 0x46e8b4
mov eax, dword [esp + 0x78]
movzx ebx, byte [esp + 0x2c]
jmp 0x46e6d9
cmp dl, bl
je 0x46e8c0
add eax, 1
movzx edx, byte [eax]
test dl, dl
jne 0x46e6d1
mov eax, dword [esp + 0x28]
cmp byte [eax + 1], 0
jne 0x46e703
mov edx, 1
xor eax, eax
add dword [0x47b910], 1
test dl, dl
je 0x46e900
mov eax, dword [0x47b90c]
movsx ebx, byte [esp + 0x2c]
test eax, eax
je 0x46e744
mov eax, dword [0x4b44b0]
mov dword [esp + 0xc], ebx
test eax, eax
mov eax, dword [esp + 0x74]
mov eax, dword [eax]
mov dword [esp + 8], eax
je 0x46ebbb
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 fcn.0046e350
mov dword [0x47b908], ebx
add esp, 0x5c
mov eax, 0x3f
pop ebx
pop esi
pop edi
pop ebp
ret
cmp byte [ebp], 0x2d
je 0x46e864
test ebx, ebx
je 0x46e697
add eax, 1
mov dword [0x4b44a4], ebp
mov dword [0x47b910], eax
mov eax, 1
add esp, 0x5c
pop ebx
pop esi
pop edi
pop ebp
ret
add esi, 1
movzx eax, byte [esi]
cmp al, 0x3d
je 0x46e4b3
test al, al
jne 0x46e790
mov eax, dword [esp + 0x7c]
mov ebp, dword [eax]
test ebp, ebp
jne 0x46e4c1
jmp 0x46e9c2
mov edx, dword [0x4b44a8]
cmp dword [0x4b44ac], edx
je 0x46ea65
cmp eax, edx
je 0x46e7da
mov eax, dword [esp + 0x74]
call fcn.0046e270
mov edx, dword [0x47b910]
cmp dword [esp + 0x70], edx
jle 0x46e8e2
mov esi, dword [esp + 0x70]
mov ecx, dword [esp + 0x74]
jmp 0x46e801
add edx, 1
cmp edx, esi
mov dword [0x47b910], edx
je 0x46e8e2
mov eax, dword [ecx + edx*4]
cmp byte [eax], 0x2d
jne 0x46e7f0
cmp byte [eax + 1], 0
je 0x46e7f0
mov eax, dword [0x47b910]
jmp 0x46e8e4
mov eax, dword [0x4b44a8]
mov edx, dword [0x4b44ac]
cmp eax, edx
je 0x46e697
mov dword [0x47b910], edx
add esp, 0x5c
mov eax, 0xffffffff
pop ebx
pop esi
pop edi
pop ebp
ret
mov dword [0x4b44b4], 0
add dword [esp + 0x78], 1
jmp 0x46e3f8
movzx ecx, byte [ebp + 1]
test cl, cl
je 0x46e76a
mov edx, dword [esp + 0x7c]
cmp cl, 0x2d
sete al
xor ecx, ecx
test edx, edx
setne cl
and eax, ecx
lea eax, [ebp + eax + 1]
movzx ebx, byte [eax]
mov dword [0x4b44b8], eax
mov dword [esp + 0x28], eax
mov byte [esp + 0x2c], bl
jmp 0x46e422
mov dword [0x4b44b4], 2
add dword [esp + 0x78], 1
jmp 0x46e3f8
mov eax, dword [esp + 0x78]
nop
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 0x46e6f4
jmp 0x46e6fb
mov eax, edx
cmp dword [esp + 0x70], eax
mov dword [0x4b44a8], edx
jne 0x46e62b
jmp 0x46e820
cmp byte [eax], 0x57
movzx edx, byte [eax + 1]
je 0x46ea92
cmp dl, 0x3a
je 0x46eb82
movsx eax, byte [esp + 0x2c]
jmp 0x46e785
mov eax, dword [esp + 0x30]
test eax, eax
je 0x46e9c2
mov edi, dword [esp + 0x44]
mov ebx, eax
mov eax, dword [esp + 0x38]
add eax, 1
mov dword [0x47b910], eax
cmp byte [esi], 0
jne 0x46e9ac
cmp dword [ebx + 4], 1
je 0x46ec7f
mov esi, dword [esp + 0x28]
mov dword [esp], esi
call sub.msvcrt.dll_strlen
mov edx, dword [esp + 0x80]
add eax, esi
mov dword [0x4b44b8], eax
test edx, edx
je 0x46e974
mov eax, dword [esp + 0x80]
mov dword [eax], edi
mov eax, dword [ebx + 8]
test eax, eax
je 0x46ecd1
mov edx, dword [ebx + 0xc]
mov dword [eax], edx
xor eax, eax
jmp 0x46e785
mov esi, dword [esp + 0x4c]
jmp 0x46e932
mov dword [0x4b44ac], eax
mov edx, eax
jmp 0x46e681
mov ebp, dword [ebx + 4]
test ebp, ebp
je 0x46ebd8
add esi, 1
mov dword [0x4b44a4], esi
jmp 0x46e94d
cmp byte [esp + 0x43], 0x2d
sete cl
je 0x46ea07
mov eax, dword [esp + 0x84]
test eax, eax
je 0x46ea07
mov eax, dword [esp + 0x78]
movzx eax, byte [eax]
test al, al
je 0x46ea07
movzx ebx, byte [esp + 0x2c]
cmp bl, al
je 0x46f0b5
mov eax, dword [esp + 0x78]
jmp 0x46e9fd
cmp dl, bl
je 0x46f00e
add eax, 1
movzx edx, byte [eax]
test dl, dl
jne 0x46e9f5
mov eax, dword [0x47b90c]
test eax, eax
je 0x46ea56
test cl, cl
mov eax, dword [esp + 0x28]
jne 0x46eeb4
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 fcn.0046e350
mov eax, dword [0x47b910]
mov dword [esp + 0x38], eax
mov dword [0x4b44b8], 0x49c398
jmp 0x46e5b5
cmp eax, edx
je 0x46e7da
mov dword [0x4b44ac], eax
mov edx, eax
jmp 0x46e7da
mov eax, dword [esp + 0x28]
lea ecx, [eax + 1]
mov dword [0x4b44b8], ecx
jmp 0x46e6bc
cmp dl, 0x3b
jne 0x46e90d
mov eax, dword [esp + 0x28]
cmp byte [eax + 1], 0
je 0x46ed8c
add dword [0x47b910], 1
mov dword [0x4b44a4], ecx
mov dword [esp + 0x28], ecx
mov eax, dword [esp + 0x28]
movzx ebx, byte [eax]
mov dword [0x4b44b8], eax
cmp bl, 0x3d
je 0x46efb3
test bl, bl
jne 0x46eae4
jmp 0x46efb3
test bl, bl
je 0x46eaef
add eax, 1
movzx ebx, byte [eax]
cmp bl, 0x3d
jne 0x46eae0
mov dword [esp + 0x34], eax
mov eax, dword [esp + 0x7c]
mov esi, dword [eax]
test esi, esi
je 0x46ef9f
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 0x46eb48
mov dword [esp + 0x30], 1
add ebx, 0x10
mov esi, dword [ebx]
add edi, 1
test esi, esi
je 0x46ecd9
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 0x46eb38
mov dword [esp], esi
call sub.msvcrt.dll_strlen
cmp eax, ebp
je 0x46eea9
mov eax, dword [esp + 0x2c]
test eax, eax
jne 0x46eb30
mov dword [esp + 0x38], edi
mov dword [esp + 0x2c], ebx
jmp 0x46eb38
cmp byte [eax + 2], 0x3a
mov eax, dword [esp + 0x28]
je 0x46ecab
cmp byte [eax + 1], 0
je 0x46ec51
add dword [0x47b910], 1
movsx eax, byte [esp + 0x2c]
mov dword [0x4b44a4], ecx
mov dword [0x4b44b8], 0
jmp 0x46e785
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 fcn.0046e350
jmp 0x46e744
mov esi, dword [0x47b90c]
test esi, esi
je 0x46e94d
mov eax, dword [esp + 0x74]
mov edi, dword [esp + 0x48]
mov eax, dword [eax + edi]
cmp byte [eax + 1], 0x2d
je 0x46edf7
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 fcn.0046e350
mov esi, dword [0x4b44b8]
mov dword [esp], esi
call sub.msvcrt.dll_strlen
add eax, esi
mov dword [0x4b44b8], eax
mov eax, dword [ebx + 0xc]
mov dword [0x47b908], eax
mov eax, 0x3f
jmp 0x46e785
mov eax, dword [0x47b910]
cmp eax, dword [esp + 0x70]
je 0x46edc9
mov edi, dword [esp + 0x74]
lea edx, [eax + 1]
mov dword [0x47b910], edx
mov eax, dword [edi + eax*4]
mov dword [0x4b44a4], eax
movsx eax, byte [esp + 0x2c]
jmp 0x46ebac
cmp dword [esp + 0x70], eax
jle 0x46ed4c
mov eax, dword [esp + 0x38]
mov esi, dword [esp + 0x48]
add eax, 2
mov dword [0x47b910], eax
mov eax, dword [esp + 0x74]
mov eax, dword [eax + esi + 4]
mov dword [0x4b44a4], eax
jmp 0x46e94d
cmp byte [eax + 1], 0
je 0x46edba
add dword [0x47b910], 1
mov dword [0x4b44a4], ecx
mov dword [0x4b44b8], 0
jmp 0x46e916
mov eax, dword [ebx + 0xc]
jmp 0x46e785
mov esi, dword [esp + 0x30]
movzx ebx, byte [esp + 0x3c]
test esi, esi
je 0x46ee24
mov ecx, dword [0x47b90c]
mov ebx, dword [esp + 0x28]
test ecx, ecx
je 0x46ed2c
mov edi, dword [esp + 0x74]
mov eax, dword [0x47b910]
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 fcn.0046e350
mov ebx, dword [0x4b44b8]
mov dword [esp], ebx
call sub.msvcrt.dll_strlen
add eax, ebx
add dword [0x47b910], 1
mov dword [0x4b44b8], eax
mov eax, 0x3f
jmp 0x46e785
mov ecx, dword [0x47b90c]
mov esi, dword [esp + 0x28]
test ecx, ecx
jne 0x46eee8
mov dword [esp], esi
call sub.msvcrt.dll_strlen
add eax, esi
mov dword [0x4b44b8], eax
mov eax, dword [ebx + 0xc]
mov dword [0x47b908], eax
mov eax, dword [esp + 0x78]
cmp byte [eax], 0x3a
jne 0x46e74a
mov eax, 0x3a
jmp 0x46e785
mov eax, dword [0x47b910]
cmp eax, dword [esp + 0x70]
je 0x46ef24
mov edi, dword [esp + 0x74]
lea edx, [eax + 1]
mov dword [0x47b910], edx
mov ecx, dword [edi + eax*4]
mov dword [0x4b44a4], ecx
mov dword [esp + 0x28], ecx
jmp 0x46eaba
mov dword [0x4b44a4], 0
jmp 0x46ecc2
mov eax, dword [0x47b90c]
movsx ebx, byte [esp + 0x2c]
test eax, eax
jne 0x46ef74
mov eax, dword [esp + 0x78]
mov dword [0x47b908], ebx
cmp byte [eax], 0x3a
setne al
movzx eax, al
lea eax, [eax + eax*4 + 0x3a]
jmp 0x46ebac
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 fcn.0046e350
jmp 0x46ec2a
mov eax, dword [esp + 0x2c]
test eax, eax
je 0x46ef9f
mov edi, dword [esp + 0x38]
mov dword [esp + 0x7c], eax
test bl, bl
mov eax, dword [esp + 0x7c]
je 0x46efc0
cmp dword [eax + 4], 0
jne 0x46f042
cmp dword [0x47b90c], 0
je 0x46ee83
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 fcn.0046e350
mov edx, dword [0x4b44b8]
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 [0x4b44b8], eax
mov eax, 0x3f
jmp 0x46e785
mov dword [esp + 0x7c], ebx
movzx ebx, byte [esp + 0x3c]
jmp 0x46ee38
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 fcn.0046e350
mov eax, dword [0x47b910]
mov dword [esp + 0x38], eax
jmp 0x46ea56
mov eax, dword [esp + 0x74]
mov edi, dword [esp + 0x48]
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 fcn.0046e350
mov esi, dword [0x4b44b8]
jmp 0x46ed5e
mov eax, dword [0x47b90c]
movsx ebx, byte [esp + 0x2c]
test eax, eax
je 0x46ef58
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 fcn.0046e350
mov eax, dword [esp + 0x78]
mov dword [0x47b908], ebx
cmp byte [eax], 0x3a
setne al
movzx eax, al
lea eax, [eax + eax*4 + 0x3a]
jmp 0x46e785
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 fcn.0046e350
jmp 0x46eddb
mov dword [0x4b44b8], 0
mov eax, 0x57
jmp 0x46e785
mov eax, dword [esp + 0x28]
mov dword [esp + 0x34], eax
jmp 0x46eaf3
cmp dword [eax + 4], 1
je 0x46f020
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 [0x4b44b8], ecx
test edx, edx
je 0x46efef
mov eax, dword [esp + 0x80]
mov dword [eax], edi
mov eax, dword [esp + 0x7c]
mov eax, dword [eax + 8]
test eax, eax
je 0x46f0cb
mov edi, dword [esp + 0x7c]
mov edx, dword [edi + 0xc]
mov dword [eax], edx
xor eax, eax
jmp 0x46e785
mov eax, dword [esp + 0x28]
lea ecx, [eax + 1]
mov dword [0x4b44b8], ecx
jmp 0x46e6c6
mov eax, dword [0x47b910]
cmp dword [esp + 0x70], eax
jle 0x46f054
mov ebx, dword [esp + 0x74]
lea edx, [eax + 1]
mov dword [0x47b910], edx
mov eax, dword [ebx + eax*4]
mov dword [0x4b44a4], eax
jmp 0x46efc6
mov ebx, dword [esp + 0x34]
add ebx, 1
mov dword [0x4b44a4], ebx
jmp 0x46efc6
cmp dword [0x47b90c], 0
je 0x46f087
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 fcn.0046e350
mov edx, dword [0x4b44b8]
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 [0x4b44b8], eax
mov eax, dword [esp + 0x78]
cmp byte [eax], 0x3a
jne 0x46e74a
jmp 0x46ed82
mov eax, dword [esp + 0x28]
lea ecx, [eax + 1]
mov eax, dword [esp + 0x78]
mov dword [0x4b44b8], ecx
jmp 0x46e8c0
mov eax, dword [esp + 0x7c]
mov eax, dword [eax + 0xc]
jmp 0x46e785