Function at 0x180102750
Capabilities:
Hash data with crc32

Disassembly:
push rbx
push rbp
sub rsp, 0xa8
mov rax, qword [0x1803320c0]
xor rax, rsp
mov qword [rsp + 0x90], rax
mov r8, qword [0x180338dd0]
lea rbp, [rcx + 0x74]
mov edx, dword [rcx + 8]
mov rbx, rcx
lea rcx, str.ID:_0x_08X__ActiveID:_0x_08X
mov r8d, dword [r8 + 0x14a4]
call fcn.1800f2750
mov ecx, dword [rbx + 8]
call fcn.1800ef7a0
mov eax, dword [rbx + 0x5c]
lea rcx, str.CurLenW:__d__CurLenA:__d__Cursor:__d__Selection:__d.._d
mov r9d, dword [rbx + 0x54]
mov r8d, dword [rbx + 0x10]
mov edx, dword [rbx + 0xc]
mov dword [rsp + 0x28], eax
mov eax, dword [rbx + 0x58]
mov dword [rsp + 0x20], eax
call fcn.1800f2750
movss xmm2, dword [rbx + 0x70]
lea rcx, str.has_preferred_x:__d___.2f_
movzx edx, byte [rbx + 0x6a]
cvtps2pd xmm2, xmm2
movq r8, xmm2
call fcn.1800f2750
mov eax, dword [rbp + 0x15d4]
lea rcx, str.undo_point:__d__redo_point:__d__undo_char_point:__d__redo_char_point:__d
movsx r8d, word [rbp + 0x15ce]
movsx edx, word [rbp + 0x15cc]
mov r9d, dword [rbp + 0x15d0]
mov dword [rsp + 0x20], eax
call fcn.1800f2750
mov rcx, qword [0x180338dd0]
mov dword [rsp + 0x40], 0
mov rax, qword [rcx + 0x1438]
movss xmm1, dword [rcx + 0x1158]
mulss xmm1, dword [0x1802f5418]
mov byte [rax + 0x101], 1
mov r10, qword [rcx + 0x1438]
movss dword [rsp + 0x44], xmm1
movsxd rax, dword [r10 + 0x138]
test eax, eax
jle 0x180102b4c
mov rcx, rax
lea rdx, [0x1802ed541]
mov rax, qword [r10 + 0x140]
lea r11, [0x180279e80]
mov r8b, 0x75
mov r9d, dword [rax + rcx*4 - 4]
not r9d
mov ebx, r9d
cmp r8b, 0x23
jne 0x180102888
cmp byte [rdx], r8b
jne 0x180102888
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 0x180102875
mov rax, qword [r10]
not ebx
cmp dword [rax + 0x148c], ebx
jne 0x1801028c5
lea r8, str.undopoints
mov edx, 0xb
mov ecx, ebx
call fcn.1800efbc0
mov r9d, 9
mov dword [rsp + 0x20], 0
lea r8, [rsp + 0x40]
mov edx, ebx
lea rcx, str.undopoints
call fcn.1800c0ff0
test al, al
je 0x180102b2d
mov qword [rsp + 0xc8], rsi
lea rdx, [rsp + 0x40]
mov qword [rsp + 0xd0], rdi
mov ecx, 0xe
mov qword [rsp + 0xa0], r14
mov qword [rsp + 0x40], 0
call fcn.1800b9110
xor esi, esi
mov rdi, rbp
mov r14d, 0x72
nop dword [rax]
movsx eax, word [rbp + 0x15cc]
cmp esi, eax
jge 0x18010293f
mov bl, 0x75
jmp 0x18010295a
movsx eax, word [rbp + 0x15ce]
mov ebx, 0x20
cmp esi, eax
cmovge ebx, r14d
jge 0x18010295a
mov cl, 1
call fcn.1800c84e0
xor eax, eax
mov byte [rsp + 0x50], 0
mov qword [rsp + 0x81], rax
xorps xmm0, xmm0
mov dword [rsp + 0x89], eax
mov word [rsp + 0x8d], ax
mov byte [rsp + 0x8f], al
movups xmmword [rsp + 0x51], xmm0
movups xmmword [rsp + 0x61], xmm0
movups xmmword [rsp + 0x71], xmm0
cmp bl, 0x20
je 0x180102abe
movsxd rax, dword [rdi + 0xc]
cmp eax, 0xffffffff
je 0x180102abe
mov rcx, rax
lea r9, [rbp + 0x630]
movsxd rax, dword [rdi + 4]
lea r8, [rbp + 0x630]
add rax, rcx
lea rdx, [rsp + 0x50]
lea r8, [r8 + rcx*4]
lea r9, [r9 + rax*4]
nop dword [rax]
test r9, r9
je 0x1801029de
cmp r8, r9
jae 0x180102abb
mov ecx, dword [r8]
test ecx, ecx
je 0x180102abb
add r8, 4
cmp ecx, 0x80
jae 0x180102a01
mov byte [rdx], cl
mov eax, 1
jmp 0x180102aa7
lea rax, [rsp + 0x8f]
sub eax, edx
cmp ecx, 0x800
jae 0x180102a35
cmp eax, 2
jl 0x180102aa5
mov eax, ecx
and cl, 0x3f
shr eax, 6
sub al, 0x40
add cl, 0x80
mov byte [rdx], al
mov byte [rdx + 1], cl
mov eax, 2
jmp 0x180102aa7
cmp ecx, 0x10000
jae 0x180102a67
cmp eax, 3
jl 0x180102aa5
mov eax, ecx
shr eax, 0xc
sub al, 0x20
mov byte [rdx], al
mov eax, ecx
shr eax, 6
and cl, 0x3f
and al, 0x3f
add al, 0x80
add cl, 0x80
mov byte [rdx + 1], al
mov byte [rdx + 2], cl
mov eax, 3
jmp 0x180102aa7
cmp ecx, 0x10ffff
ja 0x180102aa5
cmp eax, 4
jl 0x180102aa5
mov eax, ecx
shr eax, 0x12
sub al, 0x10
mov byte [rdx], al
mov eax, ecx
shr eax, 0xc
and al, 0x3f
add al, 0x80
mov byte [rdx + 1], al
mov eax, ecx
shr eax, 6
and cl, 0x3f
and al, 0x3f
add al, 0x80
add cl, 0x80
mov byte [rdx + 2], al
mov byte [rdx + 3], cl
mov eax, 4
jmp 0x180102aa7
xor eax, eax
add rdx, rax
lea rax, [rsp + 0x8f]
cmp rdx, rax
jb 0x1801029d0
mov byte [rdx], 0
mov r9d, dword [rdi]
lea rax, [rsp + 0x50]
mov qword [rsp + 0x38], rax
lea rcx, str._c___02d__where__03d__insert__03d__delete__03d__char_storage__03d___s_
mov eax, dword [rdi + 0xc]
mov r8d, esi
mov dword [rsp + 0x30], eax
mov eax, dword [rdi + 8]
mov dword [rsp + 0x28], eax
mov eax, dword [rdi + 4]
movzx edx, bl
mov dword [rsp + 0x20], eax
call fcn.1800f2750
cmp bl, 0x20
jne 0x180102afc
call fcn.1800c8590
inc esi
add rdi, 0x10
cmp esi, 0x63
jl 0x180102930
mov r14, qword [rsp + 0xa0]
mov ecx, 1
mov rdi, qword [rsp + 0xd0]
mov rsi, qword [rsp + 0xc8]
call fcn.1800b91c0
call fcn.1800c1360
mov rcx, qword [rsp + 0x90]
xor rcx, rsp
call fcn.1801e5610
add rsp, 0xa8
pop rbp
pop rbx
ret
lea rcx, str.Size___0
call fcn.1800add40
int3