Function at 0x140040900
Capabilities:
Hash data with crc32

Disassembly:
mov qword [rsp + 0x18], rbx
mov dword [rsp + 0x20], r9d
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
mov rbp, rsp
sub rsp, 0x80
movaps xmmword [rsp + 0x70], xmm6
movaps xmmword [rsp + 0x60], xmm7
mov r12, rdx
mov rsi, rcx
mov rdi, qword [0x1401d5ec0]
mov r14, qword [rdi + 0x4018]
mov byte [r14 + 0xc0], 1
mov rbx, qword [rdi + 0x4018]
movsxd r8, dword [rbx + 0x100]
mov rax, qword [rbx + 0x108]
mov r8d, dword [rax + r8*4 - 4]
xor edx, edx
call fcn.140003fc0
mov r15d, eax
mov rcx, qword [rbx]
cmp dword [rcx + 0x4064], eax
jne 0x140040983
mov r8, rsi
mov edx, 0xb
mov ecx, eax
call fcn.14001b7a0
mov dword [rbp + 0x58], r15d
or dword [rdi + 0x49c8], 0x100
xor r13d, r13d
mov dword [rdi + 0x4a00], r13d
movsd xmm0, qword [r12]
movsd qword [rbp + 0x40], xmm0
mov edx, 4
mov rax, qword gs:[0x58]
mov rcx, qword [rax]
mov eax, dword [rdx + rcx]
cmp dword [0x1401d6698], eax
jle 0x140040a1c
lea rcx, [0x1401d6698]
call fcn.1400e735c
cmp dword [0x1401d6698], 0xffffffff
jne 0x140040a1c
xorps xmm0, xmm0
movdqu xmmword [0x1401d66b0], xmm0
lea ecx, [r13 + 0x28]
call fcn.1400e73d4
mov qword [rax], rax
mov qword [rax + 8], rax
mov qword [rax + 0x10], rax
mov word [rax + 0x18], 0x101
mov qword [0x1401d66b0], rax
lea rcx, [0x1400eb310]
call fcn.1400e7638
nop
lea rcx, [0x1401d6698]
call fcn.1400e72f0
lea rdx, [rbp + 0x58]
lea rcx, [0x1401d66b0]
call fcn.14001b9b0
mov r15, rax
xorps xmm6, xmm6
mov rdx, qword [0x1401d5ec0]
movss xmm1, dword [rbp + 0x40]
comiss xmm6, xmm1
jb 0x140040a6f
movss xmm0, dword [rdi + 0x38f8]
mov rcx, qword [rdx + 0x4018]
addss xmm0, xmm0
movss xmm1, dword [rcx + 0x30]
subss xmm1, xmm0
subss xmm1, dword [rdi + 0x393c]
mulss xmm1, dword [0x140118cb4]
movss xmm0, dword [rbp + 0x44]
comiss xmm6, xmm0
jb 0x140040a7d
movss xmm0, dword [rax]
mov eax, dword [rdx + 0x49c8]
or eax, 2
mov dword [rdx + 0x49c8], eax
movss dword [rdx + 0x49e8], xmm1
movss dword [rdx + 0x49ec], xmm0
mov dword [rdx + 0x49d0], 1
movss xmm1, dword [r14 + 0x110]
addss xmm1, xmm6
movss xmm0, dword [r14 + 0x114]
addss xmm0, dword [0x140118de0]
or eax, 1
mov dword [rdx + 0x49c8], eax
movss dword [rdx + 0x49d8], xmm1
movss dword [rdx + 0x49dc], xmm0
mov qword [rdx + 0x49e0], r13
mov dword [rdx + 0x49cc], 1
mov eax, dword [rbp + 0x58]
mov r9, qword [r14 + 8]
xor edx, edx
lea rcx, [rbp + 0x48]
test rsi, rsi
je 0x140040b17
mov dword [rsp + 0x28], eax
mov qword [rsp + 0x20], rsi
lea r8, str._s__s__08X
call fcn.140003e50
jmp 0x140040b27
mov dword [rsp + 0x20], eax
lea r8, str._s__08X
call fcn.140003e50
movss xmm7, dword [rdi + 0x3920]
mov dword [rdi + 0x3920], r13d
mov r8, qword [r14 + 0x2a8]
movss xmm0, dword [0x1401d6648]
movss dword [rbp - 0x30], xmm0
movss xmm1, dword [0x1401d664c]
movss dword [rbp - 0x2c], xmm1
movss xmm0, dword [0x1401d6650]
movss dword [rbp - 0x28], xmm0
movss xmm1, dword [0x1401d6654]
mov rbx, qword [0x1401d5ec0]
mulss xmm1, dword [rbx + 0x38f0]
movss dword [rbp - 0x24], xmm1
lea rcx, [rbp - 0x30]
call fcn.140004570
mov r9d, eax
movss xmm0, dword [r14 + 0x110]
subss xmm0, xmm6
movss dword [rbp + 0x40], xmm0
movss xmm1, dword [r14 + 0x114]
subss xmm1, dword [0x140118d78]
movss dword [rbp + 0x44], xmm1
test eax, 0xff000000
je 0x140040c22
mov rcx, 0xffffffffffffffff
inc rcx
cmp byte [rsi + rcx], 0
jne 0x140040bc2
add rcx, rsi
cmp rsi, rcx
je 0x140040c22
mov rax, qword [r8 + 0x38]
movups xmm0, xmmword [r8 + 0x88]
movups xmmword [rbp - 0x30], xmm0
mov byte [rsp + 0x48], 0
movss dword [rsp + 0x40], xmm6
mov qword [rsp + 0x38], rcx
mov qword [rsp + 0x30], rsi
lea rcx, [rbp - 0x30]
mov qword [rsp + 0x28], rcx
mov dword [rsp + 0x20], r9d
lea r9, [rbp + 0x40]
movss xmm2, dword [rax + 0x10]
mov rdx, r8
mov rcx, qword [rax + 8]
call fcn.140026cc0
mov rbx, qword [0x1401d5ec0]
mov dword [rbp - 0x30], 7
movss xmm0, dword [rbx + 0x391c]
movss dword [rbp - 0x2c], xmm0
lea rcx, [rbx + 0x4a50]
lea rdx, [rbp - 0x30]
call fcn.14001c380
mov dword [rbx + 0x391c], r13d
xor edx, edx
mov r8d, 0x100211f
mov rcx, qword [rbp + 0x48]
call fcn.14000e8a0
movzx r12d, al
movss dword [rdi + 0x3920], xmm7
mov rsi, qword [rdi + 0x4018]
mov ecx, dword [rbp + 0x58]
mov dword [rsi + 0x88], ecx
mov ecx, dword [rsi + 0x44]
mov dword [r15], ecx
cmp word [rsi + 0xcc], 1
jne 0x140040c98
movsd xmm0, qword [rsi + 0x28]
movsd qword [r14 + 0x110], xmm0
mov r10d, dword [rbp + 0x58]
mov r9d, r10d
not r9d
mov ebx, r9d
lea rdx, [0x140109221]
mov r8b, 0x23
lea r11, [0x14010a1c0]
cmp r8b, 0x23
jne 0x140040cc9
cmp byte [rdx], r8b
jne 0x140040cc9
cmp byte [rdx + 1], r8b
cmove ebx, r9d
movzx ecx, bl
movzx eax, r8b
xor rcx, rax
shr ebx, 8
xor ebx, dword [r11 + rcx*4]
movzx r8d, byte [rdx]
inc rdx
test r8b, r8b
jne 0x140040cb6
not ebx
cmp dword [rdi + 0x407c], ebx
jne 0x140040cfd
xor edx, edx
xor ecx, ecx
call fcn.140007ff0
mov r10d, dword [rbp + 0x58]
cmp dword [rdi + 0x4af8], r10d
jne 0x140040d43
cmp word [rsi + 0x16c], 0
jne 0x140040d19
cmp byte [rsi + 0x172], 0
je 0x140040d43
xor edx, edx
mov rcx, rsi
call fcn.140010f80
xor edx, edx
mov rcx, rsi
call fcn.140017310
mov rdx, rsi
mov ecx, ebx
call fcn.140007ff0
mov eax, dword [rdi + 0x4b1c]
mov dword [rdi + 0x40a0], eax
mov rbx, qword [0x1401d5ec0]
movss xmm1, dword [rbx + 0x393c]
movss xmm0, dword [rbx + 0x3940]
mov dword [rbp - 0x30], 0xe
movss dword [rbp - 0x2c], xmm1
movss dword [rbp - 0x28], xmm0
lea rcx, [rbx + 0x4a50]
lea rdx, [rbp - 0x30]
call fcn.14001c380
mov dword [rbx + 0x393c], 0x40a00000
mov dword [rbx + 0x3940], 0x40a00000
movzx eax, r12b
mov rbx, qword [rsp + 0xd0]
movaps xmm6, xmmword [rsp + 0x70]
movaps xmm7, xmmword [rsp + 0x60]
add rsp, 0x80
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret