Function at 0x1401afb10
Capabilities:
Check if file exists
Create directory
Get file attributes
Write file on windows

Disassembly:
mov qword [rsp + 0x18], rsi
mov dword [rsp + 0x20], r9d
push rbp
push rdi
push r14
lea rbp, [rsp - 0x4c0]
sub rsp, 0x5c0
cmp dword [rcx + 8], 0xffffffff
mov rsi, r8
mov r14d, edx
mov rdi, rcx
je 0x1401afb44
mov rcx, qword [rcx]
call fcn.1401b0940
mov rcx, qword [rdi]
mov dword [rdi + 8], 0xffffffff
cmp r14d, dword [rcx + 8]
jl 0x1401afb5e
mov eax, 0x10000
jmp 0x1401aff0b
mov qword [rsp + 0x5e8], r15
cmp r14d, dword [rcx + 0x14]
jge 0x1401afb71
call fcn.1401b1250
mov rax, qword [rdi]
xor r15d, r15d
mov qword [rsp + 0x5e0], rbx
cmp dword [rax + 0x14], r14d
jge 0x1401afbdd
mov rbx, qword [rdi]
test rbx, rbx
je 0x1401afbd4
cmp dword [rbx + 0x1c], r15d
je 0x1401afbd4
mov edx, dword [rbx + 0x14]
inc edx
cmp edx, dword [rbx + 8]
je 0x1401afbd4
mov ecx, dword [rbx + 0x54]
mov eax, dword [rbx + 0x4c]
mov dword [rbx + 0x14], edx
add ecx, dword [rbx + 0x50]
add eax, 0x2e
lea r8, [rbx + 0x7c]
add ecx, eax
lea rdx, [rbx + 0x2c]
xor r9d, r9d
add dword [rbx + 0x18], ecx
mov rcx, rbx
mov dword [rsp + 0x20], r15d
call fcn.1401b12e0
mov ecx, r15d
test eax, eax
sete cl
mov dword [rbx + 0x1c], ecx
mov rax, qword [rdi]
cmp dword [rax + 0x14], r14d
jl 0x1401afb85
cmp r14d, 0xffffffff
jl 0x1401afbf2
lea r8, [rbp + 0x60]
mov edx, r14d
mov rcx, rdi
call fcn.1401b0060
test byte [rbp + 0x168], 0x10
movzx eax, byte [rsi]
je 0x1401afc37
cmp al, 0x2f
je 0x1401afc26
cmp al, 0x5c
je 0x1401afc26
test al, al
je 0x1401afc10
cmp byte [rsi + 1], 0x3a
je 0x1401afc26
lea rcx, [rdi + 0x150]
mov rdx, rsi
call fcn.1401aff30
xor eax, eax
jmp 0x1401afefb
xor ecx, ecx
mov rdx, rsi
call fcn.1401aff30
xor eax, eax
jmp 0x1401afefb
mov r9, rsi
mov rcx, rsi
test al, al
je 0x1401afc58
cmp al, 0x2f
je 0x1401afc49
cmp al, 0x5c
jne 0x1401afc4d
lea r9, [rcx + 1]
movzx eax, byte [rcx + 1]
inc rcx
test al, al
jne 0x1401afc41
lea rdx, [rsp + 0x50]
mov rcx, rsi
sub rdx, rsi
nop dword [rax]
nop word [rax + rax]
movzx eax, byte [rcx]
lea rcx, [rcx + 1]
mov byte [rcx + rdx - 1], al
test al, al
jne 0x1401afc70
cmp r9, rsi
jne 0x1401afc8b
mov byte [rsp + 0x50], r15b
jmp 0x1401afcae
mov rax, r9
sub rax, rsi
mov byte [rsp + rax + 0x50], r15b
movzx eax, byte [rsp + 0x50]
cmp al, 0x2f
je 0x1401afce9
cmp al, 0x5c
je 0x1401afce9
test al, al
je 0x1401afcae
cmp byte [rsp + 0x51], 0x3a
je 0x1401afce9
mov qword [rsp + 0x20], r9
lea r8, [rdi + 0x150]
lea rdx, str._s_s_s
lea r9, [rsp + 0x50]
lea rcx, [rbp + 0x3b0]
call qword [sym.imp.USER32.dll_wsprintfA]
lea rdx, [rsp + 0x50]
lea rcx, [rdi + 0x150]
call fcn.1401aff30
jmp 0x1401afdd2
lea r8, [rsp + 0x50]
lea rdx, str._s_s
lea rcx, [rbp + 0x3b0]
call qword [sym.imp.USER32.dll_wsprintfA]
movzx eax, byte [rsp + 0x50]
test al, al
je 0x1401afdd2
lea rbx, [rsp + 0x50]
lea rcx, [rsp + 0x50]
nop dword [rax]
cmp al, 0x2f
je 0x1401afd28
cmp al, 0x5c
jne 0x1401afd2b
mov rbx, rcx
movzx eax, byte [rcx + 1]
inc rcx
test al, al
jne 0x1401afd20
lea rax, [rsp + 0x50]
cmp rbx, rax
je 0x1401afd72
lea rax, [rsp + 0x50]
lea rdx, [rsp + 0x50]
lea rcx, [rbp + 0x2a0]
sub rbx, rax
mov r8, rbx
call fcn.140180a20
lea rdx, [rbp + 0x2a0]
xor ecx, ecx
mov byte [rbp + rbx + 0x2a0], r15b
call fcn.1401aff30
lea rcx, [rbp + 0x190]
mov byte [rbp + 0x190], r15b
dec rcx
cmp byte [rcx + 1], r15b
lea rcx, [rcx + 1]
jne 0x1401afd83
lea r8, [rsp + 0x50]
xor edx, edx
nop dword [rax]
nop dword [rax + rax]
movzx eax, byte [r8 + rdx]
lea rdx, [rdx + 1]
mov byte [rcx + rdx - 1], al
test al, al
jne 0x1401afda0
lea rcx, [rbp + 0x190]
call qword [sym.imp.KERNEL32.DLL_GetFileAttributesA]
cmp eax, 0xffffffff
jne 0x1401afdd2
lea rcx, [rbp + 0x190]
xor edx, edx
call qword [sym.imp.KERNEL32.DLL_CreateDirectoryA]
mov eax, dword [rbp + 0x168]
mov qword [rsp + 0x30], r15
lea rcx, [rbp + 0x3b0]
mov dword [rsp + 0x28], eax
xor r9d, r9d
xor r8d, r8d
mov edx, 0x40000000
mov dword [rsp + 0x20], 2
call qword [sym.imp.KERNEL32.DLL_CreateFileA]
mov rsi, rax
cmp rax, 0xffffffffffffffff
jne 0x1401afe14
mov eax, 0x200
jmp 0x1401afefb
mov rdx, qword [rdi + 0x140]
mov rcx, qword [rdi]
call fcn.1401b0cd0
cmp qword [rdi + 0x148], r15
jne 0x1401afe40
mov ecx, 0x4000
call fcn.140007ac4
mov qword [rdi + 0x148], rax
nop dword [rax]
mov rcx, qword [rdi + 0x148]
xor edx, edx
mov r8d, 0x4000
call fcn.140182c50
mov rdx, qword [rdi + 0x148]
mov rcx, qword [rdi]
lea r9, [rbp + 0x4f8]
mov r8d, 0x4000
call fcn.1401b09f0
mov ebx, eax
cmp eax, 0xffffff96
je 0x1401afee1
test eax, eax
js 0x1401afed9
jle 0x1401afea0
mov rdx, qword [rdi + 0x148]
lea r9, [rbp + 0x500]
mov r8d, eax
mov rcx, rsi
mov qword [rsp + 0x20], r15
call qword [sym.imp.KERNEL32.DLL_WriteFile]
test eax, eax
je 0x1401afed1
cmp byte [rbp + 0x4f8], r15b
jne 0x1401afeb1
cmp ebx, 0x4000
jge 0x1401afe40
lea r9, [rbp + 0x17c]
lea r8, [rbp + 0x16c]
lea rdx, [rbp + 0x174]
mov rcx, rsi
call qword [sym.imp.KERNEL32.DLL_SetFileTime]
jmp 0x1401afee7
mov r15d, 0x400
jmp 0x1401afee7
mov r15d, 0x5000000
jmp 0x1401afee7
mov r15d, 0x1000
mov rcx, rsi
call qword [sym.imp.KERNEL32.DLL_CloseHandle]
mov rcx, qword [rdi]
call fcn.1401b0940
mov eax, r15d
mov rbx, qword [rsp + 0x5e0]
mov r15, qword [rsp + 0x5e8]
mov rsi, qword [rsp + 0x5f0]
add rsp, 0x5c0
pop r14
pop rdi
pop rbp
ret