Function at 0x18000b280
Capabilities:
Encode data using xor

Disassembly:
push rbx
sub rsp, 0x70
movdqa xmm4, xmmword [0x18012b310]
mov rax, rcx
xor r8d, r8d
mov rbx, rdx
mov r11, rcx
mov r9, rdx
and eax, 3
je 0x18000b36d
mov r10d, 4
sub r10, rax
mov eax, r8d
cmp r10, rdx
cmova r10, rdx
test r10, r10
je 0x18000b367
cmp r10, 0x40
jb 0x18000b350
movdqa xmm2, xmmword [0x18012b2a0]
mov rdx, r10
and rdx, 0xffffffffffffffc0
add rcx, 0x20
nop
movdqu xmm0, xmmword [rcx - 0x20]
lea rcx, [rcx + 0x40]
add rax, 0x40
movdqa xmm1, xmm4
xorps xmm1, xmm0
paddb xmm1, xmm2
movdqu xmmword [rcx - 0x60], xmm1
movdqa xmm1, xmm4
movdqu xmm0, xmmword [rcx - 0x50]
xorps xmm0, xmm4
paddb xmm0, xmm2
movdqu xmmword [rcx - 0x50], xmm0
movdqu xmm0, xmmword [rcx - 0x40]
xorps xmm1, xmm0
paddb xmm1, xmm2
movdqu xmmword [rcx - 0x40], xmm1
movdqa xmm1, xmm4
movdqu xmm0, xmmword [rcx - 0x30]
xorps xmm1, xmm0
paddb xmm1, xmm2
movdqu xmmword [rcx - 0x30], xmm1
cmp rax, rdx
jb 0x18000b2e0
cmp rax, r10
jae 0x18000b367
nop dword [rax]
nop word [rax + rax]
movzx ecx, byte [r11 + rax]
xor cl, 0xa5
add cl, 0x54
mov byte [r11 + rax], cl
inc rax
cmp rax, r10
jb 0x18000b350
sub r9, r10
add r11, rax
mov r10, r9
shr r10, 2
test r10, r10
je 0x18000b524
cmp r10, 8
jb 0x18000b4e0
movdqa xmm5, xmmword [0x18012b290]
mov rax, r10
movaps xmmword [rsp + 0x60], xmm6
and rax, 0xfffffffffffffff8
movdqa xmm6, xmmword [0x18012b380]
movaps xmmword [rsp + 0x50], xmm7
movdqa xmm7, xmmword [0x18012b0f0]
movaps xmmword [rsp + 0x40], xmm8
movdqa xmm8, xmmword [0x18012b1f0]
movaps xmmword [rsp + 0x30], xmm9
movdqa xmm9, xmmword [0x18012b210]
movaps xmmword [rsp + 0x20], xmm10
movdqa xmm10, xmmword [0x18012b220]
movaps xmmword [rsp + 0x10], xmm11
movdqa xmm11, xmmword [0x18012b0d0]
movaps xmmword [rsp], xmm12
movdqa xmm12, xmmword [0x18012b0e0]
nop word [rax + rax]
movdqu xmm0, xmmword [r11 + r8*4]
movdqa xmm2, xmm4
movdqa xmm3, xmm7
xorps xmm2, xmm0
movdqa xmm1, xmm9
paddd xmm3, xmm2
paddd xmm1, xmm2
andps xmm3, xmm8
andps xmm1, xmm10
movdqa xmm0, xmm5
paddd xmm0, xmm2
andps xmm0, xmm6
orps xmm3, xmm0
movdqa xmm0, xmm11
orps xmm3, xmm1
paddd xmm0, xmm2
andps xmm0, xmm12
movdqa xmm1, xmm9
orps xmm3, xmm0
movdqa xmm0, xmm5
movdqu xmmword [r11 + r8*4], xmm3
movdqu xmm2, xmmword [r11 + r8*4 + 0x10]
movdqa xmm3, xmm7
xorps xmm2, xmm4
paddd xmm3, xmm2
paddd xmm0, xmm2
andps xmm0, xmm6
andps xmm3, xmm8
orps xmm3, xmm0
paddd xmm1, xmm2
movdqa xmm0, xmm11
andps xmm1, xmm10
paddd xmm0, xmm2
orps xmm3, xmm1
andps xmm0, xmm12
orps xmm3, xmm0
movdqu xmmword [r11 + r8*4 + 0x10], xmm3
add r8, 8
cmp r8, rax
jb 0x18000b400
movaps xmm12, xmmword [rsp]
movaps xmm11, xmmword [rsp + 0x10]
movaps xmm10, xmmword [rsp + 0x20]
movaps xmm9, xmmword [rsp + 0x30]
movaps xmm8, xmmword [rsp + 0x40]
movaps xmm7, xmmword [rsp + 0x50]
movaps xmm6, xmmword [rsp + 0x60]
cmp r8, r10
jae 0x18000b524
nop dword [rax]
nop word [rax + rax]
mov ecx, dword [r11 + r8*4]
xor ecx, 0xa5a5a5a5
lea edx, [rcx + 0x54000000]
and edx, 0xff000000
lea eax, [rcx + 0x5400]
and eax, 0xff00
or edx, eax
lea eax, [rcx + 0x540000]
and eax, 0xff0000
or edx, eax
lea eax, [rcx + 0x54]
movzx ecx, al
or edx, ecx
mov dword [r11 + r8*4], edx
inc r8
cmp r8, r10
jb 0x18000b4e0
lea rcx, [r11 + r8*4]
and r9d, 3
jbe 0x18000b544
nop
movzx eax, byte [rcx]
lea rcx, [rcx + 1]
xor al, 0xa5
add al, 0x54
mov byte [rcx - 1], al
sub r9, 1
jne 0x18000b530
mov rax, rbx
add rsp, 0x70
pop rbx
ret