Function at 0x180021860
Capabilities:
Hash data with crc32

Disassembly:
mov qword [rsp + 8], rcx
push rbx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0x28
mov rsi, r8
mov rbx, rdx
mov rdi, rcx
xor r15d, r15d
mov qword [rcx + 0x10], r15
mov qword [rcx + 0x18], r15
mov qword [rcx + 0x20], r15
mov qword [rcx + 0x28], r15
mov qword [rcx + 0x30], r15
mov qword [rcx + 0x38], r15
mov qword [rcx + 0x54], r15
mov qword [rcx + 0x5c], r15
mov qword [rcx + 0x64], r15
mov qword [rcx + 0x6c], r15
mov qword [rcx + 0x74], r15
mov qword [rcx + 0x7c], r15
mov qword [rcx + 0xb8], r15
mov qword [rcx + 0xc0], r15
mov qword [rcx + 0xc8], r15
mov qword [rcx + 0xd0], r15
add rcx, 0xd8
call fcn.180021da0
nop
mov qword [rdi + 0x220], r15
mov qword [rdi + 0x228], r15
mov qword [rdi + 0x230], r15
mov qword [rdi + 0x238], r15
mov qword [rdi + 0x240], r15
mov qword [rdi + 0x248], r15
mov qword [rdi + 0x250], r15
mov qword [rdi + 0x258], r15
mov qword [rdi + 0x260], r15
mov qword [rdi + 0x268], r15
mov qword [rdi + 0x270], r15
mov qword [rdi + 0x278], r15
mov qword [rdi + 0x280], r15
mov qword [rdi + 0x288], r15
mov qword [rdi + 0x290], r15
lea rax, [rdi + 0x2a8]
mov qword [rsp + 0x78], rax
mov qword [rax], r15
mov qword [rax + 8], r15
mov qword [rdi + 0x2b8], r15
mov qword [rdi + 0x2c0], r15
lea r14, [rdi + 0x2d8]
mov qword [rsp + 0x80], r14
mov qword [r14], r15
mov qword [r14 + 8], r15
mov qword [r14 + 0x10], r15
mov qword [r14 + 0x18], r15
mov qword [r14 + 0x20], r15
mov qword [r14 + 0x28], r15
mov qword [r14 + 0x60], r15
mov qword [r14 + 0x68], r15
mov qword [r14 + 0x70], r15
mov qword [r14 + 0x78], r15
mov qword [r14 + 0x80], r15
mov qword [r14 + 0x88], r15
xorps xmm0, xmm0
xor eax, eax
movups xmmword [r14 + 0x90], xmm0
movups xmmword [r14 + 0xa0], xmm0
movups xmmword [r14 + 0xb0], xmm0
mov qword [r14 + 0xc0], rax
lea rax, [r14 + 0xc8]
mov qword [rsp + 0x88], rax
mov qword [rax + 8], r15
mov qword [rax + 0x10], r15
mov dword [rax], r15d
mov dword [rax + 4], 1
lea rax, [rbx + 0x1938]
mov qword [r14 + 0x38], rax
mov dword [r14 + 0x30], r15d
mov dword [r14 + 0x48], r15d
mov qword [r14 + 0x50], r15
mov qword [r14 + 0x58], r15
mov qword [r14 + 0x40], r15
mov qword [rdi + 0x3e8], r15
mov qword [rdi + 0x3f0], r15
mov qword [rdi + 0x3f8], r15
mov qword [rdi + 0x400], r15
mov r13, 0xffffffffffffffff
mov rbx, r13
lea rbx, [rbx + 1]
cmp byte [rsi + rbx], 0
jne 0x180021a32
mov rax, qword [0x18010baf8]
test rax, rax
je 0x180021a4e
inc dword [rax + 0x3bc]
mov rdx, qword [0x18010bb08]
lea rcx, [rbx + 1]
call qword [0x180107550]
lea r8, [rbx + 1]
mov rdx, rsi
mov rcx, rax
call fcn.180090c60
mov qword [rdi], rax
mov r10d, 0xffffffff
mov edx, r10d
movzx r9d, byte [rsi]
lea r8, [rsi + 1]
lea r12, [0x18009a6e0]
test r9b, r9b
je 0x180021ac0
nop
cmp r9b, 0x23
jne 0x180021aa3
cmp byte [r8], r9b
jne 0x180021aa3
cmp byte [r8 + 1], r9b
cmove edx, r10d
movzx ecx, dl
movzx eax, r9b
xor rcx, rax
shr edx, 8
xor edx, dword [r12 + rcx*4]
movzx r9d, byte [r8]
inc r8
test r9b, r9b
jne 0x180021a90
not edx
mov dword [rdi + 8], edx
mov ecx, dword [rdi + 0xcc]
mov ebx, dword [rdi + 0xc8]
cmp ebx, ecx
jne 0x180021b7c
inc ebx
test ecx, ecx
je 0x180021aea
mov eax, ecx
cdq
sub eax, edx
sar eax, 1
add eax, ecx
jmp 0x180021aef
mov eax, 8
cmp eax, ebx
cmovg ebx, eax
cmp ebx, ecx
jle 0x180021b7c
mov rax, qword [0x18010baf8]
test rax, rax
je 0x180021b0e
inc dword [rax + 0x3bc]
movsxd rcx, ebx
shl rcx, 2
mov rdx, qword [0x18010bb08]
call qword [0x180107550]
mov rbp, rax
mov rdx, qword [rdi + 0xd0]
test rdx, rdx
je 0x180021b6f
movsxd r8, dword [rdi + 0xc8]
shl r8, 2
mov rcx, rax
call fcn.180090c60
mov rcx, qword [rdi + 0xd0]
test rcx, rcx
je 0x180021b62
mov rax, qword [0x18010baf8]
test rax, rax
je 0x180021b62
dec dword [rax + 0x3bc]
mov rdx, qword [0x18010bb08]
call qword [0x180107558]
mov qword [rdi + 0xd0], rbp
mov dword [rdi + 0xcc], ebx
movsxd rdx, dword [rdi + 0xc8]
mov rcx, qword [rdi + 0xd0]
mov eax, dword [rdi + 8]
mov dword [rcx + rdx*4], eax
inc dword [rdi + 0xc8]
mov qword [rdi + 0xc], r15
mov qword [rdi + 0x14], r15
mov qword [rdi + 0x20], r15
mov dword [rdi + 0x1c], r15d
mov qword [rdi + 0x30], r15
mov qword [rdi + 0x28], r15
mov qword [rdi + 0x38], r15
mov qword [rdi + 0x40], r15
mov rax, r13
nop dword [rax]
inc rax
cmp byte [rsi + rax], 0
jne 0x180021bc0
inc eax
mov dword [rdi + 0x48], eax
movsxd rcx, dword [rdi + 0xc8]
mov rax, qword [rdi + 0xd0]
mov r10d, dword [rax + rcx*4 - 4]
not r10d
mov edx, r10d
lea r8, [0x18009ac39]
mov r9b, 0x23
cmp r9b, 0x23
jne 0x180021c04
cmp byte [r8], r9b
jne 0x180021c04
cmp byte [r8 + 1], r9b
cmove edx, r10d
movzx ecx, dl
movzx eax, r9b
xor rcx, rax
shr edx, 8
xor edx, dword [r12 + rcx*4]
movzx r9d, byte [r8]
inc r8
test r9b, r9b
jne 0x180021bf1
not edx
mov rax, qword [0x18010baf8]
cmp dword [rax + 0x1ae0], edx
jne 0x180021c38
mov dword [rax + 0x1ae4], edx
cmp dword [rax + 0x1b20], edx
jne 0x180021c47
mov byte [rax + 0x1b24], 1
mov dword [rdi + 0x4c], edx
mov qword [rdi + 0x50], r15
mov dword [rdi + 0x58], r15d
mov dword [rdi + 0x64], 0x7f7fffff
mov dword [rdi + 0x68], 0x7f7fffff
mov dword [rdi + 0x6c], 0x3f000000
mov dword [rdi + 0x70], 0x3f000000
mov qword [rdi + 0x7c], r15
mov qword [rdi + 0x84], 0
mov dword [rdi + 0x8c], 0
mov byte [rdi + 0x90], r13b
mov dword [rdi + 0x92], 0xffff0000
mov word [rdi + 0x96], r13w
mov dword [rdi + 0x98], r15d
mov dword [rdi + 0x9c], 0xffff
mov dword [rdi + 0xa0], r13d
mov qword [rdi + 0xa4], r15
mov dword [rdi + 0xb4], 0xf
mov dword [rdi + 0xb0], 0xf
mov dword [rdi + 0xac], 0xf
mov dword [rdi + 0xc0], 0x7f7fffff
mov dword [rdi + 0xc4], 0x7f7fffff
mov dword [rdi + 0xb8], 0x7f7fffff
mov dword [rdi + 0xbc], 0x7f7fffff
xorps xmm0, xmm0
movups xmmword [rdi + 0x230], xmm0
mov dword [rdi + 0x298], r13d
mov dword [rdi + 0x29c], 0xbf800000
mov dword [rdi + 0x2a0], r15d
mov dword [rdi + 0x2c8], 0x3f800000
mov dword [rdi + 0x2cc], r13d
mov qword [rdi + 0x2d0], r14
mov rax, qword [rdi]
mov qword [r14 + 0x40], rax
mov qword [rdi + 0x3b8], r15
mov qword [rdi + 0x3c0], r15
mov qword [rdi + 0x3c8], r15
mov qword [rdi + 0x3d0], r15
mov qword [rdi + 0x3e0], r15
movups xmmword [rdi + 0x3f8], xmm0
movups xmmword [rdi + 0x3e8], xmm0
mov qword [rdi + 0x3d8], r15
mov byte [rdi + 0x408], 0
mov qword [rdi + 0x40c], r15
mov rax, rdi
add rsp, 0x28
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
pop rbx
ret