Function at 0x140031490
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 [0x1400d6300]
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.140040120
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 0x14003157f
xor ecx, ecx
call qword [sym.imp.KERNEL32.dll_GetModuleHandleA]
mov qword [rsp + 0x3f8], rax
movzx eax, byte [0x1400da645]
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.140031960
mov qword [rsp + 0x258], rax
cmp qword [rsp + 0x258], 0
jne 0x1400315f2
lea rax, [rsp + 0x260]
mov qword [rsp + 0x258], rax
mov edx, 0x2e
lea rcx, [rsp + 0x260]
call fcn.140031960
mov qword [rsp + 0x250], rax
cmp qword [rsp + 0x250], 0
je 0x140031629
mov rax, qword [rsp + 0x258]
cmp qword [rsp + 0x250], rax
jae 0x140031640
xor edx, edx
lea rcx, [rsp + 0x260]
call fcn.140031940
mov qword [rsp + 0x250], rax
cmp dword [rsp + 0x400], 0
je 0x14003167d
mov r8d, dword [rsp + 0x400]
lea rdx, [0x1400db4c0]
mov rcx, qword [rsp + 0x250]
call fcn.1400728ac
xor edx, edx
mov rcx, qword [rsp + 0x250]
call fcn.140031940
mov qword [rsp + 0x250], rax
lea rdx, [0x1400db4b8]
mov rcx, qword [rsp + 0x250]
call fcn.140073200
mov rax, qword [rsp + 0x3f0]
add rax, 0x106
lea rdx, [rsp + 0x260]
mov rcx, rax
call fcn.140073200
movzx eax, byte [0x1400da645]
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 0x140031715
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 0x140031902
xor r8d, r8d
lea rdx, [0x1400db4b0]
lea rcx, [rsp + 0x28]
call fcn.140033080
nop
xor r8d, r8d
lea rdx, [rsp + 0x140]
lea rcx, [rsp + 0x50]
call fcn.140033000
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.140040310
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.140040150
nop
lea rcx, [rsp + 0x78]
call fcn.140025a40
nop
lea rcx, [rsp + 0x50]
call fcn.140025a40
nop
lea rcx, [rsp + 0x28]
call fcn.140025a40
mov rax, qword [rsp + 0x3f0]
add rax, 0x106
xor r8d, r8d
mov rdx, rax
lea rcx, [rsp + 0xa0]
call fcn.140033000
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.140065ac0
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.140040310
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.140040180
mov qword [rsp + 0x3c8], rax
mov rax, qword [rsp + 0x3c8]
mov qword [rsp + 0x3d0], rax
mov rcx, qword [rsp + 0x3d0]
call fcn.14002ff90
mov rcx, qword [rsp + 0x3f0]
add rcx, 0x106
mov rdx, rax
call fcn.140073200
nop
lea rcx, [rsp + 0x118]
call fcn.1400214d0
nop
lea rcx, [rsp + 0xf0]
call fcn.140025a40
nop
lea rcx, [rsp + 0xc8]
call fcn.140025a40
nop
lea rcx, [rsp + 0xa0]
call fcn.140025a40
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.14006fd00
add rsp, 0x3e0
pop rdi
ret