Function at 0x14004e4e0
Capabilities:
Hash data with crc32

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0xa8
movaps xmmword [rsp + 0x90], xmm9
movaps xmmword [rsp + 0x80], xmm8
movaps xmmword [rsp + 0x70], xmm7
movaps xmmword [rsp + 0x60], xmm6
mov ebx, dword [rsp + 0x110]
mov rbp, qword [0x1401129a8]
xor rbp, rsp
mov qword [rsp + 0x58], rbp
mov r13, qword [0x140114180]
mov rdi, qword [r13 + 0x4180]
mov eax, ebx
shr eax, 0x1d
and eax, 2
or eax, r9d
mov ebp, eax
or ebp, 0x100
test ebx, ebx
cmovns ebp, eax
mov eax, ebp
and eax, 0xfffffffb
test bpl, 0x10
cmove eax, ebp
mov r12d, eax
and r12d, 0xfffffff7
test al, 0x20
cmove r12d, eax
mov qword [rsp + 0x38], rdi
mov eax, dword [rdi + 0x14]
and eax, 4
xor ebp, ebp
test r12b, 0x70
setne bpl
shl ebp, 6
or eax, ebx
test r12b, 0xc
mov ebx, 0x1080103
mov edi, 0x1080001
cmove edi, ebx
mov rsi, r8
mov r14d, edx
mov r15, rcx
or edi, eax
or edi, ebp
test r12b, r12b
js 0x14004e5a9
mov rax, r13
jmp 0x14004e6b8
mov dword [rsp + 0x40], 3
movups xmm0, xmmword [r13 + 0x3b18]
movups xmmword [rsp + 0x44], xmm0
lea rcx, [r13 + 0x4c38]
lea rdx, [rsp + 0x40]
call fcn.140032360
cmp dword [r13 + 0x4c34], 3
je 0x14004e5eb
lea rax, [r13 + 0x3b18]
movups xmm0, xmmword [r13 + 0x3b58]
movups xmmword [rax], xmm0
movss xmm6, dword [r13 + 0x3a3c]
mov rbx, qword [0x140114180]
lea rcx, [rbx + 0x4c48]
movss xmm0, dword [rbx + 0x3a24]
mov dword [rsp + 0x40], 7
movss dword [rsp + 0x44], xmm0
lea rdx, [rsp + 0x40]
call fcn.1400326c0
movss dword [rbx + 0x3a24], xmm6
movss xmm6, dword [r13 + 0x3a40]
mov rbx, qword [0x140114180]
lea rcx, [rbx + 0x4c48]
movss xmm0, dword [rbx + 0x3a28]
mov dword [rsp + 0x40], 8
movss dword [rsp + 0x44], xmm0
lea rdx, [rsp + 0x40]
call fcn.1400326c0
movss dword [rbx + 0x3a28], xmm6
mov rbx, qword [0x140114180]
lea rcx, [rbx + 0x4c48]
mov rax, qword [rbx + 0x3a00]
mov dword [rsp + 0x40], 2
mov dword [rsp + 0x44], eax
shr rax, 0x20
mov dword [rsp + 0x48], eax
lea rdx, [rsp + 0x40]
call fcn.1400326c0
mov rax, qword [r13 + 0x3a34]
mov qword [rbx + 0x3a00], rax
or r12d, 3
or edi, 4
mov rax, qword [0x140114180]
mov rbx, qword [rsp + 0x38]
or byte [r13 + 0x4b91], 1
mov dword [r13 + 0x4bcc], r12d
mov rcx, qword [rax + 0x4180]
mov rdx, qword [rcx + 0x1f0]
test rdx, rdx
jne 0x14004e6ed
cmp qword [rax + 0x5030], 0
je 0x14004e8f6
lea rbp, [rcx + 0x268]
movss xmm9, dword [rcx + 0x14c]
xorps xmm4, xmm4
test r12b, 0x20
je 0x14004e70c
xorps xmm8, xmm8
jmp 0x14004e717
movss xmm8, dword [rbp + 4]
subss xmm8, xmm9
movss xmm5, dword [rcx + 0x148]
test r12b, 0x10
je 0x14004e72a
xorps xmm3, xmm3
jmp 0x14004e733
movss xmm3, dword [rbp]
subss xmm3, xmm5
movss xmm1, dword [rsi]
movss xmm2, dword [rsi + 4]
ucomiss xmm4, xmm1
ja 0x14004e74c
xorps xmm0, xmm0
ucomiss xmm0, xmm2
xorps xmm0, xmm0
jbe 0x14004e76f
test rdx, rdx
jne 0x14004e75f
cmp qword [rax + 0x5030], 0
je 0x14004e97d
add rcx, 0x268
movss xmm0, dword [rcx]
movss xmm4, dword [rcx + 4]
xorps xmm6, xmm6
ucomiss xmm1, xmm6
movaps xmm7, xmm1
jne 0x14004e782
movaps xmm7, xmm1
jp 0x14004e782
movaps xmm7, xmm3
subss xmm0, xmm5
addss xmm0, xmm1
movss xmm5, dword [0x1400daa3c]
movaps xmm3, xmm5
maxss xmm3, xmm0
cmpltss xmm1, xmm6
andps xmm3, xmm1
andnps xmm1, xmm7
orps xmm1, xmm3
jne 0x14004e7ae
jp 0x14004e7ae
movaps xmm1, xmm7
ucomiss xmm2, xmm6
movaps xmm0, xmm2
jne 0x14004e7bf
movaps xmm0, xmm2
jp 0x14004e7bf
movaps xmm0, xmm8
subss xmm4, xmm9
addss xmm4, xmm2
maxss xmm5, xmm4
cmpltss xmm2, xmm6
andps xmm5, xmm2
andnps xmm2, xmm0
orps xmm2, xmm5
jne 0x14004e7e1
jp 0x14004e7e1
movaps xmm2, xmm0
or byte [rax + 0x4b90], 2
movss dword [rax + 0x4bb4], xmm1
movss dword [rax + 0x4bb8], xmm2
mov dword [rax + 0x4b98], 1
mov r9, qword [rbx + 8]
test r15, r15
je 0x14004e81e
mov dword [rsp + 0x28], r14d
mov qword [rsp + 0x20], r15
lea r8, str._s__s__08X
jmp 0x14004e82a
mov dword [rsp + 0x20], r14d
lea r8, str._s__08X
lea rcx, [rsp + 0x40]
xor edx, edx
call fcn.140030a00
movss xmm6, dword [r13 + 0x3a28]
test r12b, 1
jne 0x14004e850
mov dword [r13 + 0x3a28], 0
mov rcx, qword [rsp + 0x40]
xor edx, edx
mov r8d, edi
call fcn.1400452e0
mov byte [rsp + 0x37], al
movss dword [r13 + 0x3a28], xmm6
test r12b, r12b
jns 0x14004ea6c
mov rax, qword [0x140114180]
movsxd rdx, dword [rax + 0x4c48]
test rdx, rdx
jle 0x14004ea38
lea r10, [rax + 0x39f8]
mov r15d, 0xdc02c864
cmp edx, 3
mov edi, 3
cmovl edi, edx
mov rcx, qword [rax + 0x4c50]
add rdx, 0xffffffffffffffff
lea rsi, [rdx + rdx*2]
movsxd r8, dword [rcx + rsi*4]
lea rbp, [r8 + r8*2]
lea r9, [0x1400d9c80]
mov ebp, dword [r9 + rbp*4 + 8]
add rbp, r10
lea r11, [r15 + 0x47fa6f37]
bt r11, r8
jb 0x14004e902
bt r15, r8
jae 0x14004e91c
movss xmm0, dword [rcx + rsi*4 + 4]
movss dword [rbp], xmm0
lea rcx, [rcx + rsi*4]
add rcx, 8
add rbp, 4
jmp 0x14004e90a
lea rbp, [rcx + 0x298]
jmp 0x14004e6f4
lea rcx, [rcx + rsi*4]
add rcx, 4
movss xmm0, dword [rcx]
movss dword [rbp], xmm0
mov edx, dword [rax + 0x4c48]
add edx, 0xffffffff
mov dword [rax + 0x4c48], edx
cmp edi, 1
jle 0x14004ea31
mov rcx, qword [rax + 0x4c50]
add edx, 0xffffffff
movsxd rbp, edx
lea rsi, [rbp*2]
add rsi, rbp
movsxd rbx, dword [rcx + rsi*4]
lea rbp, [rbx + rbx*2]
mov ebp, dword [r9 + rbp*4 + 8]
add rbp, r10
bt r11, rbx
jb 0x14004e989
bt r15, rbx
mov rbx, qword [rsp + 0x38]
jae 0x14004e9a8
movss xmm0, dword [rcx + rsi*4 + 4]
movss dword [rbp], xmm0
lea rcx, [rcx + rsi*4]
add rcx, 8
add rbp, 4
jmp 0x14004e996
add rcx, 0x298
jmp 0x14004e766
lea rcx, [rcx + rsi*4]
add rcx, 4
mov rbx, qword [rsp + 0x38]
movss xmm0, dword [rcx]
movss dword [rbp], xmm0
mov edx, dword [rax + 0x4c48]
add edx, 0xffffffff
mov dword [rax + 0x4c48], edx
cmp edi, 3
jl 0x14004ea31
mov rcx, qword [rax + 0x4c50]
add edx, 0xffffffff
movsxd rbp, edx
lea rsi, [rbp*2]
add rsi, rbp
movsxd rbp, dword [rcx + rsi*4]
lea rbx, [rbp*2]
add rbx, rbp
mov ebx, dword [r9 + rbx*4 + 8]
add r10, rbx
bt r11, rbp
jb 0x14004ea0c
bt r15, rbp
mov rbx, qword [rsp + 0x38]
jae 0x14004ea2b
movss xmm0, dword [rcx + rsi*4 + 4]
movss dword [r10], xmm0
lea rcx, [rcx + rsi*4]
add rcx, 8
add r10, 4
jmp 0x14004ea19
lea rcx, [rcx + rsi*4]
add rcx, 4
mov rbx, qword [rsp + 0x38]
movss xmm0, dword [rcx]
movss dword [r10], xmm0
mov edx, dword [rax + 0x4c48]
add edx, 0xffffffff
mov dword [rax + 0x4c48], edx
mov rax, qword [0x140114180]
mov ecx, dword [rax + 0x4c38]
test ecx, ecx
jle 0x14004ea6c
mov rdx, qword [rax + 0x4c40]
add ecx, 0xffffffff
lea rcx, [rcx + rcx*4]
movsxd rbp, dword [rdx + rcx*4]
shl rbp, 4
movups xmm0, xmmword [rdx + rcx*4 + 4]
movups xmmword [rax + rbp + 0x3ae8], xmm0
add dword [rax + 0x4c38], 0xffffffff
mov r15, qword [r13 + 0x4180]
mov dword [r15 + 0xc4], r14d
cmp word [r15 + 0x10e], 1
jne 0x14004ea90
mov rax, qword [r15 + 0x58]
mov qword [rbx + 0x148], rax
mov eax, r14d
not eax
mov bl, 0x23
lea rcx, [0x1400f160d]
lea rbp, [0x1400d97e0]
mov edi, eax
jmp 0x14004eaca
movzx ebx, bl
movzx esi, dil
shr edi, 8
xor esi, ebx
xor edi, dword [rbp + rsi*4]
add rcx, 1
mov ebx, edx
test dl, dl
je 0x14004eae2
movzx edx, byte [rcx - 1]
cmp bl, 0x23
jne 0x14004eab0
cmp dl, 0x23
jne 0x14004eab0
cmp byte [rcx], 0x23
cmove edi, eax
mov dl, 0x23
jmp 0x14004eab0
not edi
cmp dword [r13 + 0x41ec], edi
jne 0x14004eaf6
xor ecx, ecx
xor edx, edx
call fcn.14003b310
cmp dword [r13 + 0x4d5c], r14d
jne 0x14004eb49
and r12d, 0x100
jne 0x14004eb49
cmp word [r15 + 0x1a4], 0
jne 0x14004eb1d
cmp byte [r15 + 0x1aa], 0
je 0x14004eb49
mov rcx, r15
xor edx, edx
call fcn.14003c490
mov rcx, r15
xor edx, edx
call fcn.14004f9c0
mov ecx, edi
mov rdx, r15
call fcn.14003b310
mov eax, dword [r13 + 0x4d90]
mov dword [r13 + 0x4218], eax
mov rcx, qword [rsp + 0x58]
xor rcx, rsp
call fcn.1400a0150
mov al, byte [rsp + 0x37]
movaps xmm6, xmmword [rsp + 0x60]
movaps xmm7, xmmword [rsp + 0x70]
movaps xmm8, xmmword [rsp + 0x80]
movaps xmm9, xmmword [rsp + 0x90]
add rsp, 0xa8
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret