Function at 0x5ab5c0
Capabilities:
Encode data using xor

Disassembly:
push r15
push r14
push r13
push r12
push rbp
push rdi
push rsi
push rbx
sub rsp, 0x3f8
mov qword [rsp + 0x440], rcx
lea rbx, [rsp + 0xdf]
mov qword [rsp + 0x448], rdx
mov r12, r8
and rbx, 0xffffffffffffff80
mov r8, rdx
mov rdx, qword [rsp + 0x440]
lea rcx, [rbx + 0x100]
mov rsi, r9
mov qword [rsp + 0x28], rcx
call fcn.005aafd0
mov rcx, qword [rsp + 0x28]
mov r8, rsi
mov rdx, r12
call fcn.005831b0
cmp qword [rsp + 0x470], 0
je 0x5ab96b
lea rsi, [rbx + 0x300]
mov qword [rsp + 0x38], 1
mov qword [rsp + 0x30], 0
mov qword [rsp + 0x48], rsi
lea rdi, [rsp + 0x5c]
mov qword [rsp + 0x40], rdi
mov eax, 0x1000000
lea rbp, [rbx + 0x200]
lea rdi, [rbx + 0x80]
lea r12, [rbx + 0x280]
nop word [rax + rax]
vmovdqu xmm0, xmmword [rbx + 0x100]
vmovdqu xmm1, xmmword [rbx + 0x110]
vmovdqu xmm2, xmmword [rbx + 0x120]
vmovdqu xmm3, xmmword [rbx + 0x130]
vmovdqu xmm4, xmmword [rbx + 0x140]
vmovdqu xmm5, xmmword [rbx + 0x150]
vmovups xmmword [rbx], xmm0
vmovups xmmword [rbx + 0x10], xmm1
vmovdqu xmm0, xmmword [rbx + 0x160]
vmovdqu xmm1, xmmword [rbx + 0x170]
vmovups xmmword [rbx + 0x20], xmm2
vmovups xmmword [rbx + 0x30], xmm3
vmovdqu xmm2, xmmword [rbx + 0x180]
vmovdqu xmm3, xmmword [rbx + 0x190]
vmovups xmmword [rbx + 0x40], xmm4
vmovups xmmword [rbx + 0x50], xmm5
vmovdqu xmm4, xmmword [rbx + 0x1a0]
vmovdqu xmm5, xmmword [rbx + 0x1b0]
vmovups xmmword [rbx + 0x60], xmm0
vmovups xmmword [rbx + 0x70], xmm1
vmovdqu xmm0, xmmword [rbx + 0x1c0]
vmovdqu xmm1, xmmword [rbx + 0x1d0]
vmovups xmmword [rbx + 0x80], xmm2
vmovups xmmword [rbx + 0x90], xmm3
vmovdqu xmm2, xmmword [rbx + 0x1e0]
vmovdqu xmm3, xmmword [rbx + 0x1f0]
vmovups xmmword [rbx + 0xa0], xmm4
vmovups xmmword [rbx + 0xb0], xmm5
mov dword [rsp + 0x5c], eax
vmovups xmmword [rbx + 0xc0], xmm0
vmovups xmmword [rbx + 0xd0], xmm1
vmovups xmmword [rbx + 0xe0], xmm2
vmovups xmmword [rbx + 0xf0], xmm3
mov rdx, qword [rsp + 0x40]
mov r8d, 4
mov rcx, rbx
call fcn.005831b0
mov rdx, rbp
mov rcx, rbx
call fcn.005834d0
mov r8d, 0x20
mov rdx, rbp
mov rcx, rdi
call fcn.005831b0
mov rdx, r12
mov rcx, rdi
call fcn.005834d0
vmovdqu xmm4, xmmword [rbx + 0x280]
vmovdqu xmm5, xmmword [rbx + 0x290]
cmp qword [rsp + 0x460], 1
vmovups xmmword [rbx + 0x300], xmm4
vmovups xmmword [rbx + 0x310], xmm5
jbe 0x5ab8a3
mov r15, qword [rbx + 0x308]
mov r13, qword [rbx + 0x318]
mov r11, qword [rbx + 0x300]
mov r14, qword [rbx + 0x310]
mov r10, r13
mov esi, 2
mov r13, r15
mov r15, r11
nop word cs:[rax + rax]
mov r8, qword [rsp + 0x448]
mov rdx, qword [rsp + 0x440]
mov rcx, rbx
mov qword [rsp + 0x28], r10
call fcn.005aafd0
mov r8d, 0x20
mov rdx, r12
mov rcx, rbx
call fcn.005831b0
mov rdx, rbp
mov rcx, rbx
call fcn.005834d0
mov r8d, 0x20
mov rdx, rbp
mov rcx, rdi
call fcn.005831b0
mov rdx, r12
mov rcx, rdi
call fcn.005834d0
mov r10, qword [rsp + 0x28]
xor r15, qword [rbx + 0x280]
xor r13, qword [rbx + 0x288]
xor r14, qword [rbx + 0x290]
xor r10, qword [rbx + 0x298]
inc rsi
mov qword [rbx + 0x300], r15
mov qword [rbx + 0x308], r13
mov qword [rbx + 0x310], r14
mov qword [rbx + 0x318], r10
cmp qword [rsp + 0x460], rsi
jae 0x5ab800
mov rsi, qword [rsp + 0x30]
mov rax, qword [rsp + 0x470]
mov rcx, qword [rsp + 0x468]
sub rax, rsi
mov edx, 0x20
add rcx, rsi
cmp rax, 0x20
cmova rax, rdx
mov edx, eax
cmp eax, 8
jae 0x5ab920
test al, 4
jne 0x5ab97f
test edx, edx
je 0x5ab8f1
mov rax, qword [rsp + 0x48]
movzx eax, byte [rax]
mov byte [rcx], al
test dl, 2
jne 0x5ab995
add qword [rsp + 0x30], 0x20
inc qword [rsp + 0x38]
mov rax, qword [rsp + 0x30]
cmp rax, qword [rsp + 0x470]
jae 0x5ab96b
movbe eax, dword [rsp + 0x38]
jmp 0x5ab678
mov rsi, qword [rsp + 0x48]
mov rdx, qword [rsi]
mov qword [rcx], rdx
mov edx, eax
mov r8, qword [rsi + rdx - 8]
mov qword [rcx + rdx - 8], r8
lea r8, [rcx + 8]
and r8, 0xfffffffffffffff8
sub rcx, r8
lea edx, [rax + rcx]
sub rsi, rcx
and edx, 0xfffffff8
mov r9, rsi
cmp edx, 8
jb 0x5ab8f1
and edx, 0xfffffff8
xor eax, eax
mov ecx, eax
mov r10, qword [r9 + rcx]
add eax, 8
mov qword [r8 + rcx], r10
cmp eax, edx
jb 0x5ab958
jmp 0x5ab8f1
add rsp, 0x3f8
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
ret
mov rsi, qword [rsp + 0x48]
mov eax, dword [rsi]
mov dword [rcx], eax
mov eax, dword [rsi + rdx - 4]
mov dword [rcx + rdx - 4], eax
jmp 0x5ab8f1
mov rax, qword [rsp + 0x48]
movzx eax, word [rax + rdx - 2]
mov word [rcx + rdx - 2], ax
jmp 0x5ab8f1