Function at 0x140037cb0
Capabilities:
Hash data with crc32

Disassembly:
mov rax, rsp
push rbp
push rbx
push rsi
push rdi
push r12
lea rbp, [rax - 0x4f]
sub rsp, 0xb0
mov rdi, qword [0x140116768]
mov rbx, rcx
mov qword [rax + 0x10], r13
mov qword [rax - 0x30], r14
mov qword [rax - 0x38], r15
mov r15d, edx
mov r14, qword [rdi + 0x4008]
vmovaps xmmword [rax - 0x48], xmm6
vmovaps xmmword [rax - 0x58], xmm7
vmovaps xmmword [rax - 0x68], xmm8
mov esi, dword [r14 + 0x14]
and esi, 4
movzx r13d, r9b
or esi, 0x1000103
cmp qword [r14 + 0x1b8], 0
jne 0x140037d1d
cmp qword [rdi + 0x4e20], 0
mov eax, 0x260
je 0x140037d22
mov eax, 0x230
vmovss xmm2, dword [r8 + 4]
vmovss xmm0, dword [r14 + rax]
vmovss xmm1, dword [r14 + rax + 4]
vsubss xmm5, xmm0, dword [r14 + 0x110]
vsubss xmm6, xmm1, dword [r14 + 0x114]
vxorps xmm7, xmm7, xmm7
vcomiss xmm2, xmm7
vcvttss2si eax, xmm2
jae 0x140037d65
vxorps xmm0, xmm0, xmm0
vcvtsi2ss xmm0, xmm0, eax
vucomiss xmm0, xmm2
je 0x140037d65
dec eax
vmovss xmm1, dword [r8]
vcomiss xmm1, xmm7
vxorps xmm3, xmm3, xmm3
vcvtsi2ss xmm3, xmm3, eax
vcvttss2si eax, xmm1
jae 0x140037d8c
vxorps xmm0, xmm0, xmm0
vcvtsi2ss xmm0, xmm0, eax
vucomiss xmm0, xmm1
je 0x140037d8c
dec eax
vmovss xmm1, dword [0x140086ec0]
vxorps xmm4, xmm4, xmm4
vcvtsi2ss xmm4, xmm4, eax
vcomiss xmm4, xmm7
ja 0x140037daa
vaddss xmm0, xmm4, xmm5
vmaxss xmm4, xmm0, xmm1
vcomiss xmm3, xmm7
ja 0x140037db8
vaddss xmm0, xmm3, xmm6
vmaxss xmm3, xmm0, xmm1
mov edx, dword [rdi + 0x4a08]
xor r12d, r12d
vmovss xmm8, dword [0x140086f50]
or edx, 2
mov dword [rdi + 0x4a10], 1
mov dword [rdi + 0x4a08], edx
movzx eax, r13b
vmovd xmm0, r13d
vmovss dword [rdi + 0x4a28], xmm4
vmovd xmm1, r12d
vpcmpeqd xmm2, xmm0, xmm1
vblendvps xmm0, xmm8, xmm7, xmm2
vsubss xmm1, xmm3, xmm0
vmovss dword [rdi + 0x4a2c], xmm1
vmovss xmm2, dword [r14 + 0x110]
neg al
vxorps xmm0, xmm0, xmm0
sbb ecx, ecx
or edx, 1
and ecx, 0x23
vcvtsi2ss xmm0, xmm0, ecx
vaddss xmm1, xmm0, dword [r14 + 0x114]
mov dword [rdi + 0x4a08], edx
lea rcx, [rbp + 0x57]
xor edx, edx
mov qword [rdi + 0x4a20], r12
mov dword [rdi + 0x4a0c], 1
vmovss dword [rdi + 0x4a18], xmm2
vmovss dword [rdi + 0x4a1c], xmm1
mov r9, qword [r14 + 8]
test rbx, rbx
je 0x140037e7a
mov dword [rsp + 0x28], r15d
lea r8, str._s__s__08X
mov qword [rsp + 0x20], rbx
call fcn.1400308f0
jmp 0x140037e8b
lea r8, str._s__08X
mov dword [rsp + 0x20], r15d
call fcn.1400308f0
vmovss xmm6, dword [rdi + 0x3918]
mov rcx, qword [rbp + 0x57]
mov r8d, esi
xor edx, edx
mov dword [rdi + 0x3918], r12d
call fcn.14003af70
mov rsi, qword [rdi + 0x4008]
movzx r12d, al
vmovss dword [rdi + 0x3918], xmm6
mov dword [rsi + 0x88], r15d
test r13b, r13b
je 0x14003818e
vmovups xmm0, xmmword [0x140087210]
vmovss xmm1, dword [rsi + 0x28]
vmovss xmm2, dword [rsi + 0x2c]
vmovups xmmword [rbp - 0x39], xmm0
vaddss xmm0, xmm1, dword [rsi + 0x30]
vmovss dword [rbp + 0x57], xmm0
vaddss xmm0, xmm2, dword [rsi + 0x34]
vmovaps xmmword [rsp + 0x60], xmm9
lea rcx, [rbp - 0x39]
vmovss xmm9, dword [0x14008702c]
vmovss dword [rbp + 0x5b], xmm0
vsubss xmm0, xmm2, dword [0x140086f54]
vsubss xmm1, xmm1, xmm9
vmovss dword [rbp + 0x6b], xmm0
vmovss dword [rbp + 0x67], xmm1
call fcn.140030e90
mov rcx, qword [r14 + 0x2a8]
lea rdx, [rbp + 0x67]
mov r9d, eax
mov dword [rsp + 0x28], 0
lea r8, [rbp + 0x57]
vmovss dword [rsp + 0x20], xmm7
call fcn.140054c60
vmovups xmm0, xmmword [0x1400871f0]
vmovss xmm3, dword [rsi + 0x28]
vmovss xmm4, dword [rsi + 0x2c]
vaddss xmm1, xmm4, dword [rsi + 0x34]
vmovss xmm6, dword [0x140086df4]
vmovups xmmword [rbp - 0x39], xmm0
vaddss xmm0, xmm3, dword [rsi + 0x30]
vsubss xmm0, xmm0, xmm6
vsubss xmm2, xmm1, xmm6
vmovss dword [rbp + 0x57], xmm0
vsubss xmm0, xmm3, dword [0x140087040]
vsubss xmm1, xmm4, xmm8
lea rcx, [rbp - 0x39]
vmovss dword [rbp + 0x67], xmm0
vmovss dword [rbp + 0x5b], xmm2
vmovss dword [rbp + 0x6b], xmm1
call fcn.140030e90
mov rcx, qword [r14 + 0x2a8]
lea rdx, [rbp + 0x67]
mov r9d, eax
mov dword [rsp + 0x28], 0
lea r8, [rbp + 0x57]
vmovss dword [rsp + 0x20], xmm7
call fcn.140054c60
vmovups xmm0, xmmword [0x1400871f0]
vmovss xmm3, dword [rsi + 0x28]
vmovss xmm4, dword [rsi + 0x2c]
vaddss xmm2, xmm4, dword [rsi + 0x34]
vmovups xmmword [rbp - 0x39], xmm0
vaddss xmm0, xmm3, dword [rsi + 0x30]
vsubss xmm1, xmm0, xmm6
vmovss dword [rbp + 0x57], xmm1
vaddss xmm1, xmm3, dword [0x140086e60]
vsubss xmm0, xmm2, xmm6
lea rcx, [rbp - 0x39]
vmovss dword [rbp + 0x67], xmm1
vmovss dword [rbp + 0x5b], xmm0
vmovss dword [rbp + 0x6b], xmm4
call fcn.140030e90
mov rcx, qword [rsi + 0x2a8]
lea rdx, [rbp + 0x67]
mov r9d, eax
mov dword [rsp + 0x28], 0
lea r8, [rbp + 0x57]
vmovss dword [rsp + 0x20], xmm7
call fcn.140054c60
vmovups xmm0, xmmword [0x140087210]
vmovss xmm1, dword [rsi + 0x28]
vmovups xmmword [rbp - 0x39], xmm0
vaddss xmm0, xmm1, dword [rsi + 0x30]
vaddss xmm1, xmm6, dword [rsi + 0x2c]
lea rcx, [rbp - 0x39]
vmovss dword [rbp + 0x5b], xmm1
vmovss dword [rbp + 0x57], xmm0
call fcn.140030e90
mov dword [rsp + 0x28], 0
mov r9d, eax
vmovss dword [rsp + 0x20], xmm7
mov rcx, qword [rsi + 0x2a8]
lea r8, [rbp + 0x57]
lea rdx, [rsi + 0x28]
call fcn.140054c60
vmovups xmm0, xmmword [0x140087280]
mov r13, qword [r14 + 0x2a8]
lea rcx, [rbp - 0x39]
vmovups xmmword [rbp - 0x39], xmm0
call fcn.140030e90
mov rcx, qword [0x140116768]
mov edx, eax
mov dword [rbp + 0x6f], eax
vmovss xmm2, dword [rcx + 0x3d38]
test rbx, rbx
je 0x1400380f2
mov rcx, qword [rcx + 0x3d30]
lea rdx, [rbp + 0x57]
mov qword [rsp + 0x30], 0
mov qword [rsp + 0x28], rbx
vmovss dword [rsp + 0x20], xmm9
call fcn.140059610
vmovss xmm2, dword [rbp + 0x5b]
mov edx, dword [rbp + 0x6f]
vmovaps xmm9, xmmword [rsp + 0x60]
vmovss xmm0, dword [rsi + 0x28]
vaddss xmm0, xmm0, dword [0x140086ef0]
vmovss xmm1, dword [rsi + 0x2c]
vmovss dword [rbp + 0x57], xmm0
vsubss xmm0, xmm1, dword [0x140086f18]
vfnmadd231ss xmm0, xmm2, dword [0x140086da4]
vmovss dword [rbp + 0x5b], xmm0
test edx, 0xff000000
je 0x14003818e
mov rcx, 0xffffffffffffffff
inc rcx
cmp byte [rbx + rcx], 0
jne 0x140038134
add rcx, rbx
cmp rbx, rcx
je 0x14003818e
mov rax, qword [r13 + 0x38]
lea r9, [rbp + 0x57]
vmovups xmm0, xmmword [r13 + 0x88]
mov byte [rsp + 0x48], 0
vmovss dword [rsp + 0x40], xmm7
vmovss xmm2, dword [rax + 0x10]
mov qword [rsp + 0x38], rcx
lea rcx, [rbp - 0x39]
mov qword [rsp + 0x30], rbx
mov qword [rsp + 0x28], rcx
mov rcx, qword [rax + 8]
mov dword [rsp + 0x20], edx
mov rdx, r13
vmovups xmmword [rbp - 0x39], xmm0
call fcn.140059850
cmp word [rsi + 0xcc], 1
vmovaps xmm8, xmmword [rsp + 0x70]
vmovaps xmm7, xmmword [rsp + 0x80]
vmovaps xmm6, xmmword [rsp + 0x90]
mov r13, qword [rsp + 0xe8]
jne 0x1400381c6
vmovsd xmm0, qword [rsi + 0x28]
vmovsd qword [r14 + 0x110], xmm0
mov r14, qword [rsp + 0xa8]
lea rdx, [0x140085ac1]
mov r9d, r15d
lea r10, [0x140081140]
not r9d
mov r8b, 0x23
mov ebx, r9d
cmp r8b, 0x23
jne 0x1400381fb
cmp byte [rdx], r8b
jne 0x1400381fb
cmp byte [rdx + 1], r8b
cmove ebx, r9d
movzx ecx, bl
movzx eax, r8b
movzx r8d, byte [rdx]
xor rcx, rax
shr ebx, 8
inc rdx
xor ebx, dword [r10 + rcx*4]
test r8b, r8b
jne 0x1400381e8
not ebx
cmp dword [rdi + 0x406c], ebx
jne 0x14003822b
xor edx, edx
xor ecx, ecx
call fcn.140034370
cmp dword [rdi + 0x4b40], r15d
mov r15, qword [rsp + 0xa0]
jne 0x140038279
cmp word [rsi + 0x16c], 0
jne 0x14003824f
cmp byte [rsi + 0x172], 0
je 0x140038279
xor edx, edx
mov rcx, rsi
call fcn.14003d810
xor edx, edx
mov rcx, rsi
call fcn.140044460
mov rdx, rsi
mov ecx, ebx
call fcn.140034370
mov eax, dword [rdi + 0x4b6c]
mov dword [rdi + 0x4098], eax
movzx eax, r12b
add rsp, 0xb0
pop r12
pop rdi
pop rsi
pop rbx
pop rbp
ret