Function at 0x51c980
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
mov rsi, r8
and r13, 0xffffffffffffffc0
lea r14, [rcx + 0x1a0]
cmp r8, 0x40
ja 0x51cbf0
call fcn.00519890
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 0x51ccf0
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 0x51caa0
mov rdx, r13
mov r8d, 0x40
mov rcx, r15
call fcn.00519920
mov rcx, r14
call fcn.00519890
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 0x51cbc9
shl rdi, 4
mov rdx, r12
lea rax, [r12 + rdi]
movdqu xmm0, xmmword [rbx]
pxor xmm0, xmmword [rdx]
add rdx, 0x10
add rbx, 0x10
movups xmmword [rbx - 0x10], xmm0
cmp rax, rdx
jne 0x51cbb0
mov r8d, 0x40
mov rdx, r13
mov rcx, r14
call fcn.00519920
nop
add rsp, 0x1d0
pop rbx
pop rsi
pop rdi
pop r12
pop r13
pop r14
pop r15
ret
call fcn.00519890
mov r8, rsi
mov rdx, r12
mov rcx, r15
call fcn.00519920
lea r12, [r13 + 0x100]
mov rcx, r15
mov edi, 8
mov rdx, r12
mov esi, 0x20
call fcn.00519cb0
mov rcx, r15
call fcn.00519890
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 0x51ca8e
mov rdx, r13
mov r8d, 0x40
mov rcx, r15
call fcn.00519920
mov rcx, r14
call fcn.00519890
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 0x51cbc9