Function at 0x1400083c0
Capabilities:
Query environment variable

Disassembly:
mov qword [rsp + 0x20], r9
mov qword [rsp + 0x18], r8
mov dword [rsp + 8], ecx
push rbx
push rbp
push rsi
push rdi
push r12
push r13
push r15
sub rsp, 0x40
mov rsi, qword [rsp + 0xb8]
xor ebp, ebp
cmp byte [r8], 0x3a
mov r15d, ebp
mov rdi, r8
mov r12, rdx
mov r13d, ecx
cmovne r15d, dword [rsi + 4]
mov dword [rsp + 0xb8], r15d
cmp ecx, 1
jl 0x140008587
mov eax, dword [rsi]
mov qword [rsi + 0x10], rbp
test eax, eax
je 0x14000841f
cmp dword [rsi + 0x18], ebp
jne 0x140008499
test eax, eax
jne 0x14000842a
mov dword [rsi], 1
mov eax, 1
mov dword [rsi + 0x34], eax
mov dword [rsi + 0x30], eax
mov qword [rsi + 0x20], rbp
cmp dword [rsp + 0xb0], ebp
jne 0x140008451
lea rcx, [0x140024de8]
call qword [sym.imp.api_ms_win_crt_environment_l1_1_0.dll_getenv]
mov ecx, ebp
test rax, rax
je 0x140008456
mov ecx, 1
mov dword [rsi + 0x2c], ecx
movzx eax, byte [rdi]
cmp al, 0x2d
jne 0x14000846c
mov dword [rsi + 0x28], 2
inc rdi
jmp 0x140008482
cmp al, 0x2b
jne 0x140008478
mov dword [rsi + 0x28], ebp
inc rdi
jmp 0x140008482
mov eax, ebp
test ecx, ecx
sete al
mov dword [rsi + 0x28], eax
mov r9, qword [rsp + 0x98]
mov qword [rsp + 0x90], rdi
mov dword [rsi + 0x18], 1
mov rax, qword [rsi + 0x20]
test rax, rax
je 0x1400084ab
cmp byte [rax], bpl
jne 0x1400085d6
mov edx, dword [rsi + 0x34]
mov ecx, dword [rsi]
cmp edx, ecx
jle 0x1400084b9
mov dword [rsi + 0x34], ecx
mov edx, ecx
mov eax, dword [rsi + 0x30]
cmp eax, ecx
jle 0x1400084c5
mov dword [rsi + 0x30], ecx
mov eax, ecx
cmp dword [rsi + 0x28], 1
jne 0x140008525
cmp eax, edx
je 0x1400084e6
cmp edx, ecx
je 0x1400084e6
mov rdx, rsi
mov rcx, r12
call fcn.140008e10
mov r8d, dword [rsi]
mov ecx, r8d
jmp 0x1400084f0
mov r8d, ecx
cmp edx, ecx
je 0x1400084f0
mov dword [rsi + 0x30], ecx
cmp r8d, r13d
jge 0x140008520
nop word [rax + rax]
movsxd rax, r8d
mov rdx, qword [r12 + rax*8]
cmp byte [rdx], 0x2d
jne 0x140008512
cmp byte [rdx + 1], bpl
jne 0x140008520
lea ecx, [r8 + 1]
mov dword [rsi], ecx
mov r8d, ecx
cmp ecx, r13d
jl 0x140008500
mov dword [rsi + 0x34], ecx
mov edx, ecx
cmp ecx, r13d
je 0x14000857e
movsxd rax, ecx
mov r8, qword [r12 + rax*8]
movzx eax, byte [r8]
cmp al, byte [0x140022f14]
jne 0x14000859d
movzx eax, byte [r8 + 1]
cmp al, byte [0x140022f15]
jne 0x14000859d
movzx eax, byte [r8 + 2]
cmp al, byte [0x140022f16]
jne 0x14000859d
inc ecx
mov dword [rsi], ecx
cmp dword [rsi + 0x30], edx
je 0x140008571
cmp edx, ecx
je 0x140008574
mov rdx, rsi
mov rcx, r12
call fcn.140008e10
jmp 0x140008574
mov dword [rsi + 0x30], ecx
mov dword [rsi + 0x34], r13d
mov edx, r13d
mov dword [rsi], r13d
mov eax, dword [rsi + 0x30]
cmp eax, edx
je 0x140008587
mov dword [rsi], eax
mov rax, 0xffffffffffffffff
add rsp, 0x40
pop r15
pop r13
pop r12
pop rdi
pop rsi
pop rbp
pop rbx
ret
cmp byte [r8], 0x2d
jne 0x140008dea
movzx eax, byte [r8 + 1]
test al, al
je 0x140008dea
mov r9, qword [rsp + 0x98]
test r9, r9
je 0x1400085ca
cmp al, 0x2d
mov eax, 2
je 0x1400085cf
mov eax, 1
add rax, r8
mov qword [rsi + 0x20], rax
mov qword [rsp + 0x88], r14
mov rbx, 0xffffffffffffffff
test r9, r9
je 0x1400089c8
movsxd rax, dword [rsi]
mov r13d, dword [rsp + 0xa8]
mov rcx, qword [r12 + rax*8]
movzx eax, byte [rcx + 1]
cmp al, 0x2d
je 0x140008630
test r13d, r13d
je 0x1400089c0
cmp byte [rcx + 2], bpl
jne 0x140008630
movsx edx, al
mov rcx, rdi
call sub.VCRUNTIME140.dll_strchr
test rax, rax
jne 0x1400089c0
mov r9, qword [rsp + 0x98]
mov r15, qword [rsi + 0x20]
mov eax, ebp
mov dword [rsp + 0x34], eax
mov r14, rbp
mov dword [rsp + 0x38], ebp
mov dword [rsp + 0x30], ebx
movzx eax, byte [r15]
test al, al
je 0x140008660
nop dword [rax]
cmp al, 0x3d
je 0x140008660
movzx eax, byte [r15 + 1]
inc r15
test al, al
jne 0x140008650
mov rax, qword [r9]
mov rdi, r9
test rax, rax
je 0x140008904
nop
mov rdx, qword [rsi + 0x20]
mov r8, r15
sub r8, rdx
mov rcx, rax
call qword [sym.imp.api_ms_win_crt_string_l1_1_0.dll_strncmp]
test eax, eax
jne 0x1400086e1
mov rax, qword [rdi]
mov rcx, rbx
nop dword [rax]
inc rcx
cmp byte [rax + rcx], 0
jne 0x140008690
mov eax, r15d
sub eax, dword [rsi + 0x20]
cmp eax, ecx
je 0x140008775
test r14, r14
jne 0x1400086b8
mov r14, rdi
mov dword [rsp + 0x30], ebp
mov r8d, ebp
jmp 0x1400086e6
test r13d, r13d
jne 0x1400086d9
mov eax, dword [rdi + 8]
cmp dword [r14 + 8], eax
jne 0x1400086d9
mov rax, qword [rdi + 0x10]
cmp qword [r14 + 0x10], rax
jne 0x1400086d9
mov eax, dword [rdi + 0x18]
cmp dword [r14 + 0x18], eax
je 0x1400086e1
mov dword [rsp + 0x34], 1
mov r8d, dword [rsp + 0x30]
mov rax, qword [rdi + 0x20]
add rdi, 0x20
inc ebp
test rax, rax
jne 0x140008670
mov ecx, dword [rsp + 0x38]
cmp dword [rsp + 0x34], 0
je 0x140008785
test ecx, ecx
jne 0x140008785
cmp dword [rsp + 0xb8], ecx
je 0x14000873a
movsxd rdi, dword [rsi]
mov ecx, 2
call qword [sym.imp.api_ms_win_crt_stdio_l1_1_0.dll___acrt_iob_func]
mov r9, qword [r12 + rdi*8]
lea rdx, str._s:_option___s_is_ambiguous_n
mov r8, qword [r12]
mov rcx, rax
call fcn.1400010d0
mov rax, qword [rsi + 0x20]
nop
inc rbx
cmp byte [rax + rbx], 0
jne 0x140008740
add rbx, rax
mov qword [rsi + 0x20], rbx
mov dword [rsi + 8], 0
inc dword [rsi]
mov eax, 0x3f
mov r14, qword [rsp + 0x88]
add rsp, 0x40
pop r15
pop r13
pop r12
pop rdi
pop rsi
pop rbp
pop rbx
ret
mov r14, rdi
mov r8d, ebp
mov ecx, 1
jmp 0x1400086fd
test r14, r14
je 0x140008904
movsxd rax, dword [rsi]
lea edx, [rax + 1]
mov dword [rsi], edx
cmp byte [r15], 0
mov ecx, dword [r14 + 8]
je 0x140008871
test ecx, ecx
je 0x1400087ee
lea rax, [r15 + 1]
mov qword [rsi + 0x10], rax
mov rax, qword [rsi + 0x20]
inc rbx
cmp byte [rax + rbx], 0
jne 0x1400087b4
add rbx, rax
mov rax, qword [rsp + 0xa0]
mov qword [rsi + 0x20], rbx
test rax, rax
je 0x1400087d4
mov dword [rax], r8d
mov rcx, qword [r14 + 0x10]
mov eax, dword [r14 + 0x18]
test rcx, rcx
je 0x14000875e
mov dword [rcx], eax
xor eax, eax
jmp 0x14000875e
cmp dword [rsp + 0xb8], 0
je 0x140008851
mov rcx, qword [r12 + rax*8]
mov rbp, qword [r14]
cmp byte [rcx + 1], 0x2d
jne 0x140008828
mov ecx, 2
call qword [sym.imp.api_ms_win_crt_stdio_l1_1_0.dll___acrt_iob_func]
mov r8, qword [r12]
lea rdx, str._s:_option_____s_doesnt_allow_an_argument_n
mov rcx, rax
mov r9, rbp
call fcn.1400010d0
jmp 0x140008851
movsx edi, byte [rcx]
mov ecx, 2
call qword [sym.imp.api_ms_win_crt_stdio_l1_1_0.dll___acrt_iob_func]
mov r8, qword [r12]
lea rdx, str._s:_option___c_s_doesnt_allow_an_argument_n
mov rcx, rax
mov qword [rsp + 0x20], rbp
mov r9d, edi
call fcn.1400010d0
mov rax, qword [rsi + 0x20]
inc rbx
cmp byte [rax + rbx], 0
jne 0x140008855
add rbx, rax
mov qword [rsi + 0x20], rbx
mov eax, dword [r14 + 0x18]
mov dword [rsi + 8], eax
jmp 0x140008759
cmp ecx, 1
jne 0x1400087b0
cmp edx, dword [rsp + 0x80]
jge 0x140008896
mov rcx, qword [r12 + rax*8 + 8]
lea eax, [rdx + 1]
mov dword [rsi], eax
mov qword [rsi + 0x10], rcx
jmp 0x1400087b0
cmp dword [rsp + 0xb8], 0
je 0x1400088c5
mov ecx, 2
mov rdi, rax
call qword [sym.imp.api_ms_win_crt_stdio_l1_1_0.dll___acrt_iob_func]
mov r9, qword [r12 + rdi*8]
lea rdx, str._s:_option___s_requires_an_argument_n
mov r8, qword [r12]
mov rcx, rax
call fcn.1400010d0
mov rax, qword [rsi + 0x20]
nop dword [rax]
inc rbx
cmp byte [rax + rbx], 0
jne 0x1400088d0
mov rcx, qword [rsp + 0x90]
add rbx, rax
mov qword [rsi + 0x20], rbx
mov edi, 0x3a
mov eax, dword [r14 + 0x18]
mov dword [rsi + 8], eax
mov eax, 0x3f
cmp byte [rcx], dil
cmove eax, edi
jmp 0x14000875e
test r13d, r13d
je 0x140008933
movsxd rax, dword [rsi]
mov rcx, qword [r12 + rax*8]
cmp byte [rcx + 1], 0x2d
je 0x140008933
mov rax, qword [rsi + 0x20]
mov rcx, qword [rsp + 0x90]
movsx edx, byte [rax]
call sub.VCRUNTIME140.dll_strchr
test rax, rax
jne 0x1400089b8
cmp dword [rsp + 0xb8], 0
je 0x1400089a8
movsxd rax, dword [rsi]
mov rdi, qword [rsi + 0x20]
mov rcx, qword [r12 + rax*8]
cmp byte [rcx + 1], 0x2d
jne 0x14000897f
mov ecx, 2
call qword [sym.imp.api_ms_win_crt_stdio_l1_1_0.dll___acrt_iob_func]
mov r8, qword [r12]
lea rdx, str._s:_unrecognized_option_____s_n
mov rcx, rax
mov r9, rdi
call fcn.1400010d0
lea rax, [0x14002245d]
mov qword [rsi + 0x20], rax
jmp 0x140008750
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 [r12]
lea rdx, str._s:_unrecognized_option___c_s_n
mov rcx, rax
mov qword [rsp + 0x20], rdi
mov r9d, ebx
call fcn.1400010d0
lea rax, [0x14002245d]
mov qword [rsi + 0x20], rax
jmp 0x140008750
mov r15d, dword [rsp + 0xb8]
mov r13d, dword [rsp + 0x80]
mov rax, qword [rsi + 0x20]
mov rcx, qword [rsp + 0x90]
movsx edi, byte [rax]
inc rax
mov edx, edi
mov qword [rsi + 0x20], rax
mov ebp, edi
call sub.VCRUNTIME140.dll_strchr
mov r14, qword [rsi + 0x20]
cmp byte [r14], 0
jne 0x1400089f3
inc dword [rsi]
test rax, rax
je 0x140008da4
cmp dil, 0x3a
je 0x140008da4
cmp byte [rax], 0x57
jne 0x140008cdf
cmp byte [rax + 1], 0x3b
jne 0x140008cdf
movsxd rcx, dword [rsi]
xor edi, edi
xor r13d, r13d
mov dword [rsp + 0x38], edi
xor r15d, r15d
cmp byte [r14], dil
jne 0x140008a84
cmp ecx, dword [rsp + 0x80]
jne 0x140008a80
cmp dword [rsp + 0xb8], edi
je 0x140008a5e
lea ecx, [rdi + 2]
call qword [sym.imp.api_ms_win_crt_stdio_l1_1_0.dll___acrt_iob_func]
mov r8, qword [r12]
lea rdx, str._s:_option_requires_an_argument_____c_n
mov rcx, rax
mov r9d, ebp
call fcn.1400010d0
mov rcx, qword [rsp + 0x90]
mov edi, 0x3a
mov eax, 0x3f
mov dword [rsi + 8], ebp
cmp byte [rcx], dil
cmovne edi, eax
mov eax, edi
jmp 0x14000875e
mov r14, qword [r12 + rcx*8]
lea eax, [rcx + 1]
mov dword [rsi], eax
mov qword [rsi + 0x10], r14
mov qword [rsi + 0x20], r14
movzx eax, byte [r14]
test al, al
je 0x140008ab0
nop dword [rax]
cmp al, 0x3d
je 0x140008ab0
movzx eax, byte [r14 + 1]
inc r14
test al, al
jne 0x140008aa0
mov rax, qword [rsp + 0x98]
xor ebp, ebp
mov rax, qword [rax]
test rax, rax
je 0x140008ccd
nop word [rax + rax]
mov rdx, qword [rsi + 0x20]
mov r8, r14
sub r8, rdx
mov rcx, rax
call qword [sym.imp.api_ms_win_crt_string_l1_1_0.dll_strncmp]
mov rdx, qword [rsp + 0x98]
test eax, eax
jne 0x140008b1c
mov rax, qword [rdx]
mov rcx, rbx
inc rcx
cmp byte [rax + rcx], 0
jne 0x140008af5
mov eax, r14d
sub eax, dword [rsi + 0x20]
cmp rax, rcx
je 0x140008b85
test rdi, rdi
jne 0x140008b16
mov rdi, rdx
mov r15d, ebp
jmp 0x140008b1c
mov r13d, 1
mov rax, qword [rdx + 0x20]
add rdx, 0x20
inc ebp
mov qword [rsp + 0x98], rdx
test rax, rax
jne 0x140008ad0
mov eax, dword [rsp + 0x38]
test r13d, r13d
je 0x140008b92
test eax, eax
jne 0x140008b92
cmp dword [rsp + 0xb8], eax
je 0x140008b6c
movsxd rdi, dword [rsi]
lea ecx, [rax + 2]
call qword [sym.imp.api_ms_win_crt_stdio_l1_1_0.dll___acrt_iob_func]
mov r9, qword [r12 + rdi*8]
lea rdx, str._s:_option___W__s_is_ambiguous_n
mov r8, qword [r12]
mov rcx, rax
call fcn.1400010d0
mov rax, qword [rsi + 0x20]
inc rbx
cmp byte [rax + rbx], 0
jne 0x140008b70
add rbx, rax
mov qword [rsi + 0x20], rbx
jmp 0x140008757
mov rdi, rdx
mov r15d, ebp
mov eax, 1
jmp 0x140008b37
test rdi, rdi
je 0x140008ccd
cmp byte [r14], 0
mov eax, dword [rdi + 8]
je 0x140008c45
test eax, eax
je 0x140008bf9
lea rax, [r14 + 1]
mov qword [rsi + 0x10], rax
mov rax, qword [rsi + 0x20]
nop dword [rax + rax]
inc rbx
cmp byte [rax + rbx], 0
jne 0x140008bc0
add rbx, rax
mov rax, qword [rsp + 0xa0]
mov qword [rsi + 0x20], rbx
test rax, rax
je 0x140008be0
mov dword [rax], r15d
mov rcx, qword [rdi + 0x10]
mov eax, dword [rdi + 0x18]
test rcx, rcx
je 0x14000875e
mov dword [rcx], eax
xor eax, eax
jmp 0x14000875e
cmp dword [rsp + 0xb8], 0
je 0x140008c24
mov ecx, 2
call qword [sym.imp.api_ms_win_crt_stdio_l1_1_0.dll___acrt_iob_func]
mov r9, qword [rdi]
lea rdx, str._s:_option___W__s_doesnt_allow_an_argument_n
mov r8, qword [r12]
mov rcx, rax
call fcn.1400010d0
mov rax, qword [rsi + 0x20]
nop dword [rax + rax]
inc rbx
cmp byte [rax + rbx], 0
jne 0x140008c30
add rbx, rax
mov qword [rsi + 0x20], rbx
jmp 0x140008759
cmp eax, 1
jne 0x140008bb4
movsxd rdx, dword [rsi]
cmp edx, dword [rsp + 0x80]
jge 0x140008c6c
mov rcx, qword [r12 + rdx*8]
lea eax, [rdx + 1]
mov qword [rsi + 0x10], rcx
mov dword [rsi], eax
jmp 0x140008bb4
cmp dword [rsp + 0xb8], 0
je 0x140008c9c
mov ecx, 2
mov rdi, rdx
call qword [sym.imp.api_ms_win_crt_stdio_l1_1_0.dll___acrt_iob_func]
mov r9, qword [r12 + rdi*8 - 8]
lea rdx, str._s:_option___s_requires_an_argument_n
mov r8, qword [r12]
mov rcx, rax
call fcn.1400010d0
mov rax, qword [rsi + 0x20]
inc rbx
cmp byte [rax + rbx], 0
jne 0x140008ca0
mov rcx, qword [rsp + 0x90]
add rbx, rax
mov edi, 0x3a
mov qword [rsi + 0x20], rbx
mov eax, 0x3f
cmp byte [rcx], dil
cmove eax, edi
jmp 0x14000875e
mov qword [rsi + 0x20], 0
mov eax, 0x57
jmp 0x14000875e
cmp byte [rax + 1], 0x3a
jne 0x140008d9b
cmp byte [rax + 2], 0x3a
movzx ecx, byte [r14]
jne 0x140008d22
test cl, cl
je 0x140008d0e
inc dword [rsi]
mov qword [rsi + 0x10], r14
mov qword [rsi + 0x20], 0
movsx eax, dil
jmp 0x14000875e
xor r14d, r14d
movsx eax, dil
mov qword [rsi + 0x10], r14
mov qword [rsi + 0x20], r14
jmp 0x14000875e
movsxd rdx, dword [rsi]
test cl, cl
je 0x140008d2f
mov qword [rsi + 0x10], r14
jmp 0x140008d8e
cmp edx, r13d
jne 0x140008d86
test r15d, r15d
je 0x140008d5a
mov ecx, 2
call qword [sym.imp.api_ms_win_crt_stdio_l1_1_0.dll___acrt_iob_func]
mov r8, qword [r12]
lea rdx, str._s:_option_requires_an_argument_____c_n
mov rcx, rax
mov r9d, ebp
call fcn.1400010d0
mov rcx, qword [rsp + 0x90]
mov edi, 0x3a
mov eax, 0x3f
mov dword [rsi + 8], ebp
cmp byte [rcx], dil
mov qword [rsi + 0x20], 0
cmovne edi, eax
movsx eax, dil
jmp 0x14000875e
mov rcx, qword [r12 + rdx*8]
mov qword [rsi + 0x10], rcx
lea eax, [rdx + 1]
mov qword [rsi + 0x20], 0
mov dword [rsi], eax
movsx eax, dil
jmp 0x14000875e
test r15d, r15d
je 0x140008de2
cmp dword [rsi + 0x2c], 0
mov ecx, 2
mov rbx, qword [r12]
je 0x140008dc7
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 0x140008dd4
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, ebp
mov r8, rbx
mov rcx, rax
call fcn.1400010d0
mov dword [rsi + 8], ebp
jmp 0x140008759
cmp dword [rsi + 0x28], ebp
je 0x140008587
inc ecx
mov qword [rsi + 0x10], r8
mov dword [rsi], ecx
mov eax, 1
add rsp, 0x40
pop r15
pop r13
pop r12
pop rdi
pop rsi
pop rbp
pop rbx
ret