Function at 0x140096830
Capabilities:
Check if file exists
Get file attributes
Move file
Write file on windows

Disassembly:
push rbp
push rbx
push rsi
push rdi
push r14
lea rbp, [rsp - 0x310]
sub rsp, 0x410
mov rax, qword [0x140214ec8]
xor rax, rsp
mov qword [rbp + 0x2f0], rax
movzx esi, r8b
mov r14, rdx
mov rdi, rcx
mov ebx, 0x8fc
test rcx, rcx
je 0x140096dbd
test rdx, rdx
je 0x140096dbd
xor edx, edx
lea rcx, [rbp + 0x1e0]
mov r8d, 0x104
call fcn.1400ad180
xor edx, edx
lea rcx, [rbp + 0xd0]
mov r8d, 0x104
call fcn.1400ad180
xorps xmm0, xmm0
lea rcx, [rbp + 0x1e0]
xorps xmm1, xmm1
xor eax, eax
mov r8, r14
mov qword [rbp + 0x90], rax
mov edx, 0x104
mov qword [rbp + 0x10], rax
movups xmmword [rsp + 0x40], xmm0
lea r9, [rax - 1]
xor ebx, ebx
movups xmmword [rsp + 0x50], xmm0
movups xmmword [rsp + 0x60], xmm0
movups xmmword [rsp + 0x70], xmm1
movups xmmword [rbp - 0x80], xmm1
movups xmmword [rbp - 0x70], xmm1
movups xmmword [rbp + 0x20], xmm0
movups xmmword [rbp + 0x30], xmm0
movups xmmword [rbp + 0x40], xmm0
movups xmmword [rbp + 0x50], xmm0
movups xmmword [rbp + 0x60], xmm0
movups xmmword [rbp + 0x70], xmm0
movups xmmword [rbp + 0x80], xmm0
movups xmmword [rbp - 0x60], xmm1
movups xmmword [rbp - 0x50], xmm1
movups xmmword [rbp - 0x40], xmm1
movups xmmword [rbp - 0x30], xmm1
movups xmmword [rbp - 0x20], xmm1
movups xmmword [rbp - 0x10], xmm1
movups xmmword [rbp], xmm1
call fcn.1400baf28
mov edx, 0x104
lea rcx, [rbp + 0x1e0]
call fcn.1400d5428
cmp rax, 0x104
jne 0x140096945
mov byte [rbp + 0x2e3], bl
jmp 0x140096964
mov r9, 0xffffffffffffffff
lea r8, str.._tmp
mov edx, 0x104
lea rcx, [rbp + 0x1e0]
call fcn.1400ebfb4
mov r9, 0xffffffffffffffff
lea rcx, [rbp + 0xd0]
mov r8, r14
mov edx, 0x104
call fcn.1400baf28
mov edx, 0x104
lea rcx, [rbp + 0xd0]
call fcn.1400d5428
cmp rax, 0x104
jne 0x1400969a0
mov byte [rbp + 0x1d3], bl
jmp 0x1400969bf
mov r9, 0xffffffffffffffff
lea r8, str.._ok_
mov edx, 0x104
lea rcx, [rbp + 0xd0]
call fcn.1400ebfb4
lea rcx, [rbp + 0x1e0]
call qword [sym.imp.KERNEL32.DLL_GetFileAttributesA]
cmp eax, 0xffffffff
je 0x140096a0b
bt eax, 0xa
jae 0x140096a0b
lea rcx, [rbp + 0x1e0]
call qword [sym.imp.KERNEL32.DLL_GetFileAttributesA]
cmp eax, 0xffffffff
je 0x1400969fb
test al, 0x10
je 0x1400969fb
lea rcx, [rbp + 0x1e0]
call fcn.1400d89e4
jmp 0x140096a07
lea rcx, [rbp + 0x1e0]
call fcn.1400bd7ac
test eax, eax
jne 0x140096a2e
lea rdx, [rbp + 0xa0]
lea rcx, [rbp + 0x1e0]
call fcn.1400d849c
test eax, eax
jne 0x140096a2e
lea rcx, [rbp + 0x1e0]
call fcn.1400bd7ac
lea rcx, [rbp + 0xd0]
call qword [sym.imp.KERNEL32.DLL_GetFileAttributesA]
cmp eax, 0xffffffff
je 0x140096a7a
bt eax, 0xa
jae 0x140096a7a
lea rcx, [rbp + 0xd0]
call qword [sym.imp.KERNEL32.DLL_GetFileAttributesA]
cmp eax, 0xffffffff
je 0x140096a6a
test al, 0x10
je 0x140096a6a
lea rcx, [rbp + 0xd0]
call fcn.1400d89e4
jmp 0x140096a76
lea rcx, [rbp + 0xd0]
call fcn.1400bd7ac
test eax, eax
jne 0x140096acd
lea rdx, [rbp + 0xa0]
lea rcx, [rbp + 0xd0]
call fcn.1400d849c
test eax, eax
jne 0x140096acd
mov rcx, r14
call fcn.1400973d0
lea rcx, [rbp + 0xd0]
test eax, eax
jne 0x140096aba
mov rdx, r14
call fcn.1400bd4c8
test eax, eax
je 0x140096acd
mov ebx, 0xbba
jmp 0x140096dbd
call fcn.1400bd7ac
test eax, eax
je 0x140096acd
mov ebx, 0xbbc
jmp 0x140096dbd
mov rcx, rdi
call qword [sym.imp.KERNEL32.DLL_GetFileAttributesA]
cmp eax, 0xffffffff
je 0x140096b0d
bt eax, 0xa
jae 0x140096b0d
mov rcx, rdi
call qword [sym.imp.KERNEL32.DLL_GetFileAttributesA]
cmp eax, 0xffffffff
je 0x140096afd
test al, 0x10
je 0x140096afd
mov rcx, rdi
call fcn.1400d89e4
jmp 0x140096b05
mov rcx, rdi
call fcn.1400bd7ac
test eax, eax
jne 0x140096dbd
lea rdx, [rsp + 0x40]
mov rcx, rdi
call fcn.1400d849c
test eax, eax
jne 0x140096dbd
cmp dword [rsp + 0x54], ebx
jle 0x140096dbd
mov rcx, r14
call qword [sym.imp.KERNEL32.DLL_GetFileAttributesA]
cmp eax, 0xffffffff
je 0x140096b68
bt eax, 0xa
jae 0x140096b68
mov rcx, r14
call qword [sym.imp.KERNEL32.DLL_GetFileAttributesA]
cmp eax, 0xffffffff
je 0x140096b5c
test al, 0x10
je 0x140096b5c
mov rcx, r14
call fcn.1400d89e4
jmp 0x140096b64
mov rcx, r14
call fcn.1400bd7ac
test eax, eax
jne 0x140096b82
lea rdx, [rsp + 0x70]
mov rcx, r14
call fcn.1400d849c
test eax, eax
jne 0x140096b82
test sil, sil
je 0x140096dbd
mov ecx, dword [rsp + 0x54]
cmp dword [rbp - 0x7c], ecx
jne 0x140096bd2
lea rdx, [rbp + 0x20]
mov rcx, rdi
call fcn.140097870
test al, al
je 0x140096dbd
lea rdx, [rbp - 0x60]
mov rcx, r14
call fcn.140097870
test al, al
je 0x140096dbd
mov r8d, 0x20
lea rdx, [rbp - 0x5c]
lea rcx, [rbp + 0x24]
call fcn.1400ad3b0
test eax, eax
je 0x140096dbd
mov ecx, dword [rsp + 0x54]
mov eax, 0x1000
mov qword [rsp + 0x450], r12
cmp ecx, eax
mov qword [rsp + 0x408], r13
mov qword [rsp + 0x400], r15
mov r13, rbx
cmovle eax, ecx
movsxd r12, eax
mov rcx, r12
call fcn.1400bae58
mov qword [rsp + 0x30], rax
mov r15, rax
test rax, rax
je 0x140096da0
mov r8, r12
xor edx, edx
mov rcx, rax
call fcn.1400ad180
xor r8d, r8d
lea rdx, [0x140127a14]
mov rcx, rdi
call fcn.140097460
mov qword [rsp + 0x38], rax
mov rdi, rax
mov esi, 0xbba
test rax, rax
je 0x140096d6c
xor r8d, r8d
lea rdx, [0x140127c94]
lea rcx, [rbp + 0x1e0]
call fcn.140097460
mov r13, rax
test rax, rax
je 0x140096d6c
movsxd rsi, dword [rsp + 0x54]
test rsi, rsi
je 0x140096ce0
nop dword [rax]
nop dword [rax + rax]
mov rax, qword [rsp + 0x38]
cmp rsi, r12
mov rdi, r12
mov qword [rsp + 0x20], rax
cmovbe rdi, rsi
mov r8d, 1
mov r9, rdi
mov rdx, r12
mov rcx, r15
call fcn.1400ec6c4
mov r15, rax
mov rax, rbx
cmp r15, rdi
jne 0x140096cc8
mov rcx, qword [rsp + 0x30]
mov r9, r13
mov r8, r15
mov edx, 1
call fcn.1400edc6c
cmp rax, rdi
jne 0x140096d56
sub rsi, r15
mov r15, qword [rsp + 0x30]
jne 0x140096c80
mov rdi, qword [rsp + 0x38]
mov esi, 0xbba
mov rcx, r15
call fcn.1400bae44
test rdi, rdi
je 0x140096d02
mov rcx, rdi
call fcn.1400eced0
mov rcx, rdi
call fcn.1400ec884
test r13, r13
je 0x140096d27
mov rcx, r13
call fcn.1400eced0
mov rcx, r13
call fcn.1400ec884
lea rcx, [rbp + 0x1e0]
test ebx, ebx
je 0x140096d76
call fcn.1400bd7ac
test ebx, ebx
jne 0x140096da5
mov rcx, r14
call fcn.1400973d0
test eax, eax
je 0x140096d8a
mov rcx, r14
call fcn.1400bd7ac
test eax, eax
je 0x140096d8a
lea rcx, [rbp + 0xd0]
call fcn.1400bd7ac
mov ebx, 0xbbc
jmp 0x140096da5
mov r15, qword [rsp + 0x30]
mov esi, 0xbba
mov rdi, qword [rsp + 0x38]
mov ebx, esi
jmp 0x140096ce5
mov ebx, 0xbbb
jmp 0x140096ce5
lea rdx, [rbp + 0xd0]
call fcn.1400bd4c8
test eax, eax
je 0x140096d2b
mov ebx, esi
jmp 0x140096da5
mov rdx, r14
lea rcx, [rbp + 0xd0]
call fcn.1400bd4c8
test eax, eax
cmovne ebx, esi
jmp 0x140096da5
mov ebx, 0x708
mov r13, qword [rsp + 0x408]
mov r12, qword [rsp + 0x450]
mov r15, qword [rsp + 0x400]
mov eax, ebx
mov rcx, qword [rbp + 0x2f0]
xor rcx, rsp
call fcn.1400ab870
add rsp, 0x410
pop r14
pop rdi
pop rsi
pop rbx
pop rbp
ret