Function at 0x140001000
Capabilities:
Get common file path
Print debug messages

Disassembly:
mov rax, rsp
push r12
push r13
push r14
sub rsp, 0xa40
mov qword [rsp + 0x40], 0xfffffffffffffffe
mov qword [rax + 8], rbx
mov qword [rax + 0x10], rbp
mov qword [rax + 0x18], rsi
mov qword [rax + 0x20], rdi
mov rax, qword [0x140210348]
xor rax, rsp
mov qword [rsp + 0xa30], rax
call fcn.14013d07c
mov rdx, rax
xor r12d, r12d
mov ecx, r12d
test rax, rax
setne cl
test ecx, ecx
jne 0x14000105e
mov ecx, 0x80004005
call fcn.140001c00
int3
mov rax, qword [rax]
mov rcx, rdx
call qword [rax + 0x18]
lea rbx, [rax + 0x18]
mov qword [rsp + 0x20], rbx
mov word [rsp + 0x260], 0
xor edx, edx
mov r8d, 0x7cc
lea rcx, [rsp + 0x262]
call fcn.140160e90
mov r8d, 0x3e6
lea rdx, [rsp + 0x260]
xor ecx, ecx
call qword [sym.imp.KERNEL32.dll_GetModuleFileNameW]
xor eax, eax
or rsi, 0xffffffffffffffff
mov rcx, rsi
lea rdi, [rsp + 0x260]
repne scasw ax, word [rdi]
not rcx
sub rcx, 1
mov rdi, rcx
lea r14d, [rax + 1]
test ecx, ecx
jne 0x14000112a
lea rdx, [rbx - 0x18]
mov rdi, qword [rdx]
cmp dword [rdx + 8], eax
je 0x1400011b2
cmp dword [rdx + 0x10], eax
jge 0x1400010fc
cmp dword [rbx - 0xc], eax
jge 0x1400010f0
mov ecx, 0x80070057
call fcn.140001c00
int3
mov dword [rbx - 0x10], r12d
mov word [rbx], ax
jmp 0x1400011b2
mov eax, esi
lock xadd dword [rdx + 0x10], eax
add eax, 0xffffffff
test eax, eax
jg 0x140001113
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]
lea rbx, [rax + 0x18]
mov qword [rsp + 0x20], rbx
jmp 0x1400011b2
mov ebp, dword [rbx - 0x10]
lea r13, [rsp + 0x260]
sub r13, rbx
sar r13, 1
mov ecx, r14d
sub ecx, dword [rbx - 8]
mov eax, dword [rbx - 0xc]
sub eax, edi
or eax, ecx
jge 0x14000115b
mov edx, edi
lea rcx, [rsp + 0x20]
call fcn.140001df0
mov rbx, qword [rsp + 0x20]
cmp r13, rbp
ja 0x14000117b
movsxd rax, edi
lea rbp, [rax + rax]
lea r8, [rbx + r13*2]
mov r9, rbp
mov rdx, rbp
mov rcx, rbx
call fcn.14015cf60
jmp 0x140001198
movsxd rax, edi
lea rbp, [rax + rax]
mov r9, rbp
lea r8, [rsp + 0x260]
mov rdx, rbp
mov rcx, rbx
call fcn.14015cd30
test edi, edi
js 0x140001522
cmp edi, dword [rbx - 0xc]
jg 0x140001522
mov dword [rbx - 0x10], edi
mov word [rbx + rbp], 0
mov edi, dword [rbx - 0x10]
mov dx, 0x5c
mov rcx, rbx
call fcn.14015c430
test rax, rax
jne 0x1400011ca
mov eax, esi
jmp 0x1400011d0
sub rax, rbx
sar rax, 1
sub edi, eax
lea r8d, [rdi - 1]
lea rdx, [rsp + 0x38]
lea rcx, [rsp + 0x20]
call fcn.140001a70
nop
mov rdx, qword [rax]
lea rcx, [rdx - 0x18]
add rbx, 0xffffffffffffffe8
cmp rcx, rbx
je 0x140001240
cmp dword [rbx + 0x10], 0
jl 0x140001231
mov rax, qword [rbx]
cmp qword [rcx], rax
jne 0x140001231
call fcn.140001d60
mov rdi, rax
mov ecx, esi
lock xadd dword [rbx + 0x10], ecx
add ecx, 0xffffffff
test ecx, ecx
jg 0x140001226
mov rcx, qword [rbx]
mov rax, qword [rcx]
mov rdx, rbx
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
lea rax, [rdi + 0x18]
mov qword [rsp + 0x20], rax
jmp 0x140001240
mov r8d, dword [rdx - 0x10]
lea rcx, [rsp + 0x20]
call fcn.140002390
nop
mov rdx, qword [rsp + 0x38]
add rdx, 0xffffffffffffffe8
mov eax, esi
lock xadd dword [rdx + 0x10], eax
add eax, 0xffffffff
test eax, eax
jg 0x140001260
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
lea r8, str..log
lea rdx, str..exe
lea rcx, [rsp + 0x20]
call fcn.140001730
mov word [rsp + 0x50], 0
xor edx, edx
mov r8d, 0x206
lea rcx, [rsp + 0x52]
call fcn.140160e90
xor r9d, r9d
lea r8d, [r9 + 0x10]
lea rdx, [rsp + 0x50]
xor ecx, ecx
call qword [sym.imp.SHELL32.dll_SHGetSpecialFolderPathW]
xor eax, eax
mov rcx, rsi
lea rdi, [rsp + 0x50]
repne scasw ax, word [rdi]
not rcx
cmp word [rsp + rcx*2 + 0x4c], 0x5c
jne 0x1400012c2
mov word [rsp + rcx*2 + 0x4c], ax
call fcn.14013d07c
mov rdx, rax
mov ecx, r12d
test rax, rax
setne cl
test ecx, ecx
jne 0x1400012e2
mov ecx, 0x80004005
call fcn.140001c00
int3
mov rax, qword [rax]
mov rcx, rdx
call qword [rax + 0x18]
lea rbx, [rax + 0x18]
mov qword [rsp + 0x28], rbx
lea rcx, [rsp + 0x50]
lea rax, [rsp + 0x50]
test rax, 0xffffffffffff0000
jne 0x14000132e
movzx edi, cx
mov ecx, edi
call fcn.14013d654
test rax, rax
je 0x140001429
mov r8d, edi
mov rdx, rax
lea rcx, [rsp + 0x28]
call fcn.1400020e0
jmp 0x140001429
xor eax, eax
mov rcx, rsi
lea rdi, [rsp + 0x50]
repne scasw ax, word [rdi]
not rcx
sub rcx, 1
mov rdi, rcx
test ecx, ecx
jne 0x1400013a8
lea rdx, [rbx - 0x18]
mov rdi, qword [rdx]
cmp dword [rdx + 8], eax
je 0x140001429
cmp dword [rdx + 0x10], eax
jge 0x14000137a
cmp dword [rbx - 0xc], eax
jge 0x14000136e
mov ecx, 0x80070057
call fcn.140001c00
int3
mov dword [rbx - 0x10], r12d
mov word [rbx], ax
jmp 0x140001429
mov eax, esi
lock xadd dword [rdx + 0x10], eax
add eax, 0xffffffff
test eax, eax
jg 0x140001391
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 + 0x28], rax
jmp 0x140001429
mov ebp, dword [rbx - 0x10]
lea r13, [rsp + 0x50]
sub r13, rbx
sar r13, 1
sub r14d, dword [rbx - 8]
mov eax, dword [rbx - 0xc]
sub eax, ecx
or eax, r14d
jge 0x1400013d5
mov edx, ecx
lea rcx, [rsp + 0x28]
call fcn.140001df0
mov rbx, qword [rsp + 0x28]
cmp r13, rbp
ja 0x1400013f5
movsxd rax, edi
lea rbp, [rax + rax]
lea r8, [rbx + r13*2]
mov r9, rbp
mov rdx, rbp
mov rcx, rbx
call fcn.14015cf60
jmp 0x14000140f
movsxd rax, edi
lea rbp, [rax + rax]
mov r9, rbp
lea r8, [rsp + 0x50]
mov rdx, rbp
mov rcx, rbx
call fcn.14015cd30
test edi, edi
js 0x140001517
cmp edi, dword [rbx - 0xc]
jg 0x140001517
mov dword [rbx - 0x10], edi
mov word [rbx + rbp], 0
mov r9, qword [rsp + 0x20]
lea r8, [rsp + 0x50]
lea rdx, [0x14019c370]
lea rcx, [rsp + 0x28]
call fcn.140001f50
mov r8d, 0x20
lea rdx, str.atc
mov rcx, qword [rsp + 0x28]
call fcn.14015ce00
mov qword [0x14022e440], rax
test rax, rax
jne 0x1400014d6
call fcn.14013d07c
mov rcx, rax
test rax, rax
setne r12b
test r12d, r12d
jne 0x140001486
mov ecx, 0x80004005
call fcn.140001c00
int3
mov rax, qword [rax]
call qword [rax + 0x18]
add rax, 0x18
mov qword [rsp + 0x30], rax
lea r8, [rsp + 0x50]
lea rdx, str.CDebugLog::OpenFile__s_failed
lea rcx, [rsp + 0x30]
call fcn.140001f50
mov rdi, qword [rsp + 0x30]
mov rcx, rdi
call qword [sym.imp.KERNEL32.dll_OutputDebugStringW]
nop
lea rdx, [rdi - 0x18]
mov eax, esi
lock xadd dword [rdx + 0x10], eax
add eax, 0xffffffff
test eax, eax
jg 0x1400014d6
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
nop
mov rdx, qword [rsp + 0x28]
add rdx, 0xffffffffffffffe8
mov eax, esi
lock xadd dword [rdx + 0x10], eax
add eax, 0xffffffff
test eax, eax
jg 0x1400014f7
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], esi
add esi, 0xffffffff
test esi, esi
jg 0x14000152d
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
jmp 0x14000152d
mov ecx, 0x80070057
call fcn.140001c00
nop
mov ecx, 0x80070057
call fcn.140001c00
nop
mov rcx, qword [rsp + 0xa30]
xor rcx, rsp
call fcn.14015d000
lea r11, [rsp + 0xa40]
mov rbx, qword [r11 + 0x20]
mov rbp, qword [r11 + 0x28]
mov rsi, qword [r11 + 0x30]
mov rdi, qword [r11 + 0x38]
mov rsp, r11
pop r14
pop r13
pop r12
ret