Function at 0x14004e800
Capabilities:
Query environment variable

Disassembly:
mov qword [rsp + 8], rcx
push rbx
push rdi
sub rsp, 0x108
mov r8b, 1
xor edx, edx
mov rdi, rcx
call fcn.140029e8e
mov rbx, rax
test rax, rax
jne 0x14004e831
add rsp, 0x108
pop rdi
pop rbx
ret
cmp byte [rax + 0x23], 0
jne 0x14004e83f
mov rbx, qword [rax + 0x10]
movzx r10d, byte [rdi + 1]
mov qword [rsp + 0xf0], r12
cmp r10b, 1
jbe 0x14004e88c
mov rax, qword [rdi + 8]
mov rdx, qword [rax + 0x38]
test rdx, rdx
je 0x14004e88c
mov rdx, qword [rdx]
mov r8b, reloc.OLEAUT32.dll_SafeArrayGetElement
mov rcx, rbx
call fcn.14000128c
mov r12, qword [rsp + 0xf0]
mov eax, 1
add rsp, 0x108
pop rdi
pop rbx
ret
mov qword [rsp + 0x100], rbp
mov qword [rsp + 0xe0], r14
xor r14d, r14d
mov qword [rsp + 0xd8], r15
cmp r10b, 2
jb 0x14004e9db
mov rcx, qword [rdi + 8]
mov rax, qword [rcx + 0x30]
test rax, rax
je 0x14004e9db
cmp qword [rax], r14
je 0x14004e9db
mov r8, qword [rcx + 0x30]
lea rbp, [rcx + 0x20]
mov r15, qword [r8 + 8]
movzx ecx, byte [r15 + 0x23]
test cl, cl
jne 0x14004e8f1
mov rax, qword [r15 + 0x10]
movzx edx, byte [rax + 0x23]
jmp 0x14004e8f4
movzx edx, cl
cmp dl, 3
jne 0x14004e938
movzx eax, byte [rbx + 0x23]
cmp al, 2
jne 0x14004e917
mov r12d, 1
mov eax, r12d
jmp 0x14004ef35
test al, al
jne 0x14004e923
mov rbx, qword [rbx + 0x10]
xor r8d, r8d
xor edx, edx
mov rcx, rbx
call fcn.14009abfb
mov r12d, eax
jmp 0x14004ef35
test cl, cl
jne 0x14004e94e
mov rax, qword [r15 + 0x10]
movzx r9d, byte [rax + 0x21]
jmp 0x14004e953
movzx r9d, byte [r15 + 0x21]
test r9b, 1
je 0x14004e96d
mov rdx, r15
mov rcx, rbx
call fcn.14009b036
jmp 0x14004ef35
cmp qword [r8 + 0x18], r14
jne 0x14004e9de
movzx eax, word [rbp + 2]
cmp word [r8 + 0x12], ax
jne 0x14004e9de
cmp dl, 1
jne 0x14004e9d1
mov rax, qword [0x140185a58]
cmp byte [rax + 0x134], r14b
je 0x14004e9c1
test cl, cl
jne 0x14004e9b4
mov rax, qword [r15 + 0x10]
jmp 0x14004e9b7
mov rax, r15
test byte [rax + 0x21], 8
je 0x14004e9d1
mov rdx, r15
mov rcx, rbx
call fcn.14009a90d
jmp 0x14004ef35
mov qword [rsp + 0x38], r15
jmp 0x14004e9e6
mov rbp, r14
mov qword [rsp + 0x38], r14
mov r15, r14
xor r9b, r9b
mov qword [rsp + 0xf8], rsi
xor r8b, r8b
mov byte [rsp + 0x130], r9b
mov byte [rsp + 0x128], r8b
mov r12d, 1
test rbp, rbp
je 0x14004eafe
movzx eax, byte [rbx + 0x23]
test al, al
jne 0x14004ea27
mov rax, qword [rbx + 0x10]
movzx eax, byte [rax + 0x23]
cmp al, 2
je 0x14004eafe
mov rcx, qword [rbp + 0x10]
mov rdx, qword [rcx]
test rdx, rdx
je 0x14004eafe
nop
mov rax, qword [rcx + 8]
test r8b, r8b
je 0x14004eaaf
cmp byte [rax + 0x23], r14b
jne 0x14004ea5b
mov rax, qword [rax + 0x10]
cmp rax, rbx
jne 0x14004eae8
xor r8b, r8b
mov byte [rsp + 0x128], r8b
test r9b, r9b
je 0x14004eafe
test r8b, r8b
jne 0x14004eafe
xor r9d, r9d
or r8, 0xffffffffffffffff
xor edx, edx
mov rcx, rdi
call fcn.140075449
cmp eax, r12d
jne 0x14004ed7f
mov edx, r12d
mov rcx, rdi
call fcn.140029b01
lea rsi, [rax + 1]
jmp 0x14004ed06
cmp byte [rax + 0x23], r14b
jne 0x14004eabd
mov rax, qword [rax + 0x10]
cmp rax, rbx
jne 0x14004eae8
movzx r9d, r12b
mov byte [rsp + 0x130], r12b
cmp rdx, qword [rbp + 8]
jne 0x14004ea81
movzx r8d, r12b
mov byte [rsp + 0x128], r12b
mov rdx, qword [rcx + 0x18]
add rcx, 0x18
test rdx, rdx
jne 0x14004ea40
jmp 0x14004ea6f
cmp r10b, 2
jb 0x14004ef12
mov qword [rsp + 0xe8], r13
test r15, r15
je 0x14004ebfe
movzx ecx, byte [r15 + 0x23]
test ecx, ecx
je 0x14004ebe7
sub ecx, r12d
je 0x14004eb77
sub ecx, r12d
je 0x14004eb57
cmp ecx, r12d
je 0x14004ebf5
mov rdx, qword [r15 + 0x28]
xor ecx, ecx
call qword [r15 + reloc.OLEAUT32.dll_SafeArrayGetElement]
mov r14, rax
lea rsi, [rax + 1]
jmp 0x14004ecfe
xor edx, edx
call fcn.1400050db
mov r13d, 0xffffffff
cmp rax, r13
cmove rax, r14
mov r14, rax
lea rsi, [rax + 1]
jmp 0x14004ecfe
mov rcx, r15
call fcn.14000134c
cmp dword [0x14018ac4c], r14d
jne 0x14004ebd7
cmp qword [r15 + 0x10], r14
jne 0x14004ebd7
mov rcx, qword [r15 + 0x28]
lea rdx, [rsp + 0x138]
xor r8d, r8d
call qword [sym.imp.KERNEL32.dll_GetEnvironmentVariableW]
test eax, eax
je 0x14004ebc7
mov qword [0x140190930], r14
lea r14d, [rax - 1]
lea rsi, [r14 + 1]
jmp 0x14004ecfe
mov qword [0x140190930], r15
lea rsi, [r14 + 1]
jmp 0x14004ecfe
mov r14, qword [r15 + 0x10]
shr r14, 1
lea rsi, [r14 + 1]
jmp 0x14004ecfe
mov rcx, qword [r15 + 0x10]
xor edx, edx
call fcn.14009b859
mov r14, rax
lea rsi, [r14 + 1]
jmp 0x14004ecfe
mov rax, qword [rdi + 8]
movzx esi, word [rax + 0x22]
inc esi
test rbp, rbp
je 0x14004ecfe
mov rbp, qword [rbp + 0x10]
cmp qword [rbp], r14
je 0x14004ecfe
mov r13d, 0xffffffff
nop
mov rdi, qword [rbp + 8]
movzx eax, word [rbp + 0x12]
sub rsi, rax
movzx ecx, byte [rdi + 0x23]
test ecx, ecx
je 0x14004ece2
sub ecx, r12d
je 0x14004ec7a
sub ecx, r12d
je 0x14004ec67
cmp ecx, r12d
je 0x14004eccb
mov rdx, qword [rdi + 0x28]
xor ecx, ecx
call qword [rdi + reloc.OLEAUT32.dll_SafeArrayGetElement]
jmp 0x14004eced
xor edx, edx
call fcn.1400050db
cmp rax, r13
cmove rax, r14
jmp 0x14004eced
mov rcx, rdi
call fcn.14000134c
cmp dword [0x14018ac4c], r14d
jne 0x14004ecd3
cmp qword [rdi + 0x10], r14
jne 0x14004ecd3
mov rcx, qword [rdi + 0x28]
lea rdx, [rsp + 0x138]
xor r8d, r8d
call qword [sym.imp.KERNEL32.dll_GetEnvironmentVariableW]
test eax, eax
je 0x14004ecc4
mov qword [0x140190930], r14
dec eax
jmp 0x14004eced
mov qword [0x140190930], rdi
mov rax, r14
jmp 0x14004eced
mov rax, qword [rdi + 0x10]
shr rax, 1
jmp 0x14004eced
mov rcx, qword [rdi + 0x10]
xor edx, edx
call fcn.14009b859
add rbp, 0x18
add rsi, rax
cmp qword [rbp], r14
jne 0x14004ec27
mov r13, qword [rsp + 0xe8]
cmp rsi, 2
jb 0x14004ef12
movzx edi, byte [rsp + 0x128]
test dil, dil
je 0x14004ed86
cmp byte [rbx + 0x23], 0
jne 0x14004ed34
mov rax, qword [rbx + 0x10]
jmp 0x14004ed37
mov rax, rbx
cmp byte [rax + 0x23], 2
jne 0x14004ed4c
mov eax, dword [0x14018efa8]
jmp 0x14004ed50
mov rax, qword [rax + 0x18]
mov rbp, qword [rsp + 0x120]
shr rax, 1
cmp rsi, rax
jbe 0x14004ee46
lea r9, [rsp + 0x30]
mov r8, rsi
xor edx, edx
mov rcx, rbp
call fcn.140075449
cmp eax, r12d
je 0x14004ed8e
xor eax, eax
jmp 0x14004ef2d
mov rbp, qword [rsp + 0x120]
cmp byte [rsp + 0x130], 0
je 0x14004ee46
mov rdx, qword [0x14018e198]
xor r9d, r9d
or r8, 0xffffffffffffffff
mov byte [rsp + 0x20], r12b
mov rcx, rbx
call fcn.14009b349
test eax, eax
je 0x14004ed7f
mov rax, qword [0x140185a58]
cmp byte [rax + 0x134], 0
je 0x14004ef0a
xor r8d, r8d
mov edx, r12d
mov rcx, rbx
call fcn.140001497
mov rdi, rax
cmp word [rax], 0
je 0x14004ef0a
mov rcx, rbx
call fcn.14001835c
mov rdx, rax
mov rcx, rdi
call fcn.140017c10
mov rdx, rax
mov rcx, rbx
call fcn.1400182fd
cmp byte [rbx + 0x23], 0
jne 0x14004ee1a
mov rbx, qword [rbx + 0x10]
cmp byte [rbx + 0x23], 2
jne 0x14004ef06
cmp qword [0x14018ef98], 0
je 0x14004ef06
lea rcx, [0x14018ef80]
call fcn.14000552d
mov eax, r12d
jmp 0x14004ef2d
test dil, dil
jne 0x14004ee6e
lea r8, [rsi - 1]
mov byte [rsp + 0x20], r12b
xor r9d, r9d
xor edx, edx
mov rcx, rbx
call fcn.14009b349
cmp eax, r12d
jne 0x14004ed7f
xor r8d, r8d
mov edx, r12d
mov rcx, rbx
call fcn.140001497
mov r9, r15
mov r8d, r12d
mov rdx, rax
mov rcx, rbp
mov rdi, rax
call fcn.140075fe8
mov rdx, rax
test rax, rax
je 0x14004ed7f
mov rax, qword [0x140185a58]
sub rdx, rdi
sar rdx, 1
dec rdx
cmp byte [rax + 0x134], 0
je 0x14004eec4
mov rcx, rdi
call fcn.140017c10
mov rdx, rax
mov rcx, rbx
call fcn.1400182fd
cmp byte [rbx + 0x23], 0
jne 0x14004eeda
mov rbx, qword [rbx + 0x10]
cmp byte [rbx + 0x23], 2
jne 0x14004ef06
cmp qword [0x14018ef98], 0
je 0x14004ef06
lea rcx, [0x14018ef80]
call fcn.14000552d
mov r12d, eax
jmp 0x14004ef2d
and byte [rbx + 0x21], 0x86
mov eax, r12d
jmp 0x14004ef2d
xor r9d, r9d
mov byte [rsp + 0x20], r12b
or r8, 0xffffffffffffffff
lea rdx, [0x14010d0d8]
mov rcx, rbx
call fcn.14009b349
mov rsi, qword [rsp + 0xf8]
mov rbp, qword [rsp + 0x100]
mov r14, qword [rsp + 0xe0]
mov r15, qword [rsp + 0xd8]
mov r12, qword [rsp + 0xf0]
add rsp, 0x108
pop rdi
pop rbx
ret