Function at 0x180021b90
Capabilities:
Encode data using xor
Hash data with crc32

Disassembly:
mov rax, rsp
mov qword [rax + 0x10], rbx
mov qword [rax + 0x18], rsi
mov qword [rax + 0x20], rdi
push rbp
push r12
push r13
push r14
push r15
lea rbp, [rax - 0x5f]
sub rsp, 0xa0
movaps xmmword [rax - 0x38], xmm6
movaps xmmword [rax - 0x48], xmm7
movaps xmmword [rax - 0x58], xmm8
movaps xmmword [rax - 0x68], xmm9
mov r12d, edx
mov rbx, rcx
test rcx, rcx
je 0x18002220a
call fcn.180021ae0
cmp qword [rax], 0
je 0x18002220a
mov r8d, dword [0x1800f58d0]
mov rax, qword gs:[0x58]
mov edi, 4
mov rsi, qword [rax + r8*8]
mov eax, dword [rsi + rdi]
cmp dword [0x1800f7560], eax
jle 0x180021c39
lea rcx, [0x1800f7560]
call fcn.180098600
cmp dword [0x1800f7560], 0xffffffff
jne 0x180021c39
mov ecx, 0x12235404
call fcn.180018a60
mov qword [0x1800f74b0], rax
lea rcx, [0x1800f7560]
call fcn.180098594
mov rcx, qword [0x1800f74b0]
add rcx, rbx
cmp rcx, 0x40000
jbe 0x18002220a
lea rax, [rcx + 8]
movabs r14, 0x7fffffff0000
cmp rax, r14
jae 0x18002220a
cmp qword [rcx], 0
je 0x18002220a
mov rcx, rbx
call fcn.180021ae0
mov r15, qword [rax]
mov eax, dword [rsi + rdi]
cmp dword [0x1800f7560], eax
jle 0x180021cb9
lea rcx, [0x1800f7560]
call fcn.180098600
cmp dword [0x1800f7560], 0xffffffff
jne 0x180021cb9
mov ecx, 0x12235404
call fcn.180018a60
mov qword [0x1800f74b0], rax
lea rcx, [0x1800f7560]
call fcn.180098594
mov rcx, qword [0x1800f74b0]
add rcx, rbx
cmp rcx, 0x40000
jbe 0x180021cda
lea rax, [rcx + 8]
cmp rax, r14
jae 0x180021cda
mov rdi, qword [rcx]
jmp 0x180021cdc
xor edi, edi
lea r10, [rdi + 0x20]
mov r14, r15
sub r14, rdi
xor r11d, r11d
test r15, r15
je 0x18002220a
lea r13, [0x1800da4b0]
cmp r11d, dword [r15 + 0x18]
jae 0x18002220a
mov r8, qword [r14 + r10]
test rdi, rdi
jne 0x180021d10
xor ebx, ebx
jmp 0x180021d13
mov rbx, qword [r10]
test r8, r8
je 0x180021d75
test rbx, rbx
je 0x180021d75
add r8, 0x14
mov edx, 0xffffffff
mov rax, 0xffffffffffffffff
nop dword [rax]
inc rax
cmp word [r8 + rax*2], 0
jne 0x180021d30
test eax, eax
je 0x180021d6e
mov r9d, eax
nop dword [rax]
nop word [rax + rax]
mov ecx, edx
movzx eax, word [r8]
xor rcx, rax
movzx eax, cl
shr edx, 8
xor edx, dword [r13 + rax*4]
lea r8, [r8 + 2]
sub r9, 1
jne 0x180021d50
not edx
cmp edx, r12d
je 0x180021d81
inc r11d
add r10, 8
jmp 0x180021cf9
mov r15d, 4
mov eax, dword [rsi + r15]
cmp dword [0x1800f7368], eax
jle 0x180021dc5
lea rcx, [0x1800f7368]
call fcn.180098600
cmp dword [0x1800f7368], 0xffffffff
jne 0x180021dc5
mov ecx, 0x3a1e5c61
call fcn.180018230
mov qword [0x1800f70f8], rax
lea rcx, [0x1800f7368]
call fcn.180098594
mov rax, qword [0x1800f70f8]
mov rcx, qword [rax + 0xb8]
mov rdi, qword [rcx]
test rdi, rdi
je 0x180021e9d
mov eax, dword [rsi + r15]
cmp dword [0x1800f7038], eax
jle 0x180021e20
lea rcx, [0x1800f7038]
call fcn.180098600
cmp dword [0x1800f7038], 0xffffffff
jne 0x180021e20
mov ecx, 0x3300df68
call fcn.1800194b0
mov rcx, qword [rax]
mov qword [0x1800f6fc0], rcx
lea rcx, [0x1800f7038]
call fcn.180098594
mov r8, rdi
call fcn.180045f80
mov rdi, rax
test rax, rax
je 0x180021e9d
mov ecx, dword [rsi + r15]
cmp dword [0x1800f7048], ecx
jle 0x180021e71
lea rcx, [0x1800f7048]
call fcn.180098600
cmp dword [0x1800f7048], 0xffffffff
jne 0x180021e71
mov ecx, 0x56e64b7d
call fcn.1800194b0
mov rcx, qword [rax]
mov qword [0x1800f6f60], rcx
lea rcx, [0x1800f7048]
call fcn.180098594
xorps xmm6, xmm6
xorps xmm0, xmm0
unpcklps xmm0, xmm6
movsd qword [rbp - 0x29], xmm0
movss dword [rbp - 0x21], xmm6
mov r9, rdi
lea r8, [rbp - 0x29]
mov rdx, qword [0x1800f6f60]
lea rcx, [rbp - 0x39]
call fcn.180045fa0
jmp 0x180021eaf
xorps xmm6, xmm6
mov qword [rbp - 0x39], 0
mov dword [rbp - 0x31], 0
mov eax, dword [rsi + r15]
cmp dword [0x1800f7368], eax
jle 0x180021eed
lea rcx, [0x1800f7368]
call fcn.180098600
cmp dword [0x1800f7368], 0xffffffff
jne 0x180021eed
mov ecx, 0x3a1e5c61
call fcn.180018230
mov qword [0x1800f70f8], rax
lea rcx, [0x1800f7368]
call fcn.180098594
mov rax, qword [0x1800f70f8]
mov rcx, qword [rax + 0xb8]
mov rdi, qword [rcx]
test rdi, rdi
je 0x180021fc2
mov eax, dword [rsi + r15]
cmp dword [0x1800f7038], eax
jle 0x180021f48
lea rcx, [0x1800f7038]
call fcn.180098600
cmp dword [0x1800f7038], 0xffffffff
jne 0x180021f48
mov ecx, 0x3300df68
call fcn.1800194b0
mov rdx, qword [rax]
mov qword [0x1800f6fc0], rdx
lea rcx, [0x1800f7038]
call fcn.180098594
mov r8, rdi
call fcn.180045f80
mov rdi, rax
test rax, rax
je 0x180021fc2
mov ecx, dword [rsi + r15]
cmp dword [0x1800f7508], ecx
jle 0x180021f99
lea rcx, [0x1800f7508]
call fcn.180098600
cmp dword [0x1800f7508], 0xffffffff
jne 0x180021f99
mov ecx, 0x33ac3a8f
call fcn.1800194b0
mov rdx, qword [rax]
mov qword [0x1800f73b0], rdx
lea rcx, [0x1800f7508]
call fcn.180098594
xorps xmm0, xmm0
unpcklps xmm0, xmm6
movsd qword [rbp - 0x29], xmm0
movss dword [rbp - 0x21], xmm6
mov r9, rdi
lea r8, [rbp - 0x29]
mov rdx, qword [0x1800f73b0]
lea rcx, [rbp - 0x49]
call fcn.180045fa0
jmp 0x180021fd1
mov qword [rbp - 0x49], 0
mov dword [rbp - 0x41], 0
mov eax, dword [rsi + r15]
cmp dword [0x1800f6f28], eax
jle 0x18002200f
lea rcx, [0x1800f6f28]
call fcn.180098600
cmp dword [0x1800f6f28], 0xffffffff
jne 0x18002200f
mov ecx, 0xf7ce809e
call fcn.180018230
mov qword [0x1800f6e00], rax
lea rcx, [0x1800f6f28]
call fcn.180098594
mov rax, qword [0x1800f6e00]
mov rax, qword [rax + 0xb8]
movsd xmm0, qword [rax]
movsd qword [rbp - 0x29], xmm0
mov eax, dword [rax + 8]
mov dword [rbp - 0x21], eax
mov eax, dword [rsi + r15]
cmp dword [0x1800f7368], eax
jle 0x18002206a
lea rcx, [0x1800f7368]
call fcn.180098600
cmp dword [0x1800f7368], 0xffffffff
jne 0x18002206a
mov ecx, 0x3a1e5c61
call fcn.180018230
mov qword [0x1800f70f8], rax
lea rcx, [0x1800f7368]
call fcn.180098594
mov rax, qword [0x1800f70f8]
mov rcx, qword [rax + 0xb8]
mov rcx, qword [rcx]
call fcn.180020330
mov rcx, qword [rax]
call fcn.18001e920
movss xmm2, dword [rbp - 0x25]
addss xmm2, dword [rax + 4]
movss xmm0, dword [rbp - 0x41]
mulss xmm0, xmm2
movss xmm1, dword [rbp - 0x45]
mulss xmm1, xmm2
movss xmm9, dword [rbp - 0x31]
addss xmm9, xmm0
movss xmm8, dword [rbp - 0x35]
addss xmm8, xmm1
movss xmm7, dword [rbp - 0x49]
mulss xmm7, xmm2
addss xmm7, dword [rbp - 0x39]
mov ecx, 0x18
call fcn.180098678
mov rdi, rax
mov qword [rbp + 0x67], rax
xorps xmm0, xmm0
xor eax, eax
movups xmmword [rdi], xmm0
mov qword [rdi + 0x10], rax
mov ecx, dword [rsi + r15]
cmp dword [0x1800f7048], ecx
jle 0x180022126
lea rcx, [0x1800f7048]
call fcn.180098600
cmp dword [0x1800f7048], 0xffffffff
jne 0x180022126
mov ecx, 0x56e64b7d
call fcn.1800194b0
mov rcx, qword [rax]
mov qword [0x1800f6f60], rcx
lea rcx, [0x1800f7048]
call fcn.180098594
xorps xmm0, xmm0
unpcklps xmm0, xmm6
movsd qword [rbp - 0x29], xmm0
movss dword [rbp - 0x21], xmm6
mov r9, rbx
lea r8, [rbp - 0x29]
mov rdx, qword [0x1800f6f60]
lea rcx, [rbp - 0x39]
call fcn.180045fa0
movaps xmm0, xmm7
unpcklps xmm0, xmm8
movsd qword [rbp - 0x29], xmm0
movss dword [rbp - 0x21], xmm9
movsd xmm0, qword [rbp - 0x39]
movsd qword [rbp - 0x49], xmm0
mov eax, dword [rbp - 0x31]
mov dword [rbp - 0x41], eax
lea rdx, [rbp - 0x29]
lea rcx, [rbp - 0x49]
call fcn.18001df70
movzx r14d, al
mov edx, dword [rsi + r15]
cmp dword [0x1800f7048], edx
jle 0x1800221c1
lea rcx, [0x1800f7048]
call fcn.180098600
cmp dword [0x1800f7048], 0xffffffff
jne 0x1800221c1
mov ecx, 0x56e64b7d
call fcn.1800194b0
mov rdx, qword [rax]
mov qword [0x1800f6f60], rdx
lea rcx, [0x1800f7048]
call fcn.180098594
xorps xmm0, xmm0
unpcklps xmm0, xmm6
movsd qword [rbp - 0x29], xmm0
movss dword [rbp - 0x21], xmm6
mov r9, rbx
lea r8, [rbp - 0x29]
mov rdx, qword [0x1800f6f60]
lea rcx, [rbp - 0x19]
call fcn.180045fa0
movsd xmm0, qword [rbp - 0x19]
mov eax, dword [rbp - 0x11]
xor ecx, ecx
mov qword [rdi + 4], rcx
movsd qword [rdi], xmm0
mov dword [rdi + 8], eax
mov byte [rdi + 0xc], r14b
mov qword [rdi + 0x10], rbx
mov rax, rdi
jmp 0x18002220c
xor eax, eax
lea r11, [rsp + 0xa0]
mov rbx, qword [r11 + 0x38]
mov rsi, qword [r11 + 0x40]
mov rdi, qword [r11 + 0x48]
movaps xmm6, xmmword [r11 - 0x10]
movaps xmm7, xmmword [r11 - 0x20]
movaps xmm8, xmmword [r11 - 0x30]
movaps xmm9, xmmword [r11 - 0x40]
mov rsp, r11
pop r15
pop r14
pop r13
pop r12
pop rbp
ret