Function at 0x45b1a0
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, [0x00881090]
mov ebx, 0xff
lea rsi, [0x00884b60]
xor eax, eax
test rax, rax
je 0x45b485
cmp rax, 1
jne 0x45bf20
mov rax, qword [rsp + 0x60]
cmp dword [rsp + 0xd8], 0
je 0x45b3df
cmp rax, qword [rsp + 0xf0]
jb 0x45bf44
mov qword [rsp + 0xf0], 0
jmp 0x45b40f
movzx ecx, word [rsp + 0xdc]
cmp rcx, 4
ja 0x45e8d4
cmp rax, rcx
jb 0x45bf84
cmp word [rsp + 0xdc], 0
je 0x45b40f
mov word [rsp + 0xdc], 0
mov qword [rsp + 0x58], 0
jmp 0x45b485
movzx ebp, r14w
imul edi, ebp, 0x6f75
shr edi, 0x18
lea edx, [rdi + 0x1100]
mov rcx, r13
call fcn.0045af50
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.0045af50
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 0x45b485
add ebp, 0x11a7
movzx edx, bp
mov rcx, r13
call fcn.0045af50
mov r9, qword [rsp + 0xc8]
test r9, r9
jne 0x45b820
movzx r10d, byte [rsp + 0xb8]
cmp r10b, 2
je 0x45bcc2
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 0x45b585
cmp r8, rbp
je 0x45b579
lea rcx, [r8 + 1]
mov qword [rsp + 0xa8], rcx
movzx edx, byte [r8]
test dl, dl
jns 0x45bb1c
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 0x45be1a
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 0x45be26
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.0x45b777.0
mov qword [rsp + 0xa8], 0
cmp r15, r11
je 0x45bcba
lea rdx, [r15 + 1]
mov qword [rsp + 0x90], rdx
movzx ecx, byte [r15]
test cl, cl
js 0x45b5c0
mov r15, rdx
mov edx, ecx
lea ecx, [rdx - 0x2d]
cmp ecx, 2
jae 0x45b670
jmp 0x45bb1c
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 0x45b638
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 0x45b64e
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 0x45b670
jmp 0x45bb1c
shl edx, 6
or edx, r9d
mov r15, r8
lea ecx, [rdx - 0x2d]
cmp ecx, 2
jae 0x45b670
jmp 0x45bb1c
shl edx, 0xc
or r8d, edx
mov r15, rdi
mov edx, r8d
lea ecx, [rdx - 0x2d]
cmp ecx, 2
jb 0x45bb1c
nop word cs:[rax + rax]
cmp edx, 0x110000
je 0x45bcba
lea ecx, [rdx - 0x61]
cmp ecx, 0x1a
jb 0x45bb1c
lea ecx, [rdx - 0x30]
cmp ecx, 0xa
jb 0x45bb1c
mov r8d, 0x75a
xor r9d, r9d
mov ecx, 0x75a
jmp 0x45b6b8
mov rcx, r8
sub r8, r9
jbe 0x45b6ec
shr r8, 1
add r8, r9
xor edi, edi
cmp dword [r12 + r8*8], edx
setne dil
cmovb edi, ebx
cmp dil, 1
je 0x45b6b0
movzx r9d, dil
cmp r9d, 0xff
jne 0x45b6ff
inc r8
mov r9, r8
mov r8, rcx
sub r8, r9
ja 0x45b6b8
dec r9
mov r8, r9
cmp r9, 0x759
ja 0x45c178
movzx r9d, word [r12 + r8*8 + 4]
mov ecx, r9d
and ecx, 0x7fff
test r9w, r9w
js 0x45b740
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 0x45b751
jmp 0x45c192
movzx r8d, cx
cmp r8d, 0x1f73
jae 0x45c1a5
movzx r9d, byte [rsi + rcx*4]
mov r8d, 0
cmp r9d, 1
je case.default.0x45b777
mov r8d, r9d
lea r9, [0x0086bb30]
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 0x45b84e
mov rdx, qword [rsp + 0x70]
mov rax, qword [rsp + 0x80]
cmp rcx, rax
jb 0x45b869
jmp 0x45c1b8
movzx eax, word [rsp + 0x6c]
cmp rax, 5
jae 0x45e838
mov rdx, rdi
cmp rcx, rax
jae 0x45c1b8
mov r15d, dword [rdx + rcx*8 + 4]
inc rcx
cmp rcx, r9
jne 0x45b930
test r8d, r8d
je 0x45b93a
mov rdx, qword [rsp + 0x80]
sub rdx, r9
je 0x45b948
xor ecx, ecx
jmp 0x45b8c3
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 0x45b961
mov rax, qword [rsp + 0xc8]
add rax, rcx
cmp dword [rsp + 0x68], 0
je 0x45b900
mov r9, qword [rsp + 0x80]
cmp rax, r9
jae 0x45c153
mov r8, qword [rsp + 0x70]
cmp rcx, r9
jb 0x45b8a0
jmp 0x45c167
movzx r9d, word [rsp + 0x6c]
cmp r9, 5
jae 0x45e803
cmp rax, r9
jae 0x45c153
mov r8, rdi
cmp rcx, r9
jb 0x45b8a0
jmp 0x45c167
mov qword [rsp + 0xc0], rcx
jmp 0x45b985
movzx edx, word [rsp + 0x6c]
sub rdx, r9
jne 0x45b894
test r8d, r8d
je 0x45b96b
cmp qword [rsp + 0x80], rdx
jb 0x45b980
mov qword [rsp + 0x80], rdx
jmp 0x45b980
mov r8d, dword [rsp + 0x68]
test r8d, r8d
jne 0x45b94d
movzx eax, word [rsp + 0x6c]
cmp rdx, rax
jae 0x45b980
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, [0x00917c90]
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, [0x009183c4]
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 0x45ba10
test bpl, bpl
jne 0x45bea0
mov dword [rsp + 0xf8], r15d
jmp 0x45b485
cmp byte [rsp + 0xfc], 0
je 0x45ba42
cmp byte [rsp + 0xfd], bpl
jae 0x45ba62
mov ecx, r14d
mov edx, r15d
call fcn.005b2680
cmp eax, 0x110000
je 0x45ba6b
mov dword [rsp + 0xf8], eax
jmp 0x45b485
mov ecx, r14d
mov edx, r15d
call fcn.005b2680
cmp eax, 0x110000
jne 0x45bd6a
test bpl, bpl
jne 0x45ba6b
jmp 0x45bf13
test bpl, bpl
je 0x45beec
cmp dword [rsp + 0xd8], 0
je 0x45bab5
mov rdx, qword [rsp + 0xf0]
cmp rdx, qword [rsp + 0xe8]
jne 0x45ba9c
lea rcx, [rsp + 0xe0]
call fcn.005e7da0
mov rdx, qword [rsp + 0xf0]
mov rax, qword [rsp + 0xe0]
mov dword [rax + rdx*4], r15d
inc rdx
mov qword [rsp + 0xf0], rdx
jmp 0x45bad9
movzx eax, word [rsp + 0xdc]
cmp rax, 3
ja 0x45be34
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 0x45b485
cmp edx, 0x110000
je 0x45bcba
cmp byte [rsp + 0xd0], 0
je 0x45bbe9
cmp edx, 0x80
jb 0x45b47d
lea r14d, [rdx - 0xac00]
cmp r14d, 0x2ba4
jb 0x45b41a
imul ecx, edx, 0x9e3779b9
imul eax, edx, 0x31415926
xor ecx, eax
imul r8, rcx, 0xee4
shr r8, 0x1f
and r8d, 0xfffffffe
lea r9, [0x00923cc0]
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, [0x00925a88]
mov r14, qword [r8 + r9]
cmp edx, r14d
jne 0x45bd76
mov rax, r14
shr rax, 0x20
movzx ecx, ax
movzx eax, ax
cmp eax, 0x1667
ja 0x45e8c1
shr r14, 0x30
mov edx, 0x1667
sub rdx, rcx
cmp rdx, r14
jb 0x45e8b0
lea rax, [0x0092d1a8]
lea r15, [rax + rcx*4]
test r14, r14
jne 0x45bdf7
jmp 0x45b485
cmp edx, 0x80
jb 0x45b47d
lea r14d, [rdx - 0xac00]
cmp r14d, 0x2ba4
jb 0x45b41a
imul eax, edx, 0x9e3779b9
imul ecx, edx, 0x31415926
xor eax, ecx
imul rax, rax, 0x80d
shr rax, 0x20
lea r8, [0x0091b66c]
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, [0x0091c688]
mov r14, qword [rcx + rax*8]
cmp edx, r14d
jne 0x45b47d
mov rax, r14
shr rax, 0x20
movzx ecx, ax
movzx eax, ax
cmp eax, 0xd4e
ja 0x45e89d
shr r14, 0x30
mov edx, 0xd4e
sub rdx, rcx
cmp rdx, r14
jb 0x45e88c
test r14, r14
je 0x45b485
lea rax, [0x009206f0]
lea rdi, [rax + rcx*4]
shl r14, 2
xor r15d, r15d
nop
mov edx, dword [rdi + r15]
mov rcx, r13
call fcn.0045af50
add r15, 4
cmp r14, r15
jne 0x45bca0
jmp 0x45b485
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 0x45beb0
mov rcx, qword [rsp + 0xc8]
test r8d, r8d
je 0x45bd0b
mov r8, qword [rsp + 0x70]
lea rdi, [rsp + 0x70]
mov rax, rdx
sub rax, rcx
jae 0x45bd2c
jmp 0x45e84e
cmp ax, 5
lea rdi, [rsp + 0x70]
jae 0x45e876
mov rdx, rax
mov r8, rdi
mov rax, rdx
sub rax, rcx
jb 0x45e84e
lea rcx, [r8 + rcx*8]
mov rdx, rax
call fcn.0045f140
mov r8d, dword [rsp + 0x68]
test r8d, r8d
je 0x45bd57
mov r9, qword [rsp + 0x80]
mov qword [rsp + 0xc8], r9
jmp 0x45b82a
movzx r9d, word [rsp + 0x6c]
mov qword [rsp + 0xc8], r9
jmp 0x45b82a
mov dword [rsp + 0xf8], eax
jmp 0x45b485
imul rcx, rcx, 0x80d
shr rcx, 0x20
lea r8, [0x0091b66c]
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, [0x0091c688]
mov r14, qword [rcx + rax*8]
cmp edx, r14d
jne 0x45b47d
mov rax, r14
shr rax, 0x20
movzx ecx, ax
movzx eax, ax
cmp eax, 0xd4e
ja 0x45e89d
shr r14, 0x30
mov edx, 0xd4e
sub rdx, rcx
cmp rdx, r14
jb 0x45e88c
lea rax, [0x009206f0]
lea r15, [rax + rcx*4]
test r14, r14
je 0x45b485
shl r14, 2
xor edi, edi
nop dword [rax]
mov edx, dword [r15 + rdi]
mov rcx, r13
call fcn.0045af50
add rdi, 4
cmp r14, rdi
jne 0x45be00
jmp 0x45b485
shl ecx, 6
or ecx, edi
mov edx, ecx
jmp 0x45bb1c
shl ecx, 0xc
or r9d, ecx
mov edx, r9d
jmp 0x45bb1c
lea rcx, [rsp + 0x140]
lea rdx, [rsp + 0xdc]
mov r8d, r15d
call fcn.0045ac10
cmp dword [rsp + 0xd8], 0
je 0x45be77
cmp qword [rsp + 0xe8], 0
je 0x45be77
mov r8, qword [rsp + 0xe0]
mov rcx, qword [0x009bf100]
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 0x45bad9
mov r14d, r15d
jmp 0x45bff0
mov qword [rsp + 0x58], 2
mov qword [rsp + 0x60], 0
mov r14d, dword [rsp + 0xf8]
mov eax, 2
cmp r14d, 0x110000
je 0x45b3a1
mov dword [rsp + 0xf8], 0x110000
jmp 0x45bff0
mov dword [rsp + 0xf8], r15d
mov byte [rsp + 0xfc], 0
mov qword [rsp + 0x58], 1
mov qword [rsp + 0x60], 0
jmp 0x45bff0
mov dword [rsp + 0xf8], r15d
jmp 0x45bff0
mov rdx, qword [rsp + 0x60]
mov eax, dword [rsp + 0xd8]
test eax, eax
je 0x45bf4e
cmp rdx, qword [rsp + 0xf0]
jae 0x45bfa3
mov r8, qword [rsp + 0xe0]
jmp 0x45bf6d
mov rcx, qword [rsp + 0xe0]
jmp 0x45bf8c
movzx ecx, word [rsp + 0xdc]
cmp rcx, 5
jae 0x45e8d4
lea r8, [rsp + 0xe0]
cmp rdx, rcx
jae 0x45bfb1
mov r14d, dword [r8 + rdx*4]
inc rdx
mov qword [rsp + 0x58], 2
mov qword [rsp + 0x60], rdx
jmp 0x45bff0
lea rcx, [rsp + 0xe0]
mov r14d, dword [rcx + rax*4]
inc rax
mov qword [rsp + 0x58], 1
mov qword [rsp + 0x60], rax
jmp 0x45bff0
mov qword [rsp + 0xf0], 0
jmp 0x45bfc6
cmp word [rsp + 0xdc], 0
je 0x45bfc6
mov word [rsp + 0xdc], 0
mov r14d, dword [rsp + 0xf8]
mov dword [rsp + 0xf8], 0x110000
cmp r14d, 0x110000
je 0x45c1c9
nop word cs:[rax + rax]
cmp r14d, 0x80
jae 0x45c030
mov rdi, qword [rsp + 0x330]
mov rdx, qword [rdi + 0x10]
cmp rdx, qword [rdi + 8]
jne 0x45c017
mov rcx, rdi
call fcn.005553c0
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 0x45b3a1
mov dword [rsp + 0x140], 0
mov eax, r14d
cmp r14d, 0x800
jae 0x45c06e
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 0x45c0f0
cmp r14d, 0x10000
jae 0x45c0ac
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 0x45c0f0
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 0x45c137
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 0x45b3a1
mov rdi, qword [rsp + 0x330]
mov rcx, rdi
mov rdx, r15
mov r8, r14
call fcn.004097c0
mov r15, qword [rdi + 0x10]
jmp 0x45c108
lea r8, str._root_.cargo_registry_src_index.crates.io_6f17d22bba15001f_unicode_normalization_0.1.22_src_decompose.rs8
mov rcx, rax
mov rdx, r9
call fcn.0044f190
ud2
lea r8, str._root_.cargo_registry_src_index.crates.io_6f17d22bba15001f_unicode_normalization_0.1.22_src_decompose.rs8
mov rdx, r9
call fcn.0044f190
ud2
lea r8, str._root_.cargo_registry_src_index.crates.io_6f17d22bba15001f_idna_0.5.0_src_uts46.rs
mov edx, 0x75a
mov rcx, 0xffffffffffffffff
call fcn.0044f190
ud2
lea r8, str._root_.cargo_registry_src_index.crates.io_6f17d22bba15001f_idna_0.5.0_src_uts46.rs
mov edx, 0x1f73
call fcn.0044f190
ud2
lea r8, str._root_.cargo_registry_src_index.crates.io_6f17d22bba15001f_idna_0.5.0_src_uts46.rs
mov edx, 0x1f73
call fcn.0044f190
ud2
lea r8, str._root_.cargo_registry_src_index.crates.io_6f17d22bba15001f_unicode_normalization_0.1.22_src_decompose.rs8
mov rdx, rax
call fcn.0044f190
ud2
cmp dword [rsp + 0x68], 0
je 0x45c20c
cmp qword [rsp + 0x78], 0
mov rbx, qword [rsp + 0x338]
mov r13, qword [rsp + 0x118]
mov rsi, qword [rsp + 0x330]
je 0x45c224
mov r8, qword [rsp + 0x70]
mov rcx, qword [0x009bf100]
xor edx, edx
call sub.KERNEL32.dll_HeapFree
mov eax, dword [rsp + 0xd8]
jmp 0x45c224
mov rbx, qword [rsp + 0x338]
mov r13, qword [rsp + 0x118]
mov rsi, qword [rsp + 0x330]
test eax, eax
je 0x45c249
cmp qword [rsp + 0xe8], 0
je 0x45c249
mov r8, qword [rsp + 0xe0]
mov rcx, qword [0x009bf100]
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, [0x009138c8]
mov r15d, 0xff
movdqa xmm7, xmmword [0x0086b630]
movdqa xmm8, xmmword [0x0086b640]
movdqa xmm14, xmmword [0x0086b6a0]
movdqa xmm15, xmmword [0x0086b6b0]
movdqa xmm9, xmmword [0x0086b6c0]
movdqa xmm10, xmmword [0x0086b6d0]
movdqa xmm12, xmmword [0x0086b6f0]
movdqa xmm13, xmmword [0x0086b700]
movdqa xmm11, xmmword [0x0086b710]
mov dword [rsp + 0x34], 0
jmp 0x45c373
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.0045eae0
test rax, rax
je 0x45deca
mov rdi, rax
mov r14, rdx
test sil, 1
jne 0x45c3b4
mov rdx, qword [rbx + 0x10]
cmp rdx, qword [rbx + 8]
jne 0x45c3a6
mov rcx, rbx
call fcn.005553c0
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 0x45c3c6
cmp dword [rdi], 0x2d2d6e78
je 0x45c57e
test byte [rsp + 0x34], 1
jne 0x45c52f
test r14, r14
je 0x45c527
mov rax, rdi
add rax, r14
mov rcx, rdi
jmp 0x45c3ee
cmp rcx, rax
je 0x45c527
movzx edx, byte [rcx]
test dl, dl
js 0x45c407
inc rcx
lea r8d, [rdx - 0x21]
cmp r8d, 0x5e
jb 0x45c3e5
jmp 0x45c49f
mov r8d, edx
and r8d, 0x1f
movzx r10d, byte [rcx + 1]
and r10d, 0x3f
cmp dl, 0xdf
jbe 0x45c466
movzx r9d, byte [rcx + 2]
shl r10d, 6
and r9d, 0x3f
or r9d, r10d
cmp dl, 0xf0
jb 0x45c483
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 0x45c527
add rcx, 4
lea r8d, [rdx - 0x21]
cmp r8d, 0x5e
jb 0x45c3e5
jmp 0x45c49f
add rcx, 2
shl r8d, 6
or r8d, r10d
mov edx, r8d
lea r8d, [rdx - 0x21]
cmp r8d, 0x5e
jae 0x45c49f
jmp 0x45c3e5
add rcx, 3
shl r8d, 0xc
or r9d, r8d
mov edx, r9d
lea r8d, [rdx - 0x21]
cmp r8d, 0x5e
jb 0x45c3e5
mov r8d, 0x5a6
xor r10d, r10d
mov r9d, 0x5a6
jmp 0x45c4bc
mov r9, r8
sub r8, r10
jbe 0x45c3e5
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 0x45c4b0
movzx r10d, sil
cmp r10d, 0xff
jne 0x45c4ff
inc r8
mov r10, r8
mov r8, r9
sub r8, r10
ja 0x45c4bc
jmp 0x45c3e5
movzx edx, byte [r12 + r11*4 + 8]
cmp rdx, 0x11
ja 0x45c3e5
mov r8d, 0x20003
bt r8, rdx
jae 0x45c3e5
mov al, 1
mov dword [rsp + 0x34], eax
jmp 0x45c52f
mov dword [rsp + 0x34], 0
mov rcx, rdi
mov rdx, r14
mov r8, r13
lea r9, [rsp + 0x108]
call fcn.0045ee60
mov rax, qword [rbx + 8]
mov r15, qword [rbx + 0x10]
sub rax, r15
cmp rax, r14
jb 0x45ca44
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 0x45c373
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 0x45c5f4
mov qword [rsp + 0x70], rbp
cmp rbp, r14
ja 0x45c6f0
mov rcx, rbp
mov r9, rbp
cmp rbp, rdx
jb 0x45c615
mov eax, ebp
sub eax, edx
and eax, 0xf
mov rcx, rbp
sub rcx, rax
jb 0x45e9b3
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 0x45c64a
dec rax
cmp byte [r10], 0x2d
lea r10, [r10 - 1]
jne 0x45c630
add rax, rcx
mov rbp, rax
jmp 0x45c69c
mov rax, rcx
cmp rcx, r9
jbe 0x45c680
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 0x45c64a
cmp rax, rbp
ja 0x45e99f
mov rbp, rax
sub rbp, 1
jb 0x45c6f0
cmp byte [r8 + rax], 0x2d
mov rax, rbp
jne 0x45c68c
cmp rbp, r14
jae 0x45c5e6
mov al, 0x2d
cmp byte [r13 + rbp], al
jne 0x45c5e6
test rbp, rbp
je 0x45ca5b
cmp rbp, r14
jae 0x45c6cc
cmp byte [r13 + rbp], 0xbf
jle 0x45ea68
lea r8, [rbp + 1]
mov rax, r14
sub rax, r8
jbe 0x45ca74
cmp byte [r13 + r8], 0xbf
jle 0x45ea4c
mov r14, r8
jmp 0x45ca7a
lea rax, str.called__Result::unwrap____on_an__Err__value
mov qword [rsp + 0x100], rax
xor ebp, ebp
mov rcx, rbp
cmp rbp, 8
jb 0x45ca98
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 0x45ca98
movabs rcx, 0x8080808080808080
mov r8, qword [rsp + 0x100]
test qword [r8], rcx
jne 0x45c345
cmp rdx, qword [rsp + 0x100]
mov ecx, 8
cmove rax, rcx
lea rcx, [rbp - 8]
cmp rax, rcx
jae 0x45c78a
movabs rdx, 0x8080808080808080
mov r8, qword [rsp + 0x100]
test qword [r8 + rax], rdx
jne 0x45c345
add rax, 8
cmp rax, rcx
jb 0x45c765
movabs rax, 0x8080808080808080
mov rdx, qword [rsp + 0x100]
test qword [rdx + rcx], rax
jne 0x45c345
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 0x45ca07
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 0x45c80b
lea edx, [rax - 0x41]
cmp dl, 0x1a
jb 0x45c80f
add al, 0x9f
mov edx, eax
cmp al, 0x19
jbe 0x45c80f
jmp 0x45c345
add al, 0xea
mov edx, eax
test r11d, r11d
je 0x45e85c
movzx r8d, dl
mov eax, ecx
not eax
xor edx, edx
div r11d
cmp eax, r8d
jb 0x45c345
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 0x45c893
mov r8d, 0x24
sub r8d, eax
mov eax, r8d
mul r11d
jo 0x45c345
cmp r13, r14
je 0x45c345
add esi, 0x24
imul r11d, r8d
inc r13
movzx eax, byte [r13 - 1]
lea edx, [rax - 0x30]
cmp dl, 0xa
jae 0x45c7f6
jmp 0x45c80b
mov r10d, edi
inc r10d
je 0x45e8e7
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 0x45c900
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 0x45c8d7
jmp 0x45c903
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 0x45c345
cmp dword [rsp + 0x40], 0x110000
je 0x45c345
mov eax, dword [rsp + 0x40]
xor eax, 0xd800
add eax, 0xffef0000
cmp eax, 0xffef0800
jb 0x45c345
mov edi, r10d
mov r15d, edx
mov rax, qword [rsp + 0x128]
mov esi, edx
mov rdx, qword [rsp + 0x38]
test rdx, rdx
je 0x45c994
mov rcx, rdx
shl rcx, 4
xor r9d, r9d
jmp 0x45c982
add r9, 0x10
cmp rcx, r9
je 0x45c994
mov r8, qword [rax + r9]
cmp r8, rsi
jb 0x45c979
inc r8
mov qword [rax + r9], r8
jmp 0x45c979
cmp rdx, qword [rsp + 0x130]
jne 0x45c9cd
lea rcx, [rsp + 0x128]
mov word [rsp + 0x190], r11w
call fcn.004afda0
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 0x45c7ce
mov rax, qword [rsp + 0x128]
mov qword [rsp + 0x48], rax
cmp rdx, 0x15
jae 0x45cabc
cmp qword [rsp + 0x38], 1
jbe 0x45d187
mov r8d, 1
mov rcx, qword [rsp + 0x48]
mov rdx, qword [rsp + 0x38]
call fcn.0045fa30
jmp 0x45d187
mov rcx, rbx
mov rdx, r15
mov r8, r14
call fcn.004097c0
mov r15, qword [rbx + 0x10]
jmp 0x45c559
mov qword [rsp + 0x100], r13
xor ebp, ebp
mov rcx, rbp
cmp rbp, 8
jae 0x45c70e
jmp 0x45ca98
jne 0x45ea4c
add r14, r13
mov qword [rsp + 0x100], r13
mov r13, r14
mov r14, rax
mov rcx, rbp
cmp rbp, 8
jae 0x45c70e
mov rax, rcx
sub rax, 1
jb 0x45c7a6
mov rdx, qword [rsp + 0x100]
cmp byte [rdx + rcx - 1], 0
mov rcx, rax
jns 0x45ca98
jmp 0x45c345
movzx eax, byte [0x009bf181]
mov rax, qword [0x009bf100]
test rax, rax
jne 0x45cae4
call sub.KERNEL32.dll_GetProcessHeap
test rax, rax
je 0x45ea87
mov qword [0x009bf100], 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 0x45ea87
movzx eax, byte [0x009bf181]
mov rax, qword [0x009bf100]
test rax, rax
jne 0x45cb3e
call sub.KERNEL32.dll_GetProcessHeap
test rax, rax
je 0x45eaa1
mov qword [0x009bf100], rax
mov r8d, 0x100
mov rcx, rax
xor edx, edx
call sub.KERNEL32.dll_HeapAlloc
test rax, rax
je 0x45eaa1
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 0x45cbc5
mov r13d, 1
mov r15, qword [rsp + 0x120]
cmp r15, rdx
jae 0x45d165
mov r8, rdx
sub r8, r15
mov rax, r15
shl rax, 4
lea rcx, [rbx + rax]
cmp r8, 2
jae 0x45cc2f
mov r10, rdx
mov rdi, r10
sub rdi, r15
jb 0x45e9c4
cmp r10, rdx
ja 0x45e9c4
jae 0x45cc5d
cmp r8, 0xa
jae 0x45cc5d
lea rdi, [r15 + 0xa]
cmp rdi, rdx
cmovae rdi, rdx
mov qword [rsp + 0x120], rdi
sub rdi, r15
jb 0x45ea0e
cmp r8, 1
adc r8, 0
mov rdx, rdi
call fcn.0045fa30
mov rdx, qword [rsp + 0x38]
jmp 0x45cc65
mov rbx, qword [rcx]
mov r9, qword [rcx + 0x10]
cmp r9, rbx
jae 0x45d032
cmp r8, 2
jne 0x45d04c
lea r10, [r15 + 2]
mov r8d, 2
mov rbx, qword [rsp + 0x48]
jmp 0x45d0cb
mov qword [rsp + 0x120], r10
cmp r13, qword [rsp + 0x1a0]
jne 0x45cd0a
mov qword [rsp + 0x40], r15
mov qword [rsp + 0x188], r14
movzx eax, byte [0x009bf181]
mov rax, qword [0x009bf100]
test rax, rax
jne 0x45cca8
call sub.KERNEL32.dll_GetProcessHeap
test rax, rax
je 0x45e9de
mov qword [0x009bf100], rax
mov r8, r13
shl r8, 5
mov rcx, rax
xor edx, edx
call sub.KERNEL32.dll_HeapAlloc
test rax, rax
je 0x45e9de
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 [0x009bf100]
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 0x45cdc0
jmp 0x45cbb4
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 0x45cbae
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 0x45ce2b
mov r10, r13
shl r10, 4
mov r8, qword [r10 + r14 - 0x20]
cmp r8, rax
jbe 0x45ce2b
cmp r13, 2
jbe 0x45d14f
lea rdi, [r13 - 3]
mov rcx, rdi
shl rcx, 4
mov rcx, qword [r14 + rcx]
lea r9, [r8 + rax]
cmp rcx, r9
jbe 0x45ce40
cmp r13, 3
jbe 0x45d15a
add r8, rcx
cmp qword [r10 + r14 - 0x40], r8
jbe 0x45ce40
jmp 0x45cbb4
cmp r13, 3
jb 0x45ce45
lea rdi, [r13 - 3]
mov rcx, rdi
shl rcx, 4
mov rcx, qword [r14 + rcx]
cmp rcx, rax
jb 0x45ce49
lea rdi, [r13 - 2]
cmp r13, rdi
jbe 0x45e93f
lea rax, [rdi + 1]
mov qword [rsp + 0x40], r13
cmp r13, rax
jbe 0x45e901
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 0x45e97d
mov qword [rsp + 0x190], rdi
cmp r13, rdx
ja 0x45e98e
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 0x45cfa1
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 0x45cd37
test rbx, rbx
jle 0x45cd37
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 0x45cf99
add r13, 0xfffffffffffffff0
cmp r14, rsi
ja 0x45cf42
mov rdi, r15
jmp 0x45d02a
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 0x45d01b
cmp rsi, r12
mov rbx, qword [rsp + 0x48]
jle 0x45d025
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 0x45cd42
mov al, cl
shl rax, 4
add r15, rax
cmp r15, r13
jb 0x45cfd1
jmp 0x45cd42
mov rsi, qword [rsp + 0x50]
jmp 0x45cd3a
mov rsi, qword [rsp + 0x50]
mov rdx, rsi
jmp 0x45cd42
cmp r8, 2
jne 0x45d07a
lea r10, [r15 + 2]
mov r8d, 2
mov rbx, qword [rsp + 0x48]
jmp 0x45cbdf
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 0x45d0a9
inc r10
add r11, 0x10
cmp r8, r10
jne 0x45d061
jmp 0x45d0a6
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 0x45d0a9
inc r10
add r11, 0x10
cmp r8, r10
jne 0x45d08f
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 0x45cbdf
cmp r15, r10
ja 0x45ea27
cmp r10, rdx
ja 0x45ea3b
cmp r8, 2
jb 0x45cbdf
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 0x45d110
mov rdx, qword [rsp + 0x38]
mov rsi, qword [rsp + 0x50]
mov r10, qword [rsp + 0x120]
jmp 0x45cbdf
mov r13d, 2
jmp 0x45cbb4
mov r13d, 3
jmp 0x45cbb4
mov rcx, qword [0x009bf100]
xor edx, edx
mov r8, r14
call sub.KERNEL32.dll_HeapFree
mov rcx, qword [0x009bf100]
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 0x45ddf5
mov r15, qword [rsp + 0x100]
add rbp, r15
xor ebx, ebx
xor r13d, r13d
cmp rbx, r10
jb 0x45d26f
cmp r15, rbp
je 0x45d45e
movzx r8d, byte [r15]
test r8b, r8b
js 0x45d1ee
inc r15
movzx esi, r8b
inc r13
jmp 0x45d333
movzx eax, r8b
and eax, 0x1f
movzx r9d, byte [r15 + 1]
and r9d, 0x3f
cmp r8b, 0xdf
jbe 0x45d246
movzx edx, byte [r15 + 2]
shl r9d, 6
and edx, 0x3f
or edx, r9d
cmp r8b, 0xf0
jb 0x45d24f
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 0x45d45e
add r15, 4
mov rcx, r15
jmp 0x45d2ee
add r15, 2
jmp 0x45d310
add r15, 3
jmp 0x45d321
mov rax, qword [rdi]
mov byte [rax + rdx], sil
inc rdx
mov qword [rdi + 0x10], rdx
cmp rbx, r10
jae 0x45d1cd
mov rax, rbx
shl rax, 4
mov rcx, qword [rsp + 0x48]
cmp qword [rcx + rax], r13
jne 0x45d28d
inc rbx
mov esi, dword [rcx + rax + 8]
jmp 0x45d328
mov rcx, r15
mov r15, rbp
cmp rcx, rbp
je 0x45d28d
movzx r8d, byte [rcx]
test r8b, r8b
jns 0x45d2fe
movzx eax, r8b
and eax, 0x1f
movzx r9d, byte [rcx + 1]
and r9d, 0x3f
cmp r8b, 0xe0
jb 0x45d309
movzx edx, byte [rcx + 2]
shl r9d, 6
and edx, 0x3f
or edx, r9d
cmp r8b, 0xf0
jb 0x45d31a
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 0x45d28d
mov r15, rcx
cmp esi, 0x110000
jne 0x45d328
jmp 0x45d45e
inc rcx
mov r15, rcx
jmp 0x45d1e2
add rcx, 2
mov r15, rcx
shl eax, 6
or eax, r9d
mov esi, eax
jmp 0x45d328
add rcx, 3
mov r15, rcx
shl eax, 0xc
or eax, edx
mov esi, eax
inc r13
cmp esi, 0x80
jae 0x45d35f
mov rdi, qword [rsp + 0x338]
mov rdx, qword [rdi + 0x10]
cmp rdx, qword [rdi + 8]
jne 0x45d258
mov rcx, rdi
call fcn.005553c0
mov r10, qword [rsp + 0x38]
mov rdx, qword [rdi + 0x10]
jmp 0x45d258
mov dword [rsp + 0x58], 0
mov eax, esi
cmp esi, 0x800
jae 0x45d38e
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 0x45d3f5
cmp esi, 0x10000
jae 0x45d3c0
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 0x45d3f5
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 0x45d442
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 0x45d1cd
jmp 0x45d26f
mov rsi, qword [rsp + 0x338]
mov rcx, rsi
mov rdx, r14
mov r8, rdi
call fcn.004097c0
mov r14, qword [rsi + 0x10]
jmp 0x45d40d
mov rax, qword [rsp + 0x338]
mov r14, qword [rax]
mov rdx, qword [rax + 0x10]
cmp qword [rsp + 0x40], 0
je 0x45d490
mov rdi, rdx
sub rdi, qword [rsp + 0x40]
jbe 0x45d495
mov rax, qword [rsp + 0x40]
cmp byte [r14 + rax], 0xbf
jg 0x45d49b
jmp 0x45eabb
mov rdi, rdx
jmp 0x45d49b
jne 0x45eabb
add r14, qword [rsp + 0x40]
test byte [rsp + 0x34], 1
jne 0x45d5fa
test rdi, rdi
je 0x45d5f2
lea rax, [r14 + rdi]
mov rcx, r14
mov ebx, 0xff
lea r15, [0x009138c8]
jmp 0x45d4d2
cmp rcx, rax
je 0x45d5f2
movzx edx, byte [rcx]
test dl, dl
js 0x45d4de
inc rcx
jmp 0x45d55d
mov r8d, edx
and r8d, 0x1f
movzx r10d, byte [rcx + 1]
and r10d, 0x3f
cmp dl, 0xdf
jbe 0x45d53f
movzx r9d, byte [rcx + 2]
shl r10d, 6
and r9d, 0x3f
or r9d, r10d
cmp dl, 0xf0
jb 0x45d54f
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 0x45d5f2
add rcx, 4
mov ebx, 0xff
lea r15, [0x009138c8]
jmp 0x45d55d
add rcx, 2
shl r8d, 6
or r8d, r10d
mov edx, r8d
jmp 0x45d55d
add rcx, 3
shl r8d, 0xc
or r9d, r8d
mov edx, r9d
lea r8d, [rdx - 0x21]
cmp r8d, 0x5e
jb 0x45d4c9
mov r8d, 0x5a6
xor r10d, r10d
mov r9d, 0x5a6
jmp 0x45d588
mov r9, r8
sub r8, r10
jbe 0x45d4c9
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 0x45d57c
movzx r10d, sil
cmp r10d, 0xff
jne 0x45d5ca
inc r8
mov r10, r8
mov r8, r9
sub r8, r10
ja 0x45d588
jmp 0x45d4c9
movzx edx, byte [r15 + r11*4 + 8]
cmp rdx, 0x11
ja 0x45d4c9
mov r8d, 0x20003
bt r8, rdx
jae 0x45d4c9
mov al, 1
mov dword [rsp + 0x34], eax
jmp 0x45d5fa
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, [0x009138c8]
jne 0x45c373
test rdi, rdi
je 0x45de83
lea rsi, [r14 + rdi]
xor r8d, r8d
xor eax, eax
mov rcx, r14
movzx edx, byte [rcx]
test dl, dl
js 0x45d69a
inc rcx
jmp 0x45d726
mov r9d, edx
and r9d, 0x1f
movzx r11d, byte [rcx + 1]
and r11d, 0x3f
cmp dl, 0xe0
jb 0x45d6ef
movzx r10d, byte [rcx + 2]
shl r11d, 6
and r10d, 0x3f
or r10d, r11d
cmp dl, 0xf0
jb 0x45d6ff
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 0x45dc88
add rcx, 4
jmp 0x45d70d
add rcx, 2
shl r9d, 6
or r9d, r11d
mov edx, r9d
jmp 0x45d70d
add rcx, 3
shl r9d, 0xc
or r10d, r9d
mov edx, r10d
cmp edx, 0x7f
jbe 0x45d726
jmp 0x45d7b4
inc rcx
cmp edx, 0x80
jae 0x45d7b1
cmp rcx, rsi
je 0x45dc88
movzx edx, byte [rcx]
test dl, dl
jns 0x45d717
mov r8d, edx
and r8d, 0x1f
movzx r10d, byte [rcx + 1]
and r10d, 0x3f
cmp dl, 0xdf
jbe 0x45d78b
movzx r9d, byte [rcx + 2]
shl r10d, 6
and r9d, 0x3f
or r9d, r10d
cmp dl, 0xf0
jb 0x45d79e
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 0x45dc88
add rcx, 4
jmp 0x45d71a
add rcx, 2
shl r8d, 6
or r8d, r10d
mov edx, r8d
jmp 0x45d71a
add rcx, 3
shl r8d, 0xc
or r9d, r8d
mov edx, r9d
jmp 0x45d71a
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, [0x00917c90]
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, [0x009183c4]
mov r8d, dword [r8 + r10]
mov r10d, r8d
shr r10d, 8
cmp r10d, edx
mov r10d, 0
cmovne r8d, r10d
cmp r9b, r8b
jbe 0x45d82c
test r8b, r8b
jne case.0x45d9e0.3907
lea r9d, [rdx - 0x340]
cmp r9d, 4
ja 0x45d843
cmp r9d, 2
jne case.0x45d9e0.3907
cmp edx, 0xd56
jg 0x45d8aa
cmp edx, 0x9de
jg 0x45d8eb
cmp edx, 0x93b
jg 0x45da0c
lea r9d, [rdx - 0x30f]
cmp r9d, 0x36
ja 0x45d884
movabs r10, 0x48020000001005
bt r10, r9
jb 0x45daf9
lea r9d, [rdx - 0x374]
cmp r9d, 0x13
ja case.0x45d9e0.3908
mov r10d, 0x80401
bt r10d, r9d
jb case.0x45d9e0.3907
jmp case.0x45d9e0.3908
cmp edx, 0x11126
jg 0x45d952
cmp edx, 0x102d
jle 0x45d998
cmp edx, 0x1f70
jg 0x45da5e
cmp edx, 0x102e
je 0x45daf9
cmp edx, 0x1b35
je 0x45daf9
jmp case.0x45d9e0.3908
cmp edx, 0xbd6
jg 0x45d9e3
cmp edx, 0xbbd
jg 0x45daf1
lea r9d, [rdx - 0xb3e]
cmp r9d, 0x19
ja 0x45d920
mov r10d, 0x3000001
bt r10d, r9d
jb 0x45daf9
lea r9d, [rdx - 0xa33]
cmp r9d, 0x2b
ja 0x45d941
movabs r10, 0x80000000009
bt r10, r9
jb case.0x45d9e0.3907
cmp edx, 0x9df
jne case.0x45d9e0.3908
jmp case.0x45d9e0.3907
cmp edx, 0x114af
jle 0x45da35
lea r9d, [rdx - 0x114b0]
cmp r9d, 0xd
ja 0x45d97b
mov r10d, 0x2401
bt r10d, r9d
jb 0x45daf9
cmp edx, 0x115af
je 0x45daf9
cmp edx, 0x11930
je 0x45daf9
jmp case.0x45d9e0.3908
lea r9d, [rdx - 0xdca]
cmp r9d, 0x15
ja 0x45d9b5
mov r10d, 0x200021
bt r10d, r9d
jb 0x45daf9
cmp edx, 0xd57
je 0x45daf9
lea r9d, [rdx - 0xf43]
cmp r9d, 0x76
ja case.0x45d9e0.3908
lea r10, [0x0086b720]
movsxd r9, dword [r10 + r9*4]
add r9, r10
jmp r9
cmp edx, 0xcc1
jg 0x45dab6
cmp edx, 0xbd7
je 0x45daf9
cmp edx, 0xc56
je 0x45daf9
jmp case.0x45d9e0.3908
cmp edx, 0x93c
je 0x45daf9
cmp edx, 0x9be
je 0x45daf9
cmp edx, 0x9d7
je 0x45daf9
jmp case.0x45d9e0.3908
cmp edx, 0x11127
je 0x45daf9
cmp edx, 0x1133e
je 0x45daf9
cmp edx, 0x11357
je 0x45daf9
jmp case.0x45d9e0.3908
cmp edx, 0xfa0f
jle 0x45dac8
cmp edx, 0x110ba
je 0x45daf9
lea r9d, [rdx - 0xfa10]
cmp r9d, 0x12
ja 0x45da8f
mov r10d, 0x50005
bt r10d, r9d
jb case.0x45d9e0.3907
lea r9d, [rdx - 0xfb1d]
cmp r9d, 0x21
ja case.0x45d9e0.3908
movabs r10, 0x200000005
bt r10, r9
jb case.0x45d9e0.3907
jmp case.0x45d9e0.3908
cmp edx, 0xcc2
je 0x45daf9
cmp edx, 0xd3e
je 0x45daf9
jmp case.0x45d9e0.3908
cmp edx, 0x2125
jg 0x45db09
lea r9d, [rdx - 0x1f71]
cmp r9d, 0x8c
ja case.0x45d9e0.3908
lea r10, [0x0086b8fc]
movsxd r9, dword [r10 + r9*4]
add r9, r10
jmp r9
cmp edx, 0xbbe
jne case.0x45d9e0.3908
mov al, 2
cmp rcx, rsi
jne 0x45d68b
jmp 0x45dc88
lea r9d, [rdx - 0x2329]
cmp r9d, 2
jb case.0x45d9e0.3907
cmp edx, 0x2126
je case.0x45d9e0.3907
cmp edx, 0x2adc
je case.0x45d9e0.3907
movd xmm1, edx
pshufd xmm0, xmm1, 0
movdqa xmm2, xmm0
paddd xmm2, xmmword [0x0086b660]
movdqa xmm3, xmm0
paddd xmm3, xmmword [0x0086b670]
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.0x45d9e0.3907
pshufd xmm1, xmm1, 0x50
pand xmm1, xmmword [0x0086b650]
pshufd xmm2, xmm1, 4
pcmpeqd xmm2, xmmword [0x0086b680]
movdqa xmm3, xmm0
paddd xmm3, xmmword [0x0086b690]
pxor xmm3, xmm14
movdqa xmm4, xmm15
pcmpgtd xmm4, xmm3
por xmm4, xmm2
movmskps r9d, xmm4
test r9b, r9b
jne case.0x45d9e0.3907
lea r9d, [rdx - 0x1d1bb]
cmp r9d, 6
jb case.0x45d9e0.3907
lea r9d, [rdx - 0x2f800]
cmp r9d, 0x21e
jb case.0x45d9e0.3907
movd r9d, xmm1
cmp r9d, 0x2000
je case.0x45d9e0.3907
cmp r9d, 0x212a
je case.0x45d9e0.3907
cmp r9d, 0xfb40
je case.0x45d9e0.3907
movdqa xmm1, xmm0
paddd xmm1, xmmword [0x0086b6e0]
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 0x45daf9
lea r10d, [rdx - 0x11a8]
cmp r10d, 0x1b
jb 0x45daf9
add edx, 0xffffcf67
cmp edx, 2
jb 0x45daf9
cmp r9d, 0x330
jne 0x45dafb
jmp 0x45daf9
test al, al
je 0x45de83
movzx eax, al
cmp eax, 1
je case.0x45d9e0.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 0x45de11
movzx ebp, byte [rbx]
test bpl, bpl
js 0x45dd79
inc rbx
jmp 0x45ddd7
mov eax, ebp
and eax, 0x1f
movzx edx, byte [rbx + 1]
and edx, 0x3f
cmp bpl, 0xdf
jbe 0x45ddbf
movzx ecx, byte [rbx + 2]
shl edx, 6
and ecx, 0x3f
or ecx, edx
cmp bpl, 0xf0
jb 0x45ddcc
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 0x45de11
add rbx, 4
jmp 0x45ddd7
add rbx, 2
shl eax, 6
or eax, edx
mov ebp, eax
jmp 0x45ddd7
add rbx, 3
shl eax, 0xc
or ecx, eax
mov ebp, ecx
lea rcx, [rsp + 0x58]
call fcn.0045a0b0
mov r15b, 1
cmp eax, 0x110000
je 0x45de27
cmp eax, ebp
je 0x45dd63
jmp 0x45de27
mov rcx, qword [rsp + 0x338]
mov rdx, qword [rsp + 0x40]
call fcn.004097c0
mov r10, qword [rsp + 0x38]
jmp 0x45d1b4
lea rcx, [rsp + 0x58]
call fcn.0045a0b0
cmp eax, 0x110000
setne r15b
neg r15b
cmp dword [rsp + 0x68], 0
je 0x45de49
cmp qword [rsp + 0x78], 0
je 0x45de49
mov r8, qword [rsp + 0x70]
mov rcx, qword [0x009bf100]
xor edx, edx
call sub.KERNEL32.dll_HeapFree
cmp dword [rsp + 0xb8], 0
je 0x45de74
cmp qword [rsp + 0xc8], 0
je 0x45de74
mov r8, qword [rsp + 0xc0]
mov rcx, qword [0x009bf100]
xor edx, edx
call sub.KERNEL32.dll_HeapFree
test r15b, r15b
je 0x45de83
mov byte [rsp + 0x10d], 1
jmp 0x45de9e
mov rcx, r14
mov rdx, rdi
mov r8, qword [rsp + 0x1a8]
lea r9, [rsp + 0x108]
call fcn.0045ee60
xor esi, esi
mov rbx, qword [rsp + 0x338]
mov r13, qword [rsp + 0x118]
lea rbp, [rsp + 0x140]
mov r15d, 0xff
lea r12, [0x009138c8]
jmp 0x45c373
mov rcx, qword [rbx]
mov rdx, qword [rbx + 0x10]
mov r8, qword [rsp + 0x1f8]
test r8, r8
je 0x45def2
mov rax, rdx
sub rax, r8
jbe 0x45def7
cmp byte [rcx + r8], 0xbf
jg 0x45defd
jmp 0x45e9f8
mov rax, rdx
jmp 0x45defd
jne 0x45e9f8
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 0x45df6f
lea rsi, [rsp + 0x58]
mov rcx, rsi
call fcn.0045eae0
test rax, rax
jne 0x45df5d
jmp 0x45e759
lea rsi, [rsp + 0x58]
mov edi, 0xff
mov ebx, 0x62f8
mov rcx, rsi
call fcn.0045eae0
test rax, rax
je 0x45e759
test rdx, rdx
je 0x45df7e
movzx ecx, byte [rax]
test cl, cl
js 0x45dfa1
lea r9, [rax + 1]
jmp 0x45e010
mov r8d, ecx
and r8d, 0x1f
movzx r11d, byte [rax + 1]
and r11d, 0x3f
cmp cl, 0xdf
jbe 0x45dff2
movzx r10d, byte [rax + 2]
shl r11d, 6
and r10d, 0x3f
or r10d, r11d
cmp cl, 0xf0
jb 0x45e002
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 0x45df7e
lea r9, [rax + 4]
jmp 0x45e010
lea r9, [rax + 2]
shl r8d, 6
or r8d, r11d
mov ecx, r8d
jmp 0x45e010
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 0x45e02c
mov r10, r8
sub r8, r11
jbe 0x45e08c
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 0x45e024
movzx r11d, bpl
cmp r11d, 0xff
jne 0x45e06b
inc r8
mov r11, r8
mov r8, r10
sub r8, r11
ja 0x45e02c
jmp 0x45e08c
movzx ecx, byte [r12 + r13*4 + 8]
test rcx, rcx
je 0x45e224
cmp ecx, 0x11
je 0x45e224
cmp ecx, 9
jne 0x45e751
cmp r9, rdx
je 0x45e19d
movzx ecx, byte [r9]
test cl, cl
js 0x45e0a2
inc r9
jmp 0x45e116
mov r8d, ecx
and r8d, 0x1f
movzx r11d, byte [r9 + 1]
and r11d, 0x3f
cmp cl, 0xdf
jbe 0x45e0f8
movzx r10d, byte [r9 + 2]
shl r11d, 6
and r10d, 0x3f
or r10d, r11d
cmp cl, 0xf0
jb 0x45e108
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 0x45e19d
add r9, 4
jmp 0x45e116
add r9, 2
shl r8d, 6
or r8d, r11d
mov ecx, r8d
jmp 0x45e116
add r9, 3
shl r8d, 0xc
or r10d, r8d
mov ecx, r10d
mov r8d, 0x5a6
xor r11d, r11d
mov r10d, 0x5a6
jmp 0x45e13c
mov r10, r8
sub r8, r11
jbe 0x45e08c
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 0x45e130
movzx r11d, bpl
cmp r11d, 0xff
jne 0x45e17e
inc r8
mov r11, r8
mov r8, r10
sub r8, r11
ja 0x45e13c
jmp 0x45e08c
movzx ecx, byte [r12 + r13*4 + 8]
cmp rcx, 0xe
ja 0x45e751
bt rbx, rcx
jb 0x45e08c
jmp 0x45e751
movzx ecx, byte [rdx - 1]
test cl, cl
js 0x45e569
dec rdx
cmp rdx, rax
jne 0x45e5c9
cmp ecx, 0x110000
je 0x45df7e
mov eax, 0x5a6
xor r8d, r8d
mov edx, 0x5a6
jmp 0x45e1dc
mov rdx, rax
sub rax, r8
jbe 0x45e3ee
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 0x45e1d0
movzx r8d, r10b
cmp r8d, 0xff
jne 0x45e3e2
inc rax
mov r8, rax
mov rax, rdx
sub rax, r8
ja 0x45e1dc
jmp 0x45e3ee
cmp r9, rdx
je 0x45e355
xor r8d, r8d
xor ecx, ecx
movzx r10d, byte [r9]
test r10b, r10b
js 0x45e240
inc r9
jmp 0x45e2b6
mov r11d, r10d
and r11d, 0x1f
movzx r13d, byte [r9 + 1]
and r13d, 0x3f
cmp r10b, 0xdf
jbe 0x45e298
movzx ebp, byte [r9 + 2]
shl r13d, 6
and ebp, 0x3f
or ebp, r13d
cmp r10b, 0xf0
jb 0x45e2a8
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 0x45e35a
add r9, 4
jmp 0x45e2b6
add r9, 2
shl r11d, 6
or r11d, r13d
mov r10d, r11d
jmp 0x45e2b6
add r9, 3
shl r11d, 0xc
or ebp, r11d
mov r10d, ebp
mov r11d, 0x5a6
xor ebp, ebp
mov r13d, 0x5a6
jmp 0x45e2d2
mov r13, r11
sub r11, rbp
jbe 0x45e751
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 0x45e2c6
movzx ebp, r14b
cmp ebp, 0xff
jne 0x45e315
inc r11
mov rbp, r11
mov r11, r13
sub r11, rbp
ja 0x45e2d2
jmp 0x45e751
movzx r10d, byte [r12 + r15*4 + 8]
cmp r10d, 1
je 0x45e32b
cmp r10d, 5
jne 0x45e330
mov cl, 1
jmp 0x45e34a
mov r8b, 1
jmp 0x45e34a
cmp r10, 0x11
ja 0x45e751
mov r11d, 0x260fb
bt r11, r10
jae 0x45e751
cmp r9, rdx
jne 0x45e232
jmp 0x45e35a
xor ecx, ecx
xor r8d, r8d
movzx r9d, byte [rdx - 1]
test r9b, r9b
js 0x45e65d
dec rdx
cmp rdx, rax
jne 0x45e6bb
cmp r9d, 0x110000
je 0x45e751
mov eax, 0x5a6
xor r10d, r10d
mov edx, 0x5a6
jmp 0x45e39c
mov rdx, rax
sub rax, r10
jbe 0x45e4d5
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 0x45e390
movzx r10d, bpl
cmp r10d, 0xff
jne 0x45e4c9
inc rax
mov r10, rax
mov rax, rdx
sub rax, r10
ja 0x45e39c
jmp 0x45e4d5
cmp byte [r12 + r9*4 + 8], 0xd
je 0x45df7e
mov eax, 0x5a6
xor r8d, r8d
mov edx, 0x5a6
jmp 0x45e409
mov rdx, rax
sub rax, r8
jbe 0x45df7e
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 0x45e3fd
movzx r8d, r10b
cmp r8d, 0xff
jne 0x45e44d
inc rax
mov r8, rax
mov rax, rdx
sub rax, r8
ja 0x45e409
jmp 0x45df7e
cmp byte [r12 + r9*4 + 8], 9
je 0x45df7e
mov eax, 0x5a6
xor r8d, r8d
mov edx, 0x5a6
jmp 0x45e474
mov rdx, rax
sub rax, r8
jbe 0x45e751
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 0x45e468
movzx r8d, r10b
cmp r8d, 0xff
jne 0x45e4b8
inc rax
mov r8, rax
mov rax, rdx
sub rax, r8
ja 0x45e474
jmp 0x45e751
cmp byte [r12 + r9*4 + 8], 5
je 0x45df7e
jmp 0x45e751
cmp byte [r12 + r11*4 + 8], 0xd
je 0x45e751
mov eax, 0x5a6
xor r10d, r10d
mov edx, 0x5a6
jmp 0x45e4f0
mov rdx, rax
sub rax, r10
jbe 0x45e751
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 0x45e4e4
movzx r10d, bpl
cmp r10d, 0xff
jne 0x45e532
inc rax
mov r10, rax
mov rax, rdx
sub rax, r10
ja 0x45e4f0
jmp 0x45e751
movzx eax, byte [r12 + r11*4 + 8]
cmp rax, 0x11
ja 0x45e751
mov edx, 0x20023
bt rdx, rax
jae 0x45e751
test r8b, 1
je 0x45df7e
and cl, 1
je 0x45df7e
jmp 0x45e751
movzx r8d, byte [rdx - 2]
cmp r8b, 0xc0
jge 0x45e599
movzx r9d, byte [rdx - 3]
cmp r9b, 0xc0
jge 0x45e5a3
movzx r10d, byte [rdx - 4]
add rdx, 0xfffffffffffffffc
and r10d, 7
shl r10d, 6
and r9d, 0x3f
or r9d, r10d
jmp 0x45e5ab
add rdx, 0xfffffffffffffffe
and r8d, 0x1f
jmp 0x45e5b6
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 0x45e1b5
cmp ecx, 0x110000
je 0x45df7e
mov r8d, 0x5a6
xor r10d, r10d
mov r9d, 0x5a6
jmp 0x45e5f2
mov r9, r8
sub r8, r10
jbe 0x45e3ee
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 0x45e5e6
movzx r10d, bpl
cmp r10d, 0xff
jne 0x45e634
inc r8
mov r10, r8
mov r8, r9
sub r8, r10
ja 0x45e5f2
jmp 0x45e3ee
cmp byte [r12 + r11*4 + 8], 0xd
jne 0x45e3ee
movzx ecx, byte [rdx - 1]
test cl, cl
js 0x45e569
dec rdx
cmp rdx, rax
jne 0x45e5c9
jmp 0x45e1b5
movzx r10d, byte [rdx - 2]
cmp r10b, 0xc0
jge 0x45e68a
movzx r11d, byte [rdx - 3]
cmp r11b, 0xc0
jge 0x45e694
movzx ebp, byte [rdx - 4]
add rdx, 0xfffffffffffffffc
and ebp, 7
shl ebp, 6
and r11d, 0x3f
or r11d, ebp
jmp 0x45e69c
add rdx, 0xfffffffffffffffe
and r10d, 0x1f
jmp 0x45e6a7
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 0x45e374
cmp r9d, 0x110000
je 0x45e751
mov r10d, 0x5a6
xor r13d, r13d
mov r11d, 0x5a6
jmp 0x45e6e5
mov r11, r10
sub r10, r13
jbe 0x45e4d5
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 0x45e6d9
movzx ebp, bpl
cmp ebp, 0xff
jne 0x45e726
inc r10
mov r13, r10
mov r10, r11
sub r10, r13
ja 0x45e6e5
jmp 0x45e4d5
cmp byte [r12 + r15*4 + 8], 0xd
jne 0x45e4d5
movzx r9d, byte [rdx - 1]
test r9b, r9b
js 0x45e65d
dec rdx
cmp rdx, rax
jne 0x45e6bb
jmp 0x45e374
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 0x45e797
mov r8, qword [rsp + 0x128]
mov rcx, qword [0x009bf100]
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._root_.cargo_registry_src_index.crates.io_6f17d22bba15001f_tinyvec_1.6.0_src_arrayvec.rs
mov edx, 4
mov rcx, r9
call fcn.0044fa90
ud2
lea r8, str._root_.cargo_registry_src_index.crates.io_6f17d22bba15001f_tinyvec_1.6.0_src_arrayvec.rs
mov edx, 4
mov rcx, rax
call fcn.0044fa90
ud2
lea r8, str._root_.cargo_registry_src_index.crates.io_6f17d22bba15001f_unicode_normalization_0.1.22_src_decompose.rs8
call fcn.0044f110
ud2
lea rcx, [0x0088fba0]
lea r8, [0x0088fc08]
mov edx, 0x19
call fcn.0044fe30
ud2
lea r8, str._root_.cargo_registry_src_index.crates.io_6f17d22bba15001f_tinyvec_1.6.0_src_arrayvec.rs
mov edx, 4
mov rcx, rax
call fcn.0044fa90
ud2
lea r8, str._root_.cargo_registry_src_index.crates.io_6f17d22bba15001f_unicode_normalization_0.1.22_src_lookups.rs
mov rcx, r14
call fcn.0044fa90
ud2
lea r8, str._root_.cargo_registry_src_index.crates.io_6f17d22bba15001f_unicode_normalization_0.1.22_src_lookups.rs
mov edx, 0xd4e
call fcn.0044f110
ud2
lea r8, str._root_.cargo_registry_src_index.crates.io_6f17d22bba15001f_unicode_normalization_0.1.22_src_lookups.rs
mov rcx, r14
call fcn.0044fa90
ud2
lea r8, str._root_.cargo_registry_src_index.crates.io_6f17d22bba15001f_unicode_normalization_0.1.22_src_lookups.rs
mov edx, 0x1667
call fcn.0044f110
ud2
lea r8, str._root_.cargo_registry_src_index.crates.io_6f17d22bba15001f_tinyvec_1.6.0_src_arrayvec.rs
mov edx, 4
call fcn.0044fa90
ud2
lea rcx, [0x0088fba0]
lea r8, [0x0088fbc0]
mov edx, 0x19
call fcn.0044fe30
ud2
lea rax, str.Index_out_of_bounds
mov qword [rsp + 0x58], rax
mov qword [rsp + 0x60], 1
lea rax, str.called__Result::unwrap____on_an__Err__value
mov qword [rsp + 0x68], rax
pxor xmm0, xmm0
movdqu xmmword [rsp + 0x70], xmm0
lea rdx, str._rustc_82e1608dfa6e0b5569232559e3d385fea5a93112librarycore_src_slice_sort.rs
lea rcx, [rsp + 0x58]
call fcn.0044f0d0
ud2
lea rax, str.Index_out_of_bounds
mov qword [rsp + 0x58], rax
mov qword [rsp + 0x60], 1
lea rax, str.called__Result::unwrap____on_an__Err__value
mov qword [rsp + 0x68], rax
pxor xmm0, xmm0
movdqu xmmword [rsp + 0x70], xmm0
lea rdx, str._rustc_82e1608dfa6e0b5569232559e3d385fea5a93112librarycore_src_slice_sort.rs
lea rcx, [rsp + 0x58]
call fcn.0044f0d0
ud2
lea r8, str._rustc_82e1608dfa6e0b5569232559e3d385fea5a93112librarycore_src_slice_sort.rs
mov rdx, r13
call fcn.004504c0
ud2
lea r8, str._rustc_82e1608dfa6e0b5569232559e3d385fea5a93112librarycore_src_slice_sort.rs
mov rcx, r13
call fcn.0044fa90
ud2
lea r8, str.librarycore_src_slicememchr.rs
mov rcx, rax
mov rdx, rbp
call fcn.0044fa90
ud2
lea r8, str.librarycore_src_slicememchr.rs
mov rdx, rbp
call fcn.0044f110
ud2
lea rcx, str.assertion_failed:_end___start__end___len
lea r8, str._rustc_82e1608dfa6e0b5569232559e3d385fea5a93112librarycore_src_slice_sort.rs
mov edx, 0x2c
call fcn.0044fe30
ud2
lea rcx, str.called__Option::unwrap____on_a__None__value_root_.cargo_registry_src_index.crates.io_6f17d22bba15001f_untrusted_0.9.0_src_reader.rsinternal_error:_entered_unreachable_code_root_.cargo_registry_src_index.crates.io_6f17d22bba15001f_rustls_webpki_0.101.7_src_calendar.rs
lea r8, str._rustc_82e1608dfa6e0b5569232559e3d385fea5a93112librarycore_src_slice_sort.rs
mov edx, 0x2b
call fcn.0044fe30
ud2
lea rax, str._root_.cargo_registry_src_index.crates.io_6f17d22bba15001f_idna_0.5.0_src_uts46.rs
mov qword [rsp + 0x20], rax
mov r9, rdx
call fcn.00454cc0
ud2
lea r8, str._rustc_82e1608dfa6e0b5569232559e3d385fea5a93112librarycore_src_slice_sort.rs
mov rcx, r15
mov rdx, qword [rsp + 0x120]
call fcn.004504c0
ud2
lea r8, str._rustc_82e1608dfa6e0b5569232559e3d385fea5a93112librarycore_src_slice_sort.rs
mov rcx, r15
mov rdx, r10
call fcn.004504c0
ud2
lea r8, str._rustc_82e1608dfa6e0b5569232559e3d385fea5a93112librarycore_src_slice_sort.rs
mov rcx, r10
call fcn.0044fa90
ud2
lea rax, [0x0088fbf0]
mov qword [rsp + 0x20], rax
mov rcx, r13
mov rdx, r14
mov r9, r14
call fcn.00454cc0
ud2
lea rax, [0x0088fbd8]
mov qword [rsp + 0x20], rax
mov rcx, r13
mov rdx, r14
xor r8d, r8d
mov r9, rbp
call fcn.00454cc0
ud2
lea rcx, str.called__Option::unwrap____on_a__None__value_root_.cargo_registry_src_index.crates.io_6f17d22bba15001f_untrusted_0.9.0_src_reader.rsinternal_error:_entered_unreachable_code_root_.cargo_registry_src_index.crates.io_6f17d22bba15001f_rustls_webpki_0.101.7_src_calendar.rs
lea r8, str._rustc_82e1608dfa6e0b5569232559e3d385fea5a93112librarycore_src_slice_sort.rs
mov edx, 0x2b
call fcn.0044fe30
ud2
lea rcx, str.called__Option::unwrap____on_a__None__value_root_.cargo_registry_src_index.crates.io_6f17d22bba15001f_untrusted_0.9.0_src_reader.rsinternal_error:_entered_unreachable_code_root_.cargo_registry_src_index.crates.io_6f17d22bba15001f_rustls_webpki_0.101.7_src_calendar.rs
lea r8, str._rustc_82e1608dfa6e0b5569232559e3d385fea5a93112librarycore_src_slice_sort.rs
mov edx, 0x2b
call fcn.0044fe30
ud2
lea rax, str._root_.cargo_registry_src_index.crates.io_6f17d22bba15001f_idna_0.5.0_src_uts46.rs
mov qword [rsp + 0x20], rax
mov rcx, r14
mov r8, qword [rsp + 0x40]
mov r9, rdx
call fcn.00454cc0
ud2