Function at 0x18005f950
Capabilities:
Get common file path

Disassembly:
push rbp
push rbx
push rsi
push rdi
push r12
push r14
push r15
lea rbp, [rsp - 0x6a0]
sub rsp, 0x7a0
mov qword [rsp + 0x60], 0xfffffffffffffffe
mov rax, qword [0x180201020]
xor rax, rsp
mov qword [rbp + 0x690], rax
mov rsi, r8
mov rdi, rdx
mov r15, rcx
cmp qword [rdx + 0x10], 0
je 0x18005fe1c
mov rcx, rdx
call fcn.180083210
test al, al
je 0x18005fe1c
xor r14b, r14b
xorps xmm0, xmm0
movdqu xmmword [rbp + 0x28], xmm0
movdqa xmm1, xmmword [0x1801a9390]
movdqu xmmword [rbp + 0x28], xmm1
xor r12d, r12d
mov word [rbp + 0x18], r12w
mov qword [rbp + 8], r12
mov qword [rbp + 0x10], r12
mov qword [rbp + 8], r12
mov qword [rbp + 0x10], 7
mov word [rbp - 8], r12w
mov qword [rbp - 0x10], r12
lea rax, [0x180207cc8]
mov qword [rbp - 0x10], rax
mov rcx, qword [0x180207cc8]
test rcx, rcx
je 0x18005fa03
call qword [sym.imp.KERNEL32.dll_EnterCriticalSection]
nop
mov r8, qword [0x180201e28]
test r8, r8
je 0x18005fa2b
lea rdx, [0x180201e18]
cmp qword [0x180201e30], 8
cmovae rdx, qword [0x180201e18]
jmp 0x18005faef
xor edx, edx
mov r8d, 0x20c
lea rcx, [rbp + 0x60]
call fcn.180135690
lea rdx, [rbp + 0x60]
mov ecx, 0x105
call qword [sym.imp.KERNEL32.dll_GetTempPathW]
dec eax
cmp eax, 0x103
ja 0x18005fc87
mov word [rbp + 0x26a], r12w
xor edx, edx
mov r8d, 0x412
lea rcx, [rbp + 0x270]
call fcn.180135690
mov r8d, 0x208
lea rdx, [rbp + 0x270]
lea rcx, [rbp + 0x60]
call qword [sym.imp.KERNEL32.dll_GetLongPathNameW]
lea ecx, [rax - 1]
cmp ecx, 0x207
ja 0x18005fad4
mov eax, eax
add rax, rax
cmp rax, 0x412
jae 0x18005fe45
mov word [rbp + rax + 0x270], r12w
lea rax, [rbp + 0x270]
mov r8, 0xffffffffffffffff
nop
inc r8
cmp word [rax + r8*2], 0
jne 0x18005fac0
lea rdx, [rbp + 0x270]
jmp 0x18005faef
lea rax, [rbp + 0x60]
mov r8, 0xffffffffffffffff
nop
inc r8
cmp word [rax + r8*2], 0
jne 0x18005fae0
lea rdx, [rbp + 0x60]
lea rcx, [rbp + 0x18]
call fcn.180003950
nop
mov rcx, qword [0x180207cc8]
test rcx, rcx
je 0x18005fb0b
call qword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
mov qword [rbp - 0x10], r12
mov rdx, rdi
lea rcx, [rsp + 0x20]
call fcn.180083d90
nop
mov r8, rax
lea rdx, [rbp + 0x18]
lea rcx, [rbp + 0x38]
call fcn.18007f3b0
nop
mov rdx, qword [rsp + 0x38]
cmp rdx, 8
jb 0x18005fb70
lea rdx, [rdx*2 + 2]
mov rcx, qword [rsp + 0x20]
mov rax, rcx
cmp rdx, 0x1000
jb 0x18005fb6b
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x18005fe4b
call fcn.180116bc4
movdqa xmm0, xmmword [0x1801a9390]
movdqu xmmword [rsp + 0x30], xmm0
mov word [rsp + 0x20], r12w
lea rdx, [rbp + 0x38]
lea rcx, [rsp + 0x40]
call fcn.18006aa70
mov rbx, rax
lea rax, [rbp - 8]
cmp rax, rbx
je 0x18005fbc6
lea rcx, [rbp - 8]
call fcn.1800038d0
movups xmm0, xmmword [rbx]
movups xmmword [rbp - 8], xmm0
movups xmm1, xmmword [rbx + 0x10]
movups xmmword [rbp + 8], xmm1
mov qword [rbx + 0x10], r12
mov qword [rbx + 0x18], 7
mov word [rbx], r12w
mov rdx, qword [rsp + 0x58]
cmp rdx, 8
jb 0x18005fc08
lea rdx, [rdx*2 + 2]
mov rcx, qword [rsp + 0x40]
mov rax, rcx
cmp rdx, 0x1000
jb 0x18005fc03
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x18005fe51
call fcn.180116bc4
movdqa xmm0, xmmword [0x1801a9390]
movdqu xmmword [rsp + 0x50], xmm0
mov word [rsp + 0x40], r12w
cmp qword [rbp + 8], 0
je 0x18005fc33
lea rdx, [rbp - 8]
mov rcx, rdi
call fcn.1800a2040
movzx r14d, al
mov rdx, qword [rbp + 0x50]
cmp rdx, 8
jb 0x18005fc73
lea rdx, [rdx*2 + 2]
mov rcx, qword [rbp + 0x38]
mov rax, rcx
cmp rdx, 0x1000
jb 0x18005fc6e
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x18005fe57
call fcn.180116bc4
movdqa xmm0, xmmword [0x1801a9390]
movdqu xmmword [rbp + 0x48], xmm0
mov word [rbp + 0x38], r12w
jmp 0x18005fc9d
mov rcx, qword [0x180207cc8]
test rcx, rcx
je 0x18005fc99
call qword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
mov qword [rbp - 0x10], r12
xor bl, bl
mov rdx, rsi
lea rcx, [rsp + 0x70]
call fcn.18005e820
nop
lea rdx, [rsi + 0x38]
lea rcx, [rbp - 0x58]
call fcn.18005e820
nop
mov eax, dword [rsi + 0x70]
mov dword [rbp - 0x20], eax
mov eax, dword [rsi + 0x74]
mov dword [rbp - 0x1c], eax
mov eax, dword [rsi + 0x78]
mov dword [rbp - 0x18], eax
mov eax, dword [rbp - 0x58]
cmp eax, 1
jne 0x18005fce7
lea r8, [rsp + 0x70]
mov rdx, rdi
mov rcx, r15
call fcn.180060e40
jmp 0x18005fcfc
cmp eax, 2
jne 0x18005fd3b
lea r8, [rsp + 0x70]
mov rdx, rdi
mov rcx, r15
call fcn.180061c30
movzx ebx, al
test al, al
je 0x18005fd3b
mov eax, dword [rbp - 0x18]
add eax, 0xfffffffd
cmp eax, 1
ja 0x18005fd3b
test r14b, r14b
je 0x18005fe10
mov rdx, rsi
lea rcx, [rsp + 0x70]
call fcn.18005fea0
lea r9, [rsp + 0x70]
lea r8, [rbp - 8]
mov rdx, rdi
mov rcx, r15
call fcn.18005ff40
movzx ebx, al
test r14b, r14b
je 0x18005fd49
lea rcx, [rbp - 8]
call fcn.1800a2210
lea rdx, [rsp + 0x70]
mov rcx, rsi
call fcn.18005fea0
nop
lea rcx, [rbp - 0x58]
call fcn.180058c60
nop
lea rcx, [rsp + 0x70]
call fcn.180058c60
nop
mov rdx, qword [rbp + 0x10]
cmp rdx, 8
jb 0x18005fdac
lea rdx, [rdx*2 + 2]
mov rcx, qword [rbp - 8]
mov rax, rcx
cmp rdx, 0x1000
jb 0x18005fda7
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x18005fe5d
call fcn.180116bc4
mov qword [rbp + 8], r12
mov qword [rbp + 0x10], 7
mov word [rbp - 8], r12w
mov rdx, qword [rbp + 0x30]
cmp rdx, 8
jb 0x18005fdf9
lea rdx, [rdx*2 + 2]
mov rcx, qword [rbp + 0x18]
mov rax, rcx
cmp rdx, 0x1000
jb 0x18005fdf4
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x18005fe3f
call fcn.180116bc4
movdqa xmm0, xmmword [0x1801a9390]
movdqu xmmword [rbp + 0x28], xmm0
mov word [rbp + 0x18], r12w
movzx eax, bl
jmp 0x18005fe1e
mov dword [rbp - 0x18], 6
jmp 0x18005fd49
xor al, al
mov rcx, qword [rbp + 0x690]
xor rcx, rsp
call fcn.180116780
add rsp, 0x7a0
pop r15
pop r14
pop r12
pop rdi
pop rsi
pop rbx
pop rbp
ret
call fcn.18013ed94
nop
call fcn.180117078
nop
call fcn.18013ed94
int3
call fcn.18013ed94
nop
call fcn.18013ed94
nop
call fcn.18013ed94
int3