Function at 0x1800df0d0
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 0x1800dfcc9
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 0x1800df16a
mov r15d, eax
neg r15d
and r15d, 7
lea r11, [r15 + 0x10]
cmp r11, r9
jbe 0x1800df19f
xor r11d, r11d
cmp r11, r9
jae 0x1800dfa42
nop word cs:[rax + rax]
movzx r13d, byte [rax + r11]
test r13b, r13b
js 0x1800df280
mov byte [r10 + r11], r13b
inc r11
cmp r9, r11
jne 0x1800df180
jmp 0x1800dfa42
test r15, r15
je 0x1800df97f
movzx r13d, byte [rax]
test r13b, r13b
js 0x1800df9f6
mov byte [r10], r13b
mov r11d, 1
cmp r15d, 1
je 0x1800df982
movzx r13d, byte [rax + 1]
test r13b, r13b
js 0x1800df280
mov byte [r10 + 1], r13b
mov r11d, 2
cmp r15d, 2
je 0x1800df982
movzx r13d, byte [rax + 2]
test r13b, r13b
js 0x1800df280
mov byte [r10 + 2], r13b
mov r11d, 3
cmp r15d, 3
je 0x1800df982
movzx r13d, byte [rax + 3]
test r13b, r13b
js 0x1800df280
mov byte [r10 + 3], r13b
mov r11d, 4
cmp r15d, 4
je 0x1800df982
movzx r13d, byte [rax + 4]
test r13b, r13b
js 0x1800df280
mov byte [r10 + 4], r13b
mov r11d, 5
cmp r15d, 5
je 0x1800df982
movzx r13d, byte [rax + 5]
test r13b, r13b
js 0x1800df280
mov byte [r10 + 5], r13b
mov r11d, 6
cmp r15d, 6
je 0x1800df982
movzx r13d, byte [rax + 6]
test r13b, r13b
js 0x1800df280
mov byte [r10 + 6], r13b
mov r11d, 7
jmp 0x1800df982
mov rbx, qword [rsp + 0x28]
mov r14, qword [rsp + 0x20]
lea rsi, [0x1801adc24]
lea r15, [0x1801acb5a]
lea r10, [0x1801ad7f6]
add rdi, r11
lea r8, [r11 + r12]
lea rax, [r11 + r12]
inc rax
cmp rax, rdx
jae 0x1800dfaf8
cmp r13b, 0xe0
jae 0x1800df2e0
lea rcx, [rdi + 1]
cmp rcx, rbx
jae 0x1800dfc29
and r13b, 0x1f
movzx r13d, r13b
shl r13d, 6
mov eax, 2
jmp 0x1800df320
lea rax, [rdi + 1]
cmp r13b, 0xf0
jae 0x1800dfb14
cmp rax, rbx
jae 0x1800dfc3a
lea rcx, [rdi + 2]
cmp rcx, rbx
jae 0x1800dfc4e
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 0x1800df430
mov eax, 0x92e
xor edx, edx
mov ecx, 0x92e
jmp 0x1800df368
mov rcx, rax
sub rax, rdx
jbe 0x1800df3a2
shr rax, 1
add rax, rdx
xor r8d, r8d
cmp word [rsi + rax*2], r13w
setne r8b
cmovb r8d, ebp
cmp r8b, 1
je 0x1800df360
movzx edx, r8b
cmp edx, 0xff
jne 0x1800df4f6
inc rax
mov rdx, rax
mov rax, rcx
sub rax, rdx
ja 0x1800df368
movzx eax, r13w
cmp eax, 0xc8a5
jae 0x1800df521
mov eax, 0x437
xor ecx, ecx
mov edx, 0x437
jmp 0x1800df3c8
mov rdx, rax
sub rax, rcx
jbe 0x1800df402
shr rax, 1
add rax, rcx
xor r8d, r8d
cmp word [r15 + rax*2], r13w
setne r8b
cmovb r8d, ebp
cmp r8b, 1
je 0x1800df3c0
movzx ecx, r8b
cmp ecx, 0xff
jne 0x1800df593
inc rax
mov rcx, rax
mov rax, rdx
sub rax, rcx
ja 0x1800df3c8
lea rax, [rcx - 1]
cmp rax, 0x437
jae 0x1800dfc5f
lea rax, [0x1801ac2ec]
add r13w, word [rax + rcx*2 - 2]
sub r13w, word [r15 + rcx*2 - 2]
jmp 0x1800df59f
lea eax, [r13 - 0x33de]
movzx eax, ax
cmp eax, 0xcb23
jae 0x1800df4c0
lea eax, [r13 - 0x4e00]
movzx eax, ax
cmp eax, 0x519d
jb 0x1800df467
lea eax, [r13 + 0x700]
movzx eax, ax
cmp eax, 0x10b
ja 0x1800dfaa2
xor eax, eax
lea rcx, str.OsOGP
cmp word [rcx], r13w
je 0x1800df61f
cmp word [rcx + 2], r13w
je 0x1800df610
cmp word [rcx + 4], r13w
je 0x1800df615
cmp word [rcx + 6], r13w
je 0x1800df61b
add rax, 4
add rcx, 8
lea rdx, [0x1801b14b0]
cmp rcx, rdx
jne 0x1800df470
jmp 0x1800dfaa2
lea rcx, [rsp + 0x38]
mov edx, r13d
call fcn.1800deaf0
cmp qword [rsp + 0x38], 0
je 0x1800dfaa2
movzx ecx, byte [rsp + 0x40]
movzx eax, byte [rsp + 0x48]
mov rdx, qword [rsp + 0x58]
cmp r12, rdx
jb 0x1800df645
jmp 0x1800dfba4
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 0x1800df645
jmp 0x1800dfba4
mov eax, 0x217
xor ecx, ecx
mov edx, 0x217
jmp 0x1800df538
mov rdx, rax
sub rax, rcx
jbe 0x1800df56e
shr rax, 1
add rax, rcx
xor r8d, r8d
cmp word [r10 + rax*2], r13w
setne r8b
cmovb r8d, ebp
cmp r8b, 1
je 0x1800df530
movzx ecx, r8b
cmp ecx, 0xff
jne 0x1800df5bb
inc rax
mov rcx, rax
mov rax, rdx
sub rax, rcx
ja 0x1800df538
lea rax, [rcx - 1]
cmp rax, 0x217
jae 0x1800dfc79
lea rax, [0x1801ad3c8]
add r13w, word [rax + rcx*2 - 2]
sub r13w, word [r10 + rcx*2 - 2]
jmp 0x1800df5c7
lea rcx, [0x1801ac2ec]
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 0x1800df5df
lea rcx, [0x1801ad3c8]
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 0x1800df645
jmp 0x1800dfba4
inc rax
jmp 0x1800df61f
add rax, 2
jmp 0x1800df61f
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 0x1800dfba4
mov r8, qword [rsp + 0x50]
mov byte [r8 + r12], cl
lea rcx, [r12 + 1]
cmp rcx, rdx
jae 0x1800dfbb5
mov byte [r8 + r12 + 1], al
lea r11, [r12 + 2]
mov qword [rsp + 0x60], r11
cmp rdi, rbx
jae 0x1800dfac7
add r12, 3
mov rdx, qword [rsp + 0x58]
cmp r12, rdx
jae 0x1800dfad5
movzx r8d, byte [r14 + rdi]
test r8b, r8b
js 0x1800df6a0
inc rdi
mov ecx, 2
jmp 0x1800df7a0
movzx r9d, r8b
lea rcx, [rdi + 1]
cmp r8b, 0xe0
jae 0x1800df6d4
cmp rcx, rbx
jae 0x1800dfbc3
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 0x1800df719
cmp r8b, 0xf0
jae 0x1800df734
cmp rcx, rbx
jae 0x1800dfbd4
lea rcx, [rdi + 2]
cmp rcx, rbx
jae 0x1800dfbf6
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 0x1800df7a0
cmp rcx, rbx
jae 0x1800dfbe5
lea rcx, [rdi + 2]
cmp rcx, rbx
jae 0x1800dfc07
lea rcx, [rdi + 3]
cmp rcx, rbx
jae 0x1800dfc18
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 0x1800df940
mov r12, r11
lea r10, [0x1801ad7f6]
jmp 0x1800df7f8
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 0x1800df95b
cmp r12, rdx
jae 0x1800dfb93
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 0x1800df96c
cmp rdi, rbx
jae 0x1800dfa80
add rax, 2
mov rdx, qword [rsp + 0x58]
cmp rax, rdx
jae 0x1800dfa91
movzx eax, byte [r14 + rdi]
test al, al
jns 0x1800df7d0
movzx r8d, al
lea rcx, [rdi + 1]
cmp al, 0xe0
jae 0x1800df876
cmp rcx, rbx
jae 0x1800dfbc3
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 0x1800df8b4
cmp al, 0xf0
jae 0x1800df8d1
cmp rcx, rbx
jae 0x1800dfbd4
lea rcx, [rdi + 2]
cmp rcx, rbx
jae 0x1800dfbf6
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 0x1800df7d8
cmp rcx, rbx
jae 0x1800dfbe5
lea rcx, [rdi + 2]
cmp rcx, rbx
jae 0x1800dfc07
lea rcx, [rdi + 3]
cmp rcx, rbx
jae 0x1800dfc18
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 0x1800df7d8
or r9, rcx
mov r12, r11
lea r10, [0x1801ad7f6]
test cx, cx
je 0x1800df331
jmp 0x1800dfaed
or r9, rcx
test cx, cx
je 0x1800df331
jmp 0x1800dfaed
mov rdx, qword [rsp + 0x58]
cmp rdi, rbx
jbe 0x1800df122
jmp 0x1800dfcda
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 0x1800df9c8
add r11, 0x10
cmp r11, r15
jbe 0x1800df990
jmp 0x1800df16d
test rbx, rbx
je 0x1800df9fe
tzcnt rcx, rbx
shr ecx, 3
mov rbx, qword [rsp + 0x28]
mov r14, qword [rsp + 0x20]
lea rsi, [0x1801adc24]
lea r15, [0x1801acb5a]
lea r10, [0x1801ad7f6]
jmp 0x1800dfa35
xor r11d, r11d
jmp 0x1800df28a
test r14, r14
lea rsi, [0x1801adc24]
lea r15, [0x1801acb5a]
lea r10, [0x1801ad7f6]
je 0x1800dfa1f
tzcnt rcx, r14
jmp 0x1800dfa24
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 0x1800df29f
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 0x1800dfb82
mov rax, qword [rsp + 0x30]
mov dword [rax + 8], 0x110000
jmp 0x1800dfb7b
mov rax, qword [rsp + 0x30]
mov dword [rax + 8], 0x110001
jmp 0x1800dfb7b
movzx edx, r13w
mov ecx, edx
xor ecx, 0xffefd800
cmp ecx, 0xffef07ff
jbe 0x1800dfcee
mov rax, qword [rsp + 0x30]
mov dword [rax + 8], edx
jmp 0x1800dfb7b
mov rax, qword [rsp + 0x30]
mov dword [rax + 8], 0x110000
jmp 0x1800dfae1
mov rax, qword [rsp + 0x30]
mov dword [rax + 8], 0x110001
mov qword [rax], rdi
mov qword [rax + 0x10], r11
jmp 0x1800dfb82
shr r9, 0x20
mov rax, qword [rsp + 0x30]
jmp 0x1800dfb77
movabs rcx, 0xffffffff00000000
lea rax, [rsp + 0x50]
and rax, rcx
mov ecx, 0x110001
jmp 0x1800dfa68
cmp rax, rbx
jae 0x1800dfc93
lea rcx, [rdi + 2]
cmp rcx, rbx
mov rax, qword [rsp + 0x30]
jae 0x1800dfca7
lea rcx, [rdi + 3]
cmp rcx, rbx
jae 0x1800dfcb8
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.180137ee0
ud2
lea r8, str.C:Users_nero.cargo_registry_srcindex.crates.io_6f17d22bba15001fencoding_rs_0.8.33_srchandles.rs
mov rcx, r12
call fcn.180137ee0
ud2
lea r8, str.C:Users_nero.cargo_registry_srcindex.crates.io_6f17d22bba15001fencoding_rs_0.8.33_srchandles.rs
call fcn.180137ee0
ud2
lea r8, str.C:Users_nero.cargo_registry_srcindex.crates.io_6f17d22bba15001fencoding_rs_0.8.33_srchandles.rs
mov rdx, rbx
call fcn.180137ee0
ud2
lea r8, str.C:Users_nero.cargo_registry_srcindex.crates.io_6f17d22bba15001fencoding_rs_0.8.33_srchandles.rs
mov rdx, rbx
call fcn.180137ee0
ud2
lea r8, str.C:Users_nero.cargo_registry_srcindex.crates.io_6f17d22bba15001fencoding_rs_0.8.33_srchandles.rs
mov rdx, rbx
call fcn.180137ee0
ud2
lea r8, str.C:Users_nero.cargo_registry_srcindex.crates.io_6f17d22bba15001fencoding_rs_0.8.33_srchandles.rs
mov rdx, rbx
call fcn.180137ee0
ud2
lea r8, str.C:Users_nero.cargo_registry_srcindex.crates.io_6f17d22bba15001fencoding_rs_0.8.33_srchandles.rs
mov rdx, rbx
call fcn.180137ee0
ud2
lea r8, str.C:Users_nero.cargo_registry_srcindex.crates.io_6f17d22bba15001fencoding_rs_0.8.33_srchandles.rs
mov rdx, rbx
call fcn.180137ee0
ud2
lea r8, str.C:Users_nero.cargo_registry_srcindex.crates.io_6f17d22bba15001fencoding_rs_0.8.33_srchandles.rs
mov rdx, rbx
call fcn.180137ee0
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.180137ee0
ud2
lea r8, str.C:Users_nero.cargo_registry_srcindex.crates.io_6f17d22bba15001fencoding_rs_0.8.33_srchandles.rs
mov rdx, rbx
call fcn.180137ee0
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.180137ee0
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.180137ee0
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.180137ee0
ud2
lea r8, str.C:Users_nero.cargo_registry_srcindex.crates.io_6f17d22bba15001fencoding_rs_0.8.33_srchandles.rs
mov rdx, rbx
call fcn.180137ee0
ud2
lea r8, str.C:Users_nero.cargo_registry_srcindex.crates.io_6f17d22bba15001fencoding_rs_0.8.33_srchandles.rs
mov rdx, rbx
call fcn.180137ee0
ud2
lea r8, str.C:Users_nero.cargo_registry_srcindex.crates.io_6f17d22bba15001fencoding_rs_0.8.33_srchandles.rs
mov rcx, r12
call fcn.180138250
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.180138250
ud2
lea rcx, [0x18019e9b0]
lea r8, str.C:Users_nero.cargo_registry_srcindex.crates.io_6f17d22bba15001fencoding_rs_0.8.33_srclib.rs_b
mov edx, 0x2b
call fcn.180137e40
ud2