Function at 0x1800d9a20
Capabilities:
Hash data with crc32

Disassembly:
mov r11, rsp
mov qword [r11 + 0x20], rsi
mov qword [r11 + 0x18], r8
push rbp
push rdi
push r12
push r13
push r15
lea rbp, [r11 - 0x47]
sub rsp, 0xe0
mov r10, qword [0x1801e3228]
mov r15, r9
movaps xmmword [r11 - 0x38], xmm6
mov rsi, r10
movaps xmmword [r11 - 0x48], xmm7
mov rax, qword [r10 + 0x3ea0]
mov byte [rax + 0x98], 1
mov r13, qword [r10 + 0x3ea0]
cmp byte [r13 + 0x9b], 0
jne 0x1800d9f92
movsxd rcx, dword [r13 + 0xd0]
lea rdx, [0x180167fc5]
mov rax, qword [r13 + 0xd8]
mov r8b, 0x53
movaps xmmword [r11 - 0x58], xmm8
lea r11, [0x18017c700]
mov r9d, dword [rax + rcx*4 - 4]
not r9d
mov edi, r9d
cmp r8b, 0x23
jne 0x1800d9aba
cmp byte [rdx], r8b
jne 0x1800d9aba
cmp byte [rdx + 1], r8b
cmove edi, r9d
movzx ecx, dil
movzx eax, r8b
movzx r8d, byte [rdx]
xor rcx, rax
shr edi, 8
inc rdx
xor edi, dword [r11 + rcx*4]
test r8b, r8b
jne 0x1800d9aa7
not edi
lea r12, str.Scale
cmp dword [r10 + 0x3ed4], edi
jne 0x1800d9b00
mov r8, r12
mov edx, 0xb
mov ecx, edi
call fcn.1800d3960
mov r10, qword [0x1801e3228]
test byte [r10 + 0x3f58], 1
mov rax, qword [r10 + 0x3ea0]
je 0x1800d9b1c
movss xmm0, dword [r10 + 0x3f5c]
jmp 0x1800d9b24
movss xmm0, dword [rax + 0x19c]
xorps xmm7, xmm7
comiss xmm7, xmm0
jbe 0x1800d9b68
cmp qword [rax + 0x188], 0
movss xmm1, dword [rax + 0x230]
jne 0x1800d9b48
cmp qword [r10 + 0x4310], 0
je 0x1800d9b50
movss xmm1, dword [rax + 0x200]
subss xmm1, dword [rax + 0xe0]
addss xmm1, xmm0
movss xmm0, dword [0x1801816a4]
maxss xmm0, xmm1
mov rcx, r12
cvttss2si eax, xmm0
movd xmm8, eax
cvtdq2ps xmm8, xmm8
cmp r12, 0xffffffffffffffff
jae 0x1800d9b9d
nop
movzx edx, byte [rcx]
test dl, dl
je 0x1800d9b9d
lea rax, [rcx + 1]
cmp dl, 0x23
jne 0x1800d9b94
cmp byte [rax], dl
je 0x1800d9b9d
mov rcx, rax
cmp rax, 0xffffffffffffffff
jb 0x1800d9b80
movss xmm2, dword [r10 + 0x3c00]
cmp r12, rcx
jne 0x1800d9bb0
movaps xmm6, xmm7
jmp 0x1800d9bfd
movss xmm0, dword [0x1801817b0]
lea rdx, [rbp + 0x5f]
movss xmm3, dword [0x18018179c]
mov qword [rsp + 0x30], rcx
mov rcx, qword [r10 + 0x3bf8]
mov qword [rsp + 0x28], r12
movss dword [rsp + 0x20], xmm0
call fcn.1800f2060
movss xmm0, dword [rbp + 0x5f]
addss xmm0, dword [0x18018169c]
movss xmm2, dword [rbp + 0x63]
cvttss2si eax, xmm0
movd xmm6, eax
cvtdq2ps xmm6, xmm6
comiss xmm6, xmm7
movss xmm4, dword [r13 + 0xe0]
movss xmm5, dword [rsi + 0x3820]
movaps xmm3, xmm4
addss xmm3, xmm8
movaps xmm1, xmm5
movaps xmm8, xmmword [rsp + 0xb0]
addss xmm1, xmm5
addss xmm1, xmm2
addss xmm1, dword [r13 + 0xe4]
movss dword [rbp - 0x71], xmm4
movss xmm2, dword [r13 + 0xe4]
movss dword [rbp - 0x6d], xmm2
movss dword [rbp - 0x69], xmm3
movss dword [rbp - 0x65], xmm1
jbe 0x1800d9c62
movaps xmm0, xmm6
addss xmm0, dword [rsi + 0x3834]
jmp 0x1800d9c65
movaps xmm0, xmm7
addss xmm1, xmm7
movss dword [rbp - 0x61], xmm4
addss xmm3, xmm0
movss dword [rbp - 0x5d], xmm2
lea rcx, [rbp + 0x5f]
movss dword [rbp - 0x55], xmm1
subss xmm1, xmm2
movss dword [rbp - 0x59], xmm3
subss xmm3, xmm4
movss dword [rbp + 0x63], xmm1
movaps xmm1, xmm5
movss dword [rbp + 0x5f], xmm3
call fcn.1800cb4d0
lea r8, [rbp - 0x71]
mov edx, edi
lea rcx, [rbp - 0x61]
mov r9d, 0x400
call fcn.1800cb680
test al, al
je 0x1800d9f92
mov qword [rsp + 0x110], rbx
lea rcx, [rbp - 0x71]
mov edx, edi
mov qword [rsp + 0x118], r14
call fcn.1800be9f0
mov rcx, qword [0x1801e3228]
movzx ebx, al
cmp dword [rcx + 0x3eec], edi
jne 0x1800d9cf1
cmp dword [rcx + 0x52d8], edi
je 0x1800d9d2c
mov ecx, dword [rsi + 0x3f74]
and ecx, 0x100
test al, al
je 0x1800d9d0e
cmp byte [rsi + 0x3738], 0
je 0x1800d9d0e
mov al, 1
jmp 0x1800d9d10
xor al, al
test ecx, ecx
jne 0x1800d9d2c
test al, al
jne 0x1800d9d81
cmp dword [rsi + 0x40c0], edi
je 0x1800d9d8a
cmp dword [rsi + 0x40cc], edi
jne 0x1800d9db5
xor ebx, ebx
lea r14, str._.3f
mov qword [rsp + 0x38], rbx
lea rcx, [rbp - 0x71]
mov qword [rsp + 0x30], rbx
mov edx, edi
mov qword [rsp + 0x28], r14
call fcn.1800da0a0
mov r14, qword [rsp + 0x118]
mov rbx, qword [rsp + 0x110]
lea r11, [rsp + 0xe0]
mov rsi, qword [r11 + 0x48]
movaps xmm6, xmmword [r11 - 0x10]
movaps xmm7, xmmword [r11 - 0x20]
mov rsp, r11
pop r15
pop r13
pop r12
pop rdi
pop rbp
ret
cmp byte [rsi + 0xe14], 0
jne 0x1800d9d2c
cmp dword [rsi + 0x40cc], edi
je 0x1800d9d2c
mov rdx, r13
mov ecx, edi
call fcn.1800be5f0
mov rdx, r13
mov ecx, edi
call fcn.1800cd790
mov rcx, r13
call fcn.1800c9800
or dword [rsi + 0x3f30], 3
mov ecx, 9
cmp dword [rsi + 0x3eec], edi
je 0x1800d9dc5
lea ecx, [rbx + 7]
movss xmm1, dword [0x1801816a4]
call fcn.1800bb4e0
mov edx, edi
lea rcx, [rbp - 0x71]
mov r8d, 1
mov ebx, eax
call fcn.1800bccd0
movss xmm0, dword [rsi + 0x3824]
mov r9b, 1
mov rdx, qword [rbp - 0x69]
mov r8d, ebx
mov rcx, qword [rbp - 0x71]
movss dword [rsp + 0x20], xmm0
call fcn.1800bc7e0
mov rax, qword [0x1801e3228]
lea r14, str._.3f
xor ebx, ebx
xorps xmm0, xmm0
movups xmmword [rbp - 0x61], xmm0
test byte [rax + 0x3f70], 0x80
jne 0x1800d9ecc
movss xmm1, dword [r15]
lea rax, [rbp - 0x61]
mov qword [rsp + 0x40], rax
lea rcx, [rbp - 0x71]
mov rax, qword [rbp + 0x6f]
mov edx, edi
mov qword [rsp + 0x30], r14
movss xmm0, dword [rax]
movss dword [rsp + 0x28], xmm0
movss dword [rsp + 0x20], xmm1
call fcn.1800e2130
movzx r15d, al
test al, al
je 0x1800d9e7b
mov rcx, qword [0x1801e3228]
or dword [rcx + 0x3f74], 4
mov word [rcx + 0x3efc], 0x101
movss xmm0, dword [rbp - 0x59]
comiss xmm0, dword [rbp - 0x61]
jbe 0x1800d9ecf
cmp dword [rsi + 0x3eec], edi
mov ecx, ebx
movss xmm1, dword [0x1801816a4]
sete cl
add ecx, 0x13
call fcn.1800bb4e0
movss xmm0, dword [rsi + 0x3860]
lea r8, [rbp - 0x59]
mov rcx, qword [r13 + 0x278]
lea rdx, [rbp - 0x61]
mov r9d, eax
mov dword [rsp + 0x28], ebx
movss dword [rsp + 0x20], xmm0
call fcn.1800edcb0
jmp 0x1800d9ecf
xor r15b, r15b
mov edx, 0x40
mov qword [rsp + 0x20], r14
lea r9, [0x1801ad498]
lea rcx, [rbp - 0x51]
lea r8d, [rdx - 0x38]
call fcn.1800d9710
movsxd rcx, eax
lea r9, [rbp - 0x51]
add r9, rcx
cmp byte [rsi + 0x53ec], bl
je 0x1800d9f22
mov rax, qword [0x1801e3228]
lea rcx, [0x18017cfe8]
mov qword [rax + 0x5410], rcx
lea rcx, [0x18017cfe4]
mov qword [rax + 0x5418], rcx
lea rax, [rbp + 0x5f]
mov qword [rsp + 0x30], rbx
mov qword [rsp + 0x28], rax
lea r8, [rbp - 0x51]
lea rdx, [rbp - 0x69]
mov qword [rsp + 0x20], rbx
lea rcx, [rbp - 0x71]
mov dword [rbp + 0x5f], 0x3f000000
mov dword [rbp + 0x63], 0x3f000000
call fcn.1800bc550
comiss xmm6, xmm7
jbe 0x1800d9f89
movss xmm0, dword [rbp - 0x69]
mov r9b, 1
movss xmm1, dword [rbp - 0x6d]
xor r8d, r8d
addss xmm0, dword [rsi + 0x3834]
addss xmm1, dword [rsi + 0x3820]
mov rdx, r12
unpcklps xmm0, xmm1
movq rcx, xmm0
call fcn.1800bbc10
movzx eax, r15b
jmp 0x1800d9d4f
xor al, al
jmp 0x1800d9d5f