Function at 0x14004dab7
Capabilities:
Query environment variable

Disassembly:
push rbp
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbx
sub rsp, 0x38
lea rbp, [rsp + 0x30]
mov rdi, rcx
mov eax, 0x20
call fcn.140074a70
sub rsp, rax
mov r15, rsp
mov eax, 0x400
call fcn.140074a70
sub rsp, rax
mov qword [rbp - 0x28], rsp
mov eax, 0x20
call fcn.140074a70
sub rsp, rax
mov rbx, rsp
mov eax, 0x20
call fcn.140074a70
sub rsp, rax
mov rsi, rsp
sub rsp, 0x20
mov rcx, rsi
call fcn.14004ddaa
add rsp, 0x20
mov rax, qword [rsi]
mov rsi, qword [rsi + 8]
movabs r14, 0x8000000000000000
cmp rax, r14
jne 0x14004db4e
sub rsp, 0x20
mov rcx, rsi
call fcn.14004df29
add rsp, 0x20
mov qword [rdi], r14
jmp 0x14004dd97
mov qword [rbp - 0x10], rax
mov qword [rbp - 0x18], rbx
mov qword [rbp - 0x20], rdi
movabs rax, 0x66578c1aba46600
lea rcx, [rax + 2]
xor rcx, rax
mov qword [rbp], rcx
xor edx, edx
mov qword [r15], rdx
movabs rax, 0x3f5ddd16072467a0
lea rcx, [rax + 2]
xor rcx, rax
mov qword [r15 + 8], rcx
xor eax, eax
mov qword [rbp - 8], rax
mov qword [r15 + 0x10], rdx
mov r8d, 0x200
xor r14d, r14d
movabs rcx, 0xfae13f53d2704cec
lea rax, [rcx + 0x201]
xor rax, rcx
cmp r8, rax
jae 0x14004dbc3
mov r13, qword [rbp - 0x28]
mov edi, 0x200
mov r12, r8
jmp 0x14004dc07
sub r8, r14
sub rsp, 0x20
mov rcx, r15
mov rdx, r8
call fcn.14005b0ae
add rsp, 0x20
mov rcx, qword [r15]
mov r13, qword [r15 + 8]
mov eax, 0xffffffff
cmp rcx, rax
mov r14d, 0xffffffff
mov rax, rcx
mov qword [rbp - 8], rcx
cmovb r14, rcx
mov qword [r15 + 0x10], r14
mov qword [rbp], r13
mov rdi, r14
mov r12, r14
sub rsp, 0x20
xor ecx, ecx
call qword [sym.imp.kernel32.dll_SetLastError]
mov rbx, rsi
mov rcx, rsi
mov rdx, r13
mov r8d, r12d
call qword [sym.imp.kernel32.dll_GetEnvironmentVariableW]
add rsp, 0x20
mov esi, eax
test eax, eax
jne 0x14004dc45
sub rsp, 0x20
call qword [sym.imp.kernel32.dll_GetLastError]
add rsp, 0x20
test eax, eax
jne 0x14004dcff
mov r8d, esi
cmp r12, r8
jne 0x14004dc8d
sub rsp, 0x20
call qword [sym.imp.kernel32.dll_GetLastError]
add rsp, 0x20
cmp eax, 0x7a
jne 0x14004dda8
mov rsi, rbx
movabs rax, 0x7856dc8a8fd43ef6
lea ecx, [rax + 1]
xor ecx, eax
shl r12, cl
mov eax, 0xffffffff
cmp r12, rax
cmovae r12, rax
mov r8, r12
jmp 0x14004db9c
mov rsi, rbx
jb 0x14004db9c
cmp rdi, r8
jb 0x14004dda8
sub rsp, 0x20
mov rdi, qword [rbp - 0x18]
mov rcx, rdi
mov rdx, r13
call fcn.140059e1e
add rsp, 0x20
cmp qword [rbp - 8], 0
mov rsi, qword [rbp - 0x20]
mov r14, qword [rbp - 0x10]
movabs r15, 0x8000000000000000
je 0x14004dcea
mov rcx, qword [0x1400a5b60]
sub rsp, 0x20
xor edx, edx
mov r8, qword [rbp]
call qword [sym.imp.kernel32.dll_HeapFree]
add rsp, 0x20
cmp qword [rdi], r15
je 0x14004dd64
movups xmm0, xmmword [rdi]
movups xmm1, xmmword [rdi + 0x10]
movups xmmword [rsi + 0x10], xmm1
movups xmmword [rsi], xmm0
jmp 0x14004dd78
sub rsp, 0x20
call qword [sym.imp.kernel32.dll_GetLastError]
add rsp, 0x20
shl rax, 0x20
movabs rcx, 0x45c05516870994b4
lea rdx, [rcx + 2]
xor rdx, rcx
or rdx, rax
mov rdi, qword [rbp - 0x18]
mov qword [rdi + 8], rdx
movabs r15, 0x8000000000000000
mov qword [rdi], r15
cmp qword [rbp - 8], 0
mov rsi, qword [rbp - 0x20]
mov r14, qword [rbp - 0x10]
je 0x14004dd64
mov rcx, qword [0x1400a5b60]
sub rsp, 0x20
xor edx, edx
mov r8, qword [rbp]
call qword [sym.imp.kernel32.dll_HeapFree]
add rsp, 0x20
mov qword [rsi], r15
mov rcx, qword [rdi + 8]
sub rsp, 0x20
call fcn.14004df29
add rsp, 0x20
test r14, r14
je 0x14004dd97
mov rcx, qword [0x1400a5b60]
sub rsp, 0x20
xor edx, edx
mov r8, rbx
call qword [sym.imp.kernel32.dll_HeapFree]
add rsp, 0x20
lea rsp, [rbp + 8]
pop rbx
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
pop rbp
ret
ud2