Function at 0x1400a0b30
Capabilities:
Hash data with crc32

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0x68
movaps xmmword [rsp + 0x50], xmm6
mov r14, r8
mov esi, edx
mov eax, dword [rsp + 0xd0]
mov rdx, qword [0x140183d00]
xor rdx, rsp
mov qword [rsp + 0x48], rdx
mov r15, qword [0x140186d50]
mov r13, qword [r15 + 0x4078]
mov edx, eax
shr edx, 0x1d
and edx, 2
or edx, r9d
mov r8d, edx
or r8d, 0x100
test eax, eax
cmovns r8d, edx
mov edx, r8d
and edx, 0xfffffffb
test r8b, 0x10
cmove edx, r8d
mov r12d, edx
and r12d, 0xfffffff7
test dl, 0x20
cmove r12d, edx
mov edx, dword [r13 + 0x14]
and edx, 4
xor r8d, r8d
test r12b, 0x70
setne r8b
shl r8d, 6
or r8d, edx
test r12b, 0xc
mov edx, 0x1000103
mov edi, 0x1000001
cmove edi, edx
mov rbx, rcx
or edi, eax
or edi, r8d
test r12b, r12b
js 0x1400a0be4
mov rax, r15
jmp 0x1400a0cf3
mov dword [rsp + 0x30], 3
movups xmm0, xmmword [r15 + 0x3a20]
movups xmmword [rsp + 0x34], xmm0
lea rcx, [r15 + 0x4b08]
lea rdx, [rsp + 0x30]
call fcn.140088210
cmp dword [r15 + 0x4b04], 3
je 0x1400a0c26
lea rax, [r15 + 0x3a20]
movups xmm0, xmmword [r15 + 0x3a60]
movups xmmword [rax], xmm0
movss xmm6, dword [r15 + 0x3944]
mov rbp, qword [0x140186d50]
lea rcx, [rbp + 0x4b18]
movss xmm0, dword [rbp + 0x392c]
mov dword [rsp + 0x30], 7
movss dword [rsp + 0x34], xmm0
lea rdx, [rsp + 0x30]
call fcn.140088550
movss dword [rbp + 0x392c], xmm6
movss xmm6, dword [r15 + 0x3948]
mov rbp, qword [0x140186d50]
lea rcx, [rbp + 0x4b18]
movss xmm0, dword [rbp + 0x3930]
mov dword [rsp + 0x30], 8
movss dword [rsp + 0x34], xmm0
lea rdx, [rsp + 0x30]
call fcn.140088550
movss dword [rbp + 0x3930], xmm6
mov rbp, qword [0x140186d50]
lea rcx, [rbp + 0x4b18]
mov rax, qword [rbp + 0x3908]
mov dword [rsp + 0x30], 2
mov dword [rsp + 0x34], eax
shr rax, 0x20
mov dword [rsp + 0x38], eax
lea rdx, [rsp + 0x30]
call fcn.140088550
mov rax, qword [r15 + 0x393c]
mov qword [rbp + 0x3908], rax
or r12d, 3
or edi, 4
mov rax, qword [0x140186d50]
or byte [r15 + 0x4a91], 1
mov dword [r15 + 0x4ac8], r12d
mov rcx, qword [rax + 0x4078]
mov rdx, qword [rcx + 0x1c0]
test rdx, rdx
jne 0x1400a0d23
cmp qword [rax + 0x4e90], 0
je 0x1400a0fe8
lea r8, [rcx + 0x238]
movsd xmm2, qword [rcx + 0x118]
xorps xmm5, xmm5
test r12b, 0x20
je 0x1400a0d4f
xorps xmm0, xmm0
test r12b, 0x10
jne 0x1400a0d66
movss xmm3, dword [r8]
subss xmm3, xmm2
jmp 0x1400a0d69
movss xmm0, dword [r8 + 4]
movaps xmm1, xmm2
shufps xmm1, xmm2, 0x55
subss xmm0, xmm1
test r12b, 0x10
je 0x1400a0d44
xorps xmm3, xmm3
movss xmm4, dword [r14]
movss xmm1, dword [r14 + 4]
ucomiss xmm5, xmm4
ja 0x1400a0d84
xorps xmm5, xmm5
xorps xmm6, xmm6
ucomiss xmm6, xmm1
jbe 0x1400a0da5
test rdx, rdx
jne 0x1400a0d97
cmp qword [rax + 0x4e90], 0
je 0x1400a1076
add rcx, 0x238
movsd xmm5, qword [rcx]
subps xmm5, xmm2
xorps xmm2, xmm2
ucomiss xmm2, xmm4
jbe 0x1400a0dd2
addss xmm4, xmm5
movss xmm6, dword [0x1401080d0]
maxss xmm6, xmm4
ucomiss xmm2, xmm1
ja 0x1400a0de8
cmpneqss xmm2, xmm1
andps xmm1, xmm2
andnps xmm2, xmm0
orps xmm2, xmm1
jmp 0x1400a0dfc
movaps xmm6, xmm4
cmpneqss xmm6, xmm2
andps xmm4, xmm6
andnps xmm6, xmm3
orps xmm6, xmm4
ucomiss xmm2, xmm1
jbe 0x1400a0dc2
shufps xmm5, xmm5, 0x55
addss xmm5, xmm1
movss xmm2, dword [0x1401080d0]
maxss xmm2, xmm5
or byte [rax + 0x4a90], 2
movss dword [rax + 0x4ab0], xmm6
movss dword [rax + 0x4ab4], xmm2
mov dword [rax + 0x4a98], 1
mov r9, qword [r13 + 8]
test rbx, rbx
je 0x1400a0e69
cmp byte [0x1401874e3], 0
jne 0x1400a0e57
movabs rax, 0x30255f73252f7325
mov qword [0x1401874d8], rax
mov word [0x1401874e0], 0x5838
mov byte [0x1401874e2], 0
mov byte [0x1401874e3], 1
mov dword [rsp + 0x28], esi
mov qword [rsp + 0x20], rbx
lea r8, [0x1401874d8]
jmp 0x1400a0e95
cmp byte [0x1401874f0], 0
jne 0x1400a0e8a
movabs rax, 0x583830252f7325
mov qword [0x1401874e8], rax
mov byte [0x1401874f0], 1
mov dword [rsp + 0x20], esi
lea r8, [0x1401874e8]
lea rcx, [rsp + 0x30]
xor edx, edx
call fcn.140086b10
movss xmm6, dword [r15 + 0x3930]
test r12b, 1
jne 0x1400a0ebb
mov dword [r15 + 0x3930], 0
mov rcx, qword [rsp + 0x30]
xor edx, edx
mov r8d, edi
call fcn.140099e80
mov ebx, eax
movss dword [r15 + 0x3930], xmm6
test r12b, r12b
jns 0x1400a10d2
mov rax, qword [0x140186d50]
movsxd rcx, dword [rax + 0x4b18]
test rcx, rcx
jle 0x1400a109f
cmp ecx, 3
mov edx, 3
cmovl edx, ecx
mov r8, qword [rax + 0x4b20]
dec rcx
lea r9, [rcx + rcx*2]
movsxd r11, dword [r8 + r9*4]
lea r10, [r11 + r11*2]
lea rcx, [0x1401098b0]
mov r10d, dword [rcx + r10*4 + 8]
mov edi, 0x47fd379b
bt rdi, r11
jb 0x1400a0f61
movabs rdi, 0x1b802c864
bt rdi, r11
jae 0x1400a0f72
movss xmm0, dword [r8 + r9*4 + 4]
movss dword [rax + r10 + 0x3900], xmm0
movss xmm0, dword [r8 + r9*4 + 8]
movss dword [rax + r10 + 0x3904], xmm0
jmp 0x1400a0f72
movss xmm0, dword [r8 + r9*4 + 4]
movss dword [rax + r10 + 0x3900], xmm0
movsxd r9, dword [rax + 0x4b18]
lea r8d, [r9 - 1]
mov dword [rax + 0x4b18], r8d
cmp edx, 2
jl 0x1400a1098
mov r8, qword [rax + 0x4b20]
add r9, 0xfffffffffffffffe
lea r9, [r9 + r9*2]
movsxd r11, dword [r8 + r9*4]
lea r10, [r11 + r11*2]
mov r10d, dword [rcx + r10*4 + 8]
mov edi, 0x47fd379b
bt rdi, r11
jb 0x1400a0ff4
movabs rdi, 0x1b802c864
bt rdi, r11
jae 0x1400a1005
movss xmm0, dword [r8 + r9*4 + 4]
movss dword [rax + r10 + 0x3900], xmm0
movss xmm0, dword [r8 + r9*4 + 8]
movss dword [rax + r10 + 0x3904], xmm0
jmp 0x1400a1005
lea r8, [rcx + 0x268]
jmp 0x1400a0d2a
movss xmm0, dword [r8 + r9*4 + 4]
movss dword [rax + r10 + 0x3900], xmm0
movsxd r8, dword [rax + 0x4b18]
lea r9d, [r8 - 1]
mov dword [rax + 0x4b18], r9d
cmp edx, 3
jl 0x1400a1098
mov rdx, qword [rax + 0x4b20]
add r8, 0xfffffffffffffffe
lea r8, [r8 + r8*2]
movsxd r9, dword [rdx + r8*4]
lea r10, [r9 + r9*2]
mov ecx, dword [rcx + r10*4 + 8]
mov r10d, 0x47fd379b
bt r10, r9
jb 0x1400a1082
movabs r10, 0x1b802c864
bt r10, r9
jae 0x1400a1092
movss xmm0, dword [rdx + r8*4 + 4]
movss dword [rax + rcx + 0x3900], xmm0
movss xmm0, dword [rdx + r8*4 + 8]
movss dword [rax + rcx + 0x3904], xmm0
jmp 0x1400a1092
add rcx, 0x268
jmp 0x1400a0d9e
movss xmm0, dword [rdx + r8*4 + 4]
movss dword [rax + rcx + 0x3900], xmm0
dec dword [rax + 0x4b18]
mov rax, qword [0x140186d50]
mov ecx, dword [rax + 0x4b08]
test ecx, ecx
jle 0x1400a10d2
mov rdx, qword [rax + 0x4b10]
dec ecx
lea rcx, [rcx + rcx*4]
movsxd r8, dword [rdx + rcx*4]
shl r8, 4
movups xmm0, xmmword [rdx + rcx*4 + 4]
movups xmmword [rax + r8 + 0x39f0], xmm0
dec dword [rax + 0x4b08]
mov rdi, qword [r15 + 0x4078]
mov dword [rdi + 0x90], esi
cmp word [rdi + 0xd8], 1
jne 0x1400a10f4
mov rax, qword [rdi + 0x28]
mov qword [r13 + 0x118], rax
cmp byte [0x140187500], 0
je 0x1400a119a
movzx eax, byte [0x1401874f8]
mov ebp, esi
test al, al
jne 0x1400a11b4
cmp dword [r15 + 0x40e4], ebp
jne 0x1400a1124
xor ecx, ecx
xor edx, edx
call fcn.140090cb0
test r12d, 0x100
jne 0x1400a1175
cmp dword [r15 + 0x4bbc], esi
jne 0x1400a1175
cmp word [rdi + 0x174], 0
jne 0x1400a1149
cmp byte [rdi + 0x17a], 0
je 0x1400a1175
mov rcx, rdi
xor edx, edx
call fcn.140091d30
mov rcx, rdi
xor edx, edx
call fcn.1400a1300
mov ecx, ebp
mov rdx, rdi
call fcn.140090cb0
mov eax, dword [r15 + 0x4bf0]
mov dword [r15 + 0x4110], eax
mov rcx, qword [rsp + 0x48]
xor rcx, rsp
call fcn.1400f0d70
mov eax, ebx
movaps xmm6, xmmword [rsp + 0x50]
add rsp, 0x68
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret
movabs rax, 0x646c6968432323
mov qword [0x1401874f8], rax
mov byte [0x140187500], 1
mov al, 0x23
mov ecx, esi
not ecx
lea rdx, [0x1401874fa]
lea r8, [0x140109410]
mov ebp, ecx
jmp 0x1400a11e9
movzx r9d, r9b
movzx r10d, bpl
shr ebp, 8
xor r10d, r9d
xor ebp, dword [r8 + r10*4]
inc rdx
test al, al
je 0x1400a1202
mov r9d, eax
movzx eax, byte [rdx - 1]
cmp r9b, 0x23
jne 0x1400a11d0
cmp al, 0x23
jne 0x1400a11d0
cmp byte [rdx], 0x23
cmove ebp, ecx
jmp 0x1400a11d0
not ebp
cmp dword [r15 + 0x40e4], ebp
je 0x1400a111b
jmp 0x1400a1124