Function at 0x18006ad10
Capabilities:
Encrypt data using speck

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0x298
movdqa xmmword [rsp + 0x280], xmm15
movdqa xmmword [rsp + 0x270], xmm14
movdqa xmmword [rsp + 0x260], xmm13
movdqa xmmword [rsp + 0x250], xmm12
movdqa xmmword [rsp + 0x240], xmm11
movdqa xmmword [rsp + 0x230], xmm10
movdqa xmmword [rsp + 0x220], xmm9
movdqa xmmword [rsp + 0x210], xmm8
movdqa xmmword [rsp + 0x200], xmm7
movaps xmmword [rsp + 0x1f0], xmm6
mov rsi, r9
mov r14, r8
mov qword [rsp + 0x38], rdx
mov rdi, rcx
mov r15, qword [rsp + 0x300]
test r9, r9
je 0x18006aed5
lea rax, [r14 + rsi]
xor edx, edx
movdqa xmm0, xmmword [0x1801a8ea0]
mov rcx, r14
jmp 0x18006adcf
xor r9d, r9d
mov rdx, r9
cmp rcx, rax
je 0x18006bbfb
movzx r10d, byte [rcx]
movzx r8d, r10b
test r8b, r8b
js 0x18006adf0
inc rcx
cmp r8d, 0x2e
je 0x18006adc0
jmp 0x18006ae80
mov r9d, r8d
and r9d, 0x1f
movzx r11d, byte [rcx + 1]
and r11d, 0x3f
cmp r8b, 0xdf
jbe 0x18006ae4a
movzx r8d, byte [rcx + 2]
shl r11d, 6
and r8d, 0x3f
or r8d, r11d
cmp r10b, 0xf0
jb 0x18006ae63
movzx r10d, byte [rcx + 3]
add rcx, 4
and r9d, 7
shl r9d, 0x12
shl r8d, 6
and r10d, 0x3f
or r10d, r8d
or r10d, r9d
mov r8d, r10d
cmp r8d, 0x2e
je 0x18006adc0
jmp 0x18006ae80
add rcx, 2
shl r9d, 6
or r9d, r11d
mov r8d, r9d
cmp r8d, 0x2e
jne 0x18006ae80
jmp 0x18006adc0
add rcx, 3
shl r9d, 0xc
or r8d, r9d
cmp r8d, 0x2e
je 0x18006adc0
nop dword [rax + rax]
test rdx, rdx
jne 0x18006ae8b
cmp r8d, 0x2d
je 0x18006aed5
mov r9d, 5
cmp rdx, 5
jae 0x18006aeba
movdqa xmmword [rsp + 0x40], xmm0
cmp rdx, 4
je 0x18006bd2e
cmp r8d, dword [rsp + rdx*4 + 0x40]
jne 0x18006aeba
inc rdx
mov r9, rdx
cmp rdx, 4
je 0x18006aed5
lea edx, [r8 - 0x7b]
cmp edx, 0xffffffe5
ja 0x18006adc3
add r8d, 0xffffffc6
cmp r8d, 0xfffffff6
jae 0x18006adc3
mov qword [rsp + 0x128], rdi
mov r8, qword [rsp + 0x38]
mov eax, dword [r8 + 0x30]
movzx ecx, byte [r8 + 0x34]
add rsi, r14
xorps xmm6, xmm6
movups xmmword [rsp + 0xa8], xmm6
mov byte [rsp + 0xb8], 0
mov qword [rsp + 0x40], 0
mov dword [rsp + 0x50], 0
mov word [rsp + 0x54], 0
mov byte [rsp + 0x58], 0
mov dword [rsp + 0x5c], 0
mov byte [rsp + 0x60], 0
mov dword [rsp + 0x64], 0
mov byte [rsp + 0x68], 0
mov dword [rsp + 0x6c], 0
mov byte [rsp + 0x70], 0
mov dword [rsp + 0x74], 0
mov qword [rsp + 0x78], r14
mov qword [rsp + 0x80], rsi
lea rdx, [rsp + 0xf0]
mov qword [rsp + 0x88], rdx
mov qword [rsp + 0x90], 0
mov byte [rsp + 0xa4], cl
shl rcx, 0x20
or rcx, rax
mov qword [rsp + 0x30], rcx
mov qword [r8 + 0x10], 0
mov dword [rsp + 0xf8], 0
mov qword [rsp + 0xf0], 0
mov rcx, qword [r15 + 0x10]
mov qword [rsp + 0x120], rcx
movups xmmword [rsp + 0x1a2], xmm6
lea r12, [rsp + 0x50]
mov dword [rsp + 0xa0], eax
mov dword [rsp + 0xc0], 0
mov word [rsp + 0xc4], 0
movzx eax, word [rsp + 0x1b0]
mov word [rsp + 0xd6], ax
movdqu xmm0, xmmword [rsp + 0x1a0]
movdqu xmmword [rsp + 0xc6], xmm0
mov dword [rsp + 0xe0], 0x110000
mov byte [rsp + 0xe4], 0
lea r15, [0x1801edf48]
mov ebp, 0xff
lea r14, [0x1801f1a18]
xor edx, edx
mov ebx, dword [rsp + 0xc0]
mov r13, qword [rsp + 0xc8]
test ebx, ebx
je 0x18006b070
test rdx, rdx
je 0x18006b12b
mov rcx, qword [rsp + 0xd8]
cmp rdx, 1
jne 0x18006bb43
cmp rax, rcx
jb 0x18006bb83
mov qword [rsp + 0xd8], 0
jmp 0x18006b0b4
test rdx, rdx
je 0x18006b12b
movzx r8d, word [rsp + 0xc4]
movzx ecx, r8w
cmp rdx, 1
jne 0x18006bb4d
cmp r8w, 4
ja 0x18006dd9b
cmp rax, rcx
jb 0x18006bb7b
test r8w, r8w
je 0x18006b0b4
mov word [rsp + 0xc4], 0
mov qword [rsp + 0x40], 0
jmp 0x18006b12b
mov edi, esi
mov eax, 0xdee95c4d
imul rdi, rax
shr rdi, 0x29
lea edx, [rdi + 0x1100]
mov rcx, r12
call fcn.18006ee90
imul eax, edi, 0x24c
mov ecx, esi
sub ecx, eax
imul eax, ecx, 0x925
shr eax, 0x10
add eax, 0x1161
movzx edx, ax
mov rcx, r12
call fcn.18006ee90
mov eax, esi
shr eax, 2
imul rax, rax, 0x24924925
shr rax, 0x20
lea ecx, [rax + rax*8]
lea ecx, [rcx + rcx*2]
add ecx, eax
sub esi, ecx
je 0x18006b12b
add esi, 0x11a7
mov edx, esi
mov rcx, r12
call fcn.18006ee90
mov r9, qword [rsp + 0xb0]
test r9, r9
jne 0x18006b420
movzx r10d, byte [rsp + 0xa0]
cmp r10b, 2
je 0x18006b621
mov r8, qword [rsp + 0x90]
mov r13, qword [rsp + 0x78]
mov r11, qword [rsp + 0x80]
mov rax, qword [rsp + 0x88]
movzx esi, byte [rsp + 0xa1]
mov rbx, qword [rsp + 0x98]
test r8, r8
je 0x18006b196
cmp r8, rbx
jne 0x18006b8f8
mov qword [rsp + 0x90], 0
cmp r13, r11
je 0x18006b619
lea rcx, [r13 + 1]
mov qword [rsp + 0x78], rcx
movzx r8d, byte [r13]
movzx edx, r8b
test dl, dl
js 0x18006b1d0
mov r13, rcx
lea ecx, [rdx - 0x2d]
cmp ecx, 2
jae 0x18006b270
jmp 0x18006b481
mov ecx, edx
and ecx, 0x1f
lea rdi, [r13 + 2]
mov qword [rsp + 0x78], rdi
movzx r9d, byte [r13 + 1]
and r9d, 0x3f
cmp dl, 0xdf
jbe 0x18006b23e
lea rdi, [r13 + 3]
mov qword [rsp + 0x78], rdi
movzx edx, byte [r13 + 2]
shl r9d, 6
and edx, 0x3f
or edx, r9d
cmp r8b, 0xf0
jb 0x18006b256
lea r8, [r13 + 4]
mov qword [rsp + 0x78], r8
movzx r9d, byte [r13 + 3]
and ecx, 7
shl ecx, 0x12
shl edx, 6
and r9d, 0x3f
or r9d, edx
or r9d, ecx
mov r13, r8
mov edx, r9d
lea ecx, [rdx - 0x2d]
cmp ecx, 2
jae 0x18006b270
jmp 0x18006b481
shl ecx, 6
or ecx, r9d
mov r13, rdi
mov edx, ecx
lea ecx, [rdx - 0x2d]
cmp ecx, 2
jae 0x18006b270
jmp 0x18006b481
shl ecx, 0xc
or edx, ecx
mov r13, rdi
lea ecx, [rdx - 0x2d]
cmp ecx, 2
jb 0x18006b481
nop word [rax + rax]
cmp edx, 0x110000
je 0x18006b619
lea ecx, [rdx - 0x61]
cmp ecx, 0x1a
jb 0x18006b481
lea ecx, [rdx - 0x30]
cmp ecx, 0xa
jb 0x18006b481
mov r8d, 0x75a
xor r9d, r9d
mov ecx, 0x75a
jmp 0x18006b2b8
mov rcx, r8
sub r8, r9
jbe 0x18006b2ec
shr r8, 1
add r8, r9
xor edi, edi
cmp dword [r15 + r8*8], edx
setne dil
cmovb edi, ebp
cmp dil, 1
je 0x18006b2b0
movzx r9d, dil
cmp r9d, 0xff
jne 0x18006b2ff
inc r8
mov r9, r8
mov r8, rcx
sub r8, r9
ja 0x18006b2b8
dec r9
mov r8, r9
cmp r9, 0x759
ja 0x18006bcc6
movzx r9d, word [r15 + r8*8 + 4]
mov ecx, r9d
and ecx, 0x7fff
test r9w, r9w
js 0x18006b340
movzx r8d, word [r15 + r8*8]
mov r9d, edx
sub r9w, r8w
movzx r8d, cx
add r8d, r9d
movzx ecx, r8w
movzx r8d, r8w
cmp r8d, 0x1f73
jb 0x18006b351
jmp 0x18006bce0
movzx r8d, cx
cmp r8d, 0x1f73
jae 0x18006bcf3
movzx r9d, byte [r14 + rcx*4]
mov r8d, 0
cmp r9d, 1
je case.default.0x18006b377
mov r8d, r9d
lea r9, [0x18006e228]
movsxd r8, dword [r9 + r8*4]
add r8, r9
jmp r8
mov r8d, dword [rsp + 0x50]
lea r10, [rsp + 0x58]
mov rcx, qword [rsp + 0xa8]
test r8d, r8d
je 0x18006b682
mov rdx, qword [rsp + 0x58]
mov rax, qword [rsp + 0x68]
cmp rcx, rax
jb 0x18006b69d
jmp 0x18006bd06
cmp edx, 0x110000
je 0x18006b619
cmp byte [rsp + 0xb8], 0
je 0x18006b54b
cmp edx, 0x80
jb 0x18006b123
lea esi, [rdx - 0xac00]
cmp esi, 0x2ba4
jb 0x18006b0bf
imul ecx, edx, 0x9e3779b9
imul eax, edx, 0x31415926
xor ecx, eax
imul r8, rcx, 0xee4
shr r8, 0x1f
and r8d, 0xfffffffe
lea r9, [0x180220330]
movzx r8d, word [r8 + r9]
add r8d, edx
imul r8d, r8d, 0x9e3779b9
xor r8d, eax
imul r8, r8, 0xee4
shr r8, 0x1d
and r8d, 0xfffffff8
lea r9, [0x1802220f8]
mov rsi, qword [r8 + r9]
cmp edx, esi
jne 0x18006b98e
mov rax, rsi
shr rax, 0x20
movzx ecx, ax
movzx eax, ax
cmp eax, 0x1668
jae 0x18006dd6e
shr rsi, 0x30
mov edx, 0x1667
sub rdx, rcx
cmp rdx, rsi
jb 0x18006dd5d
lea rax, [0x180229818]
lea rbx, [rax + rcx*4]
test rsi, rsi
jne 0x18006ba0e
jmp 0x18006b12b
cmp edx, 0x80
jb 0x18006b123
lea esi, [rdx - 0xac00]
cmp esi, 0x2ba4
jb 0x18006b0bf
imul eax, edx, 0x9e3779b9
imul ecx, edx, 0x31415926
xor eax, ecx
imul rax, rax, 0x80d
shr rax, 0x20
lea r8, [0x180217ce8]
movzx eax, word [r8 + rax*2]
add eax, edx
imul eax, eax, 0x9e3779b9
xor eax, ecx
imul rax, rax, 0x80d
shr rax, 0x20
lea rcx, [0x180218d04]
mov rsi, qword [rcx + rax*8]
cmp edx, esi
jne 0x18006b123
mov rax, rsi
shr rax, 0x20
movzx ecx, ax
movzx eax, ax
cmp eax, 0xd4f
jae 0x18006dd41
shr rsi, 0x30
mov edx, 0xd4e
sub rdx, rcx
cmp rdx, rsi
jb 0x18006dd54
test rsi, rsi
je 0x18006b12b
lea rax, [0x18021cd6c]
lea rbx, [rax + rcx*4]
shl rsi, 2
xor edi, edi
nop dword [rax]
mov edx, dword [rbx + rdi]
mov rcx, r12
call fcn.18006ee90
add rdi, 4
cmp rsi, rdi
jne 0x18006b600
jmp 0x18006b12b
mov byte [rsp + 0xa0], 2
cmp dword [rsp + 0x50], 0
je 0x18006b637
mov rax, qword [rsp + 0x68]
test rax, rax
jne 0x18006b645
jmp 0x18006bad0
movzx eax, word [rsp + 0x54]
test rax, rax
je 0x18006bad0
mov rcx, r12
call fcn.18006e5b0
mov r8d, dword [rsp + 0x50]
test r8d, r8d
je 0x18006b65e
mov r9, qword [rsp + 0x68]
jmp 0x18006b664
movzx r9d, word [rsp + 0x54]
mov qword [rsp + 0xb0], r9
lea r10, [rsp + 0x58]
mov rcx, qword [rsp + 0xa8]
test r8d, r8d
jne 0x18006b43b
movzx eax, word [rsp + 0x54]
cmp rax, 5
jae 0x18006dd11
mov rdx, r10
cmp rcx, rax
jae 0x18006bd06
mov r13d, dword [rdx + rcx*8 + 4]
inc rcx
cmp rcx, r9
jne 0x18006b760
test r8d, r8d
je 0x18006b76a
mov rdx, qword [rsp + 0x68]
sub rdx, r9
je 0x18006b778
xor ecx, ecx
nop word [rax + rax]
mov rax, qword [rsp + 0xb0]
add rax, rcx
cmp dword [rsp + 0x50], 0
je 0x18006b700
mov r9, qword [rsp + 0x68]
cmp rax, r9
jae 0x18006bca1
mov r8, qword [rsp + 0x58]
jmp 0x18006b71c
movzx r9d, word [rsp + 0x54]
cmp r9, 5
jae 0x18006ce9c
mov r8, r10
cmp rax, r9
jae 0x18006bca1
cmp rcx, r9
jae 0x18006bcb5
movzx r9d, byte [r8 + rax*8]
mov eax, dword [r8 + rax*8 + 4]
mov byte [r8 + rcx*8], r9b
mov dword [r8 + rcx*8 + 4], eax
lea rax, [rcx + 1]
mov rcx, rax
cmp rdx, rax
jne 0x18006b6d0
mov r8d, dword [rsp + 0x50]
test r8d, r8d
jne 0x18006b77d
movzx eax, word [rsp + 0x54]
cmp rdx, rax
jae 0x18006b789
mov word [rsp + 0x54], dx
jmp 0x18006b789
mov qword [rsp + 0xa8], rcx
jmp 0x18006b794
movzx edx, word [rsp + 0x54]
sub rdx, r9
jne 0x18006b6c5
test r8d, r8d
je 0x18006b74e
cmp qword [rsp + 0x68], rdx
jb 0x18006b789
mov qword [rsp + 0x68], rdx
lea rax, [rsp + 0xa8]
movups xmmword [rax], xmm6
imul eax, r13d, 0x9e3779b9
imul ecx, r13d, 0x31415926
xor eax, ecx
imul rax, rax, 0x39a
shr rax, 0x1f
and eax, 0xfffffffe
lea rdx, [0x18021430c]
movzx eax, word [rax + rdx]
add eax, r13d
imul eax, eax, 0x9e3779b9
xor eax, ecx
imul rax, rax, 0x39a
shr rax, 0x1e
and eax, 0xfffffffc
lea rcx, [0x180214a40]
mov ebx, dword [rax + rcx]
mov eax, ebx
shr eax, 8
cmp eax, r13d
mov eax, 0
cmovne ebx, eax
mov esi, dword [rsp + 0xe0]
cmp esi, 0x110000
jne 0x18006b820
test bl, bl
jne 0x18006bac0
mov dword [rsp + 0xe0], r13d
jmp 0x18006b12b
cmp byte [rsp + 0xe4], 0
je 0x18006b850
cmp byte [rsp + 0xe5], bl
jae 0x18006b86e
mov ecx, esi
mov edx, r13d
call fcn.180142d70
cmp eax, 0x110000
je 0x18006b876
mov dword [rsp + 0xe0], eax
jmp 0x18006b12b
mov ecx, esi
mov edx, r13d
call fcn.180142d70
cmp eax, 0x110000
jne 0x18006b982
test bl, bl
jne 0x18006b876
jmp 0x18006bb36
test bl, bl
je 0x18006bb0f
cmp dword [rsp + 0xc0], 0
je 0x18006b8c0
mov rdx, qword [rsp + 0xd8]
cmp rdx, qword [rsp + 0xd0]
jne 0x18006b8a7
lea rcx, [rsp + 0xc8]
call fcn.18006f070
mov rdx, qword [rsp + 0xd8]
mov rax, qword [rsp + 0xc8]
mov dword [rax + rdx*4], r13d
inc rdx
mov qword [rsp + 0xd8], rdx
jmp 0x18006b8e4
movzx eax, word [rsp + 0xc4]
cmp rax, 3
ja 0x18006ba50
mov dword [rsp + rax*4 + 0xc8], r13d
inc eax
mov word [rsp + 0xc4], ax
mov byte [rsp + 0xe4], 1
mov byte [rsp + 0xe5], bl
jmp 0x18006b12b
lea rax, [r8 + 1]
mov qword [rsp + 0x90], rax
movzx ecx, byte [r8]
movzx edx, cl
test dl, dl
jns 0x18006b481
mov eax, edx
and eax, 0x1f
lea r9, [r8 + 2]
mov qword [rsp + 0x90], r9
movzx r9d, byte [r8 + 1]
and r9d, 0x3f
cmp dl, 0xdf
jbe 0x18006ba39
lea rdx, [r8 + 3]
mov qword [rsp + 0x90], rdx
movzx edx, byte [r8 + 2]
shl r9d, 6
and edx, 0x3f
or edx, r9d
cmp cl, 0xf0
jb 0x18006ba46
lea rcx, [r8 + 4]
mov qword [rsp + 0x90], rcx
movzx ecx, byte [r8 + 3]
and eax, 7
shl eax, 0x12
shl edx, 6
and ecx, 0x3f
or ecx, edx
or ecx, eax
mov edx, ecx
jmp 0x18006b481
mov dword [rsp + 0xe0], eax
jmp 0x18006b12b
imul rcx, rcx, 0x80d
shr rcx, 0x20
lea r8, [0x180217ce8]
movzx ecx, word [r8 + rcx*2]
add ecx, edx
imul ecx, ecx, 0x9e3779b9
xor ecx, eax
imul rax, rcx, 0x80d
shr rax, 0x20
lea rcx, [0x180218d04]
mov rsi, qword [rcx + rax*8]
cmp edx, esi
jne 0x18006b123
mov rax, rsi
shr rax, 0x20
movzx ecx, ax
movzx eax, ax
cmp eax, 0xd4f
jae 0x18006dd41
shr rsi, 0x30
mov edx, 0xd4e
sub rdx, rcx
cmp rdx, rsi
jb 0x18006dd54
lea rax, [0x18021cd6c]
lea rbx, [rax + rcx*4]
test rsi, rsi
je 0x18006b12b
shl rsi, 2
xor edi, edi
nop word cs:[rax + rax]
mov edx, dword [rbx + rdi]
mov rcx, r12
call fcn.18006ee90
add rdi, 4
cmp rsi, rdi
jne 0x18006ba20
jmp 0x18006b12b
shl eax, 6
or eax, r9d
mov edx, eax
jmp 0x18006b481
shl eax, 0xc
or edx, eax
jmp 0x18006b481
lea rcx, [rsp + 0x138]
lea rdx, [rsp + 0xc4]
mov r8d, r13d
call fcn.18019d450
cmp dword [rsp + 0xc0], 0
je 0x18006ba94
cmp qword [rsp + 0xd0], 0
je 0x18006ba94
mov r8, qword [rsp + 0xc8]
mov rcx, qword [0x180246f98]
xor edx, edx
call qword [sym.imp.KERNEL32.dll_HeapFree]
movdqu xmm0, xmmword [rsp + 0x138]
movdqu xmm1, xmmword [rsp + 0x148]
lea rax, [rsp + 0xa8]
movdqu xmmword [rax + 0x28], xmm1
movdqu xmmword [rax + 0x18], xmm0
jmp 0x18006b8e4
mov esi, r13d
jmp 0x18006bbe0
mov qword [rsp + 0x40], 2
mov qword [rsp + 0x48], 0
mov esi, dword [rsp + 0xe0]
mov edx, 2
mov eax, 0
cmp esi, 0x110000
je 0x18006b027
mov dword [rsp + 0xe0], 0x110000
jmp 0x18006bbe0
mov dword [rsp + 0xe0], r13d
mov byte [rsp + 0xe4], 0
mov qword [rsp + 0x40], 1
mov qword [rsp + 0x48], 0
jmp 0x18006bbe0
mov dword [rsp + 0xe0], r13d
jmp 0x18006bbe0
cmp rax, rcx
jae 0x18006bb9b
mov rdx, r13
jmp 0x18006bb65
cmp r8w, 5
jae 0x18006dd9b
lea rdx, [rsp + 0xc8]
cmp rax, rcx
jae 0x18006bba9
mov esi, dword [rdx + rax*4]
inc rax
mov qword [rsp + 0x40], 2
mov qword [rsp + 0x48], rax
jmp 0x18006bbe0
lea r13, [rsp + 0xc8]
mov esi, dword [r13 + rax*4]
inc rax
mov qword [rsp + 0x40], 1
mov qword [rsp + 0x48], rax
jmp 0x18006bbe0
mov qword [rsp + 0xd8], 0
jmp 0x18006bbb9
test r8w, r8w
je 0x18006bbb9
mov word [rsp + 0xc4], 0
mov esi, dword [rsp + 0xe0]
mov dword [rsp + 0xe0], 0x110000
cmp esi, 0x110000
je 0x18006bd46
nop word [rax + rax]
mov rcx, qword [rsp + 0x38]
mov edx, esi
call fcn.18000c8b0
mov rdx, qword [rsp + 0x40]
mov rax, qword [rsp + 0x48]
jmp 0x18006b027
mov rax, qword [r15 + 8]
mov rbx, qword [r15 + 0x10]
sub rax, rbx
cmp rax, rsi
jb 0x18006bd17
mov rcx, qword [r15]
add rcx, rbx
mov rdx, r14
mov r8, rsi
call fcn.180199330
add rbx, rsi
mov qword [r15 + 0x10], rbx
mov qword [rdi], 0
mov dword [rdi + 8], 0
movaps xmm6, xmmword [rsp + 0x1f0]
movaps xmm7, xmmword [rsp + 0x200]
movaps xmm8, xmmword [rsp + 0x210]
movaps xmm9, xmmword [rsp + 0x220]
movaps xmm10, xmmword [rsp + 0x230]
movaps xmm11, xmmword [rsp + 0x240]
movaps xmm12, xmmword [rsp + 0x250]
movaps xmm13, xmmword [rsp + 0x260]
movaps xmm14, xmmword [rsp + 0x270]
movaps xmm15, xmmword [rsp + 0x280]
add rsp, 0x298
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret
lea r8, str.C:UsersDadoodze.cargo_registry_srcindex.crates.io_6f17d22bba15001funicode_normalization_0.1.22_srcdecompose.rs
mov rcx, rax
mov rdx, r9
call fcn.18019ac00
ud2
lea r8, str.C:UsersDadoodze.cargo_registry_srcindex.crates.io_6f17d22bba15001funicode_normalization_0.1.22_srcdecompose.rs
mov rdx, r9
call fcn.18019ac00
ud2
lea r8, str.C:UsersDadoodze.cargo_registry_srcindex.crates.io_6f17d22bba15001fidna_0.3.0_srcuts46.rs
mov edx, 0x75a
mov rcx, 0xffffffffffffffff
call fcn.18019ac00
ud2
lea r8, str.C:UsersDadoodze.cargo_registry_srcindex.crates.io_6f17d22bba15001fidna_0.3.0_srcuts46.rs
mov edx, 0x1f73
call fcn.18019ac00
ud2
lea r8, str.C:UsersDadoodze.cargo_registry_srcindex.crates.io_6f17d22bba15001fidna_0.3.0_srcuts46.rs
mov edx, 0x1f73
call fcn.18019ac00
ud2
lea r8, str.C:UsersDadoodze.cargo_registry_srcindex.crates.io_6f17d22bba15001funicode_normalization_0.1.22_srcdecompose.rs
mov rdx, rax
call fcn.18019ac00
ud2
mov rcx, r15
mov rdx, rbx
mov r8, rsi
call fcn.18019b9e0
mov rbx, qword [r15 + 0x10]
jmp 0x18006bc0f
lea r8, str.C:UsersDadoodze.cargo_registry_srcindex.crates.io_6f17d22bba15001fidna_0.3.0_srcuts46.rs
mov ecx, 4
mov edx, 4
call fcn.18019ac00
ud2
cmp dword [rsp + 0x50], 0
je 0x18006bd69
cmp qword [rsp + 0x60], 0
je 0x18006bd69
mov r8, qword [rsp + 0x58]
mov rcx, qword [0x180246f98]
xor edx, edx
call qword [sym.imp.KERNEL32.dll_HeapFree]
test ebx, ebx
mov r15, qword [rsp + 0x300]
je 0x18006bd92
cmp qword [rsp + 0xd0], 0
je 0x18006bd92
mov rcx, qword [0x180246f98]
xor edx, edx
mov r8, r13
call qword [sym.imp.KERNEL32.dll_HeapFree]
mov qword [rsp + 0x188], 8
xorps xmm6, xmm6
movups xmmword [rsp + 0x190], xmm6
mov rcx, qword [rsp + 0x38]
mov rax, qword [rcx]
mov rcx, qword [rcx + 0x10]
mov qword [rsp + 0x138], 0
mov qword [rsp + 0x140], rcx
mov qword [rsp + 0x148], rax
mov qword [rsp + 0x150], rcx
mov qword [rsp + 0x158], 0
mov qword [rsp + 0x160], rcx
mov qword [rsp + 0x168], 1
movabs rax, 0x2e0000002e
mov qword [rsp + 0x170], rax
mov word [rsp + 0x178], 1
mov rbx, qword [rsp + 0x30]
mov rax, rbx
and rax, 0xffffffffffff00ff
mov qword [rsp + 0x118], rax
xor edi, edi
lea rbp, [0x18020ff44]
mov r12d, 0xff
movdqa xmm11, xmmword [0x1801a8ef0]
movdqa xmm12, xmmword [0x1801a8c00]
movdqa xmm13, xmmword [0x1801a8f00]
movdqa xmm14, xmmword [0x1801a8f10]
movdqa xmm15, xmmword [0x1801a8f20]
movdqa xmm7, xmmword [0x1801a8f30]
movdqa xmm8, xmmword [0x1801a8f40]
movdqa xmm9, xmmword [0x1801a8f50]
movdqa xmm10, xmmword [0x1801a8f60]
mov dword [rsp + 0x2c], 0
jmp 0x18006bee1
mov dword [rsp + 0x2c], 0
mov rcx, r14
mov rdx, rsi
mov r8, rbx
lea r9, [rsp + 0xf0]
call fcn.18006fa40
mov rax, qword [r15 + 8]
mov r13, qword [r15 + 0x10]
sub rax, r13
cmp rax, rsi
jb 0x18006c33a
mov rcx, qword [r15]
add rcx, r13
mov rdx, r14
mov r8, rsi
call fcn.180199330
add rsi, r13
mov qword [r15 + 0x10], rsi
mov dil, 1
lea rcx, [rsp + 0x138]
call fcn.18006e250
test rax, rax
je 0x18006ce74
mov r14, rax
mov rsi, rdx
test dil, 1
je 0x18006bf27
mov rdx, qword [r15 + 0x10]
cmp rdx, qword [r15 + 8]
jne 0x18006bf19
mov rcx, r15
call fcn.18006aa40
mov rdx, qword [r15 + 0x10]
mov rax, qword [r15]
mov byte [rax + rdx], 0x2e
inc rdx
mov qword [r15 + 0x10], rdx
cmp rsi, 4
jb 0x18006bf3a
cmp dword [r14], 0x2d2d6e78
je 0x18006c07b
test byte [rsp + 0x2c], 1
jne 0x18006be9c
test rsi, rsi
je 0x18006be94
mov rax, r14
add rax, rsi
mov rcx, r14
jmp 0x18006bf62
cmp rcx, rax
je 0x18006be94
movzx r9d, byte [rcx]
movzx edx, r9b
test dl, dl
js 0x18006bf73
inc rcx
jmp 0x18006bfda
mov r8d, edx
and r8d, 0x1f
movzx r10d, byte [rcx + 1]
and r10d, 0x3f
cmp dl, 0xdf
jbe 0x18006bfbf
movzx edx, byte [rcx + 2]
shl r10d, 6
and edx, 0x3f
or edx, r10d
cmp r9b, 0xf0
jb 0x18006bfcf
movzx r9d, byte [rcx + 3]
add rcx, 4
and r8d, 7
shl r8d, 0x12
shl edx, 6
and r9d, 0x3f
or r9d, edx
or r9d, r8d
mov edx, r9d
jmp 0x18006bfda
add rcx, 2
shl r8d, 6
or r8d, r10d
mov edx, r8d
jmp 0x18006bfda
add rcx, 3
shl r8d, 0xc
or edx, r8d
lea r8d, [rdx - 0x21]
cmp r8d, 0x5e
jb 0x18006bf59
mov r8d, 0x5a6
xor r10d, r10d
mov r9d, 0x5a6
jmp 0x18006c00c
mov r9, r8
sub r8, r10
jbe 0x18006bf59
shr r8, 1
add r8, r10
lea r11, [r8 + r8*2]
xor edi, edi
cmp dword [rbp + r11*4], edx
seta dil
cmp dword [rbp + r11*4 + 4], edx
cmovb edi, r12d
cmp dil, 1
je 0x18006c000
movzx r10d, dil
cmp r10d, 0xff
jne 0x18006c050
inc r8
mov r10, r8
mov r8, r9
sub r8, r10
ja 0x18006c00c
jmp 0x18006bf59
movzx edx, byte [rbp + r11*4 + 8]
cmp rdx, 0x11
ja 0x18006bf59
mov r8d, 0x20003
bt r8, rdx
jae 0x18006bf59
mov al, 1
mov dword [rsp + 0x2c], eax
jmp 0x18006be9c
add r14, 4
add rsi, 0xfffffffffffffffc
lea rcx, [rsp + 0x1a0]
lea rdx, [rsp + 0x188]
mov r8, r14
mov r9, rsi
call fcn.180069860
mov rdi, qword [rsp + 0x1a0]
test rdi, rdi
je 0x18006c324
mov rax, qword [rsp + 0x1a8]
mov qword [rsp + 0x108], rax
mov r9, qword [rsp + 0x1b0]
mov rax, qword [rsp + 0x1b8]
mov qword [rsp + 0x100], rax
mov r13, qword [rsp + 0x1c0]
mov rbx, qword [rsp + 0x1c8]
mov r8, qword [rsp + 0x1d0]
mov rax, qword [r15 + 8]
mov rcx, qword [r15 + 0x10]
sub r8, rbx
mov qword [rsp + 0x110], rcx
sub rax, rcx
cmp rax, r8
mov qword [rsp + 0xe8], r9
jb 0x18006c351
test r9, r9
je 0x18006c377
mov r15, qword [rsp + 0x108]
cmp r13, qword [rsp + 0x100]
jb 0x18006c13b
cmp rdi, r15
jne 0x18006c15b
jmp 0x18006c39a
mov rax, r13
shl rax, 4
cmp rbx, qword [r9 + rax]
jne 0x18006c152
inc r13
mov esi, dword [r9 + rax + 8]
jmp 0x18006c1c0
cmp rdi, r15
je 0x18006ce70
movzx ecx, byte [rdi]
movzx esi, cl
test sil, sil
js 0x18006c16b
inc rdi
jmp 0x18006c1c0
mov eax, esi
and eax, 0x1f
movzx edx, byte [rdi + 1]
and edx, 0x3f
cmp sil, 0xdf
jbe 0x18006c1aa
movzx esi, byte [rdi + 2]
shl edx, 6
and esi, 0x3f
or esi, edx
cmp cl, 0xf0
jb 0x18006c1b7
movzx ecx, byte [rdi + 3]
add rdi, 4
and eax, 7
shl eax, 0x12
shl esi, 6
and ecx, 0x3f
or ecx, esi
or ecx, eax
mov esi, ecx
jmp 0x18006c1c0
add rdi, 2
shl eax, 6
or eax, edx
mov esi, eax
jmp 0x18006c1c0
add rdi, 3
shl eax, 0xc
or esi, eax
cmp esi, 0x80
jae 0x18006c212
mov r14, qword [rsp + 0x300]
mov rdx, qword [r14 + 0x10]
cmp rdx, qword [r14 + 8]
jne 0x18006c1ee
mov rcx, r14
call fcn.18006aa40
mov r9, qword [rsp + 0xe8]
mov rdx, qword [r14 + 0x10]
mov rax, qword [r14]
mov byte [rax + rdx], sil
inc rdx
mov qword [r14 + 0x10], rdx
inc rbx
cmp r13, qword [rsp + 0x100]
jb 0x18006c13b
jmp 0x18006c131
mov dword [rsp + 0x40], 0
mov eax, esi
cmp esi, 0x800
jae 0x18006c241
shr eax, 6
or al, 0xc0
mov byte [rsp + 0x40], al
and sil, 0x3f
or sil, 0x80
mov byte [rsp + 0x41], sil
mov esi, 2
jmp 0x18006c2a8
cmp esi, 0x10000
jae 0x18006c273
shr eax, 0xc
or al, 0xe0
mov byte [rsp + 0x40], al
mov eax, esi
shr eax, 6
and al, 0x3f
or al, 0x80
mov byte [rsp + 0x41], al
and sil, 0x3f
or sil, 0x80
mov byte [rsp + 0x42], sil
mov esi, 3
jmp 0x18006c2a8
shr eax, 0x12
or al, 0xf0
mov byte [rsp + 0x40], al
mov eax, esi
shr eax, 0xc
and al, 0x3f
or al, 0x80
mov byte [rsp + 0x41], al
mov eax, esi
shr eax, 6
and al, 0x3f
or al, 0x80
mov byte [rsp + 0x42], al
and sil, 0x3f
or sil, 0x80
mov byte [rsp + 0x43], sil
mov esi, 4
mov rcx, qword [rsp + 0x300]
mov rax, qword [rcx + 8]
mov r14, qword [rcx + 0x10]
sub rax, r14
cmp rax, rsi
jb 0x18006c308
mov r15, qword [rsp + 0x300]
mov rcx, qword [r15]
add rcx, r14
lea rdx, [rsp + 0x40]
mov r8, rsi
call fcn.180199330
add r14, rsi
mov qword [r15 + 0x10], r14
inc rbx
mov r15, qword [rsp + 0x108]
mov r9, qword [rsp + 0xe8]
cmp r13, qword [rsp + 0x100]
jae 0x18006c131
jmp 0x18006c13b
mov r15, qword [rsp + 0x300]
mov rcx, r15
mov rdx, r14
mov r8, rsi
call fcn.18019b9e0
mov r14, qword [r15 + 0x10]
jmp 0x18006c2c0
mov byte [rsp + 0xf0], 1
mov al, 1
mov dword [rsp + 0x2c], eax
mov dil, 1
jmp 0x18006bee1
mov rcx, r15
mov rdx, r13
mov r8, rsi
call fcn.18019b9e0
mov r13, qword [r15 + 0x10]
jmp 0x18006bec6
mov rcx, qword [rsp + 0x300]
mov rdx, qword [rsp + 0x110]
call fcn.18019b9e0
mov r9, qword [rsp + 0xe8]
test r9, r9
jne 0x18006c11f
mov r15, qword [rsp + 0x108]
cmp rdi, r15
mov rbx, qword [rsp + 0x300]
jne 0x18006c3ee
cmp r13, qword [rsp + 0x100]
jb 0x18006ce72
mov r15, qword [rsp + 0x300]
mov r14, qword [r15]
mov rdx, qword [r15 + 0x10]
mov r8, qword [rsp + 0x110]
test r8, r8
je 0x18006c55c
mov rsi, rdx
sub rsi, r8
mov rbx, qword [rsp + 0x30]
jbe 0x18006c566
cmp byte [r14 + r8], 0xbf
jg 0x18006c56c
jmp 0x18006ddcf
mov rax, qword [rbx]
mov byte [rax + rdx], sil
inc rdx
mov qword [rbx + 0x10], rdx
cmp rdi, r15
je 0x18006c38c
movzx ecx, byte [rdi]
movzx esi, cl
test sil, sil
js 0x18006c3fe
inc rdi
jmp 0x18006c45b
mov eax, esi
and eax, 0x1f
movzx edx, byte [rdi + 1]
and edx, 0x3f
cmp sil, 0xe0
jb 0x18006c43d
movzx esi, byte [rdi + 2]
shl edx, 6
and esi, 0x3f
or esi, edx
cmp cl, 0xf0
jb 0x18006c44a
movzx ecx, byte [rdi + 3]
add rdi, 4
and eax, 7
shl eax, 0x12
shl esi, 6
and ecx, 0x3f
or ecx, esi
or ecx, eax
mov esi, ecx
jmp 0x18006c453
add rdi, 2
shl eax, 6
or eax, edx
mov esi, eax
jmp 0x18006c453
add rdi, 3
shl eax, 0xc
or esi, eax
cmp esi, 0x80
jae 0x18006c47a
mov rdx, qword [rbx + 0x10]
cmp rdx, qword [rbx + 8]
jne 0x18006c3db
mov rcx, rbx
call fcn.18006aa40
mov rdx, qword [rbx + 0x10]
jmp 0x18006c3db
mov dword [rsp + 0x40], 0
mov eax, esi
cmp esi, 0x800
jae 0x18006c4a9
shr eax, 6
or al, 0xc0
mov byte [rsp + 0x40], al
and sil, 0x3f
or sil, 0x80
mov byte [rsp + 0x41], sil
mov esi, 2
jmp 0x18006c510
cmp esi, 0x10000
jae 0x18006c4db
shr eax, 0xc
or al, 0xe0
mov byte [rsp + 0x40], al
mov eax, esi
shr eax, 6
and al, 0x3f
or al, 0x80
mov byte [rsp + 0x41], al
and sil, 0x3f
or sil, 0x80
mov byte [rsp + 0x42], sil
mov esi, 3
jmp 0x18006c510
shr eax, 0x12
or al, 0xf0
mov byte [rsp + 0x40], al
mov eax, esi
shr eax, 0xc
and al, 0x3f
or al, 0x80
mov byte [rsp + 0x41], al
mov eax, esi
shr eax, 6
and al, 0x3f
or al, 0x80
mov byte [rsp + 0x42], al
and sil, 0x3f
or sil, 0x80
mov byte [rsp + 0x43], sil
mov esi, 4
mov rax, qword [rbx + 8]
mov r14, qword [rbx + 0x10]
sub rax, r14
cmp rax, rsi
jb 0x18006c548
mov rcx, qword [rbx]
add rcx, r14
lea rdx, [rsp + 0x40]
mov r8, rsi
call fcn.180199330
add r14, rsi
mov qword [rbx + 0x10], r14
cmp rdi, r15
jne 0x18006c3ee
jmp 0x18006c38c
mov rcx, rbx
mov rdx, r14
mov r8, rsi
call fcn.18019b9e0
mov r14, qword [rbx + 0x10]
jmp 0x18006c520
mov rsi, rdx
mov rbx, qword [rsp + 0x30]
jmp 0x18006c56c
jne 0x18006ddcf
add r14, r8
test byte [rsp + 0x2c], 1
jne 0x18006c643
test rsi, rsi
je 0x18006c62c
lea rdi, [r14 + rsi]
mov rbx, r14
jmp 0x18006c595
cmp rbx, rdi
je 0x18006c636
movzx edx, byte [rbx]
movzx ecx, dl
test cl, cl
js 0x18006c5a4
inc rbx
jmp 0x18006c5fd
mov eax, ecx
and eax, 0x1f
movzx r8d, byte [rbx + 1]
and r8d, 0x3f
cmp cl, 0xdf
jbe 0x18006c5e6
movzx ecx, byte [rbx + 2]
shl r8d, 6
and ecx, 0x3f
or ecx, r8d
cmp dl, 0xf0
jb 0x18006c5f4
movzx edx, byte [rbx + 3]
add rbx, 4
and eax, 7
shl eax, 0x12
shl ecx, 6
and edx, 0x3f
or edx, ecx
or edx, eax
mov ecx, edx
jmp 0x18006c5fd
add rbx, 2
shl eax, 6
or eax, r8d
mov ecx, eax
jmp 0x18006c5fd
add rbx, 3
shl eax, 0xc
or ecx, eax
lea eax, [rcx - 0x21]
cmp eax, 0x5d
jbe 0x18006c58c
call fcn.180142c90
cmp al, 0x11
ja 0x18006c58c
movzx eax, al
mov ecx, 0x20003
bt rcx, rax
jae 0x18006c58c
mov al, 1
mov dword [rsp + 0x2c], eax
jmp 0x18006c63e
mov dword [rsp + 0x2c], 0
jmp 0x18006c643
mov dword [rsp + 0x2c], 0
mov rbx, qword [rsp + 0x30]
movq xmm0, qword [rsp + 0xf0]
movzx eax, byte [rsp + 0xf9]
pshufd xmm1, xmm0, 0x55
por xmm1, xmm0
movdqa xmm0, xmm1
psrld xmm0, 0x10
por xmm0, xmm1
movdqa xmm1, xmm0
psrlw xmm1, 8
por xmm1, xmm0
movd ecx, xmm1
or cl, byte [rsp + 0xf8]
or al, byte [rsp + 0xfa]
or al, cl
or al, byte [rsp + 0xfb]
jne 0x18006ce65
test rsi, rsi
je 0x18006ce3d
lea rdi, [r14 + rsi]
xor ebx, ebx
mov dword [rsp + 0x100], 0
mov r15, r14
movzx edx, byte [r15]
test dl, dl
js 0x18006c6c5
inc r15
jmp 0x18006c74e
movzx eax, dl
and eax, 0x1f
movzx r8d, byte [r15 + 1]
and r8d, 0x3f
cmp dl, 0xe0
jb 0x18006c718
movzx ecx, byte [r15 + 2]
shl r8d, 6
and ecx, 0x3f
or ecx, r8d
cmp dl, 0xf0
jb 0x18006c727
movzx r13d, byte [r15 + 3]
and eax, 7
shl eax, 0x12
shl ecx, 6
and r13d, 0x3f
or r13d, ecx
or r13d, eax
cmp r13d, 0x110000
je 0x18006cc4e
add r15, 4
jmp 0x18006c733
add r15, 2
shl eax, 6
or eax, r8d
mov r13d, eax
jmp 0x18006c733
add r15, 3
shl eax, 0xc
or ecx, eax
mov r13d, ecx
cmp r13d, 0x7f
jbe 0x18006c74e
jmp 0x18006c7dd
inc r15
cmp r13d, 0x80
jae 0x18006c7db
cmp r15, rdi
je 0x18006cc4e
movzx edx, byte [r15]
movzx r13d, dl
test r13b, r13b
jns 0x18006c73e
mov eax, r13d
and eax, 0x1f
movzx r8d, byte [r15 + 1]
and r8d, 0x3f
cmp r13b, 0xdf
jbe 0x18006c7b8
movzx ecx, byte [r15 + 2]
shl r8d, 6
and ecx, 0x3f
or ecx, r8d
cmp dl, 0xf0
jb 0x18006c7ca
movzx r13d, byte [r15 + 3]
and eax, 7
shl eax, 0x12
shl ecx, 6
and r13d, 0x3f
or r13d, ecx
or r13d, eax
cmp r13d, 0x110000
je 0x18006cc4e
add r15, 4
jmp 0x18006c741
add r15, 2
shl eax, 6
or eax, r8d
mov r13d, eax
jmp 0x18006c741
add r15, 3
shl eax, 0xc
or ecx, eax
mov r13d, ecx
jmp 0x18006c741
xor ebx, ebx
mov ecx, r13d
call fcn.180142d10
cmp bl, al
jbe 0x18006c7f1
test al, al
jne case.0x18006c9a3.3907
lea ecx, [r13 - 0x340]
cmp ecx, 4
ja 0x18006c806
cmp ecx, 2
jne case.0x18006c9a3.3907
cmp r13d, 0xd56
jg 0x18006c86c
cmp r13d, 0x9de
jg 0x18006c8b2
cmp r13d, 0x93b
jg 0x18006c9d1
lea ecx, [r13 - 0x30f]
cmp ecx, 0x36
ja 0x18006c849
movabs rdx, 0x48020000001005
bt rdx, rcx
jb 0x18006cac7
lea ecx, [r13 - 0x374]
cmp ecx, 0x13
ja case.0x18006c9a3.3908
mov edx, 0x80401
bt edx, ecx
jb case.0x18006c9a3.3907
jmp case.0x18006c9a3.3908
cmp r13d, 0x11126
jg 0x18006c918
cmp r13d, 0x102d
jle 0x18006c95e
cmp r13d, 0x1f70
jg 0x18006ca29
cmp r13d, 0x102e
je 0x18006cac7
cmp r13d, 0x1b35
je 0x18006cac7
jmp case.0x18006c9a3.3908
cmp r13d, 0xbd6
jg 0x18006c9a5
cmp r13d, 0xbbd
jg 0x18006cabe
lea ecx, [r13 - 0xb3e]
cmp ecx, 0x19
ja 0x18006c8e6
mov edx, 0x3000001
bt edx, ecx
jb 0x18006cac7
lea ecx, [r13 - 0xa33]
cmp ecx, 0x2b
ja 0x18006c906
movabs rdx, 0x80000000009
bt rdx, rcx
jb case.0x18006c9a3.3907
cmp r13d, 0x9df
jne case.0x18006c9a3.3908
jmp case.0x18006c9a3.3907
cmp r13d, 0x114af
jle 0x18006c9fd
lea ecx, [r13 - 0x114b0]
cmp ecx, 0xd
ja 0x18006c93f
mov edx, 0x2401
bt edx, ecx
jb 0x18006cac7
cmp r13d, 0x115af
je 0x18006cac7
cmp r13d, 0x11930
je 0x18006cac7
jmp case.0x18006c9a3.3908
lea ecx, [r13 - 0xdca]
cmp ecx, 0x15
ja 0x18006c978
mov edx, 0x200021
bt edx, ecx
jb 0x18006cac7
cmp r13d, 0xd57
je 0x18006cac7
lea ecx, [r13 - 0xf43]
cmp ecx, 0x76
ja case.0x18006c9a3.3908
lea rdx, [0x18006de18]
movsxd rcx, dword [rdx + rcx*4]
add rcx, rdx
jmp rcx
cmp r13d, 0xcc1
jg 0x18006ca82
cmp r13d, 0xbd7
je 0x18006cac7
cmp r13d, 0xc56
je 0x18006cac7
jmp case.0x18006c9a3.3908
cmp r13d, 0x93c
je 0x18006cac7
cmp r13d, 0x9be
je 0x18006cac7
cmp r13d, 0x9d7
je 0x18006cac7
jmp case.0x18006c9a3.3908
cmp r13d, 0x11127
je 0x18006cac7
cmp r13d, 0x1133e
je 0x18006cac7
cmp r13d, 0x11357
je 0x18006cac7
jmp case.0x18006c9a3.3908
cmp r13d, 0xfa0f
jle 0x18006ca96
cmp r13d, 0x110ba
je 0x18006cac7
lea ecx, [r13 - 0xfa10]
cmp ecx, 0x12
ja 0x18006ca59
mov edx, 0x50005
bt edx, ecx
jb case.0x18006c9a3.3907
lea ecx, [r13 - 0xfb1d]
cmp ecx, 0x21
ja case.0x18006c9a3.3908
movabs rdx, 0x200000005
bt rdx, rcx
jb case.0x18006c9a3.3907
jmp case.0x18006c9a3.3908
cmp r13d, 0xcc2
je 0x18006cac7
cmp r13d, 0xd3e
je 0x18006cac7
jmp case.0x18006c9a3.3908
cmp r13d, 0x2125
jg 0x18006cae0
lea ecx, [r13 - 0x1f71]
cmp ecx, 0x8c
ja case.0x18006c9a3.3908
lea rdx, [0x18006dff4]
movsxd rcx, dword [rdx + rcx*4]
add rcx, rdx
jmp rcx
cmp r13d, 0xbbe
jne case.0x18006c9a3.3908
mov cl, 2
mov dword [rsp + 0x100], ecx
mov ebx, eax
cmp r15, rdi
jne 0x18006c6b5
jmp 0x18006cc4e
lea ecx, [r13 - 0x2329]
cmp ecx, 2
jb case.0x18006c9a3.3907
cmp r13d, 0x2126
je case.0x18006c9a3.3907
cmp r13d, 0x2adc
je case.0x18006c9a3.3907
movd xmm1, r13d
pshufd xmm0, xmm1, 0
movdqa xmm2, xmm0
paddd xmm2, xmmword [0x1801a8ec0]
movdqa xmm3, xmm0
paddd xmm3, xmmword [0x1801a8ed0]
pxor xmm3, xmm12
movdqa xmm4, xmm14
pcmpgtd xmm4, xmm3
pxor xmm2, xmm12
movdqa xmm3, xmm15
pcmpgtd xmm3, xmm2
packssdw xmm3, xmm4
pmovmskb ecx, xmm3
test ecx, ecx
jne case.0x18006c9a3.3907
pshufd xmm1, xmm1, 0x50
pand xmm1, xmmword [0x1801a8eb0]
pshufd xmm2, xmm1, 4
pcmpeqd xmm2, xmmword [0x1801a8ee0]
movdqa xmm3, xmm0
paddd xmm3, xmm11
pxor xmm3, xmm12
movdqa xmm4, xmm13
pcmpgtd xmm4, xmm3
por xmm4, xmm2
movmskps ecx, xmm4
test cl, cl
jne case.0x18006c9a3.3907
lea ecx, [r13 - 0x1d1bb]
cmp ecx, 6
jb case.0x18006c9a3.3907
lea ecx, [r13 - 0x2f800]
cmp ecx, 0x21e
jb case.0x18006c9a3.3907
movd ecx, xmm1
cmp ecx, 0x2000
je case.0x18006c9a3.3907
cmp ecx, 0x212a
je case.0x18006c9a3.3907
cmp ecx, 0xfb40
je case.0x18006c9a3.3907
movdqa xmm1, xmm0
paddd xmm1, xmm7
paddd xmm0, xmm8
pxor xmm0, xmm12
movdqa xmm2, xmm9
pcmpgtd xmm2, xmm0
pxor xmm1, xmm12
movdqa xmm0, xmm10
pcmpgtd xmm0, xmm1
packssdw xmm2, xmm0
pmovmskb edx, xmm2
test edx, edx
jne 0x18006cac7
lea edx, [r13 - 0x11a8]
cmp edx, 0x1b
jb 0x18006cac7
add r13d, 0xffffcf67
cmp r13d, 2
jb 0x18006cac7
cmp ecx, 0x330
jne 0x18006cad0
jmp 0x18006cac7
cmp byte [rsp + 0x100], 0
je 0x18006ce3d
movzx eax, byte [rsp + 0x100]
cmp eax, 1
je case.0x18006c9a3.3907
lea rcx, [rsp + 0x88]
movups xmmword [rcx], xmm6
movups xmmword [rsp + 0x1e0], xmm6
mov qword [rsp + 0x40], 0
mov dword [rsp + 0x50], 0
mov word [rsp + 0x54], 0
mov byte [rsp + 0x58], 0
mov dword [rsp + 0x5c], 0
mov byte [rsp + 0x60], 0
mov dword [rsp + 0x64], 0
mov byte [rsp + 0x68], 0
mov dword [rsp + 0x6c], 0
mov byte [rsp + 0x70], 0
mov dword [rsp + 0x74], 0
mov qword [rsp + 0x78], r14
mov qword [rsp + 0x80], rdi
mov byte [rsp + 0x98], 0
mov dword [rsp + 0xa0], 0
mov word [rsp + 0xa4], 0
movzx eax, word [rsp + 0x1ee]
mov word [rcx + 0x2e], ax
movdqu xmm0, xmmword [rsp + 0x1de]
movdqu xmmword [rcx + 0x1e], xmm0
mov dword [rsp + 0xc0], 0x110000
mov byte [rsp + 0xc4], 0
mov rbx, r14
cmp rbx, rdi
je 0x18006cdc9
movzx edx, byte [rbx]
movzx r15d, dl
test r15b, r15b
js 0x18006cd40
inc rbx
jmp 0x18006cdaa
mov eax, r15d
and eax, 0x1f
movzx r8d, byte [rbx + 1]
and r8d, 0x3f
cmp r15b, 0xdf
jbe 0x18006cd8f
movzx ecx, byte [rbx + 2]
shl r8d, 6
and ecx, 0x3f
or ecx, r8d
cmp dl, 0xf0
jb 0x18006cd9e
movzx r15d, byte [rbx + 3]
and eax, 7
shl eax, 0x12
shl ecx, 6
and r15d, 0x3f
or r15d, ecx
or r15d, eax
cmp r15d, 0x110000
je 0x18006cdc9
add rbx, 4
jmp 0x18006cdaa
add rbx, 2
shl eax, 6
or eax, r8d
mov r15d, eax
jmp 0x18006cdaa
add rbx, 3
shl eax, 0xc
or ecx, eax
mov r15d, ecx
lea rcx, [rsp + 0x40]
call fcn.18006f140
mov r13b, 1
cmp eax, 0x110000
je 0x18006cddf
cmp eax, r15d
je 0x18006cd26
jmp 0x18006cddf
lea rcx, [rsp + 0x40]
call fcn.18006f140
cmp eax, 0x110000
setne r13b
neg r13b
cmp dword [rsp + 0x50], 0
je 0x18006ce02
cmp qword [rsp + 0x60], 0
je 0x18006ce02
mov r8, qword [rsp + 0x58]
mov rcx, qword [0x180246f98]
xor edx, edx
call qword [sym.imp.KERNEL32.dll_HeapFree]
cmp dword [rsp + 0xa0], 0
je 0x18006ce2e
cmp qword [rsp + 0xb0], 0
je 0x18006ce2e
mov r8, qword [rsp + 0xa8]
mov rcx, qword [0x180246f98]
xor edx, edx
call qword [sym.imp.KERNEL32.dll_HeapFree]
test r13b, r13b
je 0x18006ce3d
mov byte [rsp + 0xf5], 1
jmp 0x18006ce58
mov rcx, r14
mov rdx, rsi
mov r8, qword [rsp + 0x118]
lea r9, [rsp + 0xf0]
call fcn.18006fa40
mov r15, qword [rsp + 0x300]
mov rbx, qword [rsp + 0x30]
mov dil, 1
jmp 0x18006bee1
jmp 0x18006ce70
jmp 0x18006ce72
mov rcx, qword [r15]
mov rdx, qword [r15 + 0x10]
mov r8, qword [rsp + 0x120]
test r8, r8
je 0x18006ceb2
mov rax, rdx
sub rax, r8
jbe 0x18006ceb7
cmp byte [rcx + r8], 0xbf
jg 0x18006cebd
jmp 0x18006ddfa
lea r8, [0x1801edb48]
mov edx, 4
mov rcx, r9
call fcn.18019ad00
ud2
mov rax, rdx
jmp 0x18006cebd
jne 0x18006ddfa
add rcx, r8
mov qword [rsp + 0x40], 0
mov qword [rsp + 0x48], rax
mov qword [rsp + 0x50], rcx
mov qword [rsp + 0x58], rax
mov qword [rsp + 0x60], 0
mov qword [rsp + 0x68], rax
mov qword [rsp + 0x70], 1
movabs rax, 0x2e0000002e
mov qword [rsp + 0x78], rax
mov word [rsp + 0x80], 1
test byte [rsp + 0x2c], 1
jne 0x18006cf26
lea rsi, [rsp + 0x40]
mov rcx, rsi
call fcn.18006e250
test rax, rax
jne 0x18006cf14
jmp 0x18006d32c
lea r14, [rsp + 0x40]
mov ebx, 0x260fb
mov r13d, 0x62f8
mov rcx, r14
call fcn.18006e250
test rax, rax
je 0x18006d32c
mov r12, rdx
test rdx, rdx
je 0x18006cf36
mov r15, rax
movzx edx, byte [rax]
movzx ecx, dl
test cl, cl
js 0x18006cf62
lea rsi, [r15 + 1]
jmp 0x18006cfbd
mov eax, ecx
and eax, 0x1f
movzx r8d, byte [r15 + 1]
and r8d, 0x3f
cmp cl, 0xdf
jbe 0x18006cfa6
movzx ecx, byte [r15 + 2]
shl r8d, 6
and ecx, 0x3f
or ecx, r8d
cmp dl, 0xf0
jb 0x18006cfb4
lea rsi, [r15 + 4]
movzx edx, byte [r15 + 3]
and eax, 7
shl eax, 0x12
shl ecx, 6
and edx, 0x3f
or edx, ecx
or edx, eax
mov ecx, edx
jmp 0x18006cfbd
lea rsi, [r15 + 2]
shl eax, 6
or eax, r8d
mov ecx, eax
jmp 0x18006cfbd
lea rsi, [r15 + 3]
shl eax, 0xc
or ecx, eax
add r12, r15
call fcn.180142c90
test al, al
je 0x18006d072
movzx eax, al
cmp eax, 0x11
je 0x18006d072
cmp eax, 9
jne 0x18006d324
cmp rsi, r12
je 0x18006d125
movzx edx, byte [rsi]
movzx ecx, dl
test cl, cl
js 0x18006cffa
inc rsi
jmp 0x18006d053
mov eax, ecx
and eax, 0x1f
movzx r8d, byte [rsi + 1]
and r8d, 0x3f
cmp cl, 0xdf
jbe 0x18006d03c
movzx ecx, byte [rsi + 2]
shl r8d, 6
and ecx, 0x3f
or ecx, r8d
cmp dl, 0xf0
jb 0x18006d04a
movzx edx, byte [rsi + 3]
add rsi, 4
and eax, 7
shl eax, 0x12
shl ecx, 6
and edx, 0x3f
or edx, ecx
or edx, eax
mov ecx, edx
jmp 0x18006d053
add rsi, 2
shl eax, 6
or eax, r8d
mov ecx, eax
jmp 0x18006d053
add rsi, 3
shl eax, 0xc
or ecx, eax
call fcn.180142c90
cmp al, 0xe
ja 0x18006d324
movzx eax, al
bt r13, rax
jb 0x18006cfe2
jmp 0x18006d324
cmp rsi, r12
je 0x18006d15e
xor edi, edi
xor ebp, ebp
jmp 0x18006d08d
mov dil, 1
cmp rsi, r12
je 0x18006d162
movzx edx, byte [rsi]
movzx ecx, dl
test cl, cl
js 0x18006d09c
inc rsi
jmp 0x18006d0f5
mov eax, ecx
and eax, 0x1f
movzx r8d, byte [rsi + 1]
and r8d, 0x3f
cmp cl, 0xdf
jbe 0x18006d0de
movzx ecx, byte [rsi + 2]
shl r8d, 6
and ecx, 0x3f
or ecx, r8d
cmp dl, 0xf0
jb 0x18006d0ec
movzx edx, byte [rsi + 3]
add rsi, 4
and eax, 7
shl eax, 0x12
shl ecx, 6
and edx, 0x3f
or edx, ecx
or edx, eax
mov ecx, edx
jmp 0x18006d0f5
add rsi, 2
shl eax, 6
or eax, r8d
mov ecx, eax
jmp 0x18006d0f5
add rsi, 3
shl eax, 0xc
or ecx, eax
call fcn.180142c90
cmp al, 1
je 0x18006d081
movzx ecx, al
cmp ecx, 5
jne 0x18006d10e
mov bpl, 1
jmp 0x18006d084
cmp al, 0x11
ja 0x18006d324
bt rbx, rcx
jb 0x18006d084
jmp 0x18006d324
movzx eax, byte [r12 - 1]
test al, al
jns 0x18006d1aa
movzx ecx, byte [r12 - 2]
add r12, 0xfffffffffffffffe
cmp cl, 0xc0
jge 0x18006d1b6
movzx edx, byte [r12 - 1]
dec r12
cmp dl, 0xc0
jge 0x18006d21d
movzx r8d, byte [r12 - 1]
dec r12
jmp 0x18006d209
xor ebp, ebp
xor edi, edi
movzx eax, byte [r12 - 1]
test al, al
jns 0x18006d19f
movzx ecx, byte [r12 - 2]
add r12, 0xfffffffffffffffe
cmp cl, 0xc0
jge 0x18006d26c
movzx edx, byte [r12 - 1]
dec r12
cmp dl, 0xc0
jge 0x18006d2d7
movzx r8d, byte [r12 - 1]
dec r12
jmp 0x18006d2c3
dec r12
movzx esi, al
jmp 0x18006d279
dec r12
movzx esi, al
jmp 0x18006d1c3
add r12, 0xfffffffffffffffe
and ecx, 0x1f
shl ecx, 6
and al, 0x3f
movzx esi, al
or esi, ecx
cmp r12, r15
je 0x18006d22a
cmp esi, 0x110000
je 0x18006cf36
mov ecx, esi
call fcn.180142c90
cmp al, 0xd
jne 0x18006d245
movzx eax, byte [r12 - 1]
test al, al
jns 0x18006d1aa
movzx ecx, byte [r12 - 2]
cmp cl, 0xc0
jge 0x18006d1b2
movzx edx, byte [r12 - 3]
cmp dl, 0xc0
jge 0x18006d219
movzx r8d, byte [r12 - 4]
add r12, 0xfffffffffffffffc
and r8d, 7
shl r8d, 6
and edx, 0x3f
or edx, r8d
jmp 0x18006d220
add r12, 0xfffffffffffffffd
and edx, 0xf
shl edx, 6
and ecx, 0x3f
or ecx, edx
jmp 0x18006d1b9
cmp esi, 0x110000
je 0x18006cf36
mov ecx, esi
call fcn.180142c90
cmp al, 0xd
je 0x18006cf36
mov ecx, esi
call fcn.180142c90
cmp al, 9
je 0x18006cf36
mov ecx, esi
call fcn.180142c90
cmp al, 5
je 0x18006cf36
jmp 0x18006d324
add r12, 0xfffffffffffffffe
and ecx, 0x1f
shl ecx, 6
and al, 0x3f
movzx esi, al
or esi, ecx
cmp r12, r15
je 0x18006d2e4
cmp esi, 0x110000
je 0x18006d324
mov ecx, esi
call fcn.180142c90
cmp al, 0xd
jne 0x18006d2f7
movzx eax, byte [r12 - 1]
test al, al
jns 0x18006d19f
movzx ecx, byte [r12 - 2]
cmp cl, 0xc0
jge 0x18006d268
movzx edx, byte [r12 - 3]
cmp dl, 0xc0
jge 0x18006d2d3
movzx r8d, byte [r12 - 4]
add r12, 0xfffffffffffffffc
and r8d, 7
shl r8d, 6
and edx, 0x3f
or edx, r8d
jmp 0x18006d2da
add r12, 0xfffffffffffffffd
and edx, 0xf
shl edx, 6
and ecx, 0x3f
or ecx, edx
jmp 0x18006d26f
cmp esi, 0x110000
je 0x18006d324
mov ecx, esi
call fcn.180142c90
cmp al, 0xd
je 0x18006d324
mov ecx, esi
call fcn.180142c90
cmp al, 0x11
ja 0x18006d324
movzx eax, al
mov ecx, 0x20023
bt rcx, rax
jae 0x18006d324
test dil, 1
je 0x18006cf36
and bpl, 1
je 0x18006cf36
mov byte [rsp + 0xf2], 1
movzx eax, byte [rsp + 0xf0]
mov byte [rsp + 0x2b], al
lea rcx, [rsp + 0xf1]
mov rax, qword [rcx]
mov qword [rsp + 0x138], rax
mov eax, dword [rcx + 7]
mov dword [rsp + 0x13f], eax
cmp qword [rsp + 0x190], 0
je 0x18006d377
mov r8, qword [rsp + 0x188]
mov rcx, qword [0x180246f98]
xor edx, edx
call qword [sym.imp.KERNEL32.dll_HeapFree]
mov r15, qword [rsp + 0x300]
mov rsi, qword [r15 + 0x10]
test rsi, rsi
mov rbx, qword [rsp + 0x128]
je 0x18006d3dd
js 0x18006de10
movzx eax, byte [0x180247060]
mov rcx, qword [0x180246f98]
test rcx, rcx
jne 0x18006d3be
call qword [sym.imp.KERNEL32.dll_GetProcessHeap]
test rax, rax
je 0x18006d3ce
mov rcx, rax
mov qword [0x180246f98], rax
xor edx, edx
mov r8, rsi
call qword [sym.imp.KERNEL32.dll_HeapAlloc]
test rax, rax
jne 0x18006d3e2
mov ecx, 1
mov rdx, rsi
call fcn.18019a870
ud2
mov eax, 1
mov rcx, qword [r15 + 0x10]
mov qword [rsp + 0x50], rcx
movups xmm0, xmmword [r15]
movaps xmmword [rsp + 0x40], xmm0
mov qword [r15], rax
mov qword [r15 + 8], rsi
mov qword [r15 + 0x10], 0
mov rax, qword [rsp + 0x38]
lea rsi, [rax + 0x18]
cmp qword [rax + 0x20], 0
je 0x18006d425
mov r8, qword [rsi]
mov rcx, qword [0x180246f98]
xor edx, edx
call qword [sym.imp.KERNEL32.dll_HeapFree]
mov rax, qword [rsp + 0x50]
mov qword [rsi + 0x10], rax
movdqa xmm0, xmmword [rsp + 0x40]
movdqu xmmword [rsi], xmm0
mov rcx, qword [rsp + 0x38]
mov rax, qword [rcx + 0x18]
mov rcx, qword [rcx + 0x28]
mov qword [rsp + 0x40], 0
mov qword [rsp + 0x48], rcx
mov qword [rsp + 0x50], rax
mov qword [rsp + 0x58], rcx
mov qword [rsp + 0x60], 0
mov qword [rsp + 0x68], rcx
mov qword [rsp + 0x70], 1
movabs rax, 0x2e0000002e
mov qword [rsp + 0x78], rax
mov word [rsp + 0x80], 1
xor ecx, ecx
mov qword [rsp + 0x130], rcx
jmp 0x18006d4a1
mov qword [rsp + 0x130], rcx
lea rcx, [rsp + 0x40]
call fcn.18006e250
test rax, rax
je 0x18006dcd0
mov r14, rax
mov rsi, rdx
test byte [rsp + 0x130], 1
movabs rdi, 0x8080808080808080
je 0x18006d4f2
mov rdx, qword [r15 + 0x10]
cmp rdx, qword [r15 + 8]
jne 0x18006d4e4
mov rcx, r15
call fcn.18006aa40
mov rdx, qword [r15 + 0x10]
mov rax, qword [r15]
mov byte [rax + rdx], 0x2e
inc rdx
mov qword [r15 + 0x10], rdx
mov rcx, rsi
cmp rsi, 8
jb 0x18006d58e
lea rdx, [r14 + 7]
and rdx, 0xfffffffffffffff8
mov rax, rdx
sub rax, r14
mov rcx, rsi
cmp rax, rsi
ja 0x18006d58e
test qword [r14], rdi
jne 0x18006d5a2
cmp rdx, r14
mov ecx, 8
cmove rax, rcx
lea rcx, [rsi - 8]
cmp rax, rcx
jae 0x18006d542
test qword [r14 + rax], rdi
jne 0x18006d5a2
add rax, 8
cmp rax, rcx
jb 0x18006d533
test qword [r14 + rcx], rdi
jne 0x18006d5a2
mov rax, qword [r15 + 8]
mov r15, qword [r15 + 0x10]
sub rax, r15
cmp rax, rsi
jb 0x18006dc8a
mov rdi, qword [rsp + 0x300]
mov rcx, qword [rdi]
add rcx, r15
mov rdx, r14
mov r8, rsi
call fcn.180199330
add rsi, r15
mov r15, rdi
mov qword [r15 + 0x10], rsi
mov cl, 1
mov qword [rsp + 0x130], rcx
jmp 0x18006d4a1
mov rax, rcx
sub rax, 1
jb 0x18006d548
cmp byte [r14 + rcx - 1], 0
mov rcx, rax
jns 0x18006d58e
mov rax, qword [r15 + 8]
mov rdi, qword [r15 + 0x10]
sub rax, rdi
mov rdx, rdi
cmp rax, 3
jbe 0x18006dc59
mov qword [rsp + 0x180], rdi
mov rax, qword [r15]
mov dword [rax + rdx], 0x2d2d6e78
add rdx, 4
mov qword [r15 + 0x10], rdx
mov cl, 1
mov qword [rsp + 0x130], rcx
test rsi, rsi
je 0x18006d4a1
mov r12, r14
add r12, rsi
xor ebp, ebp
xor r13d, r13d
mov rsi, r14
jmp 0x18006d60e
mov byte [rax + rdx], dil
inc rdx
mov qword [r15 + 0x10], rdx
inc r13d
cmp rsi, r12
je 0x18006d6b7
movzx r9d, byte [rsi]
movzx edi, r9b
test dil, dil
js 0x18006d622
inc rsi
inc ebp
jmp 0x18006d699
mov ecx, edi
and ecx, 0x1f
movzx r10d, byte [rsi + 1]
and r10d, 0x3f
cmp dil, 0xdf
jbe 0x18006d670
movzx r8d, byte [rsi + 2]
shl r10d, 6
and r8d, 0x3f
or r8d, r10d
cmp r9b, 0xf0
jb 0x18006d67e
movzx edi, byte [rsi + 3]
and ecx, 7
shl ecx, 0x12
shl r8d, 6
and edi, 0x3f
or edi, r8d
or edi, ecx
cmp edi, 0x110000
je 0x18006d6b7
add rsi, 4
jmp 0x18006d68b
add rsi, 2
shl ecx, 6
or ecx, r10d
mov edi, ecx
jmp 0x18006d68b
add rsi, 3
shl ecx, 0xc
or r8d, ecx
mov edi, r8d
inc ebp
cmp edi, 0x80
jae 0x18006d605
cmp rdx, qword [r15 + 8]
jne 0x18006d5f7
mov rcx, r15
call fcn.18006aa40
mov rax, qword [r15]
mov rdx, qword [r15 + 0x10]
jmp 0x18006d5f7
test r13d, r13d
mov edi, 1
je 0x18006d6e1
cmp rdx, qword [r15 + 8]
jne 0x18006d6d3
mov rcx, r15
call fcn.18006aa40
mov rdx, qword [r15 + 0x10]
mov rax, qword [r15]
mov byte [rax + rdx], 0x2d
inc rdx
mov qword [r15 + 0x10], rdx
cmp r13d, ebp
jae 0x18006d4a1
mov eax, 0x80
mov ecx, 0x48
xor r8d, r8d
mov esi, r13d
mov qword [rsp + 0x110], r14
mov qword [rsp + 0x118], r12
mov dword [rsp + 0xe8], ebp
mov dword [rsp + 0x2c], r13d
mov qword [rsp + 0x38], rcx
mov rcx, r14
jmp 0x18006d72b
inc rcx
cmp eax, ebx
jbe 0x18006d7c3
cmp rcx, r12
je 0x18006ddb5
movzx r10d, byte [rcx]
movzx ebx, r10b
test bl, bl
jns 0x18006d720
mov edx, ebx
and edx, 0x1f
movzx r11d, byte [rcx + 1]
and r11d, 0x3f
cmp bl, 0xdf
jbe 0x18006d791
movzx r9d, byte [rcx + 2]
shl r11d, 6
and r9d, 0x3f
or r9d, r11d
cmp r10b, 0xf0
jb 0x18006d79f
movzx ebx, byte [rcx + 3]
and edx, 7
shl edx, 0x12
shl r9d, 6
and ebx, 0x3f
or ebx, r9d
or ebx, edx
cmp ebx, 0x110000
je 0x18006ddb5
add rcx, 4
jmp 0x18006d723
add rcx, 2
shl edx, 6
or edx, r11d
mov ebx, edx
jmp 0x18006d723
add rcx, 3
shl edx, 0xc
or r9d, edx
mov ebx, r9d
jmp 0x18006d723
inc rcx
cmp ebx, edx
mov r9d, edx
cmovb r9d, ebx
cmp edx, eax
cmovae ebx, r9d
cmp rcx, r12
je 0x18006d873
movzx r11d, byte [rcx]
movzx edx, r11b
test dl, dl
jns 0x18006d7b1
mov ebp, r8d
mov r8, r14
mov r14d, esi
mov r9d, edx
and r9d, 0x1f
movzx esi, byte [rcx + 1]
and esi, 0x3f
cmp dl, 0xdf
jbe 0x18006d833
movzx r10d, byte [rcx + 2]
shl esi, 6
and r10d, 0x3f
or r10d, esi
cmp r11b, 0xf0
jb 0x18006d843
movzx edx, byte [rcx + 3]
and r9d, 7
shl r9d, 0x12
shl r10d, 6
and edx, 0x3f
or edx, r10d
or edx, r9d
cmp edx, 0x110000
mov esi, r14d
je 0x18006d866
add rcx, 4
jmp 0x18006d854
add rcx, 2
shl r9d, 6
or r9d, esi
mov edx, r9d
jmp 0x18006d851
add rcx, 3
shl r9d, 0xc
or r10d, r9d
mov edx, r10d
mov esi, r14d
mov r14, r8
mov r8d, ebp
mov ebp, dword [rsp + 0xe8]
jmp 0x18006d7b4
mov r14, r8
mov r8d, ebp
mov ebp, dword [rsp + 0xe8]
mov ecx, esi
inc ecx
je 0x18006dd81
mov r9d, ebx
sub r9d, eax
mov eax, r8d
not eax
xor edx, edx
div ecx
cmp r9d, eax
ja 0x18006dc14
mov edx, r9d
imul edx, ecx
add edx, r8d
mov dword [rsp + 0x30], edx
mov rcx, r14
mov dword [rsp + 0x108], ebx
jmp 0x18006d8bf
mov r9d, esi
mov r8d, dword [rsp + 0x30]
cmp rcx, r12
je 0x18006dbed
movzx r8d, byte [rcx]
movzx eax, r8b
test al, al
js 0x18006d8dc
inc rcx
mov r9, qword [rsp + 0x38]
cmp eax, ebx
jb 0x18006d956
jmp 0x18006d960
mov r10, rcx
mov ecx, eax
and ecx, 0x1f
movzx r9d, byte [r10 + 1]
and r9d, 0x3f
cmp al, 0xdf
jbe 0x18006d931
movzx edx, byte [r10 + 2]
shl r9d, 6
and edx, 0x3f
or edx, r9d
cmp r8b, 0xf0
jb 0x18006d93f
movzx eax, byte [r10 + 3]
and ecx, 7
shl ecx, 0x12
shl edx, 6
and eax, 0x3f
or eax, edx
or eax, ecx
cmp eax, 0x110000
mov r9, qword [rsp + 0x38]
je 0x18006dc0a
add r10, 4
jmp 0x18006d94f
add r10, 2
shl ecx, 6
or ecx, r9d
mov eax, ecx
jmp 0x18006d94a
add r10, 3
shl ecx, 0xc
or edx, ecx
mov eax, edx
mov r9, qword [rsp + 0x38]
mov rcx, r10
cmp eax, ebx
jae 0x18006d960
inc dword [rsp + 0x30]
je 0x18006dc14
cmp eax, ebx
jne 0x18006d8ae
mov qword [rsp + 0x100], rcx
mov dword [rsp + 0x120], esi
lea r13d, [r9 + 0x1a]
lea ecx, [r9 - 0x24]
neg ecx
cmp r13d, 0x25
mov r8d, 0x1a
cmovb ecx, r8d
cmp r9d, 0x24
cmovae ecx, edi
mov eax, dword [rsp + 0x30]
mov esi, eax
cmp eax, ecx
jae 0x18006da6c
mov edx, 0x61
cmp esi, 0x1a
jb 0x18006d9bc
mov edx, 0x16
cmp esi, 0x24
jae 0x18006ddae
add edx, esi
mov rcx, r15
call fcn.18000c8b0
mov eax, dword [rsp + 0x120]
mov r9d, eax
inc r9d
mov r11d, 0xd41d41d5
mov ebp, dword [rsp + 0xe8]
mov r13d, dword [rsp + 0x2c]
je 0x18006dd27
cmp eax, r13d
mov ecx, 2
mov eax, 0x2bc
cmove ecx, eax
xor r8d, r8d
mov eax, dword [rsp + 0x30]
xor edx, edx
div ecx
mov ecx, eax
xor edx, edx
div r9d
add eax, ecx
cmp eax, 0x1c8
mov r14, qword [rsp + 0x110]
mov r12, qword [rsp + 0x118]
jb 0x18006dba9
xor ecx, ecx
mov ebx, dword [rsp + 0x108]
nop word cs:[rax + rax]
mov edx, eax
imul rdx, r11
shr rdx, 0x20
mov r10d, eax
sub r10d, edx
shr r10d, 1
add r10d, edx
shr r10d, 5
add ecx, 0x24
cmp eax, 0x3e57
mov eax, r10d
ja 0x18006da40
jmp 0x18006dbb5
mov ebx, r9d
neg ebx
mov r14d, 0x48
mov esi, dword [rsp + 0x30]
jmp 0x18006dab8
mov rax, qword [rbp]
mov byte [rax + rdx], r15b
inc rdx
mov qword [rbp + 0x10], rdx
mov eax, esi
xor edx, edx
div r12d
lea ecx, [rbx + r14]
cmp r14d, r13d
cmovae ecx, r8d
cmp r14d, r9d
cmovbe ecx, edi
add r14d, 0x24
mov esi, eax
cmp eax, ecx
mov r15, rbp
jb 0x18006d9a4
mov r12d, ecx
sub r12d, 0x24
je 0x18006dcb6
sub esi, ecx
neg r12d
mov eax, esi
xor edx, edx
div r12d
add edx, ecx
mov r15d, 0x61
cmp edx, 0x1a
jb 0x18006daed
mov r15d, 0x16
cmp edx, 0x24
jae 0x18006ddae
add r15d, edx
cmp r15d, 0x80
jae 0x18006db30
mov rbp, qword [rsp + 0x300]
mov rdx, qword [rbp + 0x10]
cmp rdx, qword [rbp + 8]
jne 0x18006da80
mov rcx, rbp
call fcn.18006aa40
mov r9, qword [rsp + 0x38]
mov r8d, 0x1a
mov rdx, qword [rbp + 0x10]
jmp 0x18006da80
movzx edi, r15w
shr edi, 6
mov rcx, qword [rsp + 0x300]
mov rax, qword [rcx + 8]
mov rdx, qword [rcx + 0x10]
sub rax, rdx
cmp rax, 1
jbe 0x18006db82
mov rbp, qword [rsp + 0x300]
mov rax, qword [rbp]
and r15d, 0x3f
shl r15d, 8
movzx ecx, di
or ecx, r15d
or ecx, 0x80c0
mov word [rax + rdx], cx
add rdx, 2
mov edi, 1
jmp 0x18006da8b
mov r8d, 2
mov rbp, qword [rsp + 0x300]
mov rcx, rbp
call fcn.18019b9e0
mov r9, qword [rsp + 0x38]
mov r8d, 0x1a
mov rdx, qword [rbp + 0x10]
jmp 0x18006db50
xor ecx, ecx
mov r10d, eax
mov ebx, dword [rsp + 0x108]
lea eax, [r10*4]
lea eax, [rax + rax*8]
add r10d, 0x26
xor edx, edx
div r10w
movzx eax, ax
add eax, ecx
mov qword [rsp + 0x38], rax
mov dword [rsp + 0x30], r8d
mov esi, r9d
mov rcx, qword [rsp + 0x100]
cmp rcx, r12
jne 0x18006d8bf
inc r8d
inc ebx
mov esi, r9d
mov eax, ebx
cmp r9d, ebp
mov rcx, qword [rsp + 0x38]
jb 0x18006d716
jmp 0x18006dca9
mov r9d, esi
mov r8d, dword [rsp + 0x30]
jmp 0x18006dbed
mov rax, qword [r15 + 0x10]
mov byte [rsp + 0x2b], 1
mov cl, 1
mov rsi, qword [rsp + 0x180]
cmp rax, rsi
mov rbx, qword [rsp + 0x128]
jb 0x18006d499
test rsi, rsi
je 0x18006dc73
mov byte [rsp + 0x2b], 1
cmp rax, rsi
jbe 0x18006dc7f
mov rax, qword [r15]
cmp byte [rax + rsi], 0xbf
jg 0x18006d57b
jmp 0x18006dde0
mov r8d, 4
mov rcx, r15
mov rdx, rdi
call fcn.18019b9e0
mov rdx, qword [r15 + 0x10]
jmp 0x18006d5ba
mov byte [rsp + 0x2b], 1
xor esi, esi
jmp 0x18006d57b
je 0x18006d57b
jmp 0x18006dde0
mov rdi, qword [rsp + 0x300]
mov rcx, rdi
mov rdx, r15
mov r8, rsi
call fcn.18019b9e0
mov r15, qword [rdi + 0x10]
jmp 0x18006d55c
mov rbx, qword [rsp + 0x128]
jmp 0x18006d4a1
lea rcx, [0x1801edd90]
lea r8, str.C:UsersDadoodze.cargo_registry_srcindex.crates.io_6f17d22bba15001fidna_0.3.0_srcpunycode.rs
mov edx, 0x39
call fcn.18019ad80
ud2
movzx eax, byte [rsp + 0x2b]
mov byte [rbx], al
mov rax, qword [rsp + 0x138]
mov qword [rbx + 1], rax
mov eax, dword [rsp + 0x13f]
mov dword [rbx + 8], eax
jmp 0x18006bc35
lea r8, [0x1801edb48]
mov edx, 4
mov rcx, rax
call fcn.18019ad00
ud2
lea rcx, [0x1801edc80]
lea r8, str.C:UsersDadoodze.cargo_registry_srcindex.crates.io_6f17d22bba15001fidna_0.3.0_srcpunycode.rs
mov edx, 0x19
call fcn.18019ad80
ud2
lea r8, str.C:UsersDadoodze.cargo_registry_srcindex.crates.io_6f17d22bba15001funicode_normalization_0.1.22_srclookups.rs
mov edx, 0xd4e
call fcn.18019ac80
ud2
lea r8, str.C:UsersDadoodze.cargo_registry_srcindex.crates.io_6f17d22bba15001funicode_normalization_0.1.22_srclookups.rs
jmp 0x18006dd64
lea r8, str.C:UsersDadoodze.cargo_registry_srcindex.crates.io_6f17d22bba15001funicode_normalization_0.1.22_srclookups.rs
mov rcx, rsi
call fcn.18019ad00
ud2
lea r8, str.C:UsersDadoodze.cargo_registry_srcindex.crates.io_6f17d22bba15001funicode_normalization_0.1.22_srclookups.rs
mov edx, 0x1667
call fcn.18019ac80
ud2
lea rcx, [0x1801edc80]
lea r8, str.C:UsersDadoodze.cargo_registry_srcindex.crates.io_6f17d22bba15001fidna_0.3.0_srcpunycode.rs
mov edx, 0x19
call fcn.18019ad80
ud2
lea r8, [0x1801edb48]
mov edx, 4
call fcn.18019ad00
ud2
call fcn.18019d410
ud2
lea rcx, [0x1802343c7]
lea r8, str.C:UsersDadoodze.cargo_registry_srcindex.crates.io_6f17d22bba15001fidna_0.3.0_srcpunycode.rs
mov edx, 0x2b
call fcn.18019ad80
ud2
lea rax, str.C:UsersDadoodze.cargo_registry_srcindex.crates.io_6f17d22bba15001fidna_0.3.0_srcuts46.rs
mov qword [rsp + 0x20], rax
mov rcx, r14
jmp 0x18006de06
lea rcx, str.assertion_failed:_self.is_char_boundary_new_len_
lea r8, [0x180232d50]
mov edx, 0x30
call fcn.18019ad80
ud2
lea rax, str.C:UsersDadoodze.cargo_registry_srcindex.crates.io_6f17d22bba15001fidna_0.3.0_srcuts46.rs
mov qword [rsp + 0x20], rax
mov r9, rdx
call fcn.18019b2d0
ud2
call fcn.18001e850
ud2