Function at 0x140031a40
Capabilities:
Hash data with crc32

Disassembly:
push r14
push rbp
push rdi
push rsi
push rbx
sub rsp, 0x30
movups xmmword [rsp + 0x20], xmm6
mov r14, rcx
lea rcx, [0x1401a829d]
call fcn.1400900d0
mov rax, qword [0x140218048]
cmp byte [rax + 0x4b23], 0
mov rcx, qword [rax + 0x4008]
je 0x140031ab8
cmp byte [rax + 0x4b22], 0
jne 0x140031ab8
test byte [rax + 0x497c], 4
jne 0x140031aa2
mov r8d, dword [rax + 0x4ae0]
mov edx, dword [rax + 0x4978]
cmp r8d, edx
jne 0x140031aa2
test r8d, r8d
jne 0x140031ff8
movups xmm6, xmmword [rsp + 0x20]
add rsp, 0x30
pop rbx
pop rsi
pop rdi
pop rbp
pop r14
ret
mov edx, dword [rax + 0x4980]
test dl, 1
je 0x140031aa2
mov r8d, dword [rax + 0x3d30]
mov r9d, r8d
or r9d, 0x1000
cmp rcx, qword [rax + 0x4010]
je 0x140031af2
mov r10d, r8d
and edx, 0x80
and r10d, 0x200
or edx, r10d
je 0x140031aa2
mov edx, dword [rax + 0x4978]
test r8b, 0x80
je 0x140031e88
mov r10, qword [rax + 0x4ad8]
mov esi, dword [rax + 0x497c]
test r10, r10
je 0x140031b60
mov r11, qword [r10 + 0x388]
test r11, r11
je 0x140031b60
cmp byte [r11 + 0xbf], 0
je 0x140031b60
mov r10, qword [rcx + 0x388]
cmp r11, r10
je 0x140031b60
mov edi, dword [r11 + 0x14]
test edi, 0x8000000
jne 0x140031ee8
and edi, 0x4000000
je 0x140031b60
test r8b, 0x20
je 0x140031ee8
nop dword [rax + rax]
test sil, 4
je 0x140031b73
test r8d, 0x400
je 0x140031aa2
cmp edx, dword [rcx + 0x84]
je 0x140031f30
and esi, 0x200
je 0x140031ba0
test edx, edx
je 0x140031ba0
and r8d, 0x100
je 0x140031fe0
nop dword [rax + rax]
test r9d, 0x10000
jne 0x140031fb0
pxor xmm0, xmm0
test r9d, 0x8000
jne 0x140031ec0
test r9d, 0x2000
je 0x140031dbc
mov r11d, 0x2000
test edx, edx
jne 0x140031d7d
movss xmm2, dword [rcx + 0x120]
movss xmm6, dword [rax + 0x4984]
movsxd r8, dword [rcx + 0x100]
mov rdx, qword [rcx + 0x108]
subss xmm6, xmm2
movss xmm1, dword [rcx + 0x124]
movss xmm5, dword [rax + 0x4988]
mov ecx, dword [rdx + r8*4 - 4]
movss xmm4, dword [rax + 0x498c]
subss xmm5, xmm1
movss xmm3, dword [rax + 0x4990]
movd r10d, xmm6
not ecx
subss xmm4, xmm2
mov edx, ecx
xor ecx, r10d
subss xmm3, xmm1
mov ebx, r10d
movzx r8d, cl
lea rcx, [0x1401aac20]
shr edx, 8
xor edx, dword [rcx + r8*4]
mov r8d, r10d
shr r10d, 0x18
mov esi, edx
xor dl, bh
shr r8d, 0x10
movzx edx, dl
shr esi, 8
xor esi, dword [rcx + rdx*4]
xor r8d, esi
mov edx, esi
movzx r8d, r8b
shr edx, 8
xor edx, dword [rcx + r8*4]
mov r8d, edx
xor edx, r10d
movd r10d, xmm5
movzx edx, dl
shr r8d, 8
mov ebx, r10d
xor r8d, dword [rcx + rdx*4]
mov edx, r8d
xor r8d, r10d
movzx r8d, r8b
shr edx, 8
xor edx, dword [rcx + r8*4]
mov r8d, r10d
shr r10d, 0x18
mov esi, edx
xor dl, bh
shr r8d, 0x10
movzx edx, dl
shr esi, 8
xor esi, dword [rcx + rdx*4]
xor r8d, esi
mov edx, esi
movzx r8d, r8b
shr edx, 8
xor edx, dword [rcx + r8*4]
mov r8d, edx
xor edx, r10d
movd r10d, xmm4
movzx edx, dl
shr r8d, 8
mov ebx, r10d
xor r8d, dword [rcx + rdx*4]
mov edx, r8d
xor r8d, r10d
movzx r8d, r8b
shr edx, 8
xor edx, dword [rcx + r8*4]
mov r8d, r10d
mov esi, edx
shr esi, 8
xor dl, bh
shr r8d, 0x10
movzx edx, dl
shr r10d, 0x18
xor esi, dword [rcx + rdx*4]
xor r8d, esi
mov edx, esi
movzx r8d, r8b
shr edx, 8
xor edx, dword [rcx + r8*4]
mov r8d, edx
xor edx, r10d
movd r10d, xmm3
movzx edx, dl
shr r8d, 8
mov ebx, r10d
xor r8d, dword [rcx + rdx*4]
mov edx, r8d
xor r8d, r10d
movzx r8d, r8b
shr edx, 8
xor edx, dword [rcx + r8*4]
mov esi, edx
xor dl, bh
movzx edx, dl
shr esi, 8
xor esi, dword [rcx + rdx*4]
mov edx, r10d
shr r10d, 0x18
shr edx, 0x10
mov r8d, esi
xor edx, esi
shr r8d, 8
movzx edx, dl
xor r8d, dword [rcx + rdx*4]
mov edx, r8d
xor r8d, r10d
movzx r8d, r8b
shr edx, 8
xor edx, dword [rcx + r8*4]
not edx
and r9d, 0x20000
je 0x140031d98
cmp dword [rax + 0x4e64], edx
je 0x140031d98
mov dword [rax + 0x4e68], 0
mov dword [rax + 0x4e60], edx
test r11d, r11d
je 0x140031daf
cmp edx, dword [rax + 0x4e70]
jne 0x140031aa2
comiss xmm0, dword [rax + 0x4e68]
ja 0x140031aa2
xor edx, edx
xor ecx, ecx
call fcn.1400318e0
test al, al
je 0x140031aa2
mov rax, qword [0x140218048]
movss xmm0, dword [0x1401ab260]
movss xmm6, dword [rax + 0x3d40]
mov rsi, qword [rax + 0x4008]
mulss xmm6, xmm0
mov byte [rsi + 0xc0], 1
movsxd rax, dword [rsi + 0x1e8]
cmp eax, dword [rsi + 0x1ec]
je 0x140031f48
mov rdi, qword [rsi + 0x1f0]
mov edx, dword [rsi + 0x1d0]
mov rcx, r14
mov dword [rdi + rax*4], edx
xor edx, edx
add dword [rsi + 0x1e8], 1
movss dword [rsi + 0x1d0], xmm6
call fcn.14008fee0
mov rax, qword [0x140218048]
mov rax, qword [rax + 0x4008]
movsxd r8, dword [rax + 0x1e8]
mov rcx, qword [rax + 0x1f0]
mov byte [rax + 0xc0], 1
movss xmm0, dword [rcx + r8*4 - 4]
mov rdx, r8
sub edx, 1
mov dword [rax + 0x1e8], edx
movss dword [rax + 0x1d0], xmm0
movups xmm6, xmmword [rsp + 0x20]
add rsp, 0x30
pop rbx
pop rsi
pop rdi
pop rbp
pop r14
jmp fcn.14001cdb0
mov r10d, dword [rax + 0x406c]
test r10d, r10d
je 0x140031b02
cmp edx, r10d
je 0x140031b02
cmp byte [rax + 0x4079], 0
jne 0x140031b02
cmp r10d, dword [rcx + 0x84]
jne 0x140031aa2
jmp 0x140031b02
movss xmm0, dword [rax + 0x3d28]
mov r11d, r9d
pxor xmm1, xmm1
and r11d, 0x2000
comiss xmm0, xmm1
ja 0x140031bd1
jmp 0x140031bbe
cmp r11, qword [r10 + 0x388]
jne 0x140031f09
jmp 0x140031b60
cmp r11, r10
je 0x140031b60
mov r10, qword [r10 + 0x380]
test r10, r10
jne 0x140031f00
test esi, 0x100
jne 0x140031b60
jmp 0x140031aa2
cmp byte [rcx + 0xc0], 0
je 0x140031b7f
jmp 0x140031aa2
lea edx, [rax + 1]
test eax, eax
jne 0x140031fc0
mov eax, 8
cmp edx, eax
cmovge eax, edx
mov ebp, eax
movsxd rcx, ebp
shl rcx, 2
call fcn.140009130
mov rdx, qword [rsi + 0x1f0]
mov rdi, rax
test rdx, rdx
je 0x140031f95
movsxd r8, dword [rsi + 0x1e8]
mov rcx, rax
shl r8, 2
call fcn.1400de8e0
mov rcx, qword [rsi + 0x1f0]
call fcn.140009220
mov qword [rsi + 0x1f0], rdi
movsxd rax, dword [rsi + 0x1e8]
mov dword [rsi + 0x1ec], ebp
jmp 0x140031e10
movss xmm0, dword [rax + 0x3d2c]
jmp 0x140031ec8
mov ecx, eax
shr ecx, 0x1f
add ecx, eax
sar ecx, 1
add ecx, eax
cmp ecx, edx
cmovge edx, ecx
mov ebp, edx
cmp eax, edx
jge 0x140031e09
jmp 0x140031f5b
cmp edx, dword [rax + 0x405c]
jne 0x140031aa2
jmp 0x140031ba0
mov r9d, dword [rax + 0x3d34]
or r9d, 0x1000
jmp 0x140031ba0