Function at 0x1400dfee0
Capabilities:
Get common file path

Disassembly:
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
lea rbp, [rsp - 0x1a0]
sub rsp, 0x2a0
mov qword [rsp + 0x68], 0xfffffffffffffffe
mov qword [rsp + 0x2f8], rbx
mov rax, qword [0x14014c228]
xor rax, rsp
mov qword [rbp + 0x190], rax
mov rdi, r8
mov qword [rsp + 0x38], r8
mov r13, rdx
mov r12, rcx
mov qword [rsp + 0x50], rcx
mov qword [rsp + 0x70], rdx
mov qword [rsp + 0x78], r8
lea rdx, [0x140119630]
lea rcx, [rsp + 0x48]
call fcn.140043f20
nop
lea rdx, [0x140119630]
lea rcx, [rsp + 0x40]
call fcn.140043f20
nop
xor edx, edx
mov r8d, 0x20a
lea rcx, [rbp - 0x80]
call fcn.1400aeef0
lea rax, [rbp - 0x80]
mov qword [rsp + 0x20], rax
xor r9d, r9d
xor r8d, r8d
lea edx, [r9 + 0x23]
xor ecx, ecx
call qword [sym.imp.SHELL32.dll_SHGetFolderPathW]
mov rsi, 0xffffffffffffffff
test eax, eax
je 0x1400dffba
call fcn.14000ce10
mov rcx, rax
test rax, rax
je 0x1400e02a7
mov rax, qword [rax]
call qword [rax + 0x18]
add rax, 0x18
mov qword [rsp + 0x30], rax
jmp 0x1400e0129
call fcn.14000ce10
mov rcx, rax
test rax, rax
je 0x1400e02b2
mov rax, qword [rax]
call qword [rax + 0x18]
lea rbx, [rax + 0x18]
mov qword [rsp + 0x30], rbx
lea rax, [rbp - 0x80]
cmp rax, 0x10000
lea rax, [rbp - 0x80]
jae 0x1400dfffc
movzx edx, ax
lea rcx, [rsp + 0x30]
call fcn.14000d4c0
jmp 0x1400e0129
mov rdi, rsi
nop
inc rdi
cmp word [rax + rdi*2], 0
jne 0x1400e0000
test edi, edi
jne 0x1400e0068
lea rdx, [rbx - 0x18]
mov rdi, qword [rdx]
cmp dword [rdx + 8], 0
je 0x1400e0124
cmp dword [rdx + 0x10], 0
jge 0x1400e003c
cmp dword [rbx - 0xc], 0
jl 0x1400e02bd
xor eax, eax
mov dword [rbx - 0x10], eax
mov word [rbx], ax
jmp 0x1400e0124
mov eax, esi
lock xadd dword [rdx + 0x10], eax
sub eax, 1
jg 0x1400e0051
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
mov rax, qword [rdi]
mov rcx, rdi
call qword [rax + 0x18]
add rax, 0x18
mov qword [rsp + 0x30], rax
jmp 0x1400e0124
mov r15d, dword [rbx - 0x10]
lea r14, [rbp - 0x80]
sub r14, rbx
sar r14, 1
test edi, edi
js 0x1400e0291
mov ecx, 1
sub ecx, dword [rbx - 8]
mov eax, dword [rbx - 0xc]
sub eax, edi
or eax, ecx
jge 0x1400e00a0
mov edx, edi
lea rcx, [rsp + 0x30]
call fcn.14000e630
mov rbx, qword [rsp + 0x30]
movsxd rax, edi
cmp r14, r15
ja 0x1400e00f7
lea rdx, [rbx + r14*2]
lea r14, [rax + rax]
test r14, r14
je 0x1400e0111
test rdx, rdx
jne 0x1400e00cc
call fcn.1400b7a94
mov dword [rax], 0x16
call fcn.1400b7944
jmp 0x1400e0111
movsxd rax, dword [rbx - 0xc]
add rax, rax
cmp rax, r14
jae 0x1400e00ea
call fcn.1400b7a94
mov dword [rax], 0x22
call fcn.1400b7944
jmp 0x1400e0111
mov r8, r14
mov rcx, rbx
call fcn.1400aea90
jmp 0x1400e0111
lea r14, [rax + rax]
movsxd rdx, dword [rbx - 0xc]
add rdx, rdx
mov r9, r14
lea r8, [rbp - 0x80]
mov rcx, rbx
call fcn.140018b60
cmp edi, dword [rbx - 0xc]
jg 0x1400e029c
mov dword [rbx - 0x10], edi
xor eax, eax
mov word [r14 + rbx], ax
mov rdi, qword [rsp + 0x38]
lea r8, [rsp + 0x40]
lea rdx, [rsp + 0x30]
lea rcx, [rsp + 0x50]
call fcn.14001c5a0
nop
mov r8, r13
mov rdx, rax
lea rcx, [rsp + 0x60]
call fcn.14001c5a0
nop
lea r8, [rsp + 0x48]
mov rdx, rax
lea rcx, [rsp + 0x58]
call fcn.14001c5a0
nop
mov r8, rdi
mov rdx, rax
mov rcx, r12
call fcn.14001c5a0
nop
mov rdx, qword [rsp + 0x58]
add rdx, 0xffffffffffffffe8
mov eax, esi
lock xadd dword [rdx + 0x10], eax
sub eax, 1
jg 0x1400e0190
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
nop
mov rdx, qword [rsp + 0x60]
add rdx, 0xffffffffffffffe8
mov eax, esi
lock xadd dword [rdx + 0x10], eax
sub eax, 1
jg 0x1400e01af
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
nop
mov rdx, qword [rsp + 0x50]
add rdx, 0xffffffffffffffe8
mov eax, esi
lock xadd dword [rdx + 0x10], eax
sub eax, 1
jg 0x1400e01ce
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
nop
mov rdx, qword [rsp + 0x30]
add rdx, 0xffffffffffffffe8
mov eax, esi
lock xadd dword [rdx + 0x10], eax
sub eax, 1
jg 0x1400e01ed
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
nop
mov rdx, qword [rsp + 0x40]
add rdx, 0xffffffffffffffe8
mov eax, esi
lock xadd dword [rdx + 0x10], eax
sub eax, 1
jg 0x1400e020c
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
nop
mov rdx, qword [rsp + 0x48]
add rdx, 0xffffffffffffffe8
mov eax, esi
lock xadd dword [rdx + 0x10], eax
sub eax, 1
jg 0x1400e022b
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
nop
mov rdx, qword [r13]
sub rdx, 0x18
mov eax, esi
lock xadd dword [rdx + 0x10], eax
sub eax, 1
jg 0x1400e0249
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
nop
mov rdx, qword [rdi]
sub rdx, 0x18
lock xadd dword [rdx + 0x10], esi
sub esi, 1
jg 0x1400e0264
mov rcx, qword [rdx]
mov r8, qword [rcx]
call qword [rreloc.OLEAUT32.dll_VariantClear + 8]
mov rax, r12
mov rcx, qword [rbp + 0x190]
xor rcx, rsp
call fcn.1400a79f0
mov rbx, qword [rsp + 0x2f8]
add rsp, 0x2a0
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret
mov ecx, 0x80070057
call fcn.14000c310
int3
mov ecx, 0x80070057
call fcn.14000c310
nop
mov ecx, 0x80004005
call fcn.14000c310
int3
mov ecx, 0x80004005
call fcn.14000c310
nop
mov ecx, 0x80070057
call fcn.14000c310
int3