Function at 0x1800de2c0
Capabilities:
Encrypt data using speck

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0x68
mov rbx, r9
mov r14, r8
mov qword [rsp + 0x30], rcx
mov rdx, qword [rsp + 0xd8]
mov rax, qword [rsp + 0xd0]
mov qword [rsp + 0x50], rax
mov qword [rsp + 0x58], rdx
mov qword [rsp + 0x60], 0
xor r12d, r12d
mov ebp, 0xff
xor edi, edi
mov qword [rsp + 0x28], r9
mov qword [rsp + 0x20], r8
mov rcx, rdx
sub rcx, r12
jb 0x1800deeb9
lea rax, [r14 + rdi]
mov rsi, qword [rsp + 0x50]
mov r8, rbx
sub r8, rdi
cmp rcx, r8
mov r9, r8
cmovb r9, rcx
lea r10, [rsi + r12]
mov r11d, eax
xor r11d, r10d
test r11b, 7
jne 0x1800de35a
mov r15d, eax
neg r15d
and r15d, 7
lea r11, [r15 + 0x10]
cmp r11, r9
jbe 0x1800de38f
xor r11d, r11d
cmp r11, r9
jae 0x1800dec32
nop word cs:[rax + rax]
movzx r13d, byte [rax + r11]
test r13b, r13b
js 0x1800de470
mov byte [r10 + r11], r13b
inc r11
cmp r9, r11
jne 0x1800de370
jmp 0x1800dec32
test r15, r15
je 0x1800deb6f
movzx r13d, byte [rax]
test r13b, r13b
js 0x1800debe6
mov byte [r10], r13b
mov r11d, 1
cmp r15d, 1
je 0x1800deb72
movzx r13d, byte [rax + 1]
test r13b, r13b
js 0x1800de470
mov byte [r10 + 1], r13b
mov r11d, 2
cmp r15d, 2
je 0x1800deb72
movzx r13d, byte [rax + 2]
test r13b, r13b
js 0x1800de470
mov byte [r10 + 2], r13b
mov r11d, 3
cmp r15d, 3
je 0x1800deb72
movzx r13d, byte [rax + 3]
test r13b, r13b
js 0x1800de470
mov byte [r10 + 3], r13b
mov r11d, 4
cmp r15d, 4
je 0x1800deb72
movzx r13d, byte [rax + 4]
test r13b, r13b
js 0x1800de470
mov byte [r10 + 4], r13b
mov r11d, 5
cmp r15d, 5
je 0x1800deb72
movzx r13d, byte [rax + 5]
test r13b, r13b
js 0x1800de470
mov byte [r10 + 5], r13b
mov r11d, 6
cmp r15d, 6
je 0x1800deb72
movzx r13d, byte [rax + 6]
test r13b, r13b
js 0x1800de470
mov byte [r10 + 6], r13b
mov r11d, 7
jmp 0x1800deb72
mov rbx, qword [rsp + 0x28]
mov r14, qword [rsp + 0x20]
lea rsi, [0x1801aec24]
lea r15, [0x1801adb5a]
lea r10, [0x1801ae7f6]
add rdi, r11
lea r8, [r11 + r12]
lea rax, [r11 + r12]
inc rax
cmp rax, rdx
jae 0x1800dece8
cmp r13b, 0xe0
jae 0x1800de4d0
lea rcx, [rdi + 1]
cmp rcx, rbx
jae 0x1800dee19
and r13b, 0x1f
movzx r13d, r13b
shl r13d, 6
mov eax, 2
jmp 0x1800de510
lea rax, [rdi + 1]
cmp r13b, 0xf0
jae 0x1800ded04
cmp rax, rbx
jae 0x1800dee2a
lea rcx, [rdi + 2]
cmp rcx, rbx
jae 0x1800dee3e
movzx edx, r13b
shl edx, 0xc
movzx r13d, byte [r14 + rax]
and r13d, 0x3f
shl r13d, 6
or r13d, edx
mov eax, 3
movzx ecx, byte [r14 + rcx]
and ecx, 0x3f
or r13d, ecx
add rdi, rax
mov r12, r8
lea eax, [r13 + 0x5400]
movzx eax, ax
cmp eax, 0x2ba3
ja 0x1800de620
mov eax, 0x92e
xor edx, edx
mov ecx, 0x92e
jmp 0x1800de558
mov rcx, rax
sub rax, rdx
jbe 0x1800de592
shr rax, 1
add rax, rdx
xor r8d, r8d
cmp word [rsi + rax*2], r13w
setne r8b
cmovb r8d, ebp
cmp r8b, 1
je 0x1800de550
movzx edx, r8b
cmp edx, 0xff
jne 0x1800de6e6
inc rax
mov rdx, rax
mov rax, rcx
sub rax, rdx
ja 0x1800de558
movzx eax, r13w
cmp eax, 0xc8a5
jae 0x1800de711
mov eax, 0x437
xor ecx, ecx
mov edx, 0x437
jmp 0x1800de5b8
mov rdx, rax
sub rax, rcx
jbe 0x1800de5f2
shr rax, 1
add rax, rcx
xor r8d, r8d
cmp word [r15 + rax*2], r13w
setne r8b
cmovb r8d, ebp
cmp r8b, 1
je 0x1800de5b0
movzx ecx, r8b
cmp ecx, 0xff
jne 0x1800de783
inc rax
mov rcx, rax
mov rax, rdx
sub rax, rcx
ja 0x1800de5b8
lea rax, [rcx - 1]
cmp rax, 0x437
jae 0x1800dee4f
lea rax, [0x1801ad2ec]
add r13w, word [rax + rcx*2 - 2]
sub r13w, word [r15 + rcx*2 - 2]
jmp 0x1800de78f
lea eax, [r13 - 0x33de]
movzx eax, ax
cmp eax, 0xcb23
jae 0x1800de6b0
lea eax, [r13 - 0x4e00]
movzx eax, ax
cmp eax, 0x519d
jb 0x1800de657
lea eax, [r13 + 0x700]
movzx eax, ax
cmp eax, 0x10b
ja 0x1800dec92
xor eax, eax
lea rcx, str.OsOGP
cmp word [rcx], r13w
je 0x1800de80f
cmp word [rcx + 2], r13w
je 0x1800de800
cmp word [rcx + 4], r13w
je 0x1800de805
cmp word [rcx + 6], r13w
je 0x1800de80b
add rax, 4
add rcx, 8
lea rdx, [0x1801b24b0]
cmp rcx, rdx
jne 0x1800de660
jmp 0x1800dec92
lea rcx, [rsp + 0x38]
mov edx, r13d
call fcn.1800ddce0
cmp qword [rsp + 0x38], 0
je 0x1800dec92
movzx ecx, byte [rsp + 0x40]
movzx eax, byte [rsp + 0x48]
mov rdx, qword [rsp + 0x58]
cmp r12, rdx
jb 0x1800de835
jmp 0x1800ded94
movzx ecx, ax
shr ecx, 1
imul ecx, ecx, 0xae4d
shr ecx, 0x15
imul edx, ecx, 0x5e
sub eax, edx
add cl, 0xb0
add al, 0xa1
mov rdx, qword [rsp + 0x58]
cmp r12, rdx
jb 0x1800de835
jmp 0x1800ded94
mov eax, 0x217
xor ecx, ecx
mov edx, 0x217
jmp 0x1800de728
mov rdx, rax
sub rax, rcx
jbe 0x1800de75e
shr rax, 1
add rax, rcx
xor r8d, r8d
cmp word [r10 + rax*2], r13w
setne r8b
cmovb r8d, ebp
cmp r8b, 1
je 0x1800de720
movzx ecx, r8b
cmp ecx, 0xff
jne 0x1800de7ab
inc rax
mov rcx, rax
mov rax, rdx
sub rax, rcx
ja 0x1800de728
lea rax, [rcx - 1]
cmp rax, 0x217
jae 0x1800dee69
lea rax, [0x1801ae3c8]
add r13w, word [rax + rcx*2 - 2]
sub r13w, word [r10 + rcx*2 - 2]
jmp 0x1800de7b7
lea rcx, [0x1801ad2ec]
movzx r13d, word [rcx + rax*2]
movzx eax, r13w
shr eax, 1
imul ecx, eax, 0x1703
shr ecx, 0x13
imul eax, ecx, 0xb2
sub r13d, eax
mov al, 0x81
jmp 0x1800de7cf
lea rcx, [0x1801ae3c8]
movzx r13d, word [rcx + rax*2]
movzx eax, r13w
shr eax, 2
imul ecx, eax, 0x6187
shr ecx, 0x13
imul eax, ecx, 0x54
sub r13d, eax
mov al, 0xa1
add cl, al
cmp r13b, 0x1a
mov eax, 0x41
mov edx, 0x47
cmovae eax, edx
cmp r13b, 0x34
mov edx, 0x4d
cmovae eax, edx
add al, r13b
mov rdx, qword [rsp + 0x58]
cmp r12, rdx
jb 0x1800de835
jmp 0x1800ded94
inc rax
jmp 0x1800de80f
add rax, 2
jmp 0x1800de80f
add rax, 3
movzx ecx, ax
shr ecx, 1
imul ecx, ecx, 0xae4d
shr ecx, 0x15
imul edx, ecx, 0x5e
sub eax, edx
add al, 0xa1
add cl, 0xca
mov rdx, qword [rsp + 0x58]
cmp r12, rdx
jae 0x1800ded94
mov r8, qword [rsp + 0x50]
mov byte [r8 + r12], cl
lea rcx, [r12 + 1]
cmp rcx, rdx
jae 0x1800deda5
mov byte [r8 + r12 + 1], al
lea r11, [r12 + 2]
mov qword [rsp + 0x60], r11
cmp rdi, rbx
jae 0x1800decb7
add r12, 3
mov rdx, qword [rsp + 0x58]
cmp r12, rdx
jae 0x1800decc5
movzx r8d, byte [r14 + rdi]
test r8b, r8b
js 0x1800de890
inc rdi
mov ecx, 2
jmp 0x1800de990
movzx r9d, r8b
lea rcx, [rdi + 1]
cmp r8b, 0xe0
jae 0x1800de8c4
cmp rcx, rbx
jae 0x1800dedb3
movzx ecx, r9w
and ecx, 0x1f
shl ecx, 6
movzx r8d, byte [r14 + rdi + 1]
and r8d, 0x3f
or r8d, ecx
add rdi, 2
jmp 0x1800de909
cmp r8b, 0xf0
jae 0x1800de924
cmp rcx, rbx
jae 0x1800dedc4
lea rcx, [rdi + 2]
cmp rcx, rbx
jae 0x1800dede6
movzx ecx, r9w
shl ecx, 0xc
movzx r9d, byte [r14 + rdi + 1]
and r9d, 0x3f
shl r9d, 6
or r9d, ecx
movzx r8d, byte [r14 + rdi + 2]
and r8d, 0x3f
or r8d, r9d
add rdi, 3
mov word [rsp + 0x38], r8w
movzx ecx, byte [rsp + 0x3d]
shl rcx, 0x20
mov r10d, dword [rsp + 0x39]
or r10, rcx
xor ecx, ecx
jmp 0x1800de990
cmp rcx, rbx
jae 0x1800dedd5
lea rcx, [rdi + 2]
cmp rcx, rbx
jae 0x1800dedf7
lea rcx, [rdi + 3]
cmp rcx, rbx
jae 0x1800dee08
and r9d, 7
shl r9d, 0x12
movzx ecx, byte [r14 + rdi + 1]
and ecx, 0x3f
shl ecx, 0xc
or ecx, r9d
movzx r8d, byte [r14 + rdi + 2]
and r8d, 0x3f
shl r8d, 6
or r8d, ecx
movzx r10d, byte [r14 + rdi + 3]
and r10d, 0x3f
or r10d, r8d
add rdi, 4
shl r10d, 8
mov ecx, 1
nop dword [rax]
shl r10, 0x18
movzx r9d, r8b
shl r9, 0x10
or r9, r10
mov r13, r9
shr r13, 0x10
cmp rcx, 2
jne 0x1800deb30
mov r12, r11
lea r10, [0x1801ae7f6]
jmp 0x1800de9e8
inc rdi
mov ecx, 2
shl r8, 0x18
movzx r9d, al
shl r9, 0x10
or r9, r8
mov r13, r9
shr r13, 0x10
cmp rcx, 2
jne 0x1800deb4b
cmp r12, rdx
jae 0x1800ded83
mov rax, qword [rsp + 0x50]
mov byte [rax + r12], r13b
mov rax, qword [rsp + 0x60]
lea r12, [rax + 1]
mov qword [rsp + 0x60], r12
cmp r13b, 0x3c
jae 0x1800deb5c
cmp rdi, rbx
jae 0x1800dec70
add rax, 2
mov rdx, qword [rsp + 0x58]
cmp rax, rdx
jae 0x1800dec81
movzx eax, byte [r14 + rdi]
test al, al
jns 0x1800de9c0
movzx r8d, al
lea rcx, [rdi + 1]
cmp al, 0xe0
jae 0x1800dea66
cmp rcx, rbx
jae 0x1800dedb3
movzx ecx, r8w
and ecx, 0x1f
shl ecx, 6
movzx eax, byte [r14 + rdi + 1]
and eax, 0x3f
or eax, ecx
add rdi, 2
jmp 0x1800deaa4
cmp al, 0xf0
jae 0x1800deac1
cmp rcx, rbx
jae 0x1800dedc4
lea rcx, [rdi + 2]
cmp rcx, rbx
jae 0x1800dede6
movzx eax, r8w
shl eax, 0xc
movzx ecx, byte [r14 + rdi + 1]
and ecx, 0x3f
shl ecx, 6
or ecx, eax
movzx eax, byte [r14 + rdi + 2]
and eax, 0x3f
or eax, ecx
add rdi, 3
mov word [rsp + 0x38], ax
movzx ecx, byte [rsp + 0x3d]
shl rcx, 0x20
mov r8d, dword [rsp + 0x39]
or r8, rcx
xor ecx, ecx
jmp 0x1800de9c8
cmp rcx, rbx
jae 0x1800dedd5
lea rcx, [rdi + 2]
cmp rcx, rbx
jae 0x1800dedf7
lea rcx, [rdi + 3]
cmp rcx, rbx
jae 0x1800dee08
and r8d, 7
shl r8d, 0x12
movzx eax, byte [r14 + rdi + 1]
and eax, 0x3f
shl eax, 0xc
or eax, r8d
movzx ecx, byte [r14 + rdi + 2]
and ecx, 0x3f
shl ecx, 6
or ecx, eax
movzx r8d, byte [r14 + rdi + 3]
and r8d, 0x3f
or r8d, ecx
add rdi, 4
shl r8d, 8
mov ecx, 1
jmp 0x1800de9c8
or r9, rcx
mov r12, r11
lea r10, [0x1801ae7f6]
test cx, cx
je 0x1800de521
jmp 0x1800decdd
or r9, rcx
test cx, cx
je 0x1800de521
jmp 0x1800decdd
mov rdx, qword [rsp + 0x58]
cmp rdi, rbx
jbe 0x1800de312
jmp 0x1800deeca
xor r11d, r11d
lea r15, [r9 - 0x10]
add rsi, r12
add rsi, 8
nop dword [rax]
mov rbx, qword [rax + r11]
mov r14, qword [rax + r11 + 8]
mov qword [rsi + r11 - 8], rbx
mov qword [rsi + r11], r14
movabs r13, 0x8080808080808080
and rbx, r13
and r14, r13
mov r13, r14
or r13, rbx
jne 0x1800debb8
add r11, 0x10
cmp r11, r15
jbe 0x1800deb80
jmp 0x1800de35d
test rbx, rbx
je 0x1800debee
tzcnt rcx, rbx
shr ecx, 3
mov rbx, qword [rsp + 0x28]
mov r14, qword [rsp + 0x20]
lea rsi, [0x1801aec24]
lea r15, [0x1801adb5a]
lea r10, [0x1801ae7f6]
jmp 0x1800dec25
xor r11d, r11d
jmp 0x1800de47a
test r14, r14
lea rsi, [0x1801aec24]
lea r15, [0x1801adb5a]
lea r10, [0x1801ae7f6]
je 0x1800dec0f
tzcnt rcx, r14
jmp 0x1800dec14
mov ecx, 0x40
mov rbx, qword [rsp + 0x28]
mov r14, qword [rsp + 0x20]
shr ecx, 3
add rcx, 8
add r11, rcx
movzx r13d, byte [rax + r11]
jmp 0x1800de48f
add rdi, r9
add r12, r9
xor eax, eax
cmp rcx, r8
adc rax, 0x110000
movabs rdx, 0xffffffff00000000
lea rcx, [rsp + 0x50]
and rcx, rdx
mov r8, r12
or rcx, rax
mov rax, qword [rsp + 0x30]
mov qword [rax], rdi
mov qword [rax + 8], rcx
mov qword [rax + 0x10], r8
jmp 0x1800ded72
mov rax, qword [rsp + 0x30]
mov dword [rax + 8], 0x110000
jmp 0x1800ded6b
mov rax, qword [rsp + 0x30]
mov dword [rax + 8], 0x110001
jmp 0x1800ded6b
movzx edx, r13w
mov ecx, edx
xor ecx, 0xffefd800
cmp ecx, 0xffef07ff
jbe 0x1800deede
mov rax, qword [rsp + 0x30]
mov dword [rax + 8], edx
jmp 0x1800ded6b
mov rax, qword [rsp + 0x30]
mov dword [rax + 8], 0x110000
jmp 0x1800decd1
mov rax, qword [rsp + 0x30]
mov dword [rax + 8], 0x110001
mov qword [rax], rdi
mov qword [rax + 0x10], r11
jmp 0x1800ded72
shr r9, 0x20
mov rax, qword [rsp + 0x30]
jmp 0x1800ded67
movabs rcx, 0xffffffff00000000
lea rax, [rsp + 0x50]
and rax, rcx
mov ecx, 0x110001
jmp 0x1800dec58
cmp rax, rbx
jae 0x1800dee83
lea rcx, [rdi + 2]
cmp rcx, rbx
mov rax, qword [rsp + 0x30]
jae 0x1800dee97
lea rcx, [rdi + 3]
cmp rcx, rbx
jae 0x1800deea8
and r13b, 7
movzx edx, r13b
shl edx, 0x12
movzx ecx, byte [r14 + rdi + 1]
and ecx, 0x3f
shl ecx, 0xc
or ecx, edx
movzx edx, byte [r14 + rdi + 2]
and edx, 0x3f
shl edx, 6
or edx, ecx
movzx r9d, byte [r14 + rdi + 3]
and r9d, 0x3f
or r9d, edx
add rdi, 4
mov r12, r8
mov dword [rax + 8], r9d
mov qword [rax], rdi
mov qword [rax + 0x10], r12
add rsp, 0x68
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret
lea r8, str.C:Users_nero.cargo_registry_srcindex.crates.io_6f17d22bba15001fencoding_rs_0.8.33_srchandles.rs
mov rcx, r12
call fcn.180139bb0
ud2
lea r8, str.C:Users_nero.cargo_registry_srcindex.crates.io_6f17d22bba15001fencoding_rs_0.8.33_srchandles.rs
mov rcx, r12
call fcn.180139bb0
ud2
lea r8, str.C:Users_nero.cargo_registry_srcindex.crates.io_6f17d22bba15001fencoding_rs_0.8.33_srchandles.rs
call fcn.180139bb0
ud2
lea r8, str.C:Users_nero.cargo_registry_srcindex.crates.io_6f17d22bba15001fencoding_rs_0.8.33_srchandles.rs
mov rdx, rbx
call fcn.180139bb0
ud2
lea r8, str.C:Users_nero.cargo_registry_srcindex.crates.io_6f17d22bba15001fencoding_rs_0.8.33_srchandles.rs
mov rdx, rbx
call fcn.180139bb0
ud2
lea r8, str.C:Users_nero.cargo_registry_srcindex.crates.io_6f17d22bba15001fencoding_rs_0.8.33_srchandles.rs
mov rdx, rbx
call fcn.180139bb0
ud2
lea r8, str.C:Users_nero.cargo_registry_srcindex.crates.io_6f17d22bba15001fencoding_rs_0.8.33_srchandles.rs
mov rdx, rbx
call fcn.180139bb0
ud2
lea r8, str.C:Users_nero.cargo_registry_srcindex.crates.io_6f17d22bba15001fencoding_rs_0.8.33_srchandles.rs
mov rdx, rbx
call fcn.180139bb0
ud2
lea r8, str.C:Users_nero.cargo_registry_srcindex.crates.io_6f17d22bba15001fencoding_rs_0.8.33_srchandles.rs
mov rdx, rbx
call fcn.180139bb0
ud2
lea r8, str.C:Users_nero.cargo_registry_srcindex.crates.io_6f17d22bba15001fencoding_rs_0.8.33_srchandles.rs
mov rdx, rbx
call fcn.180139bb0
ud2
lea r8, str.C:Users_nero.cargo_registry_srcindex.crates.io_6f17d22bba15001fencoding_rs_0.8.33_srchandles.rs
mov rcx, rax
mov rdx, rbx
call fcn.180139bb0
ud2
lea r8, str.C:Users_nero.cargo_registry_srcindex.crates.io_6f17d22bba15001fencoding_rs_0.8.33_srchandles.rs
mov rdx, rbx
call fcn.180139bb0
ud2
lea r8, str.C:Users_nero.cargo_registry_srcindex.crates.io_6f17d22bba15001fencoding_rs_0.8.33_srcdata.rs
mov edx, 0x437
mov rcx, 0xffffffffffffffff
call fcn.180139bb0
ud2
lea r8, str.C:Users_nero.cargo_registry_srcindex.crates.io_6f17d22bba15001fencoding_rs_0.8.33_srcdata.rs
mov edx, 0x217
mov rcx, 0xffffffffffffffff
call fcn.180139bb0
ud2
lea r8, str.C:Users_nero.cargo_registry_srcindex.crates.io_6f17d22bba15001fencoding_rs_0.8.33_srchandles.rs
mov rcx, rax
mov rdx, rbx
call fcn.180139bb0
ud2
lea r8, str.C:Users_nero.cargo_registry_srcindex.crates.io_6f17d22bba15001fencoding_rs_0.8.33_srchandles.rs
mov rdx, rbx
call fcn.180139bb0
ud2
lea r8, str.C:Users_nero.cargo_registry_srcindex.crates.io_6f17d22bba15001fencoding_rs_0.8.33_srchandles.rs
mov rdx, rbx
call fcn.180139bb0
ud2
lea r8, str.C:Users_nero.cargo_registry_srcindex.crates.io_6f17d22bba15001fencoding_rs_0.8.33_srchandles.rs
mov rcx, r12
call fcn.180139f20
ud2
lea r8, str.C:Users_nero.cargo_registry_srcindex.crates.io_6f17d22bba15001fencoding_rs_0.8.33_srchandles.rs
mov rcx, rdi
mov rdx, rbx
call fcn.180139f20
ud2
lea rcx, [0x18019f9b0]
lea r8, str.C:Users_nero.cargo_registry_srcindex.crates.io_6f17d22bba15001fencoding_rs_0.8.33_srclib.rs_b
mov edx, 0x2b
call fcn.180139b10
ud2