Function at 0x180036db0
Capabilities:
Get common file path

Disassembly:
mov qword [rsp + 0x10], rbx
mov qword [rsp + 0x18], rsi
mov qword [rsp + 0x20], rdi
push rbp
push r12
push r13
push r14
push r15
lea rbp, [rsp - 0x380]
sub rsp, 0x480
mov rax, qword [0x180041118]
xor rax, rsp
mov qword [rbp + 0x370], rax
mov r13d, edx
mov dword [rsp + 0x40], edx
mov rbx, rcx
mov qword [rbp - 0x60], rcx
xor esi, esi
mov qword [rbp - 8], rsi
mov qword [rbp], 7
mov word [rbp - 0x18], si
lea eax, [rdx + 0x492]
mov dword [rsp + 0x48], eax
cmp edx, eax
jae 0x1800378b9
lea edx, [rsi + 0x61]
lea r15d, [rsi + 0x2e]
mov r12d, dword [rsp + 0x48]
mov r14d, 0x74
movabs r10, 0x27006e0064006c
lea r11d, [r14 - 0x31]
lea r9, [0x180000000]
movabs r8, 0x7ffffffffffffffe
cmp r13d, 0x1b6
ja 0x1800374d7
je 0x1800373c0
cmp r13d, 0xb7
ja 0x18003704b
je 0x18003797f
mov eax, r13d
sub eax, 0x40
je 0x180037029
sub eax, 0x1d
je 0x18003700c
cmp eax, 0x4b
jne 0x18003795b
mov byte [rsp + 0x30], 1
mov rdi, qword [0x180041038]
lea rbx, [0x180041028]
cmp qword [0x180041040], 8
cmovae rbx, qword [0x180041028]
cmp rdi, 8
jae 0x180036ec8
movups xmm0, xmmword [rbx]
movups xmmword [rbp + 8], xmm0
lea esi, [rax - 0x44]
mov r15, qword [rbp + 8]
jmp 0x180036f07
mov rsi, rdi
or rsi, 7
cmp rsi, r8
cmova rsi, r8
lea rdx, [rsi + 1]
lea rcx, [rbp + 8]
call fcn.18002b6d0
mov r15, rax
mov qword [rbp + 8], rax
lea r8, [rdi*2 + 2]
mov rdx, rbx
mov rcx, rax
call sub.VCRUNTIME140.dll_memcpy
movabs r8, 0x7ffffffffffffffe
mov qword [rbp + 0x20], rsi
mov qword [rbp + 0x18], rdi
lea r14, [rbp + 8]
cmp rsi, 8
cmovae r14, r15
cmp rdi, 8
jae 0x180036f2f
movups xmm0, xmmword [r14]
mov qword [rbp + 0x40], 7
jmp 0x180036f69
mov rbx, rdi
or rbx, 7
cmp rbx, r8
cmova rbx, r8
lea rdx, [rbx + 1]
lea rcx, [rbp + 0x28]
call fcn.18002b6d0
mov qword [rbp + 0x28], rax
lea r8, [rdi*2 + 2]
mov rdx, r14
mov rcx, rax
call sub.VCRUNTIME140.dll_memcpy
mov qword [rbp + 0x40], rbx
movups xmm0, xmmword [rbp + 0x28]
movups xmmword [rbp + 8], xmm0
mov qword [rbp + 0x38], rdi
mov rcx, qword [rbp]
cmp rcx, 8
jb 0x180036fb1
lea rdx, [rcx*2 + 2]
mov rcx, qword [rbp - 0x18]
mov rax, rcx
cmp rdx, 0x1000
jb 0x180036fac
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x180037978
call fcn.180038298
movups xmm0, xmmword [rbp + 8]
movups xmmword [rbp - 0x18], xmm0
movups xmm0, xmmword [rbp + 0x38]
movups xmmword [rbp - 8], xmm0
cmp rsi, 8
jb 0x180036ffc
lea rdx, [rsi*2 + 2]
mov rax, r15
cmp rdx, 0x1000
jb 0x180036ff4
add rdx, 0x27
mov r15, qword [r15 - 8]
sub rax, r15
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x1800379a9
mov rcx, r15
call fcn.180038298
mov byte [rsp + 0x31], 1
xor esi, esi
lea r15d, [rsi + 0x2e]
jmp 0x180037956
mov rax, qword [rbx]
mov qword [rsp + 0x68], rax
mov r8d, 0x79
mov rdx, rbx
xor ecx, ecx
call fcn.180036c90
jmp 0x180037956
mov rax, qword [0x180041228]
test rax, rax
je 0x18003795b
xor edx, edx
mov r8d, 0x8000
mov rcx, qword [rbx]
call rax
jmp 0x180037956
mov eax, r13d
sub eax, 0x102
je 0x1800373b7
cmp eax, 0x5a
jne 0x18003795b
mov rdx, rsi
mov qword [rbp + 8], rdx
cmp qword [0x180041058], 0
jbe 0x1800373ac
nop word [rax + rax]
mov r13d, 8
mov dword [rsp + 0x34], r13d
nop dword [rax + rax]
cmp r13d, 8
ja case.default.0x1800370a8
mov eax, r13d
mov ecx, dword [r9 + rax*4 + 0x379f4]
add rcx, r9
jmp rcx
cmp qword [rsp + 0x50], 0
jne 0x1800370c6
mov byte [rsp + 0x32], 0
lea rcx, [rbp + 0x28]
call qword [sym.imp.SHLWAPI.dll_PathIsDirectoryW]
jmp 0x18003734e
cmp byte [rsp + 0x32], 0
je 0x18003713f
mov ebx, SHUnicodeToAnsi
mov r13d, dword [rsp + 0x58]
mov eax, ebx
sub eax, 0xd8
je 0x180037102
cmp eax, 0x26
jne 0x18003712f
cmp qword [rsp + 0x70], 0
je 0x1800370f6
mov rcx, qword [rbp - 0x80]
call sub.ADVAPI32.dll_LsaFreeMemory
mov rcx, qword [rsp + 0x50]
call sub.ADVAPI32.dll_LsaClose
jmp 0x18003712f
lea rax, [rbp - 0x80]
mov qword [rsp + 0x20], rax
lea r9, [rbp - 0x78]
lea r8, [rsp + 0x70]
mov edx, r13d
mov rcx, qword [rsp + 0x50]
call sub.ADVAPI32.dll_LsaLookupSids
mov rcx, qword [rbp - 0x78]
test rcx, rcx
je 0x18003712f
call sub.ADVAPI32.dll_LsaFreeMemory
add ebx, 0x26
cmp ebx, 0x124
jb 0x1800370d7
mov r13d, dword [rsp + 0x34]
lea rcx, [rbp + 0x28]
call qword [sym.imp.SHLWAPI.dll_PathIsDirectoryW]
jmp 0x18003734e
mov word [rbp + 0x2a], si
mov r8d, 1
lea rdx, str.onListItemClicked_QListWidgetItem_
lea rcx, [rbp + 0x28]
call qword [sym.imp.api_ms_win_crt_string_l1_1_0.dll_wcsncat]
mov r8d, 3
lea rdx, [0x18003bdc2]
lea rcx, [rbp + 0x2c]
call qword [sym.imp.api_ms_win_crt_string_l1_1_0.dll_wcsncpy]
mov word [rbp + 0x32], si
jmp 0x18003734e
mov dword [rbp - 0x48], 0x30
mov dword [rsp + 0x5c], esi
mov qword [rsp + 0x50], rsi
jmp case.default.0x1800370a8
mov word [rbp + 0x28], r11w
jmp case.default.0x1800370a8
mov dword [rsp + 0x58], 1
xorps xmm0, xmm0
movups xmmword [rbp - 0x48], xmm0
movups xmmword [rbp - 0x38], xmm0
movups xmmword [rbp - 0x28], xmm0
jmp case.default.0x1800370a8
movsd xmm0, qword [str.load_Tiles]
movsd qword [rbp + 0x3e], xmm0
movzx eax, word [0x18003be88]
mov word [rbp + 0x46], ax
mov word [rbp + 0x48], si
mov byte [rsp + 0x32], 1
xorps xmm0, xmm0
movups xmmword [rbp - 0x58], xmm0
jmp case.default.0x1800370a8
lea rax, [0x180041048]
cmp qword [0x180041060], 0x10
cmovae rax, qword [0x180041048]
movsx r12d, byte [rax + rdx]
mov rdi, qword [rbp - 8]
mov rcx, qword [rbp]
cmp rdi, rcx
jae 0x18003723e
lea rax, [rdi + 1]
mov qword [rbp - 8], rax
lea rax, [rbp - 0x18]
cmp rcx, 8
cmovae rax, qword [rbp - 0x18]
mov word [rax + rdi*2], r12w
mov word [rax + rdi*2 + 2], si
jmp case.default.0x1800370a8
mov rax, r8
sub rax, rdi
cmp rax, 1
jb 0x1800379ed
lea r15, [rdi + 1]
mov r14, qword [rbp]
mov rbx, r15
or rbx, 7
cmp rbx, r8
jbe 0x180037267
mov rbx, r8
jmp 0x180037288
mov rcx, r14
shr rcx, 1
mov rax, r8
sub rax, rcx
cmp r14, rax
jbe 0x18003727d
mov rbx, r8
jmp 0x180037288
lea rax, [r14 + rcx]
cmp rbx, rax
cmovb rbx, rax
lea rdx, [rbx + 1]
lea rcx, [rbp - 0x18]
call fcn.18002b6d0
mov rsi, rax
mov qword [rbp - 8], r15
mov qword [rbp], rbx
add rdi, rdi
mov r8, rdi
mov rcx, rax
cmp r14, 8
jb 0x180037304
mov rbx, qword [rbp - 0x18]
mov rdx, rbx
call sub.VCRUNTIME140.dll_memcpy
mov word [rsi + rdi], r12w
xor eax, eax
mov word [rsi + rdi + 2], ax
lea rdx, [r14*2 + 2]
cmp rdx, 0x1000
jb 0x1800372f4
add rdx, 0x27
mov rcx, qword [rbx - 8]
sub rbx, rcx
lea rax, [rbx - 8]
cmp rax, 0x1f
ja 0x1800379a2
mov rbx, rcx
mov rcx, rbx
call fcn.180038298
mov qword [rbp - 0x18], rsi
xor esi, esi
jmp 0x18003734e
lea rdx, [rbp - 0x18]
call sub.VCRUNTIME140.dll_memcpy
mov word [rsi + rdi], r12w
xor eax, eax
mov word [rsi + rdi + 2], ax
mov qword [rbp - 0x18], rsi
xor esi, esi
jmp 0x18003734e
mov qword [rbp + 0x32], r10
mov dword [rbp + 0x3a], 0x200074
mov word [rbp + 0x3e], si
jmp case.default.0x1800370a8
mov qword [rsp + 0x70], rsi
lea r9, [rsp + 0x50]
mov r8d, dword [rsp + 0x5c]
lea rdx, [rbp - 0x48]
lea rcx, [rbp - 0x58]
call sub.ADVAPI32.dll_LsaOpenPolicy
mov rdx, qword [rbp + 8]
movabs r8, 0x7ffffffffffffffe
lea r9, [0x180000000]
movabs r10, 0x27006e0064006c
mov r11d, 0x43
dec r13d
mov dword [rsp + 0x34], r13d
lea eax, [r13 + 0xd8]
cmp eax, 0xd7
ja 0x180037090
inc rdx
mov qword [rbp + 8], rdx
cmp rdx, qword [0x180041058]
jb 0x180037080
mov r13d, dword [rsp + 0x40]
mov r15d, 0x2e
mov r12d, 0x36
jmp 0x180037956
mov qword [rbp - 0x70], rsi
jmp 0x18003795b
mov qword [rbp - 0x68], rsi
mov rdi, qword [rbp - 8]
mov rcx, qword [rbp]
cmp rdi, rcx
jae 0x1800373f2
lea rax, [rdi + 1]
mov qword [rbp - 8], rax
lea rax, [rbp - 0x18]
cmp rcx, 8
cmovae rax, qword [rbp - 0x18]
mov dword [rax + rdi*2], 0x2e
jmp 0x18003795b
mov rax, r8
sub rax, rdi
cmp rax, 1
jb 0x1800379e7
lea r15, [rdi + 1]
mov rsi, qword [rbp]
mov rbx, r15
or rbx, 7
cmp rbx, r8
jbe 0x18003741b
mov rbx, r8
jmp 0x18003743c
mov rcx, rsi
shr rcx, 1
mov rax, r8
sub rax, rcx
cmp rsi, rax
jbe 0x180037431
mov rbx, r8
jmp 0x18003743c
lea rax, [rsi + rcx]
cmp rbx, rax
cmovb rbx, rax
lea rdx, [rbx + 1]
lea rcx, [rbp - 0x18]
call fcn.18002b6d0
mov r14, rax
mov qword [rbp - 8], r15
mov qword [rbp], rbx
add rdi, rdi
mov r8, rdi
mov rcx, rax
cmp rsi, 8
jb 0x1800374b9
mov rbx, qword [rbp - 0x18]
mov rdx, rbx
call sub.VCRUNTIME140.dll_memcpy
mov r15d, 0x2e
mov dword [r14 + rdi], r15d
lea rdx, [rsi*2 + 2]
cmp rdx, 0x1000
jb 0x1800374a6
add rdx, 0x27
mov rcx, qword [rbx - 8]
sub rbx, rcx
lea rax, [rbx - 8]
cmp rax, 0x1f
ja 0x1800379a9
mov rbx, rcx
mov rcx, rbx
call fcn.180038298
mov qword [rbp - 0x18], r14
xor esi, esi
jmp 0x180037956
lea rdx, [rbp - 0x18]
call sub.VCRUNTIME140.dll_memcpy
mov r15d, 0x2e
mov dword [r14 + rdi], r15d
xor esi, esi
mov qword [rbp - 0x18], r14
jmp 0x180037956
cmp r13d, 0x31e
ja 0x1800378a6
je 0x18003788e
mov eax, r13d
sub eax, 0x210
je 0x18003776a
sub eax, 0x5a
je 0x180037752
cmp eax, 0x5a
jne 0x18003795b
mov rdi, qword [rbp - 8]
mov rcx, qword [rbp]
cmp rdi, rcx
jae 0x180037538
lea rax, [rdi + 1]
mov qword [rbp - 8], rax
lea rax, [rbp - 0x18]
cmp rcx, 8
cmovae rax, qword [rbp - 0x18]
mov dword [rax + rdi*2], 0x61
jmp 0x180037609
mov rax, r8
sub rax, rdi
cmp rax, 1
jb 0x1800379e7
lea r15, [rdi + 1]
mov rsi, qword [rbp]
mov rbx, r15
or rbx, 7
cmp rbx, r8
jbe 0x180037561
mov rbx, r8
jmp 0x180037582
mov rcx, rsi
shr rcx, 1
mov rax, r8
sub rax, rcx
cmp rsi, rax
jbe 0x180037577
mov rbx, r8
jmp 0x180037582
lea rax, [rcx + rsi]
cmp rbx, rax
cmovb rbx, rax
lea rdx, [rbx + 1]
lea rcx, [rbp - 0x18]
call fcn.18002b6d0
mov r14, rax
mov qword [rbp - 8], r15
mov qword [rbp], rbx
add rdi, rdi
mov r8, rdi
mov rcx, rax
cmp rsi, 8
jb 0x1800375f4
mov rbx, qword [rbp - 0x18]
mov rdx, rbx
call sub.VCRUNTIME140.dll_memcpy
mov dword [r14 + rdi], 0x61
lea rdx, [rsi*2 + 2]
cmp rdx, 0x1000
jb 0x1800375ea
add rdx, 0x27
mov rcx, qword [rbx - 8]
sub rbx, rcx
lea rax, [rbx - 8]
cmp rax, 0x1f
ja 0x1800379a9
mov rbx, rcx
mov rcx, rbx
call fcn.180038298
jmp 0x180037605
lea rdx, [rbp - 0x18]
call sub.VCRUNTIME140.dll_memcpy
mov dword [r14 + rdi], 0x61
mov qword [rbp - 0x18], r14
lea rax, [rbp + 0x160]
mov qword [rsp + 0x20], rax
mov r9d, dword [rsp + 0x38]
mov r8, qword [rsp + 0x78]
mov edx, r12d
mov rcx, qword [rbp - 0x70]
call qword [sym.imp.SHELL32.dll_SHGetFolderPathW]
mov dword [rsp + 0x64], eax
mov rsi, qword [rbp - 8]
mov rdi, qword [rbp]
cmp rsi, rdi
jae 0x18003765e
lea rcx, [rsi + 1]
mov qword [rbp - 8], rcx
lea rcx, [rbp - 0x18]
cmp rdi, 8
cmovae rcx, qword [rbp - 0x18]
mov dword [rcx + rsi*2], 0x74
jmp 0x180037735
movabs rdx, 0x7ffffffffffffffe
mov rax, rdx
sub rax, rsi
cmp rax, 1
jb 0x1800379e7
lea r15, [rsi + 1]
mov rbx, r15
or rbx, 7
cmp rbx, rdx
jbe 0x18003768d
mov rbx, rdx
jmp 0x1800376ae
mov rcx, rdi
shr rcx, 1
mov rax, rdx
sub rax, rcx
cmp rdi, rax
jbe 0x1800376a3
mov rbx, rdx
jmp 0x1800376ae
lea rax, [rdi + rcx]
cmp rbx, rax
cmovb rbx, rax
lea rdx, [rbx + 1]
lea rcx, [rbp - 0x18]
call fcn.18002b6d0
mov r14, rax
mov qword [rbp - 8], r15
mov qword [rbp], rbx
add rsi, rsi
mov r8, rsi
mov rcx, rax
cmp rdi, 8
jb 0x180037720
mov rbx, qword [rbp - 0x18]
mov rdx, rbx
call sub.VCRUNTIME140.dll_memcpy
mov dword [r14 + rsi], 0x74
lea rdx, [rdi*2 + 2]
cmp rdx, 0x1000
jb 0x180037716
add rdx, 0x27
mov rcx, qword [rbx - 8]
sub rbx, rcx
lea rax, [rbx - 8]
cmp rax, 0x1f
ja 0x1800379a9
mov rbx, rcx
mov rcx, rbx
call fcn.180038298
jmp 0x180037731
lea rdx, [rbp - 0x18]
call sub.VCRUNTIME140.dll_memcpy
mov dword [r14 + rsi], 0x74
mov qword [rbp - 0x18], r14
xor esi, esi
mov ecx, esi
movzx eax, byte [rsp + 0x31]
cmp dword [rsp + 0x3c], esi
cmovne ecx, eax
mov byte [rsp + 0x31], cl
lea r15d, [rsi + 0x2e]
jmp 0x180037956
lea rdx, [rsp + 0x60]
mov rcx, qword [rbp - 0x68]
call qword [sym.imp.WINMM.dll_midiInGetID]
mov dword [rsp + 0x3c], eax
jmp 0x180037956
mov qword [rsp + 0x78], rsi
mov dword [rsp + 0x38], esi
mov dword [rsp + 0x60], esi
mov rdi, qword [rbp - 8]
mov rcx, qword [rbp]
cmp rdi, rcx
jae 0x1800377a5
lea rax, [rdi + 1]
mov qword [rbp - 8], rax
lea rax, [rbp - 0x18]
cmp rcx, 8
cmovae rax, qword [rbp - 0x18]
mov dword [rax + rdi*2], 0x64
jmp 0x18003795b
mov rax, r8
sub rax, rdi
cmp rax, 1
jb 0x1800379e7
lea r15, [rdi + 1]
mov rsi, qword [rbp]
mov rbx, r15
or rbx, 7
cmp rbx, r8
jbe 0x1800377ce
mov rbx, r8
jmp 0x1800377ef
mov rcx, rsi
shr rcx, 1
mov rax, r8
sub rax, rcx
cmp rsi, rax
jbe 0x1800377e4
mov rbx, r8
jmp 0x1800377ef
lea rax, [rsi + rcx]
cmp rbx, rax
cmovb rbx, rax
lea rdx, [rbx + 1]
lea rcx, [rbp - 0x18]
call fcn.18002b6d0
mov r14, rax
mov qword [rbp - 8], r15
mov qword [rbp], rbx
add rdi, rdi
mov r8, rdi
mov rcx, rax
cmp rsi, 8
jb 0x18003786e
mov rbx, qword [rbp - 0x18]
mov rdx, rbx
call sub.VCRUNTIME140.dll_memcpy
mov dword [r14 + rdi], 0x64
lea rdx, [rsi*2 + 2]
cmp rdx, 0x1000
jb 0x180037857
add rdx, 0x27
mov rcx, qword [rbx - 8]
sub rbx, rcx
lea rax, [rbx - 8]
cmp rax, 0x1f
ja 0x1800379a9
mov rbx, rcx
mov rcx, rbx
call fcn.180038298
mov qword [rbp - 0x18], r14
xor esi, esi
lea r15d, [rsi + 0x2e]
jmp 0x180037956
lea rdx, [rbp - 0x18]
call sub.VCRUNTIME140.dll_memcpy
mov dword [r14 + rdi], 0x64
xor esi, esi
mov qword [rbp - 0x18], r14
lea r15d, [rsi + 0x2e]
jmp 0x180037956
mov ecx, esi
movzx eax, byte [rsp + 0x30]
cmp dword [rsp + 0x64], 0
cmove ecx, eax
mov byte [rsp + 0x30], cl
jmp 0x18003795b
mov eax, r13d
sub eax, 0x378
je 0x180037907
cmp eax, 0x5a
jne 0x18003795b
mov ebx, dword [rsp + 0x44]
mov rcx, qword [rbp]
cmp rcx, 8
jb 0x1800379b5
lea rdx, [rcx*2 + 2]
mov rcx, qword [rbp - 0x18]
mov rax, rcx
cmp rdx, 0x1000
jb 0x1800379b0
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
jbe 0x1800379b0
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
nop
cmp byte [rsp + 0x30], 0
je 0x180037928
lea r9, [rbp + 0x160]
mov r8d, dword [rsp + 0x38]
mov rdx, qword [rsp + 0x78]
mov ecx, r12d
call qword [sym.imp.SHELL32.dll_SHSetFolderPathW]
cmp byte [rsp + 0x31], 0
je 0x180037943
mov r8d, 0x104
lea rdx, [rbp + 0x50]
mov ecx, dword [rsp + 0x3c]
call qword [sym.imp.WINMM.dll_midiInGetErrorTextA]
mov r8d, r14d
mov rdx, rbx
lea rcx, [rbp - 0x18]
call fcn.180033ef0
mov byte [rsp + 0x44], al
mov edx, 0x61
add r13d, 0x5a
mov dword [rsp + 0x40], r13d
cmp r13d, dword [rsp + 0x48]
jae 0x1800378b9
mov rbx, qword [rbp - 0x60]
jmp 0x180036e26
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
nop
mov rax, qword [rsp + 0x68]
mov qword [rsp + 0x68], rax
lea r8, [rsp + 0x68]
mov edx, 0xb0
xor ecx, ecx
call fcn.180032160
mov rbx, rax
jmp 0x1800378bd
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
int3
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
nop
call fcn.180038298
mov eax, ebx
mov rcx, qword [rbp + 0x370]
xor rcx, rsp
call fcn.1800387b0
lea r11, [rsp + 0x480]
mov rbx, qword [r11 + 0x38]
mov rsi, qword [r11 + 0x40]
mov rdi, qword [r11 + 0x48]
mov rsp, r11
pop r15
pop r14
pop r13
pop r12
pop rbp
ret
call fcn.18002b5f0
nop
call fcn.18002b5f0
int3