Function at 0x569aad
Capabilities:
Encode data using xor

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0xb8
mov rsi, r8
mov rdi, rdx
mov r14, rcx
mov r8d, 0x6c4
mov rcx, rsi
xor edx, edx
call fcn.005f4c10
xorps xmm0, xmm0
movaps xmmword [rsp + 0x40], xmm0
movaps xmmword [rsp + 0x50], xmm0
mov word [rsp + 0x60], 0
test rdi, rdi
jle 0x569b06
xor eax, eax
movzx ecx, byte [r14 + rax]
inc word [rsp + rcx*2 + 0x40]
inc rax
cmp rdi, rax
jne 0x569af4
mov qword [rsp + 0x38], rdi
mov word [rsp + 0x40], 0
mov edi, 1
mov r12, qword [0x02129638]
mov r15, qword [0x021297d8]
lea r13, [0x00612608]
mov rax, qword [0x02129a28]
add rax, 0x18
mov qword [rsp + 0x28], rax
mov eax, 1
mov ecx, edi
shl rax, cl
movzx ecx, word [rsp + rdi*2 + 0x40]
cmp eax, ecx
jae 0x569c00
mov edx, 0x30
mov rcx, r12
call fcn.005479a7
mov rbx, rax
mov qword [rax], r15
lea rax, [0x006125f8]
mov qword [rbx + 0x10], rax
mov rbp, qword [rbx + 0x18]
mov rcx, r13
call fcn.00547a14
mov qword [rbx + 0x18], rax
test rbp, rbp
je 0x569ba9
mov rax, qword [rbp - 0x10]
add rax, 0xfffffffffffffff8
mov qword [rbp - 0x10], rax
cmp rax, 7
ja 0x569ba9
add rbp, 0xfffffffffffffff0
mov rcx, qword [rsp + 0x28]
mov rdx, rbp
call fcn.00545bc7
mov rdx, qword [rbx + 8]
test rdx, rdx
je 0x569bd2
mov rax, qword [rdx - 0x10]
add rax, 0xfffffffffffffff8
mov qword [rdx - 0x10], rax
cmp rax, 7
ja 0x569bd2
add rdx, 0xfffffffffffffff0
mov rcx, qword [rsp + 0x28]
call fcn.00545bc7
mov qword [rbx + 8], 0
mov qword [rsp + 0x20], 0x22
mov rcx, rbx
lea rdx, [0x006125f8]
lea r8, [0x00612661]
lea r9, [0x00612655]
call fcn.00548ce6
inc rdi
cmp rdi, 0x10
jne 0x569b3c
mov qword [rsp + 0x30], r14
xorps xmm0, xmm0
movaps xmmword [rsp + 0xa0], xmm0
movaps xmmword [rsp + 0x90], xmm0
movaps xmmword [rsp + 0x80], xmm0
movaps xmmword [rsp + 0x70], xmm0
xor r14d, r14d
mov edi, 1
mov ebx, 0xf
xor r12d, r12d
mov dword [rsp + rdi*4 + 0x70], r14d
mov word [rsi + rdi*2], r14w
mov word [rsi + rdi*2 + 0x20], r12w
movzx r13d, word [rsp + rdi*2 + 0x40]
test r13d, r13d
setne al
mov edx, 1
mov ecx, edi
shl rdx, cl
mov ecx, r14d
add r14d, r13d
add ecx, r13d
dec ecx
cmp ecx, edx
setb cl
cmp al, cl
je 0x569d46
test r13w, r13w
je 0x569d46
mov edx, 0x30
mov rcx, qword [0x02129638]
call fcn.005479a7
mov rbp, rax
mov qword [rax], r15
lea rax, [0x006125f8]
mov qword [rbp + 0x10], rax
mov r15, qword [rbp + 0x18]
lea rcx, [0x00612608]
call fcn.00547a14
mov qword [rbp + 0x18], rax
test r15, r15
je 0x569ce8
mov rax, qword [r15 - 0x10]
add rax, 0xfffffffffffffff8
mov qword [r15 - 0x10], rax
cmp rax, 7
ja 0x569ce8
add r15, 0xfffffffffffffff0
mov rcx, qword [rsp + 0x28]
mov rdx, r15
call fcn.00545bc7
mov rdx, qword [rbp + 8]
test rdx, rdx
je 0x569d11
mov rax, qword [rdx - 0x10]
add rax, 0xfffffffffffffff8
mov qword [rdx - 0x10], rax
cmp rax, 7
ja 0x569d11
add rdx, 0xfffffffffffffff0
mov rcx, qword [rsp + 0x28]
call fcn.00545bc7
mov qword [rbp + 8], 0
mov qword [rsp + 0x20], 0x2e
mov rcx, rbp
lea rdx, [0x006125f8]
lea r8, [0x00612661]
lea r9, [0x00612655]
call fcn.00548ce6
mov r15, qword [0x021297d8]
mov eax, r14d
mov ecx, ebx
shl rax, cl
mov dword [rsi + rdi*4 + 0x40], eax
add r14d, r14d
add r12d, r13d
inc rdi
dec rbx
cmp rdi, 0x10
jne 0x569c42
mov dword [rsi + 0x80], 0x10000
mov r14, qword [rsp + 0x38]
test r14, r14
mov r15, qword [rsp + 0x30]
jle 0x569e83
xor edx, edx
mov r8d, 0x2dfd
movzx eax, byte [r15 + rdx]
test rax, rax
je 0x569e77
mov r9d, dword [rsp + rax*4 + 0x70]
movzx ecx, word [rsi + rax*2]
mov ebp, r9d
sub ebp, ecx
movzx ecx, word [rsi + rax*2 + 0x20]
add ecx, ebp
mov word [rsi + rcx*2 + 0x84], dx
cmp al, 9
ja 0x569e6f
mov ecx, r9d
rol cx, 8
mov ebp, ecx
and ebp, 0xf0f
shl ebp, 4
and ecx, 0xf0f0
shr ecx, 4
or ecx, ebp
mov ebp, ecx
and ebp, 0x3333
and ecx, 0xcccc
shr ecx, 2
lea ecx, [rcx + rbp*4]
mov ebp, ecx
and ebp, 0x5555
and ecx, 0xaaaa
shr ecx, 1
lea edi, [rcx + rbp*2]
mov cl, 0x10
sub cl, al
shr edi, cl
cmp edi, 0x1ff
ja 0x569e6f
movzx ecx, ax
shl ecx, 9
mov ebp, ecx
not ebp
mov r11d, edx
not r11d
mov r10d, ebp
and r10d, r8d
and ecx, 0x1d200
or ecx, r10d
or ebp, r11d
and r11d, r8d
mov ebx, edx
and ebx, 0xffffd202
or ebx, r11d
xor ebx, ecx
not ebp
or ebp, ebx
mov ebx, 1
mov ecx, eax
shl ebx, cl
mov ecx, edi
mov word [rsi + rcx*2 + 0x2c4], bp
add edi, ebx
mov ecx, edi
xor ecx, 0xffff0000
and edi, ecx
cmp edi, 0x200
jb 0x569e51
inc r9d
mov dword [rsp + rax*4 + 0x70], r9d
inc rdx
cmp rdx, r14
jne 0x569d8d
add rsp, 0xb8
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret