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

Disassembly:
mov qword [rsp + 0x18], rbx
mov dword [rsp + 0x10], edx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
mov rbp, rsp
sub rsp, 0x70
movaps xmmword [rsp + 0x60], xmm6
mov r12d, edx
mov rbx, rcx
test rcx, rcx
je 0x180050f3a
mov r8d, dword [0x1800cdd94]
mov rax, qword gs:[0x58]
mov edi, 4
mov rsi, qword [rax + r8*8]
mov eax, dword [rsi + rdi]
cmp dword [0x1800cf6f4], eax
jle 0x180050da5
lea rcx, [0x1800cf6f4]
call fcn.180071278
cmp dword [0x1800cf6f4], 0xffffffff
jne 0x180050da5
mov ecx, 0xb78ad364
call fcn.180047110
mov qword [0x1800cfc98], rax
lea rcx, [0x1800cf6f4]
call fcn.180071218
mov rax, qword [0x1800cfc98]
cmp qword [rax + rbx], 0
je 0x180050f3a
mov eax, dword [rsi + rdi]
cmp dword [0x1800cfe08], eax
jle 0x180050df4
lea rcx, [0x1800cfe08]
call fcn.180071278
cmp dword [0x1800cfe08], 0xffffffff
jne 0x180050df4
mov ecx, 0x12235404
call fcn.180047110
mov qword [0x1800cfd60], rax
lea rcx, [0x1800cfe08]
call fcn.180071218
mov rax, qword [0x1800cfd60]
cmp qword [rax + rbx], 0
je 0x180050f3a
mov eax, dword [rsi + rdi]
cmp dword [0x1800cf6f4], eax
jle 0x180050e43
lea rcx, [0x1800cf6f4]
call fcn.180071278
cmp dword [0x1800cf6f4], 0xffffffff
jne 0x180050e43
mov ecx, 0xb78ad364
call fcn.180047110
mov qword [0x1800cfc98], rax
lea rcx, [0x1800cf6f4]
call fcn.180071218
mov rax, qword [0x1800cfc98]
mov r14, qword [rax + rbx]
mov eax, dword [rsi + rdi]
cmp dword [0x1800cfe08], eax
jle 0x180050e8b
lea rcx, [0x1800cfe08]
call fcn.180071278
cmp dword [0x1800cfe08], 0xffffffff
jne 0x180050e8b
mov ecx, 0x12235404
call fcn.180047110
mov qword [0x1800cfd60], rax
lea rcx, [0x1800cfe08]
call fcn.180071218
mov rax, qword [0x1800cfd60]
mov r13, qword [rax + rbx]
xor ebx, ebx
mov rcx, r14
call fcn.180065650
test eax, eax
je 0x180050f3a
nop dword [rax + rax]
mov edx, ebx
mov rcx, r14
call fcn.180065600
mov rdi, rax
mov edx, ebx
mov rcx, r13
call fcn.1800655b0
mov r15, rax
test rdi, rdi
je 0x180050f28
test rax, rax
je 0x180050f28
lea r8, [rdi + 0x14]
mov edx, 0xffffffff
mov rcx, 0xffffffffffffffff
inc rcx
cmp word [r8 + rcx*2], 0
jne 0x180050ee4
test ecx, ecx
je 0x180050f21
mov r9d, ecx
lea r12, [0x1800b90c0]
nop dword [rax]
movzx ecx, word [r8]
mov eax, edx
xor rcx, rax
movzx eax, cl
shr edx, 8
xor edx, dword [r12 + rax*4]
lea r8, [r8 + 2]
sub r9, 1
jne 0x180050f00
mov r12d, dword [rbp + 0x48]
not edx
cmp edx, r12d
je 0x180050f59
inc ebx
mov rcx, r14
call fcn.180065650
cmp ebx, eax
jb 0x180050eb0
xor eax, eax
mov rbx, qword [rsp + 0xc0]
movaps xmm6, xmmword [rsp + 0x60]
add rsp, 0x70
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret
mov r14d, 4
mov eax, dword [rsi + r14]
cmp dword [0x1800cfc38], eax
jle 0x180050f9d
lea rcx, [0x1800cfc38]
call fcn.180071278
cmp dword [0x1800cfc38], 0xffffffff
jne 0x180050f9d
mov ecx, 0x3a1e5c61
call fcn.1800466f0
mov qword [0x1800cf9c0], rax
lea rcx, [0x1800cfc38]
call fcn.180071218
mov rax, qword [0x1800cf9c0]
mov rcx, qword [rax + 0xb8]
mov rbx, qword [rcx]
test rbx, rbx
je 0x180051075
mov eax, dword [rsi + r14]
cmp dword [0x1800cf8c8], eax
jle 0x180050ff8
lea rcx, [0x1800cf8c8]
call fcn.180071278
cmp dword [0x1800cf8c8], 0xffffffff
jne 0x180050ff8
mov ecx, 0x3300df68
call fcn.180048680
mov rcx, qword [rax]
mov qword [0x1800cf848], rcx
lea rcx, [0x1800cf8c8]
call fcn.180071218
mov r8, rbx
call fcn.180068c00
mov rbx, rax
test rax, rax
je 0x180051075
mov ecx, dword [rsi + r14]
cmp dword [0x1800cf8e0], ecx
jle 0x180051049
lea rcx, [0x1800cf8e0]
call fcn.180071278
cmp dword [0x1800cf8e0], 0xffffffff
jne 0x180051049
mov ecx, 0x56e64b7d
call fcn.180048680
mov rcx, qword [rax]
mov qword [0x1800cf7f8], rcx
lea rcx, [0x1800cf8e0]
call fcn.180071218
xorps xmm6, xmm6
xorps xmm0, xmm0
unpcklps xmm0, xmm6
movsd qword [rbp - 0x50], xmm0
movss dword [rbp - 0x48], xmm6
mov r9, rbx
lea r8, [rbp - 0x50]
mov rdx, qword [0x1800cf7f8]
lea rcx, [rbp - 0x30]
call fcn.180068c20
jmp 0x180051087
xorps xmm6, xmm6
mov qword [rbp - 0x30], 0
mov dword [rbp - 0x28], 0
mov eax, dword [rsi + r14]
cmp dword [0x1800cfc38], eax
jle 0x1800510c5
lea rcx, [0x1800cfc38]
call fcn.180071278
cmp dword [0x1800cfc38], 0xffffffff
jne 0x1800510c5
mov ecx, 0x3a1e5c61
call fcn.1800466f0
mov qword [0x1800cf9c0], rax
lea rcx, [0x1800cfc38]
call fcn.180071218
mov rax, qword [0x1800cf9c0]
mov rcx, qword [rax + 0xb8]
mov rbx, qword [rcx]
test rbx, rbx
je 0x18005119a
mov eax, dword [rsi + r14]
cmp dword [0x1800cf8c8], eax
jle 0x180051120
lea rcx, [0x1800cf8c8]
call fcn.180071278
cmp dword [0x1800cf8c8], 0xffffffff
jne 0x180051120
mov ecx, 0x3300df68
call fcn.180048680
mov rdx, qword [rax]
mov qword [0x1800cf848], rdx
lea rcx, [0x1800cf8c8]
call fcn.180071218
mov r8, rbx
call fcn.180068c00
mov rbx, rax
test rax, rax
je 0x18005119a
mov ecx, dword [rsi + r14]
cmp dword [0x1800cfdb8], ecx
jle 0x180051171
lea rcx, [0x1800cfdb8]
call fcn.180071278
cmp dword [0x1800cfdb8], 0xffffffff
jne 0x180051171
mov ecx, 0x33ac3a8f
call fcn.180048680
mov rdx, qword [rax]
mov qword [0x1800cfc90], rdx
lea rcx, [0x1800cfdb8]
call fcn.180071218
xorps xmm0, xmm0
unpcklps xmm0, xmm6
movsd qword [rbp - 0x50], xmm0
movss dword [rbp - 0x48], xmm6
mov r9, rbx
lea r8, [rbp - 0x50]
mov rdx, qword [0x1800cfc90]
lea rcx, [rbp - 0x40]
call fcn.180068c20
jmp 0x1800511a9
mov qword [rbp - 0x40], 0
mov dword [rbp - 0x38], 0
mov eax, dword [rsi + r14]
cmp dword [0x1800cf7c8], eax
jle 0x1800511e7
lea rcx, [0x1800cf7c8]
call fcn.180071278
cmp dword [0x1800cf7c8], 0xffffffff
jne 0x1800511e7
mov ecx, 0xf7ce809e
call fcn.1800466f0
mov qword [0x1800cf680], rax
lea rcx, [0x1800cf7c8]
call fcn.180071218
mov rax, qword [0x1800cf680]
mov rdx, qword [rax + 0xb8]
movsd xmm0, qword [rdx]
movsd qword [rbp - 0x20], xmm0
mov eax, dword [rdx + 8]
mov dword [rbp - 0x18], eax
mov eax, dword [rsi + r14]
cmp dword [0x1800cfc38], eax
jle 0x180051242
lea rcx, [0x1800cfc38]
call fcn.180071278
cmp dword [0x1800cfc38], 0xffffffff
jne 0x180051242
mov ecx, 0x3a1e5c61
call fcn.1800466f0
mov qword [0x1800cf9c0], rax
lea rcx, [0x1800cfc38]
call fcn.180071218
mov rax, qword [0x1800cf9c0]
mov rcx, qword [rax + 0xb8]
mov rbx, qword [rcx]
xor r12d, r12d
mov qword [rbp + 0x40], r12
test rbx, rbx
jne 0x180051270
mov qword [rbp - 0x4c], r12
mov dword [rbp - 0x50], r12d
lea rax, [rbp - 0x50]
jmp 0x18005131b
mov eax, dword [rsi + r14]
cmp dword [0x1800cf964], eax
jle 0x1800512ae
lea rcx, [0x1800cf964]
call fcn.180071278
cmp dword [0x1800cf964], 0xffffffff
jne 0x1800512ae
mov ecx, 0x6d5c7dd2
call fcn.180047110
mov qword [0x1800cfd18], rax
lea rcx, [0x1800cf964]
call fcn.180071218
mov rax, qword [0x1800cfd18]
mov rbx, qword [rbx + rax]
mov qword [rbp - 0x4c], 0
mov dword [rbp - 0x50], 0
test rbx, rbx
jne 0x1800512d3
lea rax, [rbp - 0x50]
jmp 0x18005131b
mov eax, dword [rsi + r14]
cmp dword [0x1800cf8c4], eax
jle 0x180051311
lea rcx, [0x1800cf8c4]
call fcn.180071278
cmp dword [0x1800cf8c4], 0xffffffff
jne 0x180051311
mov ecx, 0x7cd71351
call fcn.180047110
mov qword [0x1800cf8f0], rax
lea rcx, [0x1800cf8c4]
call fcn.180071218
mov rax, qword [0x1800cf8f0]
add rax, rbx
movss xmm4, dword [rbp - 0x1c]
addss xmm4, dword [rax + 4]
movss xmm0, dword [rbp - 0x38]
mulss xmm0, xmm4
movss xmm1, dword [rbp - 0x3c]
mulss xmm1, xmm4
movss xmm3, dword [rbp - 0x28]
addss xmm3, xmm0
movss xmm2, dword [rbp - 0x2c]
addss xmm2, xmm1
movss xmm0, dword [rbp - 0x40]
mulss xmm0, xmm4
addss xmm0, dword [rbp - 0x30]
movss dword [rbp - 0x30], xmm0
movss dword [rbp - 0x2c], xmm2
movss dword [rbp - 0x28], xmm3
mov ecx, 0x18
call fcn.180071850
mov rbx, rax
mov qword [rbp + 0x40], rax
xorps xmm0, xmm0
xor eax, eax
movups xmmword [rbx], xmm0
mov qword [rbx + 0x10], rax
mov ecx, dword [rsi + r14]
cmp dword [0x1800cf8e0], ecx
jle 0x1800513c4
lea rcx, [0x1800cf8e0]
call fcn.180071278
cmp dword [0x1800cf8e0], 0xffffffff
jne 0x1800513c4
mov ecx, 0x56e64b7d
call fcn.180048680
mov rcx, qword [rax]
mov qword [0x1800cf7f8], rcx
lea rcx, [0x1800cf8e0]
call fcn.180071218
xorps xmm0, xmm0
unpcklps xmm0, xmm6
movsd qword [rbp - 0x20], xmm0
movss dword [rbp - 0x18], xmm6
mov r9, r15
lea r8, [rbp - 0x20]
mov rdx, qword [0x1800cf7f8]
lea rcx, [rbp - 0x40]
call fcn.180068c20
movsd xmm0, qword [rbp - 0x30]
movsd qword [rbp - 0x20], xmm0
mov eax, dword [rbp - 0x28]
mov dword [rbp - 0x18], eax
movsd xmm0, qword [rbp - 0x40]
movsd qword [rbp - 0x30], xmm0
mov eax, dword [rbp - 0x38]
mov dword [rbp - 0x28], eax
lea rdx, [rbp - 0x20]
lea rcx, [rbp - 0x30]
call fcn.18004bb70
movzx edi, al
mov edx, dword [rsi + r14]
cmp dword [0x1800cf8e0], edx
jle 0x18005145c
lea rcx, [0x1800cf8e0]
call fcn.180071278
cmp dword [0x1800cf8e0], 0xffffffff
jne 0x18005145c
mov ecx, 0x56e64b7d
call fcn.180048680
mov rdx, qword [rax]
mov qword [0x1800cf7f8], rdx
lea rcx, [0x1800cf8e0]
call fcn.180071218
xorps xmm0, xmm0
unpcklps xmm0, xmm6
movsd qword [rbp - 0x20], xmm0
movss dword [rbp - 0x18], xmm6
mov r9, r15
lea r8, [rbp - 0x20]
mov rdx, qword [0x1800cf7f8]
lea rcx, [rbp - 0x50]
call fcn.180068c20
movsd xmm0, qword [rbp - 0x50]
mov eax, dword [rbp - 0x48]
mov qword [rbx + 4], r12
movsd qword [rbx], xmm0
mov dword [rbx + 8], eax
mov byte [rbx + 0xc], dil
mov qword [rbx + 0x10], r15
mov rax, rbx
jmp 0x180050f3c