Function at 0x8f6f70
Capabilities:
Encode data using xor

Disassembly:
push r15
push r14
push r13
push r12
push rbp
push rdi
push rsi
push rbx
sub rsp, 0x258
lea rax, [rsp + 0x90]
mov qword [rsp + 0x2a0], rcx
lea rdi, [rsp + 0x210]
mov rcx, rax
mov qword [rsp + 0x2b0], r8
mov r8d, 1
lea r15, [rsp + 0xd0]
mov qword [rsp + 0x50], rax
lea r13, [rsp + 0x150]
lea r12, [rsp + 0x110]
call fcn.008fa9e0
movdqa xmm4, xmmword [0x023f46a0]
movdqa xmm5, xmmword [0x023f46b0]
lea rsi, [rsp + 0x190]
mov r9, qword [0x023f4678]
mov rbx, qword [0x023f4688]
lea r14, [rsp + 0x1d0]
movaps xmmword [rsp + 0x110], xmm4
movdqa xmm4, xmmword [0x023f46c0]
mov rax, qword [0x023f4690]
movaps xmmword [rsp + 0x120], xmm5
movdqa xmm5, xmmword [0x023f46d0]
mov r11, qword [0x023f4668]
movaps xmmword [rsp + 0x130], xmm4
mov r8, qword [0x023f4670]
movdqa xmm4, xmmword [rsp + 0x90]
movaps xmmword [rsp + 0x140], xmm5
mov rcx, qword [0x023f4680]
movdqa xmm5, xmmword [rsp + 0xa0]
mov rdx, qword [0x023f4698]
mov r10, qword [0x023f4660]
movaps xmmword [rsp + 0x150], xmm4
movaps xmmword [rsp + 0x160], xmm5
movdqa xmm4, xmmword [rsp + 0xb0]
movdqa xmm5, xmmword [rsp + 0xc0]
mov qword [rsp + 0xe8], r9
mov qword [rsp + 0xf8], rbx
mov qword [rsp + 0x100], rax
mov qword [rsp + 0xd0], r10
mov qword [rsp + 0xd8], r11
mov qword [rsp + 0xe0], r8
mov qword [rsp + 0xf0], rcx
mov qword [rsp + 0x108], rdx
movaps xmmword [rsp + 0x170], xmm4
movaps xmmword [rsp + 0x180], xmm5
mov qword [rsp + 0x190], r10
mov qword [rsp + 0x1b8], rbx
lea rbx, [rsp + 0x200]
mov qword [rsp + 0x88], rbx
lea rbx, [rsp + 0x240]
mov qword [rsp + 0x78], rbx
lea rbx, [rsp + 0x140]
mov qword [rsp + 0x198], r11
mov qword [rsp + 0x1a0], r8
mov qword [rsp + 0x1b0], rcx
mov qword [rsp + 0x1c8], rdx
mov dword [rsp + 0x2c], 0x1bf
mov qword [rsp + 0x30], rbx
lea rbx, [rsp + 0x1c0]
mov qword [rsp + 0x1a8], r9
mov r9, rdi
mov qword [rsp + 0x1c0], rax
xor eax, eax
mov qword [rsp + 0x80], rbx
movabs rbx, 0xffffffffffffff
nop dword [rax + rax]
mov edi, dword [rsp + 0x2c]
mov rcx, qword [rsp + 0x2b0]
mov edx, edi
sar edx, 3
movsxd rdx, edx
movzx edx, byte [rcx + rdx]
lea ecx, [rdi + 7]
cmp ecx, 0xe
jbe 0x8f78f5
cmp dword [rsp + 0x2c], 0x1bf
mov edi, 0xff
cmove edx, edi
mov ecx, dword [rsp + 0x2c]
mov qword [rsp + 0x60], r15
mov qword [rsp + 0x58], r13
and ecx, 7
sar edx, cl
and edx, 1
neg rdx
xor rax, rdx
mov qword [rsp + 0x48], rdx
mov rdx, r13
movd xmm3, eax
mov rax, r15
pshufd xmm2, xmm3, 0
nop dword [rax]
movdqa xmm0, xmmword [rax]
pxor xmm0, xmmword [rdx]
add rax, 0x10
add rdx, 0x10
movdqa xmm1, xmmword [rax - 0x10]
pand xmm0, xmm2
pxor xmm1, xmm0
pxor xmm0, xmmword [rdx - 0x10]
movaps xmmword [rax - 0x10], xmm1
movaps xmmword [rdx - 0x10], xmm0
cmp r12, rax
jne 0x8f71d8
mov qword [rsp + 0x70], r12
mov rdx, rsi
mov rax, r12
mov qword [rsp + 0x68], rsi
nop word [rax + rax]
movdqa xmm0, xmmword [rax]
pxor xmm0, xmmword [rdx]
add rax, 0x10
add rdx, 0x10
movdqa xmm1, xmmword [rax - 0x10]
pand xmm0, xmm2
pxor xmm1, xmm0
pxor xmm0, xmmword [rdx - 0x10]
movaps xmmword [rax - 0x10], xmm1
movaps xmmword [rdx - 0x10], xmm0
cmp r13, rax
jne 0x8f7220
xor eax, eax
nop dword [rax]
mov rdx, qword [r12 + rax]
add rdx, qword [r15 + rax]
mov qword [r14 + rax], rdx
add rax, 8
cmp rax, 0x40
jne 0x8f7258
mov rcx, qword [rsp + 0x208]
mov rax, qword [rsp + 0x88]
mov r10, rcx
mov rbp, rax
shr r10, 0x38
add qword [rsp + 0x1f0], r10
jmp 0x8f729c
sub rax, 8
and rcx, rbx
mov r8, rcx
mov rcx, qword [rax]
mov rdx, rcx
shr rdx, 0x38
add rdx, r8
mov qword [rax + 8], rdx
cmp r14, rax
jne 0x8f7298
mov rax, qword [rsp + 0x1d0]
and rax, rbx
add r10, rax
xor eax, eax
mov qword [rsp + 0x1d0], r10
jmp 0x8f72f2
movabs rdi, 0x1fffffffffffffe
add rdx, rdi
mov qword [r9 + rax*8], rdx
cmp eax, 7
je 0x8f7318
add rax, 1
mov rdx, qword [r15 + rax*8]
sub rdx, qword [r12 + rax*8]
cmp rax, 4
jne 0x8f72d8
movabs rdi, 0x1fffffffffffffc
add rdx, rdi
mov qword [r9 + 0x20], rdx
jmp 0x8f72ee
mov rcx, qword [rsp + 0x248]
mov rax, qword [rsp + 0x78]
mov r10, rcx
mov rdi, rax
shr r10, 0x38
add qword [rsp + 0x230], r10
jmp 0x8f7344
sub rax, 8
and rcx, rbx
mov r8, rcx
mov rcx, qword [rax]
mov rdx, rcx
shr rdx, 0x38
add rdx, r8
mov qword [rax + 8], rdx
cmp r9, rax
jne 0x8f7340
mov rax, qword [rsp + 0x210]
and rax, rbx
add r10, rax
xor eax, eax
mov qword [rsp + 0x210], r10
jmp 0x8f739a
movabs rcx, 0x1fffffffffffffe
add rdx, rcx
mov qword [r12 + rax*8], rdx
cmp eax, 7
je 0x8f73c0
add rax, 1
mov rdx, qword [r13 + rax*8]
sub rdx, qword [rsi + rax*8]
cmp rax, 4
jne 0x8f7380
movabs rcx, 0x1fffffffffffffc
add rdx, rcx
mov qword [r12 + 0x20], rdx
jmp 0x8f7396
mov r8, qword [rsp + 0x148]
mov rdx, qword [rsp + 0x30]
mov r11, r8
mov rax, rdx
shr r11, 0x38
add qword [rsp + 0x130], r11
jmp 0x8f73ec
sub rdx, 8
mov r10, r8
mov r8, qword [rdx]
and r10, rbx
mov rcx, r8
shr rcx, 0x38
add rcx, r10
mov qword [rdx + 8], rcx
cmp r12, rdx
jne 0x8f73e8
mov rdx, qword [rsp + 0x110]
mov r8, r12
mov rcx, r15
mov qword [rsp + 0x40], rax
mov qword [rsp + 0x38], r9
and rdx, rbx
add r11, rdx
mov rdx, r14
mov qword [rsp + 0x110], r11
call fcn.008f9720
mov rax, qword [rsp + 0x40]
mov r9, qword [rsp + 0x38]
xor edx, edx
nop word [rax + rax]
mov rcx, qword [r13 + rdx]
add rcx, qword [rsi + rdx]
mov qword [r12 + rdx], rcx
add rdx, 8
cmp rdx, 0x40
jne 0x8f7448
mov r8, qword [rsp + 0x148]
mov rdx, qword [rsp + 0x30]
mov r11, r8
shr r11, 0x38
add qword [rsp + 0x130], r11
jmp 0x8f7484
sub rdx, 8
mov r10, r8
mov r8, qword [rdx]
and r10, rbx
mov rcx, r8
shr rcx, 0x38
add rcx, r10
mov qword [rdx + 8], rcx
cmp r12, rdx
jne 0x8f7480
mov rdx, qword [rsp + 0x110]
mov r8, r12
mov rcx, r13
mov qword [rsp + 0x40], rax
mov qword [rsp + 0x38], r9
and rdx, rbx
add r11, rdx
mov rdx, r9
mov qword [rsp + 0x110], r11
call fcn.008f9720
mov rax, qword [rsp + 0x40]
mov r9, qword [rsp + 0x38]
xor edx, edx
jmp 0x8f74fa
movabs r11, 0x1fffffffffffffe
add rcx, r11
mov qword [rsi + rdx*8], rcx
cmp edx, 7
je 0x8f7520
add rdx, 1
mov rcx, qword [r15 + rdx*8]
sub rcx, qword [r13 + rdx*8]
cmp rdx, 4
jne 0x8f74e0
movabs r11, 0x1fffffffffffffc
add rcx, r11
mov qword [rsi + 0x20], rcx
jmp 0x8f74f6
mov r8, qword [rsp + 0x1c8]
mov rdx, qword [rsp + 0x80]
mov r11, r8
shr r11, 0x38
add qword [rsp + 0x1b0], r11
jmp 0x8f754c
sub rdx, 8
mov r10, r8
mov r8, qword [rdx]
and r10, rbx
mov rcx, r8
shr rcx, 0x38
add rcx, r10
mov qword [rdx + 8], rcx
cmp rsi, rdx
jne 0x8f7548
mov rdx, qword [rsp + 0x190]
mov rcx, r12
mov qword [rsp + 0x40], rax
mov qword [rsp + 0x38], r9
and rdx, rbx
add r11, rdx
mov rdx, rsi
mov qword [rsp + 0x190], r11
call fcn.008f9de0
mov rdx, qword [rsp + 0x50]
mov r8, r12
mov rcx, rsi
call fcn.008f9720
mov rax, qword [rsp + 0x40]
mov r9, qword [rsp + 0x38]
xor edx, edx
nop
mov rcx, qword [r13 + rdx]
add rcx, qword [r15 + rdx]
mov qword [r12 + rdx], rcx
add rdx, 8
cmp rdx, 0x40
jne 0x8f75b0
mov rcx, qword [rsp + 0x148]
mov r10, rcx
shr r10, 0x38
add qword [rsp + 0x130], r10
jmp 0x8f75e4
sub rax, 8
and rcx, rbx
mov r8, rcx
mov rcx, qword [rax]
mov rdx, rcx
shr rdx, 0x38
add rdx, r8
mov qword [rax + 8], rdx
cmp r12, rax
jne 0x8f75e0
mov rax, qword [rsp + 0x110]
mov rdx, r12
mov rcx, r13
mov qword [rsp + 0x38], r9
and rax, rbx
add r10, rax
mov qword [rsp + 0x110], r10
call fcn.008f9de0
mov rdx, r14
mov rcx, r12
call fcn.008f9de0
mov r9, qword [rsp + 0x38]
mov rcx, r14
mov rdx, r9
call fcn.008f9de0
mov r8, r14
mov rdx, r12
mov rcx, r15
call fcn.008f9720
mov r9, qword [rsp + 0x38]
xor eax, eax
jmp 0x8f767a
movabs rcx, 0x1fffffffffffffe
add rdx, rcx
mov qword [r9 + rax*8], rdx
cmp eax, 7
je 0x8f76a0
add rax, 1
mov rdx, qword [r12 + rax*8]
sub rdx, qword [r14 + rax*8]
cmp rax, 4
jne 0x8f7660
movabs rcx, 0x1fffffffffffffc
add rdx, rcx
mov qword [r9 + 0x20], rdx
jmp 0x8f7676
mov rdx, qword [rsp + 0x248]
mov r8, rdx
shr r8, 0x38
add qword [rsp + 0x230], r8
jmp 0x8f76c4
sub rdi, 8
mov rcx, rdx
mov rdx, qword [rdi]
and rcx, rbx
mov rax, rdx
shr rax, 0x38
add rax, rcx
mov qword [rdi + 8], rax
cmp r9, rdi
jne 0x8f76c0
mov rax, qword [rsp + 0x210]
mov rdx, r9
mov rcx, r14
mov qword [rsp + 0x38], r9
and rax, rbx
add r8, rax
mov qword [rsp + 0x210], r8
mov r8d, 0x98a9
call fcn.008f9d20
mov r9, qword [rsp + 0x38]
mov rdx, r12
mov rax, r14
lea rcx, [r14 + 0x40]
nop dword [rax + rax]
mov r8, qword [rdx]
add qword [rax], r8
add rax, 8
add rdx, 8
cmp rcx, rax
jne 0x8f7720
mov rdx, qword [rsp + 0x208]
mov r8, rdx
shr r8, 0x38
add qword [rsp + 0x1f0], r8
jmp 0x8f7754
sub rbp, 8
mov rcx, rdx
mov rdx, qword [rbp]
and rcx, rbx
mov rax, rdx
shr rax, 0x38
add rax, rcx
mov qword [rbp + 8], rax
cmp r14, rbp
jne 0x8f7750
mov rax, qword [rsp + 0x1d0]
mov rdx, r9
mov rcx, r12
mov qword [rsp + 0x38], r9
and rax, rbx
add r8, rax
mov qword [rsp + 0x1d0], r8
mov r8, r14
call fcn.008f9720
sub dword [rsp + 0x2c], 1
mov eax, dword [rsp + 0x2c]
mov r9, qword [rsp + 0x38]
cmp eax, 0xffffffff
je 0x8f77b7
mov rax, qword [rsp + 0x48]
jmp 0x8f7170
movd xmm4, dword [rsp + 0x48]
mov rdx, qword [rsp + 0x58]
mov rdi, r9
mov rax, qword [rsp + 0x60]
pshufd xmm0, xmm4, 0
movdqa xmm1, xmmword [rax]
pxor xmm1, xmmword [rdx]
add rax, 0x10
add rdx, 0x10
movdqa xmm2, xmmword [rax - 0x10]
pand xmm1, xmm0
pxor xmm2, xmm1
pxor xmm1, xmmword [rdx - 0x10]
movaps xmmword [rax - 0x10], xmm2
movaps xmmword [rdx - 0x10], xmm1
cmp r12, rax
jne 0x8f77cf
mov rdx, qword [rsp + 0x68]
mov rax, qword [rsp + 0x70]
movdqa xmm1, xmmword [rax]
pxor xmm1, xmmword [rdx]
add rax, 0x10
add rdx, 0x10
movdqa xmm2, xmmword [rax - 0x10]
pand xmm1, xmm0
pxor xmm2, xmm1
pxor xmm1, xmmword [rdx - 0x10]
movaps xmmword [rax - 0x10], xmm2
movaps xmmword [rdx - 0x10], xmm1
cmp r13, rax
jne 0x8f7808
xor r8d, r8d
mov rdx, r12
mov rcx, r12
call fcn.008f1cf0
mov rbp, qword [rsp + 0x50]
mov r8, r12
mov rdx, r15
mov rcx, rbp
call fcn.008f9720
mov rcx, qword [rsp + 0x2a0]
mov r8d, 1
mov rdx, rbp
call fcn.008fa8f0
mov rcx, rbp
lea rdx, [0x023f46a0]
call fcn.008fabb0
mov rcx, rbp
mov edx, 0x40
mov rbx, rax
call fcn.008fac10
mov rcx, r15
mov edx, 0x40
call fcn.008fac10
mov rcx, r12
mov edx, 0x40
call fcn.008fac10
mov rcx, r13
mov edx, 0x40
call fcn.008fac10
mov rcx, rsi
mov edx, 0x40
call fcn.008fac10
mov rcx, r14
mov edx, 0x40
call fcn.008fac10
mov edx, 0x40
mov rcx, rdi
call fcn.008fac10
mov rax, rbx
not rax
add rsp, 0x258
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
ret
and edx, 0xfc
jmp 0x8f71a4