Function at 0x18001a4d0
Capabilities:
Get common file path

Disassembly:
mov dword [rsp + 0x18], r8d
mov qword [rsp + 0x10], rdx
mov qword [rsp + 8], rcx
push rdi
sub rsp, 0x3e0
mov qword [rsp + 0x370], 0xfffffffffffffffe
mov rax, qword [0x1800c43e0]
xor rax, rsp
mov qword [rsp + 0x3d8], rax
mov rax, qword [rsp + 0x3f0]
mov byte [rax], 0
mov rax, qword [rsp + 0x3f0]
mov byte [rax + 1], 0
mov rax, qword [rsp + 0x3f0]
mov qword [rax + 0x210], 0
mov rax, qword [rsp + 0x3f0]
mov qword [rax + 0x218], 0xffffffffffffffff
mov rax, qword [rsp + 0x3f0]
add rax, 0x220
mov rcx, rax
call fcn.180029070
nop
mov rax, qword [rsp + 0x3f0]
mov byte [rax + 0x248], 1
mov rax, qword [rsp + 0x3f0]
mov byte [rax + 0x249], 0
mov rax, qword [rsp + 0x3f0]
mov dword [rax + 0x24c], 0
mov rax, qword [rsp + 0x3f0]
mov byte [rax + 0x106], 0
mov rax, qword [rsp + 0x3f0]
mov byte [rax + 2], 0
cmp qword [rsp + 0x3f8], 0
jne 0x18001a5bf
xor ecx, ecx
call qword [sym.imp.KERNEL32.dll_GetModuleHandleA]
mov qword [rsp + 0x3f8], rax
movzx eax, byte [0x1800c72d2]
mov byte [rsp + 0x260], al
lea rax, [rsp + 0x261]
mov rdi, rax
xor eax, eax
mov ecx, 0x103
rep stosb byte [rdi], al
mov r8d, 0x104
lea rdx, [rsp + 0x260]
mov rcx, qword [rsp + 0x3f8]
call qword [sym.imp.KERNEL32.dll_GetModuleFileNameA]
mov edx, 0x5c
lea rcx, [rsp + 0x260]
call fcn.18001a9a0
mov qword [rsp + 0x258], rax
cmp qword [rsp + 0x258], 0
jne 0x18001a632
lea rax, [rsp + 0x260]
mov qword [rsp + 0x258], rax
mov edx, 0x2e
lea rcx, [rsp + 0x260]
call fcn.18001a9a0
mov qword [rsp + 0x250], rax
cmp qword [rsp + 0x250], 0
je 0x18001a669
mov rax, qword [rsp + 0x258]
cmp qword [rsp + 0x250], rax
jae 0x18001a680
xor edx, edx
lea rcx, [rsp + 0x260]
call fcn.18001a980
mov qword [rsp + 0x250], rax
cmp dword [rsp + 0x400], 0
je 0x18001a6bd
mov r8d, dword [rsp + 0x400]
lea rdx, [0x1800c9e58]
mov rcx, qword [rsp + 0x250]
call fcn.18005a6ac
xor edx, edx
mov rcx, qword [rsp + 0x250]
call fcn.18001a980
mov qword [rsp + 0x250], rax
lea rdx, [0x1800c9e50]
mov rcx, qword [rsp + 0x250]
call fcn.18005ae80
mov rax, qword [rsp + 0x3f0]
add rax, 0x106
lea rdx, [rsp + 0x260]
mov rcx, rax
call fcn.18005ae80
movzx eax, byte [0x1800c72d2]
mov byte [rsp + 0x140], al
lea rax, [rsp + 0x141]
mov rdi, rax
xor eax, eax
mov ecx, 0x103
rep stosb byte [rdi], al
call qword [sym.imp.USER32.dll_GetDesktopWindow]
xor r9d, r9d
mov r8d, 5
lea rdx, [rsp + 0x140]
mov rcx, rax
call qword [sym.imp.SHELL32.dll_SHGetSpecialFolderPathA]
test eax, eax
jne 0x18001a755
call qword [sym.imp.USER32.dll_GetDesktopWindow]
xor r9d, r9d
mov r8d, 5
lea rdx, [rsp + 0x140]
mov rcx, rax
call qword [sym.imp.SHELL32.dll_SHGetSpecialFolderPathA]
movsx eax, byte [rsp + 0x140]
test eax, eax
je 0x18001a942
xor r8d, r8d
lea rdx, [0x1800c9e48]
lea rcx, [rsp + 0x28]
call fcn.18001c0c0
nop
xor r8d, r8d
lea rdx, [rsp + 0x140]
lea rcx, [rsp + 0x50]
call fcn.18001c040
mov qword [rsp + 0x378], rax
mov rax, qword [rsp + 0x378]
mov qword [rsp + 0x380], rax
lea r8, [rsp + 0x28]
mov rdx, qword [rsp + 0x380]
lea rcx, [rsp + 0x78]
call fcn.180029260
mov qword [rsp + 0x388], rax
mov rax, qword [rsp + 0x388]
mov qword [rsp + 0x390], rax
mov rax, qword [rsp + 0x3f0]
add rax, 0x220
mov rdx, qword [rsp + 0x390]
mov rcx, rax
call fcn.1800290a0
nop
lea rcx, [rsp + 0x78]
call fcn.180019f40
nop
lea rcx, [rsp + 0x50]
call fcn.180019f40
nop
lea rcx, [rsp + 0x28]
call fcn.180019f40
mov rax, qword [rsp + 0x3f0]
add rax, 0x106
xor r8d, r8d
mov rdx, rax
lea rcx, [rsp + 0xa0]
call fcn.18001c040
mov qword [rsp + 0x398], rax
mov rax, qword [rsp + 0x398]
mov qword [rsp + 0x3a0], rax
lea rdx, [rsp + 0xc8]
mov rcx, qword [rsp + 0x3a0]
call fcn.18004d6f0
mov qword [rsp + 0x3a8], rax
mov rax, qword [rsp + 0x3a8]
mov qword [rsp + 0x3b0], rax
mov rax, qword [rsp + 0x3f0]
add rax, 0x220
mov r8, qword [rsp + 0x3b0]
mov rdx, rax
lea rcx, [rsp + 0xf0]
call fcn.180029260
mov qword [rsp + 0x3b8], rax
mov rax, qword [rsp + 0x3b8]
mov qword [rsp + 0x3c0], rax
lea rdx, [rsp + 0x118]
mov rcx, qword [rsp + 0x3c0]
call fcn.1800290d0
mov qword [rsp + 0x3c8], rax
mov rax, qword [rsp + 0x3c8]
mov qword [rsp + 0x3d0], rax
mov rcx, qword [rsp + 0x3d0]
call fcn.18000b330
mov rcx, qword [rsp + 0x3f0]
add rcx, 0x106
mov rdx, rax
call fcn.18005ae80
nop
lea rcx, [rsp + 0x118]
call fcn.18000b240
nop
lea rcx, [rsp + 0xf0]
call fcn.180019f40
nop
lea rcx, [rsp + 0xc8]
call fcn.180019f40
nop
lea rcx, [rsp + 0xa0]
call fcn.180019f40
mov rax, qword [rsp + 0x3f0]
add rax, 0x250
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_InitializeCriticalSection]
nop
mov rax, qword [rsp + 0x3f0]
mov rcx, qword [rsp + 0x3d8]
xor rcx, rsp
call fcn.180058210
add rsp, 0x3e0
pop rdi
ret