Function at 0x40de9c
Capabilities:
Query environment variable

Disassembly:
push ebp
mov ebp, esp
push edi
push esi
push ebx
sub esp, 0x5c
mov eax, dword [0x4630a0]
mov edi, dword [ebp + 0xc]
mov dword [ebp - 0x1c], eax
mov eax, dword [ebp + 0x10]
cmp byte [eax], 0x3a
mov eax, 0
cmovne eax, dword [ebp - 0x1c]
mov dword [0x4630a8], 0
cmp dword [0x426034], 0
mov dword [ebp - 0x1c], eax
je 0x40dee0
cmp dword [0x4630a4], 0
je 0x40deea
jmp 0x40df4b
mov dword [0x426034], 1
mov dword [esp], str.POSIXLY_CORRECT
mov eax, dword [0x426034]
mov dword [0x4630bc], 0
mov dword [0x4630ac], eax
mov dword [0x4630b0], eax
call sym._getenv
mov ecx, dword [ebp + 0x10]
mov dword [0x4630b4], eax
mov dl, byte [ecx]
cmp dl, 0x2d
jne 0x40df28
inc dword [ebp + 0x10]
mov eax, 2
jmp 0x40df3c
cmp dl, 0x2b
jne 0x40df34
inc dword [ebp + 0x10]
xor eax, eax
jmp 0x40df3c
test eax, eax
sete al
movzx eax, al
mov dword [0x4630b8], eax
mov dword [0x4630a4], 1
mov eax, dword [0x4630bc]
test eax, eax
je 0x40df5d
cmp byte [eax], 0
jne 0x40e09e
mov eax, dword [0x426034]
cmp dword [0x4630ac], eax
jle 0x40df6f
mov dword [0x4630ac], eax
cmp eax, dword [0x4630b0]
jge 0x40df7c
mov dword [0x4630b0], eax
mov ebx, dword [0x4630b8]
cmp ebx, 1
jne 0x40dfd2
mov edx, dword [0x4630ac]
cmp dword [0x4630b0], edx
je 0x40dfa2
cmp eax, edx
je 0x40dfbb
mov eax, edi
call sym._exchange
jmp 0x40dfbb
cmp eax, edx
je 0x40dfbb
mov dword [0x4630b0], eax
jmp 0x40dfbb
mov edx, dword [edi + eax*4]
cmp byte [edx], 0x2d
je 0x40dfc7
inc eax
mov dword [0x426034], eax
mov eax, dword [0x426034]
cmp eax, dword [ebp + 8]
jl 0x40dfad
jmp 0x40dfcd
cmp byte [edx + 1], 0
je 0x40dfb5
mov dword [0x4630ac], eax
mov esi, dword [0x426034]
cmp esi, dword [ebp + 8]
je 0x40e028
mov dword [esp + 4], 0x42a0b0
mov eax, dword [edi + esi*4]
mov dword [esp], eax
call sym._strcmp
test eax, eax
jne 0x40e028
inc esi
mov eax, dword [0x4630ac]
mov dword [0x426034], esi
cmp dword [0x4630b0], eax
je 0x40e015
cmp esi, eax
je 0x40e01b
mov eax, edi
call sym._exchange
jmp 0x40e01b
mov dword [0x4630b0], esi
mov eax, dword [ebp + 8]
mov dword [0x4630ac], eax
mov dword [0x426034], eax
mov edx, dword [0x426034]
cmp edx, dword [ebp + 8]
jne 0x40e053
mov edx, dword [0x4630b0]
or eax, 0xffffffff
cmp edx, dword [0x4630ac]
je 0x40e809
mov dword [0x426034], edx
jmp 0x40e809
mov ecx, dword [edi + edx*4]
cmp byte [ecx], 0x2d
jne 0x40e062
mov al, byte [ecx + 1]
test al, al
jne 0x40e084
or eax, 0xffffffff
test ebx, ebx
je 0x40e809
inc edx
mov dword [0x4630a8], ecx
mov eax, 1
mov dword [0x426034], edx
jmp 0x40e809
cmp dword [ebp + 0x14], 0
setne dl
cmp al, 0x2d
sete al
movzx eax, al
and eax, edx
lea eax, [ecx + eax + 1]
mov dword [0x4630bc], eax
cmp dword [ebp + 0x14], 0
je 0x40e407
mov ecx, dword [0x426034]
lea eax, [ecx*4]
mov dword [ebp - 0x40], eax
mov eax, dword [edi + ecx*4]
mov dword [ebp - 0x24], eax
mov al, byte [eax + 1]
mov byte [ebp - 0x28], al
cmp al, 0x2d
je 0x40e0f0
cmp dword [ebp + 0x1c], 0
je 0x40e407
mov eax, dword [ebp - 0x24]
cmp byte [eax + 2], 0
jne 0x40e0f0
mov edx, dword [ebp + 0x10]
mov al, byte [edx]
test al, al
je 0x40e0f0
cmp byte [ebp - 0x28], al
je 0x40e407
inc edx
jmp 0x40e0de
mov esi, dword [0x4630bc]
mov dword [ebp - 0x20], esi
mov eax, dword [ebp - 0x20]
mov al, byte [eax]
test al, al
je 0x40e10b
cmp al, 0x3d
je 0x40e10b
inc dword [ebp - 0x20]
jmp 0x40e0f9
mov eax, dword [ebp + 0x14]
mov dword [ebp - 0x34], 0
xor ebx, ebx
mov dword [ebp - 0x30], 0xffffffff
mov dword [ebp - 0x2c], eax
mov eax, dword [ebp - 0x20]
mov dword [ebp - 0x38], 0
sub eax, esi
mov dword [ebp - 0x3c], eax
mov eax, dword [ebp - 0x2c]
mov edx, dword [eax]
test edx, edx
je 0x40e18b
mov eax, dword [ebp - 0x3c]
mov dword [esp + 4], esi
mov dword [esp], edx
mov dword [esp + 8], eax
mov dword [ebp - 0x44], ecx
mov dword [ebp - 0x48], edx
call sym._strncmp
mov ecx, dword [ebp - 0x44]
test eax, eax
jne 0x40e182
mov edx, dword [ebp - 0x48]
mov dword [esp], edx
call sym._strlen
cmp dword [ebp - 0x3c], eax
mov ecx, dword [ebp - 0x44]
je 0x40e1e6
test ebx, ebx
jne 0x40e17b
mov eax, dword [ebp - 0x34]
mov ebx, dword [ebp - 0x2c]
mov dword [ebp - 0x30], eax
jmp 0x40e182
mov dword [ebp - 0x38], 1
add dword [ebp - 0x2c], 0x10
inc dword [ebp - 0x34]
jmp 0x40e130
cmp dword [ebp - 0x38], 0
je 0x40e1dc
cmp dword [ebp - 0x1c], 0
je 0x40e1c1
mov ebx, dword [edi]
mov dword [esp], 2
call dword [0x4260ac]
mov edi, dword [ebp - 0x24]
mov dword [esp + 4], str._s:_option___s_is_ambiguous_n
mov dword [esp + 8], ebx
mov dword [esp + 0xc], edi
mov dword [esp], eax
call sym._fprintf
mov ebx, dword [0x4630bc]
mov dword [esp], ebx
call sym._strlen
add ebx, eax
mov dword [0x4630bc], ebx
jmp 0x40e3f2
test ebx, ebx
je 0x40e350
jmp 0x40e1ef
mov eax, dword [ebp - 0x34]
mov ebx, dword [ebp - 0x2c]
mov dword [ebp - 0x30], eax
lea eax, [ecx + 1]
mov edx, dword [ebx + 4]
mov dword [0x426034], eax
mov dword [ebp - 0x24], eax
mov eax, dword [ebp - 0x20]
cmp byte [eax], 0
je 0x40e2a3
inc eax
test edx, edx
jne 0x40e2c1
cmp dword [ebp - 0x1c], 0
je 0x40e27b
mov edx, dword [edi + ecx*4]
mov esi, dword [ebx]
mov edi, dword [edi]
mov eax, dword [sym.___acrt_iob_func]
cmp byte [edx + 1], 0x2d
jne 0x40e24d
mov dword [esp], 2
call eax
mov dword [esp + 0xc], esi
mov dword [esp + 8], edi
mov dword [esp + 4], str._s:_option_____s_doesnt_allow_an_argument_n
mov dword [esp], eax
call sym._fprintf
jmp 0x40e27b
movsx edx, byte [edx]
mov dword [esp], 2
mov dword [ebp - 0x1c], edx
call eax
mov edx, dword [ebp - 0x1c]
mov dword [esp + 0x10], esi
mov dword [esp + 8], edi
mov dword [esp + 0xc], edx
mov dword [esp + 4], str._s:_option___c_s_doesnt_allow_an_argument_n
mov dword [esp], eax
call sym._fprintf
mov esi, dword [0x4630bc]
mov dword [esp], esi
call sym._strlen
add esi, eax
mov eax, dword [ebx + 0xc]
mov dword [0x4630bc], esi
mov dword [0x426030], eax
mov eax, 0x3f
jmp 0x40e809
dec edx
jne 0x40e32c
mov eax, dword [ebp - 0x24]
cmp eax, dword [ebp + 8]
jge 0x40e2c8
lea eax, [ecx + 2]
mov dword [0x426034], eax
mov eax, dword [ebp - 0x40]
mov eax, dword [edi + eax + 4]
mov dword [0x4630a8], eax
jmp 0x40e32c
cmp dword [ebp - 0x1c], 0
je 0x40e2f8
mov esi, dword [edi + ecx*4]
mov edi, dword [edi]
mov dword [esp], 2
call dword [0x4260ac]
mov dword [esp + 4], str._s:_option___s_requires_an_argument_n
mov dword [esp + 0xc], esi
mov dword [esp + 8], edi
mov dword [esp], eax
call sym._fprintf
mov esi, dword [0x4630bc]
mov dword [esp], esi
call sym._strlen
add esi, eax
mov eax, dword [ebx + 0xc]
mov dword [0x4630bc], esi
mov dword [0x426030], eax
mov eax, dword [ebp + 0x10]
cmp byte [eax], 0x3a
jne 0x40e299
mov eax, 0x3a
jmp 0x40e809
mov dword [esp], esi
call sym._strlen
add eax, esi
cmp dword [ebp + 0x18], 0
mov dword [0x4630bc], eax
je 0x40e716
mov eax, dword [ebp + 0x18]
mov edi, dword [ebp - 0x30]
jmp 0x40e714
cmp dword [ebp + 0x1c], 0
je 0x40e376
cmp byte [ebp - 0x28], 0x2d
je 0x40e7fa
mov dl, byte [esi]
mov ecx, dword [ebp + 0x10]
mov al, byte [ecx]
test al, al
je 0x40e3ab
cmp dl, al
je 0x40e407
inc ecx
jmp 0x40e365
cmp dword [ebp - 0x1c], 0
je 0x40e3e8
cmp byte [ebp - 0x28], 0x2d
jne 0x40e3b1
mov ebx, dword [edi]
mov dword [esp], 2
call dword [0x4260ac]
mov dword [esp + 0xc], esi
mov dword [esp + 8], ebx
mov dword [esp + 4], str._s:_unrecognized_option_____s_n
mov dword [esp], eax
call sym._fprintf
jmp 0x40e3e8
cmp dword [ebp - 0x1c], 0
je 0x40e3e8
mov eax, dword [ebp - 0x24]
mov ebx, dword [edi]
movsx edx, byte [eax]
mov dword [esp], 2
mov dword [ebp - 0x1c], edx
call dword [0x4260ac]
mov edx, dword [ebp - 0x1c]
mov dword [esp + 0x10], esi
mov dword [esp + 8], ebx
mov dword [esp + 0xc], edx
mov dword [esp + 4], str._s:_unrecognized_option___c_s_n
mov dword [esp], eax
call sym._fprintf
mov dword [0x4630bc], 0x42a191
inc dword [0x426034]
mov dword [0x426030], 0
jmp 0x40e299
mov esi, dword [0x4630bc]
mov edx, dword [ebp + 0x10]
movsx ebx, byte [esi]
lea eax, [esi + 1]
mov dword [ebp - 0x20], eax
mov dword [0x4630bc], eax
mov eax, ebx
movsx ecx, byte [edx]
test cl, cl
je 0x40e42e
cmp ebx, ecx
je 0x40e430
inc edx
jmp 0x40e420
xor edx, edx
cmp byte [esi + 1], 0
jne 0x40e43c
inc dword [0x426034]
test edx, edx
je 0x40e444
cmp al, 0x3a
jne 0x40e49a
cmp dword [ebp - 0x1c], 0
je 0x40e48f
cmp dword [0x4630b4], 0
mov esi, dword [edi]
mov dword [esp], 2
mov eax, dword [sym.___acrt_iob_func]
je 0x40e475
call eax
mov dword [esp + 0xc], ebx
mov dword [esp + 8], esi
mov dword [esp + 4], str._s:_illegal_option_____c_n
jmp 0x40e487
call eax
mov dword [esp + 0xc], ebx
mov dword [esp + 8], esi
mov dword [esp + 4], str._s:_invalid_option_____c_n
mov dword [esp], eax
call sym._fprintf
mov dword [0x426030], ebx
jmp 0x40e299
cmp byte [edx], 0x57
mov cl, byte [edx + 1]
jne 0x40e741
cmp cl, 0x3b
jne 0x40e741
cmp byte [esi + 1], 0
mov eax, dword [0x426034]
je 0x40e4cb
mov ecx, dword [ebp - 0x20]
inc eax
mov dword [0x426034], eax
mov dword [0x4630a8], ecx
jmp 0x40e527
cmp dword [ebp + 8], eax
jne 0x40e516
cmp dword [ebp - 0x1c], 0
je 0x40e4fd
mov esi, dword [edi]
mov dword [esp], 2
call dword [0x4260ac]
mov dword [esp + 0xc], ebx
mov dword [esp + 8], esi
mov dword [esp + 4], str._s:_option_requires_an_argument_____c_n
mov dword [esp], eax
call sym._fprintf
mov eax, dword [ebp + 0x10]
mov dword [0x426030], ebx
movsx eax, byte [eax]
cmp al, 0x3a
jne 0x40e299
jmp 0x40e809
lea edx, [eax + 1]
mov eax, dword [edi + eax*4]
mov dword [0x426034], edx
mov dword [0x4630a8], eax
mov esi, dword [0x4630a8]
mov dword [0x4630bc], esi
mov dword [ebp - 0x20], esi
mov eax, dword [ebp - 0x20]
mov al, byte [eax]
mov byte [ebp - 0x2c], al
test al, al
je 0x40e54b
cmp al, 0x3d
je 0x40e54b
inc dword [ebp - 0x20]
jmp 0x40e536
mov eax, dword [ebp - 0x20]
mov dword [ebp - 0x28], 0
xor ebx, ebx
mov dword [ebp - 0x24], 0
sub eax, esi
mov dword [ebp - 0x30], 0
mov dword [ebp - 0x34], eax
mov eax, dword [ebp + 0x14]
mov ecx, dword [eax]
test ecx, ecx
je 0x40e5c0
mov eax, dword [ebp - 0x34]
mov dword [esp + 4], esi
mov dword [esp], ecx
mov dword [esp + 8], eax
mov dword [ebp - 0x38], ecx
call sym._strncmp
test eax, eax
jne 0x40e5b7
mov ecx, dword [ebp - 0x38]
mov dword [esp], ecx
call sym._strlen
cmp dword [ebp - 0x34], eax
je 0x40e625
test ebx, ebx
jne 0x40e5b0
mov eax, dword [ebp - 0x28]
mov ebx, dword [ebp + 0x14]
mov dword [ebp - 0x24], eax
jmp 0x40e5b7
mov dword [ebp - 0x30], 1
add dword [ebp + 0x14], 0x10
inc dword [ebp - 0x28]
jmp 0x40e56a
cmp dword [ebp - 0x30], 0
je 0x40e61c
cmp dword [ebp - 0x1c], 0
je 0x40e5fb
mov eax, dword [0x426034]
mov ebx, dword [edi]
mov esi, dword [edi + eax*4]
mov dword [esp], 2
call dword [0x4260ac]
mov dword [esp + 8], ebx
mov dword [esp + 0xc], esi
mov dword [esp + 4], str._s:_option___W__s_is_ambiguous_n
mov dword [esp], eax
call sym._fprintf
mov ebx, dword [0x4630bc]
mov dword [esp], ebx
call sym._strlen
inc dword [0x426034]
add ebx, eax
mov dword [0x4630bc], ebx
jmp 0x40e299
test ebx, ebx
jne 0x40e62e
jmp 0x40e72d
mov eax, dword [ebp - 0x28]
mov ebx, dword [ebp + 0x14]
mov dword [ebp - 0x24], eax
cmp byte [ebp - 0x2c], 0
mov eax, dword [ebx + 4]
je 0x40e68b
test eax, eax
je 0x40e641
mov eax, dword [ebp - 0x20]
inc eax
jmp 0x40e6a4
cmp dword [ebp - 0x1c], 0
je 0x40e670
mov esi, dword [ebx]
mov ebx, dword [edi]
mov dword [esp], 2
call dword [0x4260ac]
mov dword [esp + 4], str._s:_option___W__s_doesnt_allow_an_argument_n
mov dword [esp + 0xc], esi
mov dword [esp + 8], ebx
mov dword [esp], eax
call sym._fprintf
mov ebx, dword [0x4630bc]
mov dword [esp], ebx
call sym._strlen
add ebx, eax
mov dword [0x4630bc], ebx
jmp 0x40e299
dec eax
jne 0x40e6f7
mov eax, dword [0x426034]
cmp eax, dword [ebp + 8]
jge 0x40e6ab
lea ecx, [eax + 1]
mov eax, dword [edi + eax*4]
mov dword [0x426034], ecx
mov dword [0x4630a8], eax
jmp 0x40e6f7
cmp dword [ebp - 0x1c], 0
je 0x40e6dc
mov esi, dword [edi + eax*4 - 4]
mov ebx, dword [edi]
mov dword [esp], 2
call dword [0x4260ac]
mov dword [esp + 4], str._s:_option___s_requires_an_argument_n
mov dword [esp + 0xc], esi
mov dword [esp + 8], ebx
mov dword [esp], eax
call sym._fprintf
mov ebx, dword [0x4630bc]
mov dword [esp], ebx
call sym._strlen
add ebx, eax
mov dword [0x4630bc], ebx
jmp 0x40e316
mov dword [esp], esi
call sym._strlen
cmp dword [ebp + 0x18], 0
lea edx, [esi + eax]
mov dword [0x4630bc], edx
je 0x40e716
mov eax, dword [ebp + 0x18]
mov edi, dword [ebp - 0x24]
mov dword [eax], edi
mov edx, dword [ebx + 8]
mov eax, dword [ebx + 0xc]
test edx, edx
je 0x40e809
mov dword [edx], eax
xor eax, eax
jmp 0x40e809
mov dword [0x4630bc], 0
mov eax, 0x57
jmp 0x40e809
cmp cl, 0x3a
jne 0x40e809
cmp byte [edx + 2], 0x3a
mov cl, byte [esi + 1]
jne 0x40e777
test cl, cl
je 0x40e76b
mov edi, dword [ebp - 0x20]
inc dword [0x426034]
mov dword [0x4630a8], edi
jmp 0x40e7ee
mov dword [0x4630a8], 0
jmp 0x40e7ee
mov edx, dword [0x426034]
test cl, cl
je 0x40e793
mov edi, dword [ebp - 0x20]
inc edx
mov dword [0x426034], edx
mov dword [0x4630a8], edi
jmp 0x40e7ee
cmp dword [ebp + 8], edx
jne 0x40e7dc
cmp dword [ebp - 0x1c], 0
je 0x40e7c5
mov esi, dword [edi]
mov dword [esp], 2
call dword [0x4260ac]
mov dword [esp + 0xc], ebx
mov dword [esp + 8], esi
mov dword [esp + 4], str._s:_option_requires_an_argument_____c_n
mov dword [esp], eax
call sym._fprintf
mov eax, dword [ebp + 0x10]
mov dword [0x426030], ebx
movsx eax, byte [eax]
cmp al, 0x3a
je 0x40e7ee
mov eax, 0x3f
jmp 0x40e7ee
lea ecx, [edx + 1]
mov edx, dword [edi + edx*4]
mov dword [0x426034], ecx
mov dword [0x4630a8], edx
mov dword [0x4630bc], 0
jmp 0x40e809
cmp dword [ebp - 0x1c], 0
je 0x40e3e8
jmp 0x40e382
add esp, 0x5c
pop ebx
pop esi
pop edi
pop ebp
ret