Function at 0x140085870
Capabilities:
Get common file path

Disassembly:
push r15
push r14
push r13
push r12
push rbp
push rdi
push rsi
push rbx
sub rsp, 0x88
xor eax, eax
lea rbp, [rcx + 0x10]
mov word [rcx + 0x10], ax
lea r14, [rcx + 0x20]
mov r12, rcx
mov qword [rcx], rbp
mov rbx, rdx
lea rsi, [rsp + 0x40]
lea r13, [rsp + 0x30]
mov qword [rcx + 8], 0
mov rcx, r14
call sym.unk_3815
xor eax, eax
mov qword [rsp + 0x30], rsi
mov rdi, qword [sym.imp.KERNEL32.dll_GetTempPathW]
mov qword [rsp + 0x38], 0
mov edx, 0x400
mov word [rsp + 0x40], ax
nop dword [rax]
xor r8d, r8d
mov rcx, r13
call sym.unk_3621
mov rdx, qword [rsp + 0x30]
mov ecx, dword [rsp + 0x38]
call rdi
mov edx, eax
cmp rdx, qword [rsp + 0x38]
ja 0x1400858d8
test eax, eax
jne 0x140085940
call sym.unk_3179
mov rdi, rax
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov dword [rbx], eax
mov qword [rbx + 8], rdi
mov rcx, qword [rsp + 0x30]
cmp rcx, rsi
je 0x140085928
mov rax, qword [rsp + 0x40]
lea rdx, [rax + rax + 2]
call sym.operator_delete_void__unsigned_long_long_
mov rax, r12
add rsp, 0x88
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
ret
xor r8d, r8d
mov rcx, r13
call sym.unk_3621
mov rax, qword [rsp + 0x30]
lea rdi, [rsp + 0x60]
mov qword [rsp + 0x50], rdi
cmp rax, rsi
je 0x140085ac5
mov qword [rsp + 0x50], rax
mov rax, qword [rsp + 0x40]
mov qword [rsp + 0x60], rax
mov rax, qword [rsp + 0x38]
xor r15d, r15d
mov qword [rsp + 0x30], rsi
mov qword [rsp + 0x38], 0
mov qword [rsp + 0x58], rax
lea rax, [rsp + 0x70]
mov rcx, rax
mov word [rsp + 0x40], r15w
mov qword [rsp + 0x28], rax
call sym.unk_3815
lea r15, [rsp + 0x50]
mov rcx, r15
call sym.unk_3829
mov rax, qword [rsp + 0x50]
mov rcx, qword [r12]
mov r8, qword [rsp + 0x58]
cmp rax, rdi
je 0x140085b00
mov rdx, qword [rsp + 0x60]
cmp rbp, rcx
je 0x140085b40
mov r9, qword [r12 + 0x10]
mov qword [r12], rax
mov qword [r12 + 8], r8
mov qword [r12 + 0x10], rdx
test rcx, rcx
je 0x140085b4e
mov qword [rsp + 0x50], rcx
mov qword [rsp + 0x60], r9
mov rax, qword [rsp + 0x70]
mov rdx, qword [r12 + 0x20]
xor r10d, r10d
mov qword [rsp + 0x58], 0
mov word [rcx], r10w
mov qword [rsp + 0x70], 0
mov qword [r12 + 0x20], rax
test rdx, rdx
je 0x140085a37
mov rcx, r14
call sym.unk_3811
mov rcx, qword [rsp + 0x50]
mov qword [rsp + 0x58], 0
xor r9d, r9d
mov word [rcx], r9w
mov rcx, r15
call sym.unk_3829
mov rdx, qword [rsp + 0x70]
test rdx, rdx
je 0x140085a63
mov rcx, qword [rsp + 0x28]
call sym.unk_3811
mov rcx, qword [rsp + 0x50]
cmp rcx, rdi
je 0x140085a7c
mov rax, qword [rsp + 0x60]
lea rdx, [rax + rax + 2]
call sym.operator_delete_void__unsigned_long_long_
mov rdx, rbx
mov rcx, r12
call sym.unk_3745
mov r8d, dword [rbx]
test r8d, r8d
jne 0x140085ad8
cmp al, 2
je 0x14008590f
mov rax, qword [r12]
xor edx, edx
mov rcx, r12
mov qword [r12 + 8], 0
mov word [rax], dx
call sym.unk_3829
call sym.unk_3180
mov dword [rbx], 0x14
mov qword [rbx + 8], rax
jmp 0x14008590f
movdqa xmm0, xmmword [rsp + 0x40]
movaps xmmword [rsp + 0x60], xmm0
jmp 0x140085972
mov qword [r12 + 8], 0
mov rax, qword [r12]
xor ecx, ecx
mov word [rax], cx
mov rcx, r12
call sym.unk_3829
jmp 0x14008590f
mov rax, rdi
test r8, r8
je 0x140085b27
cmp r8, 1
je 0x140085b60
add r8, r8
mov rdx, rdi
call sym.memcpy
mov r8, qword [rsp + 0x58]
mov rcx, qword [r12]
mov rax, qword [rsp + 0x50]
xor r11d, r11d
mov qword [r12 + 8], r8
mov word [rcx + r8*2], r11w
mov rcx, rax
jmp 0x1400859fd
mov qword [r12], rax
mov qword [r12 + 8], r8
mov qword [r12 + 0x10], rdx
mov qword [rsp + 0x50], rdi
lea rdi, [rsp + 0x60]
mov rcx, rdi
jmp 0x1400859fd
movzx edx, word [rsp + 0x60]
mov word [rcx], dx
jmp 0x140085b27