Function at 0x5aa820
Capabilities:
Query environment variable

Disassembly:
push ebp
push edi
push esi
push ebx
sub esp, 0x4c
mov dword [esp], str.POSIXLY_CORRECT
call sym._getenv
test eax, eax
mov eax, dword [esp + 0x64]
je 0x5aaa80
mov edx, dword [eax + 4]
xor esi, esi
lea ebx, [eax + 4]
test edx, edx
je 0x5aa850
cmp byte [edx], 0x2d
je 0x5aa860
add esp, 0x4c
mov eax, esi
pop ebx
pop esi
pop edi
pop ebp
ret
mov ebp, 1
mov ecx, 3
mov esi, edx
mov edi, 0x72e534
repe cmpsb byte [esi], byte es:[edi]
seta al
setb cl
sub eax, ecx
movsx esi, al
test esi, esi
je 0x5aaac0
cmp byte [edx + 1], 0x2d
je 0x5aa970
lea eax, [esp + 0x38]
mov dword [esp], eax
mov dword [esp + 0x20], eax
call sym._first_sopt
test eax, eax
je 0x5aaa42
mov edi, dword [esp + 0x68]
mov esi, dword [ebx]
movzx ecx, byte [eax]
mov edx, dword [edi]
cmp byte [esi + edx + 1], cl
lea edi, [edx + 1]
mov dword [esp + 0x24], edi
je 0x5aa8f0
mov edi, dword [esp + 0x68]
mov ecx, dword [esp + 0x20]
mov dword [esp], eax
mov dword [esp + 4], ecx
call sym._next_sopt
test eax, eax
je 0x5aaa42
mov edx, dword [edi]
mov esi, dword [ebx]
lea ecx, [edx + 1]
mov dword [esp + 0x24], ecx
movzx ecx, byte [eax]
cmp byte [esi + edx + 1], cl
jne 0x5aa8c4
mov ecx, dword [esp + 0x68]
mov edi, dword [esp + 0x24]
sub eax, 1
mov edx, dword [esp + 0x38]
mov dword [esp + 0x2c], eax
mov dword [esp + 0x3c], 2
mov dword [ecx], edi
mov edi, dword [0x746410]
imul eax, edx, 0x1c
add eax, edi
mov ecx, dword [eax + 4]
cmp ecx, 1
mov dword [esp + 0x28], ecx
je 0x5aaad4
mov ecx, dword [esp + 0x24]
test ecx, ecx
jne 0x5aab3c
mov ecx, dword [esp + 0x64]
mov ecx, dword [ecx + ebp*4 + 4]
test ecx, ecx
mov dword [esp + 0x20], ecx
je 0x5aac7a
cmp dword [esp + 0x28], 4
je 0x5aab82
imul eax, edx, 0x1c
add edi, eax
mov eax, dword [edi + 0x14]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x20]
mov dword [esp], eax
call dword [edi + 0xc]
jmp 0x5aaae5
mov eax, dword [esp + 0x68]
mov edi, dword [eax]
test edi, edi
jne 0x5aab60
lea eax, [esp + 0x3c]
mov dword [esp + 4], eax
lea eax, [esp + 0x38]
mov dword [esp], eax
mov dword [esp + 0x20], eax
call sym._first_lopt
test eax, eax
mov edi, eax
je 0x5aaa42
mov dword [esp + 0x28], ebp
mov esi, dword [ebx]
mov ebp, dword [esp + 0x3c]
mov dword [esp + 4], edi
lea eax, [esi + 2]
mov dword [esp + 8], ebp
mov dword [esp], eax
call sym._strncmp
test eax, eax
jne 0x5aaa20
lea eax, [ebp + 2]
mov dword [esp + 0x24], eax
movzx eax, byte [esi + ebp + 2]
cmp al, 0x3d
je 0x5aabe7
test al, al
jne 0x5aaa20
lea eax, [edi - 2]
mov edx, dword [esp + 0x38]
mov edi, dword [0x746410]
mov ebp, dword [esp + 0x28]
mov dword [esp + 0x2c], eax
mov eax, dword [esp + 0x24]
mov dword [esp + 0x3c], eax
imul eax, edx, 0x1c
add eax, edi
mov ecx, dword [eax + 4]
cmp ecx, 1
mov dword [esp + 0x28], ecx
je 0x5aaad4
mov ecx, dword [esp + 0x68]
mov ecx, dword [ecx]
jmp 0x5aa92c
lea eax, [esp + 0x3c]
mov dword [esp], edi
mov dword [esp + 8], eax
mov eax, dword [esp + 0x20]
mov dword [esp + 4], eax
call sym._next_lopt
test eax, eax
mov edi, eax
jne 0x5aa9a4
mov ebx, dword [ebx]
mov dword [esp], ebx
call sym._strlen
mov dword [esp + 0x10], str.unrecognized_option
mov dword [esp + 0xc], ebx
mov dword [esp + 8], eax
mov eax, dword [esp + 0x64]
mov esi, 0xffffffff
mov eax, dword [eax]
mov dword [esp], str._s:__.s:__s
mov dword [esp + 4], eax
call dword [esp + 0x6c]
jmp 0x5aa850
mov edx, dword [eax + 4]
test edx, edx
je 0x5aaab7
cmp byte [edx], 0x2d
je 0x5aac58
mov eax, dword [esp + 0x64]
mov ebp, 1
add eax, 8
jmp 0x5aaaac
add eax, 4
cmp byte [edx], 0x2d
je 0x5aa865
mov edx, dword [eax]
add ebp, 1
mov ebx, eax
test edx, edx
jne 0x5aaaa0
xor esi, esi
jmp 0x5aa850
mov edx, dword [esp + 0x64]
mov eax, dword [esp + 0x60]
mov ecx, ebp
call sym._consume_option
jmp 0x5aa850
mov edx, dword [eax + 0x14]
mov dword [esp], edx
call dword [eax + 8]
mov dword [esp + 0x20], 0
test eax, eax
jne 0x5aaba4
mov eax, dword [esp + 0x68]
mov eax, dword [eax]
test eax, eax
je 0x5aab0a
mov edx, dword [ebx]
cmp byte [edx + eax + 1], 0
jne 0x5aab2d
mov eax, dword [esp + 0x68]
mov dword [eax], 0
mov eax, dword [esp + 0x60]
mov edx, dword [esp + 0x64]
mov ecx, ebp
call sym._consume_option
mov eax, dword [esp + 0x20]
test eax, eax
je 0x5aab2d
mov eax, dword [esp + 0x20]
cmp eax, dword [ebx]
je 0x5aac44
add esp, 0x4c
mov esi, 1
pop ebx
mov eax, esi
pop esi
pop edi
pop ebp
ret
lea ecx, [esi + ecx + 1]
cmp byte [ecx], 0
mov dword [esp + 0x20], ecx
je 0x5aa934
mov ecx, dword [esp + 0x68]
mov dword [ecx], 0
jmp 0x5aa948
mov dword [esp + 8], 0x3b
mov dword [esp + 4], str.opt_parse.c
mov dword [esp], str.offset__0
call dword [sym.imp.msvcrt.dll__assert]
jmp 0x5aa97e
mov eax, dword [eax + 0x14]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x20]
mov dword [esp], eax
call sym._opt_set_charp
mov edx, dword [esp + 0x38]
mov edi, dword [0x746410]
jmp 0x5aa953
mov dword [esp + 0x10], eax
mov dword [esp + 0x20], eax
mov esi, 0xffffffff
mov eax, dword [esp + 0x2c]
mov edx, dword [esp + 0x3c]
mov dword [esp + 0xc], eax
mov eax, dword [esp + 0x64]
mov dword [esp + 8], edx
mov edx, dword [eax]
mov dword [esp], str._s:__.s:__s
mov dword [esp + 4], edx
call dword [esp + 0x6c]
mov eax, dword [esp + 0x20]
mov dword [esp], eax
call sym._free
jmp 0x5aa850
mov ecx, ebp
mov edx, dword [esp + 0x38]
mov ebp, dword [esp + 0x28]
lea eax, [esi + ecx + 3]
mov dword [esp + 0x20], eax
lea eax, [edi - 2]
mov edi, dword [0x746410]
mov dword [esp + 0x2c], eax
mov eax, dword [esp + 0x24]
mov dword [esp + 0x3c], eax
imul eax, edx, 0x1c
add eax, edi
mov ecx, dword [eax + 4]
cmp ecx, 1
mov dword [esp + 0x28], ecx
jne 0x5aac69
mov esi, dword [esp + 0x20]
test esi, esi
je 0x5aaad4
mov eax, dword [esp + 0x2c]
mov dword [esp + 0x10], str.doesnt_allow_an_argument
mov dword [esp + 0xc], eax
mov eax, dword [esp + 0x24]
jmp 0x5aaa58
mov edx, dword [esp + 0x64]
mov eax, dword [esp + 0x60]
mov ecx, ebp
call sym._consume_option
jmp 0x5aab2d
mov eax, dword [esp + 0x64]
mov ebp, 1
lea ebx, [eax + 4]
jmp 0x5aa865
mov ecx, dword [esp + 0x20]
test ecx, ecx
jne 0x5aa948
jmp 0x5aaa0b
mov eax, dword [esp + 0x2c]
mov dword [esp + 0x10], str.requires_an_argument
mov dword [esp + 0xc], eax
mov eax, dword [esp + 0x3c]
jmp 0x5aaa58