Function at 0x52e7a0
Capabilities:
Encode data using xor

Disassembly:
push r15
push r14
push r13
push r12
push rdi
push rsi
push rbx
sub rsp, 0x1d0
lea r13, [rsp + 0x5f]
mov r15, rcx
mov r12, rdx
lea r14, [rcx + 0x1a0]
mov rsi, r8
and r13, 0xffffffffffffffc0
cmp r8, 0x40
ja 0x52ea10
call fcn.0052c110
movabs rax, 0x3636363636363636
movabs rdx, 0x3636363636363636
mov qword [r13], rax
mov qword [r13 + 8], rdx
mov qword [r13 + 0x10], rax
mov qword [r13 + 0x18], rdx
mov qword [r13 + 0x20], rax
mov qword [r13 + 0x28], rdx
mov qword [r13 + 0x30], rax
mov qword [r13 + 0x38], rdx
mov qword [r13 + 0x40], rax
mov qword [r13 + 0x48], rdx
mov qword [r13 + 0x50], rax
mov qword [r13 + 0x58], rdx
mov qword [r13 + 0x60], rax
mov qword [r13 + 0x68], rdx
mov qword [r13 + 0x70], rax
mov qword [r13 + 0x78], rdx
mov qword [r13 + 0x80], rax
mov qword [r13 + 0x88], rdx
mov qword [r13 + 0x90], rax
mov qword [r13 + 0x98], rdx
mov qword [r13 + 0xa0], rax
mov qword [r13 + 0xa8], rdx
mov qword [r13 + 0xb0], rax
mov qword [r13 + 0xb8], rdx
mov qword [r13 + 0xc0], rax
mov qword [r13 + 0xc8], rdx
mov qword [r13 + 0xd0], rax
mov qword [r13 + 0xd8], rdx
mov qword [r13 + 0xe0], rax
mov qword [r13 + 0xe8], rdx
mov qword [r13 + 0xf0], rax
mov qword [r13 + 0xf8], rdx
test rsi, rsi
je 0x52eb10
mov rdi, rsi
shr rdi, 2
mov rbx, r13
mov rdx, r13
xor eax, eax
nop word cs:[rax + rax]
mov r9, rax
add rax, 1
add rdx, 0x10
shl r9, 4
movdqu xmm0, xmmword [r12 + r9]
pxor xmm0, xmmword [rdx - 0x10]
movups xmmword [rdx - 0x10], xmm0
cmp rax, rsi
jb 0x52e8c0
mov rdx, r13
mov r8d, 0x40
mov rcx, r15
call fcn.0052c1a0
mov rcx, r14
call fcn.0052c110
movabs rax, 0x5c5c5c5c5c5c5c5c
movabs rdx, 0x5c5c5c5c5c5c5c5c
mov qword [r13], rax
mov qword [r13 + 8], rdx
mov qword [r13 + 0x10], rax
mov qword [r13 + 0x18], rdx
mov qword [r13 + 0x20], rax
mov qword [r13 + 0x28], rdx
mov qword [r13 + 0x30], rax
mov qword [r13 + 0x38], rdx
mov qword [r13 + 0x40], rax
mov qword [r13 + 0x48], rdx
mov qword [r13 + 0x50], rax
mov qword [r13 + 0x58], rdx
mov qword [r13 + 0x60], rax
mov qword [r13 + 0x68], rdx
mov qword [r13 + 0x70], rax
mov qword [r13 + 0x78], rdx
mov qword [r13 + 0x80], rax
mov qword [r13 + 0x88], rdx
mov qword [r13 + 0x90], rax
mov qword [r13 + 0x98], rdx
mov qword [r13 + 0xa0], rax
mov qword [r13 + 0xa8], rdx
mov qword [r13 + 0xb0], rax
mov qword [r13 + 0xb8], rdx
mov qword [r13 + 0xc0], rax
mov qword [r13 + 0xc8], rdx
mov qword [r13 + 0xd0], rax
mov qword [r13 + 0xd8], rdx
mov qword [r13 + 0xe0], rax
mov qword [r13 + 0xe8], rdx
mov qword [r13 + 0xf0], rax
mov qword [r13 + 0xf8], rdx
test rdi, rdi
je 0x52e9ea
shl rdi, 4
mov rdx, r12
lea rax, [r12 + rdi]
movdqu xmm0, xmmword [rbx]
add rdx, 0x10
pxor xmm0, xmmword [rdx - 0x10]
add rbx, 0x10
movups xmmword [rbx - 0x10], xmm0
cmp rax, rdx
jne 0x52e9d0
mov r8d, 0x40
mov rdx, r13
mov rcx, r14
call fcn.0052c1a0
nop
add rsp, 0x1d0
pop rbx
pop rsi
pop rdi
pop r12
pop r13
pop r14
pop r15
ret
call fcn.0052c110
mov r8, rsi
mov rdx, r12
mov rcx, r15
call fcn.0052c1a0
lea r12, [r13 + 0x100]
mov rcx, r15
mov edi, 8
mov rdx, r12
mov esi, 0x20
call fcn.0052c270
mov rcx, r15
call fcn.0052c110
movabs rax, 0x3636363636363636
movabs rdx, 0x3636363636363636
mov qword [r13], rax
mov qword [r13 + 8], rdx
mov qword [r13 + 0x10], rax
mov qword [r13 + 0x18], rdx
mov qword [r13 + 0x20], rax
mov qword [r13 + 0x28], rdx
mov qword [r13 + 0x30], rax
mov qword [r13 + 0x38], rdx
mov qword [r13 + 0x40], rax
mov qword [r13 + 0x48], rdx
mov qword [r13 + 0x50], rax
mov qword [r13 + 0x58], rdx
mov qword [r13 + 0x60], rax
mov qword [r13 + 0x68], rdx
mov qword [r13 + 0x70], rax
mov qword [r13 + 0x78], rdx
mov qword [r13 + 0x80], rax
mov qword [r13 + 0x88], rdx
mov qword [r13 + 0x90], rax
mov qword [r13 + 0x98], rdx
mov qword [r13 + 0xa0], rax
mov qword [r13 + 0xa8], rdx
mov qword [r13 + 0xb0], rax
mov qword [r13 + 0xb8], rdx
mov qword [r13 + 0xc0], rax
mov qword [r13 + 0xc8], rdx
mov qword [r13 + 0xd0], rax
mov qword [r13 + 0xd8], rdx
mov qword [r13 + 0xe0], rax
mov qword [r13 + 0xe8], rdx
mov qword [r13 + 0xf0], rax
mov qword [r13 + 0xf8], rdx
jmp 0x52e8ae
mov rdx, r13
mov r8d, 0x40
mov rcx, r15
call fcn.0052c1a0
mov rcx, r14
call fcn.0052c110
movabs rax, 0x5c5c5c5c5c5c5c5c
movabs rdx, 0x5c5c5c5c5c5c5c5c
mov qword [r13], rax
mov qword [r13 + 8], rdx
mov qword [r13 + 0x10], rax
mov qword [r13 + 0x18], rdx
mov qword [r13 + 0x20], rax
mov qword [r13 + 0x28], rdx
mov qword [r13 + 0x30], rax
mov qword [r13 + 0x38], rdx
mov qword [r13 + 0x40], rax
mov qword [r13 + 0x48], rdx
mov qword [r13 + 0x50], rax
mov qword [r13 + 0x58], rdx
mov qword [r13 + 0x60], rax
mov qword [r13 + 0x68], rdx
mov qword [r13 + 0x70], rax
mov qword [r13 + 0x78], rdx
mov qword [r13 + 0x80], rax
mov qword [r13 + 0x88], rdx
mov qword [r13 + 0x90], rax
mov qword [r13 + 0x98], rdx
mov qword [r13 + 0xa0], rax
mov qword [r13 + 0xa8], rdx
mov qword [r13 + 0xb0], rax
mov qword [r13 + 0xb8], rdx
mov qword [r13 + 0xc0], rax
mov qword [r13 + 0xc8], rdx
mov qword [r13 + 0xd0], rax
mov qword [r13 + 0xd8], rdx
mov qword [r13 + 0xe0], rax
mov qword [r13 + 0xe8], rdx
mov qword [r13 + 0xf0], rax
mov qword [r13 + 0xf8], rdx
jmp 0x52e9ea