Function at 0x20798c0c0
Capabilities:
Get common file path

Disassembly:
push r15
push r14
push r13
push r12
push rbp
push rdi
push rsi
push rbx
sub rsp, 0x6f8
xor esi, esi
mov rax, rsi
mov r14, rcx
mov ecx, 0x41
mov r12, r9
mov rbx, rdx
lea rdi, [rsp + 0xc0]
lea r13, [rsp + 0x2d0]
mov qword [rsp + 0x750], r8
rep stosq qword [rdi], rax
lea rdi, [rsp + 0x2d0]
mov rdx, r13
mov ecx, 0x41
rep stosq qword [rdi], rax
mov ecx, 0x104
lea r15, [rsp + 0x73]
lea rbp, [rsp + 0x4e0]
call qword [sym.imp.KERNEL32.dll_GetTempPathW]
xor eax, eax
mov ecx, 0x16
xor r8d, r8d
mov word [rsp + 0x36], ax
movzx edx, word [0x207a437e6]
lea rdi, [rsp + 0xc0]
movzx eax, word [0x207a437e8]
mov word [rsp + 0x30], cx
mov rcx, r15
xor edx, 0x16
mov dword [rsp + 0x2c], 0x51005e
movdqu xmm0, xmmword [0x207a437f0]
xor eax, 0x16
mov word [rsp + 0x32], dx
mov word [rsp + 0x34], ax
mov rax, qword [rsp + 0x2c]
mov dword [rsp + 0xa0], 0x16
mov qword [rsp + 0xa4], rax
mov eax, dword [rsp + 0x34]
movups xmmword [rsp + 0x80], xmm0
mov dword [rsp + 0xac], eax
movzx eax, word [rsp + 0xa4]
mov edx, dword [rsp + 0xa0]
mov byte [rsp + 0x90], 0
xor eax, edx
mov word [rsp + 0xa4], ax
movzx eax, word [rsp + 0xa6]
mov edx, dword [rsp + 0xa0]
xor eax, edx
mov word [rsp + 0xa6], ax
movzx eax, word [rsp + 0xa8]
mov edx, dword [rsp + 0xa0]
xor eax, edx
mov word [rsp + 0xa8], ax
movzx eax, word [rsp + 0xaa]
mov edx, dword [rsp + 0xa0]
xor eax, edx
mov word [rsp + 0xaa], ax
movzx eax, word [rsp + 0xac]
mov edx, dword [rsp + 0xa0]
xor eax, edx
movabs rdx, 0xaa98909cb3989194
mov word [rsp + 0xac], ax
movabs rax, 0xbb8d9098a98998ba
mov word [rsp + 0xae], r8w
mov qword [rsp + 0x4e0], rax
mov qword [rsp + 0x4e8], rdx
mov rdx, rbp
mov byte [rsp + 0x4f0], 0
movzx eax, byte [rsp + 0x4e0]
xor eax, 0xfffffffd
mov byte [rsp + 0x4e0], al
movzx eax, byte [rsp + 0x4e1]
xor eax, 0xfffffffd
mov byte [rsp + 0x4e1], al
movzx eax, byte [rsp + 0x4e2]
xor eax, 0xfffffffd
mov byte [rsp + 0x4e2], al
movzx eax, byte [rsp + 0x4e3]
xor eax, 0xfffffffd
mov byte [rsp + 0x4e3], al
movzx eax, byte [rsp + 0x4e4]
xor eax, 0xfffffffd
mov byte [rsp + 0x4e4], al
movzx eax, byte [rsp + 0x4e5]
xor eax, 0xfffffffd
mov byte [rsp + 0x4e5], al
movzx eax, byte [rsp + 0x4e6]
xor eax, 0xfffffffd
mov byte [rsp + 0x4e6], al
movzx eax, byte [rsp + 0x4e7]
xor eax, 0xfffffffd
mov byte [rsp + 0x4e7], al
movzx eax, byte [rsp + 0x4e8]
xor eax, 0xfffffffd
mov byte [rsp + 0x4e8], al
movzx eax, byte [rsp + 0x4e9]
xor eax, 0xfffffffd
mov byte [rsp + 0x4e9], al
movzx eax, byte [rsp + 0x4ea]
xor eax, 0xfffffffd
mov byte [rsp + 0x4ea], al
movzx eax, byte [rsp + 0x4eb]
xor eax, 0xfffffffd
mov byte [rsp + 0x4eb], al
movzx eax, byte [rsp + 0x4ec]
xor eax, 0xfffffffd
mov byte [rsp + 0x4ec], al
movzx eax, byte [rsp + 0x4ed]
xor eax, 0xfffffffd
mov byte [rsp + 0x4ed], al
movzx eax, byte [rsp + 0x4ee]
xor eax, 0xfffffffd
mov byte [rsp + 0x4ee], al
movzx eax, byte [rsp + 0x4ef]
xor eax, 0xfffffffd
mov byte [rsp + 0x4ef], al
mov rax, qword [0x207a43800]
mov dword [rsp + 0x40], 0x97979fd5
mov qword [rsp + 0x38], rax
movabs rax, 0xc9c8979e95899e90
mov qword [rsp + 0x73], rax
mov dword [rsp + 0x7b], 0x97979fd5
mov byte [rsp + 0x7f], 0
movzx eax, byte [rsp + 0x73]
mov byte [rsp + 0x44], 0
xor eax, 0xfffffffb
mov byte [rsp + 0x73], al
movzx eax, byte [rsp + 0x74]
xor eax, 0xfffffffb
mov byte [rsp + 0x74], al
movzx eax, byte [rsp + 0x75]
xor eax, 0xfffffffb
mov byte [rsp + 0x75], al
movzx eax, byte [rsp + 0x76]
xor eax, 0xfffffffb
mov byte [rsp + 0x76], al
movzx eax, byte [rsp + 0x77]
xor eax, 0xfffffffb
mov byte [rsp + 0x77], al
movzx eax, byte [rsp + 0x78]
xor eax, 0xfffffffb
mov byte [rsp + 0x78], al
movzx eax, byte [rsp + 0x79]
xor eax, 0xfffffffb
mov byte [rsp + 0x79], al
movzx eax, byte [rsp + 0x7a]
xor eax, 0xfffffffb
mov byte [rsp + 0x7a], al
movzx eax, byte [rsp + 0x7b]
xor eax, 0xfffffffb
mov byte [rsp + 0x7b], al
movzx eax, byte [rsp + 0x7c]
xor eax, 0xfffffffb
mov byte [rsp + 0x7c], al
movzx eax, byte [rsp + 0x7d]
xor eax, 0xfffffffb
mov byte [rsp + 0x7d], al
movzx eax, byte [rsp + 0x7e]
xor eax, 0xfffffffb
mov byte [rsp + 0x7e], al
call fcn.2079560c0
mov rcx, r13
mov r9, rdi
xor r8d, r8d
lea rdx, [rsp + 0xa4]
call rax
mov r8d, dword [rsp + 0x760]
mov rdx, r12
mov rcx, rdi
call fcn.20798b390
mov r13, rax
lea rax, [rax - 1]
cmp rax, 0xfffffffffffffffd
jbe 0x20798c4a0
xor r12d, r12d
mov eax, r12d
add rsp, 0x6f8
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
ret
mov rax, rsi
mov ecx, 0x41
mov rdi, rbp
mov rdx, rbp
rep stosq qword [rdi], rax
mov rcx, qword [rsp + 0x750]
mov r8d, 0x104
call fcn.207988f60
mov edx, 0x104
mov rcx, rbp
call fcn.207999a80
mov r8, rbx
mov rdx, r14
mov qword [rsp + 0xa0], 0
mov qword [rsp + 0xa8], 0
test rax, rax
mov qword [rsp + 0xb0], 0
cmovne rsi, rbp
mov r9, rsi
lea rsi, [rsp + 0xa0]
mov rcx, rsi
call fcn.207987460
test al, al
je 0x20798c47e
mov rcx, qword [rsp + 0xa0]
mov rdx, r13
lea r8, [rsp + 0x20]
mov qword [rsp + 0x20], 0
call fcn.2079876e0
mov r13, rax
test rax, rax
je 0x20798c47e
mov rcx, r12
call fcn.207989d00
mov rcx, r12
mov r8, rsi
mov rdx, r13
xor eax, 1
movzx r9d, al
call fcn.20798b2e0
mov r12d, eax
test al, al
je 0x20798c47e
mov rax, qword [0x207a43808]
mov r13, qword [rsp + 0xa8]
mov byte [rsp + 0x54], 0
mov rdx, r15
mov dword [rsp + 0x50], 0x9d989c8b
lea rcx, [rsp + 0x66]
mov qword [rsp + 0x48], rax
movabs rax, 0x91ad9c948c8a9cab
mov qword [rsp + 0x73], rax
mov dword [rsp + 0x7b], 0x9d989c8b
mov byte [rsp + 0x7f], 0
movzx eax, byte [rsp + 0x73]
xor eax, 0xfffffff9
mov byte [rsp + 0x73], al
movzx eax, byte [rsp + 0x74]
xor eax, 0xfffffff9
mov byte [rsp + 0x74], al
movzx eax, byte [rsp + 0x75]
xor eax, 0xfffffff9
mov byte [rsp + 0x75], al
movzx eax, byte [rsp + 0x76]
xor eax, 0xfffffff9
mov byte [rsp + 0x76], al
movzx eax, byte [rsp + 0x77]
xor eax, 0xfffffff9
mov byte [rsp + 0x77], al
movzx eax, byte [rsp + 0x78]
xor eax, 0xfffffff9
mov byte [rsp + 0x78], al
movzx eax, byte [rsp + 0x79]
xor eax, 0xfffffff9
mov byte [rsp + 0x79], al
movzx eax, byte [rsp + 0x7a]
xor eax, 0xfffffff9
mov byte [rsp + 0x7a], al
movzx eax, byte [rsp + 0x7b]
xor eax, 0xfffffff9
mov byte [rsp + 0x7b], al
movzx eax, byte [rsp + 0x7c]
xor eax, 0xfffffff9
mov byte [rsp + 0x7c], al
movzx eax, byte [rsp + 0x7d]
xor eax, 0xfffffff9
mov byte [rsp + 0x7d], al
movzx eax, byte [rsp + 0x7e]
xor eax, 0xfffffff9
mov byte [rsp + 0x7e], al
mov rax, qword [str.e_lh_f__]
mov dword [rsp + 0x60], 0x66665e28
mov qword [rsp + 0x58], rax
movabs rax, 0x2c2d665f686c5f65
mov qword [rsp + 0x66], rax
mov dword [rsp + 0x6e], 0x66665e28
mov byte [rsp + 0x72], 0
movzx eax, byte [rsp + 0x66]
mov byte [rsp + 0x64], 0
add eax, 6
mov byte [rsp + 0x66], al
movzx eax, byte [rsp + 0x67]
add eax, 6
mov byte [rsp + 0x67], al
movzx eax, byte [rsp + 0x68]
add eax, 6
mov byte [rsp + 0x68], al
movzx eax, byte [rsp + 0x69]
add eax, 6
mov byte [rsp + 0x69], al
movzx eax, byte [rsp + 0x6a]
add eax, 6
mov byte [rsp + 0x6a], al
movzx eax, byte [rsp + 0x6b]
add eax, 6
mov byte [rsp + 0x6b], al
movzx eax, byte [rsp + 0x6c]
add eax, 6
mov byte [rsp + 0x6c], al
movzx eax, byte [rsp + 0x6d]
add eax, 6
mov byte [rsp + 0x6d], al
movzx eax, byte [rsp + 0x6e]
add eax, 6
mov byte [rsp + 0x6e], al
movzx eax, byte [rsp + 0x6f]
add eax, 6
mov byte [rsp + 0x6f], al
movzx eax, byte [rsp + 0x70]
add eax, 6
mov byte [rsp + 0x70], al
movzx eax, byte [rsp + 0x71]
add eax, 6
mov byte [rsp + 0x71], al
call fcn.2079560c0
mov rcx, r13
call rax
jmp 0x20798c481