Function at 0x180001070
Capabilities:
Get common file path

Disassembly:
mov qword [rsp + 8], rbx
mov qword [rsp + 0x10], rbp
mov qword [rsp + 0x18], rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0x380
mov rax, qword [0x18001f018]
xor rax, rsp
mov qword [rsp + 0x370], rax
xor edx, edx
lea rcx, [rsp + 0x160]
mov r8d, 0x208
call fcn.180001640
xor r9d, r9d
lea rax, [rsp + 0x160]
xor r8d, r8d
mov qword [rsp + 0x20], rax
xor ecx, ecx
lea edx, [r9 + 0xe]
call qword [sym.imp.SHELL32.dll_SHGetFolderPathW]
cmp dword [0x180020e10], 0
mov edi, 1
jne 0x180001172
lea rdx, [0x180020db0]
mov ecx, 0x17cfa34e
call fcn.180003a40
test eax, eax
je 0x180001172
lea rdx, [0x180020dc0]
mov ecx, 0x231f196a
call fcn.180003a40
test eax, eax
je 0x180001172
lea rdx, [0x180020dd0]
mov ecx, 0x82962c8
call fcn.180003a40
test eax, eax
je 0x180001172
lea rdx, [0x180020de0]
mov ecx, 0x595014ad
call fcn.180003a40
test eax, eax
je 0x180001172
lea rdx, [0x180020df0]
mov ecx, 0x6793c34c
call fcn.180003a40
test eax, eax
je 0x180001172
lea rdx, [0x180020e00]
mov ecx, 0xa49084a
call fcn.180003a40
mov ecx, dword [0x180020e10]
test eax, eax
cmovne ecx, edi
mov dword [0x180020e10], ecx
call fcn.180003ed0
lea rcx, [0x180020c30]
call fcn.180003630
mov ecx, 0x67208a49
call fcn.1800032a0
mov rcx, rax
mov edx, 0xc57bd097
call fcn.180003410
mov ecx, 0x67208a49
mov qword [0x180020c08], rax
call fcn.1800032a0
mov rcx, rax
mov edx, 0x7d9a8f1e
call fcn.180003410
mov ecx, 0x67208a49
mov qword [0x180020c10], rax
call fcn.1800032a0
mov rcx, rax
mov edx, 0x94e76e4c
call fcn.180003410
mov ecx, 0x67208a49
mov qword [0x180020c18], rax
call fcn.1800032a0
mov rcx, rax
mov edx, 0x8ed47f2c
call fcn.180003410
mov dword [0x180020c28], edi
xor r15d, r15d
mov edi, r15d
mov qword [0x180020c20], rax
call qword [0x180020c90]
lea edx, [r15 + 8]
mov r8d, 0xff
mov rcx, rax
call qword [0x180020c98]
test rax, rax
je 0x18000122e
mov dword [rax], 0x5d
mov rdi, rax
cmp dword [rdi], 0x15e
jle 0x1800012a4
xor r9d, r9d
xor r8d, r8d
xor edx, edx
xor ecx, ecx
call qword [sym.imp.USER32.dll_MessageBoxA]
call qword [sym.imp.KERNEL32.dll_GetLastError]
xor edx, edx
xor ecx, ecx
call qword [sym.imp.KERNEL32.dll_SetCriticalSectionSpinCount]
xor ecx, ecx
call qword [sym.imp.USER32.dll_GetWindowContextHelpId]
xor edx, edx
xor ecx, ecx
call qword [sym.imp.USER32.dll_GetWindowLongPtrW]
xor ecx, ecx
call qword [sym.imp.USER32.dll_RegisterClassW]
xor ecx, ecx
call qword [sym.imp.USER32.dll_IsWindowVisible]
xor ecx, ecx
call qword [sym.imp.KERNEL32.dll_ConvertDefaultLocale]
xor r9d, r9d
mov dword [rsp + 0x28], r15d
xor r8d, r8d
mov qword [rsp + 0x20], r15
xor edx, edx
xor ecx, ecx
call qword [sym.imp.KERNEL32.dll_MultiByteToWideChar]
xor edx, edx
xor ecx, ecx
call qword [sym.imp.USER32.dll_IsDialogMessageW]
call qword [sym.imp.KERNEL32.dll_GetProcessHeap]
mov r8, rdi
xor edx, edx
mov rcx, rax
call qword [0x180020cb0]
mov edx, 0x18
lea ecx, [rdx + 0x28]
call qword [0x180020ca0]
mov edx, 0x6f
mov qword [0x180020bf0], rax
mov dword [rax], r15d
lea ecx, [rdx - 0x2f]
mov qword [rax + 8], r15
mov qword [rax + 0x10], r15
call qword [0x180020ca0]
mov rcx, rax
mov r13, rax
call fcn.180002c40
mov rsi, qword [0x180020bf0]
mov r14, r13
nop dword [rax + rax]
movzx r12d, word [r14]
cmp r12w, 0xffff
je 0x1800013cb
movsxd rdi, dword [r14 + 2]
mov edx, 0x20
add r14, 6
mov r15, r14
add r14, rdi
lea ecx, [rdx + 0x20]
call qword [0x180020ca0]
mov rdx, rdi
mov ecx, 0x40
mov rbx, rax
mov word [rax], r12w
mov dword [rax + 4], edi
call qword [0x180020ca0]
xor ecx, ecx
mov qword [rbx + 8], rax
test edi, edi
jle 0x180001364
nop dword [rax]
movzx eax, byte [rcx + r15]
mov rdx, qword [rbx + 8]
mov byte [rcx + rdx], al
inc rcx
cmp rcx, rdi
jl 0x180001350
xor r15d, r15d
mov qword [rbx + 0x10], r15
mov qword [rbx + 0x18], r15
mov eax, dword [rsi]
test eax, eax
jne 0x180001388
mov qword [rsi + 8], rbx
mov dword [rsi], 1
mov qword [rsi + 0x10], rbx
jmp 0x180001300
cmp eax, 1
jne 0x1800013ac
mov rax, qword [rsi + 8]
mov qword [rax + 0x10], rbx
mov qword [rbx + 0x10], r15
mov rax, qword [rsi + 8]
mov qword [rbx + 0x18], rax
inc dword [rsi]
mov qword [rsi + 0x10], rbx
jmp 0x180001300
mov rax, qword [rsi + 0x10]
mov qword [rax + 0x10], rbx
mov qword [rbx + 0x10], r15
mov rax, qword [rsi + 0x10]
mov qword [rbx + 0x18], rax
inc dword [rsi]
mov qword [rsi + 0x10], rbx
jmp 0x180001300
xor eax, eax
mov rdi, r13
mov ecx, 0x6f
rep stosb byte [rdi], al
mov rcx, r13
call qword [0x180020ca8]
xor edx, edx
lea rcx, [rsp + 0x50]
mov r8d, 0x104
call fcn.180001640
mov rax, qword [0x180020bf0]
mov qword [rsp + 0x38], r15
mov dword [rsp + 0x30], r15d
mov rcx, qword [rax + 8]
test rcx, rcx
je 0x18000141f
mov eax, 0x107
cmp word [rcx], ax
je 0x180001422
mov rcx, qword [rcx + 0x10]
test rcx, rcx
jne 0x180001411
mov rcx, r15
mov rbp, qword [rcx + 8]
lea r8, [rsp + 0x40]
mov ecx, 6
mov qword [rsp + 0x40], r15
lea rdx, [fcn.180001070]
call qword [0x180020c80]
test eax, eax
je 0x180001608
mov edx, 0x104
mov ecx, 0x40
call qword [0x180020ca0]
mov rsi, rax
test rax, rax
je 0x180001608
mov edx, 0x104
mov ecx, 0x40
call qword [0x180020ca0]
mov rbx, rax
test rax, rax
je 0x180001608
mov rcx, qword [rsp + 0x40]
mov r8d, 0x104
mov rdx, rax
call qword [0x180020c70]
test eax, eax
je 0x1800015ff
movzx edx, byte [rbx]
mov rcx, rbx
mov rdi, r15
test dl, dl
je 0x1800014c8
nop dword [rax + rax]
cmp dl, 0x5c
mov rax, rcx
movzx edx, byte [rcx + 1]
cmovne rax, rdi
inc rcx
mov rdi, rax
test dl, dl
jne 0x1800014b0
mov rdx, rsi
mov byte [rdi], 0
sub rdx, rbx
mov rcx, rbx
nop dword [rax]
nop dword [rax + rax]
movzx eax, byte [rcx]
mov byte [rcx + rdx], al
lea rcx, [rcx + 1]
test al, al
jne 0x1800014e0
mov rcx, rbx
mov byte [rdi], 0x5c
call qword [0x180020ca8]
mov r9, rbp
lea rdx, str._s_s
mov r8, rsi
lea rcx, [rsp + 0x50]
call fcn.180001010
mov rax, qword [0x180020bf0]
mov rcx, qword [rax + 8]
mov rax, rcx
test rcx, rcx
je 0x18000153e
mov edx, 0x406
nop dword [rax]
cmp word [rax], dx
je 0x180001541
mov rax, qword [rax + 0x10]
test rax, rax
jne 0x180001530
mov rax, r15
mov rdx, qword [rax + 8]
test rdx, rdx
je 0x180001608
test rcx, rcx
je 0x180001566
mov eax, 0x506
cmp word [rcx], ax
je 0x180001569
mov rcx, qword [rcx + 0x10]
test rcx, rcx
jne 0x180001558
mov rcx, r15
mov r8, qword [rcx + 8]
test r8, r8
je 0x180001608
lea rax, [rsp + 0x38]
lea r9, [rsp + 0x30]
mov qword [rsp + 0x20], rax
lea rcx, [rsp + 0x50]
call fcn.1800016a0
test eax, eax
je 0x180001608
xor eax, eax
mov rdi, rsi
mov ecx, 0x104
rep stosb byte [rdi], al
lea rdi, [rsp + 0x50]
mov ecx, 0x104
rep stosb byte [rdi], al
mov rcx, rsi
call qword [0x180020ca8]
mov edx, dword [rsp + 0x30]
lea r9, [rsp + 0x48]
mov rcx, qword [rsp + 0x38]
mov r8d, 0x40
mov dword [rsp + 0x48], r15d
call qword [0x180020d00]
mov r8, qword [rsp + 0x38]
xor r9d, r9d
xor edx, edx
mov qword [rsp + 0x28], r15
xor ecx, ecx
mov dword [rsp + 0x20], r15d
call qword [0x180020c50]
mov rcx, rax
mov edx, 0xffffffff
call qword [0x180020d28]
jmp 0x180001608
mov rcx, rsi
call qword [0x180020ca8]
mov rcx, qword [rsp + 0x370]
xor rcx, rsp
call fcn.180004360
lea r11, [rsp + 0x380]
mov rbx, qword [r11 + 0x30]
mov rbp, qword [r11 + 0x38]
mov rsi, qword [r11 + 0x40]
mov rsp, r11
pop r15
pop r14
pop r13
pop r12
pop rdi
ret