Function at 0x140096c40
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 0x1400971cd
test rdx, rdx
je 0x1400971cd
xor edx, edx
lea rcx, [rbp + 0x1e0]
mov r8d, 0x104
call fcn.1400ad590
xor edx, edx
lea rcx, [rbp + 0xd0]
mov r8d, 0x104
call fcn.1400ad590
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.1400bb338
mov edx, 0x104
lea rcx, [rbp + 0x1e0]
call fcn.1400d5838
cmp rax, 0x104
jne 0x140096d55
mov byte [rbp + 0x2e3], bl
jmp 0x140096d74
mov r9, 0xffffffffffffffff
lea r8, str.._tmp
mov edx, 0x104
lea rcx, [rbp + 0x1e0]
call fcn.1400ec3c4
mov r9, 0xffffffffffffffff
lea rcx, [rbp + 0xd0]
mov r8, r14
mov edx, 0x104
call fcn.1400bb338
mov edx, 0x104
lea rcx, [rbp + 0xd0]
call fcn.1400d5838
cmp rax, 0x104
jne 0x140096db0
mov byte [rbp + 0x1d3], bl
jmp 0x140096dcf
mov r9, 0xffffffffffffffff
lea r8, str.._ok_
mov edx, 0x104
lea rcx, [rbp + 0xd0]
call fcn.1400ec3c4
lea rcx, [rbp + 0x1e0]
call qword [sym.imp.KERNEL32.DLL_GetFileAttributesA]
cmp eax, 0xffffffff
je 0x140096e1b
bt eax, 0xa
jae 0x140096e1b
lea rcx, [rbp + 0x1e0]
call qword [sym.imp.KERNEL32.DLL_GetFileAttributesA]
cmp eax, 0xffffffff
je 0x140096e0b
test al, 0x10
je 0x140096e0b
lea rcx, [rbp + 0x1e0]
call fcn.1400d8df4
jmp 0x140096e17
lea rcx, [rbp + 0x1e0]
call fcn.1400bdbbc
test eax, eax
jne 0x140096e3e
lea rdx, [rbp + 0xa0]
lea rcx, [rbp + 0x1e0]
call fcn.1400d88ac
test eax, eax
jne 0x140096e3e
lea rcx, [rbp + 0x1e0]
call fcn.1400bdbbc
lea rcx, [rbp + 0xd0]
call qword [sym.imp.KERNEL32.DLL_GetFileAttributesA]
cmp eax, 0xffffffff
je 0x140096e8a
bt eax, 0xa
jae 0x140096e8a
lea rcx, [rbp + 0xd0]
call qword [sym.imp.KERNEL32.DLL_GetFileAttributesA]
cmp eax, 0xffffffff
je 0x140096e7a
test al, 0x10
je 0x140096e7a
lea rcx, [rbp + 0xd0]
call fcn.1400d8df4
jmp 0x140096e86
lea rcx, [rbp + 0xd0]
call fcn.1400bdbbc
test eax, eax
jne 0x140096edd
lea rdx, [rbp + 0xa0]
lea rcx, [rbp + 0xd0]
call fcn.1400d88ac
test eax, eax
jne 0x140096edd
mov rcx, r14
call fcn.1400977e0
lea rcx, [rbp + 0xd0]
test eax, eax
jne 0x140096eca
mov rdx, r14
call fcn.1400bd8d8
test eax, eax
je 0x140096edd
mov ebx, 0xbba
jmp 0x1400971cd
call fcn.1400bdbbc
test eax, eax
je 0x140096edd
mov ebx, 0xbbc
jmp 0x1400971cd
mov rcx, rdi
call qword [sym.imp.KERNEL32.DLL_GetFileAttributesA]
cmp eax, 0xffffffff
je 0x140096f1d
bt eax, 0xa
jae 0x140096f1d
mov rcx, rdi
call qword [sym.imp.KERNEL32.DLL_GetFileAttributesA]
cmp eax, 0xffffffff
je 0x140096f0d
test al, 0x10
je 0x140096f0d
mov rcx, rdi
call fcn.1400d8df4
jmp 0x140096f15
mov rcx, rdi
call fcn.1400bdbbc
test eax, eax
jne 0x1400971cd
lea rdx, [rsp + 0x40]
mov rcx, rdi
call fcn.1400d88ac
test eax, eax
jne 0x1400971cd
cmp dword [rsp + 0x54], ebx
jle 0x1400971cd
mov rcx, r14
call qword [sym.imp.KERNEL32.DLL_GetFileAttributesA]
cmp eax, 0xffffffff
je 0x140096f78
bt eax, 0xa
jae 0x140096f78
mov rcx, r14
call qword [sym.imp.KERNEL32.DLL_GetFileAttributesA]
cmp eax, 0xffffffff
je 0x140096f6c
test al, 0x10
je 0x140096f6c
mov rcx, r14
call fcn.1400d8df4
jmp 0x140096f74
mov rcx, r14
call fcn.1400bdbbc
test eax, eax
jne 0x140096f92
lea rdx, [rsp + 0x70]
mov rcx, r14
call fcn.1400d88ac
test eax, eax
jne 0x140096f92
test sil, sil
je 0x1400971cd
mov ecx, dword [rsp + 0x54]
cmp dword [rbp - 0x7c], ecx
jne 0x140096fe2
lea rdx, [rbp + 0x20]
mov rcx, rdi
call fcn.140097c80
test al, al
je 0x1400971cd
lea rdx, [rbp - 0x60]
mov rcx, r14
call fcn.140097c80
test al, al
je 0x1400971cd
mov r8d, 0x20
lea rdx, [rbp - 0x5c]
lea rcx, [rbp + 0x24]
call fcn.1400ad7c0
test eax, eax
je 0x1400971cd
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.1400bb268
mov qword [rsp + 0x30], rax
mov r15, rax
test rax, rax
je 0x1400971b0
mov r8, r12
xor edx, edx
mov rcx, rax
call fcn.1400ad590
xor r8d, r8d
lea rdx, [0x140127a14]
mov rcx, rdi
call fcn.140097870
mov qword [rsp + 0x38], rax
mov rdi, rax
mov esi, 0xbba
test rax, rax
je 0x14009717c
xor r8d, r8d
lea rdx, [0x140127c94]
lea rcx, [rbp + 0x1e0]
call fcn.140097870
mov r13, rax
test rax, rax
je 0x14009717c
movsxd rsi, dword [rsp + 0x54]
test rsi, rsi
je 0x1400970f0
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.1400ecad4
mov r15, rax
mov rax, rbx
cmp r15, rdi
jne 0x1400970d8
mov rcx, qword [rsp + 0x30]
mov r9, r13
mov r8, r15
mov edx, 1
call fcn.1400ee07c
cmp rax, rdi
jne 0x140097166
sub rsi, r15
mov r15, qword [rsp + 0x30]
jne 0x140097090
mov rdi, qword [rsp + 0x38]
mov esi, 0xbba
mov rcx, r15
call fcn.1400bb254
test rdi, rdi
je 0x140097112
mov rcx, rdi
call fcn.1400ed2e0
mov rcx, rdi
call fcn.1400ecc94
test r13, r13
je 0x140097137
mov rcx, r13
call fcn.1400ed2e0
mov rcx, r13
call fcn.1400ecc94
lea rcx, [rbp + 0x1e0]
test ebx, ebx
je 0x140097186
call fcn.1400bdbbc
test ebx, ebx
jne 0x1400971b5
mov rcx, r14
call fcn.1400977e0
test eax, eax
je 0x14009719a
mov rcx, r14
call fcn.1400bdbbc
test eax, eax
je 0x14009719a
lea rcx, [rbp + 0xd0]
call fcn.1400bdbbc
mov ebx, 0xbbc
jmp 0x1400971b5
mov r15, qword [rsp + 0x30]
mov esi, 0xbba
mov rdi, qword [rsp + 0x38]
mov ebx, esi
jmp 0x1400970f5
mov ebx, 0xbbb
jmp 0x1400970f5
lea rdx, [rbp + 0xd0]
call fcn.1400bd8d8
test eax, eax
je 0x14009713b
mov ebx, esi
jmp 0x1400971b5
mov rdx, r14
lea rcx, [rbp + 0xd0]
call fcn.1400bd8d8
test eax, eax
cmovne ebx, esi
jmp 0x1400971b5
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.1400abc80
add rsp, 0x410
pop r14
pop rdi
pop rsi
pop rbx
pop rbp
ret