Function at 0x1400024a0
Capabilities:
Query environment variable

Disassembly:
mov qword [rsp + 0x10], rbx
mov qword [rsp + 0x20], r9
mov qword [rsp + 0x18], r8
mov dword [rsp + 8], ecx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0x40
xor esi, esi
mov r12, r9
cmp byte [r8], 0x3a
mov ebp, esi
mov r14, r8
mov r15, rdx
cmovne ebp, dword [0x140008004]
mov r13d, ecx
mov dword [rsp + 0x30], ebp
cmp ecx, 1
jl 0x140002685
mov edx, dword [section..data]
mov qword [0x140008150], rsi
test edx, edx
je 0x14000250b
cmp dword [0x140008158], esi
je 0x140002516
mov ebx, dword [0x14000815c]
jmp 0x140002581
mov edx, 1
mov dword [section..data], edx
lea rcx, [0x140005ce8]
mov dword [0x140008174], edx
mov dword [0x140008170], edx
mov qword [0x140008160], rsi
call qword [sym.imp.api_ms_win_crt_environment_l1_1_0.dll_getenv]
mov rcx, rax
mov qword [0x140008168], rax
movzx eax, byte [r14]
cmp al, 0x2d
jne 0x140002552
mov ebx, 2
inc r14
jmp 0x140002563
mov ebx, esi
cmp al, 0x2b
jne 0x14000255d
inc r14
jmp 0x140002563
test rcx, rcx
sete bl
mov edx, dword [section..data]
mov dword [0x14000815c], ebx
mov qword [rsp + 0x90], r14
mov dword [0x140008158], 1
mov r9, qword [0x140008160]
test r9, r9
je 0x140002596
cmp byte [r9], sil
jne 0x1400026d8
mov ecx, dword [0x140008174]
cmp ecx, edx
jle 0x1400025a8
mov ecx, edx
mov dword [0x140008174], edx
mov r8d, dword [0x140008170]
cmp r8d, edx
jle 0x1400025bd
mov r8d, edx
mov dword [0x140008170], edx
cmp ebx, 1
jne 0x14000261b
cmp r8d, ecx
je 0x1400025e2
cmp ecx, edx
je 0x1400025ef
mov rcx, r15
call fcn.140002390
mov edx, dword [section..data]
mov r8d, dword [0x140008170]
jmp 0x1400025ef
cmp ecx, edx
je 0x1400025ef
mov r8d, edx
mov dword [0x140008170], edx
cmp edx, r13d
jge 0x140002613
movsxd rax, edx
mov rcx, qword [r15 + rax*8]
cmp byte [rcx], 0x2d
jne 0x140002606
cmp byte [rcx + 1], sil
jne 0x140002613
inc edx
mov dword [section..data], edx
cmp edx, r13d
jl 0x1400025f4
mov ecx, edx
mov dword [0x140008174], edx
cmp edx, r13d
je 0x140002679
movsxd rax, edx
mov r9, qword [r15 + rax*8]
cmp byte [r9], 0x2d
jne 0x140002f62
cmp byte [r9 + 1], 0x2d
jne 0x1400026a4
cmp byte [r9 + 2], sil
jne 0x1400026a4
inc edx
mov dword [section..data], edx
cmp r8d, ecx
je 0x140002660
cmp ecx, edx
je 0x140002669
mov rcx, r15
call fcn.140002390
mov r8d, dword [0x140008170]
jmp 0x140002669
mov r8d, edx
mov dword [0x140008170], edx
mov ecx, r13d
mov dword [section..data], r13d
mov dword [0x140008174], ecx
cmp r8d, ecx
je 0x140002685
mov dword [section..data], r8d
mov rax, 0xffffffffffffffff
mov rbx, qword [rsp + 0x88]
add rsp, 0x40
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret
cmp byte [r9], 0x2d
jne 0x140002f62
movzx eax, byte [r9 + 1]
test al, al
je 0x140002f62
test r12, r12
je 0x1400026c9
cmp al, 0x2d
mov eax, 2
je 0x1400026ce
mov eax, 1
add r9, rax
mov qword [0x140008160], r9
mov rdi, 0xffffffffffffffff
test r12, r12
je 0x140002ab2
mov r13d, dword [rsp + 0xa8]
movsxd rax, edx
mov rcx, qword [r15 + rax*8]
movsx eax, byte [rcx + 1]
cmp al, 0x2d
je 0x14000272e
test r13d, r13d
je 0x140002aaa
cmp byte [rcx + 2], sil
jne 0x14000272e
mov edx, eax
mov rcx, r14
call sub.VCRUNTIME140.dll_strchr
test rax, rax
jne 0x140002aa3
mov edx, dword [section..data]
mov r9, qword [0x140008160]
xor eax, eax
mov dword [rsp + 0x3c], esi
mov dword [rsp + 0x38], eax
mov r14, r9
movzx eax, byte [r9]
mov dword [rsp + 0x34], edi
test al, al
je 0x140002757
cmp al, 0x3d
je 0x140002757
movzx eax, byte [r14 + 1]
inc r14
test al, al
jne 0x140002747
mov rax, qword [r12]
xor ebp, ebp
mov rbx, r12
test rax, rax
je 0x140002a29
nop dword [rax]
mov r8, r14
mov rdx, r9
sub r8, r9
mov rcx, rax
call qword [sym.imp.api_ms_win_crt_string_l1_1_0.dll_strncmp]
mov r9, qword [0x140008160]
test eax, eax
jne 0x1400027e1
mov rax, qword [rbx]
mov rcx, rdi
inc rcx
cmp byte [rax + rcx], 0
jne 0x140002793
mov eax, r14d
sub eax, r9d
cmp eax, ecx
je 0x14000286e
test rsi, rsi
jne 0x1400027ba
mov ecx, ebp
mov rsi, rbx
mov dword [rsp + 0x34], ecx
jmp 0x1400027e5
test r13d, r13d
jne 0x1400027d9
mov eax, dword [rbx + 8]
cmp dword [rsi + 8], eax
jne 0x1400027d9
mov rax, qword [rbx + 0x10]
cmp qword [rsi + 0x10], rax
jne 0x1400027d9
mov eax, dword [rbx + 0x18]
cmp dword [rsi + 0x18], eax
je 0x1400027e1
mov dword [rsp + 0x38], 1
mov ecx, dword [rsp + 0x34]
mov rax, qword [rbx + 0x20]
add rbx, 0x20
inc ebp
test rax, rax
jne 0x140002770
mov edx, dword [rsp + 0x3c]
cmp dword [rsp + 0x38], 0
je 0x140002881
test edx, edx
jne 0x140002881
cmp dword [rsp + 0x30], edx
je 0x140002840
movsxd rbx, dword [section..data]
lea ecx, [rdx + 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__s_is_ambiguous_n
mov r8, qword [r15]
mov rcx, rax
call fcn.140002fa0
mov r9, qword [0x140008160]
nop word [rax + rax]
inc rdi
cmp byte [r9 + rdi], 0
jne 0x140002840
add r9, rdi
mov dword [0x140008008], 0
inc dword [section..data]
mov eax, 0x3f
mov qword [0x140008160], r9
jmp 0x14000268c
mov ecx, ebp
mov rsi, rbx
mov dword [rsp + 0x34], ecx
mov edx, 1
jmp 0x1400027fc
mov edx, dword [section..data]
test rsi, rsi
je 0x140002a29
inc edx
mov dword [section..data], edx
cmp byte [r14], 0
mov eax, dword [rsi + 8]
je 0x140002987
test eax, eax
je 0x1400028f0
lea rax, [r14 + 1]
mov qword [0x140008150], rax
inc rdi
cmp byte [r9 + rdi], 0
jne 0x1400028b4
mov rax, qword [rsp + 0xa0]
add r9, rdi
mov qword [0x140008160], r9
test rax, rax
je 0x1400028d7
mov dword [rax], ecx
mov rcx, qword [rsi + 0x10]
mov eax, dword [rsi + 0x18]
test rcx, rcx
je 0x14000268c
mov dword [rcx], eax
xor eax, eax
jmp 0x14000268c
cmp dword [rsp + 0x30], 0
je 0x140002960
mov rbp, qword [rsi]
movsxd rax, edx
mov rcx, qword [r15 + rax*8 - 8]
cmp byte [rcx + 1], 0x2d
jne 0x14000292a
mov ecx, 2
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____s_doesnt_allow_an_argument_n
mov rcx, rax
mov r9, rbp
call fcn.140002fa0
jmp 0x140002952
movsx ebx, byte [rcx]
mov ecx, 2
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__c_s_doesnt_allow_an_argument_n
mov rcx, rax
mov qword [rsp + 0x20], rbp
mov r9d, ebx
call fcn.140002fa0
mov r9, qword [0x140008160]
nop dword [rax]
inc rdi
cmp byte [r9 + rdi], 0
jne 0x140002960
mov eax, dword [rsi + 0x18]
add r9, rdi
mov dword [0x140008008], eax
mov eax, 0x3f
mov qword [0x140008160], r9
jmp 0x14000268c
cmp eax, 1
jne 0x1400028b4
cmp edx, dword [rsp + 0x80]
jge 0x1400029b9
movsxd rax, edx
mov rcx, qword [r15 + rax*8]
lea eax, [rdx + 1]
mov qword [0x140008150], rcx
mov ecx, dword [rsp + 0x34]
mov dword [section..data], eax
jmp 0x1400028b4
cmp dword [rsp + 0x30], 0
je 0x1400029f0
mov ecx, 2
movsxd rbx, edx
call qword [sym.imp.api_ms_win_crt_stdio_l1_1_0.dll___acrt_iob_func]
mov r9, qword [r15 + rbx*8 - 8]
lea rdx, str._s:_option__s_requires_an_argument_n
mov r8, qword [r15]
mov rcx, rax
call fcn.140002fa0
mov r9, qword [0x140008160]
nop dword [rax]
inc rdi
cmp byte [r9 + rdi], 0
jne 0x1400029f0
mov eax, dword [rsi + 0x18]
add r9, rdi
mov qword [0x140008160], r9
mov dword [0x140008008], eax
mov rcx, qword [rsp + 0x90]
mov ebx, 0x3a
mov eax, 0x3f
cmp byte [rcx], bl
cmove eax, ebx
jmp 0x14000268c
test r13d, r13d
je 0x140002a5a
movsxd rax, edx
mov rcx, qword [r15 + rax*8]
cmp byte [rcx + 1], 0x2d
je 0x140002a5a
mov r14, qword [rsp + 0x90]
movsx edx, byte [r9]
mov rcx, r14
call sub.VCRUNTIME140.dll_strchr
test rax, rax
jne 0x140002a9f
mov edx, dword [section..data]
cmp dword [rsp + 0x30], 0
je 0x140002bad
movsxd rax, edx
mov rcx, qword [r15 + rax*8]
cmp byte [rcx + 1], 0x2d
jne 0x140002b78
mov ecx, 2
call qword [sym.imp.api_ms_win_crt_stdio_l1_1_0.dll___acrt_iob_func]
mov r9, qword [0x140008160]
lea rdx, str._s:_unrecognized_option____s_n
mov r8, qword [r15]
mov rcx, rax
call fcn.140002fa0
jmp 0x140002ba7
mov ebp, dword [rsp + 0x30]
mov r9, qword [0x140008160]
mov r13d, dword [rsp + 0x80]
movsx ebx, byte [r9]
mov rcx, r14
inc r9
mov edx, ebx
mov qword [0x140008160], r9
mov esi, ebx
call sub.VCRUNTIME140.dll_strchr
mov rdx, qword [0x140008160]
mov r8d, dword [section..data]
cmp byte [rdx], 0
jne 0x140002ae9
inc r8d
mov dword [section..data], r8d
test rax, rax
je 0x140002f12
cmp bl, 0x3a
je 0x140002f12
cmp byte [rax], 0x57
jne 0x140002e54
cmp byte [rax + 1], 0x3b
jne 0x140002e54
xor r14d, r14d
xor r13d, r13d
xor r12d, r12d
xor ebp, ebp
cmp byte [rdx], bpl
jne 0x140002bde
cmp r8d, dword [rsp + 0x80]
jne 0x140002bd7
cmp dword [rsp + 0x30], ebp
je 0x140002b54
lea ecx, [rbp + 2]
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, esi
call fcn.140002fa0
mov rcx, qword [rsp + 0x90]
mov ebx, 0x3a
mov eax, 0x3f
mov dword [0x140008008], esi
cmp byte [rcx], bl
cmovne ebx, eax
mov eax, ebx
jmp 0x14000268c
movsx ebx, byte [rcx]
mov ecx, 2
call qword [sym.imp.api_ms_win_crt_stdio_l1_1_0.dll___acrt_iob_func]
mov r8, qword [r15]
lea rdx, str._s:_unrecognized_option__c_s_n
mov rcx, rax
mov r9d, ebx
mov rax, qword [0x140008160]
mov qword [rsp + 0x20], rax
call fcn.140002fa0
mov edx, dword [section..data]
lea rax, [0x140005de0]
mov dword [0x140008008], 0
inc edx
mov qword [0x140008160], rax
mov eax, 0x3f
mov dword [section..data], edx
jmp 0x14000268c
movsxd rax, r8d
mov rdx, qword [r15 + rax*8]
inc r8d
mov qword [0x140008150], rdx
mov dword [section..data], r8d
mov rbx, rdx
movzx eax, byte [rdx]
mov qword [0x140008160], rdx
test al, al
je 0x140002c0f
cmp al, 0x3d
je 0x140002c0f
movzx eax, byte [rbx + 1]
inc rbx
test al, al
jne 0x140002c00
mov rax, qword [rsp + 0x98]
xor esi, esi
mov rax, qword [rax]
test rax, rax
je 0x140002e3f
nop word [rax + rax]
mov r8, rbx
mov rcx, rax
sub r8, rdx
call qword [sym.imp.api_ms_win_crt_string_l1_1_0.dll_strncmp]
mov rdx, qword [0x140008160]
mov r8, qword [rsp + 0x98]
test eax, eax
jne 0x140002c83
mov rax, qword [r8]
mov rcx, rdi
nop dword [rax + rax]
inc rcx
cmp byte [rax + rcx], r13b
jne 0x140002c60
mov eax, ebx
sub eax, edx
cmp eax, ecx
je 0x140002c9c
test r14, r14
jne 0x140002c7d
mov r14, r8
mov ebp, esi
jmp 0x140002c83
mov r12d, 1
mov rax, qword [r8 + 0x20]
add r8, 0x20
inc esi
mov qword [rsp + 0x98], r8
test rax, rax
jne 0x140002c30
jmp 0x140002ca7
mov r14, r8
mov ebp, esi
mov r13d, 1
test r12d, r12d
je 0x140002d09
test r13d, r13d
jne 0x140002d09
cmp dword [rsp + 0x30], r13d
je 0x140002ce6
movsxd rbx, dword [section..data]
lea ecx, [r13 + 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.140002fa0
mov rdx, qword [0x140008160]
inc rdi
cmp byte [rdx + rdi], 0
jne 0x140002ce6
add rdx, rdi
mov eax, 0x3f
inc dword [section..data]
mov qword [0x140008160], rdx
jmp 0x14000268c
test r14, r14
je 0x140002e3f
cmp byte [rbx], 0
mov eax, dword [r14 + 8]
je 0x140002dbd
test eax, eax
je 0x140002d6c
lea rax, [rbx + 1]
mov qword [0x140008150], rax
nop
inc rdi
cmp byte [rdx + rdi], 0
jne 0x140002d30
mov rax, qword [rsp + 0xa0]
add rdx, rdi
mov qword [0x140008160], rdx
test rax, rax
je 0x140002d52
mov dword [rax], ebp
mov rcx, qword [r14 + 0x10]
mov eax, dword [r14 + 0x18]
test rcx, rcx
je 0x14000268c
mov dword [rcx], eax
xor eax, eax
jmp 0x14000268c
cmp dword [rsp + 0x30], 0
je 0x140002da0
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._s:_option__W__s_doesnt_allow_an_argument_n
mov r8, qword [r15]
mov rcx, rax
call fcn.140002fa0
mov rdx, qword [0x140008160]
nop word [rax + rax]
inc rdi
cmp byte [rdx + rdi], 0
jne 0x140002da0
add rdx, rdi
mov eax, 0x3f
mov qword [0x140008160], rdx
jmp 0x14000268c
cmp eax, 1
jne 0x140002d30
movsxd r8, dword [section..data]
cmp r8d, dword [rsp + 0x80]
jge 0x140002df1
mov rcx, qword [r15 + r8*8]
inc r8d
mov dword [section..data], r8d
mov qword [0x140008150], rcx
jmp 0x140002d30
cmp dword [rsp + 0x30], 0
je 0x140002e27
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.140002fa0
mov rdx, qword [0x140008160]
inc rdi
cmp byte [rdx + rdi], 0
jne 0x140002e27
add rdx, rdi
mov qword [0x140008160], rdx
jmp 0x140002a0d
mov qword [0x140008160], 0
mov eax, 0x57
jmp 0x14000268c
cmp byte [rax + 1], 0x3a
jne 0x140002f0a
cmp byte [rax + 2], 0x3a
jne 0x140002e87
cmp byte [rdx], 0
jne 0x140002e8c
mov qword [0x140008150], 0
mov qword [0x140008160], 0
movsx eax, bl
jmp 0x14000268c
cmp byte [rdx], 0
je 0x140002e95
mov qword [0x140008150], rdx
jmp 0x140002ef5
cmp r8d, r13d
jne 0x140002ee7
test ebp, ebp
je 0x140002ebe
mov ecx, 2
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, esi
call fcn.140002fa0
mov ebx, 0x3a
mov dword [0x140008008], esi
cmp byte [r14], bl
mov eax, 0x3f
mov qword [0x140008160], 0
cmovne ebx, eax
movsx eax, bl
jmp 0x14000268c
movsxd rax, r8d
mov rcx, qword [r15 + rax*8]
mov qword [0x140008150], rcx
inc r8d
mov qword [0x140008160], 0
mov dword [section..data], r8d
movsx eax, bl
jmp 0x14000268c
test ebp, ebp
je 0x140002f52
cmp qword [0x140008168], 0
mov ecx, 2
mov rbx, qword [r15]
je 0x140002f37
call qword [sym.imp.api_ms_win_crt_stdio_l1_1_0.dll___acrt_iob_func]
lea rdx, str._s:_illegal_option_____c_n
jmp 0x140002f44
call qword [sym.imp.api_ms_win_crt_stdio_l1_1_0.dll___acrt_iob_func]
lea rdx, str._s:_invalid_option_____c_n
mov r9d, esi
mov r8, rbx
mov rcx, rax
call fcn.140002fa0
mov dword [0x140008008], esi
mov eax, 0x3f
jmp 0x14000268c
test ebx, ebx
je 0x140002685
inc edx
mov qword [0x140008150], r9
mov dword [section..data], edx
mov eax, 1
jmp 0x14000268c