Function at 0x14000d95c
Capabilities:
Check if file exists
Create directory

Disassembly:
mov qword [rsp + 0x10], rbx
push rdi
sub rsp, 0x2b0
mov rax, qword [section..data]
xor rax, rsp
mov qword [rsp + 0x2a0], rax
mov r8d, dword [rcx + 0xc8]
mov rdi, rcx
lea rdx, str.CRecorder__d_::SetProfileName
mov ecx, 8
call fcn.140001110
cmp qword [rdi + 0xe8], 0
je 0x14001b3d6
mov rcx, qword [rdi + 0xd0]
cmp qword [rcx + 0x28], 0
je 0x14001b3f8
mov rcx, qword [rcx + 0x28]
call qword [sym.imp.SHLWAPI.dll_PathFileExistsW]
test eax, eax
je 0x14001b41a
lea rcx, [rsp + 0x30]
call qword [sym.imp.ole32.dll_CoCreateGuid]
mov ebx, eax
test eax, eax
js 0x14001b475
lea rdx, [rsp + 0x40]
lea rcx, [rsp + 0x30]
mov r8d, reloc.OLEAUT32.dll_SafeArrayAllocDescriptorEx
call qword [sym.imp.ole32.dll_StringFromGUID2]
mov r11, qword [rdi + 0xd0]
and dword [rsp + 0x20], 0
mov r8, qword [r11 + 0x28]
lea r9, [rsp + 0x40]
lea rcx, [rsp + 0x90]
mov edx, 0x104
call fcn.14000ca68
mov ebx, eax
test eax, eax
js 0x14001b495
lea rcx, [rsp + 0x90]
call fcn.14000d520
mov ebx, eax
test eax, eax
js 0x14001b49e
mov rcx, qword [rdi + 0xd8]
lea rax, [rsp + 0x90]
cmp rax, rcx
je 0x14000da73
call qword [sym.imp.OLEAUT32.dll_SysStringLen]
lea rcx, [rsp + 0x90]
call qword [sym.imp.OLEAUT32.dll_SysReAllocString]
mov qword [rdi + 0xd8], rax
test rax, rax
je 0x14001b4a7
mov r9, qword [rdi + 0xd8]
mov r8d, dword [rdi + 0xc8]
lea rdx, str.CRecorder__d_::SetProfileName:__s
mov ecx, 4
call fcn.140001110
mov rcx, qword [rdi + 0xe8]
mov rax, qword [rcx]
call qword [rax + 0xb0]
mov rcx, qword [rdi + 0xe8]
mov rdx, qword [rdi + 0xd8]
mov rax, qword [rcx]
call qword [rax + 0x98]
mov ebx, eax
test eax, eax
js 0x14001b4b2
mov rcx, qword [rdi + 0xe8]
mov rax, qword [rcx]
call qword [rax + 0xa0]
mov ebx, eax
test eax, eax
js 0x14001b4bb
mov rdx, qword [rdi + 0xd8]
mov rcx, rdi
call fcn.14000db30
mov r8d, dword [rdi + 0xc8]
lea rdx, str.CRecorder__d_::SetProfileName:_SUCCEEDED
mov ecx, 8
call fcn.140001110
mov eax, ebx
mov rcx, qword [rsp + 0x2a0]
xor rcx, rsp
call fcn.140001170
mov rbx, qword [rsp + 0x2c8]
add rsp, 0x2b0
pop rdi
ret
mov r8d, dword [rdi + 0xc8]
lea rdx, str.CRecorder__d_::SetProfileName:_no_active_recorder
mov ecx, 1
call fcn.140001110
mov eax, 0x80040275
jmp 0x14000db06
mov r8d, dword [rdi + 0xc8]
lea rdx, str.CRecorder__d_::SetProfileName:_no_temp_path
mov ecx, 1
call fcn.140001110
mov eax, 0x8007064a
jmp 0x14000db06
mov rax, qword [rdi + 0xd0]
xor edx, edx
mov rcx, qword [rax + 0x28]
call qword [sym.imp.KERNEL32.dll_CreateDirectoryW]
test eax, eax
jne 0x14000d9c8
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov r9, qword [rdi + 0xd0]
mov r8d, dword [rdi + 0xc8]
mov r9, qword [r9 + 0x28]
movzx ebx, ax
lea rdx, str.CRecorder__d_::SetProfileName:_cannot_create_SharedSBE_path__s__hr__0x_08X
or ebx, 0x80070000
test eax, eax
mov ecx, 1
cmovle ebx, eax
mov dword [rsp + 0x20], ebx
call fcn.140001110
jmp 0x14000db04
lea rdx, str.CRecorder__d_::SetProfileName:_Failed_to_call_CoCreateGuid__0x_x.
mov r8d, dword [rdi + 0xc8]
mov r9d, eax
mov ecx, 1
call fcn.140001110
jmp 0x14000db04
lea rdx, str.CRecorder__d_::SetProfileName:_PathCchCombine_failed__hr_0x_08X
jmp 0x14001b47c
lea rdx, str.CRecorder__d_::SetProfileName:_PathCchAddExtension_failed__hr_0x_08X
jmp 0x14001b47c
mov ecx, 0x8007000e
call fcn.140029690
int3
lea rdx, str.CRecorder__d_::SetProfileName:_Cannot_put_TimeShiftName_0x_x
jmp 0x14001b47c
lea rdx, str.CRecorder__d_::SetProfileName:_Cannot_put_NameSetLock_0x_x
jmp 0x14001b47c