Function at 0x2b368c0e0
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, 9
xor r8d, r8d
mov word [rsp + 0x36], ax
movzx edx, word [0x2b374e936]
lea rdi, [rsp + 0xc0]
movzx eax, word [0x2b374e938]
mov word [rsp + 0x30], cx
mov rcx, r15
xor edx, 9
mov dword [rsp + 0x2c], 0x4e0041
movdqa xmm0, xmmword [0x2b374e940]
xor eax, 9
mov word [rsp + 0x32], dx
mov word [rsp + 0x34], ax
mov rax, qword [rsp + 0x2c]
mov dword [rsp + 0xa0], 9
mov qword [rsp + 0xa4], rax
mov eax, dword [rsp + 0x34]
movaps 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, 0xad9f979bb49f9693
mov word [rsp + 0xac], ax
movabs rax, 0xbc8a979fae8e9fbd
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, 0xfffffffa
mov byte [rsp + 0x4e0], al
movzx eax, byte [rsp + 0x4e1]
xor eax, 0xfffffffa
mov byte [rsp + 0x4e1], al
movzx eax, byte [rsp + 0x4e2]
xor eax, 0xfffffffa
mov byte [rsp + 0x4e2], al
movzx eax, byte [rsp + 0x4e3]
xor eax, 0xfffffffa
mov byte [rsp + 0x4e3], al
movzx eax, byte [rsp + 0x4e4]
xor eax, 0xfffffffa
mov byte [rsp + 0x4e4], al
movzx eax, byte [rsp + 0x4e5]
xor eax, 0xfffffffa
mov byte [rsp + 0x4e5], al
movzx eax, byte [rsp + 0x4e6]
xor eax, 0xfffffffa
mov byte [rsp + 0x4e6], al
movzx eax, byte [rsp + 0x4e7]
xor eax, 0xfffffffa
mov byte [rsp + 0x4e7], al
movzx eax, byte [rsp + 0x4e8]
xor eax, 0xfffffffa
mov byte [rsp + 0x4e8], al
movzx eax, byte [rsp + 0x4e9]
xor eax, 0xfffffffa
mov byte [rsp + 0x4e9], al
movzx eax, byte [rsp + 0x4ea]
xor eax, 0xfffffffa
mov byte [rsp + 0x4ea], al
movzx eax, byte [rsp + 0x4eb]
xor eax, 0xfffffffa
mov byte [rsp + 0x4eb], al
movzx eax, byte [rsp + 0x4ec]
xor eax, 0xfffffffa
mov byte [rsp + 0x4ec], al
movzx eax, byte [rsp + 0x4ed]
xor eax, 0xfffffffa
mov byte [rsp + 0x4ed], al
movzx eax, byte [rsp + 0x4ee]
xor eax, 0xfffffffa
mov byte [rsp + 0x4ee], al
movzx eax, byte [rsp + 0x4ef]
xor eax, 0xfffffffa
mov byte [rsp + 0x4ef], al
mov rax, qword [0x2b374e950]
mov dword [rsp + 0x40], 0x909098d2
mov qword [rsp + 0x38], rax
movabs rax, 0xcecf9099928e9997
mov qword [rsp + 0x73], rax
mov dword [rsp + 0x7b], 0x909098d2
mov byte [rsp + 0x7f], 0
movzx eax, byte [rsp + 0x73]
mov byte [rsp + 0x44], 0
xor eax, 0xfffffffc
mov byte [rsp + 0x73], al
movzx eax, byte [rsp + 0x74]
xor eax, 0xfffffffc
mov byte [rsp + 0x74], al
movzx eax, byte [rsp + 0x75]
xor eax, 0xfffffffc
mov byte [rsp + 0x75], al
movzx eax, byte [rsp + 0x76]
xor eax, 0xfffffffc
mov byte [rsp + 0x76], al
movzx eax, byte [rsp + 0x77]
xor eax, 0xfffffffc
mov byte [rsp + 0x77], al
movzx eax, byte [rsp + 0x78]
xor eax, 0xfffffffc
mov byte [rsp + 0x78], al
movzx eax, byte [rsp + 0x79]
xor eax, 0xfffffffc
mov byte [rsp + 0x79], al
movzx eax, byte [rsp + 0x7a]
xor eax, 0xfffffffc
mov byte [rsp + 0x7a], al
movzx eax, byte [rsp + 0x7b]
xor eax, 0xfffffffc
mov byte [rsp + 0x7b], al
movzx eax, byte [rsp + 0x7c]
xor eax, 0xfffffffc
mov byte [rsp + 0x7c], al
movzx eax, byte [rsp + 0x7d]
xor eax, 0xfffffffc
mov byte [rsp + 0x7d], al
movzx eax, byte [rsp + 0x7e]
xor eax, 0xfffffffc
mov byte [rsp + 0x7e], al
call fcn.2b3656120
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.2b368b390
mov r13, rax
lea rax, [rax - 1]
cmp rax, 0xfffffffffffffffd
jbe 0x2b368c4c0
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.2b36894f0
mov edx, 0x104
mov rcx, rbp
call fcn.2b369a3b0
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.2b3687980
test al, al
je 0x2b368c49e
mov rcx, qword [rsp + 0xa0]
mov rdx, r13
lea r8, [rsp + 0x20]
mov qword [rsp + 0x20], 0
call fcn.2b3687bf0
mov r13, rax
test rax, rax
je 0x2b368c49e
mov rcx, r12
call fcn.2b3689f70
mov rcx, r12
mov r8, rsi
mov rdx, r13
xor eax, 1
movzx r9d, al
call fcn.2b368b2e0
mov r12d, eax
test al, al
je 0x2b368c49e
mov rax, qword [0x2b374e958]
mov r13, qword [rsp + 0xa8]
mov byte [rsp + 0x54], 0
mov rdx, r15
mov dword [rsp + 0x50], 0x999c988f
lea rcx, [rsp + 0x66]
mov qword [rsp + 0x48], rax
movabs rax, 0x95a99890888e98af
mov qword [rsp + 0x73], rax
mov dword [rsp + 0x7b], 0x999c988f
mov byte [rsp + 0x7f], 0
movzx eax, byte [rsp + 0x73]
xor eax, 0xfffffffd
mov byte [rsp + 0x73], al
movzx eax, byte [rsp + 0x74]
xor eax, 0xfffffffd
mov byte [rsp + 0x74], al
movzx eax, byte [rsp + 0x75]
xor eax, 0xfffffffd
mov byte [rsp + 0x75], al
movzx eax, byte [rsp + 0x76]
xor eax, 0xfffffffd
mov byte [rsp + 0x76], al
movzx eax, byte [rsp + 0x77]
xor eax, 0xfffffffd
mov byte [rsp + 0x77], al
movzx eax, byte [rsp + 0x78]
xor eax, 0xfffffffd
mov byte [rsp + 0x78], al
movzx eax, byte [rsp + 0x79]
xor eax, 0xfffffffd
mov byte [rsp + 0x79], al
movzx eax, byte [rsp + 0x7a]
xor eax, 0xfffffffd
mov byte [rsp + 0x7a], al
movzx eax, byte [rsp + 0x7b]
xor eax, 0xfffffffd
mov byte [rsp + 0x7b], al
movzx eax, byte [rsp + 0x7c]
xor eax, 0xfffffffd
mov byte [rsp + 0x7c], al
movzx eax, byte [rsp + 0x7d]
xor eax, 0xfffffffd
mov byte [rsp + 0x7d], al
movzx eax, byte [rsp + 0x7e]
xor eax, 0xfffffffd
mov byte [rsp + 0x7e], al
mov rax, qword [str.ganjah_.]
mov dword [rsp + 0x60], 0x6868602a
mov qword [rsp + 0x58], rax
movabs rax, 0x2e2f68616a6e6167
mov qword [rsp + 0x66], rax
mov dword [rsp + 0x6e], 0x6868602a
mov byte [rsp + 0x72], 0
movzx eax, byte [rsp + 0x66]
mov byte [rsp + 0x64], 0
add eax, 4
mov byte [rsp + 0x66], al
movzx eax, byte [rsp + 0x67]
add eax, 4
mov byte [rsp + 0x67], al
movzx eax, byte [rsp + 0x68]
add eax, 4
mov byte [rsp + 0x68], al
movzx eax, byte [rsp + 0x69]
add eax, 4
mov byte [rsp + 0x69], al
movzx eax, byte [rsp + 0x6a]
add eax, 4
mov byte [rsp + 0x6a], al
movzx eax, byte [rsp + 0x6b]
add eax, 4
mov byte [rsp + 0x6b], al
movzx eax, byte [rsp + 0x6c]
add eax, 4
mov byte [rsp + 0x6c], al
movzx eax, byte [rsp + 0x6d]
add eax, 4
mov byte [rsp + 0x6d], al
movzx eax, byte [rsp + 0x6e]
add eax, 4
mov byte [rsp + 0x6e], al
movzx eax, byte [rsp + 0x6f]
add eax, 4
mov byte [rsp + 0x6f], al
movzx eax, byte [rsp + 0x70]
add eax, 4
mov byte [rsp + 0x70], al
movzx eax, byte [rsp + 0x71]
add eax, 4
mov byte [rsp + 0x71], al
call fcn.2b3656120
mov rcx, r13
call rax
jmp 0x2b368c4a1