Function at 0x1800b7b70
Capabilities:
Hash data with crc32

Disassembly:
mov qword [rsp + 8], rcx
push rbx
push rsi
sub rsp, 0x68
lea rsi, [0x1801579c0]
movaps xmmword [rsp + 0x40], xmm6
mov rdx, rsi
lea rcx, str.Text:___s_
call fcn.1800d1550
mov rax, qword [0x180156ea0]
lea rdx, [0x18012f7b9]
mov qword [rsp + 0x80], 0
lea r11, [0x18011cf70]
xorps xmm6, xmm6
mov r8b, 0x23
mov r10, qword [rax + 0x3ed8]
movsxd rcx, dword [r10 + 0xf0]
mov rax, qword [r10 + 0xf8]
mov r9d, dword [rax + rcx*4 - 4]
not r9d
mov ebx, r9d
nop dword [rax]
cmp r8b, 0x23
jne 0x1800b7bf3
cmp byte [rdx], r8b
jne 0x1800b7bf3
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 [r11 + rcx*4]
test r8b, r8b
jne 0x1800b7be0
mov rax, qword [r10]
not ebx
cmp dword [rax + 0x3f20], ebx
jne 0x1800b7c30
lea r8, str.DebugTextEncoding
mov edx, 0xb
mov ecx, ebx
call fcn.1800bf020
lea rax, [rsp + 0x80]
movss dword [rsp + 0x28], xmm6
mov r9d, 0x27c1
mov qword [rsp + 0x20], rax
mov r8d, 4
lea rcx, str.DebugTextEncoding
mov edx, ebx
call fcn.1800e1130
test al, al
je 0x1800b81a9
mov rcx, qword [0x180156ea0]
mov qword [rsp + 0x88], rbp
mov qword [rsp + 0x90], rdi
mov qword [rsp + 0x50], r15
xor r15d, r15d
mov rdi, qword [rcx + 0x4b48]
lea ebp, [r15 - 1]
movsx rdx, word [rdi + 0x1fe]
cmp edx, dword [rdi + 0x6c]
jge 0x1800b7d51
imul rbx, rdx, 0x70
inc dx
xor r8d, r8d
add rbx, qword [rdi + 0x18]
mov rcx, rdi
mov word [rdi + 0x1fe], dx
mov rdx, rbx
call fcn.1800e23a0
mov eax, dword [rbx]
mov dword [rbx + 0x30], r15d
mov dword [rbx + 0x1c], r15d
cmp byte [rdi + 0x22c], r15b
je 0x1800b7d1c
comiss xmm6, dword [rbx + 0x10]
jbe 0x1800b7cea
comiss xmm6, dword [rbx + 0x18]
jbe 0x1800b7cea
test al, 8
je 0x1800b7cea
mov dword [rbx + 0x18], 0xbf800000
test al, 2
je 0x1800b7cf9
test byte [rdi + 0x60], 4
jne 0x1800b7cf9
mov word [rbx + 0x63], r15w
test al, 4
je 0x1800b7d1c
test byte [rdi + 0x60], 8
jne 0x1800b7d1c
bt eax, 0xf
mov word [rbx + 0x5a], r15w
movzx eax, byte [rbx + 0x6d]
setb cl
and al, 0xfc
inc cl
or cl, al
mov byte [rbx + 0x6d], cl
mov word [rbx + 0x50], bp
lea rcx, [rdi + 0x188]
mov eax, dword [rcx]
lea r8, [0x18012f7d3]
test eax, eax
lea edx, [rax - 1]
cmove dx, r15w
mov word [rbx + 0x50], dx
lea rdx, str.Offset
call fcn.18009f140
mov rcx, qword [0x180156ea0]
mov rdi, qword [rcx + 0x4b48]
movsx rdx, word [rdi + 0x1fe]
cmp edx, dword [rdi + 0x6c]
jge 0x1800b7e1a
imul rbx, rdx, 0x70
inc dx
xor r8d, r8d
add rbx, qword [rdi + 0x18]
mov rcx, rdi
mov word [rdi + 0x1fe], dx
mov rdx, rbx
call fcn.1800e23a0
mov eax, dword [rbx]
mov dword [rbx + 0x30], r15d
mov dword [rbx + 0x1c], r15d
cmp byte [rdi + 0x22c], r15b
je 0x1800b7de5
comiss xmm6, dword [rbx + 0x10]
jbe 0x1800b7db3
comiss xmm6, dword [rbx + 0x18]
jbe 0x1800b7db3
test al, 8
je 0x1800b7db3
mov dword [rbx + 0x18], 0xbf800000
test al, 2
je 0x1800b7dc2
test byte [rdi + 0x60], 4
jne 0x1800b7dc2
mov word [rbx + 0x63], r15w
test al, 4
je 0x1800b7de5
test byte [rdi + 0x60], 8
jne 0x1800b7de5
bt eax, 0xf
mov word [rbx + 0x5a], r15w
movzx eax, byte [rbx + 0x6d]
setb cl
and al, 0xfc
inc cl
or cl, al
mov byte [rbx + 0x6d], cl
mov word [rbx + 0x50], bp
lea rcx, [rdi + 0x188]
mov eax, dword [rcx]
lea r8, [0x18012f7fe]
test eax, eax
lea edx, [rax - 1]
cmove dx, r15w
mov word [rbx + 0x50], dx
lea rdx, str.UTF_8
call fcn.18009f140
mov rcx, qword [0x180156ea0]
mov rdi, qword [rcx + 0x4b48]
movsx rdx, word [rdi + 0x1fe]
cmp edx, dword [rdi + 0x6c]
jge 0x1800b7ee3
imul rbx, rdx, 0x70
inc dx
xor r8d, r8d
add rbx, qword [rdi + 0x18]
mov rcx, rdi
mov word [rdi + 0x1fe], dx
mov rdx, rbx
call fcn.1800e23a0
mov eax, dword [rbx]
mov dword [rbx + 0x30], r15d
mov dword [rbx + 0x1c], r15d
cmp byte [rdi + 0x22c], r15b
je 0x1800b7eae
comiss xmm6, dword [rbx + 0x10]
jbe 0x1800b7e7c
comiss xmm6, dword [rbx + 0x18]
jbe 0x1800b7e7c
test al, 8
je 0x1800b7e7c
mov dword [rbx + 0x18], 0xbf800000
test al, 2
je 0x1800b7e8b
test byte [rdi + 0x60], 4
jne 0x1800b7e8b
mov word [rbx + 0x63], r15w
test al, 4
je 0x1800b7eae
test byte [rdi + 0x60], 8
jne 0x1800b7eae
bt eax, 0xf
mov word [rbx + 0x5a], r15w
movzx eax, byte [rbx + 0x6d]
setb cl
and al, 0xfc
inc cl
or cl, al
mov byte [rbx + 0x6d], cl
mov word [rbx + 0x50], bp
lea rcx, [rdi + 0x188]
mov eax, dword [rcx]
lea r8, [0x18012f806]
test eax, eax
lea edx, [rax - 1]
cmove dx, r15w
mov word [rbx + 0x50], dx
lea rdx, str.Glyph
call fcn.18009f140
mov rcx, qword [0x180156ea0]
mov rdi, qword [rcx + 0x4b48]
movsx rcx, word [rdi + 0x1fe]
cmp ecx, dword [rdi + 0x6c]
jge 0x1800b7fa5
imul rbx, rcx, 0x70
inc cx
xor r8d, r8d
add rbx, qword [rdi + 0x18]
mov word [rdi + 0x1fe], cx
mov rdx, rbx
mov rcx, rdi
call fcn.1800e23a0
mov eax, dword [rbx]
mov dword [rbx + 0x30], r15d
mov dword [rbx + 0x1c], r15d
cmp byte [rdi + 0x22c], r15b
je 0x1800b7f77
comiss xmm6, dword [rbx + 0x10]
jbe 0x1800b7f45
comiss xmm6, dword [rbx + 0x18]
jbe 0x1800b7f45
test al, 8
je 0x1800b7f45
mov dword [rbx + 0x18], 0xbf800000
test al, 2
je 0x1800b7f54
test byte [rdi + 0x60], 4
jne 0x1800b7f54
mov word [rbx + 0x63], r15w
test al, 4
je 0x1800b7f77
test byte [rdi + 0x60], 8
jne 0x1800b7f77
bt eax, 0xf
mov word [rbx + 0x5a], r15w
movzx eax, byte [rbx + 0x6d]
setb cl
and al, 0xfc
inc cl
or cl, al
mov byte [rbx + 0x6d], cl
mov word [rbx + 0x50], bp
lea rcx, [rdi + 0x188]
mov eax, dword [rcx]
lea r8, [0x18012f7f2]
test eax, eax
lea edx, [rax - 1]
cmove dx, r15w
mov word [rbx + 0x50], dx
lea rdx, str.Codepoint
call fcn.18009f140
call fcn.1800e69b0
cmp byte [0x1801579c0], r15b
je 0x1800b818f
mov qword [rsp + 0x98], r12
mov rbp, rsi
mov qword [rsp + 0x60], r13
mov r12d, 0xffff
mov qword [rsp + 0x58], r14
lea r13, str._invalid_
movaps xmmword [rsp + 0x30], xmm7
movss xmm7, dword [0x1801327c0]
nop word [rax + rax]
xor r8d, r8d
lea rcx, [rsp + 0x80]
mov rdx, rsi
call fcn.18009e790
movsxd rbx, eax
call fcn.1800e4de0
mov edx, esi
lea rcx, [0x18012f7f4]
sub edx, ebp
call fcn.1800d1550
call fcn.1800e4de0
mov rdi, r15
mov r14, rbx
test ebx, ebx
jle 0x1800b8058
nop word [rax + rax]
test rdi, rdi
je 0x1800b8040
movaps xmm1, xmm7
movaps xmm0, xmm6
call fcn.1800af8d0
movzx edx, byte [rdi + rsi]
lea rcx, str.0x_02X
call fcn.1800d1550
inc rdi
cmp rdi, r14
jl 0x1800b8030
mov rax, qword [0x180156ea0]
mov rbx, qword [rax + 0x4b48]
test rbx, rbx
je 0x1800b80a7
cmp byte [rbx + 0x22b], r15b
je 0x1800b8093
mov ecx, dword [rbx + 0x74]
lea eax, [rcx + 1]
cmp eax, dword [rbx + 0x6c]
jge 0x1800b8093
cmp ecx, 0xffffffff
je 0x1800b808c
mov rcx, rbx
call fcn.1800e5040
mov edx, dword [rbx + 0x74]
inc edx
jmp 0x1800b809f
movaps xmm1, xmm6
xor ecx, ecx
call fcn.1800e4350
xor edx, edx
mov rcx, rbx
call fcn.1800e4e60
mov rax, qword [0x180156ea0]
mov edi, dword [rsp + 0x80]
movzx ecx, di
mov rdx, qword [rax + 0x3c08]
movsxd rax, dword [rdx + 0x18]
cmp rcx, rax
jae 0x1800b80f1
mov rax, qword [rdx + 0x20]
movzx r8d, word [rax + rcx*2]
cmp r8w, r12w
je 0x1800b80f1
mov rax, qword [rdx + 0x30]
lea rcx, [r8 + r8*4]
lea rcx, [rax + rcx*8]
test rcx, rcx
je 0x1800b80f1
lea rdx, [r14 + rsi]
mov rcx, rsi
jmp 0x1800b8104
cmp edi, 0xfffd
lea rcx, str._missing_
cmove rcx, r13
xor edx, edx
mov r8d, 1
call fcn.1800d0d90
mov rax, qword [0x180156ea0]
mov rbx, qword [rax + 0x4b48]
test rbx, rbx
je 0x1800b815e
cmp byte [rbx + 0x22b], r15b
je 0x1800b814a
mov ecx, dword [rbx + 0x74]
lea eax, [rcx + 1]
cmp eax, dword [rbx + 0x6c]
jge 0x1800b814a
cmp ecx, 0xffffffff
je 0x1800b8143
mov rcx, rbx
call fcn.1800e5040
mov edx, dword [rbx + 0x74]
inc edx
jmp 0x1800b8156
movaps xmm1, xmm6
xor ecx, ecx
call fcn.1800e4350
xor edx, edx
mov rcx, rbx
call fcn.1800e4e60
mov edx, edi
lea rcx, str.U_04X
call fcn.1800d1550
add rsi, r14
cmp byte [rsi], r15b
jne 0x1800b7ff0
movaps xmm7, xmmword [rsp + 0x30]
mov r14, qword [rsp + 0x58]
mov r13, qword [rsp + 0x60]
mov r12, qword [rsp + 0x98]
call fcn.1800e3a50
mov r15, qword [rsp + 0x50]
mov rdi, qword [rsp + 0x90]
mov rbp, qword [rsp + 0x88]
movaps xmm6, xmmword [rsp + 0x40]
add rsp, 0x68
pop rsi
pop rbx
ret