Function at 0x180004ca0
Capabilities:
Encode data using xor

Disassembly:
mov qword [rsp + 8], rbx
mov qword [rsp + 0x10], rsi
push rdi
sub rsp, 0x20
movups xmm0, xmmword [rdx + 0x28]
lea r11, [rcx + 1]
mov rbx, rcx
movsd xmm1, qword [rdx + 0x38]
mov esi, 2
movups xmmword [rsp], xmm0
mov rdi, qword [rsp]
sub rdx, rcx
mov r9, qword [rsp + 8]
movsd qword [rsp + 0x10], xmm1
mov r8, qword [rsp + 0x10]
nop
lea rcx, [r9 + rdi]
imul r8, r8
add r8, rcx
mov r9, r8
shl r8, 0x20
shr r9, 0x20
or r9, r8
lea r8, [rcx + rdi]
movzx eax, r9b
lea rcx, [r8 + rdi]
xor al, byte [rdx + r11 - 1]
imul r9, r9
mov byte [r11 - 1], al
add r9, r8
lea r8, [rcx + rdi]
mov r10, r9
shl r9, 0x20
shr r10, 0x20
or r10, r9
movzx eax, r10b
xor al, byte [r11 + rdx]
imul r10, r10
mov byte [r11], al
add r10, rcx
lea rcx, [r8 + rdi]
mov r9, r10
shl r10, 0x20
shr r9, 0x20
or r9, r10
movzx eax, r9b
xor al, byte [rdx + r11 + 1]
imul r9, r9
mov byte [r11 + 1], al
add r9, r8
lea r8, [rcx + rdi]
mov r10, r9
shl r9, 0x20
shr r10, 0x20
or r10, r9
movzx eax, r10b
xor al, byte [rdx + r11 + 2]
imul r10, r10
mov byte [r11 + 2], al
add r10, rcx
lea rcx, [r8 + rdi]
mov r9, r10
shl r10, 0x20
shr r9, 0x20
or r9, r10
movzx eax, r9b
xor al, byte [rdx + r11 + 3]
imul r9, r9
mov byte [r11 + 3], al
add r9, r8
lea r8, [rcx + rdi]
mov r10, r9
shl r9, 0x20
shr r10, 0x20
or r10, r9
movzx eax, r10b
xor al, byte [rdx + r11 + 4]
imul r10, r10
mov byte [r11 + 4], al
add r10, rcx
lea rcx, [r8 + rdi]
mov r9, r10
shl r10, 0x20
shr r9, 0x20
or r9, r10
movzx eax, r9b
xor al, byte [rdx + r11 + 5]
imul r9, r9
mov byte [r11 + 5], al
add r9, r8
mov r10, r9
shl r9, 0x20
shr r10, 0x20
or r10, r9
movzx eax, r10b
xor al, byte [rdx + r11 + 6]
mov byte [r11 + 6], al
imul r10, r10
lea r8, [rcx + rdi]
add r10, rcx
lea rcx, [r8 + rdi]
mov r9, r10
shl r10, 0x20
shr r9, 0x20
or r9, r10
movzx eax, r9b
xor al, byte [rdx + r11 + 7]
imul r9, r9
mov byte [r11 + 7], al
add r9, r8
lea r8, [rcx + rdi]
mov r10, r9
shl r9, 0x20
shr r10, 0x20
or r10, r9
movzx eax, r10b
xor al, byte [rdx + r11 + 8]
imul r10, r10
mov byte [r11 + 8], al
add r10, rcx
lea rcx, [r8 + rdi]
mov r9, r10
shl r10, 0x20
shr r9, 0x20
or r9, r10
movzx eax, r9b
xor al, byte [rdx + r11 + 9]
imul r9, r9
mov byte [r11 + 9], al
add r9, r8
lea r8, [rcx + rdi]
mov r10, r9
shl r9, 0x20
shr r10, 0x20
or r10, r9
movzx eax, r10b
xor al, byte [rdx + r11 + 0xa]
imul r10, r10
mov byte [r11 + 0xa], al
add r10, rcx
lea rcx, [r8 + rdi]
mov r9, r10
shl r10, 0x20
shr r9, 0x20
or r9, r10
movzx eax, r9b
xor al, byte [rdx + r11 + 0xb]
imul r9, r9
mov byte [r11 + 0xb], al
add r9, r8
lea r8, [rcx + rdi]
mov r10, r9
shl r9, 0x20
shr r10, 0x20
or r10, r9
movzx eax, r10b
xor al, byte [rdx + r11 + 0xc]
mov byte [r11 + 0xc], al
imul r10, r10
add r10, rcx
mov r9, r10
shl r10, 0x20
shr r9, 0x20
or r9, r10
movzx eax, r9b
xor al, byte [rdx + r11 + 0xd]
imul r9, r9
mov byte [r11 + 0xd], al
add r9, r8
mov rcx, r9
shl r9, 0x20
shr rcx, 0x20
or rcx, r9
lea r9, [r8 + rdi]
movzx eax, cl
xor al, byte [rdx + r11 + 0xe]
mov byte [r11 + 0xe], al
imul rcx, rcx
add rcx, r9
lea r11, [r11 + 0x11]
mov r8, rcx
shl rcx, 0x20
shr r8, 0x20
or r8, rcx
movzx eax, r8b
xor al, byte [rdx + r11 - 2]
mov byte [r11 - 2], al
sub rsi, 1
jne 0x180004ce0
mov byte [rbx + 0x22], sil
mov rax, rbx
mov rbx, qword [rsp + 0x30]
mov rsi, qword [rsp + 0x38]
add rsp, 0x20
pop rdi
ret