Function at 0x45b124
Capabilities:
Query environment variable

Disassembly:
push ebp
mov ebp, esp
push edi
push esi
push ebx
sub esp, 0x5c
mov dword [0x47f440], 0
mov eax, dword [0x4643e0]
test eax, eax
jne 0x45b290
mov dword [0x4643e0], 1
mov eax, 1
mov dword [0x47f44c], eax
mov dword [0x47f450], eax
mov dword [0x47f448], 0
mov dword [esp], str.POSIXLY_CORRECT
call sub.msvcrt.dll_getenv
mov dword [0x47f458], eax
mov ecx, dword [ebp + 0x10]
mov dl, byte [ecx]
cmp dl, 0x2d
je 0x45b550
cmp dl, 0x2b
je 0x45b638
test eax, eax
sete al
movzx eax, al
mov dword [0x47f454], eax
mov dword [0x47f444], 1
mov esi, dword [0x47f448]
test esi, esi
je 0x45b2a4
mov al, byte [esi]
mov byte [ebp - 0x28], al
test al, al
je 0x45b2a4
mov edx, dword [ebp + 0x14]
test edx, edx
je 0x45b1f4
mov ecx, dword [0x4643e0]
mov dword [ebp - 0x38], ecx
mov eax, dword [ebp + 0xc]
mov eax, dword [eax + ecx*4]
mov dword [ebp - 0x34], eax
mov dl, byte [eax + 1]
mov byte [ebp - 0x39], dl
cmp dl, 0x2d
je 0x45b341
mov eax, dword [ebp + 0x1c]
test eax, eax
jne 0x45b334
mov ecx, dword [ebp + 0x10]
mov dl, byte [ecx]
inc esi
mov dword [0x47f448], esi
movsx ebx, byte [ebp - 0x28]
mov eax, ebx
test dl, dl
je 0x45b22a
movsx edi, dl
cmp ebx, edi
je 0x45b980
mov edx, dword [ebp + 0x10]
jmp 0x45b223
movsx ecx, cl
cmp ebx, ecx
je 0x45b22c
inc edx
mov cl, byte [edx]
test cl, cl
jne 0x45b21c
xor edx, edx
cmp byte [esi], 0
jne 0x45b237
inc dword [0x4643e0]
test edx, edx
je 0x45b488
cmp byte [ebp - 0x28], 0x3a
je 0x45b488
cmp byte [edx], 0x57
je 0x45b6bc
mov cl, byte [edx + 1]
cmp cl, 0x3a
jne 0x45b4d0
cmp byte [edx + 2], 0x3a
je 0x45b89c
cmp byte [esi], 0
je 0x45b988
mov dword [0x47f440], esi
inc dword [0x4643e0]
mov dword [0x47f448], 0
mov eax, ebx
jmp 0x45b4d0
mov edi, dword [0x47f444]
test edi, edi
je 0x45b153
jmp 0x45b1a6
mov eax, dword [0x4643e0]
mov edx, eax
cmp dword [0x47f44c], eax
jle 0x45b2b8
mov dword [0x47f44c], eax
cmp eax, dword [0x47f450]
jge 0x45b2c5
mov dword [0x47f450], eax
cmp dword [0x47f454], 1
je 0x45b5cc
cmp dword [ebp + 8], eax
je 0x45b5a4
mov ecx, dword [ebp + 0xc]
mov edx, dword [ecx + eax*4]
mov edi, 0x478690
mov ecx, 3
mov esi, edx
repe cmpsb byte [esi], byte es:[edi]
jne 0x45b564
inc eax
mov dword [0x4643e0], eax
mov edx, dword [0x47f450]
mov ecx, dword [0x47f44c]
cmp edx, ecx
je 0x45b890
cmp eax, ecx
je 0x45b321
mov eax, dword [ebp + 0xc]
call fcn.0045b044
mov edx, dword [0x47f450]
mov eax, dword [ebp + 8]
mov dword [0x47f44c], eax
mov dword [0x4643e0], eax
jmp 0x45b5b3
mov eax, dword [ebp - 0x34]
cmp byte [eax + 2], 0
je 0x45b64c
cmp byte [ebp - 0x28], 0
je 0x45b943
cmp byte [ebp - 0x28], 0x3d
je 0x45b943
mov dword [ebp - 0x40], esi
mov eax, esi
jmp 0x45b361
cmp dl, 0x3d
je 0x45b368
inc eax
mov dl, byte [eax]
test dl, dl
jne 0x45b35c
mov dword [ebp - 0x40], eax
mov eax, dword [ebp + 0x14]
mov edi, dword [eax]
test edi, edi
je 0x45b8d2
mov ebx, dword [ebp + 0x14]
mov dword [ebp - 0x1c], 0
mov dword [ebp - 0x44], 0xffffffff
mov dword [ebp - 0x30], 0
mov dword [ebp - 0x24], 0
mov edx, dword [ebp - 0x40]
sub edx, esi
mov dword [ebp - 0x20], edx
jmp 0x45b3b7
mov dword [ebp - 0x30], 1
add ebx, 0x10
mov edi, dword [ebx]
test edi, edi
je 0x45b3fc
inc dword [ebp - 0x1c]
mov ecx, dword [ebp - 0x20]
mov dword [esp + 8], ecx
mov dword [esp + 4], esi
mov dword [esp], edi
call sub.msvcrt.dll_strncmp
test eax, eax
jne 0x45b3ab
mov ecx, 0xffffffff
repne scasb al, byte es:[edi]
not ecx
dec ecx
cmp dword [ebp - 0x20], ecx
je 0x45b7c0
mov edi, dword [ebp - 0x24]
test edi, edi
jne 0x45b3a4
mov eax, dword [ebp - 0x1c]
mov dword [ebp - 0x44], eax
mov dword [ebp - 0x24], ebx
add ebx, 0x10
mov edi, dword [ebx]
test edi, edi
jne 0x45b3b4
nop
xor eax, eax
mov ebx, dword [ebp - 0x30]
test ebx, ebx
je 0x45b4d8
test eax, eax
jne 0x45b4d8
mov ecx, dword [0x4643e4]
test ecx, ecx
je 0x45b452
mov ecx, dword [ebp - 0x34]
mov dword [esp + 0xc], ecx
mov edx, dword [ebp + 0xc]
mov eax, dword [edx]
mov dword [esp + 8], eax
mov dword [esp + 4], str._s:_option___s_is_ambiguous_n
mov eax, dword [sym.imp.msvcrt.dll__iob]
add eax, 0x40
mov dword [esp], eax
call sub.msvcrt.dll_fprintf
mov esi, dword [0x47f448]
mov ecx, dword [0x4643e0]
mov dword [ebp - 0x38], ecx
xor eax, eax
mov ecx, 0xffffffff
mov edi, esi
repne scasb al, byte es:[edi]
not ecx
lea eax, [esi + ecx - 1]
mov dword [0x47f448], eax
mov eax, dword [ebp - 0x38]
inc eax
mov dword [0x4643e0], eax
mov dword [0x4643e8], 0
mov eax, 0x3f
add esp, 0x5c
pop ebx
pop esi
pop edi
leave
ret
mov edi, dword [0x4643e4]
test edi, edi
je 0x45b4c5
mov esi, dword [0x47f458]
test esi, esi
je 0x45b94b
mov dword [esp + 0xc], ebx
mov edx, dword [ebp + 0xc]
mov eax, dword [edx]
mov dword [esp + 8], eax
mov dword [esp + 4], str._s:_illegal_option_____c_n
mov eax, dword [sym.imp.msvcrt.dll__iob]
add eax, 0x40
mov dword [esp], eax
call sub.msvcrt.dll_fprintf
mov dword [0x4643e8], ebx
mov eax, 0x3f
add esp, 0x5c
pop ebx
pop esi
pop edi
leave
ret
mov edx, dword [ebp - 0x24]
test edx, edx
je 0x45b8d2
mov eax, dword [ebp - 0x38]
inc eax
mov dword [0x4643e0], eax
mov edx, dword [ebp - 0x40]
cmp byte [edx], 0
je 0x45b688
mov ecx, dword [ebp - 0x24]
mov eax, dword [ecx + 4]
test eax, eax
je 0x45b80e
mov eax, edx
inc eax
mov dword [0x47f440], eax
xor eax, eax
mov ecx, 0xffffffff
mov edi, esi
repne scasb al, byte es:[edi]
not ecx
lea eax, [esi + ecx - 1]
mov dword [0x47f448], eax
mov ecx, dword [ebp + 0x18]
test ecx, ecx
je 0x45b533
mov ecx, dword [ebp - 0x44]
mov edx, dword [ebp + 0x18]
mov dword [edx], ecx
mov edx, dword [ebp - 0x24]
mov eax, dword [edx + 8]
test eax, eax
je 0x45b975
mov edx, dword [edx + 0xc]
mov dword [eax], edx
xor eax, eax
add esp, 0x5c
pop ebx
pop esi
pop edi
leave
ret
mov dword [0x47f454], 2
inc ecx
mov dword [ebp + 0x10], ecx
jmp 0x45b19c
cmp byte [edx], 0x2d
jne 0x45b79b
mov cl, byte [edx + 1]
test cl, cl
je 0x45b79b
mov ebx, dword [ebp + 0x14]
test ebx, ebx
je 0x45b7e4
xor eax, eax
cmp cl, 0x2d
sete al
lea esi, [eax + 1]
lea esi, [edx + esi]
mov dword [0x47f448], esi
mov dl, byte [esi]
mov byte [ebp - 0x28], dl
jmp 0x45b1c1
mov edx, dword [0x47f44c]
mov dword [ebp + 8], edx
mov edx, dword [0x47f450]
cmp dword [ebp + 8], edx
jne 0x45bd2c
mov eax, 0xffffffff
add esp, 0x5c
pop ebx
pop esi
pop edi
leave
ret
mov ebx, dword [0x47f450]
mov ecx, dword [0x47f44c]
cmp ebx, ecx
je 0x45b8c0
cmp eax, ecx
je 0x45b5f3
mov eax, dword [ebp + 0xc]
call fcn.0045b044
mov eax, dword [0x4643e0]
mov edx, eax
cmp dword [ebp + 8], eax
jle 0x45b622
mov ebx, dword [ebp + 8]
mov ecx, dword [ebp + 0xc]
jmp 0x45b60f
inc edx
mov dword [0x4643e0], edx
cmp ebx, edx
jle 0x45b7d4
mov eax, dword [ecx + edx*4]
cmp byte [eax], 0x2d
jne 0x45b600
cmp byte [eax + 1], 0
je 0x45b600
mov eax, dword [0x4643e0]
mov dword [0x47f44c], edx
cmp dword [ebp + 8], eax
jne 0x45b2db
jmp 0x45b5a4
mov dword [0x47f454], 0
inc dword [ebp + 0x10]
jmp 0x45b19c
mov ecx, dword [ebp + 0x10]
mov dl, byte [ecx]
test dl, dl
je 0x45b341
movsx ecx, byte [ebp - 0x39]
movsx edi, dl
cmp ecx, edi
je 0x45b7ee
mov eax, dword [ebp + 0x10]
jmp 0x45b67b
movsx edx, dl
cmp ecx, edx
je 0x45b7f4
inc eax
mov dl, byte [eax]
test dl, dl
jne 0x45b670
jmp 0x45b341
mov edx, dword [ebp - 0x24]
cmp dword [edx + 4], 1
jne 0x45b50e
cmp dword [ebp + 8], eax
jle 0x45b9ad
mov ecx, dword [ebp + 0xc]
mov eax, dword [ecx + eax*4]
mov dword [0x47f440], eax
mov eax, dword [ebp - 0x38]
add eax, 2
mov dword [0x4643e0], eax
jmp 0x45b50e
mov cl, byte [edx + 1]
cmp cl, 0x3b
jne 0x45b255
cmp byte [esi], 0
je 0x45bb51
mov dword [0x47f440], esi
inc dword [0x4643e0]
mov dword [0x47f448], esi
mov cl, byte [esi]
mov byte [ebp - 0x34], cl
test cl, cl
je 0x45bced
cmp cl, 0x3d
je 0x45bced
mov dword [ebp - 0x30], esi
mov eax, esi
jmp 0x45b705
cmp dl, 0x3d
je 0x45b70c
inc eax
mov dl, byte [eax]
test dl, dl
jne 0x45b700
mov byte [ebp - 0x34], dl
mov dword [ebp - 0x30], eax
mov eax, dword [ebp + 0x14]
mov edi, dword [eax]
test edi, edi
je 0x45bc82
mov edx, dword [ebp - 0x30]
sub edx, esi
mov dword [ebp - 0x20], edx
mov ebx, dword [ebp + 0x14]
mov dword [ebp - 0x1c], 0
mov dword [ebp - 0x2c], 0
mov dword [ebp - 0x28], 0
mov dword [ebp - 0x24], 0
jmp 0x45b75f
mov dword [ebp - 0x28], 1
add ebx, 0x10
mov edi, dword [ebx]
test edi, edi
je 0x45ba6b
inc dword [ebp - 0x1c]
mov ecx, dword [ebp - 0x20]
mov dword [esp + 8], ecx
mov dword [esp + 4], esi
mov dword [esp], edi
call sub.msvcrt.dll_strncmp
test eax, eax
jne 0x45b74f
mov ecx, 0xffffffff
repne scasb al, byte es:[edi]
not ecx
dec ecx
cmp dword [ebp - 0x20], ecx
je 0x45bbf7
mov ecx, dword [ebp - 0x24]
test ecx, ecx
jne 0x45b748
mov edx, dword [ebp - 0x1c]
mov dword [ebp - 0x2c], edx
mov dword [ebp - 0x24], ebx
jmp 0x45b74f
mov esi, dword [0x47f454]
test esi, esi
je 0x45b5bc
mov dword [0x47f440], edx
inc eax
mov dword [0x4643e0], eax
mov eax, 1
jmp 0x45b4d0
mov edx, dword [ebp - 0x1c]
mov dword [ebp - 0x44], edx
mov dword [ebp - 0x24], ebx
mov eax, 1
jmp 0x45b3fe
mov eax, edx
mov dword [0x47f44c], edx
jmp 0x45b628
mov esi, 1
jmp 0x45b58e
mov eax, dword [ebp + 0x10]
lea esi, [esi]
test eax, eax
je 0x45b341
movsx ebx, byte [ebp - 0x28]
inc esi
mov dword [0x47f448], esi
mov eax, ebx
jmp 0x45b20d
mov edi, dword [0x4643e4]
test edi, edi
je 0x45b50e
mov eax, dword [ebp - 0x34]
cmp byte [eax + 1], 0x2d
je 0x45ba3c
mov edx, dword [ebp - 0x24]
mov eax, dword [edx]
mov dword [esp + 0x10], eax
mov ecx, dword [ebp - 0x34]
movsx eax, byte [ecx]
mov dword [esp + 0xc], eax
mov edx, dword [ebp + 0xc]
mov eax, dword [edx]
mov dword [esp + 8], eax
mov dword [esp + 4], str._s:_option___c_s_doesnt_allow_an_argument_n
mov eax, dword [sym.imp.msvcrt.dll__iob]
add eax, 0x40
mov dword [esp], eax
call sub.msvcrt.dll_fprintf
mov edx, dword [0x47f448]
xor eax, eax
mov ecx, 0xffffffff
mov edi, edx
repne scasb al, byte es:[edi]
not ecx
lea eax, [edx + ecx - 1]
mov dword [0x47f448], eax
mov ecx, dword [ebp - 0x24]
mov eax, dword [ecx + 0xc]
mov dword [0x4643e8], eax
mov eax, 0x3f
jmp 0x45b4d0
mov dword [0x47f450], eax
mov edx, eax
jmp 0x45b321
cmp byte [esi], 0
je 0x45bb76
mov dword [0x47f440], esi
inc dword [0x4643e0]
mov dword [0x47f448], 0
jmp 0x45b4d0
cmp eax, ebx
je 0x45b5f3
mov dword [0x47f450], eax
jmp 0x45b5f3
mov edx, dword [ebp + 0x1c]
test edx, edx
jne 0x45b9f1
mov eax, dword [0x4643e4]
test eax, eax
je 0x45b91f
cmp byte [ebp - 0x39], 0x2d
je 0x45bbcd
mov dword [esp + 0x10], esi
mov ecx, dword [ebp - 0x34]
movsx eax, byte [ecx]
mov dword [esp + 0xc], eax
mov edx, dword [ebp + 0xc]
mov eax, dword [edx]
mov dword [esp + 8], eax
mov dword [esp + 4], str._s:_unrecognized_option___c_s_n
mov eax, dword [sym.imp.msvcrt.dll__iob]
add eax, 0x40
mov dword [esp], eax
call sub.msvcrt.dll_fprintf
mov dword [0x47f448], 0x47877c
inc dword [0x4643e0]
mov dword [0x4643e8], 0
mov eax, 0x3f
jmp 0x45b4d0
mov dword [ebp - 0x40], esi
jmp 0x45b36b
mov dword [esp + 0xc], ebx
mov ecx, dword [ebp + 0xc]
mov eax, dword [ecx]
mov dword [esp + 8], eax
mov dword [esp + 4], str._s:_invalid_option_____c_n
mov eax, dword [sym.imp.msvcrt.dll__iob]
add eax, 0x40
mov dword [esp], eax
call sub.msvcrt.dll_fprintf
jmp 0x45b4c5
mov edx, dword [ebp - 0x24]
mov eax, dword [edx + 0xc]
jmp 0x45b4d0
mov edx, dword [ebp + 0x10]
jmp 0x45b22c
mov eax, dword [0x4643e0]
cmp eax, dword [ebp + 8]
je 0x45bb85
mov ecx, dword [ebp + 0xc]
mov edx, dword [ecx + eax*4]
mov dword [0x47f440], edx
inc eax
mov dword [0x4643e0], eax
jmp 0x45b27d
mov ebx, dword [0x4643e4]
test ebx, ebx
jne 0x45bc0a
xor eax, eax
mov ecx, 0xffffffff
mov edi, esi
repne scasb al, byte es:[edi]
not ecx
lea eax, [esi + ecx - 1]
mov dword [0x47f448], eax
mov ecx, dword [ebp - 0x24]
mov eax, dword [ecx + 0xc]
mov dword [0x4643e8], eax
mov eax, dword [ebp + 0x10]
cmp byte [eax], 0x3a
setne al
movzx eax, al
lea eax, [eax + eax*4 + 0x3a]
jmp 0x45b4d0
cmp byte [ebp - 0x39], 0x2d
je 0x45b8dd
mov ecx, dword [ebp + 0x10]
mov dl, byte [ecx]
test dl, dl
je 0x45b8dd
movsx ebx, byte [ebp - 0x28]
movsx edi, dl
cmp ebx, edi
je 0x45bd64
mov edx, ecx
lea esi, [esi]
inc edx
mov al, byte [edx]
test al, al
je 0x45b8dd
movsx eax, al
cmp ebx, eax
jne 0x45ba1c
test edx, edx
jne 0x45b800
jmp 0x45b8dd
mov edx, dword [ebp - 0x24]
mov eax, dword [edx]
mov dword [esp + 0xc], eax
mov ecx, dword [ebp + 0xc]
mov eax, dword [ecx]
mov dword [esp + 8], eax
mov dword [esp + 4], str._s:_option_____s_doesnt_allow_an_argument_n
mov eax, dword [sym.imp.msvcrt.dll__iob]
add eax, 0x40
mov dword [esp], eax
call sub.msvcrt.dll_fprintf
jmp 0x45b85d
xor eax, eax
mov edx, dword [ebp - 0x28]
test edx, edx
je 0x45bad8
test eax, eax
jne 0x45bad8
cmp dword [0x4643e4], 0
je 0x45baae
mov eax, dword [0x4643e0]
mov edx, dword [ebp + 0xc]
mov eax, dword [edx + eax*4]
mov dword [esp + 0xc], eax
mov eax, dword [edx]
mov dword [esp + 8], eax
mov dword [esp + 4], str._s:_option___W__s_is_ambiguous_n
mov eax, dword [sym.imp.msvcrt.dll__iob]
add eax, 0x40
mov dword [esp], eax
call sub.msvcrt.dll_fprintf
mov edx, dword [0x47f448]
xor eax, eax
or ecx, 0xffffffff
mov edi, edx
repne scasb al, byte es:[edi]
not ecx
lea eax, [edx + ecx - 1]
mov dword [0x47f448], eax
inc dword [0x4643e0]
mov eax, 0x3f
jmp 0x45b4d0
mov eax, dword [ebp - 0x24]
test eax, eax
je 0x45bc82
cmp byte [ebp - 0x34], 0
je 0x45bc3d
mov ecx, dword [ebp - 0x24]
cmp dword [ecx + 4], 0
jne 0x45bcdf
cmp dword [0x4643e4], 0
je 0x45bb2d
mov edx, dword [ebp - 0x24]
mov eax, dword [edx]
mov dword [esp + 0xc], eax
mov ecx, dword [ebp + 0xc]
mov eax, dword [ecx]
mov dword [esp + 8], eax
mov dword [esp + 4], str._s:_option___W__s_doesnt_allow_an_argument_n
mov eax, dword [sym.imp.msvcrt.dll__iob]
add eax, 0x40
mov dword [esp], eax
call sub.msvcrt.dll_fprintf
mov edx, dword [0x47f448]
xor eax, eax
or ecx, 0xffffffff
mov edi, edx
repne scasb al, byte es:[edi]
not ecx
lea eax, [edx + ecx - 1]
mov dword [0x47f448], eax
mov eax, 0x3f
jmp 0x45b4d0
mov eax, dword [0x4643e0]
cmp eax, dword [ebp + 8]
je 0x45bc96
mov edx, dword [ebp + 0xc]
mov esi, dword [edx + eax*4]
mov dword [0x47f440], esi
inc eax
mov dword [0x4643e0], eax
jmp 0x45b6dd
mov dword [0x47f440], 0
jmp 0x45b8b1
cmp dword [0x4643e4], 0
je 0x45bbb3
mov dword [esp + 0xc], ebx
mov ecx, dword [ebp + 0xc]
mov eax, dword [ecx]
mov dword [esp + 8], eax
mov dword [esp + 4], str._s:_option_requires_an_argument_____c_n
mov eax, dword [sym.imp.msvcrt.dll__iob]
add eax, 0x40
mov dword [esp], eax
call sub.msvcrt.dll_fprintf
mov dword [0x4643e8], ebx
mov eax, dword [ebp + 0x10]
xor ebx, ebx
cmp byte [eax], 0x3a
setne bl
lea ebx, [ebx + ebx*4 + 0x3a]
jmp 0x45b27d
mov dword [esp + 0xc], esi
mov edx, dword [ebp + 0xc]
mov eax, dword [edx]
mov dword [esp + 8], eax
mov dword [esp + 4], str._s:_unrecognized_option_____s_n
mov eax, dword [sym.imp.msvcrt.dll__iob]
add eax, 0x40
mov dword [esp], eax
call sub.msvcrt.dll_fprintf
jmp 0x45b91f
mov ecx, dword [ebp - 0x1c]
mov dword [ebp - 0x2c], ecx
mov dword [ebp - 0x24], ebx
mov eax, 1
jmp 0x45ba6d
mov eax, dword [ebp - 0x34]
mov dword [esp + 0xc], eax
mov edx, dword [ebp + 0xc]
mov eax, dword [edx]
mov dword [esp + 8], eax
mov dword [esp + 4], str._s:_option___s_requires_an_argument_n
mov eax, dword [sym.imp.msvcrt.dll__iob]
add eax, 0x40
mov dword [esp], eax
call sub.msvcrt.dll_fprintf
mov esi, dword [0x47f448]
jmp 0x45b9bb
mov eax, dword [ebp - 0x24]
cmp dword [eax + 4], 1
je 0x45bcbe
xor eax, eax
or ecx, 0xffffffff
mov edi, esi
repne scasb al, byte es:[edi]
not ecx
lea eax, [esi + ecx - 1]
mov dword [0x47f448], eax
cmp dword [ebp + 0x18], 0
je 0x45bc68
mov edx, dword [ebp - 0x2c]
mov eax, dword [ebp + 0x18]
mov dword [eax], edx
mov ecx, dword [ebp - 0x24]
mov eax, dword [ecx + 8]
test eax, eax
je 0x45b975
mov edx, dword [ecx + 0xc]
mov dword [eax], edx
xor eax, eax
jmp 0x45b4d0
mov dword [0x47f448], 0
mov eax, 0x57
jmp 0x45b4d0
cmp dword [0x4643e4], 0
jne 0x45bd3a
mov dword [0x4643e8], ebx
mov ecx, dword [ebp + 0x10]
cmp byte [ecx], 0x3a
setne al
lea eax, [eax + eax*4 + 0x3a]
movsx eax, al
jmp 0x45b4d0
mov eax, dword [0x4643e0]
cmp dword [ebp + 8], eax
jle 0x45bcf5
mov ecx, dword [ebp + 0xc]
mov edx, dword [ecx + eax*4]
mov dword [0x47f440], edx
inc eax
mov dword [0x4643e0], eax
jmp 0x45bc46
mov eax, dword [ebp - 0x30]
inc eax
mov dword [0x47f440], eax
jmp 0x45bc46
mov dword [ebp - 0x30], esi
jmp 0x45b712
cmp dword [0x4643e4], 0
jne 0x45bd6c
mov edx, dword [0x47f448]
xor eax, eax
or ecx, 0xffffffff
mov edi, edx
repne scasb al, byte es:[edi]
not ecx
lea eax, [edx + ecx - 1]
mov dword [0x47f448], eax
mov ecx, dword [ebp + 0x10]
xor eax, eax
cmp byte [ecx], 0x3a
setne al
lea eax, [eax + eax*4 + 0x3a]
jmp 0x45b4d0
mov dword [0x4643e0], edx
or eax, 0xffffffff
jmp 0x45b4d0
mov dword [esp + 0xc], ebx
mov edx, dword [ebp + 0xc]
mov eax, dword [edx]
mov dword [esp + 8], eax
mov dword [esp + 4], str._s:_option_requires_an_argument_____c_n
mov eax, dword [sym.imp.msvcrt.dll__iob]
add eax, 0x40
mov dword [esp], eax
call sub.msvcrt.dll_fprintf
jmp 0x45bca3
mov edx, dword [ebp + 0x10]
jmp 0x45ba2e
mov edx, dword [ebp + 0xc]
mov eax, dword [edx + eax*4 - 4]
mov dword [esp + 0xc], eax
mov eax, dword [edx]
mov dword [esp + 8], eax
mov dword [esp + 4], str._s:_option___s_requires_an_argument_n
mov eax, dword [sym.imp.msvcrt.dll__iob]
add eax, 0x40
mov dword [esp], eax
call sub.msvcrt.dll_fprintf
jmp 0x45bcfe