Function at 0x180077350
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
sub rsp, 0x130
lea rbp, [rsp + 0x40]
and rbp, 0xffffffffffffffe0
mov rax, qword [0x1802855b8]
xor rax, rsp
mov qword [rbp + 0xe0], rax
mov rbx, rcx
mov qword [rbp], rcx
xor esi, esi
lea r9, [rbp + 0x60]
xor r8d, r8d
xor edx, edx
lea rcx, [0x1801ce750]
call qword [sym.imp.SHELL32.dll_SHGetKnownFolderPath]
test eax, eax
js 0x180077661
mov r12, qword [rbp + 0x60]
xorps xmm0, xmm0
movups xmmword [rbp + 0x68], xmm0
mov qword [rbp + 0x78], rsi
mov qword [rbp + 0x80], rsi
mov rdi, 0xffffffffffffffff
nop dword [rax]
inc rdi
cmp word [r12 + rdi*2], si
jne 0x1800773d0
movabs r13, 0x7ffffffffffffffe
cmp rdi, r13
ja 0x1800777bb
movabs r15, 0x7fffffffffffffff
mov qword [rbp + 0x80], 7
cmp rdi, 8
jae 0x180077428
mov qword [rbp + 0x78], rdi
add rdi, rdi
mov r8, rdi
mov rdx, r12
lea rcx, [rbp + 0x68]
call sub.VCRUNTIME140.dll_memmove
mov word [rbp + rdi + 0x68], si
jmp 0x1800774c9
mov rax, rdi
or rax, 7
cmp rax, r13
jbe 0x18007743a
lea rcx, [r15 + r15]
jmp 0x180077462
mov r13, rax
mov ecx, 0xa
cmp rax, rcx
cmovb r13, rcx
lea rcx, [r13 + 1]
cmp rcx, r15
ja 0x18007765b
add rcx, rcx
cmp rcx, 0x1000
jb 0x18007748e
lea rax, [rcx + 0x27]
cmp rax, rcx
jbe 0x18007765b
mov rcx, rax
call fcn.1801c7834
test rax, rax
je 0x180077619
lea r14, [rax + 0x27]
and r14, 0xffffffffffffffe0
mov qword [r14 - 8], rax
jmp 0x1800774a0
test rcx, rcx
je 0x18007749d
call fcn.1801c7834
mov r14, rax
jmp 0x1800774a0
mov r14, rsi
mov qword [rbp + 0x68], r14
mov qword [rbp + 0x78], rdi
mov qword [rbp + 0x80], r13
add rdi, rdi
mov r8, rdi
mov rdx, r12
mov rcx, r14
call sub.VCRUNTIME140.dll_memcpy
mov word [r14 + rdi], si
mov r12, qword [rbp + 0x60]
mov rcx, r12
call qword [sym.imp.ole32.dll_CoTaskMemFree]
lea rcx, [rbp + 0x68]
mov r8, qword [rbp + 0x68]
mov rdx, qword [rbp + 0x80]
cmp rdx, 8
cmovae rcx, r8
mov rax, qword [rbp + 0x78]
lea r14, [rcx + rax*2]
lea rdi, [rbp + 0x68]
cmovae rdi, r8
xorps xmm0, xmm0
movups xmmword [rbx], xmm0
mov qword [rbx + 0x10], rsi
mov qword [rbx + 0x18], recv
cmp rdi, r14
jne 0x180077518
mov byte [rbx], 0
jmp 0x1800775ea
mov rax, r14
sub rax, rdi
sar rax, 1
cmp rax, r15
ja 0x1800777c1
cmp rax, 0x10
jb 0x1800775a6
or rax, 0xf
cmp rax, r15
ja 0x180077548
mov r15, rax
mov ecx, 0x16
cmp rax, rcx
cmovb r15, rcx
mov rcx, r15
add rcx, 1
mov rax, 0xffffffffffffffff
cmovb rcx, rax
cmp rcx, 0x1000
jb 0x180077592
lea rax, [rcx + 0x27]
cmp rax, rcx
jbe 0x1800777c7
mov rcx, rax
call fcn.1801c7834
test rax, rax
je 0x18007758b
lea rsi, [rax + 0x27]
and rsi, 0xffffffffffffffe0
mov qword [rsi - 8], rax
jmp 0x18007759f
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
int3
test rcx, rcx
je 0x18007759f
call fcn.1801c7834
mov rsi, rax
mov qword [rbx], rsi
mov qword [rbx + 0x18], r15
mov rdx, rbx
cmp qword [rbx + 0x18], 0x10
jb 0x1800775b3
mov rdx, qword [rbx]
movzx ecx, byte [rdi]
mov rax, qword [rbx + 0x10]
mov byte [rdx + rax], cl
inc qword [rbx + 0x10]
mov rax, qword [rbx + 0x10]
add rdi, 2
cmp rdi, r14
jne 0x1800775a6
mov rcx, rbx
cmp qword [rbx + 0x18], 0x10
jb 0x1800775db
mov rcx, qword [rbx]
mov byte [rax + rcx], 0
mov rdx, qword [rbp + 0x80]
mov r8, qword [rbp + 0x68]
cmp rdx, 8
jb 0x180077628
lea rdx, [rdx*2 + 2]
mov rax, r8
cmp rdx, 0x1000
jb 0x180077620
add rdx, 0x27
mov r8, qword [r8 - 8]
sub rax, r8
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
jbe 0x180077620
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
int3
mov rcx, r8
call fcn.1801c7800
mov rax, rbx
mov rcx, qword [rbp + 0xe0]
xor rcx, rsp
call fcn.1801c77e0
lea r11, [rsp + 0x130]
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.180074db0
int3
movabs rax, 0xa7ec7f17b21a26b5
mov qword [rbp], rax
mov rax, qword [rbp]
mov qword [rbp + 0x20], rax
movabs rax, 0x5083061b7044a55b
mov qword [rbp], rax
mov rax, qword [rbp]
mov qword [rbp + 0x28], rax
movabs rax, 0xdd9d2dd82b18be90
mov qword [rbp], rax
mov rax, qword [rbp]
mov qword [rbp + 0x30], rax
movabs rax, 0x2c6df94c56cdf711
mov qword [rbp], rax
mov rax, qword [rbp]
mov qword [rbp + 0x38], rax
movabs rax, 0x3573e52e88ef0fb4
mov qword [rbp], rax
mov rax, qword [rbp]
mov qword [rbp + 0x40], rax
movabs rax, 0xb4a5244ba4410a74
mov qword [rbp], rax
mov rax, qword [rbp]
mov qword [rbp + 0x48], rax
movabs rax, 0xd3cc1b72de7347f3
mov qword [rbp], rax
mov rax, qword [rbp]
mov qword [rbp + 0xa0], rax
movabs rax, 0x38f7266f15238534
mov qword [rbp], rax
mov rax, qword [rbp]
mov qword [rbp + 0xa8], rax
movabs rax, 0xa9bd45ac4a689ef5
mov qword [rbp], rax
mov rax, qword [rbp]
mov qword [rbp + 0xb0], rax
movabs rax, 0x4909d9293eb9d77e
mov qword [rbp], rax
mov rax, qword [rbp]
mov qword [rbp + 0xb8], rax
movabs rax, 0x5a15c55ee79b64c7
mov qword [rbp], rax
mov rax, qword [rbp]
mov qword [rbp + 0xc0], rax
movabs rax, 0xb4a5244bd6246e18
mov qword [rbp], rax
mov rax, qword [rbp]
mov qword [rbp + 0xc8], rax
vmovdqu ymm0, ymmword [rbp + 0xa0]
vpxor ymm1, ymm0, ymmword [rbp + 0x20]
vmovdqa ymmword [rbp + 0x20], ymm1
vmovdqa xmm2, xmmword [rbp + 0x40]
vpxor xmm2, xmm2, xmmword [rbp + 0xc0]
vmovdqa xmmword [rbp + 0x40], xmm2
lea rax, [rbp + 0x20]
mov qword [rbp], rax
lea rdx, [0x18027c8e8]
lea rcx, [rbp]
vzeroupper
call sub.VCRUNTIME140.dll__CxxThrowException
int3
call fcn.180074e50
nop
call fcn.180074e50
nop
call fcn.180074db0
int3