Function at 0x14000dc60
Capabilities:
Create directory
Create process memory minidump
Get common file path
Get file attributes
Get startup folder
Query or enumerate registry value

Disassembly:
mov rax, rsp
push rbp
push r12
push r13
push r14
push r15
lea rbp, [rax - 0x2e8]
sub rsp, 0x3c0
mov qword [rbp - 0x68], 0xfffffffffffffffe
mov qword [rax + 0x10], rbx
mov qword [rax + 0x18], rsi
mov qword [rax + 0x20], rdi
mov rax, qword [0x14019cfa0]
xor rax, rsp
mov qword [rbp + 0x2b0], rax
mov r12, rcx
xor r15d, r15d
mov dword [rsp + 0x60], r15d
mov eax, dword [0x1401ac6d8]
mov dword [rsp + 0x64], eax
call fcn.140004ea0
mov rcx, rax
test rax, rax
je 0x14000e3a0
mov rax, qword [rax]
call qword [rax + reloc.OLEAUT32.dll_SafeArrayGetElement]
add rax, 0x18
mov qword [rbp - 0x10], rax
xor eax, eax
mov qword [rbp - 0x28], rax
mov qword [rbp - 0x20], rax
lea rcx, [rbp - 0x28]
call qword [sym.imp.KERNEL32.dll_GetSystemTime]
movzx eax, word [rbp - 0x1a]
movzx ecx, word [rbp - 0x1c]
movzx edx, word [rbp - 0x1e]
movzx r10d, word [rbp - 0x20]
movzx r11d, word [rbp - 0x22]
movzx r9d, word [rbp - 0x26]
movzx r8d, word [rbp - 0x28]
mov dword [rsp + 0x40], eax
mov dword [rsp + 0x38], ecx
mov dword [rsp + 0x30], edx
mov dword [rsp + 0x28], r10d
mov dword [rsp + 0x20], r11d
lea rdx, str._04d._02d._02d._02d._02d._02d._04d
lea rcx, [rbp - 0x10]
call fcn.14000ed00
nop
xorps xmm0, xmm0
movdqu xmmword [rsp + 0x78], xmm0
lea rcx, [rsp + 0x68]
call fcn.140005ff0
mov qword [rax + 0x10], r15
mov qword [rax + 0x18], 7
mov word [rsp + 0x50], r15w
lea rdx, [rsp + 0x50]
mov rcx, rax
call fcn.140006420
mov dword [rsp + 0x60], 1
xor edx, edx
mov r8d, 0x208
lea rcx, [rbp + 0xa0]
call fcn.1400e17c0
lea rax, [rbp + 0xa0]
mov qword [rsp + 0x20], rax
xor r9d, r9d
xor r8d, r8d
lea edx, [r15 + 0x23]
xor ecx, ecx
call qword [sym.imp.SHELL32.dll_SHGetFolderPathW]
test eax, eax
js 0x14000de7a
lea rdx, [rbp + 0xa0]
lea rcx, [rsp + 0x68]
call fcn.140005bf0
lea rcx, [rsp + 0x68]
call fcn.14000fa70
lea rdi, [rax + 1]
lea rcx, [rsp + 0x68]
call fcn.140005ff0
cmp qword [rax + 0x10], rdi
jb 0x14000e3ab
lea rcx, [rsp + 0x68]
call fcn.140005ff0
mov rbx, rax
mov word [rsp + 0x52], r15w
mov rcx, rax
call fcn.140005f20
mov qword [rbx + 0x10], rdi
lea rcx, [rax + rdi*2]
lea rdx, [rsp + 0x52]
call fcn.140006420
lea rcx, [0x14016d848]
call fcn.140005c60
mov rcx, rax
call fcn.140005e20
mov r8, rax
lea rdx, [0x14016d848]
lea rcx, [rsp + 0x68]
call fcn.14000c420
lea rcx, str.Macrium
call fcn.140005c60
mov rcx, rax
call fcn.140005e20
mov r8, rax
lea rdx, str.Macrium
lea rcx, [rsp + 0x68]
call fcn.14000c420
lea rcx, [0x14016d848]
call fcn.140005c60
mov rcx, rax
call fcn.140005e20
mov r8, rax
lea rdx, [0x14016d848]
lea rcx, [rsp + 0x68]
call fcn.14000c420
lea rcx, [rsp + 0x68]
call fcn.140006930
mov rbx, rax
call fcn.140004ea0
mov rcx, rax
test rax, rax
je 0x14000e3b1
mov rax, qword [rax]
call qword [rax + reloc.OLEAUT32.dll_SafeArrayGetElement]
add rax, 0x18
mov qword [rbp - 0x48], rax
mov rdi, 0xffffffffffffffff
test rbx, rbx
je 0x14000dedc
cmp rbx, 0x10000
jae 0x14000dec9
movzx edx, bx
lea rcx, [rbp - 0x48]
call fcn.14000f590
jmp 0x14000deef
mov rax, rdi
nop dword [rax]
inc rax
cmp word [rbx + rax*2], 0
jne 0x14000ded0
jmp 0x14000dedf
mov eax, r15d
mov r8d, eax
mov rdx, rbx
lea rcx, [rbp - 0x48]
call fcn.140004960
nop
lea rcx, [rsp + 0x68]
call fcn.14000a480
nop
lea rdx, str.Exceptions_
mov rax, rdi
inc rax
cmp word [rdx + rax*2], 0
jne 0x14000df04
mov r8d, eax
lea rcx, [rbp - 0x48]
call fcn.140003cd0
mov rbx, qword [rbp - 0x48]
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_GetFileAttributesW]
cmp eax, 0x10
je 0x14000df37
xor edx, edx
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_CreateDirectoryW]
lea rcx, [rbp - 0x78]
call fcn.14000c8a0
nop
mov rdx, qword [rax]
mov r8d, dword [rdx - 0x10]
lea rcx, [rbp - 0x48]
call fcn.140003cd0
nop
mov rdx, qword [rbp - 0x78]
add rdx, 0xffffffffffffffe8
mov eax, edi
lock xadd dword [rdx + 0x10], eax
sub eax, 1
jg 0x14000df70
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
nop
xorps xmm0, xmm0
movdqa xmmword [rbp + 0x10], xmm0
lea rcx, [rbp]
call fcn.140005ff0
mov qword [rax + 0x10], r15
mov qword [rax + 0x18], 7
mov word [rsp + 0x54], r15w
lea rdx, [rsp + 0x54]
mov rcx, rax
call fcn.140006420
nop
xorps xmm0, xmm0
movdqa xmmword [rbp + 0x30], xmm0
lea rcx, [rbp + 0x20]
call fcn.140005ff0
mov qword [rax + 0x10], r15
mov qword [rax + 0x18], 7
mov word [rsp + 0x56], r15w
lea rdx, [rsp + 0x56]
mov rcx, rax
call fcn.140006420
nop
xorps xmm0, xmm0
movdqa xmmword [rbp + 0x50], xmm0
lea rcx, [rbp + 0x40]
call fcn.140005ff0
mov qword [rax + 0x10], r15
mov qword [rax + 0x18], 7
mov word [rsp + 0x58], r15w
lea rdx, [rsp + 0x58]
mov rcx, rax
call fcn.140006420
nop
xorps xmm0, xmm0
movdqa xmmword [rbp + 0x70], xmm0
lea rcx, [rbp + 0x60]
call fcn.140005ff0
mov qword [rax + 0x10], r15
mov qword [rax + 0x18], 7
mov word [rsp + 0x5a], r15w
lea rdx, [rsp + 0x5a]
mov rcx, rax
call fcn.140006420
nop
xorps xmm0, xmm0
movdqa xmmword [rbp + 0x90], xmm0
lea rcx, [rbp + 0x80]
call fcn.140005ff0
mov qword [rax + 0x10], r15
mov qword [rax + 0x18], 7
mov word [rsp + 0x5c], r15w
lea rdx, [rsp + 0x5c]
mov rcx, rax
call fcn.140006420
nop
lea rcx, [rbp]
call fcn.14000ffc0
nop
lea rcx, [rbp + 0x40]
call fcn.140006930
mov rbx, rax
lea rcx, [rbp + 0x20]
call fcn.140006930
mov r9, rbx
mov r8, rax
lea rdx, str.._s._s.
lea rcx, [rbp - 0x48]
call fcn.14000a3a0
mov rcx, qword [rbp - 0x48]
add rcx, 0xffffffffffffffe8
call fcn.140004c20
add rax, 0x18
mov qword [rbp - 0x38], rax
mov rdx, qword [rbp - 0x10]
lea r14, [rdx - 0x18]
mov r8d, dword [r14 + 8]
lea rcx, [rbp - 0x38]
call fcn.140003cd0
lea rdx, str..dmp
mov rax, rdi
inc rax
cmp word [rdx + rax*2], 0
jne 0x14000e0d4
mov r8d, eax
lea rcx, [rbp - 0x38]
call fcn.140003cd0
lea rdx, str.exception.log
mov rax, rdi
inc rax
cmp word [rdx + rax*2], 0
jne 0x14000e0f4
mov r8d, eax
lea rcx, [rbp - 0x48]
call fcn.140003cd0
mov esi, r15d
mov qword [rbp - 0x60], r15
lea rax, [rbp - 0x60]
mov qword [rsp + 0x20], rax
mov r9d, 0x101
xor r8d, r8d
lea rdx, str.SOFTWAREMacriumCommon
mov rcx, 0xffffffff80000002
call qword [sym.imp.ADVAPI32.dll_RegOpenKeyExW]
test eax, eax
jne 0x14000e17f
mov dword [rbp - 0x40], r15d
mov dword [rbp - 0x18], 4
lea rax, [rbp - 0x18]
mov qword [rsp + 0x28], rax
lea rax, [rbp - 0x40]
mov qword [rsp + 0x20], rax
xor r9d, r9d
xor r8d, r8d
lea rdx, str.CrashDumpType
mov rcx, qword [rbp - 0x60]
call qword [sym.imp.ADVAPI32.dll_RegQueryValueExW]
test eax, eax
cmove esi, dword [rbp - 0x40]
mov rcx, qword [rbp - 0x60]
call qword [sym.imp.ADVAPI32.dll_RegCloseKey]
mov r8, r12
lea rdx, [rbp - 0x38]
lea rcx, [rbp - 0x48]
call fcn.14000d7c0
call qword [sym.imp.KERNEL32.dll_GetCurrentProcessId]
mov r13d, eax
call qword [sym.imp.KERNEL32.dll_GetCurrentProcess]
mov qword [rbp - 0x70], rax
mov qword [rsp + 0x30], r15
mov dword [rsp + 0x28], 0x80
mov dword [rsp + 0x20], 2
xor r9d, r9d
xor r8d, r8d
mov edx, 0x40000000
mov rbx, qword [rbp - 0x38]
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_CreateFileW]
mov r15, rax
cmp rax, 0xffffffffffffffff
je 0x14000e22a
xor eax, eax
mov qword [rbp - 0x58], rax
mov qword [rbp - 0x50], rax
call qword [sym.imp.KERNEL32.dll_GetCurrentThreadId]
mov dword [rbp - 0x58], eax
mov qword [rbp - 0x54], r12
lea rcx, [rbp - 0x58]
test r12, r12
mov eax, 0
cmove rcx, rax
mov qword [rsp + 0x30], rax
mov qword [rsp + 0x28], rax
mov qword [rsp + 0x20], rcx
mov r9d, esi
mov r8, r15
mov edx, r13d
mov rcx, qword [rbp - 0x70]
call qword [sym.imp.dbghelp.dll_MiniDumpWriteDump]
mov rcx, r15
call qword [sym.imp.KERNEL32.dll_CloseHandle]
cmp dword [rsp + 0x64], 0
je 0x14000e2da
call fcn.140004ea0
mov rcx, rax
test rax, rax
je 0x14000e395
mov rax, qword [rax]
call qword [rax + reloc.OLEAUT32.dll_SafeArrayGetElement]
add rax, 0x18
mov qword [rbp - 0x30], rax
lea rdx, str.A_critical_error_occurred__the_application_will_now_terminate._r_n_r_n
cmp rdx, 0x10000
jae 0x14000e272
movzx edx, dx
lea rcx, [rbp - 0x30]
call fcn.14000f590
jmp 0x14000e28c
mov rax, rdi
inc rax
cmp word [rdx + rax*2], 0
jne 0x14000e275
mov r8d, eax
lea rcx, [rbp - 0x30]
call fcn.140004960
nop
mov r8, rbx
lea rdx, str.A_dump_file_is_created:__s
lea rcx, [rbp - 0x30]
call fcn.14000a3a0
mov r9d, sendto
lea r8, str.Critical_Error
mov rbx, qword [rbp - 0x30]
mov rdx, rbx
xor ecx, ecx
call qword [sym.imp.USER32.dll_MessageBoxW]
nop
lea rdx, [rbx - 0x18]
mov eax, edi
lock xadd dword [rdx + 0x10], eax
sub eax, 1
jg 0x14000e2d6
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
nop
mov rbx, qword [rbp - 0x38]
lea rdx, [rbx - 0x18]
mov eax, edi
lock xadd dword [rdx + 0x10], eax
sub eax, 1
jg 0x14000e2f4
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
nop
lea rcx, [rbp + 0x80]
call fcn.14000a480
nop
lea rcx, [rbp + 0x60]
call fcn.14000a480
nop
lea rcx, [rbp + 0x40]
call fcn.14000a480
nop
lea rcx, [rbp + 0x20]
call fcn.14000a480
nop
lea rcx, [rbp]
call fcn.14000a480
nop
mov rdx, qword [rbp - 0x48]
add rdx, 0xffffffffffffffe8
mov eax, edi
lock xadd dword [rdx + 0x10], eax
sub eax, 1
jg 0x14000e347
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
nop
lock xadd dword [r14 + 0x10], edi
sub edi, 1
jg 0x14000e360
mov rcx, qword [r14]
mov r8, qword [rcx]
mov rdx, r14
call qword [rreloc.OLEAUT32.dll_VariantClear + 8]
nop
mov eax, 1
mov rcx, qword [rbp + 0x2b0]
xor rcx, rsp
call fcn.1400dbfd0
lea r11, [rsp + 0x3c0]
mov rbx, qword [r11 + 0x38]
mov rsi, qword [r11 + 0x40]
mov rdi, qword [r11 + 0x48]
mov rsp, r11
pop r15
pop r14
pop r13
pop r12
pop rbp
ret
mov ecx, 0x80004005
call fcn.140004d90
nop
mov ecx, 0x80004005
call fcn.140004d90
nop
call fcn.14000c690
int3
mov ecx, 0x80004005
call fcn.140004d90
int3