Function at 0x14001ded0
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 [0x140071c00]
xor rdx, rsp
mov qword [rsp + 0x48], rdx
mov r15, qword [0x140071db0]
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 0x14001df77
mov rax, r15
jmp 0x14001e08d
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.140008360
cmp dword [r15 + 0x4a74], 3
je 0x14001dfbd
lea rax, [r15 + 0x39fc]
vmovups xmm0, xmmword [r15 + 0x3a3c]
vmovups xmmword [rax], xmm0
vmovss xmm6, dword [r15 + 0x392c]
mov r13, qword [0x140071db0]
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.1400086b0
vmovss dword [r13 + 0x3914], xmm6
vmovss xmm6, dword [r15 + 0x3930]
mov r13, qword [0x140071db0]
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.1400086b0
vmovss dword [r13 + 0x3918], xmm6
mov r13, qword [0x140071db0]
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.1400086b0
mov rax, qword [r15 + 0x3924]
mov qword [r13 + 0x38f0], rax
or ebp, 3
or edi, 4
mov rax, qword [0x140071db0]
or byte [r15 + 0x4a01], 1
mov dword [r15 + 0x4a38], ebp
mov rcx, qword [rax + 0x4000]
mov rdx, qword [rcx + 0x1b8]
test rdx, rdx
jne 0x14001e0bd
cmp qword [rax + 0x4e18], 0
je 0x14001e2dd
lea r8, [rcx + 0x230]
vmovd xmm0, ebp
vpbroadcastd xmm0, xmm0
vpand xmm1, xmm0, xmmword [0x14005a870]
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 0x14001e12a
test rdx, rdx
jne 0x14001e11f
cmp qword [rax + 0x4e18], 0
je 0x14001e367
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 [0x14005a6bc]
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 0x14001e185
mov dword [rsp + 0x28], esi
mov qword [rsp + 0x20], rbx
lea r8, str._s__s__08X
jmp 0x14001e190
mov dword [rsp + 0x20], esi
lea r8, str._s__08X
lea rcx, [rsp + 0x30]
xor edx, edx
call fcn.140006a40
vmovss xmm6, dword [r15 + 0x3918]
test bpl, 1
jne 0x14001e1b6
mov dword [r15 + 0x3918], 0
mov rcx, qword [rsp + 0x30]
xor edx, edx
mov r8d, edi
call fcn.140017b50
mov ebx, eax
vmovss dword [r15 + 0x3918], xmm6
test bpl, bpl
jns 0x14001e3c5
mov rax, qword [0x140071db0]
movsxd rcx, dword [rax + 0x4a88]
test rcx, rcx
jle 0x14001e390
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, [0x140059a10]
mov r10d, dword [rcx + r10*4 + 8]
mov r14d, 0x4fd379b
bt r14, r11
jb 0x14001e259
mov r14d, 0x1b02c864
bt r14, r11
jae 0x14001e26a
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 0x14001e26a
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 0x14001e389
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 0x14001e2e9
mov r14d, 0x1b02c864
bt r14, r11
jae 0x14001e2fa
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 0x14001e2fa
lea r8, [rcx + 0x260]
jmp 0x14001e0c4
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 0x14001e389
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 0x14001e373
mov r10d, 0x1b02c864
bt r10, r9
jae 0x14001e383
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 0x14001e383
add rcx, 0x260
jmp 0x14001e126
vmovss xmm0, dword [rdx + r8*4 + 4]
vmovss dword [rax + rcx + 0x38e8], xmm0
dec dword [rax + 0x4a88]
mov rax, qword [0x140071db0]
mov ecx, dword [rax + 0x4a78]
test ecx, ecx
jle 0x14001e3c5
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 0x14001e3ea
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, [0x140059570]
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 0x14001e467
xor ecx, ecx
xor edx, edx
call fcn.140010210
cmp dword [r15 + 0x4b38], esi
jne 0x14001e4b9
and edi, 0x800000
jne 0x14001e4b9
cmp word [r14 + 0x16c], 0
jne 0x14001e48d
cmp byte [r14 + 0x172], 0
je 0x14001e4b9
mov rcx, r14
xor edx, edx
call fcn.140010d20
mov rcx, r14
xor edx, edx
call fcn.14001e5c0
mov ecx, ebp
mov rdx, r14
call fcn.140010210
mov eax, dword [r15 + 0x4b64]
mov dword [r15 + 0x4090], eax
mov rcx, qword [rsp + 0x48]
xor rcx, rsp
call fcn.140056c60
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