Function at 0x140001d94
Capabilities:
Check if file exists
Get file attributes
Set file attributes
Write file on windows

Disassembly:
mov qword [rsp + 0x10], rbx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0x90
test rcx, rcx
mov r13, r8
mov r12, rdx
mov rdi, rcx
je 0x140002034
test rdx, rdx
je 0x140002034
mov rcx, qword [rcx + 0x70]
test rcx, rcx
je 0x140001e03
mov r9, r8
mov edx, 0x1400
xor r8d, r8d
call qword [sym.imp.USER32.dll_PostMessageW]
mov rcx, qword [rdi + 0x70]
lea r9, [r12 + 0x10]
xor r8d, r8d
mov edx, 0x1401
call qword [sym.imp.USER32.dll_PostMessageW]
mov r11, qword [rdi + 0x78]
test r11, r11
je 0x140001e03
call r11
mov rcx, r13
call qword [sym.imp.KERNEL32.dll_GetFileAttributesW]
cmp eax, 0xffffffff
je 0x140001e1f
and eax, 0xfffffffa
mov rcx, r13
mov edx, eax
call qword [sym.imp.KERNEL32.dll_SetFileAttributesW]
mov ecx, 0x10000
call fcn.140001ab8
and qword [rsp + 0x30], 0
xor r9d, r9d
lea rbx, [rax + 0x10000]
xor r8d, r8d
mov edx, 0x40000000
mov rcx, r13
mov dword [rsp + 0x28], 0x80
mov rsi, rax
mov qword [rsp + 0x80], rbx
mov qword [rsp + 0x68], rax
mov rbp, rax
mov qword [rsp + 0x78], rax
mov qword [rsp + 0x70], rax
mov dword [rsp + 0x20], 2
call qword [sym.imp.KERNEL32.dll_CreateFileW]
cmp rax, 0xffffffffffffffff
mov qword [rsp + 0x60], rax
jne 0x140001e8f
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov ebx, eax
jmp 0x140001fc8
mov r15, qword [r12 + 0x10]
lea rcx, [0x140001c4c]
mov qword [rsp + 0x58], rdi
test r15, r15
mov qword [rsp + 0x50], rcx
mov rcx, qword [rdi + 0x68]
mov qword [rsp + 0x48], rcx
je 0x140001fd9
sub ebx, ebp
lea rdx, [rsp + 0x50]
mov r8, rbp
mov eax, ebx
cmp rax, r15
lea rax, [rsp + 0xd0]
cmova ebx, r15d
mov qword [rsp + 0x20], rax
mov r14d, ebx
mov r9d, ebx
mov qword [rsp + 0x40], r14
sub r15, r14
call fcn.14000249c
test eax, eax
jne 0x140001fc3
cmp dword [rsp + 0xd0], ebx
jne 0x140001fbc
add rbp, r14
mov qword [rsp + 0x70], rsi
mov r14, rsi
mov ebx, ebp
mov qword [rsp + 0x78], rbp
sub ebx, esi
je 0x140001f4f
mov rcx, qword [rsp + 0x60]
and qword [rsp + 0x20], 0
lea r9, [rsp + 0xe8]
mov r8d, ebx
mov rdx, r14
call qword [sym.imp.KERNEL32.dll_WriteFile]
test eax, eax
je 0x140001fa4
mov ecx, dword [rsp + 0xe8]
test ecx, ecx
je 0x140001fae
add r14, rcx
sub ebx, ecx
mov qword [rsp + 0x70], r14
jne 0x140001f15
mov rbp, rsi
mov qword [rsp + 0x78], rsi
mov qword [rsp + 0x70], rsi
xor ebx, ebx
test ebx, ebx
jne 0x140001fc8
mov rcx, qword [rdi + 0x70]
test rcx, rcx
je 0x140001f8e
mov r9, qword [rsp + 0x40]
xor r8d, r8d
mov edx, 0x1402
call qword [sym.imp.USER32.dll_PostMessageW]
mov r11, qword [rdi + 0x78]
test r11, r11
je 0x140001f8e
call r11
test eax, eax
je 0x140001fb5
test r15, r15
je 0x140001fd4
mov rcx, qword [rsp + 0x48]
lea rbx, [rsi + 0x10000]
jmp 0x140001eb7
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov ebx, eax
jmp 0x140001f5e
mov ebx, 0x27
jmp 0x140001fc8
mov ebx, 0x4c7
jmp 0x140001fc8
mov ebx, 0x26
jmp 0x140001fc8
mov ebx, 0x1e
lea rcx, [rsp + 0x60]
call fcn.140001b08
jmp 0x14000200a
mov rax, qword [rsp + 0x60]
lea r9, [r12 + 0x20]
xor r8d, r8d
xor edx, edx
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_SetFileTime]
lea rcx, [rsp + 0x60]
call fcn.140001b08
test eax, eax
mov ebx, eax
jne 0x14000200a
mov edx, dword [r12 + 0x28]
mov rcx, r13
call qword [sym.imp.KERNEL32.dll_SetFileAttributesW]
mov rcx, qword [rdi + 0x70]
test rcx, rcx
je 0x140002030
mov r9d, ebx
xor r8d, r8d
mov edx, 0x1403
call qword [sym.imp.USER32.dll_PostMessageW]
mov r11, qword [rdi + 0x78]
test r11, r11
je 0x140002030
call r11
mov eax, ebx
jmp 0x140002039
mov eax, 0x57
mov rbx, qword [rsp + 0xd8]
add rsp, 0x90
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret