Function at 0x14005ba10
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
vmovaps xmmword [rsp + 0x50], xmm6
mov r14, r8
mov esi, edx
mov eax, dword [rsp + 0xd0]
mov rdx, qword [0x140114500]
xor rdx, rsp
mov qword [rsp + 0x48], rdx
mov r15, qword [0x1401146d0]
mov r12, qword [r15 + 0x4000]
mov edx, eax
shr edx, 0x1d
and edx, 2
or edx, r9d
mov r8d, edx
and r8d, 0xfffffffb
test r9b, 0x10
cmove r8d, edx
mov ebp, r8d
and ebp, 0xfffffff7
test r8b, 0x20
cmove ebp, r8d
mov edx, dword [r12 + 0x14]
and edx, 4
xor r8d, r8d
test bpl, 0x70
setne r8b
shl r8d, 6
or r8d, edx
test bpl, 0xc
mov edx, 0x1000103
mov edi, 0x1000001
cmove edi, edx
mov rbx, rcx
or edi, eax
or edi, r8d
test bpl, bpl
js 0x14005bab7
mov rax, r15
jmp 0x14005bbcd
mov dword [rsp + 0x30], 3
vmovups xmm0, xmmword [r15 + 0x39fc]
vmovups xmmword [rsp + 0x34], xmm0
lea rcx, [r15 + 0x4a78]
lea rdx, [rsp + 0x30]
call fcn.140046190
cmp dword [r15 + 0x4a74], 3
je 0x14005bafd
lea rax, [r15 + 0x39fc]
vmovups xmm0, xmmword [r15 + 0x3a3c]
vmovups xmmword [rax], xmm0
vmovss xmm6, dword [r15 + 0x392c]
mov r13, qword [0x1401146d0]
lea rcx, [r13 + 0x4a88]
vmovss xmm0, dword [r13 + 0x3914]
mov dword [rsp + 0x30], 7
vmovss dword [rsp + 0x34], xmm0
lea rdx, [rsp + 0x30]
call fcn.1400464e0
vmovss dword [r13 + 0x3914], xmm6
vmovss xmm6, dword [r15 + 0x3930]
mov r13, qword [0x1401146d0]
lea rcx, [r13 + 0x4a88]
vmovss xmm0, dword [r13 + 0x3918]
mov dword [rsp + 0x30], 8
vmovss dword [rsp + 0x34], xmm0
lea rdx, [rsp + 0x30]
call fcn.1400464e0
vmovss dword [r13 + 0x3918], xmm6
mov r13, qword [0x1401146d0]
lea rcx, [r13 + 0x4a88]
mov rax, qword [r13 + 0x38f0]
mov dword [rsp + 0x30], 2
mov dword [rsp + 0x34], eax
shr rax, 0x20
mov dword [rsp + 0x38], eax
lea rdx, [rsp + 0x30]
call fcn.1400464e0
mov rax, qword [r15 + 0x3924]
mov qword [r13 + 0x38f0], rax
or ebp, 3
or edi, 4
mov rax, qword [0x1401146d0]
or byte [r15 + 0x4a01], 1
mov dword [r15 + 0x4a38], ebp
mov rcx, qword [rax + 0x4000]
mov rdx, qword [rcx + 0x1b8]
test rdx, rdx
jne 0x14005bbfd
cmp qword [rax + 0x4e18], 0
je 0x14005be1d
lea r8, [rcx + 0x230]
vmovd xmm0, ebp
vpbroadcastd xmm0, xmm0
vpand xmm1, xmm0, xmmword [0x1400a6a40]
vmovsd xmm2, qword [r8]
vmovsd xmm0, qword [rcx + 0x110]
vsubps xmm2, xmm2, xmm0
vpxor xmm4, xmm4, xmm4
vpcmpeqd xmm1, xmm1, xmm4
vpand xmm2, xmm1, xmm2
vmovsd xmm3, qword [r14]
vcmpltps xmm1, xmm3, xmm4
vshufps xmm5, xmm1, xmm1, 0x50
vtestpd xmm5, xmm5
vxorps xmm5, xmm5, xmm5
je 0x14005bc6a
test rdx, rdx
jne 0x14005bc5f
cmp qword [rax + 0x4e18], 0
je 0x14005bea7
add rcx, 0x230
vmovsd xmm5, qword [rcx]
vcmpneqps xmm4, xmm3, xmm4
or byte [rax + 0x4a00], 2
vsubps xmm0, xmm3, xmm0
vaddps xmm0, xmm0, xmm5
vblendvps xmm2, xmm2, xmm3, xmm4
vbroadcastss xmm3, dword [0x1400a4dd8]
vmaxps xmm0, xmm0, xmm3
vblendvps xmm0, xmm2, xmm0, xmm1
vmovlps qword [rax + 0x4a20], xmm0
mov dword [rax + 0x4a08], 1
mov r9, qword [r12 + 8]
test rbx, rbx
je 0x14005bcc5
mov dword [rsp + 0x28], esi
mov qword [rsp + 0x20], rbx
lea r8, str._s__s__08X
jmp 0x14005bcd0
mov dword [rsp + 0x20], esi
lea r8, str._s__08X
lea rcx, [rsp + 0x30]
xor edx, edx
call fcn.140044670
vmovss xmm6, dword [r15 + 0x3918]
test bpl, 1
jne 0x14005bcf6
mov dword [r15 + 0x3918], 0
mov rcx, qword [rsp + 0x30]
xor edx, edx
mov r8d, edi
call fcn.1400553b0
mov ebx, eax
vmovss dword [r15 + 0x3918], xmm6
test bpl, bpl
jns 0x14005bf05
mov rax, qword [0x1401146d0]
movsxd rcx, dword [rax + 0x4a88]
test rcx, rcx
jle 0x14005bed0
cmp ecx, 3
mov edx, 3
cmovl edx, ecx
mov r8, qword [rax + 0x4a90]
dec rcx
lea r9, [rcx + rcx*2]
movsxd r11, dword [r8 + r9*4]
lea r10, [r11 + r11*2]
lea rcx, [0x1400a5c00]
mov r10d, dword [rcx + r10*4 + 8]
mov r14d, 0x4fd379b
bt r14, r11
jb 0x14005bd99
mov r14d, 0x1b02c864
bt r14, r11
jae 0x14005bdaa
vmovss xmm0, dword [r8 + r9*4 + 4]
vmovss dword [rax + r10 + 0x38e8], xmm0
vmovss xmm0, dword [r8 + r9*4 + 8]
vmovss dword [rax + r10 + 0x38ec], xmm0
jmp 0x14005bdaa
vmovss xmm0, dword [r8 + r9*4 + 4]
vmovss dword [rax + r10 + 0x38e8], xmm0
movsxd r9, dword [rax + 0x4a88]
lea r8d, [r9 - 1]
mov dword [rax + 0x4a88], r8d
cmp edx, 2
jl 0x14005bec9
mov r8, qword [rax + 0x4a90]
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 r14d, 0x4fd379b
bt r14, r11
jb 0x14005be29
mov r14d, 0x1b02c864
bt r14, r11
jae 0x14005be3a
vmovss xmm0, dword [r8 + r9*4 + 4]
vmovss dword [rax + r10 + 0x38e8], xmm0
vmovss xmm0, dword [r8 + r9*4 + 8]
vmovss dword [rax + r10 + 0x38ec], xmm0
jmp 0x14005be3a
lea r8, [rcx + 0x260]
jmp 0x14005bc04
vmovss xmm0, dword [r8 + r9*4 + 4]
vmovss dword [rax + r10 + 0x38e8], xmm0
movsxd r8, dword [rax + 0x4a88]
lea r9d, [r8 - 1]
mov dword [rax + 0x4a88], r9d
cmp edx, 3
jl 0x14005bec9
mov rdx, qword [rax + 0x4a90]
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, 0x4fd379b
bt r10, r9
jb 0x14005beb3
mov r10d, 0x1b02c864
bt r10, r9
jae 0x14005bec3
vmovss xmm0, dword [rdx + r8*4 + 4]
vmovss dword [rax + rcx + 0x38e8], xmm0
vmovss xmm0, dword [rdx + r8*4 + 8]
vmovss dword [rax + rcx + 0x38ec], xmm0
jmp 0x14005bec3
add rcx, 0x260
jmp 0x14005bc66
vmovss xmm0, dword [rdx + r8*4 + 4]
vmovss dword [rax + rcx + 0x38e8], xmm0
dec dword [rax + 0x4a88]
mov rax, qword [0x1401146d0]
mov ecx, dword [rax + 0x4a78]
test ecx, ecx
jle 0x14005bf05
mov rdx, qword [rax + 0x4a80]
dec ecx
lea rcx, [rcx + rcx*4]
movsxd r8, dword [rdx + rcx*4]
shl r8, 4
vmovups xmm0, xmmword [rdx + rcx*4 + 4]
vmovups xmmword [rax + r8 + 0x39cc], xmm0
dec dword [rax + 0x4a78]
mov r14, qword [r15 + 0x4000]
mov dword [r14 + 0x88], esi
cmp word [r14 + 0xcc], 1
jne 0x14005bf2a
mov rax, qword [r14 + 0x28]
mov qword [r12 + 0x110], rax
mov ebp, esi
not ebp
shr ebp, 8
movzx edx, sil
xor edx, 0xdc
lea rax, [0x1400a5760]
xor ebp, dword [rax + rdx*4]
movzx edx, bpl
shr ebp, 8
xor edx, 0x23
xor ebp, dword [rax + rdx*4]
movzx edx, bpl
shr ebp, 8
xor edx, 0x43
xor ebp, dword [rax + rdx*4]
movzx edx, bpl
shr ebp, 8
xor edx, 0x68
xor ebp, dword [rax + rdx*4]
movzx edx, bpl
shr ebp, 8
xor edx, 0x69
xor ebp, dword [rax + rdx*4]
movzx edx, bpl
shr ebp, 8
xor edx, 0x6c
xor ebp, dword [rax + rdx*4]
movzx edx, bpl
shr ebp, 8
xor edx, 0x64
xor ebp, dword [rax + rdx*4]
not ebp
cmp dword [r15 + 0x4064], ebp
jne 0x14005bfa7
xor ecx, ecx
xor edx, edx
call fcn.14004d9f0
cmp dword [r15 + 0x4b38], esi
jne 0x14005bff9
and edi, 0x800000
jne 0x14005bff9
cmp word [r14 + 0x16c], 0
jne 0x14005bfcd
cmp byte [r14 + 0x172], 0
je 0x14005bff9
mov rcx, r14
xor edx, edx
call fcn.14004e550
mov rcx, r14
xor edx, edx
call fcn.14005c150
mov ecx, ebp
mov rdx, r14
call fcn.14004d9f0
mov eax, dword [r15 + 0x4b64]
mov dword [r15 + 0x4090], eax
mov rcx, qword [rsp + 0x48]
xor rcx, rsp
call fcn.1400a1e40
mov eax, ebx
vmovaps xmm6, xmmword [rsp + 0x50]
add rsp, 0x68
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret