Function at 0x140001570
Capabilities:
Query environment variable

Disassembly:
mov qword [rsp + 0x10], rbx
mov qword [rsp + 0x18], rbp
mov qword [rsp + 0x20], rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0x20
movzx r14d, byte [str.hukln:p:s:d:x:]
mov r15, rdx
mov byte [rsp + 0x50], r14b
mov r12d, ecx
lea r13, str.hukln:p:s:d:x:
cmp ecx, 1
jl 0x14000175a
mov ebx, dword [0x140007040]
xor edi, edi
mov qword [0x1400088e0], rdi
test ebx, ebx
je 0x1400015d9
cmp dword [0x1400088d8], edi
je 0x1400015e4
mov edi, dword [0x1400088b4]
mov rbp, qword [0x1400088a0]
jmp 0x140001651
mov ebx, 1
mov dword [0x140007040], ebx
lea rcx, str.POSIXLY_CORRECT
mov dword [0x1400088b8], ebx
mov dword [0x1400088b0], ebx
mov qword [0x1400088a8], rdi
call qword [sym.imp.api_ms_win_crt_environment_l1_1_0.dll_getenv]
mov rbp, rax
mov qword [0x1400088a0], rax
movzx eax, byte [str.hukln:p:s:d:x:]
cmp al, 0x2d
jne 0x140001627
mov edi, 2
lea r13, [0x140007911]
jmp 0x14000163b
cmp al, 0x2b
jne 0x140001634
lea r13, [0x140007911]
jmp 0x14000163b
test rbp, rbp
sete dil
mov ebx, dword [0x140007040]
mov dword [0x1400088b4], edi
mov dword [0x1400088d8], 1
mov rsi, qword [0x1400088a8]
test rsi, rsi
je 0x140001666
cmp byte [rsi], 0
jne 0x1400017a0
mov edx, dword [0x1400088b8]
cmp edx, ebx
mov ecx, dword [0x1400088b0]
cmovg edx, ebx
cmp ecx, ebx
mov dword [0x1400088b8], edx
cmovg ecx, ebx
mov dword [0x1400088b0], ecx
cmp edi, 1
jne 0x1400016e7
cmp ecx, edx
je 0x1400016a5
cmp edx, ebx
je 0x1400016b0
mov rcx, r15
call fcn.140001460
mov ecx, dword [0x1400088b0]
jmp 0x1400016b0
cmp edx, ebx
cmovne ecx, ebx
mov dword [0x1400088b0], ecx
cmp ebx, r12d
jge 0x1400016df
nop word [rax + rax]
movsxd rax, ebx
mov rdx, qword [r15 + rax*8]
cmp byte [rdx], 0x2d
jne 0x1400016d2
cmp byte [rdx + 1], 0
jne 0x1400016df
inc ebx
mov dword [0x140007040], ebx
cmp ebx, r12d
jl 0x1400016c0
mov edx, ebx
mov dword [0x1400088b8], ebx
cmp ebx, r12d
je 0x14000174f
movsxd rax, ebx
lea r10, [0x140007044]
mov r11, qword [r15 + rax*8]
mov rax, r11
sub r10, r11
movzx r9d, byte [rax]
movzx r8d, byte [rax + r10]
sub r9d, r8d
jne 0x140001716
inc rax
test r8d, r8d
jne 0x140001700
test r9d, r9d
jne 0x14000177e
inc ebx
mov dword [0x140007040], ebx
cmp ecx, edx
je 0x14000173b
cmp edx, ebx
je 0x140001743
mov rcx, r15
call fcn.140001460
mov ecx, dword [0x1400088b0]
jmp 0x140001743
mov ecx, ebx
mov dword [0x1400088b0], ebx
mov edx, r12d
mov ebx, r12d
mov dword [0x1400088b8], edx
cmp ecx, edx
cmovne ebx, ecx
mov dword [0x140007040], ebx
mov rax, 0xffffffffffffffff
mov rbx, qword [rsp + 0x58]
mov rbp, qword [rsp + 0x60]
mov rsi, qword [rsp + 0x68]
add rsp, 0x20
pop r15
pop r14
pop r13
pop r12
pop rdi
ret
cmp byte [r11], 0x2d
jne 0x140001ba8
cmp byte [r11 + 1], 0
lea rsi, [r11 + 1]
je 0x140001ba8
nop word [rax + rax]
movsx edx, byte [rsi]
mov rax, r13
movzx ecx, byte [r13]
inc rsi
mov qword [0x1400088a8], rsi
test cl, cl
je 0x1400017d3
nop dword [rax]
cmp cl, dl
je 0x14000185e
movzx ecx, byte [rax + 1]
inc rax
test cl, cl
jne 0x1400017c0
xor edi, edi
mov eax, edi
movzx ecx, byte [rsi]
test cl, cl
jne 0x1400017e6
inc ebx
mov dword [0x140007040], ebx
test rax, rax
je 0x140001b67
cmp dl, 0x3a
je 0x140001b67
cmp byte [rax], 0x57
jne 0x140001abe
cmp byte [rax + 1], 0x3b
jne 0x140001abe
mov dword [rsp + 0x78], edi
mov r14, rdi
mov ebp, edi
test cl, cl
jne 0x14000186c
cmp ebx, r12d
jne 0x140001865
cmp byte [rsp + 0x50], 0x3a
je 0x140001846
mov ecx, 2
mov ebx, edx
call qword [sym.imp.api_ms_win_crt_stdio_l1_1_0.dll___acrt_iob_func]
mov r8, qword [r15]
lea rdx, str._s:_option_requires_an_argument_____c_n
mov rcx, rax
mov r9d, ebx
call fcn.140001410
mov edx, 0x3a
mov eax, 0x3f
cmp byte [r13], dl
cmovne edx, eax
mov eax, edx
jmp 0x140001761
xor edi, edi
jmp 0x1400017d7
movsxd rax, ebx
mov rsi, qword [r15 + rax*8]
movzx eax, byte [rsi]
inc ebx
mov qword [0x1400088e0], rsi
mov rdx, rsi
mov dword [0x140007040], ebx
mov qword [0x1400088a8], rdx
test al, al
je 0x14000189f
nop dword [rax]
cmp al, 0x3d
je 0x14000189f
movzx eax, byte [rsi + 1]
inc rsi
test al, al
jne 0x140001890
mov rax, qword [rdi]
mov rbx, rdi
test rax, rax
je 0x140001aad
mov rdi, 0xffffffffffffffff
nop word [rax + rax]
mov r8, rsi
mov rcx, rax
sub r8, rdx
call qword [sym.imp.api_ms_win_crt_string_l1_1_0.dll_strncmp]
mov rdx, qword [0x1400088a8]
test eax, eax
jne 0x140001905
mov rax, qword [rbx]
mov rcx, rdi
inc rcx
cmp byte [rax + rcx], 0
jne 0x1400018e0
mov eax, esi
sub eax, edx
cmp rax, rcx
je 0x140001975
test r14, r14
jne 0x140001900
mov r14, rbx
jmp 0x140001905
mov ebp, 1
mov rax, qword [rbx + 0x20]
add rbx, 0x20
test rax, rax
jne 0x1400018c0
mov eax, dword [rsp + 0x78]
test ebp, ebp
je 0x14000197f
test eax, eax
jne 0x14000197f
cmp byte [rsp + 0x50], 0x3a
je 0x140001952
movsxd rbx, dword [0x140007040]
lea ecx, [rax + 2]
call qword [sym.imp.api_ms_win_crt_stdio_l1_1_0.dll___acrt_iob_func]
mov r9, qword [r15 + rbx*8]
lea rdx, str._s:_option___W__s_is_ambiguous_n
mov r8, qword [r15]
mov rcx, rax
call fcn.140001410
mov rdx, qword [0x1400088a8]
inc rdi
cmp byte [rdx + rdi], 0
jne 0x140001952
add rdx, rdi
mov eax, 0x3f
inc dword [0x140007040]
mov qword [0x1400088a8], rdx
jmp 0x140001761
mov r14, rbx
mov eax, 1
jmp 0x140001916
test r14, r14
je 0x140001aab
cmp byte [rsi], 0
mov eax, dword [r14 + 8]
je 0x140001a1d
test eax, eax
je 0x1400019d1
lea rax, [rsi + 1]
mov qword [0x1400088e0], rax
inc rdi
cmp byte [rdx + rdi], 0
jne 0x1400019a4
mov rcx, qword [r14 + 0x10]
add rdx, rdi
mov eax, dword [r14 + 0x18]
mov qword [0x1400088a8], rdx
test rcx, rcx
je 0x140001761
mov dword [rcx], eax
xor eax, eax
jmp 0x140001761
cmp byte [rsp + 0x50], 0x3a
je 0x140001a00
mov ecx, 2
call qword [sym.imp.api_ms_win_crt_stdio_l1_1_0.dll___acrt_iob_func]
mov r9, qword [r14]
lea rdx, str._t_t_t_t_t_t_t_t_t_t_t___s:_option___W__s_doesnt_allow_an_argument_n
mov r8, qword [r15]
mov rcx, rax
call fcn.140001410
mov rdx, qword [0x1400088a8]
nop
inc rdi
cmp byte [rdx + rdi], 0
jne 0x140001a00
add rdx, rdi
mov eax, 0x3f
mov qword [0x1400088a8], rdx
jmp 0x140001761
cmp eax, 1
jne 0x1400019a4
movsxd r8, dword [0x140007040]
cmp r8d, r12d
jge 0x140001a4c
mov rcx, qword [r15 + r8*8]
inc r8d
mov dword [0x140007040], r8d
mov qword [0x1400088e0], rcx
jmp 0x1400019a4
cmp byte [rsp + 0x50], 0x3a
je 0x140001a82
lea eax, [r8 - 1]
mov ecx, 2
movsxd rbx, eax
call qword [sym.imp.api_ms_win_crt_stdio_l1_1_0.dll___acrt_iob_func]
mov r9, qword [r15 + rbx*8]
lea rdx, str._s:_option___s_requires_an_argument_n
mov r8, qword [r15]
mov rcx, rax
call fcn.140001410
mov rdx, qword [0x1400088a8]
inc rdi
cmp byte [rdx + rdi], 0
jne 0x140001a82
add rdx, rdi
mov eax, 0x3f
mov qword [0x1400088a8], rdx
mov edx, 0x3a
cmp byte [r13], dl
cmove eax, edx
jmp 0x140001761
xor edi, edi
mov qword [0x1400088a8], rdi
mov eax, 0x57
jmp 0x140001761
cmp byte [rax + 1], 0x3a
jne 0x140001b5f
cmp byte [rax + 2], 0x3a
jne 0x140001ae8
test cl, cl
jne 0x140001aec
mov qword [0x1400088e0], rdi
mov qword [0x1400088a8], rdi
movsx eax, dl
jmp 0x140001761
test cl, cl
je 0x140001af5
mov qword [0x1400088e0], rsi
jmp 0x140001b50
cmp ebx, r12d
jne 0x140001b42
cmp r14b, 0x3a
je 0x140001b22
mov ecx, 2
mov ebx, edx
call qword [sym.imp.api_ms_win_crt_stdio_l1_1_0.dll___acrt_iob_func]
mov r8, qword [r15]
lea rdx, [0x140007508]
mov rcx, rax
mov r9d, ebx
call fcn.140001410
mov edx, 0x3a
mov qword [0x1400088a8], rdi
cmp byte [r13], dl
mov eax, 0x3f
cmovne edx, eax
movsx eax, dl
jmp 0x140001761
movsxd rax, ebx
mov rcx, qword [r15 + rax*8]
mov qword [0x1400088e0], rcx
inc ebx
mov qword [0x1400088a8], rdi
mov dword [0x140007040], ebx
movsx eax, dl
jmp 0x140001761
cmp r14b, 0x3a
je 0x140001b9e
mov rdi, qword [r15]
mov ecx, 2
mov ebx, edx
call qword [sym.imp.api_ms_win_crt_stdio_l1_1_0.dll___acrt_iob_func]
lea rdx, str._s:_illegal_option_____c_n
mov rcx, rax
mov r9d, ebx
mov r8, rdi
test rbp, rbp
jne 0x140001b99
lea rdx, str._s:_invalid_option_____c_n
call fcn.140001410
mov eax, 0x3f
jmp 0x140001761
test edi, edi
je 0x14000175a
inc ebx
mov qword [0x1400088e0], r11
mov dword [0x140007040], ebx
mov eax, 1
jmp 0x140001761