Function at 0x1400917a0
Capabilities:
Encrypt data using speck

Disassembly:
push rbp
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbx
sub rsp, 0x2b8
lea rbp, [rsp + 0x80]
movaps xmmword [rbp + 0x220], xmm6
mov qword [rbp + 0x218], 0xfffffffffffffffe
mov qword [rbp + 0x208], rdx
mov r14, rcx
movabs rax, 0x900000007fffffff
mov qword [rbp + 0x58], rax
movabs rax, 0xd400c029ffffffff
mov qword [rbp + 0x50], rax
cmp qword [rcx + 0xa0], 0
jne 0x14009181c
mov rax, qword [r14 + 0xa8]
mov qword [rbp + 0x210], rax
mov rdx, qword [r14 + 0x40]
cmp qword [r14 + 0x48], 0
je 0x140091835
lea rax, [r14 + 0x50]
jmp 0x140091839
lea rax, [r14 + 0xa8]
mov qword [rbp + 0x210], rax
mov rdx, qword [r14 + 0x40]
cmp qword [r14 + 0x48], 0
jne 0x140091816
mov rax, qword [r14 + 0x50]
xor ecx, ecx
cmp rdx, 2
cmovne rcx, rax
cmp qword [r14 + 0xf0], 0
jne 0x140091861
mov rsi, qword [r14 + 0xf8]
cmp qword [r14 + 8], 0
je 0x14009186f
lea rbx, [r14 + 0x10]
jmp 0x140091873
lea rsi, [r14 + 0xf8]
cmp qword [r14 + 8], 0
jne 0x14009185b
mov rbx, qword [r14 + 0x10]
mov rax, qword [rbp + 0x2a0]
movzx edi, byte [r14]
cmp edx, 2
mov qword [rbp + 0x70], r8
jne 0x14009188b
xor edx, edx
jmp 0x140091892
movzx edx, byte [rcx + 0x4a]
and dl, 1
mov qword [rbp + 0xa0], r9
lea r13, [r9 + rax*4]
movzx r8d, byte [r14 + 0x12a]
mov r9, qword [rsi]
mov r10, qword [rsi + 8]
mov r11, qword [rsi + 0x18]
mov rsi, qword [rsi + 0x20]
test dil, 1
je 0x1400918cb
mov r12, qword [rbx]
mov r15, qword [rbx + 8]
mov rdi, qword [rbx + 0x18]
mov rbx, qword [rbx + 0x20]
jmp 0x1400918db
mov edi, 1
xor ebx, ebx
xor r15d, r15d
mov r12d, 1
mov rax, qword [rbp + 0xa0]
mov qword [rbp + 0x158], rax
mov qword [rbp + 0x160], r13
mov dword [rbp + 0x108], 0
movups xmm0, xmmword [rbp + 0xa8]
movups xmm1, xmmword [rbp + 0xb8]
movups xmm2, xmmword [rbp + 0xc8]
movups xmm3, xmmword [rbp + 0xd8]
movups xmmword [rbp + 0x10c], xmm0
movups xmmword [rbp + 0x11c], xmm1
movups xmmword [rbp + 0x12c], xmm2
movups xmmword [rbp + 0x13c], xmm3
mov r13d, dword [rbp + 0xe8]
mov dword [rbp + 0x14c], r13d
mov qword [rbp + 0x150], 0
mov qword [rbp + 0x1b0], 0
mov dword [rbp + 0x1c4], 0
mov byte [rbp + 0x1c8], 0
mov r13w, word [rbp + 0x205]
mov word [rbp + 0x1c9], r13w
mov r13b, byte [rbp + 0x207]
mov byte [rbp + 0x1cb], r13b
mov rax, qword [rbp + 0x210]
mov qword [rbp + 0x168], rax
mov qword [rbp + 0x1b8], rcx
mov qword [rbp + 0x170], r9
mov qword [rbp + 0x178], r10
mov qword [rbp + 0x180], r11
mov qword [rbp + 0x188], rsi
mov qword [rbp + 0x190], r12
mov qword [rbp + 0x198], r15
mov qword [rbp + 0x1a0], rdi
mov qword [rbp + 0x1a8], rbx
mov byte [rbp + 0x1d0], dl
mov dword [rbp + 0x1cc], r8d
mov byte [rbp + 0x1d1], 2
mov r8d, dword [rbp + 0x1c4]
mov dword [rbp + 0x1c0], 0x110000
lea rcx, [rbp + 0x108]
mov edx, 0xffff
call fcn.1400972b0
lea r8, [rbp + 0x158]
lea rdx, [rbp + 0x10c]
mov ecx, dword [rbp + 0x108]
mov rax, qword [rdx]
mov qword [rbp + 0x78], rax
mov eax, dword [rdx + 8]
mov dword [rbp + 0x80], eax
mov rdx, qword [rbp + 0x118]
movups xmm0, xmmword [rbp + 0x120]
movaps xmmword [rbp - 0x60], xmm0
movups xmm0, xmmword [rbp + 0x130]
movaps xmmword [rbp - 0x50], xmm0
movups xmm0, xmmword [rbp + 0x140]
movaps xmmword [rbp - 0x40], xmm0
mov rax, qword [rbp + 0x150]
movups xmm0, xmmword [r8]
movups xmm1, xmmword [r8 + 0x10]
movups xmm2, xmmword [r8 + 0x20]
movups xmm3, xmmword [r8 + 0x30]
movaps xmmword [rbp - 0x30], xmm0
movaps xmmword [rbp - 0x20], xmm1
movaps xmmword [rbp - 0x10], xmm2
movaps xmmword [rbp], xmm3
movups xmm0, xmmword [r8 + 0x40]
movaps xmmword [rbp + 0x10], xmm0
movups xmm0, xmmword [r8 + 0x50]
movaps xmmword [rbp + 0x20], xmm0
movups xmm0, xmmword [r8 + 0x60]
movaps xmmword [rbp + 0x30], xmm0
movups xmm0, xmmword [r8 + 0x70]
movaps xmmword [rbp + 0x40], xmm0
cmp qword [r14 + 0x130], 0
jne 0x140091ab5
mov r8, qword [r14 + 0x138]
jmp 0x140091abc
lea r8, [r14 + 0x138]
movups xmm0, xmmword [r8]
movzx r8d, word [r14 + 0x128]
mov dword [rbp + 0x108], ecx
mov rcx, qword [rbp + 0x78]
mov qword [rbp + 0x10c], rcx
mov ecx, dword [rbp + 0x80]
mov dword [rbp + 0x114], ecx
mov qword [rbp + 0x118], rdx
movaps xmm1, xmmword [rbp - 0x60]
movaps xmm2, xmmword [rbp - 0x50]
movaps xmm3, xmmword [rbp - 0x40]
movups xmmword [rbp + 0x120], xmm1
movups xmmword [rbp + 0x130], xmm2
movups xmmword [rbp + 0x140], xmm3
mov qword [rbp + 0x150], rax
movaps xmm1, xmmword [rbp - 0x30]
movaps xmm2, xmmword [rbp - 0x20]
movaps xmm3, xmmword [rbp - 0x10]
movaps xmm4, xmmword [rbp]
movups xmmword [rbp + 0x158], xmm1
movups xmmword [rbp + 0x168], xmm2
movups xmmword [rbp + 0x178], xmm3
movups xmmword [rbp + 0x188], xmm4
movaps xmm1, xmmword [rbp + 0x10]
movups xmmword [rbp + 0x198], xmm1
movaps xmm1, xmmword [rbp + 0x20]
movups xmmword [rbp + 0x1a8], xmm1
movaps xmm1, xmmword [rbp + 0x30]
movups xmmword [rbp + 0x1b8], xmm1
movaps xmm1, xmmword [rbp + 0x40]
movups xmmword [rbp + 0x1c8], xmm1
movups xmmword [rbp + 0x1d8], xmm0
mov qword [rbp + 0x1e8], 0
mov dword [rbp + 0x1f0], 0x110000
mov dword [rbp + 0x1f4], r8d
lea rax, [rbp + 0x50]
mov qword [rbp + 0x1f8], rax
mov rax, qword [rbp + 0x208]
lea rcx, [rax + 0x3f8]
mov qword [rbp + 0x90], rcx
lea rcx, [rax + 4]
mov qword [rbp + 0x100], rcx
add rax, 8
mov qword [rbp + 0x98], rax
mov eax, 0x110000
xorps xmm6, xmm6
jmp 0x140091bdd
mov dword [rcx + rax*4], r14d
inc qword [rdx]
mov eax, dword [rbp + 0x1f0]
cmp eax, 0x110000
jne 0x140091d20
mov rax, qword [rbp + 0x150]
lea rcx, [rbp + 0x10c]
mov r8, rax
cmp rax, 0x12
jb 0x140091c0d
mov r8, qword [rbp + 0x110]
mov rcx, qword [rbp + 0x118]
mov rdx, qword [rbp + 0x1b0]
cmp rdx, r8
jae 0x140091c50
mov ecx, dword [rcx + rdx*4]
inc rdx
mov qword [rbp + 0x1b0], rdx
cmp rax, 0x12
jb 0x140091cdb
lea r8, [rbp + 0x110]
cmp rdx, qword [rbp + 0x110]
je 0x140091ce7
jmp 0x140091cf9
mov r14d, dword [rbp + 0x1c0]
mov r13, qword [rbp + 0x1c4]
mov dword [rbp + 0x1c0], 0x110000
cmp r14d, 0x110000
je 0x14009269c
cmp r14d, dword [rbp + 0x1f4]
jb 0x140091c88
cmp r13d, 2
jae 0x140092550
lea rcx, [rbp + 0xa8]
lea rdx, [rbp + 0x108]
call fcn.140097b50
mov eax, dword [rbp + 0xa8]
cmp eax, 0x110000
je 0x140092467
mov edx, dword [rbp + 0xac]
mov ecx, dword [rbp + 0xb0]
cmp eax, dword [rbp + 0x1f4]
jae 0x1400925d3
mov dword [rbp + 0x1c0], eax
mov dword [rbp + 0x1c4], edx
mov dword [rbp + 0x1c8], ecx
jmp 0x140092467
lea r8, [rbp + 0x150]
cmp rdx, rax
jne 0x140091cf9
mov qword [r8], 0
mov qword [rbp + 0x1b0], 0
mov r14d, ecx
and r14d, 0xffffff
cmp ecx, 0xffffff
ja 0x140092474
mov dword [rbp + 0x1f0], r14d
nop word cs:[rax + rax]
xor r13d, r13d
xor r14d, r14d
xor ebx, ebx
mov edx, r14d
xor r14d, r14d
jmp 0x140091d43
mov r13, qword [rbp + 0x1c4]
mov dword [rbp + 0x1c0], 0x110000
mov bl, 1
mov eax, dword [rbp + 0x1f0]
mov dword [rbp + 0x1f0], 0x110000
cmp eax, 0x110000
jne 0x140091de0
lea rcx, [rbp + 0x108]
mov r8d, r13d
call fcn.1400972b0
mov r13d, eax
mov rdi, qword [rbp + 0x1d8]
mov rsi, qword [rbp + 0x1e0]
test bl, 1
je 0x140091df0
mov qword [rbp + 0xc8], rdi
mov qword [rbp + 0xd0], rsi
mov qword [rbp + 0xa8], 1
lea eax, [r13 - 0x1161]
lea rcx, [rbp + 0xb0]
movups xmmword [rcx], xmm6
cmp eax, 0x9e
jbe 0x1400923d6
lea rcx, [rbp + 0xa8]
mov edx, r14d
mov r8d, r13d
call fcn.14008e2a0
cmp eax, 0x110000
jne 0x140091df3
jmp 0x140092640
mov rdi, qword [rbp + 0x1d8]
mov rsi, qword [rbp + 0x1e0]
jmp 0x140091df3
mov eax, r13d
mov r12, qword [rbp + 0x150]
mov r15, qword [rbp + 0x110]
mov rcx, qword [rbp + 0x118]
mov qword [rbp + 0x210], rcx
mov r14, qword [rbp + 0x1b0]
mov ebx, eax
jmp 0x140091e34
add edx, ebx
add edx, 0xffffee59
inc r14
mov qword [rbp + 0x1b0], r14
mov ebx, edx
cmp r12, 0x12
jb 0x140091e50
mov rax, qword [rbp + 0x210]
cmp r14, r15
jb 0x140091e60
jmp 0x1400923c5
lea rax, [rbp + 0x10c]
cmp r14, r12
jae 0x14009238b
mov r13d, dword [rax + r14*4]
mov edx, r13d
and edx, 0xffffff
mov qword [rbp + 0xc8], rdi
mov qword [rbp + 0xd0], rsi
mov qword [rbp + 0xa8], 1
lea eax, [rdx - 0x1161]
lea rcx, [rbp + 0xb0]
movups xmmword [rcx], xmm6
cmp eax, 0x9e
jbe 0x140091ed0
cmp edx, 0x10000
jae 0x140091f10
mov edx, r13d
lea rcx, [rbp + 0xa8]
call fcn.14008dd70
cmp eax, 1
je 0x140091f55
jmp 0x140092030
cmp eax, 0x15
jae 0x140091f80
lea ecx, [rbx - 0x1100]
cmp ecx, 0x13
jae 0x140092030
imul ecx, ecx, 0x24c
lea edx, [rax + rax*8]
lea edx, [rdx + rdx*2]
add edx, eax
add edx, ecx
add edx, 0xac00
jmp 0x140091e28
shr edx, 0xa
add edx, 0xffffd7c0
lea rcx, [rbp + 0xa8]
call fcn.14008dd70
or eax, 2
cmp eax, 3
jne 0x140092030
mov edx, r13d
and edx, 0x3ff
or edx, 0xdc00
lea rcx, [rbp + 0xa8]
call fcn.14008dd70
cmp eax, 1
jne 0x140092030
mov rax, rbx
cmp eax, 0x10000
jae 0x140091fd0
mov edx, eax
lea rcx, [rbp + 0xa8]
call fcn.14008dd70
cmp eax, 2
je 0x14009200e
jmp 0x140092030
lea eax, [rdx - 0x11a8]
cmp eax, 0x1b
jae 0x140092030
lea eax, [rbx - 0xac00]
cmp eax, 0x2ba3
ja 0x140092030
mov ecx, eax
shr ecx, 2
imul rcx, rcx, 0x24924925
shr rcx, 0x20
lea r8d, [rcx + rcx*8]
lea r8d, [r8 + r8*2]
add r8d, ecx
sub eax, r8d
je 0x140091e20
jmp 0x140092030
mov edx, eax
shr edx, 0xa
add edx, 0xffffd7c0
lea rcx, [rbp + 0xa8]
call fcn.14008dd70
or eax, 2
cmp eax, 3
jne 0x140092030
mov edx, ebx
and edx, 0x3ff
or edx, 0xdc00
lea rcx, [rbp + 0xa8]
call fcn.14008dd70
cmp eax, 2
jne 0x140092030
mov eax, edx
xor eax, 0xd800
add eax, 0xffef0000
cmp eax, 0xffef07ff
jbe 0x140092030
cmp edx, 0x110000
jne 0x140091e28
nop dword [rax]
cmp r12, 0x12
jb 0x140092050
lea rax, [rbp + 0x110]
cmp r15, r14
jae 0x140092063
jmp 0x140092796
mov r15, r12
lea rax, [rbp + 0x150]
cmp r12, r14
jb 0x140092796
mov qword [rax], 0
mov rsi, qword [rbp + 0x150]
cmp rsi, 0x12
jb 0x1400920a0
cmp r15, r14
je 0x1400920f5
mov rsi, qword [rbp + 0x110]
cmp r14, rsi
jne 0x1400920b8
lea rax, [rbp + 0x110]
jmp 0x1400920f2
cmp r15, r14
je 0x1400920f5
lea rax, [rbp + 0x10c]
mov qword [rbp + 0x210], rax
cmp r14, rsi
je 0x1400920eb
sub r15, r14
mov rax, qword [rbp + 0x210]
lea rdx, [rax + r14*4]
lea rcx, [rax + rsi*4]
lea r8, [r15*4]
call fcn.14025a788
add r15, rsi
cmp qword [rbp + 0x150], 0x11
lea rax, [rbp + 0x110]
ja 0x1400920f2
lea rax, [rbp + 0x150]
mov qword [rax], r15
mov qword [rbp + 0x1b0], 0
cmp r13d, 0x1000000
jb 0x140092610
shr r13d, 0x18
mov esi, 1
mov r12, qword [rbp + 0x110]
test r12, r12
jne 0x140092467
mov edx, dword [rbp + 0x1c0]
cmp edx, 0x110000
je 0x140092467
cmp edx, dword [rbp + 0x1f4]
jb 0x140092467
mov eax, dword [rbp + 0x1c4]
lea ecx, [rax - 0x1161]
cmp ecx, 0x62
jb 0x140091d30
mov ecx, eax
and ecx, 0xffffff00
cmp ecx, 0xd800
je 0x140091d30
dec eax
cmp eax, 1
jbe 0x140091d30
jmp 0x140092467
mov r15, r12
lea rax, [rbp + 0x150]
test r15, r15
mov r14, rbx
je 0x1400923ab
mov qword [rax], 0
mov r12, qword [rbp + 0x150]
mov qword [rbp + 0x1b0], 0
cmp r12, 0x12
jae 0x140092324
jmp 0x14009232b
lea rax, [rbp + 0x110]
test r15, r15
mov r14, rbx
jne 0x14009239d
jmp 0x1400923ab
cmp eax, 0x15
jae 0x140092406
lea ecx, [r14 - 0x1100]
cmp ecx, 0x13
jae 0x140092640
imul ecx, ecx, 0x24c
lea edx, [rax + rax*8]
lea edx, [rdx + rdx*2]
add edx, eax
lea eax, [rcx + rdx]
add eax, 0xac00
jmp 0x140091df3
lea eax, [r13 - 0x11a8]
cmp eax, 0x1b
jae 0x140092640
lea eax, [r14 - 0xac00]
cmp eax, 0x2ba3
ja 0x140092640
mov ecx, eax
shr ecx, 2
imul rcx, rcx, 0x24924925
shr rcx, 0x20
lea edx, [rcx + rcx*8]
lea edx, [rdx + rdx*2]
add edx, ecx
sub eax, edx
jne 0x140092640
lea eax, [r14 + r13]
add eax, 0xffffee59
jmp 0x140091df3
cmp r14d, 0x110000
je 0x140092695
cmp r14d, 0x7f
ja 0x1400924c0
xor eax, eax
mov ecx, r14d
mov edx, 1
shld rax, rdx, cl
shl rdx, cl
mov rcx, qword [rbp + 0x1f8]
test r14b, 0x40
cmovne rax, rdx
mov r8d, 0
cmovne rdx, r8
and rax, qword [rcx + 8]
and rdx, qword [rcx]
or rdx, rax
je 0x1400924cd
jmp 0x14009264c
cmp r14d, 0xfffd
je 0x14009264c
mov rdx, qword [rbp + 0x90]
mov r8, qword [rdx]
cmp r8, 0xfe
jb 0x140092510
mov rcx, qword [rbp + 0x208]
mov rax, qword [rcx + 8]
mov rcx, qword [rcx + 0x10]
mov rdx, qword [rbp + 0x98]
cmp rax, r8
jne 0x140091bd0
jmp 0x140092529
mov rax, r8
mov rcx, qword [rbp + 0x100]
mov r8d, 0xfd
cmp rax, r8
jne 0x140091bd0
mov rcx, qword [rbp + 0x208]
call fcn.14025dfd0
mov rcx, qword [rbp + 0x208]
mov rax, qword [rcx + 8]
mov rcx, qword [rcx + 0x10]
mov rdx, qword [rbp + 0x98]
jmp 0x140091bd0
bt r13, 0x20
jb 0x140091d26
cmp r13d, 0x10000
jb 0x140091d26
test r13w, r13w
je 0x140091c88
movzx eax, r13w
cmp eax, 1
je 0x140091d26
mov ecx, r13d
shr ecx, 0x10
mov eax, ecx
and eax, 0x7f
cmp ax, 0x3c
setne al
add ecx, 0xfffff400
movzx ecx, cx
cmp ecx, 0xfd00
setb cl
lea edx, [r14 - 0x1ffc]
cmp edx, 0xffffff74
ja 0x140091d26
lea edx, [r14 - 0xfb4f]
cmp edx, 0xffffffcd
ja 0x140091d26
or al, cl
jne 0x140091c88
jmp 0x140091d26
mov r8d, edx
and r8d, 0xffffff00
cmp r8d, 0xd800
sete r8b
lea r9d, [rdx - 1]
cmp r9d, 2
setb r9b
or r9b, r8b
je 0x140092618
mov dword [rbp + 0x1c0], eax
mov dword [rbp + 0x1c4], edx
mov dword [rbp + 0x1c8], ecx
jmp 0x140091d26
mov r14, rbx
jmp 0x140092467
lea r8d, [rdx - 0x11c3]
mov dword [rbp + 0x1c0], eax
mov dword [rbp + 0x1c4], edx
mov dword [rbp + 0x1c8], ecx
cmp r8d, 0xffffff9e
jae 0x140091d26
jmp 0x140092467
mov dword [rbp + 0x1f0], r13d
jmp 0x140092467
cmp qword [rbp + 0x150], 0x12
jb 0x14009266c
mov r8, qword [rbp + 0x118]
mov rcx, qword [0x14034f0b8]
xor edx, edx
call qword [sym.imp.kernel32.dll_HeapFree]
cmp qword [rbp + 0x1e8], 0
je 0x140092775
mov r8, qword [rbp + 0x1d8]
mov rcx, qword [0x14034f0b8]
xor edx, edx
call qword [sym.imp.kernel32.dll_HeapFree]
jmp 0x140092775
mov rax, qword [rbp + 0x150]
cmp rax, 0x12
jb 0x1400926b8
mov r8, qword [rbp + 0x118]
mov rcx, qword [0x14034f0b8]
xor edx, edx
call qword [sym.imp.kernel32.dll_HeapFree]
cmp qword [rbp + 0x1e8], 0
mov rsi, qword [rbp + 0xa0]
mov rdi, qword [rbp + 0x70]
mov rbx, qword [rbp + 0x90]
je 0x1400926ea
mov r8, qword [rbp + 0x1d8]
mov rcx, qword [0x14034f0b8]
xor edx, edx
call qword [sym.imp.kernel32.dll_HeapFree]
mov rdx, qword [rbx]
cmp rdx, 0xfe
jb 0x14009270c
mov rax, qword [rbp + 0x208]
mov rdx, qword [rax + 8]
mov rax, qword [rax + 0x10]
mov qword [rbp + 0x100], rax
mov rax, rdx
sub rax, rdi
jb 0x1400927b0
mov rcx, qword [rbp + 0x100]
lea rcx, [rcx + rdi*4]
movabs rdx, 0x3fffffffffffffff
and rax, rdx
mov rdx, qword [rbp + 0x2a0]
cmp rax, rdx
cmovae rax, rdx
neg rax
mov rdx, 0xffffffffffffffff
nop dword [rax + rax]
lea r8, [rax + rdx]
cmp r8, 0xffffffffffffffff
je 0x140092779
mov r9d, dword [rcx + rdx*4 + 4]
lea r8, [rdx + 1]
cmp r9d, dword [rsi + rdx*4 + 4]
mov rdx, r8
je 0x140092750
mov dword [rcx + r8*4], 0xfffd
mov al, 1
jmp 0x14009277b
xor eax, eax
movaps xmm6, xmmword [rbp + 0x220]
add rsp, 0x2b8
pop rbx
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
pop rbp
ret
lea rcx, str.assertion_failed:_end___len
lea r8, [0x1402a9a88]
mov edx, 0x1c
call fcn.14025bae0
jmp 0x1400927d7
lea r8, str.C:UsersAdmin_scooppersist_rustup.cargo_registry_srcindex.crates.io_6f17d22bba15001fidna_1.0.3_srcuts46.rsPunycode_overflows_should_not_be_possible_due_to_PUNYCODE_ENCODE_MAX_INPUT_LENGTH
mov rcx, rdi
call fcn.14025b950
lea rcx, str.assertion_failed:_index___len
lea r8, [0x1402a9ac0]
mov edx, 0x1d
call fcn.14025bae0
ud2