Function at 0x14003a820
Capabilities:
Query environment variable

Disassembly:
mov rax, rsp
mov qword [rax + 0x10], rdx
push rbp
push r12
push r13
push r14
push r15
lea rbp, [rax - 0x5f]
sub rsp, 0xf0
mov qword [rbp + 0x27], 0xfffffffffffffffe
mov qword [rax + 8], rbx
mov qword [rax + 0x18], rsi
mov qword [rax + 0x20], rdi
mov r15, rdx
mov r12, rcx
xor r13d, r13d
mov dword [rbp + 0x1f], r13d
cmp qword [rdx + 0x18], 0x10
jb 0x14003a868
mov r8, qword [rdx]
jmp 0x14003a86b
mov r8, rdx
lea rdx, str.BASENAME__s_n
mov ecx, 6
call fcn.140020620
lea rcx, str.PATH
call fcn.14004ee64
test rax, rax
jne 0x14003a8a3
lea rdx, str.Could_not_get_path_from_environment
lea ecx, [rax + 2]
call fcn.140020620
lea rax, [0x1400857e4]
mov qword [rbp - 9], 0xf
mov qword [rbp - 0x11], r13
mov byte [rbp - 0x21], 0
cmp byte [rax], 0
jne 0x14003a8bd
mov r8, r13
jmp 0x14003a8cb
or r8, 0xffffffffffffffff
inc r8
cmp byte [rax + r8], 0
jne 0x14003a8c1
mov rdx, rax
lea rcx, [rbp - 0x21]
call fcn.140002390
nop
mov qword [rbp + 0x17], 0xf
mov qword [rbp + 0xf], r13
mov byte [rbp - 1], 0
mov rdx, qword [0x1400a8518]
cmp byte [rdx], 0
jne 0x14003a8f9
mov r8, r13
jmp 0x14003a90a
or r8, 0xffffffffffffffff
nop dword [rax]
inc r8
cmp byte [rdx + r8], 0
jne 0x14003a900
lea rcx, [rbp - 1]
call fcn.140002390
nop
xor r9d, r9d
lea r8, [rbp - 1]
lea rdx, [rbp - 0x21]
lea rcx, [rbp - 0x59]
call fcn.14003f2f0
nop
cmp qword [rbp + 0x17], 0x10
jb 0x14003a939
mov rcx, qword [rbp - 1]
call fcn.14004cc48
mov qword [rbp + 0x17], 0xf
mov qword [rbp + 0xf], r13
mov byte [rbp - 1], 0
mov qword [rsp + 0x38], 0xf
mov qword [rsp + 0x30], r13
mov byte [rsp + 0x20], 0
mov r8d, 1
lea rdx, [0x14008580c]
lea rcx, [rsp + 0x20]
call fcn.140002390
nop
lea rax, [rsp + 0x20]
mov rbx, qword [rbp - 0x59]
mov rdi, qword [rbp - 0x51]
cmp rax, rdi
jae 0x14003aa84
lea rax, [rsp + 0x20]
cmp rbx, rax
ja 0x14003aa84
lea rsi, [rsp + 0x20]
sub rsi, rbx
mov rdx, qword [rbp - 0x49]
cmp rdi, rdx
jne 0x14003aa1b
mov rax, rdx
sub rax, rdi
sar rax, 5
cmp rax, 1
jae 0x14003aa1b
sub rdi, rbx
sar rdi, 5
movabs rcx, 0x7ffffffffffffff
mov rax, rcx
sub rax, rdi
cmp rax, 1
jae 0x14003a9e3
lea rcx, str.vector_T__too_long
call fcn.14004c028
int3
inc rdi
sub rdx, rbx
sar rdx, 5
mov rax, rdx
shr rax, 1
sub rcx, rax
cmp rcx, rdx
jae 0x14003aa00
mov rdx, r13
jmp 0x14003aa03
add rdx, rax
cmp rdx, rdi
cmovb rdx, rdi
lea rcx, [rbp - 0x59]
call fcn.140001dc0
mov rdi, qword [rbp - 0x51]
mov rbx, qword [rbp - 0x59]
and rsi, 0xffffffffffffffe0
add rsi, rbx
test rdi, rdi
je 0x14003ab6e
mov qword [rdi + 0x18], 0xf
mov qword [rdi + 0x10], r13
mov byte [rdi], 0
cmp qword [rsi + 0x18], 0x10
jae 0x14003aa57
mov r8, qword [rsi + 0x10]
inc r8
je 0x14003aa60
mov rdx, rsi
mov rcx, rdi
call fcn.14004cdd0
jmp 0x14003aa60
mov rax, qword [rsi]
mov qword [rdi], rax
mov qword [rsi], r13
mov rax, qword [rsi + 0x10]
mov qword [rdi + 0x10], rax
mov rax, qword [rsi + 0x18]
mov qword [rdi + 0x18], rax
mov qword [rsi + 0x18], 0xf
mov qword [rsi + 0x10], r13
mov byte [rsi], 0
jmp 0x14003ab66
mov rdx, qword [rbp - 0x49]
cmp rdi, rdx
jne 0x14003aaff
mov rax, rdx
sub rax, rdi
sar rax, 5
cmp rax, 1
jae 0x14003aaff
sub rdi, rbx
sar rdi, 5
movabs rcx, 0x7ffffffffffffff
mov rax, rcx
sub rax, rdi
cmp rax, 1
jae 0x14003aac7
lea rcx, str.vector_T__too_long
call fcn.14004c028
int3
inc rdi
sub rdx, rbx
sar rdx, 5
mov rax, rdx
shr rax, 1
sub rcx, rax
cmp rcx, rdx
jae 0x14003aae4
mov rdx, r13
jmp 0x14003aae7
add rdx, rax
cmp rdx, rdi
cmovb rdx, rdi
lea rcx, [rbp - 0x59]
call fcn.140001dc0
mov rdi, qword [rbp - 0x51]
mov rbx, qword [rbp - 0x59]
test rdi, rdi
je 0x14003ab6e
mov qword [rdi + 0x18], 0xf
mov qword [rdi + 0x10], r13
mov byte [rdi], 0
cmp qword [rsp + 0x38], 0x10
jae 0x14003ab34
mov r8, qword [rsp + 0x30]
inc r8
je 0x14003ab41
lea rdx, [rsp + 0x20]
mov rcx, rdi
call fcn.14004cdd0
jmp 0x14003ab41
mov rax, qword [rsp + 0x20]
mov qword [rdi], rax
mov qword [rsp + 0x20], r13
mov rax, qword [rsp + 0x30]
mov qword [rdi + 0x10], rax
mov rax, qword [rsp + 0x38]
mov qword [rdi + 0x18], rax
mov qword [rsp + 0x38], 0xf
mov qword [rsp + 0x30], r13
mov byte [rsp + 0x20], 0
mov rbx, qword [rbp - 0x59]
mov rdi, qword [rbp - 0x51]
add rdi, 0x20
mov qword [rbp - 0x51], rdi
cmp qword [rsp + 0x38], 0x10
jb 0x14003ab90
mov rcx, qword [rsp + 0x20]
call fcn.14004cc48
mov rdi, qword [rbp - 0x51]
mov rbx, qword [rbp - 0x59]
cmp rbx, rdi
je 0x14003b000
nop dword [rax]
mov qword [rsp + 0x38], 0xf
mov qword [rsp + 0x30], r13
mov byte [rsp + 0x20], 0
or r9, 0xffffffffffffffff
xor r8d, r8d
mov rdx, rbx
lea rcx, [rsp + 0x20]
call fcn.140002260
nop
mov rdi, qword [rsp + 0x30]
test rdi, rdi
je 0x14003ac2f
lea rcx, [rsp + 0x20]
cmp qword [rsp + 0x38], 0x10
cmovae rcx, qword [rsp + 0x20]
mov r8d, 1
cmp rdi, r8
cmovb r8, rdi
test r8, r8
jne 0x14003abfa
mov eax, r13d
jmp 0x14003ac06
lea rdx, [0x14008585c]
call fcn.14004e1e0
cdqe
test rax, rax
jne 0x14003ac22
cmp rdi, 1
jae 0x14003ac18
or eax, 0xffffffff
jmp 0x14003ac22
mov eax, r13d
cmp rdi, 1
setne al
test eax, eax
sete al
test al, al
je 0x14003acc5
lea rcx, [rbp - 0x41]
call fcn.14003a1f0
mov rdi, rax
lea rax, [rsp + 0x20]
cmp rax, rdi
je 0x14003acb5
cmp qword [rsp + 0x38], 0x10
jb 0x14003ac57
mov rcx, qword [rsp + 0x20]
call fcn.14004cc48
mov qword [rsp + 0x38], 0xf
mov qword [rsp + 0x30], r13
mov byte [rsp + 0x20], 0
cmp qword [rdi + 0x18], 0x10
jae 0x14003ac89
mov r8, qword [rdi + 0x10]
inc r8
je 0x14003ac94
mov rdx, rdi
lea rcx, [rsp + 0x20]
call fcn.14004cdd0
jmp 0x14003ac94
mov rax, qword [rdi]
mov qword [rsp + 0x20], rax
mov qword [rdi], r13
mov rax, qword [rdi + 0x10]
mov qword [rsp + 0x30], rax
mov rax, qword [rdi + 0x18]
mov qword [rsp + 0x38], rax
mov qword [rdi + 0x18], 0xf
mov qword [rdi + 0x10], r13
mov byte [rdi], 0
cmp qword [rbp - 0x29], 0x10
jb 0x14003acc5
mov rcx, qword [rbp - 0x41]
call fcn.14004cc48
mov qword [rbp - 0x61], 0xf
mov qword [rbp - 0x69], r13
mov byte [rbp - 0x79], 0
or r9, 0xffffffffffffffff
xor r8d, r8d
lea rdx, [rsp + 0x20]
lea rcx, [rbp - 0x79]
call fcn.140002260
nop
mov r8, qword [rsp + 0x30]
dec r8
or r9, 0xffffffffffffffff
lea rdx, [rbp - 0x41]
lea rcx, [rsp + 0x20]
call fcn.140016120
nop
mov rsi, qword [str.8Z_b_]
cmp byte [rsi], 0
jne 0x14003ad17
mov rdi, r13
jmp 0x14003ad29
or rdi, 0xffffffffffffffff
nop dword [rax + rax]
inc rdi
cmp byte [rsi + rdi], 0
jne 0x14003ad20
mov r14, qword [rax + 0x10]
cmp qword [rax + 0x18], 0x10
jb 0x14003ad37
mov rax, qword [rax]
mov r8, rdi
cmp r14, rdi
cmovb r8, r14
test r8, r8
jne 0x14003ad4b
mov eax, r13d
jmp 0x14003ad56
mov rdx, rsi
mov rcx, rax
call fcn.14004e1e0
cdqe
test rax, rax
jne 0x14003ad70
cmp r14, rdi
jae 0x14003ad67
or eax, 0xffffffff
jmp 0x14003ad70
mov eax, r13d
cmp r14, rdi
setne al
test eax, eax
sete al
test al, al
sete dil
cmp qword [rbp - 0x29], 0x10
jb 0x14003ad92
mov rcx, qword [rbp - 0x41]
call fcn.14004cc48
mov rsi, qword [str.8Z_b_]
test dil, dil
je 0x14003ae2e
mov r8, rsi
lea rdx, [rbp - 0x79]
lea rcx, [rbp - 0x41]
call fcn.140017ac0
mov rdi, rax
lea rax, [rbp - 0x79]
cmp rax, rdi
je 0x14003ae1e
cmp qword [rbp - 0x61], 0x10
jb 0x14003adc7
mov rcx, qword [rbp - 0x79]
call fcn.14004cc48
mov qword [rbp - 0x61], 0xf
mov qword [rbp - 0x69], r13
mov byte [rbp - 0x79], 0
cmp qword [rdi + 0x18], 0x10
jae 0x14003adf5
mov r8, qword [rdi + 0x10]
inc r8
je 0x14003adff
mov rdx, rdi
lea rcx, [rbp - 0x79]
call fcn.14004cdd0
jmp 0x14003adff
mov rax, qword [rdi]
mov qword [rbp - 0x79], rax
mov qword [rdi], r13
mov rax, qword [rdi + 0x10]
mov qword [rbp - 0x69], rax
mov rax, qword [rdi + 0x18]
mov qword [rbp - 0x61], rax
mov qword [rdi + 0x18], 0xf
mov qword [rdi + 0x10], r13
mov byte [rdi], 0
cmp qword [rbp - 0x29], 0x10
jb 0x14003ae2e
mov rcx, qword [rbp - 0x41]
call fcn.14004cc48
mov r8, r15
lea rdx, [rbp - 0x79]
lea rcx, [rbp - 0x41]
call fcn.1400017f0
mov rdi, rax
lea rax, [rbp - 0x79]
cmp rax, rdi
je 0x14003aeb1
cmp qword [rbp - 0x61], 0x10
jb 0x14003ae5a
mov rcx, qword [rbp - 0x79]
call fcn.14004cc48
mov qword [rbp - 0x61], 0xf
mov qword [rbp - 0x69], r13
mov byte [rbp - 0x79], 0
cmp qword [rdi + 0x18], 0x10
jae 0x14003ae88
mov r8, qword [rdi + 0x10]
inc r8
je 0x14003ae92
mov rdx, rdi
lea rcx, [rbp - 0x79]
call fcn.14004cdd0
jmp 0x14003ae92
mov rax, qword [rdi]
mov qword [rbp - 0x79], rax
mov qword [rdi], r13
mov rax, qword [rdi + 0x10]
mov qword [rbp - 0x69], rax
mov rax, qword [rdi + 0x18]
mov qword [rbp - 0x61], rax
mov qword [rdi + 0x18], 0xf
mov qword [rdi + 0x10], r13
mov byte [rdi], 0
cmp qword [rbp - 0x29], 0x10
jb 0x14003aec1
mov rcx, qword [rbp - 0x41]
call fcn.14004cc48
lea r8, [rbp - 0x79]
cmp qword [rbp - 0x61], 0x10
cmovae r8, qword [rbp - 0x79]
lea rdx, str.CHECK_EXE__s_n
mov ecx, 6
call fcn.140020620
mov qword [rbp - 0x29], 0xf
mov qword [rbp - 0x31], r13
mov byte [rbp - 0x41], 0
or r9, 0xffffffffffffffff
xor r8d, r8d
lea rdx, [rbp - 0x79]
lea rcx, [rbp - 0x41]
call fcn.140002260
lea rcx, [rbp - 0x41]
cmp qword [rbp - 0x29], 0x10
cmovae rcx, qword [rbp - 0x41]
call fcn.14003d5b0
mov edi, eax
and dil, 1
cmp qword [rbp - 0x29], 0x10
jb 0x14003af2d
mov rcx, qword [rbp - 0x41]
call fcn.14004cc48
test dil, dil
jne 0x14003af77
cmp qword [rbp - 0x61], 0x10
jb 0x14003af42
mov rcx, qword [rbp - 0x79]
call fcn.14004cc48
mov qword [rbp - 0x61], 0xf
mov qword [rbp - 0x69], r13
mov byte [rbp - 0x79], 0
cmp qword [rsp + 0x38], 0x10
jb 0x14003af64
mov rcx, qword [rsp + 0x20]
call fcn.14004cc48
add rbx, 0x20
cmp rbx, qword [rbp - 0x51]
jne 0x14003aba0
jmp 0x14003b000
mov qword [r12 + 0x18], 0xf
mov qword [r12 + 0x10], r13
mov byte [r12], 0
mov rcx, qword [rbp - 0x61]
cmp rcx, 0x10
jae 0x14003afaf
mov r8, qword [rbp - 0x69]
inc r8
je 0x14003afbb
lea rdx, [rbp - 0x79]
mov rcx, r12
call fcn.14004cdd0
mov rcx, qword [rbp - 0x61]
jmp 0x14003afbb
mov rax, qword [rbp - 0x79]
mov qword [r12], rax
mov qword [rbp - 0x79], r13
mov rax, qword [rbp - 0x69]
mov qword [r12 + 0x10], rax
mov qword [r12 + 0x18], rcx
mov qword [rbp - 0x61], 0xf
mov qword [rbp - 0x69], r13
mov byte [rbp - 0x79], 0
cmp qword [rsp + 0x38], 0x10
jb 0x14003afeb
mov rcx, qword [rsp + 0x20]
call fcn.14004cc48
mov qword [rsp + 0x38], 0xf
mov qword [rsp + 0x30], r13
mov byte [rsp + 0x20], 0
jmp 0x14003b026
mov qword [r12 + 0x18], 0xf
mov qword [r12 + 0x10], r13
mov byte [r12], 0
xor r8d, r8d
lea rdx, [0x140085773]
mov rcx, r12
call fcn.140002390
nop
lea rcx, [rbp - 0x59]
call fcn.140001f60
nop
cmp qword [rbp - 9], 0x10
jb 0x14003b040
mov rcx, qword [rbp - 0x21]
call fcn.14004cc48
mov byte [rbp - 0x21], 0
mov qword [rbp - 0x11], r13
mov qword [rbp - 9], 0xf
cmp qword [r15 + 0x18], 0x10
jb 0x14003b05f
mov rcx, qword [r15]
call fcn.14004cc48
mov qword [r15 + 0x18], 0xf
mov qword [r15 + 0x10], r13
mov rax, r12
mov byte [r15], 0
lea r11, [rsp + 0xf0]
mov rbx, qword [r11 + 0x30]
mov rsi, qword [r11 + 0x40]
mov rdi, qword [r11 + 0x48]
mov rsp, r11
pop r15
pop r14
pop r13
pop r12
pop rbp
ret