Function at 0x140052cb0
Capabilities:
Encrypt data using speck

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0x258
movdqa xmmword [rsp + 0x240], xmm15
movdqa xmmword [rsp + 0x230], xmm14
movdqa xmmword [rsp + 0x220], xmm13
movdqa xmmword [rsp + 0x210], xmm12
movdqa xmmword [rsp + 0x200], xmm11
movdqa xmmword [rsp + 0x1f0], xmm10
movdqa xmmword [rsp + 0x1e0], xmm9
movdqa xmmword [rsp + 0x1d0], xmm8
movdqa xmmword [rsp + 0x1c0], xmm7
movaps xmmword [rsp + 0x1b0], xmm6
mov qword [rsp + 0x148], rcx
test r9, r9
je 0x140052e59
lea rax, [r8 + r9]
xor ebx, ebx
movdqa xmm0, xmmword [0x140123540]
mov rcx, r8
jmp 0x140052d5f
xor r11d, r11d
mov rbx, r11
cmp rcx, rax
je 0x14005406f
movzx esi, byte [rcx]
test sil, sil
js 0x140052d80
inc rcx
mov r10d, esi
cmp r10d, 0x2e
je 0x140052d50
jmp 0x140052e00
mov r10d, esi
and r10d, 0x1f
movzx edi, byte [rcx + 1]
and edi, 0x3f
cmp sil, 0xdf
jbe 0x140052dd1
movzx r11d, byte [rcx + 2]
shl edi, 6
and r11d, 0x3f
or r11d, edi
cmp sil, 0xf0
jb 0x140052de7
movzx esi, byte [rcx + 3]
add rcx, 4
and r10d, 7
shl r10d, 0x12
shl r11d, 6
and esi, 0x3f
or esi, r11d
or esi, r10d
mov r10d, esi
cmp r10d, 0x2e
je 0x140052d50
jmp 0x140052e00
add rcx, 2
shl r10d, 6
or r10d, edi
cmp r10d, 0x2e
jne 0x140052e00
jmp 0x140052d50
add rcx, 3
shl r10d, 0xc
or r11d, r10d
mov r10d, r11d
cmp r10d, 0x2e
je 0x140052d50
nop
test rbx, rbx
jne 0x140052e0b
cmp r10d, 0x2d
je 0x140052e59
mov r11d, 5
cmp rbx, 4
ja 0x140052e36
movdqa xmmword [rsp + 0x50], xmm0
je 0x14005673a
cmp r10d, dword [rsp + rbx*4 + 0x50]
jne 0x140052e36
inc rbx
mov r11, rbx
cmp rbx, 4
je 0x140052e59
lea esi, [r10 - 0x61]
cmp esi, 0x1a
setb bl
add r10d, 0xffffffd0
cmp r10d, 0xa
setb r10b
or r10b, bl
cmp r10b, 1
je 0x140052d53
mov eax, dword [rdx + 0x30]
movzx ecx, byte [rdx + 0x34]
add r9, r8
xorps xmm6, xmm6
movups xmmword [rsp + 0xb8], xmm6
mov byte [rsp + 0xc8], 0
mov qword [rsp + 0x50], 0
mov dword [rsp + 0x60], 0
mov word [rsp + 0x64], 0
mov byte [rsp + 0x68], 0
mov dword [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 qword [rsp + 0x88], r8
mov qword [rsp + 0x90], r9
lea r8, [rsp + 0x110]
mov qword [rsp + 0x98], r8
mov qword [rsp + 0xa0], 0
mov byte [rsp + 0xb4], cl
shl rcx, 0x20
or rcx, rax
mov qword [rsp + 0x108], rcx
mov qword [rsp + 0x48], rdx
mov qword [rdx + 0x10], 0
mov dword [rsp + 0x118], 0
mov qword [rsp + 0x110], 0
mov rcx, qword [rsp + 0x2c0]
mov rcx, qword [rcx + 0x10]
mov qword [rsp + 0x140], rcx
movups xmmword [rsp + 0x152], xmm6
lea r13, [rsp + 0x68]
mov dword [rsp + 0xb0], eax
mov dword [rsp + 0xd0], 0
mov word [rsp + 0xd4], 0
movzx eax, word [rsp + 0x160]
mov word [rsp + 0xe6], ax
movdqu xmm0, xmmword [rsp + 0x150]
movdqu xmmword [rsp + 0xd6], xmm0
mov dword [rsp + 0xf0], 0x110000
mov byte [rsp + 0xf4], 0
xor r12d, r12d
lea rdi, [0x1401614f0]
lea rbx, [0x140164fc0]
xor edx, edx
jmp 0x140052fd9
mov rax, qword [r14 + 8]
mov byte [rax + rsi], r15b
inc rsi
mov qword [r14 + 0x10], rsi
mov rdx, qword [rsp + 0x50]
mov rax, qword [rsp + 0x58]
mov esi, dword [rsp + 0xd0]
mov r14, qword [rsp + 0xe0]
test sil, 1
je 0x140053020
test rdx, rdx
je 0x140053124
mov rcx, qword [rsp + 0xe8]
cmp rdx, 2
jne 0x1400530a9
cmp rax, rcx
jae 0x1400530d5
mov rdx, r14
jmp 0x140053082
movzx ecx, word [rsp + 0xd4]
cmp rdx, 2
je 0x140053067
cmp rdx, 1
jne 0x140053124
cmp cx, 4
ja 0x140056705
lea r14, [rsp + 0xd8]
cmp rax, rcx
jb 0x1400530ae
test rcx, rcx
je 0x1400530f2
mov word [rsp + 0xd4], 0
jmp 0x1400530f2
cmp cx, 5
jae 0x140056705
lea rdx, [rsp + 0xd8]
cmp rax, rcx
jae 0x140053e47
mov r15d, dword [rdx + rax*4]
inc rax
mov qword [rsp + 0x50], 2
mov qword [rsp + 0x58], rax
cmp r15d, 0x80
jb 0x140053e8d
jmp 0x140053cf0
cmp rax, rcx
jae 0x1400530e6
mov r15d, dword [r14 + rax*4]
inc rax
mov qword [rsp + 0x50], 1
mov qword [rsp + 0x58], rax
cmp r15d, 0x80
jb 0x140053e8d
jmp 0x140053cf0
mov qword [rsp + 0xe8], 0
jmp 0x140053e56
mov qword [rsp + 0xe8], 0
mov qword [rsp + 0x50], 0
jmp 0x140053124
mov rax, qword [rsp + 0xe0]
mov dword [rax + r15*4], r14d
inc r15
mov qword [rsp + 0xe8], r15
mov byte [rsp + 0xf4], 1
mov byte [rsp + 0xf5], sil
mov r9, qword [rsp + 0xc0]
test r9, r9
je 0x14005317f
mov edx, dword [rsp + 0x60]
mov rcx, qword [rsp + 0xb8]
test dl, 1
je 0x140053890
mov r8, qword [rsp + 0x70]
mov rax, qword [rsp + 0x78]
jmp 0x1400538a2
lea r13, [rsp + 0x60]
mov rcx, r13
call fcn.1400568d0
mov r9, qword [rsp + 0xc0]
test r9, r9
lea r13, [rsp + 0x68]
jne 0x140053131
movzx r11d, byte [rsp + 0xb0]
cmp r11b, 2
je 0x14005398d
mov r8, qword [rsp + 0xa0]
mov r15, qword [rsp + 0x88]
mov r14, qword [rsp + 0x90]
mov r10, qword [rsp + 0x98]
movzx ebp, byte [rsp + 0xb1]
mov r13, qword [rsp + 0xa8]
nop word cs:[rax + rax]
test r8, r8
je 0x1400531ea
cmp r8, r13
jne 0x1400535e2
mov qword [rsp + 0xa0], 0
cmp r15, r14
je 0x140053980
lea rcx, [r15 + 1]
mov qword [rsp + 0x88], rcx
movzx eax, byte [r15]
test al, al
js 0x140053220
mov r15, rcx
mov edx, eax
lea eax, [rdx - 0x2d]
cmp eax, 2
jae 0x1400532c0
jmp case.0x140053400.0
mov edx, eax
and edx, 0x1f
lea rcx, [r15 + 2]
mov qword [rsp + 0x88], rcx
movzx r8d, byte [r15 + 1]
and r8d, 0x3f
cmp al, 0xdf
jbe 0x140053294
lea r9, [r15 + 3]
mov qword [rsp + 0x88], r9
movzx ecx, byte [r15 + 2]
shl r8d, 6
and ecx, 0x3f
or ecx, r8d
cmp al, 0xf0
jb 0x1400532aa
lea rax, [r15 + 4]
mov qword [rsp + 0x88], rax
movzx r8d, byte [r15 + 3]
and edx, 7
shl edx, 0x12
shl ecx, 6
and r8d, 0x3f
or r8d, ecx
or r8d, edx
mov r15, rax
mov edx, r8d
lea eax, [rdx - 0x2d]
cmp eax, 2
jae 0x1400532c0
jmp case.0x140053400.0
shl edx, 6
or edx, r8d
mov r15, rcx
lea eax, [rdx - 0x2d]
cmp eax, 2
jae 0x1400532c0
jmp case.0x140053400.0
shl edx, 0xc
or ecx, edx
mov r15, r9
mov edx, ecx
lea eax, [rdx - 0x2d]
cmp eax, 2
jb case.0x140053400.0
lea eax, [rdx - 0x61]
cmp eax, 0x1a
jb case.0x140053400.0
lea eax, [rdx - 0x30]
cmp eax, 0xa
jb case.0x140053400.0
cmp edx, 0xa9de
mov eax, 0x3ad
cmovb rax, r12
cmp dword [rdi + rax*8 + 0xeb0], edx
lea rcx, [rax + 0x1d6]
cmova rcx, rax
cmp dword [rdi + rcx*8 + 0x758], edx
lea rax, [rcx + 0xeb]
cmova rax, rcx
cmp dword [rdi + rax*8 + 0x3b0], edx
lea rcx, [rax + 0x76]
cmova rcx, rax
cmp dword [rdi + rcx*8 + 0x1d8], edx
lea rax, [rcx + 0x3b]
cmova rax, rcx
cmp dword [rdi + rax*8 + 0xe8], edx
lea rcx, [rax + 0x1d]
cmova rcx, rax
cmp dword [rdi + rcx*8 + 0x78], edx
lea rax, [rcx + 0xf]
cmova rax, rcx
cmp dword [rdi + rax*8 + 0x38], edx
lea rcx, [rax + 7]
cmova rcx, rax
cmp dword [rdi + rcx*8 + 0x20], edx
lea rax, [rcx + 4]
cmova rax, rcx
cmp dword [rdi + rax*8 + 0x10], edx
lea rcx, [rax + 2]
cmova rcx, rax
cmp dword [rdi + rcx*8 + 8], edx
lea rax, [rcx + 1]
cmova rax, rcx
xor ecx, ecx
cmp dword [rdi + rax*8], edx
setne cl
adc rax, 0
sub rax, rcx
cmp rax, 0x759
ja 0x1400565ac
movzx r9d, word [rdi + rax*8 + 4]
mov ecx, r9d
and ecx, 0x7fff
movzx r8d, cx
test r9w, r9w
js 0x1400533d0
movzx eax, word [rdi + rax*8]
mov ecx, edx
sub cx, ax
add ecx, r8d
movzx ecx, cx
cmp ecx, 0x1f73
jb 0x1400533dd
jmp 0x1400565db
cmp r8d, 0x1f73
jae 0x140056600
movzx eax, byte [rbx + rcx*4]
mov r8d, 0
cmp eax, 1
je case.default.0x140053400
mov eax, eax
lea r8, [0x140123a40]
movsxd rax, dword [r8 + rax*4]
add rax, r8
jmp rax
cmp edx, 0x80
jb 0x140053160
lea ebp, [rdx - 0xac00]
cmp ebp, 0x2ba4
jb 0x1400536b8
imul eax, edx, 0x9e3779b9
imul ecx, edx, 0x31415926
xor eax, ecx
imul rax, rax, 0x821
shr rax, 0x20
lea r8, [0x1401869c4]
movzx eax, word [r8 + rax*2]
add eax, edx
imul eax, eax, 0x9e3779b9
xor eax, ecx
imul rax, rax, 0x821
shr rax, 0x20
lea rcx, [0x140187a08]
mov r14, qword [rcx + rax*8]
cmp edx, r14d
lea r13, [rsp + 0x60]
jne 0x140053165
mov rax, r14
shr rax, 0x20
movzx ecx, ax
movzx eax, ax
cmp eax, 0xd7a
ja 0x1400566a7
shr r14, 0x30
mov edx, 0xd7a
sub rdx, rcx
cmp rdx, r14
jb 0x140056698
test r14, r14
je 0x14005316d
lea rax, [0x14018bb10]
lea rsi, [rax + rcx*4]
shl r14d, 2
xor r15d, r15d
nop dword [rax]
mov edx, dword [rsi + r15]
mov rcx, r13
call fcn.1400568d0
add r15, 4
cmp r14, r15
jne 0x140053580
jmp 0x14005316d
lea rax, [r8 + 1]
mov qword [rsp + 0xa0], rax
movzx eax, byte [r8]
test al, al
js 0x14005360b
mov edx, eax
cmp byte [rsp + 0xc8], 0
jne 0x14005369e
jmp 0x1400534c0
mov edx, eax
and edx, 0x1f
lea rcx, [r8 + 2]
mov qword [rsp + 0xa0], rcx
movzx r9d, byte [r8 + 1]
and r9d, 0x3f
cmp al, 0xdf
jbe 0x14005367e
lea rcx, [r8 + 3]
mov qword [rsp + 0xa0], rcx
movzx ecx, byte [r8 + 2]
shl r9d, 6
and ecx, 0x3f
or ecx, r9d
cmp al, 0xf0
jb 0x14005386a
lea rax, [r8 + 4]
mov qword [rsp + 0xa0], rax
movzx eax, byte [r8 + 3]
and edx, 7
shl edx, 0x12
shl ecx, 6
and eax, 0x3f
or eax, ecx
or eax, edx
mov edx, eax
cmp byte [rsp + 0xc8], 0
jne 0x14005369e
jmp 0x1400534c0
shl edx, 6
or edx, r9d
nop word cs:[rax + rax]
cmp byte [rsp + 0xc8], 0
je 0x1400534c0
cmp edx, 0x80
jb 0x140053160
lea ebp, [rdx - 0xac00]
cmp ebp, 0x2ba4
jae 0x14005372a
movzx esi, bp
imul r14d, esi, 0x6f75
shr r14d, 0x18
lea edx, [r14 + 0x1100]
lea r13, [rsp + 0x60]
mov rcx, r13
call fcn.1400568d0
imul eax, r14d, 0x24c
sub ebp, eax
movzx eax, bp
imul edx, eax, 0x925
shr edx, 0x10
add edx, 0x1161
mov rcx, r13
call fcn.1400568d0
mov eax, esi
shr eax, 2
imul eax, eax, 0x4925
shr eax, 0x11
lea ecx, [rax + rax*8]
lea ecx, [rcx + rcx*2]
add ecx, eax
sub si, cx
je 0x14005316d
add esi, 0x11a7
movzx edx, si
jmp 0x140053165
imul ecx, edx, 0x9e3779b9
imul eax, edx, 0x31415926
xor ecx, eax
imul r8, rcx, 0xf08
shr r8, 0x20
lea r9, [0x14018f178]
movzx r8d, word [r9 + r8*2]
add r8d, edx
imul r8d, r8d, 0x9e3779b9
xor r8d, eax
imul r8, r8, 0xf08
shr r8, 0x20
lea r9, [0x140190f88]
mov r14, qword [r9 + r8*8]
cmp edx, r14d
jne 0x1400537c2
mov rax, r14
shr rax, 0x20
movzx ecx, ax
movzx eax, ax
cmp eax, 0x168b
lea r13, [rsp + 0x60]
ja 0x1400566b8
shr r14, 0x30
mov edx, 0x168b
sub rdx, rcx
cmp rdx, r14
jb 0x1400566c9
lea rax, [0x1401987c8]
lea rsi, [rax + rcx*4]
test r14, r14
jne 0x140053848
jmp 0x14005316d
imul rcx, rcx, 0x821
shr rcx, 0x20
lea r8, [0x1401869c4]
movzx ecx, word [r8 + rcx*2]
add ecx, edx
imul ecx, ecx, 0x9e3779b9
xor ecx, eax
imul rax, rcx, 0x821
shr rax, 0x20
lea rcx, [0x140187a08]
mov r14, qword [rcx + rax*8]
cmp edx, r14d
lea r13, [rsp + 0x60]
jne 0x140053165
mov rax, r14
shr rax, 0x20
movzx ecx, ax
movzx eax, ax
cmp eax, 0xd7a
ja 0x1400566a7
shr r14, 0x30
mov edx, 0xd7a
sub rdx, rcx
cmp rdx, r14
jb 0x140056698
lea rax, [0x14018bb10]
lea rsi, [rax + rcx*4]
test r14, r14
je 0x14005316d
shl r14d, 2
xor r15d, r15d
nop
mov edx, dword [rsi + r15]
mov rcx, r13
call fcn.1400568d0
add r15, 4
cmp r14, r15
jne 0x140053850
jmp 0x14005316d
shl edx, 0xc
or ecx, edx
mov edx, ecx
cmp byte [rsp + 0xc8], 0
jne 0x14005369e
jmp 0x1400534c0
movzx eax, word [rsp + 0x64]
cmp rax, 5
jae 0x14005663d
mov r8, r13
cmp rcx, rax
jae 0x140056611
mov r14d, dword [r8 + rcx*8 + 4]
inc rcx
cmp rcx, r9
jne 0x140053970
test dl, 1
je 0x1400539b0
mov r8, qword [rsp + 0x78]
sub r8, r9
je 0x1400539bf
xor ecx, ecx
nop word cs:[rax + rax]
mov rax, qword [rsp + 0xc0]
add rax, rcx
test byte [rsp + 0x60], 1
je 0x140053910
mov rdx, qword [rsp + 0x78]
cmp rax, rdx
jae 0x1400565c0
mov r9, qword [rsp + 0x70]
jmp 0x14005392b
movzx edx, word [rsp + 0x64]
cmp rdx, 5
jae 0x1400565ec
cmp rax, rdx
jae 0x1400565c0
mov r9, r13
cmp rcx, rdx
jae 0x1400565cf
movzx edx, byte [r9 + rax*8]
mov eax, dword [r9 + rax*8 + 4]
mov byte [r9 + rcx*8], dl
mov dword [r9 + rcx*8 + 4], eax
lea rax, [rcx + 1]
mov rcx, rax
cmp r8, rax
jne 0x1400538e0
mov edx, dword [rsp + 0x60]
test dl, 1
jne 0x1400539c4
movzx eax, word [rsp + 0x64]
cmp r8, rax
jae 0x1400539d0
mov word [rsp + 0x64], r8w
jmp 0x1400539d0
mov qword [rsp + 0xb8], rcx
jmp 0x1400539db
mov byte [rsp + 0xb0], 2
lea r13, [rsp + 0x68]
test byte [rsp + 0x60], 1
je 0x140053ac4
mov rax, qword [rsp + 0x78]
test rax, rax
je 0x140053d75
mov r8, qword [rsp + 0x70]
jmp 0x140053adf
movzx r8d, word [rsp + 0x64]
sub r8, r9
jne 0x1400538d3
test dl, 1
je 0x14005395c
cmp qword [rsp + 0x78], r8
jb 0x1400539d0
mov qword [rsp + 0x78], r8
lea rax, [rsp + 0xb8]
movups xmmword [rax], xmm6
imul eax, r14d, 0x9e3779b9
imul ecx, r14d, 0x31415926
xor eax, ecx
imul rax, rax, 0x3a6
shr rax, 0x20
lea rdx, [0x140182fa0]
movzx eax, word [rdx + rax*2]
add eax, r14d
imul eax, eax, 0x9e3779b9
xor eax, ecx
imul rax, rax, 0x3a6
shr rax, 0x20
lea rcx, [0x1401836ec]
mov esi, dword [rcx + rax*4]
mov eax, esi
shr eax, 8
cmp eax, r14d
cmovne esi, r12d
mov r15d, dword [rsp + 0xf0]
cmp r15d, 0x110000
jne 0x140053a60
test sil, sil
jne 0x140053ce0
mov dword [rsp + 0xf0], r14d
jmp 0x140053124
cmp byte [rsp + 0xf4], 0
je 0x140053aa0
cmp byte [rsp + 0xf5], sil
jae 0x140053b81
mov ecx, r15d
mov edx, r14d
call fcn.1401118d0
cmp eax, 0x110000
je 0x140053b8a
mov dword [rsp + 0xf0], eax
jmp 0x140053124
mov ecx, r15d
mov edx, r14d
call fcn.1401118d0
cmp eax, 0x110000
jne 0x140053beb
test sil, sil
jne 0x140053b8a
jmp 0x140053eac
movzx eax, word [rsp + 0x64]
test rax, rax
je 0x140053d75
cmp ax, 5
jae 0x140056684
mov r8, r13
mov rcx, qword [rsp + 0xc0]
mov rdx, rax
sub rdx, rcx
jb 0x14005665d
cmp rdx, 2
jb 0x140053bfc
lea rcx, [r8 + rcx*8]
cmp rdx, 0x15
jae 0x140053bf7
lea rax, [rcx + rdx*8]
lea r9, [rcx + 8]
xor edx, edx
mov r10, rcx
jmp 0x140053b41
mov r11, rcx
shl r10, 0x20
or r10, r9
mov qword [r11], r10
lea r9, [r8 + 8]
add rdx, 0xfffffffffffffff8
mov r10, r8
cmp r9, rax
je 0x140053bfc
mov r8, r9
movzx r9d, byte [r10 + 8]
cmp r9b, byte [r10]
jae 0x140053b2d
mov r10d, dword [r10 + 0xc]
xor esi, esi
nop word cs:[rax + rax]
mov r11, qword [r8 + rsi - 8]
mov qword [r8 + rsi], r11
cmp rdx, rsi
je 0x140053b20
lea r11, [rsi - 8]
cmp r9b, byte [r8 + rsi - 0x10]
mov rsi, r11
jb 0x140053b60
add r11, r8
jmp 0x140053b23
test sil, sil
je 0x140053ec3
test byte [rsp + 0xd0], 1
je 0x140053bc3
mov r15, qword [rsp + 0xe8]
cmp r15, qword [rsp + 0xd8]
jne 0x1400530fd
lea rcx, [rsp + 0xd8]
lea rdx, str.src_index.crates.io_6f17d22bba15001f_tinyvec_1.8.0_src_tinyvec.rs
call fcn.140056b80
jmp 0x1400530fd
movzx r15d, word [rsp + 0xd4]
cmp r15, 3
ja 0x140053c29
mov dword [rsp + r15*4 + 0xd8], r14d
lea eax, [r15 + 1]
mov word [rsp + 0xd4], ax
jmp 0x140053114
mov dword [rsp + 0xf0], eax
jmp 0x140053124
call fcn.1400567c0
mov edx, dword [rsp + 0x60]
test edx, edx
je 0x140053c16
mov r9, qword [rsp + 0x78]
mov qword [rsp + 0xc0], r9
jmp 0x140053135
movzx r9d, word [rsp + 0x64]
mov qword [rsp + 0xc0], r9
jmp 0x140053135
lea r13d, [r15*8]
movzx eax, byte [0x1401b2168]
xor ecx, ecx
mov rdx, r13
call fcn.1400ff580
test rax, rax
je 0x1400566d8
cmp r15d, 4
jne 0x1400566e5
mov rbp, rax
movdqu xmm0, xmmword [rsp + 0xd8]
movups xmmword [rsp + 0xd8], xmm6
movdqu xmmword [rax], xmm0
mov word [rsp + 0xd4], 0
mov dword [rax + r15*4], r14d
cmp dword [rsp + 0xd0], 0
lea r13, [rsp + 0x68]
je 0x140053cab
cmp qword [rsp + 0xd8], 0
je 0x140053cab
mov r8, qword [rsp + 0xe0]
mov rcx, qword [0x1401b2100]
xor edx, edx
call fcn.14011d4ec
lea eax, [r15 + r15]
mov dword [rsp + 0xd0], 1
mov qword [rsp + 0xd8], rax
mov qword [rsp + 0xe0], rbp
mov qword [rsp + 0xe8], 5
jmp 0x140053114
mov r15d, r14d
cmp r15d, 0x80
jb 0x140053e8d
mov dword [rsp + 0x120], 0
mov eax, r15d
cmp r15d, 0x800
jae 0x140053d30
shr eax, 6
or al, 0xc0
mov byte [rsp + 0x120], al
and r15b, 0x3f
or r15b, 0x80
mov byte [rsp + 0x121], r15b
mov r14d, 2
jmp 0x140053e07
cmp r15d, 0x10000
jae 0x140053dc3
shr eax, 0xc
or al, 0xe0
mov byte [rsp + 0x120], al
mov eax, r15d
shr eax, 6
and al, 0x3f
or al, 0x80
mov byte [rsp + 0x121], al
and r15b, 0x3f
or r15b, 0x80
mov byte [rsp + 0x122], r15b
mov r14d, 3
jmp 0x140053e07
mov qword [rsp + 0x50], 2
mov qword [rsp + 0x58], 0
mov r15d, dword [rsp + 0xf0]
mov edx, 2
mov eax, 0
cmp r15d, 0x110000
je 0x140052fd9
mov dword [rsp + 0xf0], 0x110000
cmp r15d, 0x80
jb 0x140053e8d
jmp 0x140053cf0
shr eax, 0x12
or al, 0xf0
mov byte [rsp + 0x120], al
mov eax, r15d
shr eax, 0xc
and al, 0x3f
or al, 0x80
mov byte [rsp + 0x121], al
mov eax, r15d
shr eax, 6
and al, 0x3f
or al, 0x80
mov byte [rsp + 0x122], al
and r15b, 0x3f
or r15b, 0x80
mov byte [rsp + 0x123], r15b
mov r14d, 4
mov rcx, qword [rsp + 0x48]
mov rax, qword [rcx]
mov r15, qword [rcx + 0x10]
sub rax, r15
cmp rax, r14
jb 0x140053ef3
mov rsi, qword [rsp + 0x48]
mov rcx, qword [rsi + 8]
add rcx, r15
lea rdx, [rsp + 0x120]
mov r8, r14
call sub.api_ms_win_crt_private_l1_1_0.dll_memcpy
add r15, r14
mov qword [rsi + 0x10], r15
jmp 0x140052fcf
test rcx, rcx
je 0x140053e56
mov word [rsp + 0xd4], 0
mov r15d, dword [rsp + 0xf0]
mov dword [rsp + 0xf0], 0x110000
cmp r15d, 0x110000
je 0x140053f0f
nop word cs:[rax + rax]
cmp r15d, 0x80
jae 0x140053cf0
mov r14, qword [rsp + 0x48]
mov rsi, qword [r14 + 0x10]
cmp rsi, qword [r14]
jne 0x140052fc0
mov rcx, r14
call fcn.140113610
jmp 0x140052fc0
mov dword [rsp + 0xf0], r14d
cmp r15d, 0x80
jae 0x140053cf0
jmp 0x140053e8d
mov dword [rsp + 0xf0], r14d
mov byte [rsp + 0xf4], 0
mov qword [rsp + 0x50], 1
mov qword [rsp + 0x58], 0
cmp r15d, 0x80
jb 0x140053e8d
jmp 0x140053cf0
mov rsi, qword [rsp + 0x48]
mov rcx, rsi
mov rdx, r15
mov r8, r14
call fcn.14004d8c0
mov r15, qword [rsi + 0x10]
jmp 0x140053e1f
cmp dword [rsp + 0x60], 0
je 0x140053f31
cmp qword [rsp + 0x68], 0
je 0x140053f31
mov r8, qword [rsp + 0x70]
mov rcx, qword [0x1401b2100]
xor edx, edx
call fcn.14011d4ec
test esi, esi
mov rsi, qword [rsp + 0x48]
mov rbx, qword [rsp + 0x108]
je 0x140053f5e
cmp qword [rsp + 0xd8], 0
je 0x140053f5e
mov rcx, qword [0x1401b2100]
xor edx, edx
mov r8, r14
call fcn.14011d4ec
mov qword [rsp + 0x120], 0
mov qword [rsp + 0x128], 8
mov qword [rsp + 0x130], 0
mov rax, qword [rsi + 8]
mov rcx, qword [rsi + 0x10]
mov qword [rsp + 0x150], 0
mov qword [rsp + 0x158], rcx
mov qword [rsp + 0x160], rax
mov qword [rsp + 0x168], rcx
mov qword [rsp + 0x170], 0
mov qword [rsp + 0x178], rcx
movabs rax, 0x2e0000002e
mov qword [rsp + 0x180], rax
mov byte [rsp + 0x188], 1
mov word [rsp + 0x190], 1
mov rax, rbx
and rax, 0xffffffffffff00ff
mov qword [rsp + 0x138], rax
mov sil, 1
lea r14, [rsp + 0x150]
lea r13, [rsp + 0x110]
mov ebp, 0x20003
xorps xmm6, xmm6
movdqa xmm11, xmmword [0x140123590]
movdqa xmm12, xmmword [0x1401235a0]
movdqa xmm14, xmmword [0x1401235c0]
movdqa xmm15, xmmword [0x1401235d0]
movdqa xmm7, xmmword [0x1401235e0]
movdqa xmm8, xmmword [0x1401235f0]
movdqa xmm9, xmmword [0x140123600]
movdqa xmm10, xmmword [0x140123610]
movdqa xmm13, xmmword [0x140123620]
mov dword [rsp + 0x30], 0
jmp 0x140054110
mov rdx, qword [rsp + 0x2c0]
mov rax, qword [rdx]
mov rsi, qword [rdx + 0x10]
sub rax, rsi
cmp rax, r9
jb 0x140056581
mov rcx, qword [rdx + 8]
add rcx, rsi
mov rbx, rdx
mov rdx, r8
mov r8, r9
mov rdi, r9
call sub.api_ms_win_crt_private_l1_1_0.dll_memcpy
add rsi, rdi
mov qword [rbx + 0x10], rsi
mov rax, qword [rsp + 0x148]
mov qword [rax], 0
mov dword [rax + 8], 0
jmp 0x140056515
movabs rax, 0x8080808080808080
test qword [r12], rax
je 0x140055314
mov byte [rsp + 0x110], 1
mov al, 1
mov dword [rsp + 0x30], eax
xor esi, esi
mov rbx, qword [rsp + 0x108]
lea r14, [rsp + 0x150]
lea r13, [rsp + 0x110]
mov ebp, 0x20003
nop word cs:[rax + rax]
mov rcx, r14
call fcn.140049c00
test rax, rax
je 0x1400554a2
mov r12, rax
mov r15, rdx
test sil, 1
jne 0x14005415a
mov rcx, qword [rsp + 0x2c0]
mov rsi, qword [rcx + 0x10]
cmp rsi, qword [rcx]
jne 0x14005414b
call fcn.140113610
mov rcx, qword [rsp + 0x2c0]
mov rax, qword [rcx + 8]
mov byte [rax + rsi], 0x2e
inc rsi
mov qword [rcx + 0x10], rsi
cmp r15, 4
jb 0x14005417d
mov eax, dword [r12]
bswap eax
xor ecx, ecx
xor edx, edx
cmp eax, 0x786e2d2d
setb cl
seta dl
cmp ecx, edx
je 0x1400542b7
test byte [rsp + 0x30], 1
jne 0x140054268
test r15, r15
je 0x140054260
mov rsi, r12
add rsi, r15
mov rdi, r12
jmp 0x1400541a9
cmp rdi, rsi
je 0x140054260
movzx edx, byte [rdi]
test dl, dl
js 0x1400541c0
inc rdi
mov ecx, edx
lea eax, [rcx - 0x21]
cmp eax, 0x5d
jbe 0x1400541a0
jmp 0x140054230
mov ecx, edx
and ecx, 0x1f
movzx r8d, byte [rdi + 1]
and r8d, 0x3f
cmp dl, 0xdf
jbe 0x140054200
movzx eax, byte [rdi + 2]
shl r8d, 6
and eax, 0x3f
or eax, r8d
cmp dl, 0xf0
jb 0x140054214
movzx edx, byte [rdi + 3]
add rdi, 4
and ecx, 7
shl ecx, 0x12
shl eax, 6
and edx, 0x3f
or edx, eax
or edx, ecx
jmp 0x1400541b3
add rdi, 2
shl ecx, 6
or ecx, r8d
lea eax, [rcx - 0x21]
cmp eax, 0x5d
ja 0x140054230
jmp 0x1400541a0
add rdi, 3
shl ecx, 0xc
or eax, ecx
mov ecx, eax
lea eax, [rcx - 0x21]
cmp eax, 0x5d
jbe 0x1400541a0
nop dword [rax + rax]
call fcn.140111760
cmp al, 0x11
ja 0x1400541a0
movzx eax, al
bt ebp, eax
jae 0x1400541a0
mov al, 1
mov dword [rsp + 0x30], eax
jmp 0x140054268
mov dword [rsp + 0x30], 0
mov rcx, r12
mov rdx, r15
mov r8, rbx
mov r9, r13
call fcn.1400575e0
mov rdx, qword [rsp + 0x2c0]
mov rax, qword [rdx]
mov rsi, qword [rdx + 0x10]
sub rax, rsi
cmp rax, r15
jb 0x1400548e7
mov rcx, qword [rdx + 8]
add rcx, rsi
mov rdi, rdx
mov rdx, r12
mov r8, r15
call sub.api_ms_win_crt_private_l1_1_0.dll_memcpy
add r15, rsi
mov qword [rdi + 0x10], r15
xor esi, esi
jmp 0x140054110
add r12, 4
add r15, 0xfffffffffffffffc
mov qword [rsp + 0x130], 0
mov rbp, r15
jmp 0x1400542d9
cmp rbp, r15
ja 0x1400543c7
mov cl, 0x2d
mov rdx, r12
mov r8, rbp
call fcn.14001f590
cmp rax, 1
jne 0x1400543c7
mov rbp, rdx
cmp rdx, r15
jae 0x1400542d0
cmp byte [r12 + rbp], 0x2d
jne 0x1400542d0
test rbp, rbp
je 0x140054946
lea r14, [rbp + 1]
mov rdi, r15
sub rdi, r14
jbe 0x14005431f
cmp byte [r12 + r14], 0xbf
jle 0x140056793
add r14, r12
cmp rbp, 8
jae 0x1400540c4
cmp byte [r12 + rbp - 1], 0
js 0x1400540d8
mov rax, rbp
dec rax
je 0x1400543d5
cmp byte [r12 + rbp - 2], 0
js 0x1400540d8
mov rax, rbp
add rax, 0xfffffffffffffffe
je 0x1400543d5
cmp byte [r12 + rbp - 3], 0
js 0x1400540d8
mov rax, rbp
add rax, 0xfffffffffffffffd
je 0x1400543d5
cmp byte [r12 + rbp - 4], 0
js 0x1400540d8
mov rax, rbp
add rax, 0xfffffffffffffffc
je 0x1400543d5
cmp byte [r12 + rbp - 5], 0
js 0x1400540d8
mov rax, rbp
add rax, 0xfffffffffffffffb
je 0x1400543d5
cmp byte [r12 + rbp - 6], 0
js 0x1400540d8
mov rax, rbp
add rax, 0xfffffffffffffffa
je 0x1400543d5
cmp byte [r12 + rbp - 7], 0
js 0x1400540d8
mov rax, rbp
add rax, 0xfffffffffffffff9
je 0x1400543d5
jmp 0x1400540d8
mov rdi, r15
mov r14, r12
xor ebp, ebp
mov r12d, 1
test rdi, rdi
je 0x140054690
add rdi, r14
xor ebx, ebx
mov esi, 0x48
mov dword [rsp + 0x38], pe_nt_image_headers64
xor r15d, r15d
mov dword [rsp + 0x11c], ebp
xor r8d, r8d
mov qword [rsp + 0x100], r15
lea r9d, [rsi + 0x1a]
inc r14
mov r10d, esi
neg r10d
mov r11d, 1
mov r15d, 0x24
mov dword [rsp + 0x40], r8d
mov ecx, r8d
mov r13d, 0x1a
movzx eax, byte [r14 - 1]
lea edx, [rax - 0x30]
cmp dl, 0xa
jb 0x140054460
nop dword [rax]
lea edx, [rax - 0x41]
cmp dl, 0x1a
jb 0x140054464
add al, 0x9f
mov edx, eax
cmp al, 0x19
jbe 0x140054464
jmp 0x1400540d8
add al, 0xea
mov edx, eax
test r11d, r11d
je 0x140056716
movzx r8d, dl
mov eax, ecx
not eax
xor edx, edx
div r11d
cmp eax, r8d
jb 0x1400540d8
mov eax, r11d
imul eax, r8d
add ecx, eax
lea eax, [r10 + r15]
cmp r15d, r9d
cmovae eax, r13d
cmp r15d, esi
mov edx, 1
cmovbe eax, edx
cmp eax, r8d
ja 0x1400544f0
mov r8d, 0x24
sub r8d, eax
mov eax, r8d
mul r11d
jo 0x1400540d8
cmp r14, rdi
je 0x1400540d8
add r15d, 0x24
imul r11d, r8d
inc r14
movzx eax, byte [r14 - 1]
lea edx, [rax - 0x30]
cmp dl, 0xa
jae 0x140054440
jmp 0x140054460
mov r10d, dword [rsp + 0x11c]
inc r10d
je 0x1400566f9
mov eax, ecx
mov edx, dword [rsp + 0x40]
sub eax, edx
test edx, edx
mov r8d, 2
mov edx, 0x2bc
cmove r8d, edx
xor esi, esi
xor edx, edx
div r8d
mov r8d, eax
xor edx, edx
div r10d
add eax, r8d
cmp eax, 0x1c8
mov r9d, 0xd41d41d5
jb 0x140054569
xor esi, esi
nop dword [rax + rax]
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 esi, 0x24
cmp eax, 0x3e57
mov eax, r8d
ja 0x140054540
jmp 0x14005456c
mov r8d, eax
lea eax, [r8*4]
lea eax, [rax + rax*8]
add r8d, 0x26
xor edx, edx
div r8w
mov r9d, eax
mov eax, ecx
xor edx, edx
mov dword [rsp + 0x11c], r10d
div r10d
mov dword [rsp + 0x40], edx
add dword [rsp + 0x38], eax
jb 0x1400540d8
mov eax, dword [rsp + 0x38]
xor eax, 0xd800
add eax, 0xffef0000
cmp eax, 0xffef0800
jb 0x1400540d8
mov r13, qword [rsp + 0x128]
mov r8d, dword [rsp + 0x40]
mov r15d, r8d
mov rdx, qword [rsp + 0x100]
test rdx, rdx
je 0x140054600
xor eax, eax
jmp 0x1400545e9
add rax, 0x10
cmp rbx, rax
je 0x140054600
mov rcx, qword [r13 + rax]
cmp rcx, r15
jb 0x1400545e0
inc rcx
mov qword [r13 + rax], rcx
jmp 0x1400545e0
cmp rdx, qword [rsp + 0x120]
jne 0x140054632
lea rcx, [rsp + 0x120]
mov r13d, r9d
call fcn.140051450
mov r9d, r13d
mov r8d, dword [rsp + 0x40]
mov rdx, qword [rsp + 0x100]
mov r13, qword [rsp + 0x128]
movzx eax, r9w
add esi, eax
mov rax, rdx
shl rax, 4
mov qword [r13 + rax], r15
mov ecx, dword [rsp + 0x38]
mov dword [r13 + rax + 8], ecx
lea r15, [rdx + 1]
mov qword [rsp + 0x130], r15
inc r8d
add rbx, 0x10
cmp r14, rdi
jne 0x1400543fd
test rdx, rdx
je 0x14005469b
cmp rdx, 0x14
jae 0x140055489
mov rax, r15
shl rax, 4
add rax, r13
lea r8, [r13 + 0x10]
xor ecx, ecx
mov r9, r13
jmp 0x1400553ab
mov r13, qword [rsp + 0x128]
xor r15d, r15d
lea r8, [r15 + rbp]
mov rcx, qword [rsp + 0x2c0]
mov rax, qword [rcx]
mov rdx, qword [rcx + 0x10]
mov qword [rsp + 0x40], rdx
sub rax, rdx
cmp rax, r8
jb 0x140055376
add rbp, r12
xor edi, edi
xor ebx, ebx
jmp 0x1400546e2
mov rax, qword [rcx + 8]
mov byte [rax + r14], sil
inc r14
mov qword [rcx + 0x10], r14
inc rdi
cmp rbx, r15
jae 0x140054740
mov rax, rbx
shl rax, 4
cmp rdi, qword [r13 + rax]
jne 0x140054750
add rax, r13
inc rbx
mov esi, dword [rax + 8]
cmp esi, 0x80
jb 0x14005476f
mov dword [rsp + 0x50], 0
mov eax, esi
cmp esi, 0x800
jae 0x1400547f0
shr eax, 6
or al, 0xc0
mov byte [rsp + 0x50], al
and sil, 0x3f
or sil, 0x80
mov byte [rsp + 0x51], sil
mov esi, 2
jmp 0x140054879
cmp r12, rbp
jne 0x140054759
jmp 0x140054906
cmp r12, rbp
je 0x1400554a0
movzx eax, byte [r12]
test al, al
js 0x140054790
inc r12
mov esi, eax
cmp esi, 0x80
jae 0x140054706
mov r14, qword [rcx + 0x10]
cmp r14, qword [rcx]
jne 0x1400546d0
call fcn.140113610
mov rcx, qword [rsp + 0x2c0]
jmp 0x1400546d0
mov esi, eax
and esi, 0x1f
movzx edx, byte [r12 + 1]
and edx, 0x3f
cmp al, 0xdf
jbe 0x140054822
movzx ecx, byte [r12 + 2]
shl edx, 6
and ecx, 0x3f
or ecx, edx
cmp al, 0xf0
jb 0x1400548ac
movzx eax, byte [r12 + 3]
add r12, 4
and esi, 7
shl esi, 0x12
shl ecx, 6
and eax, 0x3f
or eax, ecx
or esi, eax
mov rcx, qword [rsp + 0x2c0]
cmp esi, 0x80
jb 0x14005476f
jmp 0x140054706
cmp esi, 0x10000
jae 0x140054844
shr eax, 0xc
or al, 0xe0
mov byte [rsp + 0x50], al
mov eax, esi
shr eax, 6
and al, 0x3f
or al, 0x80
mov byte [rsp + 0x51], al
and sil, 0x3f
or sil, 0x80
mov byte [rsp + 0x52], sil
mov esi, 3
jmp 0x140054879
add r12, 2
shl esi, 6
or esi, edx
mov rcx, qword [rsp + 0x2c0]
cmp esi, 0x80
jae 0x140054706
jmp 0x14005476f
shr eax, 0x12
or al, 0xf0
mov byte [rsp + 0x50], al
mov eax, esi
shr eax, 0xc
and al, 0x3f
or al, 0x80
mov byte [rsp + 0x51], al
mov eax, esi
shr eax, 6
and al, 0x3f
or al, 0x80
mov byte [rsp + 0x52], al
and sil, 0x3f
or sil, 0x80
mov byte [rsp + 0x53], sil
mov esi, 4
mov rax, qword [rcx]
mov r14, qword [rcx + 0x10]
sub rax, r14
cmp rax, rsi
jb 0x1400548ce
mov rcx, qword [rcx + 8]
add rcx, r14
lea rdx, [rsp + 0x50]
mov r8, rsi
call sub.api_ms_win_crt_private_l1_1_0.dll_memcpy
mov rcx, qword [rsp + 0x2c0]
add r14, rsi
jmp 0x1400546db
add r12, 3
shl esi, 0xc
or esi, ecx
mov rcx, qword [rsp + 0x2c0]
cmp esi, 0x80
jb 0x14005476f
jmp 0x140054706
mov rdx, r14
mov r8, rsi
call fcn.14004d8c0
mov rcx, qword [rsp + 0x2c0]
mov r14, qword [rcx + 0x10]
jmp 0x140054888
mov rcx, rdx
mov rdx, rsi
mov r8, r15
call fcn.14004d8c0
mov rdx, qword [rsp + 0x2c0]
mov rsi, qword [rdx + 0x10]
jmp 0x140054294
mov r12, qword [rcx + 8]
mov rdi, qword [rcx + 0x10]
mov r15, qword [rsp + 0x40]
test r15, r15
mov rbx, qword [rsp + 0x108]
lea r14, [rsp + 0x150]
lea r13, [rsp + 0x110]
mov ebp, 0x20003
je 0x140054959
cmp rdi, r15
jbe 0x140054953
cmp byte [r12 + r15], 0xbf
jg 0x140054959
jmp 0x140056776
mov rdi, r15
mov r14, r12
xor ebp, ebp
jmp 0x1400543d5
jne 0x140056776
lea rax, [r12 + r15]
mov qword [rsp + 0x38], rax
test byte [rsp + 0x30], 1
jne 0x140054a61
cmp rdi, r15
jne 0x14005497f
mov dword [rsp + 0x30], 0
jmp 0x140054a61
mov qword [rsp + 0x100], rdi
lea rsi, [r12 + rdi]
mov rdi, qword [rsp + 0x38]
jmp 0x1400549a9
cmp rdi, rsi
je 0x140054a51
movzx edx, byte [rdi]
test dl, dl
js 0x1400549c0
inc rdi
mov ecx, edx
lea eax, [rcx - 0x21]
cmp eax, 0x5d
jbe 0x1400549a0
jmp 0x140054a30
mov ecx, edx
and ecx, 0x1f
movzx r8d, byte [rdi + 1]
and r8d, 0x3f
cmp dl, 0xdf
jbe 0x140054a00
movzx eax, byte [rdi + 2]
shl r8d, 6
and eax, 0x3f
or eax, r8d
cmp dl, 0xf0
jb 0x140054a14
movzx edx, byte [rdi + 3]
add rdi, 4
and ecx, 7
shl ecx, 0x12
shl eax, 6
and edx, 0x3f
or edx, eax
or edx, ecx
jmp 0x1400549b3
add rdi, 2
shl ecx, 6
or ecx, r8d
lea eax, [rcx - 0x21]
cmp eax, 0x5d
ja 0x140054a30
jmp 0x1400549a0
add rdi, 3
shl ecx, 0xc
or eax, ecx
mov ecx, eax
lea eax, [rcx - 0x21]
cmp eax, 0x5d
jbe 0x1400549a0
nop dword [rax + rax]
call fcn.140111760
cmp al, 0x11
ja 0x1400549a0
movzx eax, al
bt ebp, eax
jae 0x1400549a0
mov al, 1
mov dword [rsp + 0x30], eax
jmp 0x140054a59
mov dword [rsp + 0x30], 0
mov rdi, qword [rsp + 0x100]
movq xmm0, qword [rsp + 0x110]
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 eax, xmm1
or al, byte [rsp + 0x118]
movzx ecx, byte [rsp + 0x119]
or cl, byte [rsp + 0x11a]
or cl, al
xor esi, esi
test cl, 1
jne 0x140054110
test byte [rsp + 0x11b], 1
jne 0x140054110
cmp rdi, r15
je 0x140055458
add r12, rdi
xor edx, edx
xor ecx, ecx
mov rax, qword [rsp + 0x38]
movzx r8d, byte [rax]
test r8b, r8b
js 0x140054ae8
inc rax
jmp 0x140054b90
mov r9d, r8d
and r9d, 0x1f
movzx r11d, byte [rax + 1]
and r11d, 0x3f
cmp r8b, 0xe0
jb 0x140054b4b
movzx r10d, byte [rax + 2]
shl r11d, 6
and r10d, 0x3f
or r10d, r11d
cmp r8b, 0xf0
jb 0x140054b64
movzx r8d, byte [rax + 3]
and r9d, 7
shl r9d, 0x12
shl r10d, 6
and r8d, 0x3f
or r8d, r10d
or r8d, r9d
cmp r8d, 0x110000
je 0x14005517b
add rax, 4
cmp r8d, 0x7f
jbe 0x140054b90
jmp 0x140054c1f
add rax, 2
shl r9d, 6
or r9d, r11d
mov r8d, r9d
cmp r8d, 0x7f
jbe 0x140054b90
jmp 0x140054c1f
add rax, 3
shl r9d, 0xc
or r10d, r9d
mov r8d, r10d
cmp r8d, 0x7f
jbe 0x140054b90
jmp 0x140054c1f
inc rax
cmp r8d, 0x80
jae 0x140054c1d
cmp rax, r12
je 0x14005517b
movzx r8d, byte [rax]
test r8b, r8b
jns 0x140054b80
mov edx, r8d
and edx, 0x1f
movzx r10d, byte [rax + 1]
and r10d, 0x3f
cmp r8b, 0xdf
jbe 0x140054bf9
movzx r9d, byte [rax + 2]
shl r10d, 6
and r9d, 0x3f
or r9d, r10d
cmp r8b, 0xf0
jb 0x140054c0b
movzx r8d, byte [rax + 3]
and edx, 7
shl edx, 0x12
shl r9d, 6
and r8d, 0x3f
or r8d, r9d
or r8d, edx
cmp r8d, 0x110000
je 0x14005517b
add rax, 4
jmp 0x140054b83
add rax, 2
shl edx, 6
or edx, r10d
mov r8d, edx
jmp 0x140054b83
add rax, 3
shl edx, 0xc
or r9d, edx
mov r8d, r9d
jmp 0x140054b83
xor edx, edx
mov r9d, edx
imul edx, r8d, 0x9e3779b9
imul r10d, r8d, 0x31415926
xor edx, r10d
imul rdx, rdx, 0x3a6
shr rdx, 0x20
lea r11, [0x140182fa0]
movzx edx, word [r11 + rdx*2]
add edx, r8d
imul edx, edx, 0x9e3779b9
xor edx, r10d
imul rdx, rdx, 0x3a6
shr rdx, 0x20
lea r10, [0x1401836ec]
mov edx, dword [r10 + rdx*4]
mov r10d, edx
shr r10d, 8
cmp r10d, r8d
mov r10d, 0
cmovne edx, r10d
cmp r9b, dl
seta r9b
test dl, dl
setne r10b
test r9b, r10b
jne case.0x140054e71.3907
mov r10d, r8d
and r10d, 0xfffffffe
cmp r10d, 0x340
je case.0x140054e71.3907
lea r9d, [r8 - 0x343]
cmp r9d, 2
jb case.0x140054e71.3907
mov r9b, 2
cmp r8d, 0xdc9
jle 0x140054d0f
cmp r8d, 0x11356
jle 0x140054d6f
cmp r8d, 0x114af
jg 0x140054dee
lea r11d, [r8 - 0x113b8]
cmp r11d, 0xd
ja 0x140054cfd
mov esi, 0x2409
bt esi, r11d
jb 0x14005516d
cmp r8d, 0x11357
je 0x14005516d
jmp case.0x140054e71.3908
cmp r8d, 0xa32
jg 0x140054da8
cmp r8d, 0x93b
jg 0x140054ec7
lea r11d, [r8 - 0x30f]
cmp r11d, 0x36
ja 0x140054d4a
movabs rsi, 0x48020000001005
bt rsi, r11
jb 0x14005516d
lea r11d, [r8 - 0x374]
cmp r11d, 0x13
ja case.0x140054e71.3908
mov esi, 0x80401
bt esi, r11d
jb case.0x140054e71.3907
jmp case.0x140054e71.3908
cmp r8d, 0x1b34
jle 0x140054e29
cmp r8d, 0x110b9
jg 0x140054f12
cmp r8d, 0x1f70
jg 0x140054f3e
cmp r8d, 0x1b35
je 0x14005516d
jmp case.0x140054e71.3908
cmp r8d, 0xbd6
jle 0x140054e74
cmp r8d, 0xcc1
jle 0x140054ef3
cmp r8d, 0xcc2
je 0x14005516d
cmp r8d, 0xd3e
je 0x14005516d
cmp r8d, 0xd57
je 0x14005516d
jmp case.0x140054e71.3908
lea r11d, [r8 - 0x114b0]
cmp r11d, 0xd
ja 0x140054e0a
mov esi, 0x2401
bt esi, r11d
jb 0x14005516d
cmp r8d, 0x115af
je 0x14005516d
cmp r8d, 0x11930
je 0x14005516d
jmp case.0x140054e71.3908
lea r11d, [r8 - 0xdca]
cmp r11d, 0x15
ja 0x140054e45
mov esi, 0x200021
bt esi, r11d
jb 0x14005516d
cmp r8d, 0x102e
je 0x14005516d
lea r11d, [r8 - 0xf43]
cmp r11d, 0x76
ja case.0x140054e71.3908
lea rsi, [0x140123630]
movsxd r11, dword [rsi + r11*4]
add r11, rsi
jmp r11
lea r11d, [r8 - 0xb3e]
cmp r11d, 0x19
ja 0x140054e90
mov esi, 0x3000001
bt esi, r11d
jb 0x14005516d
cmp r8d, 0xbbe
je 0x14005516d
lea r11d, [r8 - 0xa33]
cmp r11d, 0x2b
ja case.0x140054e71.3908
movabs rsi, 0x80000000009
bt rsi, r11
jb case.0x140054e71.3907
jmp case.0x140054e71.3908
cmp r8d, 0x9d6
jg 0x140054f68
cmp r8d, 0x93c
je 0x14005516d
cmp r8d, 0x9be
je 0x14005516d
jmp case.0x140054e71.3908
cmp r8d, 0xbd7
je 0x14005516d
cmp r8d, 0xc56
je 0x14005516d
jmp case.0x140054e71.3908
cmp r8d, 0x110ba
je 0x14005516d
cmp r8d, 0x11127
je 0x14005516d
cmp r8d, 0x1133e
je 0x14005516d
jmp case.0x140054e71.3908
cmp r8d, 0x2adb
jg 0x140054f83
lea r11d, [r8 - 0x1f71]
cmp r11d, 0x8c
ja case.default.0x140054f65
lea rsi, [0x14012380c]
movsxd r11, dword [rsi + r11*4]
add r11, rsi
jmp r11
cmp r8d, 0x9d7
je 0x14005516d
cmp r8d, 0x9df
jne case.0x140054e71.3908
jmp case.0x140054e71.3907
lea r11d, [r8 - 0xfa10]
cmp r11d, 0x12
jbe 0x140054fc0
lea r11d, [r8 - 0xfb1d]
cmp r11d, 0x21
ja 0x140054fb1
movabs rsi, 0x200000005
bt rsi, r11
jb case.0x140054e71.3907
cmp r8d, 0x2adc
je case.0x140054e71.3907
jmp case.0x140054e71.3908
mov esi, 0x50005
bt esi, r11d
jb case.0x140054e71.3907
jmp 0x140054f90
lea r11d, [r8 - 0x2329]
cmp r11d, 2
jb case.0x140054e71.3907
cmp r8d, 0x2126
je case.0x140054e71.3907
mov r11d, r8d
and r11d, 0x1ffff8
cmp r11d, 0x958
sete byte [rsp + 0x100]
movd xmm0, r10d
pshufd xmm1, xmm0, 0
pcmpeqd xmm1, xmmword [0x140123550]
movd xmm0, r8d
pshufd xmm0, xmm0, 0
movdqa xmm2, xmm0
paddd xmm2, xmmword [0x140123560]
movdqa xmm3, xmm0
paddd xmm3, xmmword [0x140123570]
movdqa xmm4, xmm0
paddd xmm4, xmmword [0x140123580]
pxor xmm4, xmm11
movdqa xmm5, xmm12
pcmpgtd xmm5, xmm4
por xmm5, xmm1
lea esi, [r8 - 0x1d1bb]
cmp esi, 6
setb bl
lea esi, [r8 - 0x2f800]
cmp esi, 0x21e
setb sil
pxor xmm3, xmm11
pcmpgtd xmm3, xmmword [0x1401235b0]
pxor xmm2, xmm11
pcmpgtd xmm2, xmm14
packssdw xmm2, xmm3
packsswb xmm2, xmm2
mov r11, rdi
pmovmskb edi, xmm2
not edi
movmskps ebp, xmm5
or bpl, dil
mov ebp, 0x20003
lea r13, [rsp + 0x110]
lea r14, [rsp + 0x150]
setne dil
or sil, byte [rsp + 0x100]
or sil, bl
mov rbx, qword [rsp + 0x108]
or sil, dil
jne case.0x140054e71.3907
cmp r10d, 0x212a
je case.0x140054e71.3907
cmp r10d, 0xfb40
je case.0x140054e71.3907
mov rdi, r11
movdqa xmm1, xmm0
paddd xmm1, xmm15
movdqa xmm2, xmm0
paddd xmm2, xmm7
pxor xmm2, xmm11
pcmpgtd xmm2, xmm9
pxor xmm1, xmm11
pcmpgtd xmm1, xmm10
packssdw xmm2, xmm1
packsswb xmm2, xmm2
pmovmskb r11d, xmm2
xor r11b, 0xff
jne 0x14005516d
paddd xmm0, xmm8
pxor xmm0, xmm11
pcmpgtd xmm0, xmm13
movmskps r11d, xmm0
xor r11d, 0xf
test r11b, r11b
jne 0x14005516d
cmp r10d, 0x330
je 0x14005516d
add r8d, 0xfffe9299
cmp r8d, 2
movzx r9d, cl
mov ecx, 2
cmovb r9d, ecx
mov ecx, r9d
cmp rax, r12
jne 0x140054ad7
jmp 0x14005517e
mov r9d, ecx
test r9b, r9b
je 0x140055458
movzx eax, r9b
cmp eax, 1
je case.0x140054e71.3907
mov qword [rsp + 0x100], rdi
lea rcx, [rsp + 0x98]
movups xmmword [rcx], xmm6
mov byte [rcx + 0x10], 0
lea rax, [rsp + 0x1a0]
movups xmmword [rax], xmm6
mov qword [rsp + 0x50], 0
mov dword [rsp + 0x60], 0
mov word [rsp + 0x64], 0
mov byte [rsp + 0x68], 0
mov dword [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 rsi, qword [rsp + 0x38]
mov qword [rsp + 0x88], rsi
mov qword [rsp + 0x90], r12
mov dword [rsp + 0xb0], 0
mov word [rsp + 0xb4], 0
movzx eax, word [rsp + 0x1ae]
mov word [rcx + 0x2e], ax
movdqu xmm0, xmmword [rsp + 0x19e]
movdqu xmmword [rcx + 0x1e], xmm0
mov dword [rsp + 0xd0], 0x110000
mov byte [rsp + 0xd4], 0
nop
cmp rsi, r12
je 0x1400553e5
movzx edi, byte [rsi]
test dil, dil
js 0x140055280
inc rsi
jmp 0x1400552f0
mov eax, edi
and eax, 0x1f
movzx edx, byte [rsi + 1]
and edx, 0x3f
cmp dil, 0xdf
jbe 0x1400552ca
movzx ecx, byte [rsi + 2]
shl edx, 6
and ecx, 0x3f
or ecx, edx
cmp dil, 0xf0
jb 0x1400552d7
movzx edi, byte [rsi + 3]
and eax, 7
shl eax, 0x12
shl ecx, 6
and edi, 0x3f
or edi, ecx
or edi, eax
cmp edi, 0x110000
je 0x1400553e5
add rsi, 4
jmp 0x1400552f0
add rsi, 2
shl eax, 6
or eax, edx
mov edi, eax
jmp 0x1400552f0
add rsi, 3
shl eax, 0xc
or ecx, eax
mov edi, ecx
nop word cs:[rax + rax]
lea rcx, [rsp + 0x50]
call fcn.140056c60
xor ebx, ebx
cmp eax, 0x110000
je 0x1400553f7
cmp eax, edi
je 0x140055260
jmp 0x1400553f7
lea rax, [r12 + 7]
and rax, 0xfffffffffffffff8
sub rax, r12
mov ecx, 8
cmove rax, rcx
lea rcx, [rbp - 8]
cmp rax, rcx
jae 0x14005535d
nop word cs:[rax + rax]
movabs rdx, 0x8080808080808080
test qword [r12 + rax], rdx
jne 0x1400540d8
add rax, 8
cmp rax, rcx
jb 0x140055340
movabs rax, 0x8080808080808080
test qword [r12 + rcx], rax
jne 0x1400540d8
jmp 0x1400543d5
mov rdx, qword [rsp + 0x40]
call fcn.14004d8c0
mov rcx, qword [rsp + 0x2c0]
jmp 0x1400546bf
mov r10, r13
mov qword [r10], r8
mov dword [r10 + 8], r9d
lea r8, [rdx + 0x10]
add rcx, 0xfffffffffffffff0
mov r9, rdx
cmp r8, rax
je 0x14005469b
mov rdx, r8
mov r8, qword [r9 + 0x10]
cmp r8, qword [r9]
jae 0x140055397
mov r9d, dword [r9 + 0x18]
xor r11d, r11d
nop
movdqu xmm0, xmmword [rdx + r11 - 0x10]
movdqu xmmword [rdx + r11], xmm0
cmp rcx, r11
je 0x14005538d
lea r10, [r11 - 0x10]
cmp r8, qword [rdx + r11 - 0x20]
mov r11, r10
jb 0x1400553c0
add r10, rdx
jmp 0x140055390
lea rcx, [rsp + 0x50]
call fcn.140056c60
cmp eax, 0x110000
sete bl
cmp dword [rsp + 0x60], 0
je 0x140055419
cmp qword [rsp + 0x68], 0
je 0x140055419
mov r8, qword [rsp + 0x70]
mov rcx, qword [0x1401b2100]
xor edx, edx
call fcn.14011d4ec
cmp dword [rsp + 0xb0], 0
mov rdi, qword [rsp + 0x100]
je 0x14005544c
cmp qword [rsp + 0xb8], 0
je 0x14005544c
mov r8, qword [rsp + 0xc0]
mov rcx, qword [0x1401b2100]
xor edx, edx
call fcn.14011d4ec
test bl, bl
mov rbx, qword [rsp + 0x108]
je case.0x140054e71.3907
sub rdi, r15
mov rcx, qword [rsp + 0x38]
mov rdx, rdi
mov r8, qword [rsp + 0x138]
mov r9, r13
call fcn.1400575e0
xor esi, esi
jmp 0x140054110
mov byte [rsp + 0x115], 1
xor esi, esi
jmp 0x140054110
mov rcx, r13
mov rdx, r15
call fcn.140051530
jmp 0x14005469b
jmp 0x1400554a0
mov rax, qword [rsp + 0x2c0]
mov rcx, qword [rax + 8]
mov rsi, qword [rax + 0x10]
mov r8, qword [rsp + 0x140]
test r8, r8
je 0x1400554e4
cmp rsi, r8
jbe 0x1400554e2
cmp byte [rcx + r8], 0xbf
jg 0x1400554e4
lea rax, str.src_index.crates.io_6f17d22bba15001f_idna_0.5.0_src_uts46.rs
mov qword [rsp + 0x20], rax
mov rdx, rsi
mov r9, rsi
call fcn.14001ecf0
jne 0x1400554cb
mov rax, rsi
sub rax, r8
add rcx, r8
mov qword [rsp + 0x50], 0
mov qword [rsp + 0x58], rax
mov qword [rsp + 0x60], rcx
mov qword [rsp + 0x68], rax
mov qword [rsp + 0x70], 0
mov qword [rsp + 0x78], rax
movabs rax, 0x2e0000002e
mov qword [rsp + 0x80], rax
mov byte [rsp + 0x88], 1
mov word [rsp + 0x90], 1
test byte [rsp + 0x30], 1
je 0x1400559cd
mov ebx, 0x260d9
mov r13d, 0x62f8
nop dword [rax]
lea rcx, [rsp + 0x50]
call fcn.140049c00
test rax, rax
je 0x1400559ed
mov r12, rdx
test rdx, rdx
je 0x140055550
mov r15, rax
movzx ecx, byte [rax]
test cl, cl
js 0x140055590
lea rbp, [r15 + 1]
add r12, r15
call fcn.140111760
test al, al
jne 0x140055630
jmp 0x1400557b0
mov eax, ecx
and eax, 0x1f
movzx r8d, byte [r15 + 1]
and r8d, 0x3f
cmp cl, 0xe0
jb 0x1400555ed
movzx edx, byte [r15 + 2]
shl r8d, 6
and edx, 0x3f
or edx, r8d
cmp cl, 0xf0
jb 0x14005560a
movzx ecx, byte [r15 + 3]
and eax, 7
shl eax, 0x12
shl edx, 6
and ecx, 0x3f
or ecx, edx
or ecx, eax
cmp ecx, 0x110000
je 0x140055550
lea rbp, [r15 + 4]
add r12, r15
call fcn.140111760
test al, al
jne 0x140055630
jmp 0x1400557b0
lea rbp, [r15 + 2]
shl eax, 6
or eax, r8d
mov ecx, eax
add r12, r15
call fcn.140111760
test al, al
jne 0x140055630
jmp 0x1400557b0
lea rbp, [r15 + 3]
shl eax, 0xc
or edx, eax
mov ecx, edx
add r12, r15
call fcn.140111760
test al, al
je 0x1400557b0
nop word cs:[rax + rax]
movzx eax, al
cmp eax, 0x11
je 0x1400557b0
cmp eax, 9
je 0x14005566d
jmp 0x1400559c3
inc rbp
call fcn.140111760
cmp al, 0xe
ja 0x1400559c3
movzx eax, al
bt r13d, eax
jae 0x1400559c3
cmp rbp, r12
je 0x140055710
movzx ecx, byte [rbp]
test cl, cl
jns 0x140055650
mov eax, ecx
and eax, 0x1f
movzx r8d, byte [rbp + 1]
and r8d, 0x3f
cmp cl, 0xe0
jb 0x1400556d2
movzx edx, byte [rbp + 2]
shl r8d, 6
and edx, 0x3f
or edx, r8d
cmp cl, 0xf0
jb 0x1400556f0
movzx ecx, byte [rbp + 3]
and eax, 7
shl eax, 0x12
shl edx, 6
and ecx, 0x3f
or ecx, edx
or ecx, eax
cmp ecx, 0x110000
je 0x140055710
add rbp, 4
call fcn.140111760
cmp al, 0xe
jbe 0x140055660
jmp 0x1400559c3
add rbp, 2
shl eax, 6
or eax, r8d
mov ecx, eax
call fcn.140111760
cmp al, 0xe
jbe 0x140055660
jmp 0x1400559c3
add rbp, 3
shl eax, 0xc
or edx, eax
mov ecx, edx
call fcn.140111760
cmp al, 0xe
jbe 0x140055660
jmp 0x1400559c3
movzx ebp, byte [r12 - 1]
test bpl, bpl
js 0x140055730
dec r12
cmp r12, r15
jne 0x140055785
jmp 0x14005598a
movzx eax, byte [r12 - 2]
cmp al, 0xbf
jg 0x14005575c
movzx ecx, byte [r12 - 3]
cmp cl, 0xbf
jg 0x140055765
movzx edx, byte [r12 - 4]
add r12, 0xfffffffffffffffc
and edx, 7
shl edx, 6
and ecx, 0x3f
or ecx, edx
jmp 0x14005576c
add r12, 0xfffffffffffffffe
and eax, 0x1f
jmp 0x140055774
add r12, 0xfffffffffffffffd
and ecx, 0xf
shl ecx, 6
and eax, 0x3f
or eax, ecx
shl eax, 6
and ebp, 0x3f
or ebp, eax
cmp r12, r15
je 0x14005598a
cmp ebp, 0x110000
je 0x140055550
mov ecx, ebp
call fcn.140111760
cmp al, 0xd
je 0x140055710
jmp 0x1400559a5
cmp rbp, r12
je 0x1400558b6
xor edi, edi
xor r14d, r14d
jmp 0x1400557d9
mov dil, 1
nop word cs:[rax + rax]
cmp rbp, r12
je 0x1400558c0
movzx ecx, byte [rbp]
test cl, cl
js 0x140055800
inc rbp
call fcn.140111760
cmp al, 0x11
jbe 0x140055890
jmp 0x1400559c3
mov eax, ecx
and eax, 0x1f
movzx r8d, byte [rbp + 1]
and r8d, 0x3f
cmp cl, 0xe0
jb 0x140055854
movzx edx, byte [rbp + 2]
shl r8d, 6
and edx, 0x3f
or edx, r8d
cmp cl, 0xf0
jb 0x14005586e
movzx ecx, byte [rbp + 3]
and eax, 7
shl eax, 0x12
shl edx, 6
and ecx, 0x3f
or ecx, edx
or ecx, eax
cmp ecx, 0x110000
je 0x1400558c0
add rbp, 4
call fcn.140111760
cmp al, 0x11
jbe 0x140055890
jmp 0x1400559c3
add rbp, 2
shl eax, 6
or eax, r8d
mov ecx, eax
call fcn.140111760
cmp al, 0x11
jbe 0x140055890
jmp 0x1400559c3
add rbp, 3
shl eax, 0xc
or edx, eax
mov ecx, edx
call fcn.140111760
cmp al, 0x11
ja 0x1400559c3
nop word cs:[rax + rax]
movzx eax, al
bt ebx, eax
jb 0x1400557d0
cmp eax, 1
je 0x1400557c0
cmp eax, 5
jne 0x1400559c3
mov r14b, 1
jmp 0x1400557d0
xor r14d, r14d
xor edi, edi
nop dword [rax + rax]
movzx ebp, byte [r12 - 1]
test bpl, bpl
js 0x1400558e0
dec r12
cmp r12, r15
jne 0x140055931
jmp 0x140055950
movzx eax, byte [r12 - 2]
cmp al, 0xbf
jg 0x14005590c
movzx ecx, byte [r12 - 3]
cmp cl, 0xbf
jg 0x140055915
movzx edx, byte [r12 - 4]
add r12, 0xfffffffffffffffc
and edx, 7
shl edx, 6
and ecx, 0x3f
or ecx, edx
jmp 0x14005591c
add r12, 0xfffffffffffffffe
and eax, 0x1f
jmp 0x140055924
add r12, 0xfffffffffffffffd
and ecx, 0xf
shl ecx, 6
and eax, 0x3f
or eax, ecx
shl eax, 6
and ebp, 0x3f
or ebp, eax
cmp r12, r15
je 0x140055950
cmp ebp, 0x110000
je 0x1400559c3
mov ecx, ebp
call fcn.140111760
cmp al, 0xd
je 0x1400558c0
jmp 0x140055963
cmp ebp, 0x110000
je 0x1400559c3
mov ecx, ebp
call fcn.140111760
cmp al, 0xd
je 0x1400559c3
mov ecx, ebp
call fcn.140111760
cmp al, 0x11
ja 0x1400559c3
movzx eax, al
mov ecx, 0x20023
bt ecx, eax
jae 0x1400559c3
and dil, r14b
test dil, 1
je 0x140055550
jmp 0x1400559c3
cmp ebp, 0x110000
je 0x140055550
mov ecx, ebp
call fcn.140111760
cmp al, 0xd
je 0x140055550
mov ecx, ebp
call fcn.140111760
cmp al, 9
je 0x140055550
mov ecx, ebp
call fcn.140111760
cmp al, 5
je 0x140055550
mov byte [rsp + 0x112], 1
jmp 0x1400559ed
lea r14, [rsp + 0x50]
nop word cs:[rax + rax]
mov rcx, r14
call fcn.140049c00
test rax, rax
jne 0x1400559e0
movzx ebx, byte [rsp + 0x110]
lea rcx, [rsp + 0x111]
mov rax, qword [rcx]
mov qword [rsp + 0x150], rax
mov eax, dword [rcx + 7]
mov dword [rsp + 0x157], eax
cmp qword [rsp + 0x120], 0
je 0x140055a3f
mov r8, qword [rsp + 0x128]
mov rcx, qword [0x1401b2100]
xor edx, edx
call fcn.14011d4ec
mov rax, qword [rsp + 0x2c0]
mov rsi, qword [rax + 0x10]
test rsi, rsi
mov rdi, qword [rsp + 0x48]
js 0x14005676a
je 0x140055a7c
movzx eax, byte [0x1401b2168]
xor ecx, ecx
mov rdx, rsi
call fcn.1400ff580
test rax, rax
movabs r12, 0x8080808080808080
jne 0x140055a8b
mov ecx, 1
mov rdx, rsi
call fcn.140017699
mov eax, 1
movabs r12, 0x8080808080808080
mov rdx, qword [rsp + 0x2c0]
mov rcx, qword [rdx + 0x10]
mov qword [rsp + 0x60], rcx
movups xmm0, xmmword [rdx]
movaps xmmword [rsp + 0x50], xmm0
mov qword [rdx], rsi
mov qword [rdx + 8], rax
mov qword [rdx + 0x10], 0
lea rsi, [rdi + 0x18]
cmp qword [rdi + 0x18], 0
je 0x140055ad0
mov r8, qword [rdi + 0x20]
mov rcx, qword [0x1401b2100]
xor edx, edx
call fcn.14011d4ec
mov rax, qword [rsp + 0x60]
mov qword [rsi + 0x10], rax
movdqa xmm0, xmmword [rsp + 0x50]
movdqu xmmword [rsi], xmm0
mov rax, qword [rdi + 0x20]
mov rcx, qword [rdi + 0x28]
mov qword [rsp + 0x50], 0
mov qword [rsp + 0x58], rcx
mov qword [rsp + 0x60], rax
mov qword [rsp + 0x68], rcx
mov qword [rsp + 0x70], 0
mov qword [rsp + 0x78], rcx
movabs rax, 0x2e0000002e
mov qword [rsp + 0x80], rax
mov byte [rsp + 0x88], 1
mov word [rsp + 0x90], 1
mov sil, 1
lea r13, [rsp + 0x50]
mov r14d, 0x1a
jmp 0x140055ba6
mov rcx, qword [rsp + 0x2c0]
mov rax, qword [rcx]
mov r14, qword [rcx + 0x10]
sub rax, r14
mov r15, rdx
mov rsi, qword [rsp + 0x2c0]
cmp rax, rdx
jb 0x1400564d9
mov rcx, qword [rsi + 8]
add rcx, r14
mov rdx, rbp
mov r8, r15
call sub.api_ms_win_crt_private_l1_1_0.dll_memcpy
mov rcx, qword [rsp + 0x2c0]
add r15, r14
mov rdx, r15
movzx ebx, byte [rsp + 0x37]
mov r14d, 0x1a
nop word cs:[rax + rax]
mov qword [rcx + 0x10], rdx
xor esi, esi
mov byte [rsp + 0x37], bl
mov rcx, r13
call fcn.140049c00
test rax, rax
je 0x1400564f0
mov rbp, rax
test sil, 1
jne 0x140055bf2
mov rbx, qword [rsp + 0x2c0]
mov rsi, qword [rbx + 0x10]
cmp rsi, qword [rbx]
jne 0x140055be3
mov rcx, rbx
mov rdi, rdx
call fcn.140113610
mov rdx, rdi
mov rax, qword [rbx + 8]
mov byte [rax + rsi], 0x2e
inc rsi
mov qword [rbx + 0x10], rsi
cmp rdx, 8
jae 0x140055cb0
test rdx, rdx
je 0x140055b45
cmp byte [rbp + rdx - 1], 0
js 0x140055d00
mov rax, rdx
dec rax
je 0x140055b45
cmp byte [rbp + rdx - 2], 0
js 0x140055d00
mov rax, rdx
add rax, 0xfffffffffffffffe
je 0x140055b45
cmp byte [rbp + rdx - 3], 0
js 0x140055d00
mov rax, rdx
add rax, 0xfffffffffffffffd
je 0x140055b45
cmp byte [rbp + rdx - 4], 0
js 0x140055d00
mov rax, rdx
add rax, 0xfffffffffffffffc
je 0x140055b45
cmp byte [rbp + rdx - 5], 0
js 0x140055d00
mov rax, rdx
add rax, 0xfffffffffffffffb
je 0x140055b45
cmp byte [rbp + rdx - 6], 0
js 0x140055d00
mov rax, rdx
add rax, 0xfffffffffffffffa
je 0x140055b45
lea rax, [rdx - 7]
cmp byte [rbp + rdx - 7], 0
setns cl
test rax, rax
sete al
test cl, al
je 0x140055d00
jmp 0x140055b45
test qword [rbp], r12
jne 0x140055d00
lea rax, [rbp + 7]
and rax, 0xfffffffffffffff8
sub rax, rbp
mov ecx, 8
cmove rax, rcx
lea rcx, [rdx - 8]
cmp rax, rcx
jae 0x140055cf0
nop word cs:[rax + rax]
test qword [rbp + rax], r12
jne 0x140055d00
add rax, 8
cmp rax, rcx
jb 0x140055ce0
test qword [rbp + rcx], r12
je 0x140055b45
nop dword [rax + rax]
mov rdi, qword [rsp + 0x2c0]
mov rax, qword [rdi]
mov r15, qword [rdi + 0x10]
sub rax, r15
mov qword [rsp + 0x140], r15
cmp rax, 3
jbe 0x140055e7b
mov rax, qword [rdi + 8]
mov dword [rax + r15], 0x2d2d6e78
add r15, 4
mov qword [rdi + 0x10], r15
xor ebx, ebx
mov esi, 0
test rdx, rdx
je 0x140055baa
mov rcx, rbp
add rcx, rdx
mov qword [rsp + 0x48], rcx
mov dword [rsp + 0x108], 0
mov rsi, rbp
mov rcx, qword [rsp + 0x2c0]
jmp 0x140055d8f
mov byte [rax + r15], dil
inc r15
mov qword [rcx + 0x10], r15
inc dword [rsp + 0x108]
inc ebx
cmp rsi, qword [rsp + 0x48]
je 0x140055eb0
movzx edi, byte [rsi]
test dil, dil
js 0x140055db0
inc rsi
cmp ebx, 0xffffffff
jne 0x140055e50
jmp 0x14005649f
mov r9d, edi
and r9d, 0x1f
movzx r8d, byte [rsi + 1]
and r8d, 0x3f
cmp dil, 0xdf
jbe 0x140055e13
movzx edx, byte [rsi + 2]
shl r8d, 6
and edx, 0x3f
or edx, r8d
cmp dil, 0xf0
jb 0x140055e2b
movzx edi, byte [rsi + 3]
and r9d, 7
shl r9d, 0x12
shl edx, 6
and edi, 0x3f
or edi, edx
or edi, r9d
cmp edi, 0x110000
je 0x140055ea0
add rsi, 4
mov rcx, qword [rsp + 0x2c0]
cmp ebx, 0xffffffff
jne 0x140055e50
jmp 0x14005649f
add rsi, 2
shl r9d, 6
or r9d, r8d
mov edi, r9d
cmp ebx, 0xffffffff
jne 0x140055e50
jmp 0x14005649f
add rsi, 3
shl r9d, 0xc
or edx, r9d
mov edi, edx
mov rcx, qword [rsp + 0x2c0]
cmp ebx, 0xffffffff
je 0x14005649f
nop dword [rax]
cmp edi, 0x80
jae 0x140055d82
cmp r15, qword [rcx]
jne 0x140055d70
call fcn.140113610
mov rcx, qword [rsp + 0x2c0]
mov rax, qword [rcx + 8]
jmp 0x140055d70
mov r8d, 4
mov rcx, rdi
mov rsi, rdx
mov rdx, qword [rsp + 0x140]
call fcn.14004d8c0
mov rdx, rsi
mov r15, qword [rdi + 0x10]
jmp 0x140055d24
mov rcx, qword [rsp + 0x2c0]
nop dword [rax + rax]
cmp dword [rsp + 0x108], 0
je 0x140055edc
cmp r15, qword [rcx]
jne 0x140055ecc
call fcn.140113610
mov rcx, qword [rsp + 0x2c0]
mov rax, qword [rcx + 8]
mov byte [rax + r15], 0x2d
inc r15
mov qword [rcx + 0x10], r15
xor r8d, r8d
mov esi, 0
cmp dword [rsp + 0x108], ebx
jae 0x140055baa
mov eax, pe_nt_image_headers64
mov r10d, 0x48
mov ecx, dword [rsp + 0x108]
mov dword [rsp + 0x38], ecx
mov qword [rsp + 0x138], rbp
mov dword [rsp + 0x11c], ebx
jmp 0x140055f4e
mov r9d, esi
mov r8d, dword [rsp + 0x30]
inc r8d
inc edi
xor esi, esi
mov dword [rsp + 0x38], r9d
mov eax, edi
cmp r9d, ebx
movabs r12, 0x8080808080808080
lea r13, [rsp + 0x50]
mov rbp, qword [rsp + 0x138]
jae 0x140055baa
mov esi, dword [rsp + 0x38]
mov r12, r10
jmp 0x140055f6b
inc rbp
cmp eax, edi
jbe 0x140056020
xor edx, edx
cmp rbp, qword [rsp + 0x48]
je 0x140056010
movzx edi, byte [rbp]
test dil, dil
jns 0x140055f60
mov r9d, edi
and r9d, 0x1f
movzx r11d, byte [rbp + 1]
and r11d, 0x3f
cmp dil, 0xdf
jbe 0x140055fdb
movzx r10d, byte [rbp + 2]
shl r11d, 6
and r10d, 0x3f
or r10d, r11d
cmp dil, 0xf0
jb 0x140055fee
movzx edi, byte [rbp + 3]
and r9d, 7
shl r9d, 0x12
shl r10d, 6
and edi, 0x3f
or edi, r10d
or edi, r9d
cmp edi, 0x110000
mov r10, r12
je 0x1400560f3
add rbp, 4
jmp 0x140055f63
add rbp, 2
shl r9d, 6
or r9d, r11d
mov edi, r9d
jmp 0x140055f63
add rbp, 3
shl r9d, 0xc
or r10d, r9d
mov edi, r10d
mov r10, r12
jmp 0x140055f63
jmp 0x1400560f3
mov edx, 1
cmp rbp, qword [rsp + 0x48]
jne 0x14005605f
jmp 0x1400560f3
inc rbp
cmp r9d, r10d
mov edi, r10d
cmovb edi, r9d
cmp r10d, eax
cmovb edi, r9d
cmp rbp, qword [rsp + 0x48]
je 0x1400560f0
mov r9d, edi
movzx r10d, byte [rbp]
test r10b, r10b
jns 0x140056040
mov r11d, r10d
and r11d, 0x1f
movzx edi, byte [rbp + 1]
and edi, 0x3f
cmp r10b, 0xdf
jbe 0x1400560bb
movzx esi, byte [rbp + 2]
shl edi, 6
and esi, 0x3f
or esi, edi
cmp r10b, 0xf0
jb 0x1400560ce
movzx r10d, byte [rbp + 3]
and r11d, 7
shl r11d, 0x12
shl esi, 6
and r10d, 0x3f
or r10d, esi
or r10d, r11d
cmp r10d, 0x110000
je 0x1400560e5
add rbp, 4
jmp 0x1400560dc
add rbp, 2
shl r11d, 6
or r11d, edi
mov r10d, r11d
jmp 0x140056043
add rbp, 3
shl r11d, 0xc
or esi, r11d
mov r10d, esi
mov esi, dword [rsp + 0x38]
jmp 0x140056043
mov edi, r9d
mov esi, dword [rsp + 0x38]
nop dword [rax]
mov r10, r12
test edx, edx
je 0x14005672e
mov ecx, esi
inc ecx
je 0x140056722
mov r9d, edi
sub r9d, eax
mov eax, r8d
not eax
xor edx, edx
div ecx
cmp r9d, eax
ja 0x140056488
mov eax, r9d
imul eax, ecx
add eax, r8d
mov r11, qword [rsp + 0x138]
mov rcx, qword [rsp + 0x2c0]
mov dword [rsp + 0x100], edi
jmp 0x14005615a
mov r9d, esi
mov eax, dword [rsp + 0x30]
mov r8d, eax
mov r11, qword [rsp + 0x40]
cmp r11, qword [rsp + 0x48]
je 0x140055f20
mov dword [rsp + 0x30], eax
movzx eax, byte [r11]
test al, al
js 0x140056180
inc r11
mov qword [rsp + 0x40], r11
cmp eax, edi
jb 0x140056220
jmp 0x14005622a
mov r9d, eax
and r9d, 0x1f
movzx r8d, byte [r11 + 1]
and r8d, 0x3f
cmp al, 0xdf
jbe 0x1400561e1
movzx edx, byte [r11 + 2]
shl r8d, 6
and edx, 0x3f
or edx, r8d
cmp al, 0xf0
jb 0x1400561fa
movzx eax, byte [r11 + 3]
and r9d, 7
shl r9d, 0x12
shl edx, 6
and eax, 0x3f
or eax, edx
or eax, r9d
cmp eax, 0x110000
je 0x140055f18
add r11, 4
mov qword [rsp + 0x40], r11
mov rcx, qword [rsp + 0x2c0]
cmp eax, edi
jae 0x14005622a
jmp 0x140056220
add r11, 2
mov qword [rsp + 0x40], r11
shl r9d, 6
or r9d, r8d
mov eax, r9d
cmp eax, edi
jb 0x140056220
jmp 0x14005622a
add r11, 3
mov qword [rsp + 0x40], r11
shl r9d, 0xc
or edx, r9d
mov eax, edx
mov rcx, qword [rsp + 0x2c0]
cmp eax, edi
jae 0x14005622a
nop dword [rax + rax]
inc dword [rsp + 0x30]
je 0x140056490
cmp eax, edi
jne 0x140056140
mov dword [rsp + 0x38], esi
lea ebx, [r10 + 0x1a]
lea r9d, [r10 - 0x24]
neg r9d
cmp ebx, 0x25
cmovb r9d, r14d
cmp r10d, 0x24
mov eax, 1
cmovae r9d, eax
mov eax, dword [rsp + 0x30]
cmp eax, r9d
jae 0x1400562c0
mov esi, 0x61
cmp eax, 0x1a
jb 0x140056276
mov esi, 0x16
cmp eax, 0x24
jae 0x14005666c
add esi, eax
cmp esi, 0x80
mov edi, 0xd41d41d5
mov ebx, dword [rsp + 0x11c]
jae 0x140056370
cmp r15, qword [rcx]
jne 0x1400562a2
call fcn.140113610
mov rcx, qword [rsp + 0x2c0]
mov rax, qword [rcx + 8]
mov byte [rax + r15], sil
inc r15
jmp 0x1400563a0
mov esi, r10d
neg esi
mov edi, 0x48
jmp 0x140056304
add r13d, r12d
mov rdx, qword [rcx + 8]
mov byte [rdx + r15], r13b
inc r15
lea r9d, [rsi + rdi]
cmp edi, ebx
cmovae r9d, r14d
cmp edi, r10d
mov edx, 1
cmovbe r9d, edx
mov qword [rcx + 0x10], r15
add edi, 0x24
cmp eax, r9d
jb 0x14005625e
mov r8d, r9d
sub r8d, 0x24
je 0x140056651
sub eax, r9d
neg r8d
xor edx, edx
div r8d
mov r12d, edx
add r12d, r9d
mov r13d, 0x61
cmp r12d, 0x1a
jb 0x14005633e
mov r13d, 0x16
cmp r12d, 0x24
jae 0x14005666c
mov rcx, qword [rsp + 0x2c0]
cmp r15, qword [rcx]
jne 0x1400562d0
mov r14d, eax
mov rbp, r10
call fcn.140113610
mov r10, rbp
mov rcx, qword [rsp + 0x2c0]
mov eax, r14d
mov r14d, 0x1a
jmp 0x1400562d0
mov rax, qword [rcx]
sub rax, r15
cmp rax, 1
jbe 0x140056469
mov eax, esi
shr eax, 6
or al, 0xc0
and sil, 0x3f
or sil, 0x80
mov rdx, qword [rcx + 8]
mov byte [rdx + r15], al
mov byte [rdx + r15 + 1], sil
add r15, 2
mov qword [rcx + 0x10], r15
mov eax, dword [rsp + 0x38]
mov r9d, eax
inc r9d
je 0x1400566f9
cmp eax, dword [rsp + 0x108]
mov ecx, 2
mov eax, 0x2bc
cmove ecx, eax
xor r8d, r8d
mov eax, dword [rsp + 0x30]
xor edx, edx
div ecx
mov ecx, eax
xor edx, edx
div r9d
add eax, ecx
xor ecx, ecx
cmp eax, 0x1c8
jb 0x140056420
nop word cs:[rax + rax]
mov edx, eax
imul rdx, rdi
shr rdx, 0x20
mov r10d, eax
sub r10d, edx
shr r10d, 1
add r10d, edx
shr r10d, 5
add ecx, 0x24
cmp eax, 0x3e57
mov eax, r10d
ja 0x1400563f0
jmp 0x140056423
mov r10d, eax
lea eax, [r10*4]
lea eax, [rax + rax*8]
add r10d, 0x26
xor edx, edx
div r10w
movzx r10d, ax
add r10d, ecx
mov eax, r8d
mov esi, r9d
mov rcx, qword [rsp + 0x2c0]
mov edi, dword [rsp + 0x100]
mov r11, qword [rsp + 0x40]
cmp r11, qword [rsp + 0x48]
jne 0x14005615a
jmp 0x140055f20
mov r8d, 2
mov rdx, r15
call fcn.14004d8c0
mov rcx, qword [rsp + 0x2c0]
mov r15, qword [rcx + 0x10]
jmp 0x140056380
mov rcx, qword [rsp + 0x2c0]
movabs r12, 0x8080808080808080
lea r13, [rsp + 0x50]
mov bl, 1
xor esi, esi
mov rdx, qword [rsp + 0x140]
cmp r15, rdx
jb 0x140055ba6
test rdx, rdx
je 0x140055ba0
cmp r15, rdx
jbe 0x140055ba0
mov rax, qword [rcx + 8]
cmp byte [rax + rdx], 0xbf
jg 0x140055ba0
jmp 0x140056752
mov rcx, rsi
mov rdx, r14
mov r8, r15
call fcn.14004d8c0
mov r14, qword [rsi + 0x10]
jmp 0x140055b6b
mov rcx, qword [rsp + 0x148]
movzx eax, byte [rsp + 0x37]
mov byte [rcx], al
mov rax, qword [rsp + 0x150]
mov qword [rcx + 1], rax
mov eax, dword [rsp + 0x157]
mov dword [rcx + 8], eax
movaps xmm6, xmmword [rsp + 0x1b0]
movaps xmm7, xmmword [rsp + 0x1c0]
movaps xmm8, xmmword [rsp + 0x1d0]
movaps xmm9, xmmword [rsp + 0x1e0]
movaps xmm10, xmmword [rsp + 0x1f0]
movaps xmm11, xmmword [rsp + 0x200]
movaps xmm12, xmmword [rsp + 0x210]
movaps xmm13, xmmword [rsp + 0x220]
movaps xmm14, xmmword [rsp + 0x230]
movaps xmm15, xmmword [rsp + 0x240]
add rsp, 0x258
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret
mov rcx, rdx
mov rdx, rsi
mov rsi, r8
mov r8, r9
mov rdi, r9
call fcn.14004d8c0
mov rdx, qword [rsp + 0x2c0]
mov r8, rsi
mov r9, rdi
mov rsi, qword [rdx + 0x10]
jmp 0x14005408a
lea r8, str.src_index.crates.io_6f17d22bba15001f_idna_0.5.0_src_uts46.rs
mov edx, 0x75a
mov rcx, rax
call fcn.14001a41f
lea r8, [0x1401611b8]
mov rcx, rax
call fcn.14001a41f
lea r8, [0x1401611d0]
call fcn.14001a41f
lea r8, str.src_index.crates.io_6f17d22bba15001f_idna_0.5.0_src_uts46.rs
mov edx, 0x1f73
call fcn.14001a41f
lea r8, str.src_index.crates.io_6f17d22bba15001f_tinyvec_1.8.0_src_arrayvec.rs
mov rcx, rdx
mov edx, 4
call fcn.14001adc0
lea r8, str.src_index.crates.io_6f17d22bba15001f_idna_0.5.0_src_uts46.rs
mov edx, 0x1f73
call fcn.14001a41f
lea r8, [0x1401611a0]
mov rdx, rax
call fcn.14001a41f
lea rax, str.src_index.crates.io_6f17d22bba15001f_idna_0.5.0_src_uts46.rs
mov qword [rsp + 0x20], rax
lea rcx, [0x14016cd8c]
mov edx, 0x321c
call fcn.14001ecf0
lea r8, str.src_index.crates.io_6f17d22bba15001f_tinyvec_1.8.0_src_arrayvec.rs
mov edx, 4
mov rcx, rax
call fcn.14001adc0
lea rcx, str.src_index.crates.io_6f17d22bba15001f_idna_0.5.0_src_punycode.rs
call fcn.140020810
lea r8, [0x1401611e8]
mov rdx, rax
call fcn.14001a3b0
lea rcx, str.explicit_panic
lea r8, str.src_index.crates.io_6f17d22bba15001f_idna_0.5.0_src_punycode.rs
mov edx, 0xe
call fcn.14001b280
lea r8, str.src_index.crates.io_6f17d22bba15001f_tinyvec_1.8.0_src_arrayvec.rs
mov edx, 4
mov rcx, rax
call fcn.14001adc0
lea r8, str.src_index.crates.io_6f17d22bba15001f_unicode_normalization_0.1.24_src_lookups.rs
mov rcx, r14
call fcn.14001adc0
lea r8, str.src_index.crates.io_6f17d22bba15001f_unicode_normalization_0.1.24_src_lookups.rs
mov edx, 0xd7a
call fcn.14001a3b0
lea r8, str.src_index.crates.io_6f17d22bba15001f_unicode_normalization_0.1.24_src_lookups.rs
mov edx, 0x168b
call fcn.14001a3b0
lea r8, str.src_index.crates.io_6f17d22bba15001f_unicode_normalization_0.1.24_src_lookups.rs
mov rcx, r14
call fcn.14001adc0
mov ecx, 4
mov rdx, r13
call fcn.140017699
lea r8, str.src_index.crates.io_6f17d22bba15001f_tinyvec_1.8.0_src_arrayvec.rs
mov edx, 4
mov rcx, r15
call fcn.14001adc0
lea rcx, str.src_index.crates.io_6f17d22bba15001f_idna_0.5.0_src_punycode.rs
call fcn.14001b670
lea r8, str.src_index.crates.io_6f17d22bba15001f_tinyvec_1.8.0_src_arrayvec.rs
mov edx, 4
call fcn.14001adc0
lea rcx, str.src_index.crates.io_6f17d22bba15001f_idna_0.5.0_src_punycode.rs
call fcn.14001b670
lea rcx, str.src_index.crates.io_6f17d22bba15001f_idna_0.5.0_src_punycode.rs
call fcn.14001b670
lea rcx, str.src_index.crates.io_6f17d22bba15001f_idna_0.5.0_src_punycode.rs
call fcn.14001dfc0
lea r8, str.src_index.crates.io_6f17d22bba15001f_idna_0.5.0_src_uts46.rs
mov ecx, 4
mov edx, 4
call fcn.14001a41f
ud2
lea rcx, str.assertion_failed:_self.is_char_boundary_new_len_
lea r8, str._rustc_759e07f063fb8e6306ff1bdaeb70af56a878b415library_alloc_src_string.rs
mov edx, 0x30
call fcn.14001b280
lea rcx, str._rustc_759e07f063fb8e6306ff1bdaeb70af56a878b415library_alloc_src_string.rs
call fcn.140017660
lea rax, str.src_index.crates.io_6f17d22bba15001f_idna_0.5.0_src_uts46.rs
mov qword [rsp + 0x20], rax
mov rcx, r12
mov rdx, rdi
mov r8, r15
mov r9, rdi
call fcn.14001ecf0
lea rax, str.src_index.crates.io_6f17d22bba15001f_idna_0.5.0_src_punycode.rs
mov qword [rsp + 0x20], rax
mov rcx, r12
mov rdx, r15
mov r8, r14
mov r9, r15
call fcn.14001ecf0
int3