Function at 0x140027670
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 [0x1403e7140]
xor rax, rsp
mov qword [rbp + 0x170], rax
mov r13, rcx
mov qword [rsp + 0x48], rcx
xor r12d, r12d
mov dword [rsp + 0x40], r12d
mov qword [rsp + 0x50], r12
lea r9, [rsp + 0x50]
xor r8d, r8d
xor edx, edx
lea rcx, [0x1403a7ab0]
call qword [sym.imp.SHELL32.dll_SHGetKnownFolderPath]
mov ebx, eax
xorps xmm0, xmm0
movups xmmword [r13], xmm0
mov qword [r13 + 0x10], r12
mov qword [r13 + 0x18], r12
mov rdx, qword [rsp + 0x50]
mov r15, 0xffffffffffffffff
mov r8, r15
inc r8
cmp word [rdx + r8*2], r12w
jne 0x1400276f5
mov rcx, r13
call fcn.14008e5f0
mov dword [rsp + 0x40], 1
call fcn.1402f7db0
test ebx, ebx
js 0x140027728
mov rcx, qword [rsp + 0x50]
call qword [sym.imp.ole32.dll_CoTaskMemFree]
jmp 0x140027a4b
mov rax, qword gs:[0x60]
mov rax, qword [rax + 0x18]
mov rax, qword [rax + 0x10]
nop dword [rax]
mov rbx, qword [rax + 0x30]
movsxd rcx, dword [rbx + 0x3c]
mov esi, dword [rcx + rbx + 0x88]
add rsi, rbx
cmp rsi, rbx
je 0x1400277c8
mov r11d, dword [rsi + 0x18]
test r11d, r11d
je 0x1400277c8
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, 0x4d37e246
movzx ecx, byte [r9]
inc r9
test cl, cl
je 0x1400277c3
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 0x140027790
cmp r10d, 0x1b2b394b
je 0x1400277d0
test r11d, r11d
jne 0x140027770
mov rax, qword [rax]
jmp 0x140027740
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 0x14002795f
mov dword [rsp + 0x20], 0x200f9
lea edi, [rax + 2]
mov qword [rsp + 0x24], 0xa80040
mov dword [rsp + 0x2c], r12d
mov dword [rsp + 0x30], 0xa93b0000
mov dword [rsp + 0x34], 0x305003b
mov word [rsp + 0x38], 0xa9
mov r10d, r12d
lea r11, [rsp + 0x2c]
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 dword [rax + rax]
movzx ecx, r8b
movzx eax, dx
shr ax, cl
test al, 1
jne 0x140027889
inc r8b
cmp r8b, 4
jne 0x140027870
jmp 0x14002789a
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 word [rax + rax]
movzx ecx, dl
movzx eax, r8w
shr ax, cl
test al, 1
jne 0x1400278c7
inc dl
cmp dl, 8
jne 0x1400278b0
jmp 0x1400278db
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 + rax]
movzx ecx, dl
movzx eax, r8w
shr ax, cl
test al, 1
jne 0x140027907
inc dl
cmp dl, 5
jne 0x1400278f0
jmp 0x14002791b
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, rdi
cmp r10d, edi
jne 0x140027833
lea rax, [rsp + 0x2c]
mov r8, r15
inc r8
cmp word [rax + r8*2], 0
jne 0x140027942
lea rdx, [rsp + 0x2c]
mov rcx, r13
call fcn.14008e8f0
jmp 0x140027a50
xor r8d, r8d
lea rdx, [0x1403c2538]
mov rcx, r13
call fcn.14008e8f0
movzx edx, word [rsp + 0x60]
mov rcx, r13
call fcn.14008e390
mov r8d, 0xef
mov dword [rsp + 0x20], r8d
mov r9d, reloc.WS2_32.dll_recv
mov word [rsp + 0x24], r9w
mov dword [rsp + 0x28], 0x3ba90000
mov dil, Ordinal_60
mov edx, r8d
mov dword [rsp + 0x2c], 0x30500ef
xor bl, bl
mov r11b, 5
mov r10b, 3
mov word [rsp + 0x30], Ordinal_217
xor dx, r8w
xor cl, cl
movzx eax, r12w
shr ax, cl
test al, 1
jne 0x1400279d4
inc cl
cmp cl, 4
jne 0x1400279c0
jmp 0x1400279de
movzx edx, dx
movzx eax, r10b
btc edx, eax
movzx ecx, r11b
movzx eax, r9w
shr ax, cl
test al, 1
jne 0x1400279f6
inc cl
cmp cl, 8
jne 0x1400279e2
jmp 0x140027a00
movzx edx, dx
movzx eax, r11b
btc edx, eax
xor cl, cl
movzx eax, r9w
shr ax, cl
test al, 1
jne 0x140027a16
inc cl
cmp cl, r11b
jne 0x140027a02
jmp 0x140027a1f
movzx edx, dx
movzx eax, bl
btc edx, eax
movzx eax, dil
xor ax, dx
mov word [rsp + 0x26], ax
lea rax, [rsp + 0x26]
mov r8, r15
inc r8
cmp word [rax + r8*2], 0
jne 0x140027a33
lea rdx, [rsp + 0x26]
mov rcx, r13
call fcn.14008ed30
mov edi, 2
mov dword [rsp + 0x20], 2
mov r8d, 0x90
mov word [rsp + 0x24], r8w
mov dword [rsp + 0x28], 0xa93b0000
mov bl, 0xa9
mov cl, 0xd6
mov dword [rsp + 0x2c], 0x30500d6
xor r11b, r11b
mov r10b, 5
mov r9b, 3
mov word [rsp + 0x30], 0xef
movzx edx, cl
xor dx, di
xor cl, cl
movzx eax, r12w
shr ax, cl
test al, 1
jne 0x140027aa4
inc cl
cmp cl, 4
jne 0x140027a90
jmp 0x140027aae
movzx edx, dx
movzx eax, r9b
btc edx, eax
movzx ecx, r10b
movzx eax, r8w
shr ax, cl
test al, 1
jne 0x140027ac6
inc cl
cmp cl, 8
jne 0x140027ab2
jmp 0x140027ad0
movzx edx, dx
movzx eax, r10b
btc edx, eax
xor cl, cl
movzx eax, r8w
shr ax, cl
test al, 1
jne 0x140027ae6
inc cl
cmp cl, r10b
jne 0x140027ad2
jmp 0x140027af0
movzx edx, dx
movzx eax, r11b
btc edx, eax
movzx eax, bl
xor ax, dx
mov word [rsp + 0x26], ax
lea rax, [rsp + 0x26]
inc r15
cmp word [rax + r15*2], 0
jne 0x140027b00
mov r8, r15
lea rdx, [rsp + 0x26]
mov rcx, r13
call fcn.14008ed30
mov rax, r13
mov rcx, qword [rbp + 0x170]
xor rcx, rsp
call fcn.140360560
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