Function at 0x140091ce3
Capabilities:
Query environment variable

Disassembly:
push r15
push r14
push r13
push r12
push rbp
push rdi
push rsi
push rbx
sub rsp, 0x78
xor eax, eax
cmp dword [0x1400a35a8], 0
mov qword [0x1400f0588], rax
mov qword [rsp + 0xd8], r9
mov esi, ecx
mov r13, rdx
mov rbx, r8
je 0x140091d20
cmp dword [0x1400f0580], 0
je 0x140091d2a
jmp 0x140091d8e
mov dword [0x1400a35a8], 1
mov eax, dword [0x1400a35a8]
lea rcx, str.POSIXLY_CORRECT
mov dword [0x1400f0590], eax
mov dword [0x1400f0594], eax
xor eax, eax
mov qword [0x1400f05a8], rax
call sub.msvcrt.dll_getenv
mov dl, byte [rbx]
mov qword [0x1400f0598], rax
cmp dl, 0x2d
jne 0x140091d69
inc rbx
mov eax, 2
jmp 0x140091d7e
cmp dl, 0x2b
jne 0x140091d75
inc rbx
xor eax, eax
jmp 0x140091d7e
test rax, rax
sete al
movzx eax, al
mov dword [0x1400f05a0], eax
mov dword [0x1400f0580], 1
mov rax, qword [0x1400f05a8]
test rax, rax
je 0x140091da3
cmp byte [rax], 0
jne 0x140091ef8
mov eax, dword [0x1400a35a8]
cmp dword [0x1400f0590], eax
jle 0x140091db7
mov dword [0x1400f0590], eax
cmp eax, dword [0x1400f0594]
jge 0x140091dc5
mov dword [0x1400f0594], eax
mov ebp, dword [0x1400f05a0]
cmp ebp, 1
jne 0x140091e25
mov edx, dword [0x1400f0590]
cmp dword [0x1400f0594], edx
je 0x140091dec
cmp eax, edx
je 0x140091e0d
mov rcx, r13
call fcn.140091c00
jmp 0x140091e0d
cmp eax, edx
je 0x140091e0d
mov dword [0x1400f0594], eax
jmp 0x140091e0d
movsxd rdx, eax
mov rdx, qword [r13 + rdx*8]
cmp byte [rdx], 0x2d
je 0x140091e19
inc eax
mov dword [0x1400a35a8], eax
mov eax, dword [0x1400a35a8]
cmp eax, esi
jl 0x140091df8
jmp 0x140091e1f
cmp byte [rdx + 1], 0
je 0x140091e05
mov dword [0x1400f0590], eax
mov edi, dword [0x1400a35a8]
cmp edi, esi
je 0x140091e7d
movsxd rax, edi
lea rdx, [0x1400def90]
mov rcx, qword [r13 + rax*8]
call sub.msvcrt.dll_strcmp
test eax, eax
jne 0x140091e7d
inc edi
mov eax, dword [0x1400f0590]
cmp dword [0x1400f0594], eax
mov dword [0x1400a35a8], edi
je 0x140091e6b
cmp edi, eax
je 0x140091e71
mov rcx, r13
call fcn.140091c00
jmp 0x140091e71
mov dword [0x1400f0594], edi
mov dword [0x1400f0590], esi
mov dword [0x1400a35a8], esi
mov eax, dword [0x1400a35a8]
cmp eax, esi
jne 0x140091ea3
mov eax, dword [0x1400f0594]
cmp eax, dword [0x1400f0590]
je 0x140091e9b
mov dword [0x1400a35a8], eax
or eax, 0xffffffff
jmp 0x14009274e
movsxd rdx, eax
mov rdx, qword [r13 + rdx*8]
cmp byte [rdx], 0x2d
jne 0x140091eb7
mov cl, byte [rdx + 1]
test cl, cl
jne 0x140091ed4
test ebp, ebp
je 0x140091e9b
inc eax
mov qword [0x1400f0588], rdx
mov dword [0x1400a35a8], eax
mov eax, 1
jmp 0x14009274e
cmp cl, 0x2d
sete cl
xor eax, eax
cmp qword [rsp + 0xd8], 0
setne al
and eax, ecx
inc eax
cdqe
add rdx, rax
mov qword [0x1400f05a8], rdx
cmp qword [rsp + 0xd8], 0
je 0x1400922c0
movsxd rax, dword [0x1400a35a8]
mov r14, qword [r13 + rax*8]
lea rdi, [rax*8]
mov dword [rsp + 0x38], eax
mov qword [rsp + 0x58], rdi
mov al, byte [r14 + 1]
mov byte [rsp + 0x30], al
cmp al, 0x2d
je 0x140091f5d
cmp dword [rsp + 0xe8], 0
je 0x1400922c0
cmp byte [r14 + 2], 0
mov rax, rbx
jne 0x140091f5d
mov dl, byte [rax]
test dl, dl
je 0x140091f5d
cmp byte [rsp + 0x30], dl
je 0x1400922c0
inc rax
jmp 0x140091f48
mov rbp, qword [0x1400f05a8]
mov r15, rbp
mov al, byte [r15]
test al, al
je 0x140091f77
cmp al, 0x3d
je 0x140091f77
inc r15
jmp 0x140091f67
xor eax, eax
xor edi, edi
mov r9, qword [rsp + 0xd8]
or r12d, 0xffffffff
mov dword [rsp + 0x48], eax
mov rax, r15
sub rax, rbp
mov dword [rsp + 0x40], edi
xor edi, edi
mov qword [rsp + 0x50], rax
mov rcx, qword [r9]
test rcx, rcx
je 0x140091ffe
mov r8, qword [rsp + 0x50]
mov rdx, rbp
mov qword [rsp + 0x60], r9
mov qword [rsp + 0x68], rcx
call sub.msvcrt.dll_strncmp
mov r9, qword [rsp + 0x60]
test eax, eax
jne 0x140091ff4
mov rcx, qword [rsp + 0x68]
call sub.msvcrt.dll_strlen
cmp dword [rsp + 0x50], eax
mov r9, qword [rsp + 0x60]
je 0x140092062
test rdi, rdi
je 0x140091fec
mov dword [rsp + 0x48], 1
jmp 0x140091ff4
mov r12d, dword [rsp + 0x40]
mov rdi, r9
inc dword [rsp + 0x40]
add r9, 0x20
jmp 0x140091f9c
cmp dword [rsp + 0x48], 0
je 0x140092057
cmp dword [0x1400a35a4], 0
je 0x140092039
mov r8, qword [r13]
mov ecx, 2
mov qword [rsp + 0x30], r8
call qword [fcn.14009ff50]
mov r8, qword [rsp + 0x30]
mov r9, r14
lea rdx, str._s:_option___s_is_ambiguous_n
mov rcx, rax
call fcn.140091cc1
mov rbx, qword [0x1400f05a8]
mov rcx, rbx
call sub.msvcrt.dll_strlen
add rbx, rax
mov qword [0x1400f05a8], rbx
jmp 0x1400922ab
test rdi, rdi
je 0x140092200
jmp 0x14009206a
mov r12d, dword [rsp + 0x40]
mov rdi, r9
mov eax, dword [rsp + 0x38]
mov edx, dword [rdi + 8]
inc eax
mov dword [0x1400a35a8], eax
cmp byte [r15], 0
je 0x140092137
test edx, edx
je 0x140092096
inc r15
mov qword [0x1400f0588], r15
jmp 0x1400921cc
cmp dword [0x1400a35a4], 0
je 0x1400921cc
cmp byte [r14 + 1], 0x2d
mov rbx, qword [rdi]
mov r8, qword [r13]
mov rax, qword [fcn.14009ff50]
jne 0x1400920dd
mov qword [rsp + 0x30], r8
mov ecx, 2
call rax
mov r8, qword [rsp + 0x30]
mov r9, rbx
lea rdx, str._s:_option_____s_doesnt_allow_an_argument_n
mov rcx, rax
call fcn.140091cc1
jmp 0x140092110
movsx r9d, byte [r14]
mov qword [rsp + 0x38], r8
mov ecx, 2
mov dword [rsp + 0x30], r9d
call rax
mov qword [rsp + 0x20], rbx
mov r9d, dword [rsp + 0x30]
lea rdx, str._s:_option___c_s_doesnt_allow_an_argument_n
mov r8, qword [rsp + 0x38]
mov rcx, rax
call fcn.140091cc1
mov rbx, qword [0x1400f05a8]
mov rcx, rbx
call sub.msvcrt.dll_strlen
add rbx, rax
mov eax, dword [rdi + 0x18]
mov qword [0x1400f05a8], rbx
mov dword [0x1400a35a0], eax
jmp 0x1400923e1
dec edx
jne 0x1400921cc
cmp eax, esi
jge 0x140092163
mov eax, dword [rsp + 0x38]
add eax, 2
mov dword [0x1400a35a8], eax
mov rax, qword [rsp + 0x58]
mov rax, qword [r13 + rax + 8]
mov qword [0x1400f0588], rax
jmp 0x1400921cc
cmp dword [0x1400a35a4], 0
je 0x140092197
mov r8, qword [r13]
mov ecx, 2
mov qword [rsp + 0x30], r8
call qword [fcn.14009ff50]
mov r8, qword [rsp + 0x30]
mov r9, r14
lea rdx, str._s:_option___s_requires_an_argument_n
mov rcx, rax
call fcn.140091cc1
mov rsi, qword [0x1400f05a8]
mov rcx, rsi
call sub.msvcrt.dll_strlen
add rsi, rax
mov eax, dword [rdi + 0x18]
mov qword [0x1400f05a8], rsi
mov dword [0x1400a35a0], eax
cmp byte [rbx], 0x3a
mov eax, 0x3a
jne 0x1400923e1
jmp 0x14009274e
mov rcx, rbp
call sub.msvcrt.dll_strlen
add rax, rbp
cmp qword [rsp + 0xe0], 0
mov qword [0x1400f05a8], rax
je 0x1400921f4
mov rax, qword [rsp + 0xe0]
mov dword [rax], r12d
mov rdx, qword [rdi + 0x10]
mov eax, dword [rdi + 0x18]
jmp 0x14009266e
cmp dword [rsp + 0xe8], 0
je 0x14009222a
cmp byte [rsp + 0x30], 0x2d
je 0x14009222a
mov cl, byte [rbp]
mov rax, rbx
mov dl, byte [rax]
test dl, dl
je 0x14009222a
cmp cl, dl
je 0x1400922c0
inc rax
jmp 0x140092217
cmp dword [0x1400a35a4], 0
je 0x14009229d
cmp byte [rsp + 0x30], 0x2d
mov r8, qword [r13]
mov rax, qword [fcn.14009ff50]
jne 0x14009226a
mov qword [rsp + 0x30], r8
mov ecx, 2
call rax
mov r8, qword [rsp + 0x30]
mov r9, rbp
lea rdx, str._s:_unrecognized_option_____s_n
mov rcx, rax
call fcn.140091cc1
jmp 0x14009229d
movsx r9d, byte [r14]
mov qword [rsp + 0x38], r8
mov ecx, 2
mov dword [rsp + 0x30], r9d
call rax
mov qword [rsp + 0x20], rbp
mov r9d, dword [rsp + 0x30]
lea rdx, str._s:_unrecognized_option___c_s_n
mov r8, qword [rsp + 0x38]
mov rcx, rax
call fcn.140091cc1
lea rax, [0x1400df071]
mov qword [0x1400f05a8], rax
xor r11d, r11d
inc dword [0x1400a35a8]
mov dword [0x1400a35a0], r11d
jmp 0x1400923e1
mov rcx, qword [0x1400f05a8]
mov rdx, rbx
lea r8, [rcx + 1]
movsx edi, byte [rcx]
mov qword [0x1400f05a8], r8
mov eax, edi
movsx r9d, byte [rdx]
test r9b, r9b
je 0x1400922ed
cmp edi, r9d
je 0x1400922ef
inc rdx
jmp 0x1400922da
xor edx, edx
cmp byte [rcx + 1], 0
jne 0x1400922fb
inc dword [0x1400a35a8]
test rdx, rdx
je 0x140092304
cmp al, 0x3a
jne 0x140092363
cmp dword [0x1400a35a4], 0
je 0x14009235b
mov r8, qword [r13]
cmp qword [0x1400f0598], 0
mov ecx, 2
mov rax, qword [fcn.14009ff50]
mov qword [rsp + 0x30], r8
je 0x140092342
call rax
mov r8, qword [rsp + 0x30]
mov r9d, edi
lea rdx, str._s:_illegal_option_____c_n
mov rcx, rax
jmp 0x140092356
call rax
mov r8, qword [rsp + 0x30]
mov r9d, edi
lea rdx, str._s:_invalid_option_____c_n
mov rcx, rax
call fcn.140091cc1
mov dword [0x1400a35a0], edi
jmp 0x1400923e1
cmp byte [rdx], 0x57
mov r9b, byte [rdx + 1]
jne 0x140092694
cmp r9b, 0x3b
jne 0x140092694
cmp byte [rcx + 1], 0
movsxd rax, dword [0x1400a35a8]
je 0x140092398
inc eax
mov qword [0x1400f0588], r8
mov dword [0x1400a35a8], eax
jmp 0x140092400
cmp esi, eax
jne 0x1400923eb
cmp dword [0x1400a35a4], 0
je 0x1400923d0
mov r8, qword [r13]
mov ecx, 2
mov qword [rsp + 0x30], r8
call qword [fcn.14009ff50]
mov r8, qword [rsp + 0x30]
mov r9d, edi
lea rdx, str._s:_option_requires_an_argument_____c_n
mov rcx, rax
call fcn.140091cc1
mov dword [0x1400a35a0], edi
movsx eax, byte [rbx]
cmp al, 0x3a
je 0x14009274e
mov eax, 0x3f
jmp 0x14009274e
lea edx, [rax + 1]
mov rax, qword [r13 + rax*8]
mov dword [0x1400a35a8], edx
mov qword [0x1400f0588], rax
mov rdi, qword [0x1400f0588]
mov qword [0x1400f05a8], rdi
mov rbp, rdi
mov r14b, byte [rbp]
test r14b, r14b
je 0x140092425
cmp r14b, 0x3d
je 0x140092425
inc rbp
jmp 0x140092411
mov rax, rbp
xor r9d, r9d
xor r10d, r10d
xor r12d, r12d
sub rax, rdi
mov dword [rsp + 0x30], r9d
xor r15d, r15d
mov qword [rsp + 0x40], rax
mov eax, dword [rsp + 0x40]
mov dword [rsp + 0x38], r10d
mov qword [rsp + 0x48], rax
mov rax, qword [rsp + 0xd8]
mov rcx, qword [rax]
test rcx, rcx
je 0x1400924b5
mov r8, qword [rsp + 0x40]
mov rdx, rdi
mov qword [rsp + 0x50], rcx
call sub.msvcrt.dll_strncmp
test eax, eax
jne 0x1400924a6
mov rcx, qword [rsp + 0x50]
call sub.msvcrt.dll_strlen
cmp qword [rsp + 0x48], rax
je 0x140092527
test r15, r15
je 0x140092499
mov dword [rsp + 0x38], 1
jmp 0x1400924a6
mov r12d, dword [rsp + 0x30]
mov r15, qword [rsp + 0xd8]
add qword [rsp + 0xd8], 0x20
inc dword [rsp + 0x30]
jmp 0x14009244f
cmp dword [rsp + 0x38], 0
je 0x140092534
cmp dword [0x1400a35a4], 0
je 0x140092503
movsxd rax, dword [0x1400a35a8]
mov r8, qword [r13]
mov ecx, 2
mov r9, qword [r13 + rax*8]
mov qword [rsp + 0x30], r8
mov qword [rsp + 0x38], r9
call qword [fcn.14009ff50]
mov r9, qword [rsp + 0x38]
mov r8, qword [rsp + 0x30]
lea rdx, str._s:_option___W__s_is_ambiguous_n
mov rcx, rax
call fcn.140091cc1
mov rbx, qword [0x1400f05a8]
mov rcx, rbx
call sub.msvcrt.dll_strlen
inc dword [0x1400a35a8]
add rbx, rax
mov qword [0x1400f05a8], rbx
jmp 0x1400923e1
mov r12d, dword [rsp + 0x30]
mov r15, qword [rsp + 0xd8]
test r15, r15
je 0x140092680
mov eax, dword [r15 + 8]
test r14b, r14b
je 0x1400925b6
test eax, eax
je 0x14009255a
lea r11, [rbp + 1]
mov qword [0x1400f0588], r11
jmp 0x14009263e
cmp dword [0x1400a35a4], 0
je 0x140092598
mov r9, qword [r15]
mov r8, qword [r13]
mov ecx, 2
mov qword [rsp + 0x38], r9
mov qword [rsp + 0x30], r8
call qword [fcn.14009ff50]
mov r9, qword [rsp + 0x38]
mov r8, qword [rsp + 0x30]
lea rdx, str._s:_option___W__s_doesnt_allow_an_argument_n
mov rcx, rax
call fcn.140091cc1
mov rbx, qword [0x1400f05a8]
mov rcx, rbx
call sub.msvcrt.dll_strlen
add rbx, rax
mov qword [0x1400f05a8], rbx
jmp 0x1400923e1
dec eax
jne 0x14009263e
movsxd rax, dword [0x1400a35a8]
cmp eax, esi
jge 0x1400925e0
lea edx, [rax + 1]
mov rax, qword [r13 + rax*8]
mov dword [0x1400a35a8], edx
mov qword [0x1400f0588], rax
jmp 0x14009263e
cmp dword [0x1400a35a4], 0
je 0x140092620
mov r9, qword [r13 + rax*8 - 8]
mov r8, qword [r13]
mov ecx, 2
mov qword [rsp + 0x38], r9
mov qword [rsp + 0x30], r8
call qword [fcn.14009ff50]
mov r9, qword [rsp + 0x38]
mov r8, qword [rsp + 0x30]
lea rdx, str._s:_option___s_requires_an_argument_n
mov rcx, rax
call fcn.140091cc1
mov rsi, qword [0x1400f05a8]
mov rcx, rsi
call sub.msvcrt.dll_strlen
add rsi, rax
mov qword [0x1400f05a8], rsi
jmp 0x1400921b9
mov rcx, rdi
call sub.msvcrt.dll_strlen
add rdi, rax
cmp qword [rsp + 0xe0], 0
mov qword [0x1400f05a8], rdi
je 0x140092666
mov rax, qword [rsp + 0xe0]
mov dword [rax], r12d
mov rdx, qword [r15 + 0x10]
mov eax, dword [r15 + 0x18]
test rdx, rdx
je 0x14009274e
mov dword [rdx], eax
xor eax, eax
jmp 0x14009274e
xor r8d, r8d
mov eax, 0x57
mov qword [0x1400f05a8], r8
jmp 0x14009274e
cmp r9b, 0x3a
jne 0x14009274e
cmp byte [rdx + 2], 0x3a
mov cl, byte [rcx + 1]
jne 0x1400926c8
test cl, cl
je 0x1400926bd
inc dword [0x1400a35a8]
mov qword [0x1400f0588], r8
jmp 0x140092745
xor ecx, ecx
mov qword [0x1400f0588], rcx
jmp 0x140092745
movsxd rdx, dword [0x1400a35a8]
test cl, cl
je 0x1400926e4
inc edx
mov qword [0x1400f0588], r8
mov dword [0x1400a35a8], edx
jmp 0x140092745
cmp esi, edx
jne 0x140092730
cmp dword [0x1400a35a4], 0
je 0x14009271c
mov r8, qword [r13]
mov ecx, 2
mov qword [rsp + 0x30], r8
call qword [fcn.14009ff50]
mov r8, qword [rsp + 0x30]
mov r9d, edi
lea rdx, str._s:_option_requires_an_argument_____c_n
mov rcx, rax
call fcn.140091cc1
mov dword [0x1400a35a0], edi
movsx eax, byte [rbx]
cmp al, 0x3a
je 0x140092745
mov eax, 0x3f
jmp 0x140092745
lea ecx, [rdx + 1]
mov rdx, qword [r13 + rdx*8]
mov dword [0x1400a35a8], ecx
mov qword [0x1400f0588], rdx
xor edx, edx
mov qword [0x1400f05a8], rdx
add rsp, 0x78
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
ret