Function at 0x1400a7820
Capabilities:
Copy file
Get file attributes
Read file on windows
Write file on windows

Disassembly:
push rbx
push rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0x270
mov qword [rsp + 0xe0], 0xfffffffffffffffe
mov rax, qword [0x14030bc70]
xor rax, rsp
mov qword [rsp + 0x260], rax
mov r15, r9
mov rdi, r8
mov r14, rdx
mov qword [rsp + 0x68], rdx
mov r13, rcx
mov qword [rsp + 0xb0], rcx
mov qword [rsp + 0x98], rdx
mov qword [rsp + 0xa8], r8
mov qword [rsp + 0xa0], r9
mov dword [rsp + 0x40], 0
xor ebx, ebx
mov qword [rsp + 0x90], rbx
test rcx, rcx
je 0x1400a7e3d
test r8, r8
je 0x1400a7e3d
cmp dword [rcx + 0x248], ebx
je 0x1400a78b5
xor eax, eax
jmp 0x1400a7e60
add rcx, 0x3c
call qword [sym.imp.KERNEL32.dll_GetFileAttributesA]
mov esi, eax
mov r9d, reloc.WS2_32.dll_sendto
mov r8, r15
xor edx, edx
lea rcx, [rsp + 0x100]
call fcn.1400a6730
nop
xor r8d, r8d
lea rdx, [rsp + 0x130]
lea rcx, [rsp + 0x100]
call fcn.1400a8700
cmp dword [rsp + 0x2d0], 0
je 0x1400a7985
mov rax, qword [rsp + 0x130]
cmp rax, qword [r13 + 0x224]
jne 0x1400a7985
mov rax, qword [rsp + 0x138]
cmp rax, qword [r13 + 0x22c]
jne 0x1400a7985
mov eax, dword [rsp + 0x140]
cmp eax, dword [r13 + 0x234]
jne 0x1400a7985
xor edx, edx
mov r8d, 0x104
lea rcx, [rsp + 0x150]
call fcn.140141ad0
mov r8d, 0x104
lea rdx, [r13 + 0x3c]
lea rcx, [rsp + 0x150]
call fcn.1400f7fd0
xor edx, edx
mov rcx, r13
call fcn.1400a8b60
xor r8d, r8d
mov rdx, rdi
lea rcx, [rsp + 0x150]
call qword [sym.imp.KERNEL32.dll_CopyFileA]
mov dword [rsp + 0x40], eax
jmp 0x1400a7e2d
mov ecx, 0x390
call fcn.1400dba80
mov qword [rsp + 0x70], rax
test rax, rax
je 0x1400a79ae
xor r8d, r8d
xor edx, edx
mov rcx, rax
call fcn.1400a6460
mov rbx, rax
xor r12d, r12d
jmp 0x1400a79b4
xor r12d, r12d
mov ebx, r12d
mov qword [rsp + 0x90], rbx
xor eax, eax
mov qword [rsp + 0xb8], rax
mov qword [rsp + 0xc0], rax
mov qword [rsp + 0xc8], rax
mov qword [rsp + 0xd0], rax
mov eax, dword [r13 + 0x184]
mov dword [rsp + 0xc8], eax
shr esi, 1
and esi, 1
mov dword [rsp + 0xcc], esi
neg esi
sbb eax, eax
and eax, 2
mov dword [rsp + 0xd0], eax
mov r9d, reloc.WS2_32.dll_sendto
mov r8, r15
xor edx, edx
lea rcx, [rsp + 0xe8]
call fcn.1400a6730
nop
mov dword [rsp + 0xb8], r12d
lea rax, [rsp + 0xe8]
mov qword [rsp + 0xc0], rax
mov dword [rsp + 0x38], 1
lea rax, [rsp + 0xb8]
mov qword [rsp + 0x30], rax
mov dword [rsp + 0x28], r12d
mov dword [rsp + 0x20], 2
xor r9d, r9d
mov r8d, 0xc0000000
mov rdx, rdi
mov rcx, rbx
call fcn.1400a8d20
test eax, eax
jne 0x1400a7e1f
mov dword [rsp + 0x40], 1
lea rdx, [r13 + 0x18c]
lea rcx, [rbx + 0x18c]
mov r8d, 0x80
call fcn.140157390
mov eax, dword [r13 + 0x20c]
mov dword [rbx + 0x20c], eax
mov eax, dword [r13 + 0x210]
mov dword [rbx + 0x210], eax
mov eax, dword [r13 + 0x238]
mov dword [rbx + 0x238], eax
mov eax, dword [r13 + 0x23c]
mov dword [rbx + 0x23c], eax
mov eax, dword [r13 + 0x24c]
mov dword [rbx + 0x24c], eax
mov eax, dword [r13 + 0x214]
mov dword [rbx + 0x214], eax
mov eax, dword [r13 + 0x218]
mov dword [rbx + 0x218], eax
mov eax, dword [r13 + 0x21c]
mov dword [rbx + 0x21c], eax
mov eax, dword [r13 + 0x240]
mov dword [rbx + 0x240], eax
mov eax, dword [r13 + 0x238]
mov qword [rbx + 0x340], rax
mov eax, dword [r13 + 0x23c]
mov qword [rbx + 0x348], rax
mov dword [rbx + 0x20], r12d
mov r15d, r12d
mov dword [rsp + 0x58], r12d
cmp r15d, dword [r14 + 0x10]
jae 0x1400a7e14
mov eax, r15d
imul rsi, rax, 0x5c
mov qword [rsp + 0x70], rsi
mov rax, qword [r14]
mov ecx, dword [rsi + rax + 0x50]
call fcn.140113934
mov rdi, rax
mov qword [rsp + 0xd8], rax
mov rax, qword [r14]
xor r9d, r9d
xor r8d, r8d
mov edx, dword [rsi + rax + 0x4c]
mov rcx, qword [r13 + 0x358]
call qword [sym.imp.KERNEL32.dll_SetFilePointer]
mov rax, qword [r14]
mov qword [rsp + 0x20], r12
lea r9, [rsp + 0x44]
mov r8d, dword [rsi + rax + 0x50]
mov rdx, rdi
mov rcx, qword [r13 + 0x358]
call qword [sym.imp.KERNEL32.dll_ReadFile]
cmp eax, 1
jne 0x1400a7df8
mov rax, qword [r14]
mov ecx, dword [rsi + rax + 0x50]
cmp dword [rsp + 0x44], ecx
jne 0x1400a7df8
xor r14d, r14d
mov r12d, r14d
mov dword [rsp + 0x48], r14d
mov esi, ecx
mov qword [rsp + 0x50], rcx
mov qword [rsp + 0x60], r14
mov qword [rsp + 0x78], r14
lea rax, [rsp + 0x78]
mov qword [rsp + 0x20], rax
lea r9, [rsp + 0x60]
mov r8d, ecx
mov rdx, rdi
mov rcx, r13
call fcn.1400a9700
test eax, eax
je 0x1400a7c63
mov qword [rsp + 0x80], r14
mov qword [rsp + 0x88], r14
lea rax, [rsp + 0x88]
mov qword [rsp + 0x20], rax
lea r9, [rsp + 0x80]
mov r8, qword [rsp + 0x78]
mov r14, qword [rsp + 0x60]
mov rdx, r14
mov rcx, rbx
call fcn.1400a9870
test eax, eax
je 0x1400a7c68
mov rcx, rdi
call fcn.1401139ac
mov rdi, qword [rsp + 0x80]
mov qword [rsp + 0xd8], rdi
mov rsi, qword [rsp + 0x88]
mov qword [rsp + 0x50], rsi
mov r12d, 1
mov dword [rsp + 0x48], r12d
jmp 0x1400a7c68
mov r14, qword [rsp + 0x60]
test r14, r14
je 0x1400a7c7a
mov edx, 1
mov rcx, r14
call fcn.1401139ac
test r12d, r12d
je 0x1400a7df0
mov r9d, 2
xor r8d, r8d
xor edx, edx
mov rcx, qword [rbx + 0x358]
call qword [sym.imp.KERNEL32.dll_SetFilePointer]
mov dword [rsp + 0x50], eax
mov rcx, rbx
call fcn.1400abbc0
mov r14, qword [rsp + 0x68]
test eax, eax
je 0x1400a7d32
xor eax, eax
mov qword [rsp + 0x118], rax
mov dword [rsp + 0x120], eax
mov dword [rsp + 0x118], 0x2b75fd3c
mov dword [rsp + 0x11c], esi
mov rax, qword [r14]
mov r12, qword [rsp + 0x70]
mov ecx, dword [r12 + rax + 0x54]
mov dword [rsp + 0x120], ecx
mov qword [rsp + 0x20], 0
lea r9, [rsp + 0x44]
mov r8d, reloc.WSOCK32.dll_ioctlsocket
lea rdx, [rsp + 0x118]
mov rcx, qword [rbx + 0x358]
call qword [sym.imp.KERNEL32.dll_WriteFile]
mov r9d, 1
xor r8d, r8d
xor edx, edx
mov rcx, qword [rbx + 0x358]
call qword [sym.imp.KERNEL32.dll_SetFilePointer]
mov dword [rsp + 0x50], eax
jmp 0x1400a7d37
mov r12, qword [rsp + 0x70]
mov qword [rsp + 0x20], 0
lea r9, [rsp + 0x44]
mov r8d, esi
mov rdx, rdi
mov rcx, qword [rbx + 0x358]
call qword [sym.imp.KERNEL32.dll_WriteFile]
test eax, eax
je 0x1400a7de6
mov rcx, rbx
call fcn.1400a74c0
mov eax, dword [rbx + 0x338]
imul rcx, rax, 0x5c
add rcx, qword [rbx + 0x360]
inc eax
mov dword [rbx + 0x338], eax
mov rax, qword [r14]
movups xmm0, xmmword [r12 + rax]
movups xmmword [rcx], xmm0
movups xmm1, xmmword [r12 + rax + 0x10]
movups xmmword [rcx + 0x10], xmm1
movups xmm0, xmmword [r12 + rax + 0x20]
movups xmmword [rcx + 0x20], xmm0
movups xmm1, xmmword [r12 + rax + 0x30]
movups xmmword [rcx + 0x30], xmm1
movups xmm0, xmmword [r12 + rax + 0x40]
movups xmmword [rcx + 0x40], xmm0
movsd xmm1, qword [r12 + rax + 0x50]
movsd qword [rcx + 0x50], xmm1
mov dword [rcx + 0x50], esi
xor r12d, r12d
mov dword [rcx + 0x44], r12d
mov dword [rcx + 0x58], r12d
mov eax, dword [rbx + 0x354]
mov dword [rcx + 0x48], eax
inc dword [rbx + 0x354]
mov eax, dword [rsp + 0x50]
mov dword [rcx + 0x4c], eax
jmp 0x1400a7df8
xor r12d, r12d
mov dword [rsp + 0x48], r12d
jmp 0x1400a7df8
mov r14, qword [rsp + 0x68]
xor r12d, r12d
mov rcx, rdi
call fcn.1401139ac
cmp dword [rsp + 0x40], 0
je 0x1400a7e14
inc r15d
mov dword [rsp + 0x58], r15d
jmp 0x1400a7b33
xor edx, edx
mov rcx, rbx
call fcn.1400a8b60
nop
lea rcx, [rsp + 0xe8]
call fcn.1400a6930
nop
lea rcx, [rsp + 0x100]
call fcn.1400a6930
nop
jmp 0x1400a7e49
xor eax, eax
jmp 0x1400a7e60
test rbx, rbx
je 0x1400a7e5c
mov rax, qword [rbx]
mov edx, 1
mov rcx, rbx
call qword [rax]
nop
mov eax, dword [rsp + 0x40]
mov rcx, qword [rsp + 0x260]
xor rcx, rsp
call fcn.140113910
add rsp, 0x270
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbx
ret