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

Disassembly:
mov qword [rsp + 8], rbx
mov qword [rsp + 0x10], rsi
mov qword [rsp + 0x18], rdi
push rbp
push r12
push r13
push r14
push r15
lea rbp, [rsp - 0x37]
sub rsp, 0xa0
mov r12d, edx
mov rbx, rcx
test rcx, rcx
je 0x180016be9
mov rax, qword gs:[0x58]
mov r8d, dword [0x1801eb844]
mov ecx, 4
mov r15, qword [rax + r8*8]
mov eax, dword [r15 + rcx]
cmp dword [0x180211dc0], eax
jg 0x180016c0c
jmp 0x1800169b3
mov ecx, 4
mov rax, qword [0x180211c80]
cmp qword [rax + rbx], 0
je 0x180016be9
mov eax, dword [r15 + rcx]
cmp dword [0x180212220], eax
jg 0x180016c47
mov rax, qword [0x180212100]
cmp qword [rax + rbx], 0
je 0x180016be9
mov rcx, rbx
call fcn.1800168d0
mov rcx, rbx
mov rdi, qword [rax]
call fcn.180016850
mov r14, rdi
xor r11d, r11d
mov rsi, qword [rax]
sub r14, rsi
lea r10, [rsi + 0x20]
test rdi, rdi
je 0x180016be9
lea r13, [0x180137000]
cmp r11d, dword [rdi + 0x18]
jae 0x180016be9
mov r8, qword [r14 + r10]
test rsi, rsi
jne 0x180016a31
xor ebx, ebx
jmp 0x180016a34
mov rbx, qword [r10]
test r8, r8
je 0x180016a95
test rbx, rbx
je 0x180016a95
add r8, 0x14
mov edx, 0xffffffff
mov rax, 0xffffffffffffffff
nop
inc rax
cmp word [r8 + rax*2], 0
jne 0x180016a50
test eax, eax
je 0x180016a8e
mov r9d, eax
nop dword [rax]
nop word [rax + rax]
movzx ecx, word [r8]
lea r8, [r8 + 2]
mov eax, edx
shr edx, 8
xor rcx, rax
movzx eax, cl
xor edx, dword [r13 + rax*4]
sub r9, 1
jne 0x180016a70
not edx
cmp edx, r12d
je 0x180016aa1
inc r11d
add r10, 8
jmp 0x180016a1a
movaps xmmword [rsp + 0x90], xmm6
mov ecx, 0x18
movaps xmmword [rsp + 0x80], xmm7
call fcn.1800ad0b0
mov rdi, rax
call fcn.180016520
mov rcx, rax
call fcn.1800158f0
xorps xmm6, xmm6
mov r12d, 4
mov rsi, qword [rax]
test rsi, rsi
jne 0x180016ae5
mov qword [rbp - 0x39], rsi
mov dword [rbp - 0x31], esi
jmp 0x180016b02
mov eax, dword [r15 + r12]
cmp dword [0x180212164], eax
jg 0x180016c82
mov rdx, rsi
lea rcx, [rbp - 0x39]
call qword [0x180211c70]
mov eax, dword [r15 + r12]
cmp dword [0x180211dc4], eax
movsd xmm7, qword [rbp - 0x39]
mov esi, dword [rbp - 0x31]
jg 0x180016cc0
mov rdx, qword [0x180211cf8]
lea r8, [rbp - 0x29]
xorps xmm0, xmm0
movss dword [rbp - 0x21], xmm6
unpcklps xmm0, xmm6
lea rcx, [rbp - 0x19]
mov r9, rbx
movsd qword [rbp - 0x29], xmm0
call fcn.18006c890
mov r9, qword [0x1801ebe60]
lea rdx, [rbp - 0x29]
movsd xmm0, qword [rbp - 0x19]
lea rcx, [rbp - 9]
mov eax, dword [rbp - 0x11]
xor r14d, r14d
add r9, 0x734a20
movsd qword [rbp - 0x29], xmm7
xorps xmm3, xmm3
mov dword [rbp - 0x21], esi
mov r8d, 0x19a1a101
movsd qword [rbp - 9], xmm0
mov dword [rbp - 1], eax
mov qword [rsp + 0x20], r14
call r9
mov edx, dword [r15 + r12]
movzx esi, al
cmp dword [0x180211dc4], edx
movaps xmm7, xmmword [rsp + 0x80]
jg 0x180016cfe
mov rdx, qword [0x180211cf8]
lea r8, [rbp - 9]
xorps xmm0, xmm0
movss dword [rbp - 1], xmm6
unpcklps xmm0, xmm6
lea rcx, [rbp + 7]
mov r9, rbx
movsd qword [rbp - 9], xmm0
call fcn.18006c890
mov eax, dword [rbp + 0xf]
movsd xmm0, qword [rbp + 7]
movaps xmm6, xmmword [rsp + 0x90]
movsd qword [rdi], xmm0
mov dword [rdi + 8], eax
mov rax, rdi
mov byte [rdi + 0xc], sil
mov qword [rdi + 0x10], r14
jmp 0x180016beb
xor eax, eax
lea r11, [rsp + 0xa0]
mov rbx, qword [r11 + 0x30]
mov rsi, qword [r11 + 0x38]
mov rdi, qword [r11 + 0x40]
mov rsp, r11
pop r15
pop r14
pop r13
pop r12
pop rbp
ret
lea rcx, [0x180211dc0]
call fcn.1800accb8
cmp dword [0x180211dc0], 0xffffffff
jne 0x1800169ae
mov ecx, 0xb78ad364
call fcn.18000c660
lea rcx, [0x180211dc0]
mov qword [0x180211c80], rax
call fcn.1800acc4c
jmp 0x1800169ae
lea rcx, [0x180212220]
call fcn.1800accb8
cmp dword [0x180212220], 0xffffffff
jne 0x1800169d5
mov ecx, 0x12235404
call fcn.18000c660
lea rcx, [0x180212220]
mov qword [0x180212100], rax
call fcn.1800acc4c
jmp 0x1800169d5
lea rcx, [0x180212164]
call fcn.1800accb8
cmp dword [0x180212164], 0xffffffff
jne 0x180016af5
mov ecx, 0xf3daab4b
call fcn.180009910
lea rcx, [0x180212164]
mov r8, qword [rax]
mov qword [0x180211c70], r8
call fcn.1800acc4c
jmp 0x180016af5
lea rcx, [0x180211dc4]
call fcn.1800accb8
cmp dword [0x180211dc4], 0xffffffff
jne 0x180016b1a
mov ecx, 0x56e64b7d
call fcn.180009910
mov rcx, qword [rax]
mov qword [0x180211cf8], rcx
lea rcx, [0x180211dc4]
call fcn.1800acc4c
jmp 0x180016b1a
lea rcx, [0x180211dc4]
call fcn.1800accb8
cmp dword [0x180211dc4], 0xffffffff
jne 0x180016b9e
mov ecx, 0x56e64b7d
call fcn.180009910
lea rcx, [0x180211dc4]
mov rdx, qword [rax]
mov qword [0x180211cf8], rdx
call fcn.1800acc4c
jmp 0x180016b9e