Function at 0x1402272f0
Capabilities:
Get common file path

Disassembly:
mov rax, rsp
push rsi
push rdi
push r12
push r14
push r15
sub rsp, 0x40
mov qword [rax - 0x30], 0xfffffffffffffffe
mov qword [rax + 8], rbx
mov qword [rax + 0x10], rbp
mov ebp, r8d
mov rdi, rdx
mov r14, rcx
xor r12d, r12d
mov dword [rsp + 0x20], r12d
mov word [rax + 0x20], r12w
call fcn.14006f434
mov rcx, rax
mov r9d, r12d
test rax, rax
setne r9b
test r9d, r9d
jne 0x140227347
mov ecx, 0x80004005
call fcn.140024c70
int3
mov rax, qword [rax]
call qword [rax + 0x18]
lea rbx, [rax + 0x18]
mov qword [rsp + 0x28], rbx
mov r15d, 1
or rsi, 0xffffffffffffffff
test rdi, rdi
je 0x1402273a4
mov rax, rsi
nop dword [rax + rax]
inc rax
cmp word [rdi + rax*2], 0
jne 0x140227370
mov r8d, eax
mov rdx, rdi
lea rcx, [rsp + 0x28]
call fcn.14003ef00
mov rbx, qword [rsp + 0x28]
mov rcx, rbx
call fcn.140226fc0
cmp eax, ebp
setb al
test al, al
je 0x140227460
xor edx, edx
xor ecx, ecx
call qword [sym.imp.KERNEL32.dll_GetTempPathW]
mov edi, eax
test eax, eax
jne 0x1402273ce
lea rdx, [rsp + 0x88]
mov rcx, r14
call fcn.14001c4e0
nop
lea rdx, [rbx - 0x18]
jmp 0x140227558
jns 0x1402273db
mov ecx, 0x80070057
call fcn.140024c70
int3
mov ecx, r15d
sub ecx, dword [rbx - 8]
mov eax, dword [rbx - 0xc]
sub eax, edi
or eax, ecx
jge 0x1402273fb
mov edx, edi
lea rcx, [rsp + 0x28]
call fcn.14003b770
mov rbx, qword [rsp + 0x28]
mov rdx, rbx
mov ecx, edi
call qword [sym.imp.KERNEL32.dll_GetTempPathW]
movsxd rdx, dword [rbx - 0xc]
mov rcx, rbx
call fcn.1401fa1a0
test eax, eax
js 0x14022754d
cmp eax, dword [rbx - 0xc]
jg 0x14022754d
mov dword [rbx - 0x10], eax
cdqe
mov word [rbx + rax*2], r12w
mov rcx, rbx
call fcn.140226fc0
cmp eax, ebp
jae 0x140227460
lea rcx, [rsp + 0x28]
call fcn.140226ee0
mov rbx, qword [rsp + 0x28]
test al, al
je 0x1402273b4
mov rcx, rbx
call fcn.140226fc0
cmp eax, ebp
jb 0x1402273b4
call fcn.14006f434
mov rdx, rax
mov ecx, r12d
test rax, rax
setne cl
test ecx, ecx
jne 0x140227480
mov ecx, 0x80004005
call fcn.140024c70
int3
mov rax, qword [rax]
mov rcx, rdx
call qword [rax + 0x18]
lea rdi, [rax + 0x18]
mov qword [rsp + 0x30], rdi
sub r15d, dword [rdi - 8]
mov eax, dword [rdi - 0xc]
sub eax, 0x104
or eax, r15d
jge 0x1402274b7
mov edx, 0x104
lea rcx, [rsp + 0x30]
call fcn.14003b770
mov rdi, qword [rsp + 0x30]
mov r9, rdi
xor r8d, r8d
lea rdx, [0x1402c97e8]
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_GetTempFileNameW]
test eax, eax
jne 0x140227502
lea rdx, [rsp + 0x88]
mov rcx, r14
call fcn.14001c4e0
nop
lea rdx, [rdi - 0x18]
lock add dword [rdx + 0x10], 0xffffffff
jg 0x1402274f7
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
nop
mov rdx, qword [rsp + 0x28]
add rdx, 0xffffffffffffffe8
jmp 0x140227558
movsxd rdx, dword [rdi - 0xc]
mov rcx, rdi
call fcn.1401fa1a0
test eax, eax
js 0x140227542
cmp eax, dword [rdi - 0xc]
jg 0x140227542
mov dword [rdi - 0x10], eax
cdqe
mov word [rdi + rax*2], r12w
lea rcx, [rdi - 0x18]
call fcn.140025c70
add rax, 0x18
mov qword [r14], rax
lock add dword [rdi - 8], 0xffffffff
jg 0x1402274f7
mov rcx, qword [rdi - 0x18]
lea rdx, [rdi - 0x18]
jmp 0x1402274f0
mov ecx, 0x80070057
call fcn.140024c70
nop
mov ecx, 0x80070057
call fcn.140024c70
nop
lock add dword [rdx + 0x10], 0xffffffff
jg 0x140227568
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
mov rax, r14
mov rbx, qword [rsp + 0x70]
mov rbp, qword [rsp + 0x78]
add rsp, 0x40
pop r15
pop r14
pop r12
pop rdi
pop rsi
ret