Function at 0x1402332b0
Capabilities:
Get common file path
Query environment variable

Disassembly:
mov rax, rsp
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0xa80
mov qword [rsp + 0x48], 0xfffffffffffffffe
mov qword [rax + 8], rbx
mov qword [rax + 0x10], rbp
mov qword [rax + 0x20], rsi
mov r13, rdx
mov rbp, rcx
lea rcx, [0x1402849c8]
call qword [sym.imp.OLEAUT32.dll_SysReAllocString]
mov rbx, rax
mov qword [rsp + 0xac0], rax
test rax, rax
je 0x1402335eb
mov rdi, 0xffffffffffffffff
mov r8, rdi
nop dword [rax]
inc r8
cmp word [rax + r8*2], 0
jne 0x140233310
mov rdx, rbx
mov rcx, r13
call fcn.1400ce5b0
nop
mov rcx, rbx
call qword [sym.imp.OLEAUT32.dll_SysStringLen]
cmp byte [rbp], 0x25
jne 0x1402335b4
inc rbp
mov edx, 0x25
mov rcx, rbp
call fcn.14024a10c
mov r12, rax
test rax, rax
je 0x1402335bf
xor esi, esi
mov ebx, esi
lea r15, [0x14033ce20]
mov rcx, qword [0x14033ce20]
test rcx, rcx
je 0x1402333c5
mov r14d, esi
mov r15, rax
sub r15, rbp
nop word [rax + rax]
mov rax, rdi
inc rax
cmp byte [rcx + rax], sil
jne 0x140233383
cmp rax, r15
jne 0x1402333a4
mov r8, r15
mov rdx, rbp
call fcn.140250b10
test eax, eax
je 0x14023344e
inc ebx
mov r14d, ebx
mov eax, ebx
add rax, rax
lea rcx, [0x14033ce20]
mov rcx, qword [rcx + rax*8]
test rcx, rcx
jne 0x140233380
lea r15, [0x14033ce20]
mov r8d, 0xa28
lea rdx, [rsp + 0x50]
mov rcx, rbp
call qword [sym.imp.KERNEL32.dll_ExpandEnvironmentStringsA]
lea rdx, [rsp + 0x50]
mov rcx, r13
call fcn.1400d7d80
mov rbp, qword [r13 + 8]
cmp qword [0x14033ce20], 0
je 0x1402335bf
mov rbx, rsi
mov rax, rsi
nop
movzx edx, word [rax + r15 + 8]
lea rax, [rsp + 0x50]
mov qword [rsp + 0x20], rax
xor r9d, r9d
xor r8d, r8d
xor ecx, ecx
call qword [sym.imp.SHELL32.dll_SHGetFolderPathW]
test eax, eax
jne 0x140233437
lea rdx, [rsp + 0x50]
mov rcx, rbp
call fcn.140252b94
test eax, eax
je 0x140233563
inc esi
mov ebx, esi
mov eax, esi
shl rax, 4
cmp qword [rax + r15], 0
je 0x1402335bf
jmp 0x140233400
add r14, r14
lea r15, [0x14033ce20]
movzx edx, word [r15 + r14*8 + 8]
lea rax, [rsp + 0x50]
mov qword [rsp + 0x20], rax
xor r9d, r9d
xor r8d, r8d
mov rcx, qword [0x14034e650]
call qword [sym.imp.SHELL32.dll_SHGetFolderPathW]
test eax, eax
jne 0x1402333c5
lea rcx, [rsp + 0x50]
mov rax, rdi
nop dword [rax + rax]
inc rax
cmp word [rcx + rax*2], si
jne 0x140233490
test eax, eax
je 0x1402333c5
dec eax
cmp word [rsp + rax*2 + 0x50], 0x5c
jne 0x1402334b0
mov word [rsp + rax*2 + 0x50], si
lea rcx, [rsp + 0x50]
call qword [sym.imp.OLEAUT32.dll_SysReAllocString]
mov rbx, rax
mov qword [rsp + 0xac0], rax
test rax, rax
je 0x1402335f6
mov r8, rdi
inc r8
cmp word [rax + r8*2], 0
jne 0x1402334d2
mov rdx, rbx
mov rcx, r13
call fcn.1400ce5b0
nop
mov rcx, rbx
call qword [sym.imp.OLEAUT32.dll_SysStringLen]
lea rax, vtable.CSABStringW.0
mov qword [rsp + 0x30], rax
mov dword [rsp + 0x40], esi
mov ecx, reloc.OLEAUT32.dll_SafeArrayGetDim
call fcn.140247068
mov qword [rsp + 0x38], rax
xor ecx, ecx
mov qword [rax], rcx
mov qword [rax + 8], rcx
mov dword [rsp + 0x44], 1
lea rdx, [r12 + 1]
lea rcx, [rsp + 0x30]
call fcn.1400d7d80
mov rbx, qword [rsp + 0x38]
mov rdx, rbx
mov rcx, r13
call fcn.1400cd280
nop
cmp dword [rsp + 0x44], 1
jne 0x1402333e6
test rbx, rbx
je 0x1402333e6
mov rcx, rbx
call fcn.140247060
jmp 0x1402333e6
add rbx, rbx
mov eax, 0xffff
cmp word [r15 + rbx*8 + 8], ax
je 0x1402335bf
lea rcx, [0x1402849c8]
call qword [sym.imp.OLEAUT32.dll_SysReAllocString]
mov rbx, rax
mov qword [rsp + 0xac0], rax
test rax, rax
je 0x1402335e0
inc rdi
cmp word [rax + rdi*2], 0
jne 0x140233590
mov r8, rdi
mov rdx, rbx
mov rcx, r13
call fcn.1400ce5b0
nop
mov rcx, rbx
call qword [sym.imp.OLEAUT32.dll_SysStringLen]
jmp 0x1402335bf
mov rdx, rbp
mov rcx, r13
call fcn.1400d7d80
lea r11, [rsp + 0xa80]
mov rbx, qword [r11 + 0x30]
mov rbp, qword [r11 + 0x38]
mov rsi, qword [r11 + 0x48]
mov rsp, r11
pop r15
pop r14
pop r13
pop r12
pop rdi
ret
mov ecx, 0x8007000e
call fcn.140004cd0
int3
mov ecx, 0x8007000e
call fcn.140004cd0
int3
mov ecx, 0x8007000e
call fcn.140004cd0
int3