Function at 0x180039f20
Capabilities:
Check if file exists
Create directory
Delete file
Get common file path
Move file

Disassembly:
mov qword [rsp + 0x18], rbx
mov qword [rsp + 0x20], rbp
push rsi
push rdi
push r15
sub rsp, 0x40
mov ecx, 0x208
mov rbx, 0xffffffffffffffff
call fcn.18003ece0
mov ecx, 0x208
mov r15, rax
call fcn.18003ece0
mov rsi, rax
test r15, r15
je 0x18003a228
test rax, rax
je 0x18003a228
mov rdx, r15
mov ecx, 0x104
call qword [sym.imp.KERNEL32.dll_GetTempPathW]
test eax, eax
jne 0x180039f83
lea rcx, str.WDDMCoreDump:_GetTempPath___failed._n
jmp 0x18003a22f
lea rdi, str.VM3D
mov r9, r15
lea r8, str._s_s
mov qword [rsp + 0x20], rdi
mov edx, 0x104
mov rcx, rsi
call fcn.18003a260
xor edx, edx
mov rcx, rsi
call qword [sym.imp.KERNEL32.dll_CreateDirectoryW]
test eax, eax
jne 0x180039fd6
call qword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 0xb7
je 0x180039fd6
mov rdx, rsi
lea rcx, str.WDDMCoreDump:_CreateDirectory___for__S_failed._n
call fcn.180033e10
jmp 0x18003a234
mov qword [rsp + 0x28], rdi
lea r8, str._s_s_s.dmp
mov r9, r15
mov qword [rsp + 0x20], rdi
mov edx, 0x104
mov rcx, rsi
call fcn.18003a260
mov qword [rsp + 0x30], 0
xor r9d, r9d
mov dword [rsp + 0x28], 0x80
xor r8d, r8d
mov edx, 0x40000000
mov dword [rsp + 0x20], 1
mov rcx, rsi
call qword [sym.imp.KERNEL32.dll_CreateFileW]
mov rbx, rax
cmp rax, 0xffffffffffffffff
jne 0x18003a234
call qword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 0x50
jne 0x18003a217
mov ecx, 0x208
call fcn.18003ece0
mov rbp, rax
test rax, rax
je 0x18003a228
mov qword [rsp + 0x28], rdi
lea r8, str._s_s_s
mov r9, r15
mov qword [rsp + 0x20], rdi
mov edx, 0x104
mov qword [rsp + 0x68], r14
mov rcx, rax
call fcn.18003a260
mov rdx, rsi
lea rcx, str.WDDMCoreDump:_Minidump_file__S_exists._Rotating_..._n
call fcn.180033750
mov ecx, 0x208
call fcn.18003ece0
mov ecx, 0x208
mov r14, rax
call fcn.18003ece0
mov rbx, rax
test r14, r14
je 0x18003a1a0
test rax, rax
je 0x18003a1a0
mov qword [rsp + 0x60], r12
mov edi, 9
lea r12, str..dmp
nop dword [rax + rax]
mov r9, rbp
mov edx, 0x104
mov rcx, rbx
test edi, edi
jne 0x18003a0f2
lea r8, str._s_s
mov qword [rsp + 0x20], r12
call fcn.18003a260
jmp 0x18003a10a
lea eax, [rdi - 1]
mov qword [rsp + 0x28], r12
lea r8, str._s__d_s
mov dword [rsp + 0x20], eax
call fcn.18003a260
mov qword [rsp + 0x28], r12
lea r8, str._s__d_s
mov r9, rbp
mov dword [rsp + 0x20], edi
mov edx, 0x104
mov rcx, r14
call fcn.18003a260
mov rcx, rbx
cmp edi, 9
jne 0x18003a15f
call qword [sym.imp.KERNEL32.dll_DeleteFileW]
test eax, eax
jne 0x18003a190
call qword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 2
je 0x18003a190
mov r8, rbx
lea rdx, str.FileRotateWDDM
lea rcx, str.__s:_failed_to_remove__S_n
call fcn.180033750
jmp 0x18003a190
mov rdx, r14
call qword [sym.imp.KERNEL32.dll_MoveFileW]
test eax, eax
jne 0x18003a190
call qword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 2
je 0x18003a190
mov r9, r14
lea rdx, str.FileRotateWDDM
mov r8, rbx
lea rcx, str.__s:_failed_to_rename__S_____S_n
call fcn.180033750
sub edi, 1
jns 0x18003a0d0
mov r12, qword [rsp + 0x60]
jmp 0x18003a1b3
lea rdx, str.FileRotateWDDM
lea rcx, str.__s:_failed_to_malloc_n
call fcn.180033750
mov rcx, r14
call fcn.18003ecc4
mov rcx, rbx
call fcn.18003ecc4
mov rcx, rbp
call fcn.18003ecc4
mov qword [rsp + 0x30], 0
xor r9d, r9d
mov dword [rsp + 0x28], 0x80
xor r8d, r8d
mov edx, 0x40000000
mov dword [rsp + 0x20], 1
mov rcx, rsi
call qword [sym.imp.KERNEL32.dll_CreateFileW]
mov r14, qword [rsp + 0x68]
mov rbx, rax
cmp rax, 0xffffffffffffffff
jne 0x18003a234
mov rdx, rsi
lea rcx, str.WDDMCoreDump:_Cannot_rotate_open_minidump_file__S._n
call fcn.180033e10
jmp 0x18003a234
mov rdx, rsi
lea rcx, str.WDDMCoreDump:_Cannot_open_minidump_file__S._n
call fcn.180033e10
jmp 0x18003a234
lea rcx, str.WDDMCoreDump:_malloc___failed._n
call fcn.180033e10
mov rcx, r15
call fcn.18003ecc4
mov rcx, rsi
call fcn.18003ecc4
mov rbp, qword [rsp + 0x78]
mov rax, rbx
mov rbx, qword [rsp + 0x70]
add rsp, 0x40
pop r15
pop rdi
pop rsi
ret