Function at 0x1800bf130
Capabilities:
Encode data using xor

Disassembly:
mov qword [rsp + 8], rbx
mov qword [rsp + 0x10], rbp
mov qword [rsp + 0x18], rsi
mov qword [rsp + 0x20], rdi
push r14
movzx eax, byte [rdx + 2]
lea r14, [rcx + 0x10d0]
movzx ebx, byte [rdx + 3]
mov rsi, rcx
movzx r11d, byte [rdx + 7]
mov ebp, 8
movzx edi, byte [rdx + 0xb]
movzx r10d, byte [rdx + 0xf]
shl ebx, 8
or ebx, eax
shl r11d, 8
movzx eax, byte [rdx + 1]
shl edi, 8
shl r10d, 8
shl ebx, 8
or ebx, eax
movzx eax, byte [rdx]
shl ebx, 8
or ebx, eax
movzx eax, byte [rdx + 6]
xor ebx, dword [rcx + 0x10b0]
or r11d, eax
movzx eax, byte [rdx + 5]
shl r11d, 8
or r11d, eax
movzx eax, byte [rdx + 4]
shl r11d, 8
or r11d, eax
movzx eax, byte [rdx + 0xa]
xor r11d, dword [rcx + 0x10b4]
or edi, eax
movzx eax, byte [rdx + 9]
shl edi, 8
or edi, eax
movzx eax, byte [rdx + 8]
shl edi, 8
or edi, eax
movzx eax, byte [rdx + 0xe]
xor edi, dword [rcx + 0x10b8]
or r10d, eax
movzx eax, byte [rdx + 0xd]
shl r10d, 8
or r10d, eax
movzx eax, byte [rdx + 0xc]
shl r10d, 8
or r10d, eax
xor r10d, dword [rcx + 0x10bc]
nop dword [rax + rax]
mov eax, r11d
rol r10d, 1
shr eax, 0x10
lea r14, [r14 + 0x10]
movzx ecx, al
mov eax, r11d
shr eax, 8
movzx eax, al
mov r9d, dword [rsi + rcx*4 + 0xcb0]
xor r9d, dword [rsi + rax*4 + 0x8b0]
mov eax, r11d
shr eax, 0x18
movzx ecx, al
movzx eax, r11b
rol r11d, 1
xor r9d, dword [rsi + rcx*4 + 0xb0]
xor r9d, dword [rsi + rax*4 + 0x4b0]
mov eax, ebx
shr eax, 0x18
movzx ecx, al
mov eax, ebx
shr eax, 0x10
movzx eax, al
mov edx, dword [rsi + rcx*4 + 0xcb0]
xor edx, dword [rsi + rax*4 + 0x8b0]
mov eax, ebx
shr eax, 8
movzx ecx, al
movzx eax, bl
xor edx, dword [rsi + rcx*4 + 0x4b0]
xor edx, dword [rsi + rax*4 + 0xb0]
mov eax, dword [r14 - 0x10]
add edx, r9d
add eax, edx
xor edi, eax
mov eax, dword [r14 - 0xc]
add eax, edx
ror edi, 1
add eax, r9d
xor r10d, eax
mov eax, r10d
shr eax, 0x10
movzx ecx, al
mov eax, r10d
shr eax, 8
movzx eax, al
mov r9d, dword [rsi + rcx*4 + 0xcb0]
xor r9d, dword [rsi + rax*4 + 0x8b0]
mov eax, r10d
shr eax, 0x18
movzx ecx, al
movzx eax, r10b
xor r9d, dword [rsi + rcx*4 + 0xb0]
xor r9d, dword [rsi + rax*4 + 0x4b0]
mov eax, edi
shr eax, 0x18
movzx ecx, al
mov eax, edi
shr eax, 0x10
movzx eax, al
mov edx, dword [rsi + rcx*4 + 0xcb0]
xor edx, dword [rsi + rax*4 + 0x8b0]
mov eax, edi
shr eax, 8
movzx ecx, al
movzx eax, dil
xor edx, dword [rsi + rcx*4 + 0x4b0]
xor edx, dword [rsi + rax*4 + 0xb0]
mov eax, dword [r14 - 8]
add edx, r9d
add eax, edx
xor ebx, eax
mov eax, dword [r14 - 4]
add eax, edx
ror ebx, 1
add eax, r9d
xor r11d, eax
sub ebp, 1
jne 0x1800bf200
mov ecx, dword [rsi + 0x10c0]
mov edx, dword [rsi + 0x10c4]
xor ecx, edi
mov r9d, dword [rsi + 0x10c8]
xor edx, r10d
mov r10d, dword [rsi + 0x10cc]
xor r9d, ebx
mov rbx, qword [rsp + 0x10]
xor r10d, r11d
mov rbp, qword [rsp + 0x18]
mov eax, ecx
mov rsi, qword [rsp + 0x20]
mov rdi, qword [rsp + 0x28]
shr eax, 0x18
mov byte [r8 + 3], al
mov eax, ecx
shr eax, 0x10
mov byte [r8 + 2], al
mov eax, ecx
shr eax, 8
mov byte [r8 + 1], al
mov eax, edx
shr eax, 0x18
mov byte [r8 + 7], al
mov eax, edx
shr eax, 0x10
mov byte [r8 + 6], al
mov eax, edx
shr eax, 8
mov byte [r8 + 5], al
mov eax, r9d
shr eax, 0x18
mov byte [r8 + 0xb], al
mov eax, r9d
shr eax, 0x10
mov byte [r8 + 0xa], al
mov eax, r9d
shr eax, 8
mov byte [r8 + 9], al
mov eax, r10d
shr eax, 0x18
mov byte [r8 + 0xf], al
mov eax, r10d
shr eax, 0x10
mov byte [r8 + 0xe], al
mov eax, r10d
shr eax, 8
mov byte [r8 + 0xd], al
mov byte [r8], cl
mov byte [r8 + 4], dl
mov byte [r8 + 8], r9b
mov byte [r8 + 0xc], r10b
pop r14
ret