Function at 0x14004ad50
Capabilities:
Encrypt data using speck

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0x2c8
movdqa xmmword [rsp + 0x2b0], xmm15
movdqa xmmword [rsp + 0x2a0], xmm14
movdqa xmmword [rsp + 0x290], xmm13
movdqa xmmword [rsp + 0x280], xmm12
movdqa xmmword [rsp + 0x270], xmm11
movdqa xmmword [rsp + 0x260], xmm10
movdqa xmmword [rsp + 0x250], xmm9
movdqa xmmword [rsp + 0x240], xmm8
movdqa xmmword [rsp + 0x230], xmm7
movaps xmmword [rsp + 0x220], xmm6
mov qword [rsp + 0x200], rcx
mov rax, qword [rsp + 0x338]
mov rcx, qword [rsp + 0x330]
mov qword [rsp + 0x118], r9
mov qword [rcx + 0x10], 0
mov dword [rsp + 0x110], 0
mov qword [rsp + 0x108], 0
mov rax, qword [rax + 0x10]
mov qword [rsp + 0x1f8], rax
add r8, rdx
xorps xmm6, xmm6
movups xmmword [rsp + 0x142], xmm6
movzx eax, word [rsp + 0x150]
mov word [rsp + 0xee], ax
movups xmm0, xmmword [rsp + 0x140]
movups xmmword [rsp + 0xde], xmm0
movups xmmword [rsp + 0x12b], xmm6
mov byte [rsp + 0x13b], 0
mov qword [rsp + 0x58], 0
lea r13, [rsp + 0x68]
mov dword [rsp + 0x68], 0
mov word [rsp + 0x6c], 0
mov byte [rsp + 0x70], 0
mov dword [rsp + 0x74], 0
mov byte [rsp + 0x78], 0
mov dword [rsp + 0x7c], 0
mov byte [rsp + 0x80], 0
mov dword [rsp + 0x84], 0
mov byte [rsp + 0x88], 0
mov dword [rsp + 0x8c], 0
mov qword [rsp + 0x90], rdx
mov qword [rsp + 0x98], r8
lea rax, [rsp + 0x108]
mov qword [rsp + 0xa0], rax
mov qword [rsp + 0xa8], 0
mov rax, r9
shr rax, 0x20
mov byte [rsp + 0xbc], al
mov qword [rsp + 0x1a8], r9
mov dword [rsp + 0xb8], r9d
mov eax, dword [rsp + 0x138]
mov dword [rsp + 0xcd], eax
movdqu xmm0, xmmword [rsp + 0x128]
movdqu xmmword [rsp + 0xbd], xmm0
mov dword [rsp + 0xd8], 0
mov word [rsp + 0xdc], 0
mov dword [rsp + 0xf8], 0x110000
mov byte [rsp + 0xfc], 0
lea r12, [0x14016b678]
mov ebx, 0xff
lea rsi, [0x14016f148]
xor eax, eax
test rax, rax
je 0x14004b035
cmp rax, 1
jne 0x14004bad0
mov rax, qword [rsp + 0x60]
cmp dword [rsp + 0xd8], 0
je 0x14004af8f
cmp rax, qword [rsp + 0xf0]
jb 0x14004baf4
mov qword [rsp + 0xf0], 0
jmp 0x14004afbf
movzx ecx, word [rsp + 0xdc]
cmp rcx, 4
ja 0x14004e484
cmp rax, rcx
jb 0x14004bb34
cmp word [rsp + 0xdc], 0
je 0x14004afbf
mov word [rsp + 0xdc], 0
mov qword [rsp + 0x58], 0
jmp 0x14004b035
movzx ebp, r14w
imul edi, ebp, 0x6f75
shr edi, 0x18
lea edx, [rdi + 0x1100]
mov rcx, r13
call fcn.14004f590
imul eax, edi, 0x24c
sub r14d, eax
movzx eax, r14w
imul edx, eax, 0x925
shr edx, 0x10
add edx, 0x1161
mov rcx, r13
call fcn.14004f590
mov eax, ebp
shr eax, 2
imul eax, eax, 0x4925
shr eax, 0x11
lea ecx, [rax + rax*8]
lea ecx, [rcx + rcx*2]
add ecx, eax
sub bp, cx
je 0x14004b035
add ebp, 0x11a7
movzx edx, bp
mov rcx, r13
call fcn.14004f590
mov r9, qword [rsp + 0xc8]
test r9, r9
jne 0x14004b3d0
movzx r10d, byte [rsp + 0xb8]
cmp r10b, 2
je 0x14004b872
mov r8, qword [rsp + 0xa8]
mov r15, qword [rsp + 0x90]
mov r11, qword [rsp + 0x98]
mov rax, qword [rsp + 0xa0]
movzx r14d, byte [rsp + 0xb9]
mov rbp, qword [rsp + 0xb0]
test r8, r8
je 0x14004b135
cmp r8, rbp
je 0x14004b129
lea rcx, [r8 + 1]
mov qword [rsp + 0xa8], rcx
movzx edx, byte [r8]
test dl, dl
jns 0x14004b6c9
mov ecx, edx
and ecx, 0x1f
lea r9, [r8 + 2]
mov qword [rsp + 0xa8], r9
movzx edi, byte [r8 + 1]
and edi, 0x3f
cmp dl, 0xdf
jbe 0x14004b9ca
lea r9, [r8 + 3]
mov qword [rsp + 0xa8], r9
movzx r9d, byte [r8 + 2]
shl edi, 6
and r9d, 0x3f
or r9d, edi
cmp dl, 0xf0
jb 0x14004b9d6
lea rdx, [r8 + 4]
mov qword [rsp + 0xa8], rdx
movzx edx, byte [r8 + 3]
and ecx, 7
shl ecx, 0x12
shl r9d, 6
and edx, 0x3f
or edx, r9d
or edx, ecx
cmp edx, 0x110000
jne case.0x14004b327.0
mov qword [rsp + 0xa8], 0
cmp r15, r11
je 0x14004b86a
lea rdx, [r15 + 1]
mov qword [rsp + 0x90], rdx
movzx ecx, byte [r15]
test cl, cl
js 0x14004b170
mov r15, rdx
mov edx, ecx
lea ecx, [rdx - 0x2d]
cmp ecx, 2
jae 0x14004b220
jmp 0x14004b6c9
mov edx, ecx
and edx, 0x1f
lea r8, [r15 + 2]
mov qword [rsp + 0x90], r8
movzx r9d, byte [r15 + 1]
and r9d, 0x3f
cmp cl, 0xdf
jbe 0x14004b1e8
lea rdi, [r15 + 3]
mov qword [rsp + 0x90], rdi
movzx r8d, byte [r15 + 2]
shl r9d, 6
and r8d, 0x3f
or r8d, r9d
cmp cl, 0xf0
jb 0x14004b1fe
lea rcx, [r15 + 4]
mov qword [rsp + 0x90], rcx
movzx r9d, byte [r15 + 3]
and edx, 7
shl edx, 0x12
shl r8d, 6
and r9d, 0x3f
or r9d, r8d
or r9d, edx
mov r15, rcx
mov edx, r9d
lea ecx, [rdx - 0x2d]
cmp ecx, 2
jae 0x14004b220
jmp 0x14004b6c9
shl edx, 6
or edx, r9d
mov r15, r8
lea ecx, [rdx - 0x2d]
cmp ecx, 2
jae 0x14004b220
jmp 0x14004b6c9
shl edx, 0xc
or r8d, edx
mov r15, rdi
mov edx, r8d
lea ecx, [rdx - 0x2d]
cmp ecx, 2
jb 0x14004b6c9
nop word cs:[rax + rax]
cmp edx, 0x110000
je 0x14004b86a
lea ecx, [rdx - 0x61]
cmp ecx, 0x1a
jb 0x14004b6c9
lea ecx, [rdx - 0x30]
cmp ecx, 0xa
jb 0x14004b6c9
mov r8d, 0x75a
xor r9d, r9d
mov ecx, 0x75a
jmp 0x14004b268
mov rcx, r8
sub r8, r9
jbe 0x14004b29c
shr r8, 1
add r8, r9
xor edi, edi
cmp dword [r12 + r8*8], edx
setne dil
cmovb edi, ebx
cmp dil, 1
je 0x14004b260
movzx r9d, dil
cmp r9d, 0xff
jne 0x14004b2af
inc r8
mov r9, r8
mov r8, rcx
sub r8, r9
ja 0x14004b268
dec r9
mov r8, r9
cmp r9, 0x759
ja 0x14004bd28
movzx r9d, word [r12 + r8*8 + 4]
mov ecx, r9d
and ecx, 0x7fff
test r9w, r9w
js 0x14004b2f0
movzx r8d, word [r12 + r8*8]
mov r9d, edx
sub r9w, r8w
movzx ecx, cx
add ecx, r9d
movzx ecx, cx
cmp ecx, 0x1f73
jb 0x14004b301
jmp 0x14004bd42
movzx r8d, cx
cmp r8d, 0x1f73
jae 0x14004bd55
movzx r9d, byte [rsi + rcx*4]
mov r8d, 0
cmp r9d, 1
je case.default.0x14004b327
mov r8d, r9d
lea r9, [0x140148d10]
movsxd r8, dword [r9 + r8*4]
add r8, r9
jmp r8
mov r8d, dword [rsp + 0x68]
lea rdi, [rsp + 0x70]
mov rcx, qword [rsp + 0xc0]
test r8d, r8d
je 0x14004b3fe
mov rdx, qword [rsp + 0x70]
mov rax, qword [rsp + 0x80]
cmp rcx, rax
jb 0x14004b419
jmp 0x14004bd68
movzx eax, word [rsp + 0x6c]
cmp rax, 5
jae 0x14004e3e8
mov rdx, rdi
cmp rcx, rax
jae 0x14004bd68
mov r15d, dword [rdx + rcx*8 + 4]
inc rcx
cmp rcx, r9
jne 0x14004b4e0
test r8d, r8d
je 0x14004b4ea
mov rdx, qword [rsp + 0x80]
sub rdx, r9
je 0x14004b4f8
xor ecx, ecx
jmp 0x14004b473
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
je 0x14004b511
mov rax, qword [rsp + 0xc8]
add rax, rcx
cmp dword [rsp + 0x68], 0
je 0x14004b4b0
mov r9, qword [rsp + 0x80]
cmp rax, r9
jae 0x14004bd03
mov r8, qword [rsp + 0x70]
cmp rcx, r9
jb 0x14004b450
jmp 0x14004bd17
movzx r9d, word [rsp + 0x6c]
cmp r9, 5
jae 0x14004e3b3
cmp rax, r9
jae 0x14004bd03
mov r8, rdi
cmp rcx, r9
jb 0x14004b450
jmp 0x14004bd17
mov qword [rsp + 0xc0], rcx
jmp 0x14004b535
movzx edx, word [rsp + 0x6c]
sub rdx, r9
jne 0x14004b444
test r8d, r8d
je 0x14004b51b
cmp qword [rsp + 0x80], rdx
jb 0x14004b530
mov qword [rsp + 0x80], rdx
jmp 0x14004b530
mov r8d, dword [rsp + 0x68]
test r8d, r8d
jne 0x14004b4fd
movzx eax, word [rsp + 0x6c]
cmp rdx, rax
jae 0x14004b530
mov word [rsp + 0x6c], dx
nop word [rax + rax]
movups xmmword [r13 + 0x58], xmm6
imul eax, r15d, 0x9e3779b9
imul ecx, r15d, 0x31415926
xor eax, ecx
imul rax, rax, 0x39a
shr rax, 0x1f
and eax, 0xfffffffe
lea rdx, [0x14018e8c8]
movzx eax, word [rax + rdx]
add eax, r15d
imul eax, eax, 0x9e3779b9
xor eax, ecx
imul rax, rax, 0x39a
shr rax, 0x1e
and eax, 0xfffffffc
lea rcx, [0x14018effc]
mov ebp, dword [rax + rcx]
mov eax, ebp
shr eax, 8
cmp eax, r15d
mov eax, 0
cmovne ebp, eax
mov r14d, dword [rsp + 0xf8]
cmp r14d, 0x110000
jne 0x14004b5c0
test bpl, bpl
jne 0x14004ba50
mov dword [rsp + 0xf8], r15d
jmp 0x14004b035
cmp byte [rsp + 0xfc], 0
je 0x14004b5f2
cmp byte [rsp + 0xfd], bpl
jae 0x14004b612
mov ecx, r14d
mov edx, r15d
call fcn.14012f2a0
cmp eax, 0x110000
je 0x14004b61b
mov dword [rsp + 0xf8], eax
jmp 0x14004b035
mov ecx, r14d
mov edx, r15d
call fcn.14012f2a0
cmp eax, 0x110000
jne 0x14004b91a
test bpl, bpl
jne 0x14004b61b
jmp 0x14004bac3
test bpl, bpl
je 0x14004ba9c
cmp dword [rsp + 0xd8], 0
je 0x14004b662
mov rdx, qword [rsp + 0xf0]
cmp rdx, qword [rsp + 0xe8]
jne 0x14004b64c
lea rcx, [rsp + 0xe0]
call fcn.14013b9d0
mov rdx, qword [rsp + 0xf0]
mov rax, qword [rsp + 0xe0]
mov dword [rax + rdx*4], r15d
inc qword [rsp + 0xf0]
jmp 0x14004b686
movzx eax, word [rsp + 0xdc]
cmp rax, 3
ja 0x14004b9e4
mov dword [rsp + rax*4 + 0xe0], r15d
inc eax
mov word [rsp + 0xdc], ax
mov byte [rsp + 0xfc], 1
mov byte [rsp + 0xfd], bpl
jmp 0x14004b035
cmp edx, 0x110000
je 0x14004b86a
cmp byte [rsp + 0xd0], 0
je 0x14004b796
cmp edx, 0x80
jb 0x14004b02d
lea r14d, [rdx - 0xac00]
cmp r14d, 0x2ba4
jb 0x14004afca
imul ecx, edx, 0x9e3779b9
imul eax, edx, 0x31415926
xor ecx, eax
imul r8, rcx, 0xee4
shr r8, 0x1f
and r8d, 0xfffffffe
lea r9, [0x14019a900]
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, [0x14019c6c8]
mov r14, qword [r8 + r9]
cmp edx, r14d
jne 0x14004b926
mov rax, r14
shr rax, 0x20
movzx ecx, ax
movzx eax, ax
cmp eax, 0x1667
ja 0x14004e471
shr r14, 0x30
mov edx, 0x1667
sub rdx, rcx
cmp rdx, r14
jb 0x14004e460
lea rax, [0x1401a3de8]
lea r15, [rax + rcx*4]
test r14, r14
jne 0x14004b9a7
jmp 0x14004b035
cmp edx, 0x80
jb 0x14004b02d
lea r14d, [rdx - 0xac00]
cmp r14d, 0x2ba4
jb 0x14004afca
imul eax, edx, 0x9e3779b9
imul ecx, edx, 0x31415926
xor eax, ecx
imul rax, rax, 0x80d
shr rax, 0x20
lea r8, [0x1401922a4]
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, [0x1401932c0]
mov r14, qword [rcx + rax*8]
cmp edx, r14d
jne 0x14004b02d
mov rax, r14
shr rax, 0x20
movzx ecx, ax
movzx eax, ax
cmp eax, 0xd4e
ja 0x14004e44d
shr r14, 0x30
mov edx, 0xd4e
sub rdx, rcx
cmp rdx, r14
jb 0x14004e43c
test r14, r14
je 0x14004b035
lea rax, [0x140197328]
lea rdi, [rax + rcx*4]
shl r14, 2
xor r15d, r15d
nop dword [rax]
mov edx, dword [rdi + r15]
mov rcx, r13
call fcn.14004f590
add r15, 4
cmp r14, r15
jne 0x14004b850
jmp 0x14004b035
mov byte [rsp + 0xb8], 2
mov r8d, dword [rsp + 0x68]
test r8d, r8d
mov rdx, qword [rsp + 0x80]
movzx eax, word [rsp + 0x6c]
mov rcx, rdx
cmove rcx, rax
test rcx, rcx
je 0x14004ba60
mov rcx, qword [rsp + 0xc8]
test r8d, r8d
je 0x14004b8bb
mov r8, qword [rsp + 0x70]
lea rdi, [rsp + 0x70]
mov rax, rdx
sub rax, rcx
jae 0x14004b8dc
jmp 0x14004e3fe
cmp ax, 5
lea rdi, [rsp + 0x70]
jae 0x14004e426
mov rdx, rax
mov r8, rdi
mov rax, rdx
sub rax, rcx
jb 0x14004e3fe
lea rcx, [r8 + rcx*8]
mov rdx, rax
call fcn.14004eca0
mov r8d, dword [rsp + 0x68]
test r8d, r8d
je 0x14004b907
mov r9, qword [rsp + 0x80]
mov qword [rsp + 0xc8], r9
jmp 0x14004b3da
movzx r9d, word [rsp + 0x6c]
mov qword [rsp + 0xc8], r9
jmp 0x14004b3da
mov dword [rsp + 0xf8], eax
jmp 0x14004b035
imul rcx, rcx, 0x80d
shr rcx, 0x20
lea r8, [0x1401922a4]
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, [0x1401932c0]
mov r14, qword [rcx + rax*8]
cmp edx, r14d
jne 0x14004b02d
mov rax, r14
shr rax, 0x20
movzx ecx, ax
movzx eax, ax
cmp eax, 0xd4e
ja 0x14004e44d
shr r14, 0x30
mov edx, 0xd4e
sub rdx, rcx
cmp rdx, r14
jb 0x14004e43c
lea rax, [0x140197328]
lea r15, [rax + rcx*4]
test r14, r14
je 0x14004b035
shl r14, 2
xor edi, edi
nop dword [rax]
mov edx, dword [r15 + rdi]
mov rcx, r13
call fcn.14004f590
add rdi, 4
cmp r14, rdi
jne 0x14004b9b0
jmp 0x14004b035
shl ecx, 6
or ecx, edi
mov edx, ecx
jmp 0x14004b6c9
shl ecx, 0xc
or r9d, ecx
mov edx, r9d
jmp 0x14004b6c9
lea rcx, [rsp + 0x140]
lea rdx, [rsp + 0xdc]
mov r8d, r15d
call fcn.140050320
cmp dword [rsp + 0xd8], 0
je 0x14004ba27
cmp qword [rsp + 0xe8], 0
je 0x14004ba27
mov r8, qword [rsp + 0xe0]
mov rcx, qword [0x1401be0e8]
xor edx, edx
call sub.kernel32.dll_HeapFree
movdqu xmm0, xmmword [rsp + 0x140]
movdqu xmm1, xmmword [rsp + 0x150]
movdqu xmmword [r13 + 0x80], xmm1
movdqu xmmword [r13 + 0x70], xmm0
jmp 0x14004b686
mov r14d, r15d
jmp 0x14004bba0
mov qword [rsp + 0x58], 2
mov qword [rsp + 0x60], 0
mov r14d, dword [rsp + 0xf8]
mov eax, 2
cmp r14d, 0x110000
je 0x14004af51
mov dword [rsp + 0xf8], 0x110000
jmp 0x14004bba0
mov dword [rsp + 0xf8], r15d
mov byte [rsp + 0xfc], 0
mov qword [rsp + 0x58], 1
mov qword [rsp + 0x60], 0
jmp 0x14004bba0
mov dword [rsp + 0xf8], r15d
jmp 0x14004bba0
mov rdx, qword [rsp + 0x60]
mov eax, dword [rsp + 0xd8]
test eax, eax
je 0x14004bafe
cmp rdx, qword [rsp + 0xf0]
jae 0x14004bb53
mov r8, qword [rsp + 0xe0]
jmp 0x14004bb1d
mov rcx, qword [rsp + 0xe0]
jmp 0x14004bb3c
movzx ecx, word [rsp + 0xdc]
cmp rcx, 5
jae 0x14004e484
lea r8, [rsp + 0xe0]
cmp rdx, rcx
jae 0x14004bb61
mov r14d, dword [r8 + rdx*4]
inc rdx
mov qword [rsp + 0x58], 2
mov qword [rsp + 0x60], rdx
jmp 0x14004bba0
lea rcx, [rsp + 0xe0]
mov r14d, dword [rcx + rax*4]
inc rax
mov qword [rsp + 0x58], 1
mov qword [rsp + 0x60], rax
jmp 0x14004bba0
mov qword [rsp + 0xf0], 0
jmp 0x14004bb76
cmp word [rsp + 0xdc], 0
je 0x14004bb76
mov word [rsp + 0xdc], 0
mov r14d, dword [rsp + 0xf8]
mov dword [rsp + 0xf8], 0x110000
cmp r14d, 0x110000
je 0x14004bd79
nop word cs:[rax + rax]
cmp r14d, 0x80
jae 0x14004bbe0
mov rdi, qword [rsp + 0x330]
mov rdx, qword [rdi + 0x10]
cmp rdx, qword [rdi + 8]
jne 0x14004bbc7
mov rcx, rdi
call fcn.1400359a0
mov rdx, qword [rdi + 0x10]
mov rax, qword [rdi]
mov byte [rax + rdx], r14b
inc rdx
mov qword [rdi + 0x10], rdx
mov rax, qword [rsp + 0x58]
jmp 0x14004af51
mov dword [rsp + 0x140], 0
mov eax, r14d
cmp r14d, 0x800
jae 0x14004bc1e
shr eax, 6
or al, 0xc0
mov byte [rsp + 0x140], al
and r14b, 0x3f
or r14b, 0x80
mov byte [rsp + 0x141], r14b
mov r14d, 2
jmp 0x14004bca0
cmp r14d, 0x10000
jae 0x14004bc5c
shr eax, 0xc
or al, 0xe0
mov byte [rsp + 0x140], al
mov eax, r14d
shr eax, 6
and al, 0x3f
or al, 0x80
mov byte [rsp + 0x141], al
and r14b, 0x3f
or r14b, 0x80
mov byte [rsp + 0x142], r14b
mov r14d, 3
jmp 0x14004bca0
shr eax, 0x12
or al, 0xf0
mov byte [rsp + 0x140], al
mov eax, r14d
shr eax, 0xc
and al, 0x3f
or al, 0x80
mov byte [rsp + 0x141], al
mov eax, r14d
shr eax, 6
and al, 0x3f
or al, 0x80
mov byte [rsp + 0x142], al
and r14b, 0x3f
or r14b, 0x80
mov byte [rsp + 0x143], r14b
mov r14d, 4
mov rcx, qword [rsp + 0x330]
mov rax, qword [rcx + 8]
mov r15, qword [rcx + 0x10]
sub rax, r15
cmp rax, r14
jb 0x14004bce7
mov rdi, qword [rsp + 0x330]
mov rcx, qword [rdi]
add rcx, r15
lea rdx, [rsp + 0x140]
mov r8, r14
call sub.msvcrt.dll_memcpy
add r15, r14
mov qword [rdi + 0x10], r15
mov rax, qword [rsp + 0x58]
jmp 0x14004af51
mov rdi, qword [rsp + 0x330]
mov rcx, rdi
mov rdx, r15
mov r8, r14
call fcn.140058000
mov r15, qword [rdi + 0x10]
jmp 0x14004bcb8
lea r8, str._Users_spectrum_.cargo_registry_src_index.crates.io_6f17d22bba15001f_unicode_normalization_0.1.22_src_decompose.rs
mov rcx, rax
mov rdx, r9
call fcn.14000aa40
ud2
lea r8, str._Users_spectrum_.cargo_registry_src_index.crates.io_6f17d22bba15001f_unicode_normalization_0.1.22_src_decompose.rs
mov rdx, r9
call fcn.14000aa40
ud2
lea r8, [0x14016b5e0]
mov edx, 0x75a
mov rcx, 0xffffffffffffffff
call fcn.14000aa40
ud2
lea r8, [0x14016b5f8]
mov edx, 0x1f73
call fcn.14000aa40
ud2
lea r8, [0x14016b610]
mov edx, 0x1f73
call fcn.14000aa40
ud2
lea r8, str._Users_spectrum_.cargo_registry_src_index.crates.io_6f17d22bba15001f_unicode_normalization_0.1.22_src_decompose.rs
mov rdx, rax
call fcn.14000aa40
ud2
cmp dword [rsp + 0x68], 0
je 0x14004bdbc
cmp qword [rsp + 0x78], 0
mov rbx, qword [rsp + 0x338]
mov r13, qword [rsp + 0x118]
mov rsi, qword [rsp + 0x330]
je 0x14004bdd4
mov r8, qword [rsp + 0x70]
mov rcx, qword [0x1401be0e8]
xor edx, edx
call sub.kernel32.dll_HeapFree
mov eax, dword [rsp + 0xd8]
jmp 0x14004bdd4
mov rbx, qword [rsp + 0x338]
mov r13, qword [rsp + 0x118]
mov rsi, qword [rsp + 0x330]
test eax, eax
je 0x14004bdf9
cmp qword [rsp + 0xe8], 0
je 0x14004bdf9
mov r8, qword [rsp + 0xe0]
mov rcx, qword [0x1401be0e8]
xor edx, edx
call sub.kernel32.dll_HeapFree
mov qword [rsp + 0x128], 8
xorps xmm6, xmm6
movups xmmword [rsp + 0x130], xmm6
mov rax, qword [rsi]
mov rcx, qword [rsi + 0x10]
mov qword [rsp + 0x140], 0
mov qword [rsp + 0x148], rcx
mov qword [rsp + 0x150], rax
mov qword [rsp + 0x158], rcx
mov qword [rsp + 0x160], 0
mov qword [rsp + 0x168], rcx
mov qword [rsp + 0x170], 1
movabs rax, 0x2e0000002e
mov qword [rsp + 0x178], rax
mov word [rsp + 0x180], 1
and qword [rsp + 0x1a8], 0xffffffffffff00ff
mov sil, 1
lea rbp, [rsp + 0x140]
lea r12, [0x14018a500]
mov r15d, 0xff
movdqa xmm7, xmmword [0x140148810]
movdqa xmm8, xmmword [0x140148820]
movdqa xmm14, xmmword [0x140148880]
movdqa xmm15, xmmword [0x140148890]
movdqa xmm9, xmmword [0x1401488a0]
movdqa xmm10, xmmword [0x1401488b0]
movdqa xmm12, xmmword [0x1401488d0]
movdqa xmm13, xmmword [0x1401488e0]
movdqa xmm11, xmmword [0x1401488f0]
mov dword [rsp + 0x34], 0
jmp 0x14004bf23
mov byte [rsp + 0x108], 1
mov al, 1
mov dword [rsp + 0x34], eax
xor esi, esi
mov rbx, qword [rsp + 0x338]
mov r13, qword [rsp + 0x118]
lea rbp, [rsp + 0x140]
mov r15d, 0xff
mov rcx, rbp
call fcn.14004e690
test rax, rax
je 0x14004da7a
mov rdi, rax
mov r14, rdx
test sil, 1
jne 0x14004bf64
mov rdx, qword [rbx + 0x10]
cmp rdx, qword [rbx + 8]
jne 0x14004bf56
mov rcx, rbx
call fcn.1400359a0
mov rdx, qword [rbx + 0x10]
mov rax, qword [rbx]
mov byte [rax + rdx], 0x2e
inc rdx
mov qword [rbx + 0x10], rdx
cmp r14, 4
jb 0x14004bf76
cmp dword [rdi], 0x2d2d6e78
je 0x14004c12e
test byte [rsp + 0x34], 1
jne 0x14004c0df
test r14, r14
je 0x14004c0d7
mov rax, rdi
add rax, r14
mov rcx, rdi
jmp 0x14004bf9e
cmp rcx, rax
je 0x14004c0d7
movzx edx, byte [rcx]
test dl, dl
js 0x14004bfb7
inc rcx
lea r8d, [rdx - 0x21]
cmp r8d, 0x5e
jb 0x14004bf95
jmp 0x14004c04f
mov r8d, edx
and r8d, 0x1f
movzx r10d, byte [rcx + 1]
and r10d, 0x3f
cmp dl, 0xdf
jbe 0x14004c016
movzx r9d, byte [rcx + 2]
shl r10d, 6
and r9d, 0x3f
or r9d, r10d
cmp dl, 0xf0
jb 0x14004c033
movzx edx, byte [rcx + 3]
and r8d, 7
shl r8d, 0x12
shl r9d, 6
and edx, 0x3f
or edx, r9d
or edx, r8d
cmp edx, 0x110000
je 0x14004c0d7
add rcx, 4
lea r8d, [rdx - 0x21]
cmp r8d, 0x5e
jb 0x14004bf95
jmp 0x14004c04f
add rcx, 2
shl r8d, 6
or r8d, r10d
mov edx, r8d
lea r8d, [rdx - 0x21]
cmp r8d, 0x5e
jae 0x14004c04f
jmp 0x14004bf95
add rcx, 3
shl r8d, 0xc
or r9d, r8d
mov edx, r9d
lea r8d, [rdx - 0x21]
cmp r8d, 0x5e
jb 0x14004bf95
mov r8d, 0x5a6
xor r10d, r10d
mov r9d, 0x5a6
jmp 0x14004c06c
mov r9, r8
sub r8, r10
jbe 0x14004bf95
shr r8, 1
add r8, r10
lea r11, [r8 + r8*2]
xor esi, esi
cmp dword [r12 + r11*4], edx
seta sil
cmp dword [r12 + r11*4 + 4], edx
cmovb esi, r15d
cmp sil, 1
je 0x14004c060
movzx r10d, sil
cmp r10d, 0xff
jne 0x14004c0af
inc r8
mov r10, r8
mov r8, r9
sub r8, r10
ja 0x14004c06c
jmp 0x14004bf95
movzx edx, byte [r12 + r11*4 + 8]
cmp rdx, 0x11
ja 0x14004bf95
mov r8d, 0x20003
bt r8, rdx
jae 0x14004bf95
mov al, 1
mov dword [rsp + 0x34], eax
jmp 0x14004c0df
mov dword [rsp + 0x34], 0
mov rcx, rdi
mov rdx, r14
mov r8, r13
lea r9, [rsp + 0x108]
call fcn.14004e8f0
mov rax, qword [rbx + 8]
mov r15, qword [rbx + 0x10]
sub rax, r15
cmp rax, r14
jb 0x14004c5f4
mov rcx, qword [rbx]
add rcx, r15
mov rdx, rdi
mov r8, r14
call sub.msvcrt.dll_memcpy
add r14, r15
mov qword [rbx + 0x10], r14
xor esi, esi
mov r15d, 0xff
jmp 0x14004bf23
lea r13, [rdi + 4]
add r14, 0xfffffffffffffffc
mov qword [rsp + 0x138], 0
mov qword [rsp + 0x58], r13
mov qword [rsp + 0x60], r14
mov qword [rsp + 0x68], 0
mov qword [rsp + 0x70], r14
mov qword [rsp + 0x78], 1
movabs rax, 0x2d0000002d
mov qword [rsp + 0x80], rax
lea rdx, [rdi + 0xb]
and rdx, 0xfffffffffffffff8
sub rdx, r13
mov r8, rdi
add r8, 3
mov rbp, r14
movabs r11, 0x8080808080808080
jmp 0x14004c1a4
mov qword [rsp + 0x70], rbp
cmp rbp, r14
ja 0x14004c2a0
mov rcx, rbp
mov r9, rbp
cmp rbp, rdx
jb 0x14004c1c5
mov eax, ebp
sub eax, edx
and eax, 0xf
mov rcx, rbp
sub rcx, rax
jb 0x14004e563
mov r9, rdx
lea rax, [r13 + rbp]
sub rax, r13
sub rax, rcx
lea r10, [r8 + rbp]
nop word cs:[rax + rax]
test rax, rax
je 0x14004c1fa
dec rax
cmp byte [r10], 0x2d
lea r10, [r10 - 1]
jne 0x14004c1e0
add rax, rcx
mov rbp, rax
jmp 0x14004c24c
mov rax, rcx
cmp rcx, r9
jbe 0x14004c230
lea rcx, [rax - 0x10]
movdqu xmm0, xmmword [rdi + rax - 0xc]
movdqa xmm1, xmm0
pxor xmm1, xmm7
paddq xmm1, xmm8
pandn xmm0, xmm1
pshufd xmm1, xmm0, 0xee
por xmm1, xmm0
movq r10, xmm1
test r10, r11
je 0x14004c1fa
cmp rax, rbp
ja 0x14004e54f
mov rbp, rax
sub rbp, 1
jb 0x14004c2a0
cmp byte [r8 + rax], 0x2d
mov rax, rbp
jne 0x14004c23c
cmp rbp, r14
jae 0x14004c196
mov al, 0x2d
cmp byte [r13 + rbp], al
jne 0x14004c196
test rbp, rbp
je 0x14004c60b
cmp rbp, r14
jae 0x14004c27c
cmp byte [r13 + rbp], 0xbf
jle 0x14004e618
lea r8, [rbp + 1]
mov rax, r14
sub rax, r8
jbe 0x14004c624
cmp byte [r13 + r8], 0xbf
jle 0x14004e5fc
mov r14, r8
jmp 0x14004c62a
lea rax, str.NoneSome
mov qword [rsp + 0x100], rax
xor ebp, ebp
mov rcx, rbp
cmp rbp, 8
jb 0x14004c648
mov rcx, qword [rsp + 0x100]
lea rdx, [rcx + 7]
and rdx, 0xfffffffffffffff8
mov rax, rdx
sub rax, rcx
mov rcx, rbp
cmp rax, rbp
ja 0x14004c648
movabs rcx, 0x8080808080808080
mov r8, qword [rsp + 0x100]
test qword [r8], rcx
jne 0x14004bef5
cmp rdx, qword [rsp + 0x100]
mov ecx, 8
cmove rax, rcx
lea rcx, [rbp - 8]
cmp rax, rcx
jae 0x14004c33a
movabs rdx, 0x8080808080808080
mov r8, qword [rsp + 0x100]
test qword [r8 + rax], rdx
jne 0x14004bef5
add rax, 8
cmp rax, rcx
jb 0x14004c315
movabs rax, 0x8080808080808080
mov rdx, qword [rsp + 0x100]
test qword [rdx + rcx], rax
jne 0x14004bef5
add r14, r13
mov dword [rsp + 0x40], pe_nt_image_headers64
mov ebx, 0x48
xor edx, edx
xor r15d, r15d
mov edi, ebp
cmp r13, r14
mov rax, rdx
mov qword [rsp + 0x38], rdx
je 0x14004c5b7
lea r9d, [rbx + 0x1a]
inc r13
mov r10d, ebx
neg r10d
mov r11d, 1
mov esi, 0x24
mov ecx, r15d
movzx eax, byte [r13 - 1]
lea edx, [rax - 0x30]
cmp dl, 0xa
jb 0x14004c3bb
lea edx, [rax - 0x41]
cmp dl, 0x1a
jb 0x14004c3bf
add al, 0x9f
mov edx, eax
cmp al, 0x19
jbe 0x14004c3bf
jmp 0x14004bef5
add al, 0xea
mov edx, eax
test r11d, r11d
je 0x14004e40c
movzx r8d, dl
mov eax, ecx
not eax
xor edx, edx
div r11d
cmp eax, r8d
jb 0x14004bef5
mov eax, r11d
imul eax, r8d
add ecx, eax
lea eax, [r10 + rsi]
cmp esi, r9d
mov edx, 0x1a
cmovae eax, edx
cmp esi, ebx
mov edx, 1
cmovbe eax, edx
cmp eax, r8d
ja 0x14004c443
mov r8d, 0x24
sub r8d, eax
mov eax, r8d
mul r11d
jo 0x14004bef5
cmp r13, r14
je 0x14004bef5
add esi, 0x24
imul r11d, r8d
inc r13
movzx eax, byte [r13 - 1]
lea edx, [rax - 0x30]
cmp dl, 0xa
jae 0x14004c3a6
jmp 0x14004c3bb
mov r10d, edi
inc r10d
je 0x14004e497
mov eax, ecx
sub eax, r15d
test r15d, r15d
mov r8d, 2
mov edx, 0x2bc
cmove r8d, edx
xor ebx, ebx
xor edx, edx
div r8d
mov r8d, eax
xor edx, edx
div r10d
add eax, r8d
cmp eax, 0x1c8
jb 0x14004c4b0
xor ebx, ebx
mov r9d, 0xd41d41d5
mov edx, eax
imul rdx, r9
shr rdx, 0x20
mov r8d, eax
sub r8d, edx
shr r8d, 1
add r8d, edx
shr r8d, 5
add ebx, 0x24
cmp eax, 0x3e57
mov eax, r8d
ja 0x14004c487
jmp 0x14004c4b3
mov r8d, eax
lea eax, [r8*4]
lea eax, [rax + rax*8]
add r8d, 0x26
xor edx, edx
div r8w
mov r11d, eax
mov eax, ecx
xor edx, edx
div r10d
add dword [rsp + 0x40], eax
jb 0x14004bef5
cmp dword [rsp + 0x40], 0x110000
je 0x14004bef5
mov eax, dword [rsp + 0x40]
xor eax, 0xd800
add eax, 0xffef0000
cmp eax, 0xffef0800
jb 0x14004bef5
mov edi, r10d
mov r15d, edx
mov rax, qword [rsp + 0x128]
mov esi, edx
mov rdx, qword [rsp + 0x38]
test rdx, rdx
je 0x14004c544
mov rcx, rdx
shl rcx, 4
xor r9d, r9d
jmp 0x14004c532
add r9, 0x10
cmp rcx, r9
je 0x14004c544
mov r8, qword [rax + r9]
cmp r8, rsi
jb 0x14004c529
inc r8
mov qword [rax + r9], r8
jmp 0x14004c529
cmp rdx, qword [rsp + 0x130]
jne 0x14004c57d
lea rcx, [rsp + 0x128]
mov word [rsp + 0x190], r11w
call fcn.140050660
movzx r11d, word [rsp + 0x190]
mov rax, qword [rsp + 0x128]
mov rdx, qword [rsp + 0x138]
movzx ecx, r11w
add ebx, ecx
mov rcx, rdx
shl rcx, 4
mov qword [rax + rcx], rsi
mov r8d, dword [rsp + 0x40]
mov dword [rax + rcx + 8], r8d
inc rdx
mov qword [rsp + 0x138], rdx
inc r15d
cmp r13, r14
mov rax, rdx
mov qword [rsp + 0x38], rdx
jne 0x14004c37e
mov rax, qword [rsp + 0x128]
mov qword [rsp + 0x48], rax
cmp rdx, 0x15
jae 0x14004c66c
cmp qword [rsp + 0x38], 1
jbe 0x14004cd37
mov r8d, 1
mov rcx, qword [rsp + 0x48]
mov rdx, qword [rsp + 0x38]
call fcn.14004ebd0
jmp 0x14004cd37
mov rcx, rbx
mov rdx, r15
mov r8, r14
call fcn.140058000
mov r15, qword [rbx + 0x10]
jmp 0x14004c109
mov qword [rsp + 0x100], r13
xor ebp, ebp
mov rcx, rbp
cmp rbp, 8
jae 0x14004c2be
jmp 0x14004c648
jne 0x14004e5fc
add r14, r13
mov qword [rsp + 0x100], r13
mov r13, r14
mov r14, rax
mov rcx, rbp
cmp rbp, 8
jae 0x14004c2be
mov rax, rcx
sub rax, 1
jb 0x14004c356
mov rdx, qword [rsp + 0x100]
cmp byte [rdx + rcx - 1], 0
mov rcx, rax
jns 0x14004c648
jmp 0x14004bef5
movzx eax, byte [0x1401be180]
mov rax, qword [0x1401be0e8]
test rax, rax
jne 0x14004c694
call sub.kernel32.dll_GetProcessHeap
test rax, rax
je 0x14004e637
mov qword [0x1401be0e8], rax
mov rcx, qword [rsp + 0x38]
lea r8, [rcx*8]
movabs rcx, 0x7ffffffffffffff0
and r8, rcx
mov rcx, rax
xor edx, edx
call sub.kernel32.dll_HeapAlloc
mov qword [rsp + 0x50], rax
test rax, rax
je 0x14004e637
movzx eax, byte [0x1401be180]
mov rax, qword [0x1401be0e8]
test rax, rax
jne 0x14004c6ee
call sub.kernel32.dll_GetProcessHeap
test rax, rax
je 0x14004e651
mov qword [0x1401be0e8], rax
mov r8d, 0x100
mov rcx, rax
xor edx, edx
call sub.kernel32.dll_HeapAlloc
test rax, rax
je 0x14004e651
mov r14, rax
mov rbx, qword [rsp + 0x48]
lea rax, [rbx + 0x20]
mov qword [rsp + 0x198], rax
lea rax, [rbx + 8]
mov qword [rsp + 0x1b8], rax
lea rax, [rbx - 8]
mov qword [rsp + 0x1b0], rax
lea rax, [rbx - 0x10]
mov qword [rsp + 0x1c0], rax
mov eax, 0x10
mov qword [rsp + 0x1a0], rax
xor r15d, r15d
xor r13d, r13d
mov rdx, qword [rsp + 0x38]
mov rsi, qword [rsp + 0x50]
jmp 0x14004c775
mov r13d, 1
mov r15, qword [rsp + 0x120]
cmp r15, rdx
jae 0x14004cd15
mov r8, rdx
sub r8, r15
mov rax, r15
shl rax, 4
lea rcx, [rbx + rax]
cmp r8, 2
jae 0x14004c7df
mov r10, rdx
mov rdi, r10
sub rdi, r15
jb 0x14004e574
cmp r10, rdx
ja 0x14004e574
jae 0x14004c80d
cmp r8, 0xa
jae 0x14004c80d
lea rdi, [r15 + 0xa]
cmp rdi, rdx
cmovae rdi, rdx
mov qword [rsp + 0x120], rdi
sub rdi, r15
jb 0x14004e5be
cmp r8, 1
adc r8, 0
mov rdx, rdi
call fcn.14004ebd0
mov rdx, qword [rsp + 0x38]
jmp 0x14004c815
mov rbx, qword [rcx]
mov r9, qword [rcx + 0x10]
cmp r9, rbx
jae 0x14004cbe2
cmp r8, 2
jne 0x14004cbfc
lea r10, [r15 + 2]
mov r8d, 2
mov rbx, qword [rsp + 0x48]
jmp 0x14004cc7b
mov qword [rsp + 0x120], r10
cmp r13, qword [rsp + 0x1a0]
jne 0x14004c8ba
mov qword [rsp + 0x40], r15
mov qword [rsp + 0x188], r14
movzx eax, byte [0x1401be180]
mov rax, qword [0x1401be0e8]
test rax, rax
jne 0x14004c858
call sub.kernel32.dll_GetProcessHeap
test rax, rax
je 0x14004e58e
mov qword [0x1401be0e8], rax
mov r8, r13
shl r8, 5
mov rcx, rax
xor edx, edx
call sub.kernel32.dll_HeapAlloc
test rax, rax
je 0x14004e58e
mov r14, rax
lea rax, [r13*2]
mov qword [rsp + 0x1a0], rax
mov r8, r13
shl r8, 4
mov rcx, r14
mov r15, qword [rsp + 0x188]
mov rdx, r15
call sub.msvcrt.dll_memcpy
mov rcx, qword [0x1401be0e8]
xor edx, edx
mov r8, r15
call sub.kernel32.dll_HeapFree
mov rdx, qword [rsp + 0x38]
mov r15, qword [rsp + 0x40]
mov rax, r13
shl rax, 4
mov qword [r14 + rax], rdi
mov qword [r14 + rax + 8], r15
inc r13
mov rax, r13
cmp r13, 2
mov qword [rsp + 0x188], r14
jae 0x14004c970
jmp 0x14004c764
mov rdi, r15
mov rdx, rsi
mov rbx, qword [rsp + 0x48]
sub r14, rdx
mov rcx, rdi
mov r8, r14
call sub.msvcrt.dll_memcpy
mov rax, qword [rsp + 0x1e0]
add rax, r12
mov rcx, qword [rsp + 0x1d0]
mov qword [rcx], rax
mov rax, qword [rsp + 0x1e8]
mov rcx, qword [rsp + 0x1c8]
mov qword [rcx], rax
mov rcx, qword [rsp + 0x1d8]
lea rdx, [rcx + 0x10]
mov rax, qword [rsp + 0x190]
not rax
mov r8, qword [rsp + 0x40]
add r8, rax
shl r8, 4
call sub.msvcrt.dll_memmove
mov rax, qword [rsp + 0x1f0]
cmp rax, 1
mov rdx, qword [rsp + 0x38]
mov r14, qword [rsp + 0x188]
jbe 0x14004c75e
mov r13, rax
lea r11, [rax - 1]
mov rcx, r11
shl rcx, 4
mov rax, qword [r14 + rcx]
mov rcx, qword [r14 + rcx + 8]
add rcx, rax
cmp rcx, rdx
je 0x14004c9db
mov r10, r13
shl r10, 4
mov r8, qword [r10 + r14 - 0x20]
cmp r8, rax
jbe 0x14004c9db
cmp r13, 2
jbe 0x14004ccff
lea rdi, [r13 - 3]
mov rcx, rdi
shl rcx, 4
mov rcx, qword [r14 + rcx]
lea r9, [r8 + rax]
cmp rcx, r9
jbe 0x14004c9f0
cmp r13, 3
jbe 0x14004cd0a
add r8, rcx
cmp qword [r10 + r14 - 0x40], r8
jbe 0x14004c9f0
jmp 0x14004c764
cmp r13, 3
jb 0x14004c9f5
lea rdi, [r13 - 3]
mov rcx, rdi
shl rcx, 4
mov rcx, qword [r14 + rcx]
cmp rcx, rax
jb 0x14004c9f9
lea rdi, [r13 - 2]
cmp r13, rdi
jbe 0x14004e4ef
lea rax, [rdi + 1]
mov qword [rsp + 0x40], r13
cmp r13, rax
jbe 0x14004e4b1
mov r8, rdi
shl r8, 4
mov rcx, qword [r14 + r8 + 8]
shl rax, 4
mov r9, qword [r14 + rax]
mov r13, qword [r14 + rax + 8]
add r13, r9
mov rsi, r13
sub rsi, rcx
jb 0x14004e52d
mov qword [rsp + 0x190], rdi
cmp r13, rdx
ja 0x14004e53e
mov qword [rsp + 0x1e0], r9
mov qword [rsp + 0x1f0], r11
lea rdx, [r14 + r8]
mov qword [rsp + 0x1d8], rdx
mov r12, qword [r14 + r8]
lea rdx, [r14 + rax]
mov qword [rsp + 0x1d0], rdx
lea rax, [r14 + rax + 8]
mov qword [rsp + 0x1c8], rax
mov qword [rsp + 0x1e8], rcx
mov rdi, rcx
shl rdi, 4
add rdi, rbx
mov r14, r12
shl r14, 4
lea r15, [rdi + r14]
shl r13, 4
mov rbx, rsi
sub rbx, r12
cmp rbx, r12
jae 0x14004cb51
mov r14, rbx
shl r14, 4
mov rsi, qword [rsp + 0x50]
mov rcx, rsi
mov rdx, r15
mov r8, r14
call sub.msvcrt.dll_memcpy
add r14, rsi
test r12, r12
jle 0x14004c8e7
test rbx, rbx
jle 0x14004c8e7
add r13, qword [rsp + 0x1c0]
mov rbx, qword [rsp + 0x48]
mov rax, r15
mov rcx, r14
mov rdx, qword [r14 - 0x10]
mov r8, qword [r15 - 0x10]
cmp rdx, r8
mov r15d, 0
sbb r15, r15
cmp rdx, r8
mov r14d, 0
adc r14, 0xffffffffffffffff
shl r15, 4
add r15, rax
shl r14, 4
add r14, rcx
cmp rdx, r8
mov rax, r14
cmovb rax, r15
movdqu xmm0, xmmword [rax]
movdqu xmmword [r13], xmm0
cmp r15, rdi
jbe 0x14004cb49
add r13, 0xfffffffffffffff0
cmp r14, rsi
ja 0x14004caf2
mov rdi, r15
jmp 0x14004cbda
mov rbx, qword [rsp + 0x50]
mov rcx, rbx
mov rdx, rdi
mov r8, r14
call sub.msvcrt.dll_memcpy
add r14, rbx
test r12, r12
jle 0x14004cbcb
cmp rsi, r12
mov rbx, qword [rsp + 0x48]
jle 0x14004cbd5
add r13, rbx
mov rsi, qword [rsp + 0x50]
mov rdx, rsi
mov r8, rdx
mov rcx, qword [r15]
xor edx, edx
xor eax, eax
cmp rcx, qword [r8]
setae dl
setb cl
mov r9, r8
cmovb r9, r15
movdqu xmm0, xmmword [r9]
movdqu xmmword [rdi], xmm0
add rdi, 0x10
shl rdx, 4
add rdx, r8
cmp rdx, r14
jae 0x14004c8f2
mov al, cl
shl rax, 4
add r15, rax
cmp r15, r13
jb 0x14004cb81
jmp 0x14004c8f2
mov rsi, qword [rsp + 0x50]
jmp 0x14004c8ea
mov rsi, qword [rsp + 0x50]
mov rdx, rsi
jmp 0x14004c8f2
cmp r8, 2
jne 0x14004cc2a
lea r10, [r15 + 2]
mov r8d, 2
mov rbx, qword [rsp + 0x48]
jmp 0x14004c78f
mov rdx, qword [rsp + 0x198]
lea r11, [rdx + rax]
mov r10d, 2
mov rsi, r9
mov rdi, rsi
mov rsi, qword [r11]
cmp rsi, rdi
jae 0x14004cc59
inc r10
add r11, 0x10
cmp r8, r10
jne 0x14004cc11
jmp 0x14004cc56
mov rdx, qword [rsp + 0x198]
lea r11, [rdx + rax]
mov r10d, 2
mov rsi, r9
mov rdi, rsi
mov rsi, qword [r11]
cmp rsi, rdi
jb 0x14004cc59
inc r10
add r11, 0x10
cmp r8, r10
jne 0x14004cc3f
mov r10, r8
mov rdx, qword [rsp + 0x38]
mov rsi, qword [rsp + 0x50]
lea r11, [r10 + r15]
mov r8, r10
mov r10, r11
cmp r9, rbx
mov rbx, qword [rsp + 0x48]
jae 0x14004c78f
cmp r15, r10
ja 0x14004e5d7
cmp r10, rdx
ja 0x14004e5eb
cmp r8, 2
jb 0x14004c78f
mov r9, r15
mov qword [rsp + 0x120], r10
mov rdx, r8
shr rdx, 1
add rax, qword [rsp + 0x1b8]
lea r9, [r15 + r8]
shl r9, 4
add r9, qword [rsp + 0x1b0]
mov r10, qword [rax - 8]
mov r11d, dword [rax]
mov rsi, qword [r9 - 8]
mov edi, dword [r9]
mov qword [rax - 8], rsi
mov dword [rax], edi
mov qword [r9 - 8], r10
mov dword [r9], r11d
add rax, 0x10
add r9, 0xfffffffffffffff0
dec rdx
jne 0x14004ccc0
mov rdx, qword [rsp + 0x38]
mov rsi, qword [rsp + 0x50]
mov r10, qword [rsp + 0x120]
jmp 0x14004c78f
mov r13d, 2
jmp 0x14004c764
mov r13d, 3
jmp 0x14004c764
mov rcx, qword [0x1401be0e8]
xor edx, edx
mov r8, r14
call sub.kernel32.dll_HeapFree
mov rcx, qword [0x1401be0e8]
xor edx, edx
mov r8, rsi
call sub.kernel32.dll_HeapFree
mov r10, qword [rsp + 0x38]
lea r8, [r10 + rbp]
mov rcx, qword [rsp + 0x338]
mov rax, qword [rcx + 8]
mov rdx, qword [rcx + 0x10]
mov rcx, rdx
mov qword [rsp + 0x40], rdx
sub rax, rdx
cmp rax, r8
jb 0x14004d9a5
mov r15, qword [rsp + 0x100]
add rbp, r15
xor ebx, ebx
xor r13d, r13d
cmp rbx, r10
jb 0x14004ce1f
cmp r15, rbp
je 0x14004d00e
movzx r8d, byte [r15]
test r8b, r8b
js 0x14004cd9e
inc r15
movzx esi, r8b
inc r13
jmp 0x14004cee3
movzx eax, r8b
and eax, 0x1f
movzx r9d, byte [r15 + 1]
and r9d, 0x3f
cmp r8b, 0xdf
jbe 0x14004cdf6
movzx edx, byte [r15 + 2]
shl r9d, 6
and edx, 0x3f
or edx, r9d
cmp r8b, 0xf0
jb 0x14004cdff
movzx esi, byte [r15 + 3]
and eax, 7
shl eax, 0x12
shl edx, 6
and esi, 0x3f
or esi, edx
or esi, eax
cmp esi, 0x110000
je 0x14004d00e
add r15, 4
mov rcx, r15
jmp 0x14004ce9e
add r15, 2
jmp 0x14004cec0
add r15, 3
jmp 0x14004ced1
mov rax, qword [rdi]
mov byte [rax + rdx], sil
inc rdx
mov qword [rdi + 0x10], rdx
cmp rbx, r10
jae 0x14004cd7d
mov rax, rbx
shl rax, 4
mov rcx, qword [rsp + 0x48]
cmp qword [rcx + rax], r13
jne 0x14004ce3d
inc rbx
mov esi, dword [rcx + rax + 8]
jmp 0x14004ced8
mov rcx, r15
mov r15, rbp
cmp rcx, rbp
je 0x14004ce3d
movzx r8d, byte [rcx]
test r8b, r8b
jns 0x14004ceae
movzx eax, r8b
and eax, 0x1f
movzx r9d, byte [rcx + 1]
and r9d, 0x3f
cmp r8b, 0xe0
jb 0x14004ceb9
movzx edx, byte [rcx + 2]
shl r9d, 6
and edx, 0x3f
or edx, r9d
cmp r8b, 0xf0
jb 0x14004ceca
movzx esi, byte [rcx + 3]
add rcx, 4
and eax, 7
shl eax, 0x12
shl edx, 6
and esi, 0x3f
or esi, edx
or esi, eax
mov r15, rcx
cmp esi, 0x110000
je 0x14004ce3d
mov r15, rcx
cmp esi, 0x110000
jne 0x14004ced8
jmp 0x14004d00e
inc rcx
mov r15, rcx
jmp 0x14004cd92
add rcx, 2
mov r15, rcx
shl eax, 6
or eax, r9d
mov esi, eax
jmp 0x14004ced8
add rcx, 3
mov r15, rcx
shl eax, 0xc
or eax, edx
mov esi, eax
inc r13
cmp esi, 0x80
jae 0x14004cf0f
mov rdi, qword [rsp + 0x338]
mov rdx, qword [rdi + 0x10]
cmp rdx, qword [rdi + 8]
jne 0x14004ce08
mov rcx, rdi
call fcn.1400359a0
mov r10, qword [rsp + 0x38]
mov rdx, qword [rdi + 0x10]
jmp 0x14004ce08
mov dword [rsp + 0x58], 0
mov eax, esi
cmp esi, 0x800
jae 0x14004cf3e
shr eax, 6
or al, 0xc0
mov byte [rsp + 0x58], al
and sil, 0x3f
or sil, 0x80
mov byte [rsp + 0x59], sil
mov edi, 2
jmp 0x14004cfa5
cmp esi, 0x10000
jae 0x14004cf70
shr eax, 0xc
or al, 0xe0
mov byte [rsp + 0x58], al
mov eax, esi
shr eax, 6
and al, 0x3f
or al, 0x80
mov byte [rsp + 0x59], al
and sil, 0x3f
or sil, 0x80
mov byte [rsp + 0x5a], sil
mov edi, 3
jmp 0x14004cfa5
shr eax, 0x12
or al, 0xf0
mov byte [rsp + 0x58], al
mov eax, esi
shr eax, 0xc
and al, 0x3f
or al, 0x80
mov byte [rsp + 0x59], al
mov eax, esi
shr eax, 6
and al, 0x3f
or al, 0x80
mov byte [rsp + 0x5a], al
and sil, 0x3f
or sil, 0x80
mov byte [rsp + 0x5b], sil
mov edi, 4
mov rcx, qword [rsp + 0x338]
mov rax, qword [rcx + 8]
mov r14, qword [rcx + 0x10]
sub rax, r14
cmp rax, rdi
jb 0x14004cff2
mov rsi, qword [rsp + 0x338]
mov rcx, qword [rsi]
add rcx, r14
lea rdx, [rsp + 0x58]
mov r8, rdi
call sub.msvcrt.dll_memcpy
add r14, rdi
mov qword [rsi + 0x10], r14
mov r10, qword [rsp + 0x38]
cmp rbx, r10
jae 0x14004cd7d
jmp 0x14004ce1f
mov rsi, qword [rsp + 0x338]
mov rcx, rsi
mov rdx, r14
mov r8, rdi
call fcn.140058000
mov r14, qword [rsi + 0x10]
jmp 0x14004cfbd
mov rax, qword [rsp + 0x338]
mov r14, qword [rax]
mov rdx, qword [rax + 0x10]
cmp qword [rsp + 0x40], 0
je 0x14004d040
mov rdi, rdx
sub rdi, qword [rsp + 0x40]
jbe 0x14004d045
mov rax, qword [rsp + 0x40]
cmp byte [r14 + rax], 0xbf
jg 0x14004d04b
jmp 0x14004e66b
mov rdi, rdx
jmp 0x14004d04b
jne 0x14004e66b
add r14, qword [rsp + 0x40]
test byte [rsp + 0x34], 1
jne 0x14004d1aa
test rdi, rdi
je 0x14004d1a2
lea rax, [r14 + rdi]
mov rcx, r14
mov ebx, 0xff
lea r15, [0x14018a500]
jmp 0x14004d082
cmp rcx, rax
je 0x14004d1a2
movzx edx, byte [rcx]
test dl, dl
js 0x14004d08e
inc rcx
jmp 0x14004d10d
mov r8d, edx
and r8d, 0x1f
movzx r10d, byte [rcx + 1]
and r10d, 0x3f
cmp dl, 0xdf
jbe 0x14004d0ef
movzx r9d, byte [rcx + 2]
shl r10d, 6
and r9d, 0x3f
or r9d, r10d
cmp dl, 0xf0
jb 0x14004d0ff
movzx edx, byte [rcx + 3]
and r8d, 7
shl r8d, 0x12
shl r9d, 6
and edx, 0x3f
or edx, r9d
or edx, r8d
cmp edx, 0x110000
je 0x14004d1a2
add rcx, 4
mov ebx, 0xff
lea r15, [0x14018a500]
jmp 0x14004d10d
add rcx, 2
shl r8d, 6
or r8d, r10d
mov edx, r8d
jmp 0x14004d10d
add rcx, 3
shl r8d, 0xc
or r9d, r8d
mov edx, r9d
lea r8d, [rdx - 0x21]
cmp r8d, 0x5e
jb 0x14004d079
mov r8d, 0x5a6
xor r10d, r10d
mov r9d, 0x5a6
jmp 0x14004d138
mov r9, r8
sub r8, r10
jbe 0x14004d079
shr r8, 1
add r8, r10
lea r11, [r8 + r8*2]
xor esi, esi
cmp dword [r15 + r11*4], edx
seta sil
cmp dword [r15 + r11*4 + 4], edx
cmovb esi, ebx
cmp sil, 1
je 0x14004d12c
movzx r10d, sil
cmp r10d, 0xff
jne 0x14004d17a
inc r8
mov r10, r8
mov r8, r9
sub r8, r10
ja 0x14004d138
jmp 0x14004d079
movzx edx, byte [r15 + r11*4 + 8]
cmp rdx, 0x11
ja 0x14004d079
mov r8d, 0x20003
bt r8, rdx
jae 0x14004d079
mov al, 1
mov dword [rsp + 0x34], eax
jmp 0x14004d1aa
mov dword [rsp + 0x34], 0
movq xmm0, qword [rsp + 0x108]
movzx eax, byte [rsp + 0x111]
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 + 0x110]
or al, byte [rsp + 0x112]
or al, cl
xor esi, esi
or al, byte [rsp + 0x113]
mov rbx, qword [rsp + 0x338]
mov r13, qword [rsp + 0x118]
lea rbp, [rsp + 0x140]
mov r15d, 0xff
lea r12, [0x14018a500]
jne 0x14004bf23
test rdi, rdi
je 0x14004da33
lea rsi, [r14 + rdi]
xor r8d, r8d
xor eax, eax
mov rcx, r14
movzx edx, byte [rcx]
test dl, dl
js 0x14004d24a
inc rcx
jmp 0x14004d2d6
mov r9d, edx
and r9d, 0x1f
movzx r11d, byte [rcx + 1]
and r11d, 0x3f
cmp dl, 0xe0
jb 0x14004d29f
movzx r10d, byte [rcx + 2]
shl r11d, 6
and r10d, 0x3f
or r10d, r11d
cmp dl, 0xf0
jb 0x14004d2af
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
je 0x14004d838
add rcx, 4
jmp 0x14004d2bd
add rcx, 2
shl r9d, 6
or r9d, r11d
mov edx, r9d
jmp 0x14004d2bd
add rcx, 3
shl r9d, 0xc
or r10d, r9d
mov edx, r10d
cmp edx, 0x7f
jbe 0x14004d2d6
jmp 0x14004d364
inc rcx
cmp edx, 0x80
jae 0x14004d361
cmp rcx, rsi
je 0x14004d838
movzx edx, byte [rcx]
test dl, dl
jns 0x14004d2c7
mov r8d, edx
and r8d, 0x1f
movzx r10d, byte [rcx + 1]
and r10d, 0x3f
cmp dl, 0xdf
jbe 0x14004d33b
movzx r9d, byte [rcx + 2]
shl r10d, 6
and r9d, 0x3f
or r9d, r10d
cmp dl, 0xf0
jb 0x14004d34e
movzx edx, byte [rcx + 3]
and r8d, 7
shl r8d, 0x12
shl r9d, 6
and edx, 0x3f
or edx, r9d
or edx, r8d
cmp edx, 0x110000
je 0x14004d838
add rcx, 4
jmp 0x14004d2ca
add rcx, 2
shl r8d, 6
or r8d, r10d
mov edx, r8d
jmp 0x14004d2ca
add rcx, 3
shl r8d, 0xc
or r9d, r8d
mov edx, r9d
jmp 0x14004d2ca
xor r8d, r8d
mov r9d, r8d
imul r8d, edx, 0x9e3779b9
imul r10d, edx, 0x31415926
xor r8d, r10d
imul r8, r8, 0x39a
shr r8, 0x1f
and r8d, 0xfffffffe
lea r11, [0x14018e8c8]
movzx r8d, word [r8 + r11]
add r8d, edx
imul r8d, r8d, 0x9e3779b9
xor r8d, r10d
imul r8, r8, 0x39a
shr r8, 0x1e
and r8d, 0xfffffffc
lea r10, [0x14018effc]
mov r8d, dword [r8 + r10]
mov r10d, r8d
shr r10d, 8
cmp r10d, edx
mov r10d, 0
cmovne r8d, r10d
cmp r9b, r8b
jbe 0x14004d3dc
test r8b, r8b
jne case.0x14004d590.3907
lea r9d, [rdx - 0x340]
cmp r9d, 4
ja 0x14004d3f3
cmp r9d, 2
jne case.0x14004d590.3907
cmp edx, 0xd56
jg 0x14004d45a
cmp edx, 0x9de
jg 0x14004d49b
cmp edx, 0x93b
jg 0x14004d5bc
lea r9d, [rdx - 0x30f]
cmp r9d, 0x36
ja 0x14004d434
movabs r10, 0x48020000001005
bt r10, r9
jb 0x14004d6a9
lea r9d, [rdx - 0x374]
cmp r9d, 0x13
ja case.0x14004d590.3908
mov r10d, 0x80401
bt r10d, r9d
jb case.0x14004d590.3907
jmp case.0x14004d590.3908
cmp edx, 0x11126
jg 0x14004d502
cmp edx, 0x102d
jle 0x14004d548
cmp edx, 0x1f70
jg 0x14004d60e
cmp edx, 0x102e
je 0x14004d6a9
cmp edx, 0x1b35
je 0x14004d6a9
jmp case.0x14004d590.3908
cmp edx, 0xbd6
jg 0x14004d593
cmp edx, 0xbbd
jg 0x14004d6a1
lea r9d, [rdx - 0xb3e]
cmp r9d, 0x19
ja 0x14004d4d0
mov r10d, 0x3000001
bt r10d, r9d
jb 0x14004d6a9
lea r9d, [rdx - 0xa33]
cmp r9d, 0x2b
ja 0x14004d4f1
movabs r10, 0x80000000009
bt r10, r9
jb case.0x14004d590.3907
cmp edx, 0x9df
jne case.0x14004d590.3908
jmp case.0x14004d590.3907
cmp edx, 0x114af
jle 0x14004d5e5
lea r9d, [rdx - 0x114b0]
cmp r9d, 0xd
ja 0x14004d52b
mov r10d, 0x2401
bt r10d, r9d
jb 0x14004d6a9
cmp edx, 0x115af
je 0x14004d6a9
cmp edx, 0x11930
je 0x14004d6a9
jmp case.0x14004d590.3908
lea r9d, [rdx - 0xdca]
cmp r9d, 0x15
ja 0x14004d565
mov r10d, 0x200021
bt r10d, r9d
jb 0x14004d6a9
cmp edx, 0xd57
je 0x14004d6a9
lea r9d, [rdx - 0xf43]
cmp r9d, 0x76
ja case.0x14004d590.3908
lea r10, [0x140148900]
movsxd r9, dword [r10 + r9*4]
add r9, r10
jmp r9
cmp edx, 0xcc1
jg 0x14004d666
cmp edx, 0xbd7
je 0x14004d6a9
cmp edx, 0xc56
je 0x14004d6a9
jmp case.0x14004d590.3908
cmp edx, 0x93c
je 0x14004d6a9
cmp edx, 0x9be
je 0x14004d6a9
cmp edx, 0x9d7
je 0x14004d6a9
jmp case.0x14004d590.3908
cmp edx, 0x11127
je 0x14004d6a9
cmp edx, 0x1133e
je 0x14004d6a9
cmp edx, 0x11357
je 0x14004d6a9
jmp case.0x14004d590.3908
cmp edx, 0xfa0f
jle 0x14004d678
cmp edx, 0x110ba
je 0x14004d6a9
lea r9d, [rdx - 0xfa10]
cmp r9d, 0x12
ja 0x14004d63f
mov r10d, 0x50005
bt r10d, r9d
jb case.0x14004d590.3907
lea r9d, [rdx - 0xfb1d]
cmp r9d, 0x21
ja case.0x14004d590.3908
movabs r10, 0x200000005
bt r10, r9
jb case.0x14004d590.3907
jmp case.0x14004d590.3908
cmp edx, 0xcc2
je 0x14004d6a9
cmp edx, 0xd3e
je 0x14004d6a9
jmp case.0x14004d590.3908
cmp edx, 0x2125
jg 0x14004d6b9
lea r9d, [rdx - 0x1f71]
cmp r9d, 0x8c
ja case.0x14004d590.3908
lea r10, [0x140148adc]
movsxd r9, dword [r10 + r9*4]
add r9, r10
jmp r9
cmp edx, 0xbbe
jne case.0x14004d590.3908
mov al, 2
cmp rcx, rsi
jne 0x14004d23b
jmp 0x14004d838
lea r9d, [rdx - 0x2329]
cmp r9d, 2
jb case.0x14004d590.3907
cmp edx, 0x2126
je case.0x14004d590.3907
cmp edx, 0x2adc
je case.0x14004d590.3907
movd xmm1, edx
pshufd xmm0, xmm1, 0
movdqa xmm2, xmm0
paddd xmm2, xmmword [0x140148840]
movdqa xmm3, xmm0
paddd xmm3, xmmword [0x140148850]
pxor xmm3, xmm14
movdqa xmm4, xmm9
pcmpgtd xmm4, xmm3
pxor xmm2, xmm14
movdqa xmm3, xmm10
pcmpgtd xmm3, xmm2
packssdw xmm3, xmm4
pmovmskb r9d, xmm3
test r9d, r9d
jne case.0x14004d590.3907
pshufd xmm1, xmm1, 0x50
pand xmm1, xmmword [0x140148830]
pshufd xmm2, xmm1, 4
pcmpeqd xmm2, xmmword [0x140148860]
movdqa xmm3, xmm0
paddd xmm3, xmmword [0x140148870]
pxor xmm3, xmm14
movdqa xmm4, xmm15
pcmpgtd xmm4, xmm3
por xmm4, xmm2
movmskps r9d, xmm4
test r9b, r9b
jne case.0x14004d590.3907
lea r9d, [rdx - 0x1d1bb]
cmp r9d, 6
jb case.0x14004d590.3907
lea r9d, [rdx - 0x2f800]
cmp r9d, 0x21e
jb case.0x14004d590.3907
movd r9d, xmm1
cmp r9d, 0x2000
je case.0x14004d590.3907
cmp r9d, 0x212a
je case.0x14004d590.3907
cmp r9d, 0xfb40
je case.0x14004d590.3907
movdqa xmm1, xmm0
paddd xmm1, xmmword [0x1401488c0]
paddd xmm0, xmm12
pxor xmm0, xmm14
movdqa xmm2, xmm13
pcmpgtd xmm2, xmm0
pxor xmm1, xmm14
movdqa xmm0, xmm11
pcmpgtd xmm0, xmm1
packssdw xmm2, xmm0
pmovmskb r10d, xmm2
test r10d, r10d
jne 0x14004d6a9
lea r10d, [rdx - 0x11a8]
cmp r10d, 0x1b
jb 0x14004d6a9
add edx, 0xffffcf67
cmp edx, 2
jb 0x14004d6a9
cmp r9d, 0x330
jne 0x14004d6ab
jmp 0x14004d6a9
test al, al
je 0x14004da33
movzx eax, al
cmp eax, 1
je case.0x14004d590.3907
lea rax, [rsp + 0x210]
movups xmmword [rax], xmm6
movzx eax, word [rsp + 0x21e]
lea rcx, [rsp + 0xa0]
mov word [rcx + 0x2e], ax
movdqu xmm0, xmmword [rsp + 0x20e]
movdqu xmmword [rcx + 0x1e], xmm0
movups xmmword [rcx], xmm6
mov byte [rcx + 0x10], 0
mov qword [rsp + 0x58], 0
mov dword [rsp + 0x68], 0
mov word [rsp + 0x6c], 0
mov byte [rsp + 0x70], 0
mov dword [rsp + 0x74], 0
mov byte [rsp + 0x78], 0
mov dword [rsp + 0x7c], 0
mov byte [rsp + 0x80], 0
mov dword [rsp + 0x84], 0
mov byte [rsp + 0x88], 0
mov dword [rsp + 0x8c], 0
mov qword [rsp + 0x90], r14
mov qword [rsp + 0x98], rsi
mov dword [rsp + 0xb8], 0
mov word [rsp + 0xbc], 0
mov dword [rsp + 0xd8], 0x110000
mov byte [rsp + 0xdc], 0
mov rbx, r14
cmp rbx, rsi
je 0x14004d9c1
movzx ebp, byte [rbx]
test bpl, bpl
js 0x14004d929
inc rbx
jmp 0x14004d987
mov eax, ebp
and eax, 0x1f
movzx edx, byte [rbx + 1]
and edx, 0x3f
cmp bpl, 0xdf
jbe 0x14004d96f
movzx ecx, byte [rbx + 2]
shl edx, 6
and ecx, 0x3f
or ecx, edx
cmp bpl, 0xf0
jb 0x14004d97c
movzx ebp, byte [rbx + 3]
and eax, 7
shl eax, 0x12
shl ecx, 6
and ebp, 0x3f
or ebp, ecx
or ebp, eax
cmp ebp, 0x110000
je 0x14004d9c1
add rbx, 4
jmp 0x14004d987
add rbx, 2
shl eax, 6
or eax, edx
mov ebp, eax
jmp 0x14004d987
add rbx, 3
shl eax, 0xc
or ecx, eax
mov ebp, ecx
lea rcx, [rsp + 0x58]
call fcn.14004f7d0
mov r15b, 1
cmp eax, 0x110000
je 0x14004d9d7
cmp eax, ebp
je 0x14004d913
jmp 0x14004d9d7
mov rcx, qword [rsp + 0x338]
mov rdx, qword [rsp + 0x40]
call fcn.140058000
mov r10, qword [rsp + 0x38]
jmp 0x14004cd64
lea rcx, [rsp + 0x58]
call fcn.14004f7d0
cmp eax, 0x110000
setne r15b
neg r15b
cmp dword [rsp + 0x68], 0
je 0x14004d9f9
cmp qword [rsp + 0x78], 0
je 0x14004d9f9
mov r8, qword [rsp + 0x70]
mov rcx, qword [0x1401be0e8]
xor edx, edx
call sub.kernel32.dll_HeapFree
cmp dword [rsp + 0xb8], 0
je 0x14004da24
cmp qword [rsp + 0xc8], 0
je 0x14004da24
mov r8, qword [rsp + 0xc0]
mov rcx, qword [0x1401be0e8]
xor edx, edx
call sub.kernel32.dll_HeapFree
test r15b, r15b
je 0x14004da33
mov byte [rsp + 0x10d], 1
jmp 0x14004da4e
mov rcx, r14
mov rdx, rdi
mov r8, qword [rsp + 0x1a8]
lea r9, [rsp + 0x108]
call fcn.14004e8f0
xor esi, esi
mov rbx, qword [rsp + 0x338]
mov r13, qword [rsp + 0x118]
lea rbp, [rsp + 0x140]
mov r15d, 0xff
lea r12, [0x14018a500]
jmp 0x14004bf23
mov rcx, qword [rbx]
mov rdx, qword [rbx + 0x10]
mov r8, qword [rsp + 0x1f8]
test r8, r8
je 0x14004daa2
mov rax, rdx
sub rax, r8
jbe 0x14004daa7
cmp byte [rcx + r8], 0xbf
jg 0x14004daad
jmp 0x14004e5a8
mov rax, rdx
jmp 0x14004daad
jne 0x14004e5a8
add rcx, r8
mov qword [rsp + 0x58], 0
mov qword [rsp + 0x60], rax
mov qword [rsp + 0x68], rcx
mov qword [rsp + 0x70], rax
mov qword [rsp + 0x78], 0
mov qword [rsp + 0x80], rax
mov qword [rsp + 0x88], 1
movabs rax, 0x2e0000002e
mov qword [rsp + 0x90], rax
mov word [rsp + 0x98], 1
test byte [rsp + 0x34], 1
jne 0x14004db1f
lea rsi, [rsp + 0x58]
mov rcx, rsi
call fcn.14004e690
test rax, rax
jne 0x14004db0d
jmp 0x14004e309
lea rsi, [rsp + 0x58]
mov edi, 0xff
mov ebx, 0x62f8
mov rcx, rsi
call fcn.14004e690
test rax, rax
je 0x14004e309
test rdx, rdx
je 0x14004db2e
movzx ecx, byte [rax]
test cl, cl
js 0x14004db51
lea r9, [rax + 1]
jmp 0x14004dbc0
mov r8d, ecx
and r8d, 0x1f
movzx r11d, byte [rax + 1]
and r11d, 0x3f
cmp cl, 0xdf
jbe 0x14004dba2
movzx r10d, byte [rax + 2]
shl r11d, 6
and r10d, 0x3f
or r10d, r11d
cmp cl, 0xf0
jb 0x14004dbb2
movzx ecx, byte [rax + 3]
and r8d, 7
shl r8d, 0x12
shl r10d, 6
and ecx, 0x3f
or ecx, r10d
or ecx, r8d
cmp ecx, 0x110000
je 0x14004db2e
lea r9, [rax + 4]
jmp 0x14004dbc0
lea r9, [rax + 2]
shl r8d, 6
or r8d, r11d
mov ecx, r8d
jmp 0x14004dbc0
lea r9, [rax + 3]
shl r8d, 0xc
or r10d, r8d
mov ecx, r10d
add rdx, rax
mov r8d, 0x5a6
xor r11d, r11d
mov r10d, 0x5a6
jmp 0x14004dbdc
mov r10, r8
sub r8, r11
jbe 0x14004dc3c
shr r8, 1
add r8, r11
lea r13, [r8 + r8*2]
xor ebp, ebp
cmp dword [r12 + r13*4], ecx
seta bpl
cmp dword [r12 + r13*4 + 4], ecx
cmovb ebp, edi
cmp bpl, 1
je 0x14004dbd4
movzx r11d, bpl
cmp r11d, 0xff
jne 0x14004dc1b
inc r8
mov r11, r8
mov r8, r10
sub r8, r11
ja 0x14004dbdc
jmp 0x14004dc3c
movzx ecx, byte [r12 + r13*4 + 8]
test rcx, rcx
je 0x14004ddd4
cmp ecx, 0x11
je 0x14004ddd4
cmp ecx, 9
jne 0x14004e301
cmp r9, rdx
je 0x14004dd4d
movzx ecx, byte [r9]
test cl, cl
js 0x14004dc52
inc r9
jmp 0x14004dcc6
mov r8d, ecx
and r8d, 0x1f
movzx r11d, byte [r9 + 1]
and r11d, 0x3f
cmp cl, 0xdf
jbe 0x14004dca8
movzx r10d, byte [r9 + 2]
shl r11d, 6
and r10d, 0x3f
or r10d, r11d
cmp cl, 0xf0
jb 0x14004dcb8
movzx ecx, byte [r9 + 3]
and r8d, 7
shl r8d, 0x12
shl r10d, 6
and ecx, 0x3f
or ecx, r10d
or ecx, r8d
cmp ecx, 0x110000
je 0x14004dd4d
add r9, 4
jmp 0x14004dcc6
add r9, 2
shl r8d, 6
or r8d, r11d
mov ecx, r8d
jmp 0x14004dcc6
add r9, 3
shl r8d, 0xc
or r10d, r8d
mov ecx, r10d
mov r8d, 0x5a6
xor r11d, r11d
mov r10d, 0x5a6
jmp 0x14004dcec
mov r10, r8
sub r8, r11
jbe 0x14004dc3c
shr r8, 1
add r8, r11
lea r13, [r8 + r8*2]
xor ebp, ebp
cmp dword [r12 + r13*4], ecx
seta bpl
cmp dword [r12 + r13*4 + 4], ecx
cmovb ebp, edi
cmp bpl, 1
je 0x14004dce0
movzx r11d, bpl
cmp r11d, 0xff
jne 0x14004dd2e
inc r8
mov r11, r8
mov r8, r10
sub r8, r11
ja 0x14004dcec
jmp 0x14004dc3c
movzx ecx, byte [r12 + r13*4 + 8]
cmp rcx, 0xe
ja 0x14004e301
bt rbx, rcx
jb 0x14004dc3c
jmp 0x14004e301
movzx ecx, byte [rdx - 1]
test cl, cl
js 0x14004e119
dec rdx
cmp rdx, rax
jne 0x14004e179
cmp ecx, 0x110000
je 0x14004db2e
mov eax, 0x5a6
xor r8d, r8d
mov edx, 0x5a6
jmp 0x14004dd8c
mov rdx, rax
sub rax, r8
jbe 0x14004df9e
shr rax, 1
add rax, r8
lea r9, [rax + rax*2]
xor r10d, r10d
cmp dword [r12 + r9*4], ecx
seta r10b
cmp dword [r12 + r9*4 + 4], ecx
cmovb r10d, edi
cmp r10b, 1
je 0x14004dd80
movzx r8d, r10b
cmp r8d, 0xff
jne 0x14004df92
inc rax
mov r8, rax
mov rax, rdx
sub rax, r8
ja 0x14004dd8c
jmp 0x14004df9e
cmp r9, rdx
je 0x14004df05
xor r8d, r8d
xor ecx, ecx
movzx r10d, byte [r9]
test r10b, r10b
js 0x14004ddf0
inc r9
jmp 0x14004de66
mov r11d, r10d
and r11d, 0x1f
movzx r13d, byte [r9 + 1]
and r13d, 0x3f
cmp r10b, 0xdf
jbe 0x14004de48
movzx ebp, byte [r9 + 2]
shl r13d, 6
and ebp, 0x3f
or ebp, r13d
cmp r10b, 0xf0
jb 0x14004de58
movzx r10d, byte [r9 + 3]
and r11d, 7
shl r11d, 0x12
shl ebp, 6
and r10d, 0x3f
or r10d, ebp
or r10d, r11d
cmp r10d, 0x110000
je 0x14004df0a
add r9, 4
jmp 0x14004de66
add r9, 2
shl r11d, 6
or r11d, r13d
mov r10d, r11d
jmp 0x14004de66
add r9, 3
shl r11d, 0xc
or ebp, r11d
mov r10d, ebp
mov r11d, 0x5a6
xor ebp, ebp
mov r13d, 0x5a6
jmp 0x14004de82
mov r13, r11
sub r11, rbp
jbe 0x14004e301
shr r11, 1
add r11, rbp
lea r15, [r11 + r11*2]
xor r14d, r14d
cmp dword [r12 + r15*4], r10d
seta r14b
cmp dword [r12 + r15*4 + 4], r10d
cmovb r14d, edi
cmp r14b, 1
je 0x14004de76
movzx ebp, r14b
cmp ebp, 0xff
jne 0x14004dec5
inc r11
mov rbp, r11
mov r11, r13
sub r11, rbp
ja 0x14004de82
jmp 0x14004e301
movzx r10d, byte [r12 + r15*4 + 8]
cmp r10d, 1
je 0x14004dedb
cmp r10d, 5
jne 0x14004dee0
mov cl, 1
jmp 0x14004defa
mov r8b, 1
jmp 0x14004defa
cmp r10, 0x11
ja 0x14004e301
mov r11d, 0x260fb
bt r11, r10
jae 0x14004e301
cmp r9, rdx
jne 0x14004dde2
jmp 0x14004df0a
xor ecx, ecx
xor r8d, r8d
movzx r9d, byte [rdx - 1]
test r9b, r9b
js 0x14004e20d
dec rdx
cmp rdx, rax
jne 0x14004e26b
cmp r9d, 0x110000
je 0x14004e301
mov eax, 0x5a6
xor r10d, r10d
mov edx, 0x5a6
jmp 0x14004df4c
mov rdx, rax
sub rax, r10
jbe 0x14004e085
shr rax, 1
add rax, r10
lea r11, [rax + rax*2]
xor ebp, ebp
cmp dword [r12 + r11*4], r9d
seta bpl
cmp dword [r12 + r11*4 + 4], r9d
cmovb ebp, edi
cmp bpl, 1
je 0x14004df40
movzx r10d, bpl
cmp r10d, 0xff
jne 0x14004e079
inc rax
mov r10, rax
mov rax, rdx
sub rax, r10
ja 0x14004df4c
jmp 0x14004e085
cmp byte [r12 + r9*4 + 8], 0xd
je 0x14004db2e
mov eax, 0x5a6
xor r8d, r8d
mov edx, 0x5a6
jmp 0x14004dfb9
mov rdx, rax
sub rax, r8
jbe 0x14004db2e
shr rax, 1
add rax, r8
lea r9, [rax + rax*2]
xor r10d, r10d
cmp dword [r12 + r9*4], ecx
seta r10b
cmp dword [r12 + r9*4 + 4], ecx
cmovb r10d, edi
cmp r10b, 1
je 0x14004dfad
movzx r8d, r10b
cmp r8d, 0xff
jne 0x14004dffd
inc rax
mov r8, rax
mov rax, rdx
sub rax, r8
ja 0x14004dfb9
jmp 0x14004db2e
cmp byte [r12 + r9*4 + 8], 9
je 0x14004db2e
mov eax, 0x5a6
xor r8d, r8d
mov edx, 0x5a6
jmp 0x14004e024
mov rdx, rax
sub rax, r8
jbe 0x14004e301
shr rax, 1
add rax, r8
lea r9, [rax + rax*2]
xor r10d, r10d
cmp dword [r12 + r9*4], ecx
seta r10b
cmp dword [r12 + r9*4 + 4], ecx
cmovb r10d, edi
cmp r10b, 1
je 0x14004e018
movzx r8d, r10b
cmp r8d, 0xff
jne 0x14004e068
inc rax
mov r8, rax
mov rax, rdx
sub rax, r8
ja 0x14004e024
jmp 0x14004e301
cmp byte [r12 + r9*4 + 8], 5
je 0x14004db2e
jmp 0x14004e301
cmp byte [r12 + r11*4 + 8], 0xd
je 0x14004e301
mov eax, 0x5a6
xor r10d, r10d
mov edx, 0x5a6
jmp 0x14004e0a0
mov rdx, rax
sub rax, r10
jbe 0x14004e301
shr rax, 1
add rax, r10
lea r11, [rax + rax*2]
xor ebp, ebp
cmp dword [r12 + r11*4], r9d
seta bpl
cmp dword [r12 + r11*4 + 4], r9d
cmovb ebp, edi
cmp bpl, 1
je 0x14004e094
movzx r10d, bpl
cmp r10d, 0xff
jne 0x14004e0e2
inc rax
mov r10, rax
mov rax, rdx
sub rax, r10
ja 0x14004e0a0
jmp 0x14004e301
movzx eax, byte [r12 + r11*4 + 8]
cmp rax, 0x11
ja 0x14004e301
mov edx, 0x20023
bt rdx, rax
jae 0x14004e301
test r8b, 1
je 0x14004db2e
and cl, 1
je 0x14004db2e
jmp 0x14004e301
movzx r8d, byte [rdx - 2]
cmp r8b, 0xc0
jge 0x14004e149
movzx r9d, byte [rdx - 3]
cmp r9b, 0xc0
jge 0x14004e153
movzx r10d, byte [rdx - 4]
add rdx, 0xfffffffffffffffc
and r10d, 7
shl r10d, 6
and r9d, 0x3f
or r9d, r10d
jmp 0x14004e15b
add rdx, 0xfffffffffffffffe
and r8d, 0x1f
jmp 0x14004e166
add rdx, 0xfffffffffffffffd
and r9d, 0xf
shl r9d, 6
and r8d, 0x3f
or r8d, r9d
shl r8d, 6
and ecx, 0x3f
or ecx, r8d
cmp rdx, rax
je 0x14004dd65
cmp ecx, 0x110000
je 0x14004db2e
mov r8d, 0x5a6
xor r10d, r10d
mov r9d, 0x5a6
jmp 0x14004e1a2
mov r9, r8
sub r8, r10
jbe 0x14004df9e
shr r8, 1
add r8, r10
lea r11, [r8 + r8*2]
xor ebp, ebp
cmp dword [r12 + r11*4], ecx
seta bpl
cmp dword [r12 + r11*4 + 4], ecx
cmovb ebp, edi
cmp bpl, 1
je 0x14004e196
movzx r10d, bpl
cmp r10d, 0xff
jne 0x14004e1e4
inc r8
mov r10, r8
mov r8, r9
sub r8, r10
ja 0x14004e1a2
jmp 0x14004df9e
cmp byte [r12 + r11*4 + 8], 0xd
jne 0x14004df9e
movzx ecx, byte [rdx - 1]
test cl, cl
js 0x14004e119
dec rdx
cmp rdx, rax
jne 0x14004e179
jmp 0x14004dd65
movzx r10d, byte [rdx - 2]
cmp r10b, 0xc0
jge 0x14004e23a
movzx r11d, byte [rdx - 3]
cmp r11b, 0xc0
jge 0x14004e244
movzx ebp, byte [rdx - 4]
add rdx, 0xfffffffffffffffc
and ebp, 7
shl ebp, 6
and r11d, 0x3f
or r11d, ebp
jmp 0x14004e24c
add rdx, 0xfffffffffffffffe
and r10d, 0x1f
jmp 0x14004e257
add rdx, 0xfffffffffffffffd
and r11d, 0xf
shl r11d, 6
and r10d, 0x3f
or r10d, r11d
shl r10d, 6
and r9d, 0x3f
or r9d, r10d
cmp rdx, rax
je 0x14004df24
cmp r9d, 0x110000
je 0x14004e301
mov r10d, 0x5a6
xor r13d, r13d
mov r11d, 0x5a6
jmp 0x14004e295
mov r11, r10
sub r10, r13
jbe 0x14004e085
shr r10, 1
add r10, r13
lea r15, [r10 + r10*2]
xor ebp, ebp
cmp dword [r12 + r15*4], r9d
seta bpl
cmp dword [r12 + r15*4 + 4], r9d
cmovb ebp, edi
cmp bpl, 1
je 0x14004e289
movzx ebp, bpl
cmp ebp, 0xff
jne 0x14004e2d6
inc r10
mov r13, r10
mov r10, r11
sub r10, r13
ja 0x14004e295
jmp 0x14004e085
cmp byte [r12 + r15*4 + 8], 0xd
jne 0x14004e085
movzx r9d, byte [rdx - 1]
test r9b, r9b
js 0x14004e20d
dec rdx
cmp rdx, rax
jne 0x14004e26b
jmp 0x14004df24
mov byte [rsp + 0x10a], 1
mov eax, dword [rsp + 0x110]
mov rcx, qword [rsp + 0x200]
mov dword [rcx + 8], eax
mov rax, qword [rsp + 0x108]
mov qword [rcx], rax
cmp qword [rsp + 0x130], 0
je 0x14004e347
mov r8, qword [rsp + 0x128]
mov rcx, qword [0x1401be0e8]
xor edx, edx
call sub.kernel32.dll_HeapFree
movaps xmm6, xmmword [rsp + 0x220]
movaps xmm7, xmmword [rsp + 0x230]
movaps xmm8, xmmword [rsp + 0x240]
movaps xmm9, xmmword [rsp + 0x250]
movaps xmm10, xmmword [rsp + 0x260]
movaps xmm11, xmmword [rsp + 0x270]
movaps xmm12, xmmword [rsp + 0x280]
movaps xmm13, xmmword [rsp + 0x290]
movaps xmm14, xmmword [rsp + 0x2a0]
movaps xmm15, xmmword [rsp + 0x2b0]
add rsp, 0x2c8
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret
lea r8, str._Users_spectrum_.cargo_registry_src_index.crates.io_6f17d22bba15001f_tinyvec_1.6.0_src_arrayvec.rs
mov edx, 4
mov rcx, r9
call fcn.14000b910
ud2
lea r8, str._Users_spectrum_.cargo_registry_src_index.crates.io_6f17d22bba15001f_tinyvec_1.6.0_src_arrayvec.rs
mov edx, 4
mov rcx, rax
call fcn.14000b910
ud2
lea r8, str._Users_spectrum_.cargo_registry_src_index.crates.io_6f17d22bba15001f_unicode_normalization_0.1.22_src_decompose.rs
call fcn.14000a9c0
ud2
lea rcx, [0x14017a190]
lea r8, [0x14017a1f8]
mov edx, 0x19
call fcn.14000c150
ud2
lea r8, str._Users_spectrum_.cargo_registry_src_index.crates.io_6f17d22bba15001f_tinyvec_1.6.0_src_arrayvec.rs
mov edx, 4
mov rcx, rax
call fcn.14000b910
ud2
lea r8, str._Users_spectrum_.cargo_registry_src_index.crates.io_6f17d22bba15001f_unicode_normalization_0.1.22_src_lookups.rs_
mov rcx, r14
call fcn.14000b910
ud2
lea r8, str._Users_spectrum_.cargo_registry_src_index.crates.io_6f17d22bba15001f_unicode_normalization_0.1.22_src_lookups.rs_
mov edx, 0xd4e
call fcn.14000a9c0
ud2
lea r8, str._Users_spectrum_.cargo_registry_src_index.crates.io_6f17d22bba15001f_unicode_normalization_0.1.22_src_lookups.rs_
mov rcx, r14
call fcn.14000b910
ud2
lea r8, str._Users_spectrum_.cargo_registry_src_index.crates.io_6f17d22bba15001f_unicode_normalization_0.1.22_src_lookups.rs_
mov edx, 0x1667
call fcn.14000a9c0
ud2
lea r8, str._Users_spectrum_.cargo_registry_src_index.crates.io_6f17d22bba15001f_tinyvec_1.6.0_src_arrayvec.rs
mov edx, 4
call fcn.14000b910
ud2
lea rcx, [0x14017a190]
lea r8, [0x14017a1b0]
mov edx, 0x19
call fcn.14000c150
ud2
lea rax, str.Index_out_of_bounds
mov qword [rsp + 0x58], rax
mov qword [rsp + 0x60], 1
lea rax, str.NoneSome
mov qword [rsp + 0x68], rax
pxor xmm0, xmm0
movdqu xmmword [rsp + 0x70], xmm0
lea rdx, str._rustc_a2f5f9691b6ce64c1703feaf9363710dfd7a56cflibrarycore_src_slice_sort.rs
lea rcx, [rsp + 0x58]
call fcn.14000a710
ud2
lea rax, str.Index_out_of_bounds
mov qword [rsp + 0x58], rax
mov qword [rsp + 0x60], 1
lea rax, str.NoneSome
mov qword [rsp + 0x68], rax
pxor xmm0, xmm0
movdqu xmmword [rsp + 0x70], xmm0
lea rdx, str._rustc_a2f5f9691b6ce64c1703feaf9363710dfd7a56cflibrarycore_src_slice_sort.rs
lea rcx, [rsp + 0x58]
call fcn.14000a710
ud2
lea r8, str._rustc_a2f5f9691b6ce64c1703feaf9363710dfd7a56cflibrarycore_src_slice_sort.rs
mov rdx, r13
call fcn.14000feb0
ud2
lea r8, str._rustc_a2f5f9691b6ce64c1703feaf9363710dfd7a56cflibrarycore_src_slice_sort.rs
mov rcx, r13
call fcn.14000b910
ud2
lea r8, str.librarycore_src_slicememchr.rsP_b
mov rcx, rax
mov rdx, rbp
call fcn.14000b910
ud2
lea r8, str.librarycore_src_slicememchr.rsP_b
mov rdx, rbp
call fcn.14000a9c0
ud2
lea rcx, str.assertion_failed:_end___start__end___len
lea r8, str._rustc_a2f5f9691b6ce64c1703feaf9363710dfd7a56cflibrarycore_src_slice_sort.rs
mov edx, 0x2c
call fcn.14000c150
ud2
lea rcx, [0x1401aec10]
lea r8, str._rustc_a2f5f9691b6ce64c1703feaf9363710dfd7a56cflibrarycore_src_slice_sort.rs
mov edx, 0x2b
call fcn.14000c150
ud2
lea rax, [0x14016b640]
mov qword [rsp + 0x20], rax
mov r9, rdx
call fcn.140013640
ud2
lea r8, str._rustc_a2f5f9691b6ce64c1703feaf9363710dfd7a56cflibrarycore_src_slice_sort.rs
mov rcx, r15
mov rdx, qword [rsp + 0x120]
call fcn.14000feb0
ud2
lea r8, str._rustc_a2f5f9691b6ce64c1703feaf9363710dfd7a56cflibrarycore_src_slice_sort.rs
mov rcx, r15
mov rdx, r10
call fcn.14000feb0
ud2
lea r8, str._rustc_a2f5f9691b6ce64c1703feaf9363710dfd7a56cflibrarycore_src_slice_sort.rs
mov rcx, r10
call fcn.14000b910
ud2
lea rax, [0x14017a1e0]
mov qword [rsp + 0x20], rax
mov rcx, r13
mov rdx, r14
mov r9, r14
call fcn.140013640
ud2
lea rax, [0x14017a1c8]
mov qword [rsp + 0x20], rax
mov rcx, r13
mov rdx, r14
xor r8d, r8d
mov r9, rbp
call fcn.140013640
ud2
lea rcx, [0x1401aec10]
lea r8, str._rustc_a2f5f9691b6ce64c1703feaf9363710dfd7a56cflibrarycore_src_slice_sort.rs
mov edx, 0x2b
call fcn.14000c150
ud2
lea rcx, [0x1401aec10]
lea r8, str._rustc_a2f5f9691b6ce64c1703feaf9363710dfd7a56cflibrarycore_src_slice_sort.rs
mov edx, 0x2b
call fcn.14000c150
ud2
lea rax, [0x14016b660]
mov qword [rsp + 0x20], rax
mov rcx, r14
mov r8, qword [rsp + 0x40]
mov r9, rdx
call fcn.140013640
ud2