Function at 0x180189690
Capabilities:
Get common file path

Disassembly:
mov qword [rsp + 8], rcx
push rbp
push rbx
push rsi
push rdi
push r14
lea rbp, [rsp - 0x37]
sub rsp, 0xd0
mov qword [rbp + 7], 0xfffffffffffffffe
mov rdi, rcx
xor r14d, r14d
mov dword [rbp - 0x79], r14d
lea rax, sym.Qt5Core.dll_struct_QArrayData_const__const_const_QArrayData::shared_null
mov qword [rbp + 0x77], rax
mov eax, dword [0x18058b32c]
cmp eax, 0xfffffffe
jle 0x1801896d4
call fcn.18018a110
call qword [sym.imp.KERNEL32.dll_GetCurrentProcess]
mov qword [rbp - 0x71], r14
lea r8, [rbp - 0x71]
mov edx, 8
mov rcx, rax
call qword [sym.imp.ADVAPI32.dll_OpenProcessToken]
mov rbx, 0xffffffffffffffff
test eax, eax
je 0x1801897b6
mov dword [rbp + 0x6f], r14d
lea r8, [rbp + 0x6f]
xor edx, edx
mov rcx, qword [rbp - 0x71]
call qword [sym.imp.USERENV.dll_GetUserProfileDirectoryW]
test eax, eax
jne 0x1801897ac
mov eax, dword [rbp + 0x6f]
test eax, eax
je 0x1801897ac
mov ecx, eax
mov eax, 2
mul rcx
cmovo rax, rbx
mov rcx, rax
call fcn.1802e2554
mov rsi, rax
lea r8, [rbp + 0x6f]
mov rdx, rax
mov rcx, qword [rbp - 0x71]
call qword [sym.imp.USERENV.dll_GetUserProfileDirectoryW]
test eax, eax
je 0x1801897a4
mov r8d, ebx
mov rdx, rsi
lea rcx, [rbp - 0x61]
call sym.Qt5Core.dll_public:_static_class_QString___cdecl_QString::fromWCharArray_wchar_t_const____ptr64__int_
mov rdx, qword [rbp + 0x77]
mov qword [rbp + 0xf], rdx
mov rcx, qword [rax]
mov qword [rbp + 0x77], rcx
mov qword [rax], rdx
mov rax, qword [rbp - 0x61]
mov ecx, dword [rax]
test ecx, ecx
je 0x180189792
cmp ecx, ebx
je 0x1801897a4
mov ecx, ebx
mov rax, qword [rbp - 0x61]
lock xadd dword [rax], ecx
cmp ecx, 1
jne 0x1801897a4
mov edx, 2
lea r8d, [rdx + 6]
mov rcx, qword [rbp - 0x61]
call sym.Qt5Core.dll_public:_static_void___cdecl_QArrayData::deallocate_struct_QArrayData____ptr64__unsigned_long_long_unsigned___int64___unsigned_long_long_unsigned___int64__
mov rcx, rsi
call fcn.1802e1b04
mov rcx, qword [rbp - 0x71]
call qword [sym.imp.KERNEL32.dll_CloseHandle]
mov rax, qword [rbp + 0x77]
cmp dword [rax + 4], 0
je 0x1801897d1
lea rcx, [rbp + 0x77]
call sym.Qt5Core.dll_public:_static_bool___cdecl_QFile::exists_class_QString_const____ptr64_
test al, al
jne 0x180189b94
lea rdx, str.USERPROFILE
lea rcx, [rbp - 0x51]
call sym.Qt5Core.dll_class_QByteArray___cdecl_qgetenv_char_const____ptr64_
nop
mov rdx, rax
lea rcx, [rbp - 0x59]
call sym.Qt5Core.dll_public:_static_class_QString___cdecl_QString::fromLocal8Bit_class_QByteArray_const____ptr64_
mov rdx, qword [rbp + 0x77]
mov qword [rbp + 0x17], rdx
mov rcx, qword [rax]
mov qword [rbp + 0x77], rcx
mov qword [rax], rdx
mov rax, qword [rbp - 0x59]
mov ecx, dword [rax]
test ecx, ecx
je 0x18018981e
cmp ecx, 0xffffffff
je 0x180189831
mov ecx, ebx
mov rax, qword [rbp - 0x59]
lock xadd dword [rax], ecx
cmp ecx, 1
jne 0x180189831
mov edx, 2
lea r8d, [rdx + 6]
mov rcx, qword [rbp - 0x59]
call sym.Qt5Core.dll_public:_static_void___cdecl_QArrayData::deallocate_struct_QArrayData____ptr64__unsigned_long_long_unsigned___int64___unsigned_long_long_unsigned___int64__
nop
mov rax, qword [rbp - 0x51]
mov ecx, dword [rax]
test ecx, ecx
je 0x18018984f
cmp ecx, 0xffffffff
je 0x180189861
mov ecx, ebx
mov rax, qword [rbp - 0x51]
lock xadd dword [rax], ecx
cmp ecx, 1
jne 0x180189861
mov edx, 1
lea r8d, [rdx + 7]
mov rcx, qword [rbp - 0x51]
call sym.Qt5Core.dll_public:_static_void___cdecl_QArrayData::deallocate_struct_QArrayData____ptr64__unsigned_long_long_unsigned___int64___unsigned_long_long_unsigned___int64__
mov rax, qword [rbp + 0x77]
cmp dword [rax + 4], 0
je 0x18018987c
lea rcx, [rbp + 0x77]
call sym.Qt5Core.dll_public:_static_bool___cdecl_QFile::exists_class_QString_const____ptr64_
test al, al
jne 0x180189b94
lea rdx, str.HOMEPATH
lea rcx, [rbp - 0x31]
call sym.Qt5Core.dll_class_QByteArray___cdecl_qgetenv_char_const____ptr64_
nop
mov rdx, rax
lea rcx, [rbp - 0x39]
call sym.Qt5Core.dll_public:_static_class_QString___cdecl_QString::fromLocal8Bit_class_QByteArray_const____ptr64_
mov rsi, rax
lea rdx, str.HOMEDRIVE
lea rcx, [rbp - 0x41]
call sym.Qt5Core.dll_class_QByteArray___cdecl_qgetenv_char_const____ptr64_
nop
mov rdx, rax
lea rcx, [rbp - 0x49]
call sym.Qt5Core.dll_public:_static_class_QString___cdecl_QString::fromLocal8Bit_class_QByteArray_const____ptr64_
nop
mov rcx, qword [rax]
mov qword [rbp - 0x69], rcx
mov eax, dword [rcx]
inc eax
cmp eax, 1
jbe 0x1801898d3
mov eax, 1
lock xadd dword [rcx], eax
mov dword [rbp - 0x79], 2
mov rdx, rsi
lea rcx, [rbp - 0x69]
call sym.Qt5Core.dll_public:_class_QString____ptr64___cdecl_QString::append_class_QString_const____ptr64____ptr64
mov rcx, qword [rbp + 0x77]
mov qword [rbp - 0x11], rcx
mov rax, qword [rbp - 0x69]
mov qword [rbp + 0x77], rax
mov qword [rbp - 0x69], rcx
mov dword [rbp - 0x79], r14d
mov eax, dword [rcx]
test eax, eax
je 0x180189918
cmp eax, 0xffffffff
je 0x18018992b
mov ecx, ebx
mov rax, qword [rbp - 0x11]
lock xadd dword [rax], ecx
cmp ecx, 1
jne 0x18018992b
mov edx, 2
lea r8d, [rdx + 6]
mov rcx, qword [rbp - 0x69]
call sym.Qt5Core.dll_public:_static_void___cdecl_QArrayData::deallocate_struct_QArrayData____ptr64__unsigned_long_long_unsigned___int64___unsigned_long_long_unsigned___int64__
nop
mov rax, qword [rbp - 0x49]
mov ecx, dword [rax]
test ecx, ecx
je 0x180189949
cmp ecx, 0xffffffff
je 0x18018995c
mov ecx, ebx
mov rax, qword [rbp - 0x49]
lock xadd dword [rax], ecx
cmp ecx, 1
jne 0x18018995c
mov edx, 2
lea r8d, [rdx + 6]
mov rcx, qword [rbp - 0x49]
call sym.Qt5Core.dll_public:_static_void___cdecl_QArrayData::deallocate_struct_QArrayData____ptr64__unsigned_long_long_unsigned___int64___unsigned_long_long_unsigned___int64__
nop
mov rax, qword [rbp - 0x41]
mov ecx, dword [rax]
test ecx, ecx
je 0x18018997a
cmp ecx, 0xffffffff
je 0x18018998d
mov ecx, ebx
mov rax, qword [rbp - 0x41]
lock xadd dword [rax], ecx
cmp ecx, 1
jne 0x18018998d
mov edx, 1
lea r8d, [rdx + 7]
mov rcx, qword [rbp - 0x41]
call sym.Qt5Core.dll_public:_static_void___cdecl_QArrayData::deallocate_struct_QArrayData____ptr64__unsigned_long_long_unsigned___int64___unsigned_long_long_unsigned___int64__
nop
mov rax, qword [rbp - 0x39]
mov ecx, dword [rax]
test ecx, ecx
je 0x1801899ab
cmp ecx, 0xffffffff
je 0x1801899be
mov ecx, ebx
mov rax, qword [rbp - 0x39]
lock xadd dword [rax], ecx
cmp ecx, 1
jne 0x1801899be
mov edx, 2
lea r8d, [rdx + 6]
mov rcx, qword [rbp - 0x39]
call sym.Qt5Core.dll_public:_static_void___cdecl_QArrayData::deallocate_struct_QArrayData____ptr64__unsigned_long_long_unsigned___int64___unsigned_long_long_unsigned___int64__
nop
mov rax, qword [rbp - 0x31]
mov ecx, dword [rax]
test ecx, ecx
je 0x1801899dc
cmp ecx, 0xffffffff
je 0x1801899ee
mov ecx, ebx
mov rax, qword [rbp - 0x31]
lock xadd dword [rax], ecx
cmp ecx, 1
jne 0x1801899ee
mov edx, 1
lea r8d, [rdx + 7]
mov rcx, qword [rbp - 0x31]
call sym.Qt5Core.dll_public:_static_void___cdecl_QArrayData::deallocate_struct_QArrayData____ptr64__unsigned_long_long_unsigned___int64___unsigned_long_long_unsigned___int64__
mov rax, qword [rbp + 0x77]
cmp dword [rax + 4], 0
je 0x180189a09
lea rcx, [rbp + 0x77]
call sym.Qt5Core.dll_public:_static_bool___cdecl_QFile::exists_class_QString_const____ptr64_
test al, al
jne 0x180189b94
lea rdx, str.HOME
lea rcx, [rbp - 0x21]
call sym.Qt5Core.dll_class_QByteArray___cdecl_qgetenv_char_const____ptr64_
nop
mov rdx, rax
lea rcx, [rbp - 0x29]
call sym.Qt5Core.dll_public:_static_class_QString___cdecl_QString::fromLocal8Bit_class_QByteArray_const____ptr64_
mov rdx, qword [rbp + 0x77]
mov qword [rbp + 0x1f], rdx
mov rcx, qword [rax]
mov qword [rbp + 0x77], rcx
mov qword [rax], rdx
mov rax, qword [rbp - 0x29]
mov ecx, dword [rax]
test ecx, ecx
je 0x180189a56
cmp ecx, 0xffffffff
je 0x180189a69
mov ecx, ebx
mov rax, qword [rbp - 0x29]
lock xadd dword [rax], ecx
cmp ecx, 1
jne 0x180189a69
mov edx, 2
lea r8d, [rdx + 6]
mov rcx, qword [rbp - 0x29]
call sym.Qt5Core.dll_public:_static_void___cdecl_QArrayData::deallocate_struct_QArrayData____ptr64__unsigned_long_long_unsigned___int64___unsigned_long_long_unsigned___int64__
nop
mov rax, qword [rbp - 0x21]
mov ecx, dword [rax]
test ecx, ecx
je 0x180189a87
cmp ecx, 0xffffffff
je 0x180189a99
mov ecx, ebx
mov rax, qword [rbp - 0x21]
lock xadd dword [rax], ecx
cmp ecx, 1
jne 0x180189a99
mov edx, 1
lea r8d, [rdx + 7]
mov rcx, qword [rbp - 0x21]
call sym.Qt5Core.dll_public:_static_void___cdecl_QArrayData::deallocate_struct_QArrayData____ptr64__unsigned_long_long_unsigned___int64___unsigned_long_long_unsigned___int64__
mov rax, qword [rbp + 0x77]
cmp dword [rax + 4], 0
je 0x180189ab4
lea rcx, [rbp + 0x77]
call sym.Qt5Core.dll_public:_static_bool___cdecl_QFile::exists_class_QString_const____ptr64_
test al, al
jne 0x180189b94
lea rdx, str.SystemDrive
lea rcx, [rbp - 0x19]
call sym.Qt5Core.dll_class_QByteArray___cdecl_qgetenv_char_const____ptr64_
nop
mov rdx, rax
lea rcx, [rbp + 0x7f]
call sym.Qt5Core.dll_public:_static_class_QString___cdecl_QString::fromLatin1_class_QByteArray_const____ptr64_
mov rsi, rax
mov dword [rbp - 0x79], 4
mov rcx, qword [rbp - 0x19]
mov edx, dword [rcx]
test edx, edx
je 0x180189af9
cmp edx, 0xffffffff
je 0x180189b0b
mov edx, ebx
mov rcx, qword [rbp - 0x19]
lock xadd dword [rcx], edx
cmp edx, 1
jne 0x180189b0b
mov edx, 1
lea r8d, [rdx + 7]
mov rcx, qword [rbp - 0x19]
call sym.Qt5Core.dll_public:_static_void___cdecl_QArrayData::deallocate_struct_QArrayData____ptr64__unsigned_long_long_unsigned___int64___unsigned_long_long_unsigned___int64__
mov rax, qword [rbp + 0x7f]
cmp dword [rax + 4], 0
jne 0x180189b3d
mov dword [rbp - 9], 2
lea rax, [0x1803e8dc4]
mov qword [rbp - 1], rax
movaps xmm0, xmmword [rbp - 9]
movdqa xmmword [rbp + 0x27], xmm0
lea rdx, [rbp + 0x27]
lea rcx, [rbp + 0x7f]
call fcn.1800bdc10
mov eax, 0x2f
mov word [rbp + 0x67], ax
movzx edx, ax
lea rcx, [rbp + 0x7f]
call sym.Qt5Core.dll_public:_class_QString____ptr64___cdecl_QString::operator_class_QChar____ptr64
mov rcx, qword [rbp + 0x77]
mov qword [rbp - 9], rcx
mov rax, qword [rsi]
mov qword [rbp + 0x77], rax
mov qword [rsi], rcx
mov rax, qword [rbp + 0x7f]
mov ecx, dword [rax]
test ecx, ecx
je 0x180189b82
cmp ecx, 0xffffffff
je 0x180189b94
mov ecx, ebx
mov rax, qword [rbp + 0x7f]
lock xadd dword [rax], ecx
cmp ecx, 1
jne 0x180189b94
mov edx, 2
lea r8d, [rdx + 6]
mov rcx, qword [rbp + 0x7f]
call sym.Qt5Core.dll_public:_static_void___cdecl_QArrayData::deallocate_struct_QArrayData____ptr64__unsigned_long_long_unsigned___int64___unsigned_long_long_unsigned___int64__
lea rdx, [rbp + 0x77]
mov rcx, rdi
call sym.Qt5Core.dll_public:_static_class_QString___cdecl_QDir::fromNativeSeparators_class_QString_const____ptr64_
nop
mov rax, qword [rbp + 0x77]
mov ecx, dword [rax]
test ecx, ecx
je 0x180189bbd
cmp ecx, 0xffffffff
je 0x180189bcf
mov rax, qword [rbp + 0x77]
lock xadd dword [rax], ebx
cmp ebx, 1
jne 0x180189bcf
mov edx, 2
lea r8d, [rdx + 6]
mov rcx, qword [rbp + 0x77]
call sym.Qt5Core.dll_public:_static_void___cdecl_QArrayData::deallocate_struct_QArrayData____ptr64__unsigned_long_long_unsigned___int64___unsigned_long_long_unsigned___int64__
mov rax, rdi
add rsp, 0xd0
pop r14
pop rdi
pop rsi
pop rbx
pop rbp
ret