Function at 0x180005aec
Capabilities:
Get common file path
Print debug messages
Set registry value

Disassembly:
mov rax, rsp
mov qword [rax + 0x10], rbx
mov qword [rax + 0x18], r8
mov qword [rax + 8], rcx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
lea rbp, [rax - 0x128]
sub rsp, 0x1f0
mov r14d, dword [rbp + 0x158]
xor esi, esi
mov qword [rsp + 0x40], rsi
mov r15, rdx
mov r12, rcx
mov rdi, r9
lea rcx, [rbp - 0x20]
mov rbx, r8
mov r13d, esi
mov edx, 0x104
test r14d, r14d
je 0x180005b4e
call qword [sym.imp.KERNEL32.dll_GetWindowsDirectoryA]
lea rdx, str.SysWOW64_s
jmp 0x180005b5b
call qword [sym.imp.KERNEL32.dll_GetSystemDirectoryA]
lea rdx, [0x18000bb48]
mov eax, eax
lea rcx, [rbp - 0x20]
add rcx, rax
mov r8, r15
call qword [0x180014958]
mov r8d, 3
mov qword [rsp + 0x30], rsi
mov dword [rsp + 0x28], esi
lea rcx, [rbp - 0x20]
xor r9d, r9d
mov dword [rsp + 0x20], r8d
mov edx, 0x80000000
call qword [sym.imp.KERNEL32.dll_CreateFileA]
mov rsi, rax
cmp rax, 0xffffffffffffffff
je 0x180005c4d
lea r9, [rsp + 0x40]
xor r8d, r8d
xor edx, edx
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_GetFileTime]
test eax, eax
je 0x180005c44
mov r9d, 0xb
lea r8, [rsp + 0x48]
mov rdx, rbx
mov rcx, r12
call fcn.180005a64
test eax, eax
js 0x180005c44
mov rax, qword [rsp + 0x48]
cmp qword [rsp + 0x40], rax
jne 0x180005c44
xor ebx, ebx
lea rax, [rdi + 8]
cmp qword [rax], rbx
je 0x180005c25
mov rdx, qword [rax]
lea r8, [rbp + 0x158]
mov r9d, 4
mov rcx, r12
call fcn.180005a64
test eax, eax
js 0x180005c25
cmp dword [rbp + 0x158], r13d
je 0x180005c25
inc ebx
mov eax, ebx
shl rax, 4
add rax, 8
add rax, rdi
cmp qword [rax], r13
jne 0x180005bec
mov eax, ebx
add rax, rax
cmp qword [rdi + rax*8 + 8], r13
jne 0x180005c44
mov rcx, rsi
call qword [sym.imp.KERNEL32.dll_CloseHandle]
mov eax, 1
jmp 0x180005fff
mov rcx, rsi
call qword [sym.imp.KERNEL32.dll_CloseHandle]
xor ebx, ebx
cmp dword [rbp + 0x150], ebx
je 0x180005ffd
cmp dword [0x18000d184], ebx
jge 0x180005c72
call fcn.18000628c
mov dword [0x18000d184], eax
test eax, eax
js 0x180005ce1
lea rcx, [rbp - 0x20]
call fcn.1800066e4
call qword [sym.imp.KERNEL32.dll_GetCurrentProcess]
mov dword [rsp + 0x28], ebx
lea r8, [rbp - 0x20]
mov rcx, rax
mov qword [rsp + 0x20], rbx
xor r9d, r9d
xor edx, edx
call qword [0x180014900]
mov r13, rax
test rax, rax
jne 0x180005cdd
cmp qword [0x180014958], rbx
je 0x180005ce7
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov r9d, eax
lea r8, [rbp - 0x20]
lea rdx, str.SymLoadModule64__s_failed:__08X_n
lea rcx, [0x1800140f0]
call qword [0x180014958]
lea rcx, [0x1800140f0]
call qword [sym.imp.KERNEL32.dll_OutputDebugStringA]
jmp 0x180005ce7
mov eax, ebx
test eax, eax
je 0x180005d97
call qword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 0x1e7
je 0x180005d97
lea rsi, str.appinfo.dll
cmp r15, rsi
jne 0x180005ffd
lea rdx, [rsp + 0x58]
lea rcx, [rbp - 0x20]
call fcn.180004ef0
test eax, eax
jne 0x180005ffd
mov esi, ebx
xor r14d, r14d
lea rbx, [rdi + 8]
cmp qword [rbx], r14
je 0x180005f90
mov rax, rdi
lea rcx, str.AiOpenWOWStubs
cmp qword [rax], rcx
jne 0x180005f73
lea rcx, [rsp + 0x58]
call fcn.180005064
test eax, eax
je 0x180005f73
mov rdx, qword [rbx]
lea rcx, [rsp + 0x48]
mov dword [rbp + 0x158], eax
call qword [sym.imp.ntdll.dll_RtlInitUnicodeString]
mov ecx, 4
lea rax, [rbp + 0x158]
mov dword [rsp + 0x28], ecx
lea rdx, [rsp + 0x48]
mov r9d, ecx
mov qword [rsp + 0x20], rax
mov rcx, r12
xor r8d, r8d
call qword [sym.imp.ntdll.dll_NtSetValueKey]
jmp 0x180005f78
test r13, r13
jne 0x180005dad
test r14d, r14d
jne 0x180005dad
mov rcx, r15
call qword [sym.imp.KERNEL32.dll_GetModuleHandleA]
mov r13, rax
mov rax, qword [0x180014958]
test rax, rax
je 0x180005dd9
mov r8, r15
lea rdx, str.UpdateSymbolCache___loading__s_symbols_n
lea rcx, [0x1800138f0]
call rax
lea rcx, [0x1800138f0]
call qword [sym.imp.KERNEL32.dll_OutputDebugStringA]
mov r14d, ebx
cmp qword [rdi + 8], rbx
je 0x180005f0d
mov rbx, rdi
lea rsi, str.appinfo.dll
mov r12, qword [rbx]
lea rcx, [rbp - 0x80]
mov edx, 0x58
call qword [sym.imp.KERNEL32.dll_RtlZeroMemory]
mov rax, qword [0x180014958]
test rax, rax
je 0x180005e2e
mov r8, r12
lea rdx, str.SymEng_GetAddr__s_n
lea rcx, [0x1800140f0]
call rax
lea rcx, [0x1800140f0]
call qword [sym.imp.KERNEL32.dll_OutputDebugStringA]
mov dword [rbp - 0x80], 0x58
call qword [sym.imp.KERNEL32.dll_GetCurrentProcess]
lea r8, [rbp - 0x80]
mov rdx, r12
mov rcx, rax
call qword [0x180014910]
test eax, eax
jne 0x180005e8a
xor ebx, ebx
cmp qword [0x180014958], rbx
je 0x180005edf
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov r8d, eax
lea rdx, str.SymFromName_failed:__08X_n
lea rcx, [0x1800140f0]
call qword [0x180014958]
lea rcx, [0x1800140f0]
call qword [sym.imp.KERNEL32.dll_OutputDebugStringA]
jmp 0x180005edf
mov rax, qword [rbp - 0x48]
sub rax, qword [rbp - 0x60]
test eax, eax
je 0x180005edd
mov rdx, qword [rbx + 8]
lea rcx, [rsp + 0x48]
mov dword [rbp + 0x158], eax
call qword [sym.imp.ntdll.dll_RtlInitUnicodeString]
mov r12, qword [rbp + 0x130]
lea rax, [rbp + 0x158]
mov ecx, 4
lea rdx, [rsp + 0x48]
mov dword [rsp + 0x28], ecx
mov r9d, ecx
mov rcx, r12
mov qword [rsp + 0x20], rax
xor r8d, r8d
call qword [sym.imp.ntdll.dll_NtSetValueKey]
jmp 0x180005ef3
xor ebx, ebx
mov r12, qword [rbp + 0x130]
cmp r15, rsi
je 0x180005d08
mov dword [rsp + 0x40], ebx
inc r14d
mov ebx, r14d
shl rbx, 4
add rbx, rdi
cmp qword [rbx + 8], 0
jne 0x180005df0
xor ebx, ebx
call qword [sym.imp.KERNEL32.dll_GetCurrentProcess]
mov rcx, rax
mov rdx, r13
call qword [0x180014908]
cmp dword [rsp + 0x40], ebx
je 0x180005c3a
mov rax, qword [rsp + 0x40]
lea rcx, [rsp + 0x58]
mov rdx, qword [rbp + 0x140]
mov qword [rsp + 0x48], rax
call qword [sym.imp.ntdll.dll_RtlInitUnicodeString]
lea rax, [rsp + 0x48]
mov dword [rsp + 0x28], 8
mov r9d, 0xb
mov qword [rsp + 0x20], rax
xor r8d, r8d
lea rdx, [rsp + 0x58]
mov rcx, r12
call qword [sym.imp.ntdll.dll_NtSetValueKey]
jmp 0x180005c3a
mov dword [rsp + 0x40], r14d
inc esi
mov eax, esi
shl rax, 4
add rax, rdi
lea rbx, [rax + 8]
cmp qword [rbx], r14
jne 0x180005d33
mov rcx, qword [rsp + 0x68]
call qword [sym.imp.KERNEL32.dll_UnmapViewOfFile]
mov rcx, qword [rsp + 0x60]
call qword [sym.imp.KERNEL32.dll_CloseHandle]
mov rcx, qword [rsp + 0x58]
call qword [sym.imp.KERNEL32.dll_CloseHandle]
cmp dword [rsp + 0x40], r14d
je 0x180005ffd
mov rax, qword [rsp + 0x40]
lea rcx, [rsp + 0x58]
mov rdx, qword [rbp + 0x140]
mov qword [rsp + 0x48], rax
call qword [sym.imp.ntdll.dll_RtlInitUnicodeString]
lea rax, [rsp + 0x48]
mov dword [rsp + 0x28], 8
mov r9d, 0xb
mov qword [rsp + 0x20], rax
xor r8d, r8d
lea rdx, [rsp + 0x58]
mov rcx, r12
call qword [sym.imp.ntdll.dll_NtSetValueKey]
xor eax, eax
mov rbx, qword [rsp + 0x238]
add rsp, 0x1f0
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret