Function at 0x1800b7a40
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.1800d1420
mov rax, qword [0x180156ea0]
lea rdx, [0x18012f7e9]
mov qword [rsp + 0x80], 0
lea r11, [0x18011cfb0]
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 0x1800b7ac3
cmp byte [rdx], r8b
jne 0x1800b7ac3
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 0x1800b7ab0
mov rax, qword [r10]
not ebx
cmp dword [rax + 0x3f20], ebx
jne 0x1800b7b00
lea r8, str.DebugTextEncoding
mov edx, 0xb
mov ecx, ebx
call fcn.1800beef0
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.1800e1000
test al, al
je 0x1800b8079
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 0x1800b7c21
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.1800e2270
mov eax, dword [rbx]
mov dword [rbx + 0x30], r15d
mov dword [rbx + 0x1c], r15d
cmp byte [rdi + 0x22c], r15b
je 0x1800b7bec
comiss xmm6, dword [rbx + 0x10]
jbe 0x1800b7bba
comiss xmm6, dword [rbx + 0x18]
jbe 0x1800b7bba
test al, 8
je 0x1800b7bba
mov dword [rbx + 0x18], 0xbf800000
test al, 2
je 0x1800b7bc9
test byte [rdi + 0x60], 4
jne 0x1800b7bc9
mov word [rbx + 0x63], r15w
test al, 4
je 0x1800b7bec
test byte [rdi + 0x60], 8
jne 0x1800b7bec
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, [0x18012f803]
test eax, eax
lea edx, [rax - 1]
cmove dx, r15w
mov word [rbx + 0x50], dx
lea rdx, str.Offset
call fcn.18009f010
mov rcx, qword [0x180156ea0]
mov rdi, qword [rcx + 0x4b48]
movsx rdx, word [rdi + 0x1fe]
cmp edx, dword [rdi + 0x6c]
jge 0x1800b7cea
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.1800e2270
mov eax, dword [rbx]
mov dword [rbx + 0x30], r15d
mov dword [rbx + 0x1c], r15d
cmp byte [rdi + 0x22c], r15b
je 0x1800b7cb5
comiss xmm6, dword [rbx + 0x10]
jbe 0x1800b7c83
comiss xmm6, dword [rbx + 0x18]
jbe 0x1800b7c83
test al, 8
je 0x1800b7c83
mov dword [rbx + 0x18], 0xbf800000
test al, 2
je 0x1800b7c92
test byte [rdi + 0x60], 4
jne 0x1800b7c92
mov word [rbx + 0x63], r15w
test al, 4
je 0x1800b7cb5
test byte [rdi + 0x60], 8
jne 0x1800b7cb5
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, [0x18012f82e]
test eax, eax
lea edx, [rax - 1]
cmove dx, r15w
mov word [rbx + 0x50], dx
lea rdx, str.UTF_8
call fcn.18009f010
mov rcx, qword [0x180156ea0]
mov rdi, qword [rcx + 0x4b48]
movsx rdx, word [rdi + 0x1fe]
cmp edx, dword [rdi + 0x6c]
jge 0x1800b7db3
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.1800e2270
mov eax, dword [rbx]
mov dword [rbx + 0x30], r15d
mov dword [rbx + 0x1c], r15d
cmp byte [rdi + 0x22c], r15b
je 0x1800b7d7e
comiss xmm6, dword [rbx + 0x10]
jbe 0x1800b7d4c
comiss xmm6, dword [rbx + 0x18]
jbe 0x1800b7d4c
test al, 8
je 0x1800b7d4c
mov dword [rbx + 0x18], 0xbf800000
test al, 2
je 0x1800b7d5b
test byte [rdi + 0x60], 4
jne 0x1800b7d5b
mov word [rbx + 0x63], r15w
test al, 4
je 0x1800b7d7e
test byte [rdi + 0x60], 8
jne 0x1800b7d7e
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, [0x18012f836]
test eax, eax
lea edx, [rax - 1]
cmove dx, r15w
mov word [rbx + 0x50], dx
lea rdx, str.Glyph
call fcn.18009f010
mov rcx, qword [0x180156ea0]
mov rdi, qword [rcx + 0x4b48]
movsx rcx, word [rdi + 0x1fe]
cmp ecx, dword [rdi + 0x6c]
jge 0x1800b7e75
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.1800e2270
mov eax, dword [rbx]
mov dword [rbx + 0x30], r15d
mov dword [rbx + 0x1c], r15d
cmp byte [rdi + 0x22c], r15b
je 0x1800b7e47
comiss xmm6, dword [rbx + 0x10]
jbe 0x1800b7e15
comiss xmm6, dword [rbx + 0x18]
jbe 0x1800b7e15
test al, 8
je 0x1800b7e15
mov dword [rbx + 0x18], 0xbf800000
test al, 2
je 0x1800b7e24
test byte [rdi + 0x60], 4
jne 0x1800b7e24
mov word [rbx + 0x63], r15w
test al, 4
je 0x1800b7e47
test byte [rdi + 0x60], 8
jne 0x1800b7e47
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, [0x18012f822]
test eax, eax
lea edx, [rax - 1]
cmove dx, r15w
mov word [rbx + 0x50], dx
lea rdx, str.Codepoint
call fcn.18009f010
call fcn.1800e6880
cmp byte [0x1801579c0], r15b
je 0x1800b805f
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 [0x1801327f0]
nop word [rax + rax]
xor r8d, r8d
lea rcx, [rsp + 0x80]
mov rdx, rsi
call fcn.18009e660
movsxd rbx, eax
call fcn.1800e4cb0
mov edx, esi
lea rcx, [0x18012f824]
sub edx, ebp
call fcn.1800d1420
call fcn.1800e4cb0
mov rdi, r15
mov r14, rbx
test ebx, ebx
jle 0x1800b7f28
nop word [rax + rax]
test rdi, rdi
je 0x1800b7f10
movaps xmm1, xmm7
movaps xmm0, xmm6
call fcn.1800af7a0
movzx edx, byte [rdi + rsi]
lea rcx, str.0x_02X
call fcn.1800d1420
inc rdi
cmp rdi, r14
jl 0x1800b7f00
mov rax, qword [0x180156ea0]
mov rbx, qword [rax + 0x4b48]
test rbx, rbx
je 0x1800b7f77
cmp byte [rbx + 0x22b], r15b
je 0x1800b7f63
mov ecx, dword [rbx + 0x74]
lea eax, [rcx + 1]
cmp eax, dword [rbx + 0x6c]
jge 0x1800b7f63
cmp ecx, 0xffffffff
je 0x1800b7f5c
mov rcx, rbx
call fcn.1800e4f10
mov edx, dword [rbx + 0x74]
inc edx
jmp 0x1800b7f6f
movaps xmm1, xmm6
xor ecx, ecx
call fcn.1800e4220
xor edx, edx
mov rcx, rbx
call fcn.1800e4d30
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 0x1800b7fc1
mov rax, qword [rdx + 0x20]
movzx r8d, word [rax + rcx*2]
cmp r8w, r12w
je 0x1800b7fc1
mov rax, qword [rdx + 0x30]
lea rcx, [r8 + r8*4]
lea rcx, [rax + rcx*8]
test rcx, rcx
je 0x1800b7fc1
lea rdx, [r14 + rsi]
mov rcx, rsi
jmp 0x1800b7fd4
cmp edi, 0xfffd
lea rcx, str._missing_
cmove rcx, r13
xor edx, edx
mov r8d, 1
call fcn.1800d0c60
mov rax, qword [0x180156ea0]
mov rbx, qword [rax + 0x4b48]
test rbx, rbx
je 0x1800b802e
cmp byte [rbx + 0x22b], r15b
je 0x1800b801a
mov ecx, dword [rbx + 0x74]
lea eax, [rcx + 1]
cmp eax, dword [rbx + 0x6c]
jge 0x1800b801a
cmp ecx, 0xffffffff
je 0x1800b8013
mov rcx, rbx
call fcn.1800e4f10
mov edx, dword [rbx + 0x74]
inc edx
jmp 0x1800b8026
movaps xmm1, xmm6
xor ecx, ecx
call fcn.1800e4220
xor edx, edx
mov rcx, rbx
call fcn.1800e4d30
mov edx, edi
lea rcx, str.U_04X
call fcn.1800d1420
add rsi, r14
cmp byte [rsi], r15b
jne 0x1800b7ec0
movaps xmm7, xmmword [rsp + 0x30]
mov r14, qword [rsp + 0x58]
mov r13, qword [rsp + 0x60]
mov r12, qword [rsp + 0x98]
call fcn.1800e3920
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