Function at 0x140027730
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
lea rbp, [rsp - 0x180]
sub rsp, 0x280
mov rax, qword [0x1403e9140]
xor rax, rsp
mov qword [rbp + 0x170], rax
mov r13, rcx
mov qword [rsp + 0x48], rcx
xor esi, esi
mov dword [rsp + 0x40], esi
mov qword [rsp + 0x50], rsi
lea r9, [rsp + 0x50]
xor r8d, r8d
xor edx, edx
lea rcx, [0x1403a9af0]
call qword [sym.imp.SHELL32.dll_SHGetKnownFolderPath]
mov ebx, eax
xorps xmm0, xmm0
movups xmmword [r13], xmm0
mov qword [r13 + 0x10], rsi
mov qword [r13 + 0x18], rsi
mov rdx, qword [rsp + 0x50]
mov r15, 0xffffffffffffffff
mov r8, r15
inc r8
cmp word [rdx + r8*2], si
jne 0x1400277b3
mov rcx, r13
call fcn.140091300
mov r12d, 1
mov dword [rsp + 0x40], r12d
call fcn.1402fa030
test ebx, ebx
js 0x1400277e9
mov rcx, qword [rsp + 0x50]
call qword [sym.imp.ole32.dll_CoTaskMemFree]
jmp 0x140027b3a
mov rax, qword gs:[0x60]
mov rax, qword [rax + 0x18]
mov rax, qword [rax + 0x10]
nop word [rax + rax]
mov rbx, qword [rax + 0x30]
movsxd rcx, dword [rbx + 0x3c]
mov esi, dword [rcx + rbx + 0x88]
add rsi, rbx
cmp rsi, rbx
je 0x140027888
mov r11d, dword [rsi + 0x18]
test r11d, r11d
je 0x140027888
mov r14d, dword [rsi + 0x20]
nop dword [rax]
nop dword [rax + rax]
dec r11d
lea rcx, [r14 + r11*4]
mov r9d, dword [rcx + rbx]
add r9, rbx
mov r10d, 0xcf5c90fe
movzx ecx, byte [r9]
inc r9
test cl, cl
je 0x140027883
nop
movsx edx, cl
sub cl, 0x41
mov r8d, edx
or r8d, 0x20
cmp cl, 0x19
cmova r8d, edx
xor r8d, r10d
imul r10d, r8d, 0x1000193
movzx ecx, byte [r9]
lea r9, [r9 + 1]
test cl, cl
jne 0x140027850
cmp r10d, 0xd16b4123
je 0x140027890
test r11d, r11d
jne 0x140027830
mov rax, qword [rax]
jmp 0x140027800
mov ecx, dword [rsi + 0x24]
add rcx, rbx
movzx edx, word [rcx + r11*2]
mov ecx, dword [rsi + 0x1c]
add rcx, rbx
mov eax, dword [rcx + rdx*4]
add rax, rbx
mov edx, 0x104
lea rcx, [rsp + 0x60]
call rax
test eax, eax
jne 0x140027a31
mov dword [rsp + 0x20], 0x100a5
mov dword [rsp + 0x24], 0xfa0050
xor esi, esi
mov qword [rsp + 0x28], 0x100000
mov dword [rsp + 0x30], 0xb8770000
mov dword [rsp + 0x34], 0x3050077
mov word [rsp + 0x38], 0xb8
mov r10d, esi
lea r11, [rsp + 0x2c]
nop word [rax + rax]
lea edx, [r10 + r10*2]
movzx ecx, word [rsp + rdx*2 + 0x20]
mov word [r11], cx
movzx eax, r10w
add ax, ax
lea ebx, [rax + r10]
movzx r9d, byte [rsp + 0x34]
add r9w, bx
xor r9w, cx
mov word [r11], r9w
xor r8b, r8b
lea eax, [rdx + 1]
movzx edx, word [rsp + rax*2 + 0x20]
nop word [rax + rax]
movzx ecx, r8b
movzx eax, dx
shr ax, cl
test r12b, al
jne 0x14002795a
inc r8b
cmp r8b, 4
jne 0x140027940
jmp 0x14002796b
movzx r9d, r9w
movzx eax, byte [rsp + 0x37]
btc r9d, eax
mov word [r11], r9w
mov dl, 5
lea eax, [r10 + 1]
lea eax, [r10 + rax*2]
movzx r8d, word [rsp + rax*2 + 0x20]
nop dword [rax + rax]
movzx ecx, dl
movzx eax, r8w
shr ax, cl
test r12b, al
jne 0x140027998
inc dl
cmp dl, 8
jne 0x140027980
jmp 0x1400279ac
movzx ecx, r9w
movzx eax, byte [rsp + 0x36]
btc ecx, eax
movzx r9d, cx
mov word [r11], cx
xor dl, dl
lea eax, [r10 + 1]
lea eax, [r10 + rax*2]
movzx r8d, word [rsp + rax*2 + 0x20]
nop dword [rax]
movzx ecx, dl
movzx eax, r8w
shr ax, cl
test r12b, al
jne 0x1400279d8
inc dl
cmp dl, 5
jne 0x1400279c0
jmp 0x1400279ec
movzx ecx, r9w
movzx eax, byte [rsp + 0x35]
btc ecx, eax
movzx r9d, cx
mov word [r11], cx
movzx eax, byte [rsp + 0x33]
add ax, bx
xor ax, r9w
mov word [r11], ax
inc r10d
add r11, 2
cmp r10d, 2
jne 0x140027900
lea rax, [rsp + 0x2c]
mov r8, r15
inc r8
cmp word [rax + r8*2], si
jne 0x140027a15
lea rdx, [rsp + 0x2c]
mov rcx, r13
call fcn.1400915e0
jmp 0x140027b3a
xor r8d, r8d
lea rdx, [0x1403c45b8]
mov rcx, r13
call fcn.1400915e0
movzx edx, word [rsp + 0x60]
mov rcx, r13
call fcn.1400910a0
mov r9d, 0xf7
mov dword [rsp + 0x20], 0x800f7
mov edx, reloc.WS2_32.dll_recv
lea r10d, [rdx - 8]
mov word [rsp + 0x24], dx
mov dword [rsp + 0x28], 0x77b80000
mov sil, 0x77
mov cl, 0xb3
mov dword [rsp + 0x2c], 0x30500b3
xor dil, dil
mov bl, 5
mov r11b, 3
mov word [rsp + 0x30], Ordinal_200
movzx r8d, cl
xor r8w, r9w
xor cl, cl
nop word [rax + rax]
movzx eax, r10w
shr ax, cl
test r12b, al
jne 0x140027ab5
inc cl
cmp cl, 4
jne 0x140027aa0
jmp 0x140027ac1
movzx r8d, r8w
movzx eax, r11b
btc r8d, eax
movzx ecx, bl
movzx eax, dx
shr ax, cl
test r12b, al
jne 0x140027ad8
inc cl
cmp cl, r10b
jne 0x140027ac4
jmp 0x140027ae3
movzx r8d, r8w
movzx eax, bl
btc r8d, eax
xor cl, cl
movzx eax, dx
shr ax, cl
test r12b, al
jne 0x140027af8
inc cl
cmp cl, bl
jne 0x140027ae5
jmp 0x140027b04
movzx r8d, r8w
movzx eax, dil
btc r8d, eax
movzx eax, sil
xor ax, r8w
mov word [rsp + 0x26], ax
lea rax, [rsp + 0x26]
mov r8, r15
nop dword [rax]
inc r8
cmp word [rax + r8*2], 0
jne 0x140027b20
lea rdx, [rsp + 0x26]
mov rcx, r13
call fcn.140091a20
xor esi, esi
mov r8d, 3
mov dword [rsp + 0x20], r8d
mov r9d, 0x80
mov word [rsp + 0x24], r9w
mov dword [rsp + 0x28], 0xb8770000
mov dil, 0xb8
mov cl, Ordinal_200
mov dword [rsp + 0x2c], 0x30500c7
xor bl, bl
mov r11b, 5
mov word [rsp + 0x30], 0xb3
movzx edx, cl
xor dx, r8w
xor cl, cl
nop dword [rax + rax]
movzx eax, si
shr ax, cl
test r12b, al
jne 0x140027b94
inc cl
cmp cl, 4
jne 0x140027b80
jmp 0x140027b9b
movzx edx, dx
btc edx, r8d
movzx ecx, r11b
nop
movzx eax, r9w
shr ax, cl
test r12b, al
jne 0x140027bb5
inc cl
cmp cl, 8
jne 0x140027ba0
jmp 0x140027bbf
movzx edx, dx
movzx eax, r11b
btc edx, eax
xor cl, cl
movzx eax, r9w
shr ax, cl
test r12b, al
jne 0x140027bd6
inc cl
cmp cl, r11b
jne 0x140027bc1
jmp 0x140027bdf
movzx edx, dx
movzx eax, bl
btc edx, eax
movzx eax, dil
xor ax, dx
mov word [rsp + 0x26], ax
lea rax, [rsp + 0x26]
inc r15
cmp word [rax + r15*2], 0
jne 0x140027bf0
mov r8, r15
lea rdx, [rsp + 0x26]
mov rcx, r13
call fcn.140091a20
mov rax, r13
mov rcx, qword [rbp + 0x170]
xor rcx, rsp
call fcn.140362750
lea r11, [rsp + 0x280]
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