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

Disassembly:
mov rax, rsp
mov qword [rax + 0x10], rbx
mov dword [rax + 0x20], r9d
push rbp
push rsi
push rdi
push r12
push r14
lea rbp, [rax - 0x4e8]
sub rsp, 0x5c0
xor r12d, r12d
mov rsi, r8
cmp dword [rcx + 8], 0xffffffff
mov r14d, edx
mov rdi, rcx
je 0x14000bb04
mov qword [rax + 8], r15
mov r15, qword [rcx]
test r15, r15
je 0x14000bafc
mov rbx, qword [r15 + 0x80]
test rbx, rbx
je 0x14000bafc
mov rcx, qword [rbx]
test rcx, rcx
je 0x14000bad7
call fcn.14019d5d0
mov qword [rbx], r12
cmp dword [rbx + 0x64], r12d
je 0x14000bae9
lea rcx, [rbx + 8]
call fcn.1400095d0
mov rcx, rbx
mov dword [rbx + 0x64], r12d
call fcn.14019d5d0
mov qword [r15 + 0x80], r12
mov r15, qword [rsp + 0x5f0]
mov rbx, qword [rdi]
mov dword [rdi + 8], 0xffffffff
cmp r14d, dword [rbx + 8]
jl 0x14000bb1e
mov eax, 0x10000
jmp 0x14000c05d
cmp r14d, dword [rbx + 0x14]
jge 0x14000bb56
test rbx, rbx
je 0x14000bb56
mov eax, dword [rbx + 0x28]
lea r8, [rbx + 0x7c]
lea rdx, [rbx + 0x2c]
mov dword [rbx + 0x18], eax
xor r9d, r9d
mov dword [rbx + 0x14], r12d
mov rcx, rbx
mov dword [rsp + 0x20], r12d
call fcn.14000a530
mov ecx, r12d
test eax, eax
sete cl
mov dword [rbx + 0x1c], ecx
mov rbx, qword [rdi]
cmp dword [rbx + 0x14], r14d
jge 0x14000bbb5
nop
test rbx, rbx
je 0x14000bbac
cmp dword [rbx + 0x1c], r12d
je 0x14000bbac
mov edx, dword [rbx + 0x14]
inc edx
cmp edx, dword [rbx + 8]
je 0x14000bbac
mov ecx, dword [rbx + 0x54]
lea r8, [rbx + 0x7c]
add ecx, dword [rbx + 0x50]
xor r9d, r9d
mov eax, dword [rbx + 0x4c]
add eax, 0x2e
mov dword [rbx + 0x14], edx
add ecx, eax
mov dword [rsp + 0x20], r12d
add dword [rbx + 0x18], ecx
lea rdx, [rbx + 0x2c]
mov rcx, rbx
call fcn.14000a530
mov ecx, r12d
test eax, eax
sete cl
mov dword [rbx + 0x1c], ecx
mov rbx, qword [rdi]
cmp dword [rbx + 0x14], r14d
jl 0x14000bb60
lea r8, [rbp + 0x280]
mov edx, r14d
mov rcx, rdi
call fcn.14000b200
test byte [rbp + 0x388], 0x10
movzx eax, byte [rsi]
je 0x14000bca1
cmp al, 0x2f
je 0x14000bbff
cmp al, 0x5c
je 0x14000bbff
test al, al
je 0x14000bbe9
cmp byte [rsi + 1], 0x3a
je 0x14000bbff
lea rcx, [rdi + 0x150]
mov rdx, rsi
call fcn.14000b960
xor eax, eax
jmp 0x14000c05d
mov rbx, rsi
mov rcx, rsi
cmp al, 0x2f
je 0x14000bc0d
cmp al, 0x5c
jne 0x14000bc10
mov rbx, rcx
movzx eax, byte [rcx + 1]
inc rcx
test al, al
jne 0x14000bc05
cmp rbx, rsi
je 0x14000bc4b
sub rbx, rsi
lea rcx, [rbp + 0x170]
mov r8, rbx
mov rdx, rsi
call fcn.1401c8040
lea rdx, [rbp + 0x170]
mov byte [rbp + rbx + 0x170], r12b
xor ecx, ecx
call fcn.14000b960
lea rcx, [rbp + 0x60]
mov byte [rbp + 0x60], r12b
dec rcx
cmp byte [rcx + 1], r12b
lea rcx, [rcx + 1]
jne 0x14000bc56
xor edx, edx
nop dword [rax]
nop word [rax + rax]
movzx eax, byte [rsi + rdx]
mov byte [rcx + rdx], al
lea rdx, [rdx + 1]
test al, al
jne 0x14000bc70
lea rcx, [rbp + 0x60]
call qword [sym.imp.KERNEL32.dll_GetFileAttributesA]
cmp eax, 0xffffffff
jne 0x14000bc9a
xor edx, edx
lea rcx, [rbp + 0x60]
call qword [sym.imp.KERNEL32.dll_CreateDirectoryA]
xor eax, eax
jmp 0x14000c05d
mov r9, rsi
mov rcx, rsi
test al, al
je 0x14000bccb
nop dword [rax + rax]
cmp al, 0x2f
je 0x14000bcbd
cmp al, 0x5c
je 0x14000bcbd
inc rcx
jmp 0x14000bcc4
lea r9, [rcx + 1]
mov rcx, r9
movzx eax, byte [rcx]
test al, al
jne 0x14000bcb0
lea rdx, [rsp + 0x50]
mov rcx, rsi
sub rdx, rsi
nop word [rax + rax]
movzx eax, byte [rcx]
mov byte [rdx + rcx], al
lea rcx, [rcx + 1]
test al, al
jne 0x14000bce0
cmp r9, rsi
jne 0x14000bcfa
mov byte [rsp + 0x50], r12b
jmp 0x14000bd29
mov rax, r9
sub rax, rsi
mov byte [rsp + rax + 0x50], r12b
movzx eax, byte [rsp + 0x50]
cmp al, 0x2f
je 0x14000be35
cmp al, 0x5c
je 0x14000be35
test al, al
je 0x14000bd29
cmp byte [rsp + 0x51], 0x3a
je 0x14000be35
mov qword [rsp + 0x20], r9
lea rbx, [rdi + 0x150]
mov r8, rbx
lea r9, [rsp + 0x50]
lea rdx, str._s_s_s
lea rcx, [rbp + 0x3b0]
call qword [sym.imp.USER32.dll_wsprintfA]
test rbx, rbx
je 0x14000bd6f
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_GetFileAttributesA]
cmp eax, 0xffffffff
jne 0x14000bd6f
xor edx, edx
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_CreateDirectoryA]
movzx eax, byte [rsp + 0x50]
test al, al
je 0x14000bf0b
lea rsi, [rsp + 0x50]
lea rcx, [rsp + 0x50]
cmp al, 0x2f
je 0x14000bd8e
cmp al, 0x5c
jne 0x14000bd91
mov rsi, rcx
movzx eax, byte [rcx + 1]
inc rcx
test al, al
jne 0x14000bd86
lea rax, [rsp + 0x50]
cmp rsi, rax
je 0x14000bdd9
lea rax, [rsp + 0x50]
sub rsi, rax
lea rdx, [rsp + 0x50]
mov r8, rsi
lea rcx, [rbp + 0x170]
call fcn.1401c8040
lea rdx, [rbp + 0x170]
mov byte [rbp + rsi + 0x170], r12b
mov rcx, rbx
call fcn.14000b960
mov byte [rbp + 0x60], r12b
test rbx, rbx
je 0x14000bdfe
lea rcx, [rbp + 0x60]
sub rcx, rbx
nop dword [rax]
movzx eax, byte [rbx]
mov byte [rcx + rbx], al
lea rbx, [rbx + 1]
test al, al
jne 0x14000bdf0
lea rcx, [rbp + 0x60]
dec rcx
cmp byte [rcx + 1], r12b
lea rcx, [rcx + 1]
jne 0x14000be05
lea r8, [rsp + 0x50]
xor edx, edx
nop word [rax + rax]
movzx eax, byte [r8 + rdx]
mov byte [rcx + rdx], al
lea rdx, [rdx + 1]
test al, al
jne 0x14000be20
jmp 0x14000bef0
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 0x14000bf0b
lea rbx, [rsp + 0x50]
lea rcx, [rsp + 0x50]
cmp al, 0x2f
je 0x14000be6d
cmp al, 0x5c
jne 0x14000be70
mov rbx, rcx
movzx eax, byte [rcx + 1]
inc rcx
test al, al
jne 0x14000be65
lea rax, [rsp + 0x50]
cmp rbx, rax
je 0x14000beb7
lea rax, [rsp + 0x50]
sub rbx, rax
lea rdx, [rsp + 0x50]
mov r8, rbx
lea rcx, [rbp + 0x170]
call fcn.1401c8040
lea rdx, [rbp + 0x170]
mov byte [rbp + rbx + 0x170], r12b
xor ecx, ecx
call fcn.14000b960
lea rcx, [rbp + 0x60]
mov byte [rbp + 0x60], r12b
dec rcx
cmp byte [rcx + 1], r12b
lea rcx, [rcx + 1]
jne 0x14000bec2
lea r8, [rsp + 0x50]
xor edx, edx
nop dword [rax]
nop word [rax + rax]
movzx eax, byte [r8 + rdx]
mov byte [rcx + rdx], al
lea rdx, [rdx + 1]
test al, al
jne 0x14000bee0
lea rcx, [rbp + 0x60]
call qword [sym.imp.KERNEL32.dll_GetFileAttributesA]
cmp eax, 0xffffffff
jne 0x14000bf0b
xor edx, edx
lea rcx, [rbp + 0x60]
call qword [sym.imp.KERNEL32.dll_CreateDirectoryA]
mov eax, dword [rbp + 0x388]
lea rcx, [rbp + 0x3b0]
mov qword [rsp + 0x30], r12
xor r9d, r9d
mov dword [rsp + 0x28], eax
xor r8d, r8d
mov edx, 0x40000000
mov dword [rsp + 0x20], 2
call qword [sym.imp.KERNEL32.dll_CreateFileA]
mov r14, rax
cmp rax, 0xffffffffffffffff
jne 0x14000bf4d
mov eax, 0x200
jmp 0x14000c05d
mov rdx, qword [rdi + 0x140]
mov rcx, qword [rdi]
call fcn.14000ac40
cmp qword [rdi + 0x148], r12
jne 0x14000bf76
mov ecx, 0x4000
call fcn.140003e70
mov qword [rdi + 0x148], rax
mov esi, r12d
nop dword [rax]
mov rdx, qword [rdi + 0x148]
lea r9, [rbp + 0x508]
mov rcx, qword [rdi]
mov r8d, 0x4000
call fcn.14000ae90
mov ebx, eax
cmp eax, 0xffffff96
je 0x14000c007
test eax, eax
js 0x14000bfd9
jle 0x14000bfcc
mov rdx, qword [rdi + 0x148]
lea r9, [rbp + 0x510]
mov r8d, eax
mov qword [rsp + 0x20], r12
mov rcx, r14
call qword [sym.imp.KERNEL32.dll_WriteFile]
test eax, eax
je 0x14000bfe0
cmp byte [rbp + 0x508], sil
jne 0x14000bfe7
test ebx, ebx
jne 0x14000bf80
mov esi, 0x5000000
jmp 0x14000c00c
mov esi, 0x400
jmp 0x14000c00c
lea r9, [rbp + 0x39c]
mov rcx, r14
lea r8, [rbp + 0x38c]
lea rdx, [rbp + 0x394]
call qword [sym.imp.KERNEL32.dll_SetFileTime]
jmp 0x14000c00c
mov esi, 0x1000
mov rcx, r14
call qword [sym.imp.KERNEL32.dll_CloseHandle]
mov rdi, qword [rdi]
test rdi, rdi
je 0x14000c05b
mov rbx, qword [rdi + 0x80]
test rbx, rbx
je 0x14000c05b
mov rcx, qword [rbx]
test rcx, rcx
je 0x14000c036
call fcn.14019d5d0
mov qword [rbx], r12
cmp dword [rbx + 0x64], r12d
je 0x14000c048
lea rcx, [rbx + 8]
call fcn.1400095d0
mov rcx, rbx
mov dword [rbx + 0x64], r12d
call fcn.14019d5d0
mov qword [rdi + 0x80], r12
mov eax, esi
mov rbx, qword [rsp + 0x5f8]
add rsp, 0x5c0
pop r14
pop r12
pop rdi
pop rsi
pop rbp
ret