Function at 0x1000227f4
Capabilities:
Check if file exists
Clear file content
Delete file
Get file attributes

Disassembly:
mov qword [rsp + 8], rbx
mov qword [rsp + 0x18], r8
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0x50
xor ebp, ebp
xor edi, edi
mov r13d, r9d
mov rsi, rdx
mov r15, rcx
test rdx, rdx
je 0x100022a8e
mov r14, qword [rsp + 0xb8]
test r14, r14
je 0x100022a8e
mov rcx, rdx
call qword [sym.imp.KERNEL32.dll_GetFileAttributesW]
cmp eax, 0xffffffff
je 0x10002284a
mov rcx, rsi
call fcn.1000177b8
or r13d, 0x2200020
cmp qword [r15 + 0x40], rdi
mov edx, 0xc0110100
mov ecx, 0xc11d0100
mov rax, r15
cmovne rax, qword [r15 + 0x40]
mov eax, dword [rax + 0x24]
bt eax, 0x10
mov dword [rsp + 0x98], eax
cmovb edx, ecx
and qword [rsp + 0x30], rdi
xor r9d, r9d
lea r8d, [r9 + 7]
mov rcx, rsi
mov dword [rsp + 0x28], r13d
mov dword [rsp + 0x20], 2
call qword [sym.imp.KERNEL32.dll_CreateFileW]
mov rbx, rax
cmp rax, 0xffffffffffffffff
je 0x100022a15
mov r12, qword [rsp + 0xb0]
test r12, r12
je 0x1000228fe
mov rdx, qword [r12]
xor r9d, r9d
xor r8d, r8d
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_SetFilePointerEx]
test eax, eax
je 0x1000229c6
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_SetEndOfFile]
test eax, eax
je 0x1000229c6
mov rdx, qword [0x10005d610]
xor r9d, r9d
xor r8d, r8d
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_SetFilePointerEx]
test eax, eax
je 0x1000229c6
mov ebp, 1
test r12, r12
je 0x1000229fd
bt dword [rsp + 0x98], 0x18
jae 0x1000229fd
bt r13d, 8
jb 0x1000229fd
bt r13d, 0x1a
jb 0x1000229fd
xor r13d, r13d
lea rax, [rsp + 0x98]
xor r9d, r9d
mov qword [rsp + 0x38], r13
mov qword [rsp + 0x30], rax
xor r8d, r8d
mov edx, 0x900c4
mov rcx, rbx
mov dword [rsp + 0x28], r13d
mov qword [rsp + 0x20], r13
mov ebp, r13d
call qword [sym.imp.KERNEL32.dll_DeviceIoControl]
cmp eax, r13d
je 0x1000229c0
and qword [rsp + 0x38], rdi
xor eax, eax
lea r9d, [r13 + 0x10]
mov dword [rsp + 0x48], eax
mov dword [rsp + 0x4c], eax
mov dword [rsp + 0x44], eax
mov rax, qword [r12]
lea r8, [rsp + 0x40]
mov edx, 0x980c8
mov qword [rsp + 0x48], rax
lea rax, [rsp + 0x98]
mov rcx, rbx
mov qword [rsp + 0x30], rax
and dword [rsp + 0x28], edi
and qword [rsp + 0x20], rdi
mov dword [rsp + 0x40], r13d
call qword [sym.imp.KERNEL32.dll_DeviceIoControl]
mov ebp, eax
test eax, eax
jne 0x1000229fd
call qword [sym.imp.KERNEL32.dll_GetLastError]
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov dword [rsp + 0x30], 0x114d
lea rcx, [0x10000f750]
movzx edx, ax
mov qword [rsp + 0x28], rcx
lea r9, [0x10000f780]
or edx, 0x80070000
test eax, eax
mov edi, eax
cmovle edx, eax
mov dword [rsp + 0x20], edx
jmp 0x100022a52
mov r8, qword [rsp + 0xa0]
mov rdx, rsi
mov rcx, rbx
mov qword [r14], rbx
call fcn.100017690
jmp 0x100022a62
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov edi, eax
cmp dword [rsp + 0xc0], ebp
je 0x100022a7e
movzx eax, ax
mov dword [rsp + 0x30], 0x1157
lea rcx, [0x10000f750]
or eax, 0x80070000
test edi, edi
mov qword [rsp + 0x28], rcx
cmovle eax, edi
lea r9, [0x10000ef18]
mov dword [rsp + 0x20], eax
mov r8, rsi
mov rdx, r15
mov ecx, 1
call fcn.100018010
test ebp, ebp
jne 0x100022a7e
cmp rbx, 0xffffffffffffffff
je 0x100022a7e
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_CloseHandle]
mov rcx, rsi
call qword [sym.imp.KERNEL32.dll_DeleteFileW]
test edi, edi
je 0x100022a8a
mov ecx, edi
call qword [sym.imp.KERNEL32.dll_SetLastError]
mov eax, ebp
jmp 0x100022a9b
mov ecx, 0x57
call qword [sym.imp.KERNEL32.dll_SetLastError]
xor eax, eax
mov rbx, qword [rsp + 0x90]
add rsp, 0x50
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret