Function at 0x100019010
Capabilities:
Get common file path

Disassembly:
sub rsp, 0x48
mov qword [rsp + 0x38], 0xfffffffffffffffe
mov qword [rsp + 0x50], rbx
mov qword [rsp + 0x58], rbp
mov qword [rsp + 0x60], rsi
mov qword [rsp + 0x68], rdi
lea rcx, [0x1000a9318]
mov rax, qword [0x1000a9318]
call qword [rax + 0x18]
add rax, 0x18
mov qword [rsp + 0x20], rax
mov rdi, qword [rsp + 0x20]
mov ecx, 1
sub ecx, dword [rdi - 8]
mov eax, dword [rdi - 0xc]
sub eax, 0x105
or eax, ecx
jge 0x100019078
mov edx, 0x105
lea rcx, [rsp + 0x20]
call fcn.1000140c0
mov rdi, qword [rsp + 0x20]
cmp dword [rdi - 0xc], 0x105
jge 0x10001908c
mov ecx, 0x80070057
call fcn.100013860
int3
mov dword [rdi - 0x10], 0x105
mov rax, qword [rsp + 0x20]
mov word [rax + 0x20a], 0
mov edx, 0x105
mov rcx, rdi
call qword [sym.imp.KERNEL32.dll_GetWindowsDirectoryW]
mov rbx, 0xffffffffffffffff
test eax, eax
je 0x100019249
xor ebp, ebp
mov rdx, qword [rsp + 0x20]
test rdx, rdx
jne 0x1000190ce
mov ecx, ebp
jmp 0x1000190e7
xor eax, eax
mov rcx, rbx
mov rdi, rdx
repne scasw ax, word [rdi]
not rcx
dec rcx
test ecx, ecx
js 0x10001923e
cmp ecx, dword [rdx - 0xc]
jg 0x10001923e
mov dword [rdx - 0x10], ecx
movsxd rdx, ecx
mov rax, qword [rsp + 0x20]
mov word [rax + rdx*2], bp
lea rcx, [0x1000a9318]
mov rax, qword [0x1000a9318]
call qword [rax + 0x18]
add rax, 0x18
mov qword [rsp + 0x30], rax
mov rsi, qword [0x1000a8108]
lea rcx, [0x1000a9318]
mov rax, qword [0x1000a9318]
call qword [rax + 0x18]
add rax, 0x18
mov qword [rsp + 0x28], rax
test rsi, rsi
je 0x10001917d
test rsi, 0xffffffffffff0000
jne 0x10001916b
movzx edi, si
xor edx, edx
mov ecx, edi
call fcn.1000138a0
test rax, rax
je 0x10001918e
mov r8d, edi
mov rdx, rax
lea rcx, [rsp + 0x28]
call fcn.1000149f0
jmp 0x10001918e
xor eax, eax
mov rcx, rbx
mov rdi, rsi
repne scasw ax, word [rdi]
not rcx
lea rbp, [rcx - 1]
mov r8d, ebp
mov rdx, rsi
lea rcx, [rsp + 0x28]
call fcn.100014b20
nop
lea r8, [rsp + 0x30]
lea rdx, [rsp + 0x28]
lea rcx, [rsp + 0x20]
call fcn.100048450
movzx edi, al
mov rdx, qword [rsp + 0x28]
add rdx, 0xffffffffffffffe8
mov ecx, ebx
lock xadd dword [rdx + 0x10], ecx
dec ecx
test ecx, ecx
jg 0x1000191c4
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
test dil, dil
je 0x10001921d
mov rdx, qword [rsp + 0x30]
lea rcx, [0x1000a8970]
call fcn.100045b90
mov edi, eax
mov rdx, qword [rsp + 0x30]
add rdx, 0xffffffffffffffe8
mov ecx, ebx
lock xadd dword [rdx + 0x10], ecx
dec ecx
test ecx, ecx
jg 0x1000191fc
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
nop
mov rdx, qword [rsp + 0x20]
add rdx, 0xffffffffffffffe8
lock xadd dword [rdx + 0x10], ebx
dec ebx
test ebx, ebx
jg 0x100019219
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
mov eax, edi
jmp 0x100019268
mov rdx, qword [rsp + 0x30]
add rdx, 0xffffffffffffffe8
mov eax, ebx
lock xadd dword [rdx + 0x10], eax
dec eax
test eax, eax
jg 0x100019249
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
jmp 0x100019249
mov ecx, 0x80070057
call fcn.100013860
nop
mov rdx, qword [rsp + 0x20]
add rdx, 0xffffffffffffffe8
lock xadd dword [rdx + 0x10], ebx
dec ebx
test ebx, ebx
jg 0x100019266
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
xor eax, eax
mov rbx, qword [rsp + 0x50]
mov rbp, qword [rsp + 0x58]
mov rsi, qword [rsp + 0x60]
mov rdi, qword [rsp + 0x68]
add rsp, 0x48
ret