Function at 0x1400ab320
Capabilities:
Get common file path

Disassembly:
mov qword [rsp + 8], rcx
push rbp
push rbx
push rsi
push rdi
lea rbp, [rsp - 0x3f]
sub rsp, 0xb8
mov qword [rbp + 7], 0xfffffffffffffffe
mov rdi, rcx
xor esi, esi
mov dword [rbp - 0x59], esi
lea rax, [0x1401a1e20]
mov qword [rbp + 0x6f], rax
mov eax, dword [0x141998f1c]
cmp eax, 0xfffffffe
jle 0x1400ab360
call fcn.1400abbd0
call qword [sym.imp.KERNEL32.dll_GetCurrentProcess]
mov qword [rbp + 0x77], rsi
lea r8, [rbp + 0x77]
mov edx, 8
mov rcx, rax
call qword [sym.imp.ADVAPI32.dll_OpenProcessToken]
mov rbx, 0xffffffffffffffff
test eax, eax
je 0x1400ab441
mov dword [rbp + 0x67], esi
lea r8, [rbp + 0x67]
xor edx, edx
mov rcx, qword [rbp + 0x77]
call qword [sym.imp.USERENV.dll_GetUserProfileDirectoryW]
test eax, eax
jne 0x1400ab437
mov eax, dword [rbp + 0x67]
test eax, eax
je 0x1400ab437
mov ecx, eax
mov eax, 2
mul rcx
cmovo rax, rbx
mov rcx, rax
call fcn.140121cf4
mov rsi, rax
lea r8, [rbp + 0x67]
mov rdx, rax
mov rcx, qword [rbp + 0x77]
call qword [sym.imp.USERENV.dll_GetUserProfileDirectoryW]
test eax, eax
je 0x1400ab42f
mov r8d, ebx
mov rdx, rsi
lea rcx, [rbp - 0x51]
call fcn.1400043b0
mov rdx, qword [rbp + 0x6f]
mov qword [rbp + 0xf], rdx
mov rcx, qword [rax]
mov qword [rbp + 0x6f], rcx
mov qword [rax], rdx
mov rax, qword [rbp - 0x51]
mov ecx, dword [rax]
test ecx, ecx
je 0x1400ab41d
cmp ecx, ebx
je 0x1400ab42f
mov ecx, ebx
mov rax, qword [rbp - 0x51]
lock xadd dword [rax], ecx
cmp ecx, 1
jne 0x1400ab42f
mov edx, 2
lea r8d, [rdx + 6]
mov rcx, qword [rbp - 0x51]
call fcn.140049bf0
mov rcx, rsi
call fcn.140121cec
mov rcx, qword [rbp + 0x77]
call qword [sym.imp.KERNEL32.dll_CloseHandle]
mov rax, qword [rbp + 0x6f]
cmp dword [rax + 4], 0
je 0x1400ab45c
lea rcx, [rbp + 0x6f]
call fcn.140038da0
test al, al
jne 0x1400ab782
lea rdx, [0x1401fefc8]
lea rcx, [rbp - 0x41]
call fcn.140057f10
nop
mov rdx, rax
lea rcx, [rbp - 0x49]
call fcn.1400aacf0
mov rdx, qword [rbp + 0x6f]
mov qword [rbp + 0x17], rdx
mov rcx, qword [rax]
mov qword [rbp + 0x6f], rcx
mov qword [rax], rdx
mov rax, qword [rbp - 0x49]
mov ecx, dword [rax]
test ecx, ecx
je 0x1400ab4a9
cmp ecx, 0xffffffff
je 0x1400ab4bc
mov ecx, ebx
mov rax, qword [rbp - 0x49]
lock xadd dword [rax], ecx
cmp ecx, 1
jne 0x1400ab4bc
mov edx, 2
lea r8d, [rdx + 6]
mov rcx, qword [rbp - 0x49]
call fcn.140049bf0
nop
mov rax, qword [rbp - 0x41]
mov ecx, dword [rax]
test ecx, ecx
je 0x1400ab4da
cmp ecx, 0xffffffff
je 0x1400ab4ec
mov ecx, ebx
mov rax, qword [rbp - 0x41]
lock xadd dword [rax], ecx
cmp ecx, 1
jne 0x1400ab4ec
mov edx, 1
lea r8d, [rdx + 7]
mov rcx, qword [rbp - 0x41]
call fcn.140049bf0
mov rax, qword [rbp + 0x6f]
cmp dword [rax + 4], 0
je 0x1400ab507
lea rcx, [rbp + 0x6f]
call fcn.140038da0
test al, al
jne 0x1400ab782
lea rdx, [0x1401fefd8]
lea rcx, [rbp - 0x21]
call fcn.140057f10
nop
mov rdx, rax
lea rcx, [rbp - 0x29]
call fcn.1400aacf0
mov rsi, rax
lea rdx, [0x1401fefe8]
lea rcx, [rbp - 0x31]
call fcn.140057f10
nop
mov rdx, rax
lea rcx, [rbp - 0x39]
call fcn.1400aacf0
nop
mov rcx, qword [rax]
mov qword [rbp + 0x7f], rcx
mov eax, dword [rcx]
inc eax
cmp eax, 1
jbe 0x1400ab55e
mov eax, 1
lock xadd dword [rcx], eax
mov dword [rbp - 0x59], 2
mov rdx, rsi
lea rcx, [rbp + 0x7f]
call fcn.14003d080
mov rcx, qword [rbp + 0x6f]
mov qword [rbp - 1], rcx
mov rax, qword [rbp + 0x7f]
mov qword [rbp + 0x6f], rax
mov qword [rbp + 0x7f], rcx
mov eax, dword [rcx]
test eax, eax
je 0x1400ab59f
cmp eax, 0xffffffff
je 0x1400ab5b2
mov ecx, ebx
mov rax, qword [rbp - 1]
lock xadd dword [rax], ecx
cmp ecx, 1
jne 0x1400ab5b2
mov edx, 2
lea r8d, [rdx + 6]
mov rcx, qword [rbp + 0x7f]
call fcn.140049bf0
nop
mov rax, qword [rbp - 0x39]
mov ecx, dword [rax]
test ecx, ecx
je 0x1400ab5d0
cmp ecx, 0xffffffff
je 0x1400ab5e3
mov ecx, ebx
mov rax, qword [rbp - 0x39]
lock xadd dword [rax], ecx
cmp ecx, 1
jne 0x1400ab5e3
mov edx, 2
lea r8d, [rdx + 6]
mov rcx, qword [rbp - 0x39]
call fcn.140049bf0
nop
mov rax, qword [rbp - 0x31]
mov ecx, dword [rax]
test ecx, ecx
je 0x1400ab601
cmp ecx, 0xffffffff
je 0x1400ab614
mov ecx, ebx
mov rax, qword [rbp - 0x31]
lock xadd dword [rax], ecx
cmp ecx, 1
jne 0x1400ab614
mov edx, 1
lea r8d, [rdx + 7]
mov rcx, qword [rbp - 0x31]
call fcn.140049bf0
nop
mov rax, qword [rbp - 0x29]
mov ecx, dword [rax]
test ecx, ecx
je 0x1400ab632
cmp ecx, 0xffffffff
je 0x1400ab645
mov ecx, ebx
mov rax, qword [rbp - 0x29]
lock xadd dword [rax], ecx
cmp ecx, 1
jne 0x1400ab645
mov edx, 2
lea r8d, [rdx + 6]
mov rcx, qword [rbp - 0x29]
call fcn.140049bf0
nop
mov rax, qword [rbp - 0x21]
mov ecx, dword [rax]
test ecx, ecx
je 0x1400ab663
cmp ecx, 0xffffffff
je 0x1400ab675
mov ecx, ebx
mov rax, qword [rbp - 0x21]
lock xadd dword [rax], ecx
cmp ecx, 1
jne 0x1400ab675
mov edx, 1
lea r8d, [rdx + 7]
mov rcx, qword [rbp - 0x21]
call fcn.140049bf0
mov rax, qword [rbp + 0x6f]
cmp dword [rax + 4], 0
je 0x1400ab690
lea rcx, [rbp + 0x6f]
call fcn.140038da0
test al, al
jne 0x1400ab782
lea rdx, [0x1401feff4]
lea rcx, [rbp - 0x11]
call fcn.140057f10
nop
mov rdx, rax
lea rcx, [rbp - 0x19]
call fcn.1400aacf0
mov rdx, qword [rbp + 0x6f]
mov qword [rbp + 0x1f], rdx
mov rcx, qword [rax]
mov qword [rbp + 0x6f], rcx
mov qword [rax], rdx
mov rax, qword [rbp - 0x19]
mov ecx, dword [rax]
test ecx, ecx
je 0x1400ab6dd
cmp ecx, 0xffffffff
je 0x1400ab6f0
mov ecx, ebx
mov rax, qword [rbp - 0x19]
lock xadd dword [rax], ecx
cmp ecx, 1
jne 0x1400ab6f0
mov edx, 2
lea r8d, [rdx + 6]
mov rcx, qword [rbp - 0x19]
call fcn.140049bf0
nop
mov rax, qword [rbp - 0x11]
mov ecx, dword [rax]
test ecx, ecx
je 0x1400ab70e
cmp ecx, 0xffffffff
je 0x1400ab720
mov ecx, ebx
mov rax, qword [rbp - 0x11]
lock xadd dword [rax], ecx
cmp ecx, 1
jne 0x1400ab720
mov edx, 1
lea r8d, [rdx + 7]
mov rcx, qword [rbp - 0x11]
call fcn.140049bf0
mov rax, qword [rbp + 0x6f]
cmp dword [rax + 4], 0
je 0x1400ab737
lea rcx, [rbp + 0x6f]
call fcn.140038da0
test al, al
jne 0x1400ab782
lea rcx, [rbp - 9]
call fcn.1400ad610
mov rdx, qword [rbp + 0x6f]
mov qword [rbp + 0x27], rdx
mov rcx, qword [rax]
mov qword [rbp + 0x6f], rcx
mov qword [rax], rdx
mov rax, qword [rbp - 9]
mov ecx, dword [rax]
test ecx, ecx
je 0x1400ab770
cmp ecx, 0xffffffff
je 0x1400ab782
mov ecx, ebx
mov rax, qword [rbp - 9]
lock xadd dword [rax], ecx
cmp ecx, 1
jne 0x1400ab782
mov edx, 2
lea r8d, [rdx + 6]
mov rcx, qword [rbp - 9]
call fcn.140049bf0
lea rdx, [rbp + 0x6f]
mov rcx, rdi
call fcn.14004d290
nop
mov rax, qword [rbp + 0x6f]
mov ecx, dword [rax]
test ecx, ecx
je 0x1400ab7ab
cmp ecx, 0xffffffff
je 0x1400ab7bd
mov rax, qword [rbp + 0x6f]
lock xadd dword [rax], ebx
cmp ebx, 1
jne 0x1400ab7bd
mov edx, 2
lea r8d, [rdx + 6]
mov rcx, qword [rbp + 0x6f]
call fcn.140049bf0
mov rax, rdi
add rsp, 0xb8
pop rdi
pop rsi
pop rbx
pop rbp
ret