Function at 0x14001a6f8
Capabilities:
Check if file exists
Delete file
Move file
Read file on windows
Write file on windows

Disassembly:
push rbp
push rbx
push rdi
push r12
push r13
push r14
push r15
lea rbp, [rsp - 0x80]
sub rsp, 0x180
mov qword [rsp + 0x70], 0xfffffffffffffffe
mov rax, qword [0x140178010]
xor rax, rsp
mov qword [rbp + 0x70], rax
mov rbx, r8
mov qword [rsp + 0x50], rbx
mov r13, rdx
mov r14, rcx
lea rdx, [0x1401782b0]
mov r15d, 1
mov rcx, qword [0x1401782b0]
cmp rcx, rdx
je 0x14001a77d
test byte [rcx + 0x1c], r15b
je 0x14001a77d
cmp byte [rcx + 0x19], 4
jb 0x14001a77d
mov edx, 0xfe
lea r8, [0x140151a70]
mov rcx, qword [rcx + 0x10]
call fcn.140004c6c
mov rcx, qword [0x1401782b0]
lea rdx, [0x1401782b0]
or rax, 0xffffffffffffffff
mov qword [rsp + 0x68], rax
mov qword [rsp + 0x40], rax
and qword [rsp + 0x58], 0
xor r12b, r12b
mov dword [rsp + 0x60], r12d
movups xmm0, xmmword [0x140161c08]
movups xmmword [rsp + 0x78], xmm0
and dword [rsp + 0x48], 0
movq rax, xmm0
cmp qword [r13], rax
jne 0x14001a7f9
mov rax, qword [r13 + 8]
cmp rax, qword [0x140161c10]
jne 0x14001a7f9
cmp rcx, rdx
je 0x14001a7ef
test byte [rcx + 0x1c], r15b
je 0x14001a7ef
cmp byte [rcx + 0x19], 2
jb 0x14001a7ef
mov edx, 0xff
lea r8, [0x140151a70]
mov rcx, qword [rcx + 0x10]
call fcn.140004c6c
mov rcx, qword [0x1401782b0]
mov edi, 0x80070057
jmp 0x14001af33
test byte [r14 + 0x154], r15b
je 0x14001a826
xor r8d, r8d
lea rdx, [rsp + 0x58]
mov rcx, rbx
call fcn.14008704c
mov edi, eax
test eax, eax
js 0x14001af0c
mov r15, qword [rsp + 0x58]
jmp 0x14001a8cb
lea r8, [rsp + 0x58]
lea rdx, str.TempMediaId
mov rcx, qword [r14 + 0x248]
call fcn.140087120
mov edi, eax
test eax, eax
js 0x14001af0c
mov r15, qword [rsp + 0x58]
mov rcx, r15
call qword [sym.imp.KERNEL32.dll_DeleteFileW]
test eax, eax
jne 0x14001a8cb
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov ebx, eax
cmp eax, 2
je 0x14001a8c6
mov rcx, qword [0x1401782b0]
lea r13, [0x1401782b0]
cmp rcx, r13
je 0x14001a8ad
mov eax, 1
test byte [rcx + 0x1c], al
je 0x14001a8ad
cmp byte [rcx + 0x19], 2
jb 0x14001a8ad
mov edx, 0x100
mov dword [rsp + 0x20], ebx
mov r9, r15
lea r8, [0x140151a70]
mov rcx, qword [rcx + 0x10]
call fcn.140005ce8
mov rcx, qword [0x1401782b0]
movzx edi, bx
or edi, 0x80070000
test ebx, ebx
cmovle edi, ebx
mov r12d, 1
jmp 0x14001ae80
mov rbx, qword [rsp + 0x50]
cmp dword [r14 + 0x150], 4
setne al
lea rcx, [rsp + 0x40]
mov qword [rsp + 0x38], rcx
mov byte [rsp + 0x30], al
mov dword [rsp + 0x20], 0x80
mov r9d, 2
xor r8d, r8d
mov edx, 0xc0000000
mov rcx, r15
call fcn.14008ae2c
mov edi, eax
test eax, eax
jns 0x14001a95f
mov rcx, qword [0x1401782b0]
lea r13, [0x1401782b0]
cmp rcx, r13
je 0x14001ae5f
mov eax, 1
test byte [rcx + 0x1c], al
je 0x14001ae5f
cmp byte [rcx + 0x19], 2
jb 0x14001ae5f
mov edx, 0x101
mov dword [rsp + 0x20], edi
mov r9, r15
lea r8, [0x140151a70]
mov rcx, qword [rcx + 0x10]
call fcn.140005ce8
mov rcx, qword [0x1401782b0]
jmp 0x14001ae5f
mov al, byte [r14 + 0x154]
mov ecx, 1
movzx r12d, r12b
and al, cl
cmovne r12d, ecx
mov dword [rsp + 0x60], r12d
and qword [rsp + 0x20], 0
lea r9, [rsp + 0x48]
lea r8d, [rcx + 0xf]
mov rdx, r13
mov rdi, qword [rsp + 0x40]
mov rcx, rdi
call qword [sym.imp.KERNEL32.dll_WriteFile]
test eax, eax
jne 0x14001a9ff
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov ebx, eax
mov rcx, qword [0x1401782b0]
lea r13, [0x1401782b0]
cmp rcx, r13
je 0x14001a9ec
mov eax, 1
test byte [rcx + 0x1c], al
je 0x14001a9ec
cmp byte [rcx + 0x19], 2
jb 0x14001a9ec
mov edx, 0x102
mov dword [rsp + 0x20], ebx
mov r9, r15
lea r8, [0x140151a70]
mov rcx, qword [rcx + 0x10]
call fcn.140005ce8
mov rcx, qword [0x1401782b0]
movzx edi, bx
or edi, 0x80070000
test ebx, ebx
cmovle edi, ebx
jmp 0x14001ae5f
mov r9d, dword [rsp + 0x48]
cmp r9d, 0x10
je 0x14001aa69
mov edi, 0x8007045d
mov rcx, qword [0x1401782b0]
lea r13, [0x1401782b0]
cmp rcx, r13
je 0x14001ae5f
mov r12d, 1
test byte [rcx + 0x1c], r12b
je 0x14001ae65
cmp byte [rcx + 0x19], 2
jb 0x14001ae65
mov edx, 0x103
mov dword [rsp + 0x20], 0x10
lea r8, [0x140151a70]
mov rcx, qword [rcx + 0x10]
call fcn.1400103bc
mov rcx, qword [0x1401782b0]
jmp 0x14001ae65
mov rcx, rdi
call qword [sym.imp.KERNEL32.dll_FlushFileBuffers]
test eax, eax
jne 0x14001aae5
call qword [sym.imp.ntdll.dll_RtlGetLastNtStatus]
mov edi, eax
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov ebx, eax
mov rcx, qword [0x1401782b0]
lea r13, [0x1401782b0]
mov r12d, 1
cmp rcx, r13
je 0x14001aad2
test byte [rcx + 0x1c], r12b
je 0x14001aad2
cmp byte [rcx + 0x19], 2
jb 0x14001aad2
mov edx, 0x104
mov dword [rsp + 0x28], edi
mov dword [rsp + 0x20], eax
mov r9, r15
lea r8, [0x140151a70]
mov rcx, qword [rcx + 0x10]
call fcn.140010c10
mov rcx, qword [0x1401782b0]
movzx edi, bx
or edi, 0x80070000
test ebx, ebx
cmovle edi, ebx
jmp 0x14001ae65
mov rcx, rdi
call qword [sym.imp.KERNEL32.dll_CloseHandle]
or qword [rsp + 0x58], 0xffffffffffffffff
mov r12d, 1
test byte [r14 + 0x154], r12b
jne 0x14001ab8d
mov r8d, r12d
mov rdx, rbx
mov rcx, r15
call qword [sym.imp.KERNEL32.dll_MoveFileExW]
test eax, eax
jne 0x14001ab88
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov ebx, eax
mov rcx, qword [0x1401782b0]
lea r13, [0x1401782b0]
cmp rcx, r13
je 0x14001ab70
test byte [rcx + 0x1c], r12b
je 0x14001ab70
mov r14, qword [rsp + 0x50]
cmp byte [rcx + 0x19], 2
jb 0x14001ab75
mov edx, 0x105
mov dword [rsp + 0x28], eax
mov qword [rsp + 0x20], r14
mov r9, r15
lea r8, [0x140151a70]
mov rcx, qword [rcx + 0x10]
call fcn.140005e64
mov rcx, qword [0x1401782b0]
jmp 0x14001ab75
mov r14, qword [rsp + 0x50]
movzx edi, bx
or edi, 0x80070000
test ebx, ebx
cmovle edi, ebx
jmp 0x14001ae85
mov byte [rsp + 0x60], r12b
lea rax, [rsp + 0x68]
mov qword [rsp + 0x38], rax
mov byte [rsp + 0x30], 0
mov dword [rsp + 0x20], 0x2000000
mov r9d, 3
mov r8d, r12d
mov edx, 0x80000000
mov rcx, rbx
call fcn.14008ae2c
mov edi, eax
test eax, eax
jns 0x14001ac13
mov rcx, qword [0x1401782b0]
lea r13, [0x1401782b0]
cmp rcx, r13
je 0x14001ae3e
test byte [rcx + 0x1c], r12b
je 0x14001ae3e
cmp byte [rcx + 0x19], 2
jb 0x14001ae3e
mov edx, 0x106
mov dword [rsp + 0x20], eax
mov r9, rbx
lea r8, [0x140151a70]
mov rcx, qword [rcx + 0x10]
call fcn.140005ce8
mov rcx, qword [0x1401782b0]
jmp 0x14001ae3e
and dword [rsp + 0x48], 0
and qword [rsp + 0x20], 0
lea r9, [rsp + 0x48]
mov r8d, 0x10
lea rdx, [rsp + 0x78]
mov rcx, qword [rsp + 0x68]
call qword [sym.imp.KERNEL32.dll_ReadFile]
test eax, eax
jne 0x14001ac8a
call qword [sym.imp.KERNEL32.dll_GetLastError]
movzx edi, ax
or edi, 0x80070000
test eax, eax
cmovle edi, eax
mov rcx, qword [0x1401782b0]
lea r13, [0x1401782b0]
cmp rcx, r13
je 0x14001ae3e
test byte [rcx + 0x1c], r12b
je 0x14001ae3e
cmp byte [rcx + 0x19], 2
jb 0x14001ae3e
mov edx, 0x107
mov dword [rsp + 0x20], edi
jmp 0x14001abf4
cmp dword [rsp + 0x48], 0x10
jne 0x14001adbb
mov rax, qword [rsp + 0x78]
cmp rax, qword [r13]
jne 0x14001adbb
mov rax, qword [rbp - 0x80]
cmp rax, qword [r13 + 8]
jne 0x14001adbb
test byte [r14 + 0x154], 0x80
je 0x14001ae30
cmp byte [r14 + 0x114], 0
je 0x14001ae30
mov ecx, 0x40
call fcn.1401470a8
mov qword [rsp + 0x40], rax
test rax, rax
je 0x14001acef
mov rcx, rax
call fcn.14003babc
mov r12, rax
jmp 0x14001acf2
xor r12d, r12d
mov rdx, rbx
mov rcx, r12
call fcn.14001186c
mov edi, eax
test eax, eax
js 0x14001adb3
mov r8d, 0x10
mov rdx, r13
mov rcx, r12
call fcn.140011b90
mov edi, eax
test eax, eax
jns 0x14001ad6c
mov rcx, qword [0x1401782b0]
lea r13, [0x1401782b0]
mov r12d, 1
cmp rcx, r13
je 0x14001ae3e
test byte [rcx + 0x1c], r12b
je 0x14001ae3e
cmp byte [rcx + 0x19], 2
jb 0x14001ae3e
mov edx, 0x109
mov r9d, eax
lea r8, [0x140151a70]
mov rcx, qword [rcx + 0x10]
call fcn.140004c90
jmp 0x14001ac07
lea rbx, [r14 + 0x308]
mov r14, qword [rbx + 8]
cmp r14, qword [rbx + 0x10]
jb 0x14001ad98
lea rdx, [r14 + 1]
mov rcx, rbx
call fcn.14000ff48
test al, al
jne 0x14001ad98
mov ecx, 0x8007000e
call fcn.140001b20
int3
mov rax, qword [rbx]
lea rcx, [rax + r14*8]
test rcx, rcx
je 0x14001ada7
mov qword [rcx], r12
mov r12d, 1
add qword [rbx + 8], r12
jmp 0x14001ae30
mov r12d, 1
jmp 0x14001ae30
mov edi, 0x8007045d
mov rcx, qword [0x1401782b0]
lea rax, [0x1401782b0]
cmp rcx, rax
je 0x14001ae37
test byte [rcx + 0x1c], r12b
je 0x14001ae37
cmp byte [rcx + 0x19], 2
jb 0x14001ae37
lea rdx, [rsp + 0x78]
lea rcx, [rbp - 0x70]
call fcn.140086d70
mov rbx, rax
mov rdx, r13
lea rcx, [rbp]
call fcn.140086d70
mov edx, 0x108
mov dword [rsp + 0x30], 0x10
mov qword [rsp + 0x28], rbx
mov dword [rsp + 0x20], 0x10
mov r9, rax
lea r8, [0x140151a70]
mov rcx, qword [0x1401782b0]
mov rcx, qword [rcx + 0x10]
call fcn.140010cb4
mov rcx, qword [0x1401782b0]
lea r13, [0x1401782b0]
cmp qword [rsp + 0x68], 0xffffffffffffffff
je 0x14001ae80
mov rcx, qword [rsp + 0x68]
call qword [sym.imp.KERNEL32.dll_CloseHandle]
mov rcx, qword [0x1401782b0]
mov rax, qword [rsp + 0x58]
jmp 0x14001ae6a
mov r12d, 1
mov rax, qword [rsp + 0x40]
cmp rax, 0xffffffffffffffff
je 0x14001ae80
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_CloseHandle]
mov rcx, qword [0x1401782b0]
mov r14, qword [rsp + 0x50]
test edi, edi
jns 0x14001af18
cmp byte [rsp + 0x60], 0
je 0x14001af18
cmp rcx, r13
je 0x14001aec5
test byte [rcx + 0x1c], r12b
je 0x14001aec5
cmp byte [rcx + 0x19], 4
jb 0x14001aec5
mov edx, 0x10a
mov dword [rsp + 0x20], edi
mov r9, r14
lea r8, [0x140151a70]
mov rcx, qword [rcx + 0x10]
call fcn.140005ce8
xor r8d, r8d
xor edx, edx
mov rcx, r14
call fcn.14008b188
test eax, eax
jns 0x14001af11
mov rcx, qword [0x1401782b0]
cmp rcx, r13
je 0x14001af18
test byte [rcx + 0x1c], r12b
je 0x14001af18
cmp byte [rcx + 0x19], 2
jb 0x14001af18
mov edx, 0x10b
mov dword [rsp + 0x20], eax
mov r9, r14
lea r8, [0x140151a70]
mov rcx, qword [rcx + 0x10]
call fcn.140005ce8
jmp 0x14001af11
mov r15, qword [rsp + 0x58]
mov rcx, qword [0x1401782b0]
test r15, r15
je 0x14001af2d
mov rcx, r15
call qword [sym.imp.ole32.dll_CoTaskMemFree]
mov rcx, qword [0x1401782b0]
mov r15d, 1
lea rax, [0x1401782b0]
cmp rcx, rax
je 0x14001af60
test byte [rcx + 0x1c], r15b
je 0x14001af60
cmp byte [rcx + 0x19], 4
jb 0x14001af60
mov edx, 0x10c
lea r8, [0x140151a70]
mov rcx, qword [rcx + 0x10]
call fcn.140004c6c
mov eax, edi
mov rcx, qword [rbp + 0x70]
xor rcx, rsp
call fcn.1401474d0
add rsp, 0x180
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rbx
pop rbp
ret