Function at 0x1401569c0
Capabilities:
Encode data using xor

Disassembly:
push r15
push r14
push r13
push r12
push rbp
push rdi
push rsi
push rbx
sub rsp, 0x18
test rdx, rdx
mov rsi, rdx
mov rax, rcx
sete dl
test r8, r8
sete cl
or dl, cl
jne 0x140156fc0
test rax, rax
je 0x140156fc0
mov ebp, dword [r8 + 0x110]
mov edx, ebp
and edx, 0xfffffffd
cmp edx, 0xc
je 0x140156a0d
cmp ebp, 0x10
jne 0x140156fc0
movzx edx, byte [rax]
movzx edi, byte [rax + 3]
lea r10, [0x1402b8fe0]
lea rbx, [0x1402b87e0]
xor edi, dword [r8]
movzx r14d, byte [rax + 7]
shl edx, 0x18
xor r14d, dword [r8 + 4]
movzx ecx, byte [rax + 8]
xor edi, edx
movzx edx, byte [rax + 1]
movzx r9d, byte [rax + 0xc]
shl ecx, 0x18
shl edx, 0x10
shl r9d, 0x18
xor edi, edx
movzx edx, byte [rax + 2]
shl edx, 8
xor edi, edx
movzx edx, byte [rax + 4]
mov r11d, edi
movzx r13d, dil
shl edx, 0x18
shr r11d, 0x18
xor r14d, edx
movzx edx, byte [rax + 5]
mov r12d, dword [r10 + r11*4]
lea r11, [0x1402b8be0]
shl edx, 0x10
xor r14d, edx
movzx edx, byte [rax + 6]
shl edx, 8
xor r14d, edx
movzx edx, byte [rax + 0xb]
xor edx, dword [r8 + 8]
xor edx, ecx
movzx ecx, byte [rax + 9]
movzx r15d, r14b
shl ecx, 0x10
xor edx, ecx
movzx ecx, byte [rax + 0xa]
shl ecx, 8
xor edx, ecx
movzx ecx, byte [rax + 0xf]
xor ecx, dword [r8 + 0xc]
xor ecx, r9d
movzx r9d, byte [rax + 0xd]
movzx eax, byte [rax + 0xe]
shl r9d, 0x10
shl eax, 8
xor ecx, r9d
lea r9, [0x1402b83e0]
xor ecx, eax
mov eax, edi
shr edi, 0x10
xor r12d, dword [r9 + r13*4]
movzx eax, ah
movzx edi, dil
xor r12d, dword [r11 + rdi*4]
xor r12d, dword [rbx + rax*4]
mov eax, r14d
movzx edi, ah
shr eax, 0x18
mov r13d, dword [r10 + rax*4]
mov eax, r14d
xor r13d, dword [r9 + r15*4]
shr eax, 0x10
movzx eax, al
xor r13d, dword [r11 + rax*4]
movzx eax, dh
xor r13d, dword [rbx + rdi*4]
movzx edi, dl
mov r14, rax
mov eax, edx
shr edx, 0x10
shr eax, 0x18
mov eax, dword [r10 + rax*4]
xor eax, dword [r9 + rdi*4]
movzx edi, dl
movzx edx, ch
xor eax, dword [r11 + rdi*4]
mov edi, ecx
xor eax, dword [rbx + r14*4]
movzx r14d, cl
shr ecx, 0x10
shr edi, 0x18
xor r13d, eax
movzx ecx, cl
mov edi, dword [r10 + rdi*4]
xor edi, dword [r9 + r14*4]
xor r12d, r13d
xor edi, dword [r11 + rcx*4]
mov ecx, dword [rbx + rdx*4]
mov r14d, r13d
mov edx, dword [r8 + 0x10]
xor ecx, edi
xor eax, ecx
xor ecx, r13d
mov r13d, dword [r8 + 0x14]
xor eax, r12d
bswap ecx
xor r14d, eax
rol eax, 0x10
mov edi, r14d
shr r14d, 8
shl edi, 8
and r14d, 0xff00ff
and edi, 0xff00ff00
or edi, r14d
xor edi, eax
xor r12d, edi
xor eax, r12d
xor eax, ecx
xor edx, r12d
sub ebp, 4
xor r13d, edi
shr ebp, 1
xor edi, dword [r8 + 0x1c]
xor r13d, eax
xor eax, dword [r8 + 0x18]
add ebp, 2
xor edi, ecx
lea rcx, [r8 + 0x20]
shl rbp, 5
add r8, rbp
nop dword [rax]
movzx ebp, dh
movzx r14d, dl
mov r12d, edx
shr edx, 0x10
shr r12d, 0x18
movzx edx, dl
mov r12d, dword [rbx + r12*4]
xor r12d, dword [r11 + r14*4]
movzx r14d, r13b
xor r12d, dword [r9 + rdx*4]
mov edx, r13d
shr r13d, 0x10
xor r12d, dword [r10 + rbp*4]
movzx r13d, r13b
movzx ebp, dh
shr edx, 0x18
mov edx, dword [rbx + rdx*4]
xor edx, dword [r11 + r14*4]
movzx r14d, al
xor edx, dword [r9 + r13*4]
mov r13d, dword [r10 + rbp*4]
mov ebp, eax
shr ebp, 0x18
xor r13d, edx
movzx edx, ah
shr eax, 0x10
mov ebp, dword [rbx + rbp*4]
movzx eax, al
xor ebp, dword [r11 + r14*4]
movzx r14d, dil
xor ebp, dword [r9 + rax*4]
mov eax, edi
shr edi, 0x10
xor ebp, dword [r10 + rdx*4]
movzx edi, dil
movzx edx, ah
shr eax, 0x18
xor r13d, ebp
mov eax, dword [rbx + rax*4]
xor eax, dword [r11 + r14*4]
xor r12d, r13d
xor eax, dword [r9 + rdi*4]
xor eax, dword [r10 + rdx*4]
xor ebp, eax
xor eax, r13d
xor ebp, r12d
mov edx, eax
shr eax, 8
shl edx, 8
xor r13d, ebp
and eax, 0xff00ff
rol r12d, 0x10
and edx, 0xff00ff00
mov r14d, r13d
mov edi, r13d
or edx, eax
bswap r14d
shr edi, 8
mov eax, r13d
and r14d, 0xff0000ff
shl eax, 8
and edi, 0xff00
mov r13d, r14d
and eax, 0xff0000
xor r13d, ebp
xor ebp, edx
xor edx, dword [rcx + 0xc]
xor eax, r13d
xor edi, eax
mov eax, dword [rcx + 4]
xor r12d, edi
xor ebp, r12d
xor r12d, dword [rcx]
xor eax, edi
xor edi, edx
mov edx, r12d
movzx r14d, r12b
xor eax, ebp
xor ebp, dword [rcx + 8]
movzx edx, dh
mov r13, rdx
mov edx, r12d
shr r12d, 0x10
shr edx, 0x18
movzx r12d, r12b
mov edx, dword [r10 + rdx*4]
xor edx, dword [r9 + r14*4]
movzx r14d, al
xor edx, dword [r11 + r12*4]
xor edx, dword [rbx + r13*4]
mov r12d, eax
mov r15d, edx
movzx edx, ah
shr eax, 0x10
shr r12d, 0x18
movzx eax, al
mov r12d, dword [r10 + r12*4]
xor r12d, dword [r9 + r14*4]
movzx r14d, bpl
xor r12d, dword [r11 + rax*4]
mov eax, ebp
xor r12d, dword [rbx + rdx*4]
mov edx, edi
movzx eax, ah
mov r13, rax
mov eax, ebp
shr ebp, 0x10
shr eax, 0x18
movzx ebp, bpl
mov eax, dword [r10 + rax*4]
xor eax, dword [r9 + r14*4]
movzx r14d, dil
xor eax, dword [r11 + rbp*4]
xor eax, dword [rbx + r13*4]
mov r13d, edi
movzx ebp, dh
shr r13d, 0x18
shr edi, 0x10
xor r12d, eax
mov edx, r15d
movzx edi, dil
mov r13d, dword [r10 + r13*4]
xor r13d, dword [r9 + r14*4]
xor edx, r12d
xor r13d, dword [r11 + rdi*4]
mov edi, dword [rbx + rbp*4]
add rcx, 0x20
xor edi, r13d
mov r13d, r12d
xor eax, edi
xor edi, r12d
xor eax, edx
bswap edi
xor r13d, eax
rol eax, 0x10
mov ebp, r13d
shr r13d, 8
shl ebp, 8
and r13d, 0xff00ff
and ebp, 0xff00ff00
or ebp, r13d
mov r13d, dword [rcx - 0xc]
xor ebp, eax
xor eax, edi
xor edi, dword [rcx - 4]
xor edx, ebp
xor r13d, ebp
xor edi, ebp
xor eax, edx
xor edx, dword [rcx - 0x10]
xor r13d, eax
xor eax, dword [rcx - 8]
cmp rcx, r8
jne 0x140156bc0
mov r8d, edx
movzx ebp, dl
shr r8d, 0x18
movzx ebp, byte [r11 + rbp*4]
mov r8d, dword [rbx + r8*4]
shl r8d, 0x18
or r8d, ebp
movzx ebp, dh
shr edx, 0x10
mov ebp, dword [r10 + rbp*4]
movzx edx, dl
mov edx, dword [r9 + rdx*4]
shl ebp, 8
movzx ebp, bp
shl edx, 8
or r8d, ebp
and edx, 0xff0000
or r8d, edx
mov edx, r13d
xor r8d, dword [rcx]
shr edx, 0x18
mov ebp, dword [rbx + rdx*4]
movzx edx, r13b
movzx edx, byte [r11 + rdx*4]
shl ebp, 0x18
or ebp, edx
mov edx, r13d
shr r13d, 0x10
movzx edx, dh
movzx r13d, r13b
mov edx, dword [r10 + rdx*4]
shl edx, 8
movzx edx, dx
or ebp, edx
mov edx, dword [r9 + r13*4]
shl edx, 8
and edx, 0xff0000
or ebp, edx
mov edx, eax
xor ebp, dword [rcx + 4]
shr edx, 0x18
mov r14d, ebp
mov r12d, dword [rbx + rdx*4]
movzx edx, al
movzx edx, byte [r11 + rdx*4]
shl r12d, 0x18
or r12d, edx
movzx edx, ah
shr eax, 0x10
mov r13d, dword [r10 + rdx*4]
movzx edx, al
mov eax, edi
shr eax, 0x18
mov edx, dword [r9 + rdx*4]
mov eax, dword [rbx + rax*4]
movzx ebx, dil
shl r13d, 8
movzx r11d, byte [r11 + rbx*4]
mov ebx, edi
movzx r13d, r13w
shl edx, 8
movzx ebx, bh
or r12d, r13d
and edx, 0xff0000
shl eax, 0x18
mov r10d, dword [r10 + rbx*4]
or edx, r12d
xor edx, dword [rcx + 8]
or eax, r11d
shr edi, 0x10
mov r13d, ebp
shr r14d, 0x10
mov r12d, r8d
shl r10d, 8
movzx r14d, r14b
shr r13d, 0x18
movzx r10d, r10w
movzx r13d, r13b
shr r12d, 0x10
or r10d, eax
movzx eax, dil
movzx r12d, r12b
mov eax, dword [r9 + rax*4]
mov edi, r10d
mov r9d, edx
mov r10d, edx
shr r9d, 0x18
shr r10d, 0x10
shl eax, 8
movzx r10d, r10b
movzx r9d, r9b
and eax, 0xff0000
or edi, eax
xor edi, dword [rcx + 0xc]
movzx ecx, bpl
mov eax, r8d
shl rcx, 8
mov ebx, edi
shr eax, 0x18
mov r11d, edi
shr ebx, 0x10
shr r11d, 0x18
mov r15d, ebx
mov ebx, ebp
movzx r11d, r11b
movzx ebp, bh
mov ebx, r8d
or rcx, rbp
movzx ebp, r8b
movzx ebx, bh
movzx r8d, al
shl rcx, 8
movzx eax, dil
or rcx, r14
shl rax, 8
shl rcx, 8
or rcx, r13
shl rcx, 8
or rcx, rbp
shl rcx, 8
or rcx, rbx
mov ebx, edi
movzx edi, bh
shl rcx, 8
movzx ebx, r15b
or rax, rdi
or rcx, r12
shl rax, 8
shl rcx, 8
or rax, rbx
or rcx, r8
shl rax, 8
mov qword [rsp], rcx
or rax, r11
movzx r11d, dl
movzx edx, dh
shl rax, 8
or rax, r11
shl rax, 8
or rax, rdx
shl rax, 8
or rax, r10
shl rax, 8
or rax, r9
mov qword [rsp + 8], rax
movdqu xmm0, xmmword [rsp]
movups xmmword [rsi], xmm0
add rsp, 0x18
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
ret