Function at 0x14008ef20
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 qword [rsp + 0x28], r9
mov qword [rsp + 0x30], rcx
mov rdx, qword [rsp + 0xd8]
mov rax, qword [rsp + 0xd0]
mov qword [rsp + 0x38], rax
mov qword [rsp + 0x40], rdx
xor edi, edi
xor esi, esi
mov r10, rdx
sub r10, rdi
jb 0x14008f9b0
lea rax, [r8 + rsi]
mov r9, qword [rsp + 0x28]
sub r9, rsi
mov rbx, qword [rsp + 0x38]
cmp r10, r9
mov r14, r9
cmovb r14, r10
lea r13, [rbx + rdi]
mov r11d, eax
xor r11d, r13d
test r11b, 7
jne 0x14008efa3
mov r12d, eax
neg r12d
and r12d, 7
lea r11, [r12 + 0x10]
cmp r11, r14
jbe 0x14008efd0
xor ebp, ebp
cmp rbp, r14
jae 0x14008f851
nop
movzx r15d, byte [rax + rbp]
test r15b, r15b
js 0x14008f130
mov byte [r13 + rbp], r15b
inc rbp
cmp r14, rbp
jne 0x14008efb0
jmp 0x14008f851
test r12, r12
je 0x14008f0a7
movzx r15d, byte [rax]
test r15b, r15b
js 0x14008f108
mov byte [r13], r15b
mov ebp, 1
cmp r12d, 1
je 0x14008f0a9
movzx r15d, byte [rax + 1]
test r15b, r15b
js 0x14008f130
mov byte [r13 + 1], r15b
mov ebp, 2
cmp r12d, 2
je 0x14008f0a9
movzx r15d, byte [rax + 2]
test r15b, r15b
js 0x14008f130
mov byte [r13 + 2], r15b
mov ebp, 3
cmp r12d, 3
je 0x14008f0a9
movzx r15d, byte [rax + 3]
test r15b, r15b
js 0x14008f130
mov byte [r13 + 3], r15b
mov ebp, 4
cmp r12d, 4
je 0x14008f0a9
movzx r15d, byte [rax + 4]
test r15b, r15b
js 0x14008f130
mov byte [r13 + 4], r15b
mov ebp, 5
cmp r12d, 5
je 0x14008f0a9
movzx r15d, byte [rax + 5]
test r15b, r15b
js 0x14008f130
mov byte [r13 + 5], r15b
mov ebp, 6
cmp r12d, 6
je 0x14008f0a9
movzx r15d, byte [rax + 6]
test r15b, r15b
js 0x14008f130
mov byte [r13 + 6], r15b
mov ebp, 7
jmp 0x14008f0a9
xor ebp, ebp
lea r15, [r14 - 0x10]
add rbx, rdi
add rbx, 8
nop word cs:[rax + rax]
mov r11, qword [rax + rbp]
mov rcx, qword [rax + rbp + 8]
mov qword [rbx + rbp - 8], r11
mov qword [rbx + rbp], rcx
movabs r12, 0x8080808080808080
and r11, r12
and rcx, r12
mov r12, rcx
or r12, r11
jne 0x14008f0f8
add rbp, 0x10
cmp rbp, r15
jbe 0x14008f0c0
jmp 0x14008efa5
test r11, r11
je 0x14008f10c
tzcnt r10, r11
shr r10d, 3
jmp 0x14008f126
xor ebp, ebp
jmp 0x14008f130
test rcx, rcx
je 0x14008f118
tzcnt r10, rcx
jmp 0x14008f11e
mov r10d, 0x40
shr r10d, 3
add r10, 8
add rbp, r10
movzx r15d, byte [rax + rbp]
nop
add rsi, rbp
lea r10, [rdi + rbp]
mov qword [rsp + 0x48], r10
lea rax, [rdi + rbp]
inc rax
cmp rax, rdx
jae 0x14008f8f5
cmp r15b, 0xe0
jae 0x14008f190
lea rax, [rsi + 1]
cmp rax, qword [rsp + 0x28]
lea r12, [0x1401e8ef2]
lea r13, [0x1401e8696]
lea rbp, str.OsOGP
jae 0x14008fa37
and r15b, 0x1f
movzx r14d, r15b
shl r14d, 6
mov edx, 2
jmp 0x14008f1e9
lea rdx, [rsi + 1]
cmp r15b, 0xf0
lea r12, [0x1401e8ef2]
lea r13, [0x1401e8696]
lea rbp, str.OsOGP
jae 0x14008f911
cmp rdx, qword [rsp + 0x28]
jae 0x14008fa4b
lea rax, [rsi + 2]
cmp rax, qword [rsp + 0x28]
jae 0x14008fa5f
movzx ecx, r15b
shl ecx, 0xc
movzx r14d, byte [r8 + rdx]
and r14d, 0x3f
shl r14d, 6
or r14d, ecx
mov edx, 3
movzx eax, byte [r8 + rax]
and eax, 0x3f
or r14d, eax
add rsi, rdx
mov rdi, r10
lea r15, [0x1401e743a]
lea eax, [r14 + 0x5400]
movzx eax, ax
cmp eax, 0x2ba3
ja 0x14008f2e0
mov r10d, 0x92e
xor eax, eax
mov edx, 0x92e
nop word cs:[rax + rax]
shr r10, 1
add r10, rax
movzx ecx, word [r15 + r10*2]
cmp r14w, cx
je 0x14008f370
lea r9, [r10 + 1]
cmp r14w, cx
cmova rax, r9
cmovb rdx, r10
mov r10, rdx
sub r10, rax
ja 0x14008f230
movzx eax, r14w
cmp eax, 0xc8a5
jae 0x14008f3dd
mov edx, 0x437
xor eax, eax
mov r10d, 0x437
nop dword [rax]
shr rdx, 1
add rdx, rax
movzx ecx, word [r12 + rdx*2]
cmp r14w, cx
je 0x14008f440
lea r9, [rdx + 1]
cmp r14w, cx
cmova rax, r9
cmovb r10, rdx
mov rdx, r10
sub rdx, rax
ja 0x14008f280
lea rcx, [rax - 1]
cmp rcx, 0x437
jae 0x14008fa97
lea rcx, [0x1401e9760]
add r14w, word [rcx + rax*2 - 2]
sub r14w, word [r12 + rax*2 - 2]
jmp 0x14008f44c
lea eax, [r14 - 0x33de]
movzx eax, ax
cmp eax, 0xcb23
jae 0x14008f3a0
lea eax, [r14 - 0x4e00]
movzx eax, ax
cmp eax, 0x519d
jb 0x14008f31b
lea eax, [r14 + 0x700]
movzx eax, ax
cmp eax, 0x10b
ja 0x14008f8c3
mov r10d, 3
mov eax, 0x2630
nop word cs:[rax + rax]
cmp r14w, word [rbp + r10*2 - 6]
je 0x14008f4c0
cmp r14w, word [rbp + r10*2 - 4]
je 0x14008f4c6
cmp r14w, word [rbp + r10*2 - 2]
je 0x14008f4cc
cmp r14w, word [rbp + r10*2]
je 0x14008f4cf
add r10, 4
add rax, 0xfffffffffffffff8
jne 0x14008f330
jmp 0x14008f8c3
movzx eax, r10w
shr eax, 1
imul eax, eax, 0xae4d
shr eax, 0x15
imul ecx, eax, 0x5e
sub r10d, ecx
add al, 0xb0
add r10b, 0xa1
mov rdx, qword [rsp + 0x40]
cmp rdi, rdx
jb 0x14008f4f8
jmp 0x14008f992
mov rbx, r8
lea rcx, [rsp + 0x50]
mov edx, r14d
call sym.encoding_rs::euc_kr::ksx1001_encode_misc::hc1ac9acf00e45620
cmp qword [rsp + 0x50], 0
je 0x14008f8c3
movzx eax, byte [rsp + 0x58]
movzx r10d, byte [rsp + 0x60]
mov r8, rbx
mov rdx, qword [rsp + 0x40]
cmp rdi, rdx
jb 0x14008f4f8
jmp 0x14008f992
mov edx, 0x217
xor eax, eax
mov r10d, 0x217
nop word [rax + rax]
shr rdx, 1
add rdx, rax
movzx ecx, word [r13 + rdx*2]
cmp r14w, cx
je 0x14008f468
lea r9, [rdx + 1]
cmp r14w, cx
cmova rax, r9
cmovb r10, rdx
mov rdx, r10
sub rdx, rax
ja 0x14008f3f0
lea rcx, [rax - 1]
cmp rcx, 0x217
jae 0x14008fa7f
lea rcx, [0x1401e8ac4]
add r14w, word [rcx + rax*2 - 2]
sub r14w, word [r13 + rax*2 - 2]
jmp 0x14008f474
lea rax, [0x1401e9760]
movzx r14d, word [rax + rdx*2]
movzx eax, r14w
shr eax, 1
imul eax, eax, 0x1703
shr eax, 0x13
imul ecx, eax, 0xb2
sub r14d, ecx
mov cl, 0x81
jmp 0x14008f48c
lea rax, [0x1401e8ac4]
movzx r14d, word [rax + rdx*2]
movzx eax, r14w
shr eax, 2
imul eax, eax, 0x6187
shr eax, 0x13
imul ecx, eax, 0x54
sub r14d, ecx
mov cl, 0xa1
add al, cl
cmp r14b, 0x1a
mov r10d, 0x41
mov ecx, 0x47
cmovae r10d, ecx
cmp r14b, 0x34
mov ecx, 0x4d
cmovae r10d, ecx
add r10b, r14b
mov rdx, qword [rsp + 0x40]
cmp rdi, rdx
jb 0x14008f4f8
jmp 0x14008f992
add r10, 0xfffffffffffffffd
jmp 0x14008f4cf
add r10, 0xfffffffffffffffe
jmp 0x14008f4cf
dec r10
movzx eax, r10w
shr eax, 1
imul eax, eax, 0xae4d
shr eax, 0x15
imul ecx, eax, 0x5e
sub r10d, ecx
add r10b, 0xa1
add al, 0xca
mov rdx, qword [rsp + 0x40]
cmp rdi, rdx
jae 0x14008f992
mov rcx, qword [rsp + 0x38]
mov byte [rcx + rdi], al
mov rdx, qword [rsp + 0x40]
mov rax, qword [rsp + 0x48]
inc rax
cmp rax, rdx
jae 0x14008f9a1
mov rcx, qword [rsp + 0x38]
mov byte [rcx + rax], r10b
mov rax, qword [rsp + 0x48]
lea rdi, [rax + 2]
mov qword [rsp + 0x48], rdi
cmp rsi, qword [rsp + 0x28]
jae 0x14008f88c
add rax, 3
mov rdx, qword [rsp + 0x40]
cmp rax, rdx
jae 0x14008f89a
movzx r10d, byte [r8 + rsi]
test r10b, r10b
js 0x14008f570
inc rsi
mov eax, 2
jmp 0x14008f670
movzx r11d, r10b
lea rax, [rsi + 1]
cmp r10b, 0xe0
jae 0x14008f5a6
cmp rax, qword [rsp + 0x28]
jae 0x14008f9bf
movzx eax, r11w
and eax, 0x1f
shl eax, 6
movzx r10d, byte [r8 + rsi + 1]
and r10d, 0x3f
or r10d, eax
add rsi, 2
jmp 0x14008f5ec
cmp r10b, 0xf0
jae 0x14008f606
cmp rax, qword [rsp + 0x28]
jae 0x14008fa0f
lea rax, [rsi + 2]
cmp rax, qword [rsp + 0x28]
jae 0x14008fa23
movzx eax, r11w
shl eax, 0xc
movzx ecx, byte [r8 + rsi + 1]
and ecx, 0x3f
shl ecx, 6
or ecx, eax
movzx r10d, byte [r8 + rsi + 2]
and r10d, 0x3f
or r10d, ecx
add rsi, 3
mov word [rsp + 0x50], r10w
movzx eax, byte [rsp + 0x55]
shl rax, 0x20
mov ebx, dword [rsp + 0x51]
or rbx, rax
xor eax, eax
jmp 0x14008f670
cmp rax, qword [rsp + 0x28]
jae 0x14008f9d3
lea rax, [rsi + 2]
cmp rax, qword [rsp + 0x28]
jae 0x14008f9e7
lea rax, [rsi + 3]
cmp rax, qword [rsp + 0x28]
jae 0x14008f9fb
and r11d, 7
shl r11d, 0x12
movzx eax, byte [r8 + rsi + 1]
and eax, 0x3f
shl eax, 0xc
or eax, r11d
movzx ecx, byte [r8 + rsi + 2]
and ecx, 0x3f
shl ecx, 6
or ecx, eax
movzx ebx, byte [r8 + rsi + 3]
and ebx, 0x3f
or ebx, ecx
add rsi, 4
shl ebx, 8
mov eax, 1
nop dword [rax + rax]
shl rbx, 0x18
movzx r11d, r10b
shl r11d, 0x10
or r11, rbx
mov r14, r11
shr r14, 0x10
cmp rax, 2
je 0x14008f6c8
or r11, rax
test ax, ax
je 0x14008f201
jmp 0x14008f8ec
inc rsi
mov eax, 2
shl rbx, 0x18
movzx r11d, r10b
shl r11d, 0x10
or r11, rbx
mov r14, r11
shr r14, 0x10
cmp rax, 2
jne 0x14008f81c
cmp rdi, rdx
jae 0x14008f983
mov rax, qword [rsp + 0x38]
mov byte [rax + rdi], r14b
mov rax, qword [rsp + 0x48]
lea rdi, [rax + 1]
mov qword [rsp + 0x48], rdi
cmp r14b, 0x3c
jae 0x14008f82d
cmp rsi, qword [rsp + 0x28]
jae 0x14008f88c
add rax, 2
mov rdx, qword [rsp + 0x40]
cmp rax, rdx
jae 0x14008f89a
movzx r10d, byte [r8 + rsi]
test r10b, r10b
jns 0x14008f6a0
movzx r11d, r10b
lea rax, [rsi + 1]
cmp r10b, 0xe0
jae 0x14008f74f
cmp rax, qword [rsp + 0x28]
jae 0x14008f9bf
movzx eax, r11w
and eax, 0x1f
shl eax, 6
movzx r10d, byte [r8 + rsi + 1]
and r10d, 0x3f
or r10d, eax
add rsi, 2
jmp 0x14008f795
cmp r10b, 0xf0
jae 0x14008f7b2
cmp rax, qword [rsp + 0x28]
jae 0x14008fa0f
lea rax, [rsi + 2]
cmp rax, qword [rsp + 0x28]
jae 0x14008fa23
movzx eax, r11w
shl eax, 0xc
movzx ecx, byte [r8 + rsi + 1]
and ecx, 0x3f
shl ecx, 6
or ecx, eax
movzx r10d, byte [r8 + rsi + 2]
and r10d, 0x3f
or r10d, ecx
add rsi, 3
mov word [rsp + 0x50], r10w
movzx eax, byte [rsp + 0x55]
shl rax, 0x20
mov ebx, dword [rsp + 0x51]
or rbx, rax
xor eax, eax
jmp 0x14008f6a8
cmp rax, qword [rsp + 0x28]
jae 0x14008f9d3
lea rax, [rsi + 2]
cmp rax, qword [rsp + 0x28]
jae 0x14008f9e7
lea rax, [rsi + 3]
cmp rax, qword [rsp + 0x28]
jae 0x14008f9fb
and r11d, 7
shl r11d, 0x12
movzx eax, byte [r8 + rsi + 1]
and eax, 0x3f
shl eax, 0xc
or eax, r11d
movzx ecx, byte [r8 + rsi + 2]
and ecx, 0x3f
shl ecx, 6
or ecx, eax
movzx ebx, byte [r8 + rsi + 3]
and ebx, 0x3f
or ebx, ecx
add rsi, 4
shl ebx, 8
mov eax, 1
jmp 0x14008f6a8
or r11, rax
test ax, ax
je 0x14008f201
jmp 0x14008f8ec
mov rdx, qword [rsp + 0x40]
cmp rsi, qword [rsp + 0x28]
jbe 0x14008ef58
lea r8, [0x1401fe220]
mov rcx, rsi
mov rdx, qword [rsp + 0x28]
call sym.core::slice::index::slice_start_index_len_fail::h8d3d56967d6340e8
add rsi, r14
add rdi, r14
xor eax, eax
cmp r10, r9
adc rax, 0x110000
movabs rcx, 0xffffffff00000000
lea rdx, [rsp + 0x38]
and rdx, rcx
mov r10, rdi
or rdx, rax
mov rax, qword [rsp + 0x30]
mov qword [rax], rsi
mov qword [rax + 8], rdx
mov qword [rax + 0x10], r10
jmp 0x14008f8ad
mov rax, qword [rsp + 0x30]
mov dword [rax + 8], 0x110000
jmp 0x14008f8a6
mov rax, qword [rsp + 0x30]
mov dword [rax + 8], 0x110001
mov qword [rax], rsi
mov qword [rax + 0x10], rdi
mov rax, qword [rsp + 0x30]
add rsp, 0x68
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret
movzx eax, r14w
mov ecx, eax
xor ecx, 0xffefd800
cmp ecx, 0xffef07ff
jbe 0x14008fa73
mov rcx, qword [rsp + 0x30]
mov dword [rcx + 8], eax
mov qword [rcx], rsi
mov qword [rcx + 0x10], rdi
jmp 0x14008f8ad
shr r11, 0x20
jmp 0x14008f975
movabs rcx, 0xffffffff00000000
lea rax, [rsp + 0x38]
and rax, rcx
mov edx, 0x110001
jmp 0x14008f877
cmp rdx, qword [rsp + 0x28]
jae 0x14008faaf
lea rax, [rsi + 2]
cmp rax, qword [rsp + 0x28]
jae 0x14008fac3
lea rax, [rsi + 3]
cmp rax, qword [rsp + 0x28]
jae 0x14008fad7
and r15b, 7
movzx eax, r15b
shl eax, 0x12
movzx ecx, byte [r8 + rsi + 1]
and ecx, 0x3f
shl ecx, 0xc
or ecx, eax
movzx eax, byte [r8 + rsi + 2]
and eax, 0x3f
shl eax, 6
or eax, ecx
movzx r11d, byte [r8 + rsi + 3]
and r11d, 0x3f
or r11d, eax
add rsi, 4
mov rdi, r10
mov rax, qword [rsp + 0x30]
mov dword [rax + 8], r11d
jmp 0x14008f8a6
lea r8, [0x1401fe268]
mov rcx, rdi
call sym.core::panicking::panic_bounds_check::hf065bc95f1c7a8f7
lea r8, [0x1401fe238]
mov rcx, rdi
call sym.core::panicking::panic_bounds_check::hf065bc95f1c7a8f7
lea r8, [0x1401fe250]
mov rcx, rax
call sym.core::panicking::panic_bounds_check::hf065bc95f1c7a8f7
lea r8, [0x1401fe208]
mov rcx, rdi
call sym.core::slice::index::slice_start_index_len_fail::h8d3d56967d6340e8
lea r8, [0x1401fe160]
mov rcx, rax
mov rdx, qword [rsp + 0x28]
call sym.core::panicking::panic_bounds_check::hf065bc95f1c7a8f7
lea r8, [0x1401fe0e8]
mov rcx, rax
mov rdx, qword [rsp + 0x28]
call sym.core::panicking::panic_bounds_check::hf065bc95f1c7a8f7
lea r8, [0x1401fe100]
mov rcx, rax
mov rdx, qword [rsp + 0x28]
call sym.core::panicking::panic_bounds_check::hf065bc95f1c7a8f7
lea r8, [0x1401fe118]
mov rcx, rax
mov rdx, qword [rsp + 0x28]
call sym.core::panicking::panic_bounds_check::hf065bc95f1c7a8f7
lea r8, [0x1401fe130]
mov rcx, rax
mov rdx, qword [rsp + 0x28]
call sym.core::panicking::panic_bounds_check::hf065bc95f1c7a8f7
lea r8, [0x1401fe148]
mov rcx, rax
mov rdx, qword [rsp + 0x28]
call sym.core::panicking::panic_bounds_check::hf065bc95f1c7a8f7
lea r8, [0x1401fe1f0]
mov rcx, rax
mov rdx, qword [rsp + 0x28]
call sym.core::panicking::panic_bounds_check::hf065bc95f1c7a8f7
lea r8, [0x1401fe1c0]
mov rcx, rdx
mov rdx, qword [rsp + 0x28]
call sym.core::panicking::panic_bounds_check::hf065bc95f1c7a8f7
lea r8, [0x1401fe1d8]
mov rcx, rax
mov rdx, qword [rsp + 0x28]
call sym.core::panicking::panic_bounds_check::hf065bc95f1c7a8f7
lea rcx, str._home_delta_.cargo_registry_src_index.crates.io_6f17d22bba15001f_encoding_rs_0.8.34_src_lib.rs
call sym.core::option::unwrap_failed::h38ae581b954ce070
lea r8, str._home_delta_.cargo_registry_src_index.crates.io_6f17d22bba15001f_encoding_rs_0.8.34_src_data.rs
mov edx, 0x217
mov rcx, 0xffffffffffffffff
call sym.core::panicking::panic_bounds_check::hf065bc95f1c7a8f7
lea r8, str._home_delta_.cargo_registry_src_index.crates.io_6f17d22bba15001f_encoding_rs_0.8.34_src_data.rs
mov edx, 0x437
mov rcx, 0xffffffffffffffff
call sym.core::panicking::panic_bounds_check::hf065bc95f1c7a8f7
lea r8, [0x1401fe178]
mov rcx, rdx
mov rdx, qword [rsp + 0x28]
call sym.core::panicking::panic_bounds_check::hf065bc95f1c7a8f7
lea r8, [0x1401fe190]
mov rcx, rax
mov rdx, qword [rsp + 0x28]
call sym.core::panicking::panic_bounds_check::hf065bc95f1c7a8f7
lea r8, [0x1401fe1a8]
mov rcx, rax
mov rdx, qword [rsp + 0x28]
call sym.core::panicking::panic_bounds_check::hf065bc95f1c7a8f7
int3