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

Disassembly:
mov rax, rsp
push rbp
push r14
push r15
lea rbp, [rax - 0x958]
sub rsp, 0xa40
mov qword [rsp + 0x40], 0xfffffffffffffffe
mov qword [rax + 8], rbx
mov qword [rax + 0x10], rsi
mov qword [rax + 0x18], rdi
mov rax, qword [0x1403d88e8]
xor rax, rsp
mov qword [rbp + 0x930], rax
call fcn.1400f9930
mov rcx, rax
test rax, rax
je 0x140055151
mov rax, qword [rax]
call qword [rax + 0x18]
add rax, 0x18
mov qword [rsp + 0x20], rax
xor edx, edx
mov r8d, 0x7ce
lea rcx, [rbp + 0x160]
call fcn.14029ff20
mov r8d, 0x3e6
lea rdx, [rbp + 0x160]
xor ecx, ecx
call qword [sym.imp.KERNEL32.dll_GetModuleFileNameW]
lea rcx, [rbp + 0x160]
or rdi, 0xffffffffffffffff
mov rax, rdi
inc rax
cmp word [rcx + rax*2], 0
jne 0x140054ea3
mov r8d, eax
lea rdx, [rbp + 0x160]
lea rcx, [rsp + 0x20]
call fcn.1400105e0
mov rbx, qword [rsp + 0x20]
mov esi, dword [rbx - 0x10]
mov edx, 0x5c
mov rcx, rbx
call fcn.14029f968
test rax, rax
jne 0x140054edf
mov eax, edi
jmp 0x140054ee5
sub rax, rbx
sar rax, 1
sub esi, eax
lea eax, [rsi - 1]
xor r15d, r15d
mov esi, r15d
test eax, eax
cmovns esi, eax
movsxd r14, dword [rbx - 0x10]
cmp esi, r14d
jl 0x140054f12
lea rcx, [rbx - 0x18]
call fcn.140015740
lea rbx, [rax + 0x18]
mov qword [rsp + 0x30], rbx
jmp 0x140054f56
mov rcx, qword [rbx - 0x18]
test rcx, rcx
je 0x140054f26
mov rax, qword [rcx]
call qword [rax + 0x20]
test rax, rax
jne 0x140054f34
call fcn.1400f9930
mov rdx, qword [rax]
mov rcx, rax
call qword [rdx + 0x20]
movsxd rcx, esi
mov rdx, r14
sub rdx, rcx
lea rdx, [rbx + rdx*2]
mov r9, rax
mov r8d, esi
lea rcx, [rsp + 0x30]
call fcn.1400151e0
mov rbx, qword [rsp + 0x30]
lea rdx, [rsp + 0x30]
lea rcx, [rsp + 0x20]
call fcn.1400157c0
nop
lea rdx, [rbx - 0x18]
mov eax, edi
lock xadd dword [rdx + 0x10], eax
sub eax, 1
jg 0x140054f7f
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.14001c9f0
xor edx, edx
mov r8d, 0x208
lea rcx, [rsp + 0x50]
call fcn.14029ff20
xor r9d, r9d
lea r8d, [r9 + 0x10]
lea rdx, [rsp + 0x50]
xor ecx, ecx
call qword [sym.imp.SHELL32.dll_SHGetSpecialFolderPathW]
lea rcx, [rsp + 0x50]
mov rax, rdi
lea rax, [rax + 1]
cmp word [rcx + rax*2], 0
jne 0x140054fc5
cmp word [rsp + rax*2 + 0x4e], 0x5c
jne 0x140054ff2
lea rax, [rax*2 - 2]
cmp rax, 0x208
jae 0x140055167
mov word [rsp + rax + 0x50], r15w
call fcn.1400f9930
mov rcx, rax
test rax, rax
je 0x14005515c
mov rax, qword [rax]
call qword [rax + 0x18]
add rax, 0x18
mov qword [rsp + 0x28], rax
lea rdx, [rsp + 0x50]
lea rcx, [rsp + 0x28]
call fcn.140015a40
test al, al
jne 0x14005504d
lea rcx, [rsp + 0x50]
mov rax, rdi
nop dword [rax]
inc rax
cmp word [rcx + rax*2], 0
jne 0x140055030
mov r8d, eax
lea rdx, [rsp + 0x50]
lea rcx, [rsp + 0x28]
call fcn.1400105e0
nop
mov r9, qword [rsp + 0x20]
lea r8, [rsp + 0x50]
lea rdx, [0x14034c258]
lea rcx, [rsp + 0x28]
call fcn.14000dfa0
mov r8d, 0x20
lea rdx, str.atc
mov rcx, qword [rsp + 0x28]
call fcn.1402a77ec
mov qword [0x1403ff5b0], rax
test rax, rax
jne 0x1400550ea
call fcn.1400f9930
mov rcx, rax
test rax, rax
je 0x14005516d
mov rax, qword [rax]
call qword [rax + 0x18]
add rax, 0x18
mov qword [rsp + 0x38], rax
lea r8, [rsp + 0x50]
lea rdx, str.CDebugLog::OpenFile__s_failed
lea rcx, [rsp + 0x38]
call fcn.14000dfa0
mov rbx, qword [rsp + 0x38]
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_OutputDebugStringW]
nop
lea rdx, [rbx - 0x18]
mov eax, edi
lock xadd dword [rdx + 0x10], eax
sub eax, 1
jg 0x1400550ea
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, edi
lock xadd dword [rdx + 0x10], eax
sub eax, 1
jg 0x140055109
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], edi
sub edi, 1
jg 0x140055125
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
mov rcx, qword [rbp + 0x930]
xor rcx, rsp
call fcn.14029d880
lea r11, [rsp + 0xa40]
mov rbx, qword [r11 + 0x20]
mov rsi, qword [r11 + 0x28]
mov rdi, qword [r11 + 0x30]
mov rsp, r11
pop r15
pop r14
pop rbp
ret
mov ecx, 0x80004005
call fcn.14000de90
nop
mov ecx, 0x80004005
call fcn.14000de90
int3
call fcn.14029dc94
nop
mov ecx, 0x80004005
call fcn.14000de90
int3