Function at 0x14021b080
Capabilities:
Query environment variable

Disassembly:
push r15
push r14
push r13
push r12
push rbp
push rdi
push rsi
push rbx
sub rsp, 0x48
mov r15d, dword [rsp + 0xb8]
mov r12d, ecx
mov rbp, rdx
mov r13, r8
mov r14, r9
test r8, r8
je 0x14021b242
mov r10d, dword [0x1403ff2ac]
test r10d, r10d
je 0x14021b1a0
cmp dword [0x1403ff290], 0xffffffff
je 0x14021b1b4
mov r9d, dword [0x1408330b8]
test r9d, r9d
jne 0x14021b1b4
movzx edx, byte [r8]
cmp dl, 0x2d
je 0x14021b528
mov eax, dword [0x1403ff290]
test eax, eax
jne 0x14021b440
cmp dl, 0x2b
je 0x14021b1f9
mov rdi, qword [0x1403ff2a0]
mov qword [0x1408330b0], 0
movzx eax, byte [rdi]
test al, al
je 0x14021b290
nop dword [rax + rax]
test r14, r14
je 0x14021b4bd
movsxd rdx, dword [0x1403ff2ac]
cmp rdi, qword [rbp + rdx*8]
je 0x14021b4bd
cmp al, 0x2d
je 0x14021b5c2
and r15d, 4
jne 0x14021b472
lea r15, [rdi + 1]
movsx ebx, al
mov qword [0x1403ff2a0], r15
cmp al, 0x3a
jne 0x14021b4dc
mov ebx, 0x3a
cmp byte [rdi + 1], 0
jne 0x14021b175
add dword [0x1403ff2ac], 1
mov ecx, dword [0x1403ff2b0]
test ecx, ecx
je 0x14021b18a
cmp byte [r13], 0x3a
jne 0x14021b5aa
mov dword [0x1403ff2a8], ebx
mov ebx, 0x3f
jmp 0x14021b247
mov dword [0x1408330b8], 1
mov dword [0x1403ff2ac], 1
xor edx, edx
xor r8d, r8d
lea rcx, str.POSIXLY_CORRECT
call qword [sym.imp.KERNEL32.dll_GetEnvironmentVariableW]
movzx edx, byte [r13]
test eax, eax
setne al
movzx eax, al
mov dword [0x1403ff290], eax
mov eax, dword [0x1408330b8]
cmp dl, 0x2d
je 0x14021b260
mov r8d, dword [0x1403ff290]
test r8d, r8d
jne 0x14021b428
cmp dl, 0x2b
jne 0x14021b268
and r15d, 0xfffffffe
jmp 0x14021b264
mov esi, dword [0x1403ff294]
lea rax, [0x1404c66a8]
mov edi, dword [0x1403ff298]
mov qword [0x1403ff2a0], rax
cmp esi, 0xffffffff
jne 0x14021b454
cmp edi, 0xffffffff
je 0x14021b22e
mov dword [0x1403ff2ac], edi
mov dword [0x1403ff294], 0xffffffff
mov dword [0x1403ff298], 0xffffffff
mov ebx, 0xffffffff
mov eax, ebx
add rsp, 0x48
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
ret
or r15d, 2
add r13, 1
mov qword [0x1408330b0], 0
test eax, eax
je 0x14021b325
mov dword [0x1403ff294], 0xffffffff
mov dword [0x1403ff298], 0xffffffff
nop
movsxd rbx, dword [0x1403ff2ac]
mov dword [0x1408330b8], 0
cmp ebx, r12d
jge 0x14021b200
movsxd rax, ebx
mov rsi, qword [rbp + rax*8]
cmp byte [rsi], 0x2d
je 0x14021b340
lea rax, [0x1404c66a8]
mov qword [0x1403ff2a0], rax
test r15b, 2
jne 0x14021b408
test r15b, 1
je 0x14021b242
mov esi, dword [0x1403ff298]
cmp esi, 0xffffffff
je 0x14021b3f8
mov edi, dword [0x1403ff294]
cmp edi, 0xffffffff
je 0x14021b31c
mov edx, edi
mov r9, rbp
mov r8d, ebx
mov ecx, esi
call fcn.14021ab90
sub edi, esi
mov eax, ebx
mov dword [0x1403ff294], 0xffffffff
sub eax, edi
mov dword [0x1403ff298], eax
add ebx, 1
mov dword [0x1403ff2ac], ebx
mov rdi, qword [0x1403ff2a0]
movzx eax, byte [rdi]
test al, al
je 0x14021b290
jmp 0x14021b120
movzx eax, byte [rsi + 1]
test al, al
jne 0x14021b540
mov edx, 0x2d
mov rcx, r13
call sub.msvcrt.dll_strchr
test rax, rax
je 0x14021b2bb
cmp dword [0x1403ff298], 0xffffffff
je 0x14021b378
cmp dword [0x1403ff294], 0xffffffff
je 0x14021b64a
lea r15, [rsi + 1]
mov qword [0x1403ff2a0], r15
cmp byte [rsi + 1], 0
jne 0x14021b5a0
mov edx, 0x2d
mov rcx, r13
call sub.msvcrt.dll_strchr
test rax, rax
je 0x14021b242
cmp byte [rax + 1], 0x3a
mov ebx, 0x2d
mov rdi, rsi
jne 0x14021b519
mov qword [0x1408330b0], 0
cmp byte [rdi + 1], 0
mov edx, dword [0x1403ff2ac]
je 0x14021b700
mov qword [0x1408330b0], r15
lea rax, [0x1404c66a8]
add edx, 1
mov qword [0x1403ff2a0], rax
mov dword [0x1403ff2ac], edx
jmp 0x14021b247
mov dword [0x1403ff298], ebx
jmp 0x14021b31c
add ebx, 1
mov qword [0x1408330b0], rsi
mov dword [0x1403ff2ac], ebx
mov ebx, 1
jmp 0x14021b247
and r15d, 0xfffffffe
cmp dl, 0x2b
jne 0x14021b268
jmp 0x14021b264
and r15d, 0xfffffffe
cmp dl, 0x2b
jne 0x14021b0fe
xor eax, eax
jmp 0x14021b264
mov edx, esi
sub esi, edi
mov r8d, ebx
mov r9, rbp
mov ecx, edi
sub ebx, esi
call fcn.14021ab90
mov dword [0x1403ff2ac], ebx
jmp 0x14021b22e
cmp al, 0x3a
je 0x14021b5cd
movsx edx, al
mov rcx, r13
call sub.msvcrt.dll_strchr
test rax, rax
setne al
movzx eax, al
mov dword [rsp + 0x20], eax
mov r8, r14
mov rdx, r13
mov rcx, rbp
mov r9, qword [rsp + 0xb0]
call fcn.14021ace0
mov ebx, eax
cmp eax, 0xffffffff
jne 0x14021b6c0
mov rdi, qword [0x1403ff2a0]
movzx eax, byte [rdi]
lea r15, [rdi + 1]
movsx ebx, al
mov qword [0x1403ff2a0], r15
cmp al, 0x3a
je 0x14021b168
cmp ebx, 0x2d
je 0x14021b774
mov edx, ebx
mov rcx, r13
call sub.msvcrt.dll_strchr
test rax, rax
je 0x14021b168
movzx edx, byte [rax + 1]
test r14, r14
je 0x14021b506
cmp ebx, 0x57
jne 0x14021b506
cmp dl, 0x3b
je 0x14021b5d4
cmp dl, 0x3a
je 0x14021b3b5
cmp byte [rdi + 1], 0
jne 0x14021b247
add dword [0x1403ff2ac], 1
jmp 0x14021b247
mov qword [0x1408330b0], 0
or r15d, 2
add r13, 1
jmp 0x14021b325
mov ecx, dword [0x1403ff298]
cmp ecx, 0xffffffff
je 0x14021b558
cmp dword [0x1403ff294], 0xffffffff
je 0x14021b655
lea rdi, [rsi + 1]
mov qword [0x1403ff2a0], rdi
cmp al, 0x2d
je 0x14021b6d3
test r14, r14
je 0x14021b660
cmp rdi, qword [rbp + rbx*8]
jne 0x14021b143
lea r15, [rsi + 2]
movsx ebx, al
mov qword [0x1403ff2a0], r15
cmp al, 0x3a
jne 0x14021b4dc
jmp 0x14021b163
mov ebx, 0x2d
jmp 0x14021b175
mov rcx, qword [rbp]
mov r8d, ebx
lea rdx, str.unknown_option_____c
call fcn.14021ac60
jmp 0x14021b18a
add rdi, 1
mov qword [0x1403ff2a0], rdi
xor eax, eax
jmp 0x14021b48e
cmp byte [rdi + 1], 0
jne 0x14021b6a0
mov eax, dword [0x1403ff2ac]
add eax, 1
mov dword [0x1403ff2ac], eax
cmp eax, r12d
jl 0x14021b692
mov edx, dword [0x1403ff2b0]
lea rax, [0x1404c66a8]
mov qword [0x1403ff2a0], rax
test edx, edx
je 0x14021b62b
cmp byte [r13], 0x3a
je 0x14021b62b
mov rcx, qword [rbp]
mov r8d, 0x57
lea rdx, str.option_requires_an_argument_____c
call fcn.14021ac60
mov dword [0x1403ff2a8], 0x57
cmp byte [r13], 0x3a
jne 0x14021b190
mov ebx, 0x3a
jmp 0x14021b247
mov dword [0x1403ff294], ebx
jmp 0x14021b378
mov dword [0x1403ff294], ebx
jmp 0x14021b558
lea r15, [rsi + 2]
movsx ebx, al
mov qword [0x1403ff2a0], r15
cmp al, 0x3a
je 0x14021b163
mov edx, ebx
mov rcx, r13
call sub.msvcrt.dll_strchr
test rax, rax
je 0x14021b168
movzx edx, byte [rax + 1]
jmp 0x14021b506
cdqe
mov rax, qword [rbp + rax*8]
mov qword [0x1403ff2a0], rax
mov dword [rsp + 0x20], 0
mov r8, r14
mov rdx, r13
mov rcx, rbp
mov r9, qword [rsp + 0xb0]
call fcn.14021ace0
mov ebx, eax
lea rax, [0x1404c66a8]
mov qword [0x1403ff2a0], rax
jmp 0x14021b247
cmp byte [rsi + 2], 0
je 0x14021b77c
test r14, r14
je 0x14021b6ed
cmp qword [rbp + rbx*8], rdi
jne 0x14021b5c2
lea r15, [rsi + 2]
mov rsi, rdi
mov qword [0x1403ff2a0], r15
jmp 0x14021b383
cmp byte [rax + 2], 0x3a
je 0x14021b3d7
add edx, 1
mov dword [0x1403ff2ac], edx
cmp r12d, edx
jle 0x14021b72c
movsxd rax, edx
mov rax, qword [rbp + rax*8]
mov qword [0x1408330b0], rax
jmp 0x14021b3d7
lea rax, [0x1404c66a8]
mov qword [0x1403ff2a0], rax
mov eax, dword [0x1403ff2b0]
test eax, eax
je 0x14021b75e
cmp byte [r13], 0x3a
je 0x14021b75e
mov rcx, qword [rbp]
mov r8d, ebx
lea rdx, str.option_requires_an_argument_____c
call fcn.14021ac60
mov dword [0x1403ff2a8], ebx
cmp byte [r13], 0x3a
jne 0x14021b190
jmp 0x14021b640
mov rsi, rdi
jmp 0x14021b383
mov esi, dword [0x1403ff294]
add ebx, 1
lea rax, [0x1404c66a8]
mov dword [0x1403ff2ac], ebx
mov qword [0x1403ff2a0], rax
cmp esi, 0xffffffff
je 0x14021b22e
mov r8d, ebx
mov edx, esi
mov r9, rbp
mov dword [rsp + 0x3c], ecx
call fcn.14021ab90
mov ecx, dword [rsp + 0x3c]
sub esi, ecx
sub ebx, esi
mov dword [0x1403ff2ac], ebx
jmp 0x14021b22e