Function at 0x14004c110
Capabilities:
Get common file path

Disassembly:
mov qword [rsp + 0x18], rbx
mov qword [rsp + 0x20], rsi
push rbp
push rdi
push r12
push r14
push r15
lea rbp, [rsp - 0x370]
sub rsp, 0x470
mov rax, qword [0x1400dc7a8]
xor rax, rsp
mov qword [rbp + 0x360], rax
mov r14d, edx
mov ebx, ecx
mov rsi, qword [rbp + 0x3c0]
mov r15, qword [rbp + 0x3c8]
lea rax, [rsp + 0x40]
mov qword [rsp + 0x20], rax
mov r9d, 1
xor r8d, r8d
mov edx, ecx
xor ecx, ecx
call qword [sym.imp.ext_ms_win_shell32_shellfolders_l1_1_0.dll_SHGetFolderPathW]
nop dword [rax + rax]
mov edi, eax
xor r12d, r12d
test eax, eax
js 0x14004c2fb
mov edx, 0x104
mov r8d, edx
lea rax, [rsp + 0x40]
cmp word [rax], r12w
je 0x14004c1a2
add rax, 2
sub r8, 1
jne 0x14004c192
mov rax, r8
mov rcx, rdx
sub rcx, r8
neg rax
sbb r9, r9
and r9, rcx
mov rax, r8
neg rax
sbb edi, edi
not edi
and edi, 0x80070057
test r8, r8
je 0x14004c223
sub rdx, r9
lea rcx, [rsp + 0x40]
lea rcx, [rcx + r9*2]
je 0x14004c207
mov eax, 0x7ffffffe
lea r8, [0x1400b35ec]
sub r8, rcx
test rax, rax
je 0x14004c207
movzx r9d, word [r8 + rcx]
test r9w, r9w
je 0x14004c207
mov word [rcx], r9w
add rcx, 2
dec rax
sub rdx, 1
jne 0x14004c1e6
lea rax, [rcx - 2]
test rdx, rdx
cmovne rax, rcx
mov word [rax], r12w
neg rdx
sbb edi, edi
not edi
and edi, 0x8007007a
mov rcx, qword [rbp + 0x398]
test edi, edi
jns 0x14004c247
mov r9d, edi
lea r8, [0x1400ba6c0]
mov edx, 0x227
call fcn.14002061c
jmp 0x14004c3c5
lea rdx, str.file:___
lea rcx, [rsp + 0x30]
call fcn.140019fac
nop
mov rbx, qword [rsp + 0x30]
mov rax, rbx
neg rax
sbb edi, edi
not edi
mov esi, 0x8007000e
and edi, esi
mov rcx, qword [rbp + 0x398]
jge 0x14004c282
mov r9d, edi
mov edx, 0x231
jmp 0x14004c2da
lea rdx, [rsp + 0x40]
lea rcx, [rsp + 0x30]
call fcn.140049ad4
mov rbx, qword [rsp + 0x30]
mov rax, rbx
neg rax
sbb edi, edi
not edi
and edi, esi
mov rcx, qword [rbp + 0x398]
jge 0x14004c2b5
mov r9d, edi
mov edx, 0x238
jmp 0x14004c2da
mov qword [rsp + 0x28], r15
mov edx, r14d
mov rcx, rbx
call fcn.14004be48
mov edi, eax
mov rcx, qword [rbp + 0x398]
test eax, eax
jns 0x14004c2e7
mov r9d, eax
mov edx, 0x23d
lea r8, [0x1400ba6c0]
call fcn.14002061c
nop
mov rcx, rbx
call qword [sym.imp.OLEAUT32.dll_SysStringLen]
nop dword [rax + rax]
jmp 0x14004c3c5
mov rcx, qword [rbp + 0x398]
mov dword [rsp + 0x28], ebx
lea rax, str.CSIDL:__d
mov qword [rsp + 0x20], rax
mov r9d, edi
lea r8, [0x1400ba6c0]
mov edx, 0x244
call fcn.1400506c8
xorps xmm0, xmm0
movdqu xmmword [rsp + 0x30], xmm0
xor edx, edx
mov r8d, 0x208
lea rcx, [rbp + 0x150]
call sub.api_ms_win_crt_string_l1_1_0.dll_memset
mov r8d, 0x104
lea rdx, [rbp + 0x150]
xor ecx, ecx
call qword [sym.imp.api_ms_win_core_libraryloader_l1_2_0.dll_GetModuleFileNameW]
nop dword [rax + rax]
lea rdx, [rbp + 0x150]
lea rcx, [rsp + 0x30]
call fcn.14004fcfc
nop
mov r9d, dword [rsi + 0x10]
mov r8, qword [rsi + 8]
mov edx, 0x7df
lea rcx, [rsp + 0x30]
call fcn.14005060c
mov dword [rsi + 0x14], eax
mov edx, dword [rsi + 0x10]
mov rcx, rsi
call fcn.14001d2a4
mov r8d, dword [rsi + 0x14]
mov edx, dword [rsi + 0x10]
sub edx, r8d
lea rcx, [rax + r8*2]
mov r9d, ebx
lea r8, [0x1400b35f8]
call fcn.14003ed3c
mov rcx, rsi
call fcn.14001c114
nop
lea rcx, [rsp + 0x30]
call fcn.140023b60
mov eax, edi
mov rcx, qword [rbp + 0x360]
xor rcx, rsp
call fcn.140024bd0
lea r11, [rsp + 0x470]
mov rbx, qword [r11 + 0x40]
mov rsi, qword [r11 + 0x48]
mov rsp, r11
pop r15
pop r14
pop r12
pop rdi
pop rbp
ret