Function at 0x18000afd0
Capabilities:
Encode data using xor

Disassembly:
push rdi
sub rsp, 0x70
movdqa xmm4, xmmword [0x18012b310]
mov rax, rcx
xor r9d, r9d
mov qword [rsp + 0x88], rbx
mov rdi, rdx
mov r11, rcx
mov r10, rdx
and eax, 3
je 0x18000b0ad
mov r8d, 4
sub r8, rax
mov eax, r9d
cmp r8, rdx
cmova r8, rdx
test r8, r8
je 0x18000b0a7
cmp r8, 0x40
jb 0x18000b090
movdqa xmm2, xmmword [0x18012b2a0]
mov rdx, r8
and rdx, 0xffffffffffffffc0
add rcx, 0x20
movdqu xmm0, xmmword [rcx - 0x20]
add rax, 0x40
lea rcx, [rcx + 0x40]
psubb xmm0, xmm2
xorps xmm0, xmm4
movdqu xmmword [rcx - 0x60], xmm0
movdqu xmm0, xmmword [rcx - 0x50]
psubb xmm0, xmm2
xorps xmm0, xmm4
movdqu xmmword [rcx - 0x50], xmm0
movdqu xmm1, xmmword [rcx - 0x40]
psubb xmm1, xmm2
xorps xmm1, xmm4
movdqu xmmword [rcx - 0x40], xmm1
movdqu xmm0, xmmword [rcx - 0x30]
psubb xmm0, xmm2
xorps xmm0, xmm4
movdqu xmmword [rcx - 0x30], xmm0
cmp rax, rdx
jb 0x18000b033
cmp rax, r8
jae 0x18000b0a7
nop dword [rax]
movzx ecx, byte [r11 + rax]
sub cl, 0x54
xor cl, 0xa5
mov byte [r11 + rax], cl
inc rax
cmp rax, r8
jb 0x18000b090
sub r10, r8
add r11, rax
mov rbx, r10
shr rbx, 2
test rbx, rbx
je 0x18000b24f
cmp rbx, 8
jb 0x18000b205
movdqa xmm5, xmmword [0x18012b0f0]
mov rax, rbx
movaps xmmword [rsp + 0x60], xmm6
and rax, 0xfffffffffffffff8
movdqa xmm6, xmmword [0x18012b1f0]
movaps xmmword [rsp + 0x50], xmm7
movdqa xmm7, xmmword [0x18012b290]
movaps xmmword [rsp + 0x40], xmm8
movdqa xmm8, xmmword [0x18012b380]
movaps xmmword [rsp + 0x30], xmm9
movdqa xmm9, xmmword [0x18012b0d0]
movaps xmmword [rsp + 0x20], xmm10
movdqa xmm10, xmmword [0x18012b0e0]
movaps xmmword [rsp + 0x10], xmm11
movdqa xmm11, xmmword [0x18012b210]
movaps xmmword [rsp], xmm12
movdqa xmm12, xmmword [0x18012b220]
nop word [rax + rax]
movdqu xmm2, xmmword [r11 + r9*4]
movdqa xmm3, xmm2
movdqa xmm0, xmm2
psubd xmm3, xmm7
movdqa xmm1, xmm2
andps xmm3, xmm8
psubd xmm0, xmm5
andps xmm0, xmm6
psubd xmm1, xmm9
orps xmm3, xmm0
andps xmm1, xmm10
orps xmm3, xmm1
psubd xmm2, xmm11
andps xmm2, xmm12
orps xmm3, xmm2
xorps xmm3, xmm4
movdqu xmmword [r11 + r9*4], xmm3
movdqu xmm2, xmmword [r11 + r9*4 + 0x10]
movdqa xmm3, xmm2
movdqa xmm0, xmm2
psubd xmm3, xmm7
movdqa xmm1, xmm2
andps xmm3, xmm8
psubd xmm0, xmm5
andps xmm0, xmm6
psubd xmm1, xmm9
orps xmm3, xmm0
andps xmm1, xmm10
orps xmm3, xmm1
psubd xmm2, xmm11
andps xmm2, xmm12
orps xmm3, xmm2
xorps xmm3, xmm4
movdqu xmmword [r11 + r9*4 + 0x10], xmm3
add r9, 8
cmp r9, rax
jb 0x18000b140
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 r9, rbx
jae 0x18000b24f
mov edx, dword [r11 + r9*4]
lea r8d, [rdx - 0x5400]
and r8d, 0xff00
lea eax, [rdx - 0x54000000]
and eax, 0xff000000
or r8d, eax
lea eax, [rdx - 0x54]
movzx ecx, al
lea eax, [rdx - 0x540000]
or r8d, ecx
and eax, 0xff0000
or r8d, eax
xor r8d, 0xa5a5a5a5
mov dword [r11 + r9*4], r8d
inc r9
cmp r9, rbx
jb 0x18000b205
mov rbx, qword [rsp + 0x88]
lea rcx, [r11 + r9*4]
and r10d, 3
jbe 0x18000b275
movzx eax, byte [rcx]
lea rcx, [rcx + 1]
sub al, 0x54
xor al, 0xa5
mov byte [rcx - 1], al
sub r10, 1
jne 0x18000b261
mov rax, rdi
add rsp, 0x70
pop rdi
ret