Function at 0x140028360
Capabilities:
Encode data using xor
Hash data using fnv

Disassembly:
mov rax, rsp
mov qword [rax + 0x18], rbx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
lea rbp, [rsp - 0x60]
sub rsp, 0x160
movaps xmmword [rax - 0x48], xmm6
movaps xmmword [rax - 0x58], xmm7
movaps xmmword [rax - 0x68], xmm8
movaps xmmword [rax - 0x78], xmm9
movaps xmmword [rax - 0x88], xmm10
movaps xmmword [rax - 0x98], xmm11
movaps xmmword [rax - 0xa8], xmm12
movaps xmmword [rax - 0xb8], xmm13
movaps xmmword [rax - 0xc8], xmm14
mov rsi, rdx
mov qword [rsp + 0x58], rdx
mov r12, rcx
xor r15d, r15d
mov dword [rsp + 0x34], r15d
xorps xmm10, xmm10
mov r9, qword [0x140273d10]
cmp qword [r9 + 0x38], r15
jne 0x1400283e6
xorps xmm8, xmm8
xorps xmm9, xmm9
jmp 0x140028446
mov r8, qword [r9 + 0x38]
mov rdx, qword [r9 + 0x30]
dec rdx
add rdx, r8
mov rcx, rdx
shr rcx, 1
mov rax, qword [r9 + 0x28]
dec rax
and rcx, rax
and edx, 1
mov rax, qword [r9 + 0x20]
mov rcx, qword [rax + rcx*8]
movss xmm9, dword [rcx + rdx*8 + 4]
movss xmm8, dword [rcx + rdx*8]
lea rax, [r8 - 1]
mov qword [r9 + 0x38], rax
test rax, rax
jne 0x14002842d
mov qword [r9 + 0x30], r15
movss dword [0x140272ac8], xmm8
movss dword [0x140272acc], xmm9
mov r9, qword [0x140273d10]
movaps xmm7, xmm9
addss xmm7, dword [r9 + 4]
movaps xmm6, xmm8
addss xmm6, dword [r9]
movss xmm0, dword [r9 + 0x2f0]
movss xmm14, dword [0x1401cb110]
mulss xmm0, xmm14
cvttss2si eax, xmm0
mov word [rsp + 0x34], 0xc8c8
mov byte [rsp + 0x36], 0xc8
mov byte [rsp + 0x37], al
movaps xmm1, xmm7
addss xmm1, dword [0x1401cafd0]
movaps xmm0, xmm6
addss xmm0, dword [0x1401cb02c]
movss dword [rsp + 0x40], xmm0
movss dword [rsp + 0x44], xmm1
mov rdx, r12
lea rcx, [rbp - 0x60]
call fcn.140039b40
nop
mov rdx, qword [rax]
cmp qword [rdx + 0x18], 0xf
jbe 0x1400284c0
mov rdx, qword [rdx]
xorps xmm0, xmm0
movups xmmword [rsp + 0x60], xmm0
mov qword [rsp + 0x70], r15
mov qword [rsp + 0x78], r15
mov rbx, 0xffffffffffffffff
mov r8, rbx
nop dword [rax]
inc r8
cmp byte [rdx + r8], 0
jne 0x1400284e0
lea rcx, [rsp + 0x60]
call fcn.140009150
mov dword [rsp + 0x20], r15d
mov r9d, 4
mov r8d, dword [rsp + 0x34]
lea rdx, [rsp + 0x40]
lea rcx, [rsp + 0x60]
call fcn.140082420
nop
lea rcx, [rbp - 0x60]
call fcn.140008d70
mov rdi, qword [0x140272c18]
test rdi, rdi
jne 0x140028547
lea ecx, [rdi + 8]
call fcn.14015d780
mov rdi, rax
mov qword [rsp + 0x48], rax
mov qword [rax], r15
mov dword [rax + 4], r15d
mov qword [0x140272c18], rax
movss xmm1, dword [rdi]
comiss xmm1, xmm6
jbe 0x1400285c3
movss xmm2, dword [rdi + 4]
comiss xmm2, xmm7
jbe 0x1400285c3
movaps xmm0, xmm6
movss xmm3, dword [0x1401cb004]
addss xmm0, xmm3
comiss xmm0, xmm1
jbe 0x1400285c3
movaps xmm0, xmm7
addss xmm0, xmm3
comiss xmm0, xmm2
jbe 0x1400285c3
mov rax, qword [0x140273d10]
movss xmm2, dword [rax + 0x238]
movss xmm0, dword [rax + 0x234]
movss xmm4, dword [rax + 0x230]
comiss xmm1, xmm4
jbe 0x1400285c3
movss xmm3, dword [rdi + 4]
comiss xmm3, xmm0
jbe 0x1400285c3
addss xmm2, xmm4
comiss xmm2, xmm1
jbe 0x1400285c3
addss xmm0, dword [rax + 0x23c]
comiss xmm0, xmm3
mov byte [rsp + 0x30], 1
ja 0x1400285c8
mov byte [rsp + 0x30], 0
mov rdx, r12
lea rcx, [rbp - 0x48]
call fcn.140039b40
nop
mov dword [rsp + 0x34], 1
mov rdx, qword [rax]
cmp qword [rdx + 0x18], 0xf
jbe 0x1400285ea
mov rdx, qword [rdx]
xorps xmm0, xmm0
movups xmmword [rbp - 0x80], xmm0
mov qword [rbp - 0x70], r15
mov qword [rbp - 0x68], r15
nop dword [rax]
inc rbx
cmp byte [rdx + rbx], 0
jne 0x140028600
mov r8, rbx
lea rcx, [rbp - 0x80]
call fcn.140009150
xor r8d, r8d
lea rdx, [rbp - 0x80]
lea rcx, [rsp + 0x48]
call fcn.140082310
movss xmm3, dword [rax + 4]
addss xmm3, xmm10
movss xmm4, dword [rax]
movss xmm13, dword [0x1401cb008]
addss xmm4, xmm13
movaps xmm0, xmm7
subss xmm0, dword [0x1401caf5c]
movaps xmm1, xmm6
addss xmm1, xmm10
movss xmm5, dword [rdi]
comiss xmm5, xmm1
jbe 0x1400286f2
movss xmm2, dword [rdi + 4]
comiss xmm2, xmm0
jbe 0x1400286f2
addss xmm1, xmm4
comiss xmm1, xmm5
jbe 0x1400286f2
addss xmm0, xmm3
comiss xmm0, xmm2
jbe 0x1400286f2
mov rax, qword [0x140272c18]
test rax, rax
jne 0x1400286a9
lea ecx, [rax + 8]
call fcn.14015d780
mov qword [rsp + 0x40], rax
mov qword [rax], r15
mov dword [rax + 4], r15d
mov qword [0x140272c18], rax
mov rcx, qword [0x140273d10]
movss xmm0, dword [rcx + 0x234]
movss xmm1, dword [rcx + 0x230]
movss xmm3, dword [rax]
comiss xmm3, xmm1
jbe 0x1400286f2
movss xmm2, dword [rax + 4]
comiss xmm2, xmm0
jbe 0x1400286f2
addss xmm1, dword [rcx + 0x238]
comiss xmm1, xmm3
jbe 0x1400286f2
addss xmm0, dword [rcx + 0x23c]
comiss xmm0, xmm2
jbe 0x1400286f2
mov r13b, 1
jmp 0x1400286f5
xor r13b, r13b
lea rcx, [rbp - 0x48]
call fcn.140008d70
mov rax, qword [0x140273d10]
movss xmm0, dword [rax + 0x2f0]
mulss xmm0, xmm14
cvttss2si ebx, xmm0
mov rax, qword [0x1402718d8]
mov rax, qword [rax + 0x48b8]
lea r8, str.Foreground
mov edx, 1
mov rcx, qword [rax]
call fcn.1400561d0
mov r10, rax
movzx ecx, bl
movd xmm1, ecx
cvtdq2ps xmm1, xmm1
divss xmm1, xmm14
mov dword [rsp + 0x48], 0x3d909091
mov dword [rsp + 0x4c], 0x3d909091
mov dword [rsp + 0x50], 0x3d909091
movss dword [rsp + 0x54], xmm1
lea rcx, [rsp + 0x48]
call fcn.140053cc0
movaps xmm12, xmm7
addss xmm12, xmm13
movaps xmm11, xmm6
addss xmm11, xmm13
movss dword [rsp + 0x40], xmm11
movss dword [rsp + 0x44], xmm12
movss dword [rsp + 0x34], xmm6
movss dword [rsp + 0x38], xmm7
mov dword [rsp + 0x28], r15d
movss xmm13, dword [0x1401caf40]
movss dword [rsp + 0x20], xmm13
mov r9d, eax
lea r8, [rsp + 0x40]
lea rdx, [rsp + 0x34]
mov rcx, r10
call fcn.140073900
cmp byte [rsi], 0
je 0x140028974
mov rax, qword [0x140273d10]
mov rdx, qword [0x1402723e8]
movzx ecx, byte [rdx + 3]
movd xmm0, ecx
cvtdq2ps xmm0, xmm0
mulss xmm0, dword [rax + 0x2f0]
cvttss2si ebx, xmm0
movzx r14d, byte [rdx]
movzx esi, byte [rdx + 1]
movzx edi, byte [rdx + 2]
mov rax, qword [0x1402718d8]
mov rax, qword [rax + 0x48b8]
lea r8, str.Foreground
mov edx, 1
mov rcx, qword [rax]
call fcn.1400561d0
mov r10, rax
movzx ecx, bl
movd xmm3, ecx
cvtdq2ps xmm3, xmm3
divss xmm3, xmm14
movd xmm2, edi
cvtdq2ps xmm2, xmm2
divss xmm2, xmm14
movd xmm1, esi
cvtdq2ps xmm1, xmm1
divss xmm1, xmm14
movd xmm0, r14d
cvtdq2ps xmm0, xmm0
divss xmm0, xmm14
movss dword [rsp + 0x48], xmm0
movss dword [rsp + 0x4c], xmm1
movss dword [rsp + 0x50], xmm2
movss dword [rsp + 0x54], xmm3
lea rcx, [rsp + 0x48]
call fcn.140053cc0
movss dword [rsp + 0x40], xmm11
movss dword [rsp + 0x44], xmm12
movss dword [rsp + 0x34], xmm6
movss dword [rsp + 0x38], xmm7
mov dword [rsp + 0x28], r15d
movss dword [rsp + 0x20], xmm13
mov r9d, eax
lea r8, [rsp + 0x40]
lea rdx, [rsp + 0x34]
mov rcx, r10
call fcn.140073900
mov rsi, qword [rsp + 0x58]
cmp byte [rsi], 0
je 0x140028974
mov rax, qword [0x140273d10]
movss xmm0, dword [rax + 0x2f0]
mulss xmm0, xmm14
cvttss2si eax, xmm0
mov dword [rsp + 0x48], 0x3f48c8ca
mov dword [rsp + 0x4c], 0x3f48c8ca
mov dword [rsp + 0x50], 0x3f48c8ca
movd xmm1, eax
cvtdq2ps xmm1, xmm1
mulss xmm1, dword [0x1401cae80]
movss dword [rsp + 0x54], xmm1
lea rcx, [rsp + 0x48]
call fcn.140053cc0
mov ebx, eax
addss xmm7, xmm13
movaps xmm0, xmm7
call fcn.14018aa58
movaps xmm7, xmm0
addss xmm6, xmm13
movaps xmm0, xmm6
call fcn.14018aa58
movaps xmm6, xmm0
mov rax, qword [0x1402718d8]
mov rax, qword [rax + 0x48b8]
lea r8, str.Foreground
mov edx, 1
mov rcx, qword [rax]
call fcn.1400561d0
movss xmm3, dword [0x1401cafe8]
mov r8d, ebx
unpcklps xmm6, xmm7
movq rdx, xmm6
mov rcx, rax
call fcn.1400782b0
mov rbx, qword [0x140273d10]
mov r10, qword [rbx + 0x260]
test r10, r10
jne 0x140028a31
cmp byte [rsp + 0x30], r10b
jne 0x14002899b
test r13b, r13b
je 0x140028ad1
cmp qword [0x140272c18], 0
jne 0x1400289c9
mov ecx, 8
call fcn.14015d780
mov qword [rsp + 0x48], rax
mov qword [rax], r15
mov dword [rax + 4], r15d
mov qword [0x140272c18], rax
mov rbx, qword [0x140273d10]
mov ecx, 1
call fcn.14007bd70
mov ecx, eax
xor r8d, r8d
xor edx, edx
call fcn.14005ee80
test al, al
je 0x140028ad1
mov rdx, qword [r12 + 0x10]
cmp qword [r12 + 0x18], 0xf
jbe 0x1400289f8
mov r12, qword [r12]
movabs rcx, 0xcbf29ce484222325
test rdx, rdx
je 0x140028a25
movabs r8, 0x100000001b3
movzx eax, byte [r15 + r12]
xor rcx, rax
imul rcx, r8
inc r15
cmp r15, rdx
jb 0x140028a11
mov qword [rbx + 0x260], rcx
jmp 0x140028ad1
mov r9, qword [r12 + 0x10]
cmp qword [r12 + 0x18], 0xf
jbe 0x140028a42
mov r12, qword [r12]
movabs rcx, 0xcbf29ce484222325
mov rdx, r15
test r9, r9
je 0x140028a74
movabs r8, 0x100000001b3
nop
movzx eax, byte [rdx + r12]
xor rcx, rax
imul rcx, r8
inc rdx
cmp rdx, r9
jb 0x140028a60
cmp r10, rcx
jne 0x140028ad1
cmp qword [0x140272c18], 0
jne 0x140028aa7
mov ecx, 8
call fcn.14015d780
mov qword [rsp + 0x48], rax
mov qword [rax], r15
mov dword [rax + 4], r15d
mov qword [0x140272c18], rax
mov rbx, qword [0x140273d10]
mov ecx, 1
call fcn.14007bd70
mov ecx, eax
call fcn.14005ee00
test al, al
jne 0x140028ad1
mov qword [rbx + 0x260], r15
cmp byte [rsp + 0x30], al
jne 0x140028ace
test r13b, r13b
je 0x140028ad1
xor byte [rsi], 1
addss xmm8, xmm10
movss dword [rsp + 0x40], xmm8
addss xmm9, dword [0x1401cb030]
movss dword [rsp + 0x44], xmm9
lea rcx, [rsp + 0x40]
call fcn.1400399f0
cmp byte [rsi], 0
jne 0x140028b10
mov rax, qword [0x140273d10]
cmp byte [rax + 0x2ea], 0
jne 0x140028b10
xor al, al
jmp 0x140028b12
mov al, 1
lea r11, [rsp + 0x160]
mov rbx, qword [r11 + 0x50]
movaps xmm6, xmmword [r11 - 0x10]
movaps xmm7, xmmword [r11 - 0x20]
movaps xmm8, xmmword [r11 - 0x30]
movaps xmm9, xmmword [r11 - 0x40]
movaps xmm10, xmmword [r11 - 0x50]
movaps xmm11, xmmword [r11 - 0x60]
movaps xmm12, xmmword [r11 - 0x70]
movaps xmm13, xmmword [r11 - 0x80]
movaps xmm14, xmmword [r11 - 0x90]
mov rsp, r11
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret