Function at 0x57ff80
Capabilities:
Encode data using xor

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0x168
movdqa xmmword [rsp + 0x150], xmm6
mov r14, r8
mov r15, rcx
movzx eax, byte [0x00865070]
cmp al, 1
jne 0x58002f
test r14, r14
je 0x580bd9
shl r14, 4
lea rbx, [rsp + 0x60]
pxor xmm6, xmm6
nop word [rax + rax]
lea rsi, [rdx + 0x10]
mov rcx, rbx
call fcn.00401560
movdqa xmm0, xmmword [rsp + 0x60]
movdqa xmm1, xmm0
punpcklbw xmm1, xmm6
pshufd xmm1, xmm1, 0x4e
pshuflw xmm1, xmm1, 0x1b
pshufhw xmm1, xmm1, 0x1b
punpckhbw xmm0, xmm6
pshufd xmm0, xmm0, 0x4e
pshuflw xmm0, xmm0, 0x1b
pshufhw xmm0, xmm0, 0x1b
packuswb xmm0, xmm1
movdqa xmmword [rsp + 0x60], xmm0
mov rcx, r15
mov rdx, rbx
call fcn.0046bc90
mov rdx, rsi
add r14, 0xfffffffffffffff0
jne 0x57ffd0
jmp 0x580bd9
test r14, r14
je 0x580bd9
movabs r8, 0x4444444444444444
movabs r9, 0x2222222222222222
movabs r10, 0x1111111111111111
mov rbp, r15
mov r11, qword [r15]
mov rax, r11
bswap rax
mov rsi, qword [r15 + 8]
mov rcx, rax
shr rcx, 4
movabs rdi, 0xf0f0f0f0f0f0f0f
and rcx, rdi
and rax, rdi
shl rax, 4
or rax, rcx
movabs rbx, 0x3333333333333333
mov rcx, rax
and rcx, rbx
shr rax, 2
and rax, rbx
lea rax, [rax + rcx*4]
movabs r12, 0x5555555555555555
mov rcx, rax
and rcx, r12
shr rax, 1
and rax, r12
lea r13, [rax + rcx*2]
mov rax, rsi
bswap rax
mov rcx, rax
shr rcx, 4
and rcx, rdi
and rax, rdi
shl rax, 4
or rax, rcx
mov rcx, rax
and rcx, rbx
shr rax, 2
and rax, rbx
lea rax, [rax + rcx*4]
mov rcx, rax
and rcx, r12
shr rax, 1
and rax, r12
lea rax, [rax + rcx*2]
mov rcx, rsi
xor rcx, r11
mov rdi, rax
xor rdi, r13
mov rbx, r11
and rbx, r10
mov qword [rsp + 0xe8], rbx
mov rbx, r11
and rbx, r9
mov qword [rsp + 0xe0], rbx
mov rbx, r11
and rbx, r8
mov qword [rsp + 0xd8], rbx
movabs rbx, 0x8888888888888888
and r11, rbx
mov qword [rsp + 0x118], r11
mov r11, rsi
and r11, r10
mov qword [rsp + 0xd0], r11
mov r11, rsi
and r11, r9
mov qword [rsp + 0xc8], r11
mov r11, rsi
and r11, r8
mov qword [rsp + 0xc0], r11
and rsi, rbx
mov qword [rsp + 0x110], rsi
mov r11, rcx
and r11, r10
mov qword [rsp + 0x58], r11
mov r11, rcx
and r11, r9
mov qword [rsp + 0x50], r11
mov r11, rcx
and r11, r8
mov qword [rsp + 0xb8], r11
and rcx, rbx
mov qword [rsp + 0xf8], rcx
mov rcx, r13
and rcx, r10
mov qword [rsp + 0xb0], rcx
mov rcx, r13
and rcx, r9
mov qword [rsp + 0xa8], rcx
mov rcx, r13
and rcx, r8
mov qword [rsp + 0xa0], rcx
and r13, rbx
mov qword [rsp + 0x108], r13
mov rcx, rax
and rcx, r10
mov qword [rsp + 0x98], rcx
mov rcx, rax
and rcx, r9
mov qword [rsp + 0x90], rcx
mov rcx, rax
and rcx, r8
mov qword [rsp + 0x88], rcx
and rax, rbx
mov qword [rsp + 0x100], rax
mov rax, rdi
and rax, r10
mov qword [rsp + 0x80], rax
mov rax, rdi
and rax, r9
mov qword [rsp + 0x40], rax
mov rax, rdi
and rax, r8
mov qword [rsp + 0x78], rax
and rdi, rbx
mov qword [rsp + 0xf0], rdi
shl r14, 4
pxor xmm6, xmm6
mov rbx, qword [r15 + 0x10]
mov rdi, qword [r15 + 0x18]
mov qword [rsp + 0x120], r15
nop word cs:[rax + rax]
mov qword [rsp + 0x148], r14
lea rax, [rdx + 0x10]
mov qword [rsp + 0x140], rax
lea rcx, [rsp + 0x60]
call fcn.00401560
movdqa xmm0, xmmword [rsp + 0x60]
movdqa xmm1, xmm0
punpcklbw xmm1, xmm6
pshufd xmm1, xmm1, 0x4e
pshuflw xmm1, xmm1, 0x1b
punpckhbw xmm0, xmm6
pshufhw xmm1, xmm1, 0x1b
pshufd xmm0, xmm0, 0x4e
pshuflw xmm0, xmm0, 0x1b
pshufhw xmm0, xmm0, 0x1b
packuswb xmm1, xmm1
packuswb xmm0, xmm0
movq rdx, xmm0
movq rbp, xmm1
xor rdx, rbx
xor rbp, rdi
mov r8, rdx
bswap r8
mov rcx, r8
shr rcx, 4
movabs rax, 0xf0f0f0f0f0f0f0f
and r8, rax
shl r8, 4
mov rbx, r8
mov r9, rbp
bswap r9
mov r8, r9
mov rdi, r9
mov r9, rbp
xor r9, rdx
mov qword [rsp + 0x38], r9
mov r10, rdx
mov r9, rax
and rdi, rax
movabs rax, 0x1111111111111111
and r10, rax
mov rsi, rdx
movabs rax, 0x2222222222222222
and rsi, rax
and rcx, r9
mov r14, rdx
movabs rax, 0x4444444444444444
and r14, rax
movabs rax, 0x8888888888888888
and rdx, rax
shr r8, 4
mov r11, qword [rsp + 0xd8]
mov rax, r11
imul rax, r14
mov r12, qword [rsp + 0x118]
mov r15, r12
shl rdi, 4
mov qword [rsp + 0x20], rdi
imul r15, rsi
mov r13, qword [rsp + 0xe8]
mov rdi, r13
imul rdi, rsi
xor r15, rax
mov rax, qword [rsp + 0xe0]
mov r9, rax
imul r9, r10
xor r9, rdi
or rbx, rcx
mov qword [rsp + 0x30], rbx
mov rcx, r11
imul rcx, rdx
mov rbx, r12
movabs rdi, 0xf0f0f0f0f0f0f0f
and r8, rdi
imul rbx, r14
mov rdi, r13
imul rdi, r14
xor rbx, rcx
mov qword [rsp + 0x28], rbx
mov rcx, rax
imul rcx, rsi
xor rcx, rdi
add qword [rsp + 0x20], r8
mov r8, r11
imul r8, r10
mov rdi, r12
imul rdi, rdx
xor rdi, r8
mov rbx, rax
imul rbx, rdx
imul rdx, r13
imul r14, rax
xor r14, rdx
imul r13, r10
mov qword [rsp + 0x138], r13
xor rbx, r13
imul rsi, r11
imul r10, r12
xor rbx, r15
xor r10, rsi
mov r11, rbp
movabs rax, 0x1111111111111111
and r11, rax
xor qword [rsp + 0x28], r9
mov rsi, rbp
mov r12, rbp
movabs rax, 0x8888888888888888
and rbp, rax
xor rdi, rcx
mov r9, qword [rsp + 0xc8]
mov rax, r9
imul rax, rbp
mov r8, qword [rsp + 0xd0]
mov rcx, r8
imul rcx, r11
xor rax, rcx
movabs rcx, 0x2222222222222222
and rsi, rcx
movabs rcx, 0x4444444444444444
and r12, rcx
xor r10, r14
mov qword [rsp + 0x48], r10
mov r10, qword [rsp + 0xc0]
mov rcx, r10
imul rcx, r12
mov rdx, qword [rsp + 0x110]
mov r15, rdx
imul r15, rsi
xor r15, rcx
mov rcx, r8
imul rcx, rsi
mov r13, r9
imul r13, r11
xor r13, rcx
mov rcx, r10
imul rcx, rbp
mov r14, rdx
imul r14, r12
xor r14, rcx
xor r15, rax
xor r14, r13
mov rax, r8
imul rax, r12
mov rcx, r9
imul rcx, rsi
xor rcx, rax
mov r13, r10
imul r13, r11
mov rax, rdx
imul rax, rbp
xor rax, r13
xor rax, rcx
imul rbp, r8
imul r12, r9
xor r12, rbp
imul rsi, r10
imul r11, rdx
xor r11, rsi
mov r8, qword [rsp + 0x30]
mov rcx, r8
movabs rdx, 0x3333333333333333
and rcx, rdx
shr r8, 2
and r8, rdx
mov rbp, r8
movabs r13, 0x1111111111111111
and rbx, r13
mov rdx, qword [rsp + 0x28]
movabs r10, 0x2222222222222222
and rdx, r10
movabs rsi, 0x4444444444444444
and rdi, rsi
mov r8, qword [rsp + 0x48]
movabs r9, 0x8888888888888888
and r8, r9
xor r11, r12
and r15, r13
and r14, r10
and rax, rsi
and r11, r9
lea rbp, [rbp + rcx*4]
mov r9, qword [rsp + 0x38]
mov r12, r9
and r12, r13
mov r13, r9
or rdx, rbx
mov qword [rsp + 0x28], rdx
movabs rdx, 0x2222222222222222
and r13, rdx
mov rsi, r9
movabs rdx, 0x4444444444444444
and rsi, rdx
or r8, rdi
mov qword [rsp + 0x48], r8
movabs rdx, 0x8888888888888888
and r9, rdx
mov rdx, qword [rsp + 0x58]
mov rcx, rdx
mov rbx, rdx
imul rcx, r12
or r14, r15
mov r10, qword [rsp + 0x50]
mov rdi, r10
imul rdi, r9
xor rdi, rcx
mov rdx, r11
or rdx, rax
mov r8, qword [rsp + 0xb8]
mov rcx, r8
imul rcx, rsi
mov r15, qword [rsp + 0xf8]
mov rax, r15
imul rax, r13
xor rax, rcx
mov rcx, rbx
mov r11, rbx
imul rcx, r13
xor rax, rdi
mov rdi, r10
imul rdi, r12
xor rdi, rcx
mov rbx, qword [rsp + 0x20]
mov rcx, rbx
movabs r10, 0x3333333333333333
and rcx, r10
shr rbx, 2
and rbx, r10
lea r10, [rbx + rcx*4]
mov rbx, r8
imul rbx, r9
mov rcx, r15
imul rcx, rsi
xor rcx, rbx
xor rcx, rdi
mov rdi, r11
imul rdi, rsi
mov r11, qword [rsp + 0x50]
mov rbx, r11
imul rbx, r13
xor rbx, rdi
or rdx, r14
mov qword [rsp + 0x38], rdx
mov rdi, r15
imul rdi, r9
mov r14, r8
imul r14, r12
xor rdi, r14
xor rdi, rbx
mov rbx, rbp
movabs rdx, 0x5555555555555555
and rbx, rdx
shr rbp, 1
imul r9, qword [rsp + 0x58]
imul rsi, r11
and rbp, rdx
xor rsi, r9
mov r11, r10
shr r10, 1
lea rbp, [rbp + rbx*2]
imul r13, r8
imul r12, r15
xor r12, r13
and r11, rdx
xor r12, rsi
movabs rbx, 0x1111111111111111
and rax, rbx
movabs r14, 0x2222222222222222
and rcx, r14
and r10, rdx
or rcx, rax
movabs rax, 0x4444444444444444
and rdi, rax
movabs r8, 0x8888888888888888
and r12, r8
lea rsi, [r10 + r11*2]
or r12, rdi
or r12, rcx
mov qword [rsp + 0x30], r12
mov r10, rbp
mov rcx, rsi
and r10, rbx
mov r11, rbp
and r11, r14
xor rcx, rbp
mov qword [rsp + 0x130], rcx
mov r12, rbp
and r12, rax
mov rdx, qword [rsp + 0xb0]
mov rax, rdx
and rbp, r8
mov r14, r8
imul rax, r10
mov r8, qword [rsp + 0xa8]
mov rdi, r8
imul rdi, rbp
xor rdi, rax
mov r9, qword [rsp + 0xa0]
mov rax, r9
imul rax, r12
mov rcx, qword [rsp + 0x108]
mov rbx, rcx
imul rbx, r11
xor rbx, rax
mov r13, rbx
mov rax, rdx
imul rax, r11
mov r15, r8
imul r15, r10
xor r15, rax
mov rax, r9
imul rax, rbp
mov rbx, rcx
imul rbx, r12
xor rbx, rax
xor r13, rdi
mov qword [rsp + 0x128], r13
xor rbx, r15
mov qword [rsp + 0x20], rbx
mov rax, rdx
imul rax, r12
mov r13, r8
imul r13, r11
xor r13, rax
mov rax, r9
imul rax, r10
mov r15, rcx
imul r15, rbp
xor r15, rax
imul rbp, rdx
imul r12, r8
xor r12, rbp
imul r11, r9
imul r10, rcx
xor r10, r11
mov rbp, rsi
movabs rax, 0x1111111111111111
and rbp, rax
mov rdi, rsi
mov r11, rsi
and rsi, r14
mov r14, qword [rsp + 0x98]
mov rcx, r14
imul rcx, rbp
mov rbx, qword [rsp + 0x90]
mov rax, rbx
imul rax, rsi
xor rax, rcx
xor r15, r13
movabs rcx, 0x2222222222222222
and rdi, rcx
movabs rcx, 0x4444444444444444
and r11, rcx
mov r8, qword [rsp + 0x88]
mov rcx, r8
imul rcx, r11
mov r9, qword [rsp + 0x100]
mov r13, r9
imul r13, rdi
xor r13, rcx
xor r10, r12
xor r13, rax
mov rax, r14
imul rax, rdi
mov rcx, rbx
imul rcx, rbp
xor rcx, rax
mov rax, r8
imul rax, rsi
mov r12, r9
imul r12, r11
xor r12, rax
xor r12, rcx
mov rax, r14
imul rax, r11
mov rcx, rbx
imul rcx, rdi
xor rcx, rax
mov rdx, r8
imul rdx, rbp
mov rax, r9
imul rax, rsi
xor rax, rdx
xor rax, rcx
imul rsi, r14
imul r11, rbx
xor r11, rsi
imul rdi, r8
imul rbp, r9
xor rbp, rdi
movabs rcx, 0x1111111111111111
mov r9, qword [rsp + 0x128]
and r9, rcx
movabs rdx, 0x2222222222222222
mov r8, qword [rsp + 0x20]
and r8, rdx
or r8, r9
mov qword [rsp + 0x20], r8
movabs r14, 0x4444444444444444
and r15, r14
movabs rbx, 0x8888888888888888
and r10, rbx
xor rbp, r11
or r10, r15
and r13, rcx
and r12, rdx
mov r15, rdx
mov r8, qword [rsp + 0x130]
mov r11, r8
or r12, r13
mov rdi, r8
mov rsi, r8
and r8, rbx
and r11, rcx
mov rcx, qword [rsp + 0x40]
imul rcx, r8
mov r9, qword [rsp + 0x80]
mov rdx, r9
imul rdx, r11
xor rcx, rdx
mov rdx, r14
and rax, r14
and rbp, rbx
or rbp, rax
and rdi, r15
and rsi, r14
mov r15, qword [rsp + 0x78]
mov rax, r15
imul rax, rsi
mov r13, qword [rsp + 0xf0]
mov r14, r13
imul r14, rdi
xor r14, rax
xor r14, rcx
mov rax, r9
imul rax, rdi
mov rbx, qword [rsp + 0x40]
mov rcx, rbx
imul rcx, r11
xor rcx, rax
mov rdx, r15
imul rdx, r8
mov rax, r13
imul rax, rsi
xor rax, rdx
xor rax, rcx
or r10, qword [rsp + 0x20]
mov rcx, r9
imul rcx, rsi
mov rdx, rbx
imul rdx, rdi
xor rdx, rcx
mov rcx, r15
imul rcx, r11
mov rbx, r13
imul rbx, r8
xor rbx, rcx
xor rbx, rdx
or rbp, r12
imul r8, r9
imul rsi, qword [rsp + 0x40]
xor rsi, r8
imul rdi, r15
imul r11, r13
xor r11, rdi
xor r11, rsi
movabs rcx, 0x1111111111111111
and r14, rcx
movabs rcx, 0x2222222222222222
and rax, rcx
or rax, r14
mov r14, qword [rsp + 0x148]
movabs rcx, 0x4444444444444444
and rbx, rcx
movabs rcx, 0x8888888888888888
and r11, rcx
or r11, rbx
or r11, rax
mov rbx, r10
xor rbx, rbp
xor rbx, r11
bswap r10
mov rax, r10
shr rax, 4
movabs rdx, 0xf0f0f0f0f0f0f0f
and r10, rdx
shl r10, 4
and rax, rdx
or r10, rax
mov rax, r10
shr r10, 2
movabs r11, 0x3333333333333333
and rax, r11
and r10, r11
bswap rbp
lea rax, [r10 + rax*4]
mov rcx, rbp
shr rcx, 4
and rbp, rdx
and rcx, rdx
mov r9, rdx
shl rbp, 4
or rbp, rcx
mov rcx, rbp
and rcx, r11
shr rbp, 2
and rbp, r11
lea rcx, [rcx*4]
add rcx, rbp
mov rdx, rax
movabs rsi, 0x5555555555555555
and rdx, rsi
shr rax, 1
movabs r8, 0x5555555555555554
and rax, r8
lea r10, [rax + rdx*2]
mov rax, rcx
and rax, rsi
shr rcx, 1
and rcx, r8
lea rdi, [rcx + rax*2]
bswap rbx
mov rax, rbx
shr rax, 4
and rbx, r9
shl rbx, 4
and rax, r9
or rbx, rax
mov rax, rbx
shr rbx, 2
and rax, r11
and rbx, r11
lea rax, [rbx + rax*4]
mov r9, qword [rsp + 0x48]
mov rcx, qword [rsp + 0x28]
or r9, rcx
mov rdx, qword [rsp + 0x138]
shl rdx, 0x3f
shl rcx, 0x3e
xor rcx, rdx
mov rbx, r9
shr r10, 1
shl rbx, 0x39
xor rbx, rcx
mov rdx, rax
and rdx, rsi
shr rax, 1
xor rbx, qword [rsp + 0x30]
mov rcx, r9
and rax, r8
xor rbx, r9
mov r11, qword [rsp + 0x38]
xor rbx, r11
xor rbx, r10
lea rax, [rax + rdx*2]
mov rdx, rbx
shr rdx, 2
mov r8, rbx
shr r8, 7
xor r8, rdx
mov rdx, r9
shr rcx, 2
shr rdx, 1
xor rdi, rbx
shr rdi, 1
xor rdi, r8
xor rcx, rdx
xor rdi, rbx
mov rdx, rbx
mov r8, rbx
shl rbx, 0x39
xor rbx, r9
shr r9, 7
xor r9, rcx
shr rax, 1
xor r9, rax
shl rdx, 0x3f
shl r8, 0x3e
xor r8, rdx
xor r8, r9
xor rbx, r11
xor rbx, r8
mov rax, qword [rsp + 0x120]
mov qword [rax + 0x10], rbx
mov qword [rax + 0x18], rdi
mov rdx, qword [rsp + 0x140]
add r14, 0xfffffffffffffff0
jne 0x580260
movaps xmm6, xmmword [rsp + 0x150]
add rsp, 0x168
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret