Function at 0x140089190
Capabilities:
Encode data using xor

Disassembly:
push rbp
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbx
sub rsp, 0x58
lea rbp, [rsp + 0x50]
mov qword [rbp], 0xfffffffffffffffe
mov rdi, r8
mov rbx, rdx
mov r15, rcx
mov r8, qword [rcx]
mov r14, qword [rcx + 8]
mov rax, r14
sub rax, r8
movabs rcx, 0x108af2432ab3ddcc
imul rcx, qword [0x1402ae7e0]
movabs rdx, 0x939ddcf74c7e4c0e
imul rdx, qword [0x1402ae7e8]
add rdx, rcx
movabs rcx, 0x12505fba2ee406ba
add rcx, rdx
cqo
idiv rcx
cmp rax, rbx
jae 0x14008924b
mov rcx, rax
mov rax, qword [r15 + 0x10]
sub rax, r8
mov rdx, qword [0x1402ae7f0]
mov r9, qword [0x1402ae7f8]
shrd r9, rdx, 0x2d
movabs r10, 0x9180a034cf50efe6
xor r10, r9
cqo
idiv r10
cmp rax, rbx
jae 0x1400893d4
mov rcx, r15
mov rdx, rbx
call fcn.140089f1a
xor ecx, ecx
jmp 0x14008950e
lea rax, [rbx + rbx*8]
shl rax, 4
mov r12, rax
add r12, r8
mov rax, qword [0x1402ae850]
mov rcx, qword [0x1402ae858]
shrd rcx, rax, 0xe
movabs rax, 0xe94f662743f50019
xor rax, rcx
mov rsi, r14
cmp rbx, rax
je 0x1400893ab
mov qword [rbp - 8], r12
mov qword [rbp - 0x18], r15
lea rax, [rdi + 8]
mov qword [rbp - 0x10], rax
lea rax, [rdi + 0x28]
mov qword [rbp - 0x20], rax
lea rsi, [rdi + 0x48]
lea rbx, [rdi + 0x68]
lea r12, [rdi + 0x80]
mov r14, r8
add r14, 0x28
mov r13d, 0x90
lea r15, [r14 - 0x28]
mov eax, dword [rdi]
mov dword [r14 - 0x28], eax
cmp r15, rdi
je 0x14008935b
mov rax, qword [0x1402ae860]
mov rcx, qword [0x1402ae868]
shrd rcx, rax, 0x2f
movabs rax, 0xd142c83c99578a4e
xor rcx, rax
mov rdx, qword [rbp - 0x10]
cmp qword [rdi + 0x20], rcx
jbe 0x1400892fa
mov rdx, qword [rdi + 8]
lea rcx, [r14 - 0x20]
mov r8, qword [rdi + 0x18]
call fcn.140002e0c
mov rax, qword [0x1402ae870]
movabs rcx, 0x89494d0a388c6343
imul rax, rcx
mov rcx, qword [0x1402ae878]
movabs rdx, 0x6ad546db3ed38f8e
imul rcx, rdx
add rcx, rax
movabs rax, 0x9417022d8191393a
add rcx, rax
mov rdx, qword [rbp - 0x20]
cmp qword [rdi + 0x40], rcx
jbe 0x14008934f
mov rdx, qword [rdi + 0x28]
mov r8, qword [rdi + 0x38]
mov rcx, r14
call fcn.140002e0c
movups xmm0, xmmword [rsi]
movups xmm1, xmmword [rsi + 0x10]
movups xmmword [r15 + 0x58], xmm1
movups xmmword [r15 + 0x48], xmm0
lea rcx, [r15 + 0x68]
mov rdx, rbx
call fcn.14008a278
mov eax, dword [r12 + 8]
mov dword [r15 + 0x88], eax
mov rax, qword [r12]
mov qword [r15 + 0x80], rax
add r14, r13
add r15, r13
cmp r15, qword [rbp - 8]
jne 0x1400892b9
mov r15, qword [rbp - 0x18]
mov rsi, qword [r15 + 8]
mov r12, qword [rbp - 8]
cmp r12, rsi
je 0x1400893cc
mov rdi, r12
mov rcx, rdi
call fcn.14007c8c0
mov rax, rdi
add rax, 0x90
mov rdi, rax
cmp rax, rsi
jne 0x1400893b3
mov rax, r12
jmp 0x1400895db
cmp r8, r14
je 0x14008950e
mov qword [rbp - 0x28], rcx
mov qword [rbp - 0x30], rbx
mov qword [rbp - 0x18], r15
lea rax, [rdi + 8]
mov qword [rbp - 0x10], rax
lea rax, [rdi + 0x28]
mov qword [rbp - 0x20], rax
lea rbx, [rdi + 0x48]
lea rax, [rdi + 0x68]
mov qword [rbp - 8], rax
lea r13, [rdi + 0x80]
mov r15, r8
add r15, 0x28
mov esi, 0x90
lea r12, [r15 - 0x28]
mov eax, dword [rdi]
mov dword [r15 - 0x28], eax
cmp r12, rdi
je 0x1400894ba
mov rax, qword [0x1402ae800]
movabs rcx, 0x36cae93a0d9d18e7
imul rax, rcx
mov rcx, qword [0x1402ae808]
movabs rdx, 0x5eb5fc7fdad0cd29
imul rcx, rdx
add rcx, rax
movabs rax, 0x5949ad207f20f62f
add rcx, rax
mov rdx, qword [rbp - 0x10]
cmp qword [rdi + 0x20], rcx
jbe 0x140089473
mov rdx, qword [rdi + 8]
lea rcx, [r15 - 0x20]
mov r8, qword [rdi + 0x18]
call fcn.140002e0c
mov rax, qword [0x1402ae810]
mov rcx, qword [0x1402ae818]
shrd rcx, rax, 4
movabs rax, 0xb1fc9bb214c641db
xor rcx, rax
mov rdx, qword [rbp - 0x20]
cmp qword [rdi + 0x40], rcx
jbe 0x1400894ae
mov rdx, qword [rdi + 0x28]
mov r8, qword [rdi + 0x38]
mov rcx, r15
call fcn.140002e0c
movups xmm0, xmmword [rbx]
movups xmm1, xmmword [rbx + 0x10]
movups xmmword [r12 + 0x58], xmm1
movups xmmword [r12 + 0x48], xmm0
lea rcx, [r12 + 0x68]
mov rdx, qword [rbp - 8]
call fcn.14008a278
mov eax, dword [r13 + 8]
mov dword [r12 + 0x88], eax
mov rax, qword [r13]
mov qword [r12 + 0x80], rax
add r15, rsi
add r12, rsi
cmp r12, r14
jne 0x140089418
mov rcx, qword [rbp - 0x28]
mov r15, qword [rbp - 0x18]
mov rbx, qword [rbp - 0x30]
mov rax, rbx
sub rax, rcx
mov r8, qword [r15 + 8]
movabs rcx, 0xcaba5ee54a22f03e
imul rcx, qword [0x1402ae820]
movabs rdx, 0x60fb164954fba16c
imul rdx, qword [0x1402ae828]
add rdx, rcx
movabs rcx, 0xbae4bd60772425c4
add rcx, rdx
cmp rax, rcx
jne 0x140089559
mov rax, r8
jmp 0x1400895db
movabs rsi, 0x122b994717e589ff
movabs rbx, 0x7e33b5e7c8e68ca4
xor ecx, ecx
mov r14, rax
mov qword [rbp - 0x10], r8
mov qword [rbp - 8], rcx
add rcx, r8
nop
mov rdx, rdi
call fcn.14008a37e
nop
mov rax, qword [0x1402ae830]
mov rcx, qword [0x1402ae838]
shrd rcx, rax, 3
xor rcx, rsi
mov rdx, r14
mov rax, qword [0x1402ae840]
mov r8, qword [0x1402ae848]
shrd r8, rax, 0x19
add rdx, rcx
xor r8, rbx
mov rax, qword [rbp - 8]
add rax, 0x90
mov rcx, rax
mov r14, rdx
cmp rdx, r8
mov r8, qword [rbp - 0x10]
jne 0x140089576
mov rcx, r8
add rcx, rax
mov rax, rcx
mov qword [r15 + 8], rax
add rsp, 0x58
pop rbx
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
pop rbp
ret