Function at 0x140024a10
Capabilities:
Hash data with crc32

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0x78
vmovaps xmmword [rsp + 0x60], xmm6
mov r14, r8
mov r15d, edx
mov eax, dword [rsp + 0xe0]
mov rdx, qword [0x1400c1548]
xor rdx, rsp
mov qword [rsp + 0x58], rdx
mov r12, qword [0x1400c1650]
mov rbp, qword [r12 + 0x4000]
mov edx, eax
shr edx, 0x1d
and edx, 2
or edx, r9d
mov esi, edx
and esi, 0xfffffffb
test r9b, 0x10
cmove esi, edx
mov edi, esi
and edi, 0xfffffff7
test sil, 0x20
cmove edi, esi
mov qword [rsp + 0x38], rbp
mov edx, dword [rbp + 0x14]
and edx, 4
xor ebp, ebp
test dil, 0x70
setne bpl
shl ebp, 6
or edx, eax
test dil, 0xc
mov eax, 0x1000103
mov r13d, 0x1000001
cmove r13d, eax
mov rbx, rcx
or r13d, edx
or r13d, ebp
test dil, 0x80
jne 0x140024ab8
mov rax, r12
jmp 0x140024bd3
mov dword [rsp + 0x40], 3
vmovups xmm0, xmmword [r12 + 0x39fc]
vmovups xmmword [rsp + 0x44], xmm0
lea rcx, [r12 + 0x4a78]
lea rdx, [rsp + 0x40]
call fcn.14000f4a0
cmp dword [r12 + 0x4a74], 3
je 0x140024b03
lea rax, [r12 + 0x39fc]
vmovups xmm0, xmmword [r12 + 0x3a3c]
vmovups xmmword [rax], xmm0
vmovss xmm6, dword [r12 + 0x392c]
mov rsi, qword [0x1400c1650]
lea rcx, [rsi + 0x4a88]
vmovss xmm0, dword [rsi + 0x3914]
mov dword [rsp + 0x40], 7
vmovss dword [rsp + 0x44], xmm0
lea rdx, [rsp + 0x40]
call fcn.14000f810
vmovss dword [rsi + 0x3914], xmm6
vmovss xmm6, dword [r12 + 0x3930]
mov rsi, qword [0x1400c1650]
lea rcx, [rsi + 0x4a88]
vmovss xmm0, dword [rsi + 0x3918]
mov dword [rsp + 0x40], 8
vmovss dword [rsp + 0x44], xmm0
lea rdx, [rsp + 0x40]
call fcn.14000f810
vmovss dword [rsi + 0x3918], xmm6
mov rsi, qword [0x1400c1650]
lea rcx, [rsi + 0x4a88]
mov rax, qword [rsi + 0x38f0]
mov dword [rsp + 0x40], 2
mov dword [rsp + 0x44], eax
shr rax, 0x20
mov dword [rsp + 0x48], eax
lea rdx, [rsp + 0x40]
call fcn.14000f810
mov rax, qword [r12 + 0x3924]
mov qword [rsi + 0x38f0], rax
or edi, 3
or r13d, 4
mov rax, qword [0x1400c1650]
or byte [r12 + 0x4a01], 1
mov dword [r12 + 0x4a38], edi
mov rcx, qword [rax + 0x4000]
mov rdx, qword [rcx + 0x1b8]
test rdx, rdx
jne 0x140024c05
cmp qword [rax + 0x4e18], 0
je 0x140024db5
lea rbp, [rcx + 0x230]
vmovd xmm0, edi
vpbroadcastd xmm0, xmm0
vpand xmm1, xmm0, xmmword [0x14006ace0]
vmovsd xmm2, qword [rbp]
vmovsd xmm0, qword [rcx + 0x110]
vsubps xmm2, xmm2, xmm0
vpxor xmm3, xmm3, xmm3
vpcmpeqd xmm1, xmm1, xmm3
vpand xmm1, xmm1, xmm2
vmovsd xmm2, qword [r14]
vcmpltps xmm4, xmm2, xmm3
vpmovsxdq xmm4, xmm4
vmovmskpd ebp, xmm4
vxorpd xmm4, xmm4, xmm4
test ebp, ebp
je 0x140024c73
test rdx, rdx
jne 0x140024c68
cmp qword [rax + 0x4e18], 0
je 0x140024e43
add rcx, 0x230
vmovsd xmm4, qword [rcx]
vcmpleps xmm5, xmm3, xmm2
vcmpeqps xmm3, xmm2, xmm3
or byte [rax + 0x4a00], 2
vsubps xmm0, xmm2, xmm0
vaddps xmm0, xmm0, xmm4
vblendvps xmm1, xmm2, xmm1, xmm3
vbroadcastss xmm2, dword [0x1400690a0]
vmaxps xmm0, xmm0, xmm2
vblendvps xmm0, xmm0, xmm1, xmm5
vmovlps qword [rax + 0x4a20], xmm0
mov dword [rax + 0x4a08], 1
mov rax, qword [rsp + 0x38]
mov r9, qword [rax + 8]
test rbx, rbx
je 0x140024cd8
mov dword [rsp + 0x28], r15d
mov qword [rsp + 0x20], rbx
lea r8, str._s__s__08X
jmp 0x140024ce4
mov dword [rsp + 0x20], r15d
lea r8, str._s__08X
lea rcx, [rsp + 0x40]
xor edx, edx
call fcn.14000d980
vmovss xmm6, dword [r12 + 0x3918]
test dil, 1
jne 0x140024d0c
mov dword [r12 + 0x3918], 0
mov rcx, qword [rsp + 0x40]
xor edx, edx
mov r8d, r13d
call fcn.14001e470
mov byte [rsp + 0x37], al
vmovss dword [r12 + 0x3918], xmm6
test dil, 0x80
je 0x140024f1c
mov rax, qword [0x1400c1650]
movsxd rcx, dword [rax + 0x4a88]
test rcx, rcx
jle 0x140024ee8
cmp ecx, 3
mov edx, 3
cmovl edx, ecx
mov rbp, qword [rax + 0x4a90]
dec rcx
lea rbx, [rcx + rcx*2]
movsxd rcx, dword [rbp + rbx*4]
lea rsi, [rcx + rcx*2]
lea r8, [0x140069e20]
cmp dword [r8 + rsi*4], 8
jne 0x140024dd0
mov esi, dword [r8 + rsi*4 + 8]
mov edi, 0x4fd379b
bt rdi, rcx
jb 0x140024dc1
mov edi, 0x1b02c864
bt rdi, rcx
jae 0x140024dd0
vmovss xmm0, dword [rbp + rbx*4 + 4]
vmovss dword [rax + rsi + 0x38e8], xmm0
vmovss xmm0, dword [rbp + rbx*4 + 8]
vmovss dword [rax + rsi + 0x38ec], xmm0
jmp 0x140024dd0
lea rbp, [rcx + 0x260]
jmp 0x140024c0c
vmovss xmm0, dword [rbp + rbx*4 + 4]
vmovss dword [rax + rsi + 0x38e8], xmm0
movsxd rcx, dword [rax + 0x4a88]
lea ebp, [rcx - 1]
mov dword [rax + 0x4a88], ebp
cmp edx, 2
jl 0x140024ee1
mov rbp, qword [rax + 0x4a90]
add rcx, 0xfffffffffffffffe
lea rbx, [rcx + rcx*2]
movsxd rcx, dword [rbp + rbx*4]
lea rsi, [rcx + rcx*2]
cmp dword [r8 + rsi*4], 8
jne 0x140024e5e
mov esi, dword [r8 + rsi*4 + 8]
mov edi, 0x4fd379b
bt rdi, rcx
jb 0x140024e4f
mov edi, 0x1b02c864
bt rdi, rcx
jae 0x140024e5e
vmovss xmm0, dword [rbp + rbx*4 + 4]
vmovss dword [rax + rsi + 0x38e8], xmm0
vmovss xmm0, dword [rbp + rbx*4 + 8]
vmovss dword [rax + rsi + 0x38ec], xmm0
jmp 0x140024e5e
add rcx, 0x260
jmp 0x140024c6f
vmovss xmm0, dword [rbp + rbx*4 + 4]
vmovss dword [rax + rsi + 0x38e8], xmm0
movsxd rcx, dword [rax + 0x4a88]
lea ebp, [rcx - 1]
mov dword [rax + 0x4a88], ebp
cmp edx, 3
jl 0x140024ee1
mov rdx, qword [rax + 0x4a90]
add rcx, 0xfffffffffffffffe
lea rbp, [rcx + rcx*2]
movsxd rbx, dword [rdx + rbp*4]
lea rcx, [rbx + rbx*2]
cmp dword [r8 + rcx*4], 8
jne 0x140024edb
mov ecx, dword [r8 + rcx*4 + 8]
mov edi, 0x4fd379b
bt rdi, rbx
jb 0x140024ecc
mov edi, 0x1b02c864
bt rdi, rbx
jae 0x140024edb
vmovss xmm0, dword [rdx + rbp*4 + 4]
vmovss dword [rax + rcx + 0x38e8], xmm0
vmovss xmm0, dword [rdx + rbp*4 + 8]
vmovss dword [rax + rcx + 0x38ec], xmm0
jmp 0x140024edb
vmovss xmm0, dword [rdx + rbp*4 + 4]
vmovss dword [rax + rcx + 0x38e8], xmm0
dec dword [rax + 0x4a88]
mov rax, qword [0x1400c1650]
mov ecx, dword [rax + 0x4a78]
test ecx, ecx
jle 0x140024f1c
mov rdx, qword [rax + 0x4a80]
dec ecx
lea rcx, [rcx + rcx*4]
movsxd rbp, dword [rdx + rcx*4]
shl rbp, 4
vmovups xmm0, xmmword [rdx + rcx*4 + 4]
vmovups xmmword [rax + rbp + 0x39cc], xmm0
dec dword [rax + 0x4a78]
mov r14, qword [r12 + 0x4000]
mov dword [r14 + 0x88], r15d
cmp word [r14 + 0xcc], 1
jne 0x140024f46
mov rax, qword [r14 + 0x28]
mov rcx, qword [rsp + 0x38]
mov qword [rcx + 0x110], rax
mov ebp, r15d
not ebp
mov dl, 0x23
lea rcx, [0x140074be6]
lea rdi, [0x140069980]
mov ebx, ebp
jmp 0x140024f77
movzx edx, dl
movzx esi, bl
shr ebx, 8
xor esi, edx
xor ebx, dword [rdi + rsi*4]
inc rcx
mov edx, eax
test al, al
je 0x140024f8e
movzx eax, byte [rcx - 1]
cmp dl, 0x23
jne 0x140024f60
cmp al, 0x23
jne 0x140024f60
cmp byte [rcx], 0x23
cmove ebx, ebp
mov al, 0x23
jmp 0x140024f60
not ebx
cmp dword [r12 + 0x4064], ebx
jne 0x140024fa3
xor ecx, ecx
xor edx, edx
call fcn.140016bb0
cmp dword [r12 + 0x4b38], r15d
jne 0x140024ff9
and r13d, 0x800000
jne 0x140024ff9
cmp word [r14 + 0x16c], 0
jne 0x140024fcb
cmp byte [r14 + 0x172], 0
je 0x140024ff9
mov rcx, r14
xor edx, edx
call fcn.140017710
mov rcx, r14
xor edx, edx
call fcn.140025160
mov ecx, ebx
mov rdx, r14
call fcn.140016bb0
mov eax, dword [r12 + 0x4b64]
mov dword [r12 + 0x4090], eax
mov rcx, qword [rsp + 0x58]
xor rcx, rsp
call fcn.140067310
movzx eax, byte [rsp + 0x37]
vmovaps xmm6, xmmword [rsp + 0x60]
add rsp, 0x78
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret