Function at 0x1400907e0
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 + 0x20], r9
mov qword [rsp + 0x28], r8
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
mov qword [rsp + 0x48], 0
xor eax, eax
lea r13, [0x1402cc9a0]
lea r12, [0x1402cb8d6]
xor esi, esi
mov r11, rdx
sub r11, rax
jb 0x1400913df
mov r8, r12
mov r9, r13
mov rcx, qword [rsp + 0x28]
lea r10, [rcx + rsi]
mov rdi, qword [rsp + 0x38]
mov rcx, qword [rsp + 0x20]
sub rcx, rsi
cmp r11, rcx
mov rbx, rcx
cmovb rbx, r11
lea r13, [rdi + rax]
mov ebp, r10d
xor ebp, r13d
test bpl, 7
jne 0x14009088a
mov r12d, r10d
neg r12d
and r12d, 7
lea r15, [r12 + 0x10]
cmp r15, rbx
jbe 0x1400908c0
xor ebp, ebp
cmp rbp, rbx
jae 0x14009115e
nop word cs:[rax + rax]
movzx r15d, byte [r10 + rbp]
test r15b, r15b
js 0x140090a20
mov byte [r13 + rbp], r15b
inc rbp
cmp rbx, rbp
jne 0x1400908a0
jmp 0x14009115e
test r12, r12
je 0x140090997
movzx r15d, byte [r10]
test r15b, r15b
js 0x1400909f7
mov byte [r13], r15b
mov ebp, 1
cmp r12d, 1
je 0x140090999
movzx r15d, byte [r10 + 1]
test r15b, r15b
js 0x140090a20
mov byte [r13 + 1], r15b
mov ebp, 2
cmp r12d, 2
je 0x140090999
movzx r15d, byte [r10 + 2]
test r15b, r15b
js 0x140090a20
mov byte [r13 + 2], r15b
mov ebp, 3
cmp r12d, 3
je 0x140090999
movzx r15d, byte [r10 + 3]
test r15b, r15b
js 0x140090a20
mov byte [r13 + 3], r15b
mov ebp, 4
cmp r12d, 4
je 0x140090999
movzx r15d, byte [r10 + 4]
test r15b, r15b
js 0x140090a20
mov byte [r13 + 4], r15b
mov ebp, 5
cmp r12d, 5
je 0x140090999
movzx r15d, byte [r10 + 5]
test r15b, r15b
js 0x140090a20
mov byte [r13 + 5], r15b
mov ebp, 6
cmp r12d, 6
je 0x140090999
movzx r15d, byte [r10 + 6]
test r15b, r15b
js 0x140090a20
mov byte [r13 + 6], r15b
mov ebp, 7
jmp 0x140090999
xor ebp, ebp
lea r15, [rbx - 0x10]
add rax, rdi
add rax, 8
nop word cs:[rax + rax]
mov r12, qword [r10 + rbp]
mov r14, qword [r10 + rbp + 8]
mov qword [rax + rbp - 8], r12
mov qword [rax + rbp], r14
movabs rdi, 0x8080808080808080
and r12, rdi
and r14, rdi
mov rdi, r14
or rdi, r12
jne 0x1400909e8
add rbp, 0x10
cmp rbp, r15
jbe 0x1400909b0
jmp 0x14009088c
test r12, r12
je 0x1400909fb
tzcnt rax, r12
shr eax, 3
jmp 0x140090a13
xor ebp, ebp
jmp 0x140090a20
test r14, r14
je 0x140090a07
tzcnt rax, r14
jmp 0x140090a0c
mov eax, 0x40
shr eax, 3
add rax, 8
add rbp, rax
movzx r15d, byte [r10 + rbp]
nop dword [rax + rax]
add rsi, rbp
mov rax, qword [rsp + 0x48]
lea rbx, [rax + rbp]
add rax, rbp
inc rax
cmp rax, rdx
jae 0x140091201
cmp r15b, 0xe0
jae 0x140090a70
lea rax, [rsi + 1]
cmp rax, qword [rsp + 0x20]
lea rbp, str.OsOGP
jae 0x140091337
mov r13, r9
mov r12, r8
and r15b, 0x1f
movzx r14d, r15b
shl r14d, 6
mov edx, 2
jmp 0x140090ac6
lea rdx, [rsi + 1]
cmp r15b, 0xf0
lea rbp, str.OsOGP
jae 0x14009121d
cmp rdx, qword [rsp + 0x20]
jae 0x14009134b
lea rax, [rsi + 2]
cmp rax, qword [rsp + 0x20]
jae 0x14009135f
mov r13, r9
mov r12, r8
movzx ecx, r15b
shl ecx, 0xc
mov r8, qword [rsp + 0x28]
movzx r14d, byte [r8 + rdx]
and r14d, 0x3f
shl r14d, 6
or r14d, ecx
mov edx, 3
mov rcx, qword [rsp + 0x28]
movzx eax, byte [rcx + rax]
and eax, 0x3f
or r14d, eax
add rsi, rdx
lea r15, [0x1402cc572]
lea eax, [r14 + 0x5400]
movzx eax, ax
cmp eax, 0x2ba3
ja 0x140090bc0
mov r10d, 0x92e
xor eax, eax
mov edx, 0x92e
nop word cs:[rax + rax]
shr r10, 1
add r10, rax
movzx r11d, word [r13 + r10*2]
cmp r14w, r11w
je 0x140090c50
lea rcx, [r10 + 1]
cmp r14w, r11w
cmova rax, rcx
cmovb rdx, r10
mov r10, rdx
sub r10, rax
ja 0x140090b10
movzx eax, r14w
cmp eax, 0xc8a5
jae 0x140090cb7
mov edx, 0x437
xor eax, eax
mov r10d, 0x437
nop word [rax + rax]
shr rdx, 1
add rdx, rax
movzx r11d, word [r12 + rdx*2]
cmp r14w, r11w
je 0x140090d1f
lea rcx, [rdx + 1]
cmp r14w, r11w
cmova rax, rcx
cmovb r10, rdx
mov rdx, r10
sub rdx, rax
ja 0x140090b60
lea rcx, [rax - 1]
cmp rcx, 0x437
jae 0x14009138b
lea rcx, [0x1402cb068]
add r14w, word [rcx + rax*2 - 2]
sub r14w, word [r12 + rax*2 - 2]
jmp 0x140090d2b
lea eax, [r14 - 0x33de]
movzx eax, ax
cmp eax, 0xcb23
jae 0x140090c80
lea eax, [r14 - 0x4e00]
movzx eax, ax
cmp eax, 0x519d
jb 0x140090bfb
lea eax, [r14 + 0x700]
movzx eax, ax
cmp eax, 0x10b
ja 0x1400911cf
mov r10d, 3
mov eax, 0x2630
nop word cs:[rax + rax]
cmp r14w, word [rbp + r10*2 - 6]
je 0x140090d9f
cmp r14w, word [rbp + r10*2 - 4]
je 0x140090da5
cmp r14w, word [rbp + r10*2 - 2]
je 0x140090dab
cmp r14w, word [rbp + r10*2]
je 0x140090dae
add r10, 4
add rax, 0xfffffffffffffff8
jne 0x140090c10
jmp 0x1400911cf
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 rbx, rdx
jb 0x140090dd7
jmp 0x1400912a1
lea rcx, [rsp + 0x50]
mov edx, r14d
call fcn.14008ea60
cmp qword [rsp + 0x50], 0
je 0x1400911cf
movzx eax, byte [rsp + 0x58]
movzx r10d, byte [rsp + 0x60]
mov rdx, qword [rsp + 0x40]
cmp rbx, rdx
jb 0x140090dd7
jmp 0x1400912a1
mov edx, 0x217
xor eax, eax
mov r10d, 0x217
nop word cs:[rax + rax]
shr rdx, 1
add rdx, rax
movzx r11d, word [r15 + rdx*2]
cmp r14w, r11w
je 0x140090d47
lea rcx, [rdx + 1]
cmp r14w, r11w
cmova rax, rcx
cmovb r10, rdx
mov rdx, r10
sub rdx, rax
ja 0x140090cd0
lea rcx, [rax - 1]
cmp rcx, 0x217
jae 0x140091373
lea rcx, [0x1402cc144]
add r14w, word [rcx + rax*2 - 2]
sub r14w, word [r15 + rax*2 - 2]
jmp 0x140090d53
lea rax, [0x1402cb068]
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 dl, 0x81
jmp 0x140090d6b
lea rax, [0x1402cc144]
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 dl, 0xa1
add al, dl
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 rbx, rdx
jb 0x140090dd7
jmp 0x1400912a1
add r10, 0xfffffffffffffffd
jmp 0x140090dae
add r10, 0xfffffffffffffffe
jmp 0x140090dae
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 rbx, rdx
jae 0x1400912a1
mov r11, qword [rsp + 0x38]
mov byte [r11 + rbx], al
lea rax, [rbx + 1]
cmp rax, rdx
jae 0x1400912b0
mov byte [r11 + rbx + 1], r10b
lea rax, [rbx + 2]
mov qword [rsp + 0x48], rax
cmp rsi, qword [rsp + 0x20]
jae 0x140091198
add rbx, 3
mov rdx, qword [rsp + 0x40]
cmp rbx, rdx
jae 0x1400911a6
mov rcx, qword [rsp + 0x28]
movzx r11d, byte [rcx + rsi]
test r11b, r11b
js 0x140090e40
inc rsi
mov r10d, 2
jmp 0x140090f50
movzx edi, r11b
lea r10, [rsi + 1]
cmp r11b, 0xe0
jae 0x140090e7a
cmp r10, qword [rsp + 0x20]
jae 0x1400912bf
movzx ecx, di
and ecx, 0x1f
shl ecx, 6
mov r8, qword [rsp + 0x28]
movzx r11d, byte [r8 + rsi + 1]
and r11d, 0x3f
or r11d, ecx
add rsi, 2
jmp 0x140090ec7
cmp r11b, 0xf0
jae 0x140090ee2
cmp r10, qword [rsp + 0x20]
jae 0x1400912d3
lea r10, [rsi + 2]
cmp r10, qword [rsp + 0x20]
jae 0x1400912fb
movzx ecx, di
shl ecx, 0xc
mov r8, qword [rsp + 0x28]
movzx r10d, byte [r8 + rsi + 1]
and r10d, 0x3f
shl r10d, 6
or r10d, ecx
movzx r11d, byte [r8 + rsi + 2]
and r11d, 0x3f
or r11d, r10d
add rsi, 3
mov word [rsp + 0x50], r11w
movzx ecx, byte [rsp + 0x55]
shl rcx, 0x20
mov edi, dword [rsp + 0x51]
or rdi, rcx
xor r10d, r10d
jmp 0x140090f50
cmp r10, qword [rsp + 0x20]
jae 0x1400912e7
lea r10, [rsi + 2]
cmp r10, qword [rsp + 0x20]
jae 0x14009130f
lea r10, [rsi + 3]
cmp r10, qword [rsp + 0x20]
jae 0x140091323
and edi, 7
shl edi, 0x12
mov r8, qword [rsp + 0x28]
movzx ecx, byte [r8 + rsi + 1]
and ecx, 0x3f
shl ecx, 0xc
or ecx, edi
movzx r10d, byte [r8 + rsi + 2]
and r10d, 0x3f
shl r10d, 6
or r10d, ecx
movzx edi, byte [r8 + rsi + 3]
and edi, 0x3f
or edi, r10d
add rsi, 4
shl edi, 8
mov r10d, 1
nop
shl rdi, 0x18
movzx r11d, r11b
shl r11d, 0x10
or r11, rdi
mov r14, r11
shr r14, 0x10
cmp r10, 2
je 0x140090fb9
or r11, r10
mov rbx, rax
test r10w, r10w
je 0x140090adf
jmp 0x1400911f8
inc rsi
mov r10d, 2
shl rdi, 0x18
movzx r11d, r11b
shl r11d, 0x10
or r11, rdi
mov r14, r11
shr r14, 0x10
cmp r10, 2
jne 0x140091125
cmp rax, rdx
jae 0x140091292
mov rcx, qword [rsp + 0x38]
mov byte [rcx + rax], r14b
mov r10, qword [rsp + 0x48]
lea rax, [r10 + 1]
mov qword [rsp + 0x48], rax
cmp r14b, 0x3c
jae 0x14009113a
cmp rsi, qword [rsp + 0x20]
jae 0x140091198
add r10, 2
mov rdx, qword [rsp + 0x40]
cmp r10, rdx
jae 0x1400911a6
mov rcx, qword [rsp + 0x28]
movzx r11d, byte [rcx + rsi]
test r11b, r11b
jns 0x140090f90
movzx edi, r11b
lea r10, [rsi + 1]
cmp r11b, 0xe0
jae 0x140091049
cmp r10, qword [rsp + 0x20]
jae 0x1400912bf
movzx ecx, di
and ecx, 0x1f
shl ecx, 6
mov r8, qword [rsp + 0x28]
movzx r11d, byte [r8 + rsi + 1]
and r11d, 0x3f
or r11d, ecx
add rsi, 2
jmp 0x140091096
cmp r11b, 0xf0
jae 0x1400910b4
cmp r10, qword [rsp + 0x20]
jae 0x1400912d3
lea r10, [rsi + 2]
cmp r10, qword [rsp + 0x20]
jae 0x1400912fb
movzx ecx, di
shl ecx, 0xc
mov r8, qword [rsp + 0x28]
movzx r10d, byte [r8 + rsi + 1]
and r10d, 0x3f
shl r10d, 6
or r10d, ecx
movzx r11d, byte [r8 + rsi + 2]
and r11d, 0x3f
or r11d, r10d
add rsi, 3
mov word [rsp + 0x50], r11w
movzx ecx, byte [rsp + 0x55]
shl rcx, 0x20
mov edi, dword [rsp + 0x51]
or rdi, rcx
xor r10d, r10d
jmp 0x140090f99
cmp r10, qword [rsp + 0x20]
jae 0x1400912e7
lea r10, [rsi + 2]
cmp r10, qword [rsp + 0x20]
jae 0x14009130f
lea r10, [rsi + 3]
cmp r10, qword [rsp + 0x20]
jae 0x140091323
and edi, 7
shl edi, 0x12
mov r8, qword [rsp + 0x28]
movzx ecx, byte [r8 + rsi + 1]
and ecx, 0x3f
shl ecx, 0xc
or ecx, edi
movzx r10d, byte [r8 + rsi + 2]
and r10d, 0x3f
shl r10d, 6
or r10d, ecx
movzx edi, byte [r8 + rsi + 3]
and edi, 0x3f
or edi, r10d
add rsi, 4
shl edi, 8
mov r10d, 1
jmp 0x140090f99
or r11, r10
mov rbx, rax
test r10w, r10w
je 0x140090adf
jmp 0x1400911f8
mov rdx, qword [rsp + 0x40]
cmp rsi, qword [rsp + 0x20]
jbe 0x140090834
lea r8, [0x1402dd8e8]
mov rcx, rsi
mov rdx, qword [rsp + 0x20]
call fcn.1401b2670
add rsi, rbx
add rbx, qword [rsp + 0x48]
xor eax, eax
cmp r11, rcx
adc rax, 0x110000
movabs rcx, 0xffffffff00000000
lea rdx, [rsp + 0x38]
and rdx, rcx
or rdx, rax
mov rax, qword [rsp + 0x30]
mov qword [rax], rsi
mov qword [rax + 8], rdx
mov qword [rax + 0x10], rbx
jmp 0x1400911b9
mov rcx, qword [rsp + 0x30]
mov dword [rcx + 8], 0x110000
jmp 0x1400911b2
mov rcx, qword [rsp + 0x30]
mov dword [rcx + 8], 0x110001
mov qword [rcx], rsi
mov qword [rcx + 0x10], rax
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 0x1400913ee
mov rcx, qword [rsp + 0x30]
mov dword [rcx + 8], eax
mov qword [rcx], rsi
mov qword [rcx + 0x10], rbx
jmp 0x1400911b9
shr r11, 0x20
jmp 0x140091281
movabs rcx, 0xffffffff00000000
lea rax, [rsp + 0x38]
and rax, rcx
mov edx, 0x110001
jmp 0x140091183
cmp rdx, qword [rsp + 0x20]
jae 0x1400913a3
lea rax, [rsi + 2]
cmp rax, qword [rsp + 0x20]
jae 0x1400913b7
lea rax, [rsi + 3]
cmp rax, qword [rsp + 0x20]
jae 0x1400913cb
and r15b, 7
movzx eax, r15b
shl eax, 0x12
mov rdx, qword [rsp + 0x28]
movzx ecx, byte [rdx + rsi + 1]
and ecx, 0x3f
shl ecx, 0xc
or ecx, eax
movzx eax, byte [rdx + rsi + 2]
and eax, 0x3f
shl eax, 6
or eax, ecx
movzx r11d, byte [rdx + rsi + 3]
and r11d, 0x3f
or r11d, eax
add rsi, 4
mov rax, qword [rsp + 0x30]
mov dword [rax + 8], r11d
mov qword [rax], rsi
jmp 0x140091192
lea r8, [0x1402dd9d8]
mov rcx, rax
call fcn.1401ac3e0
lea r8, [0x1402dd9a8]
mov rcx, rbx
call fcn.1401ac3e0
lea r8, [0x1402dd9c0]
mov rcx, rax
call fcn.1401ac3e0
lea r8, [0x1402dd8d0]
mov rcx, r10
mov rdx, qword [rsp + 0x20]
call fcn.1401ac3e0
lea r8, [0x1402dd8a0]
mov rcx, r10
mov rdx, qword [rsp + 0x20]
call fcn.1401ac3e0
lea r8, [0x1402dd858]
mov rcx, r10
mov rdx, qword [rsp + 0x20]
call fcn.1401ac3e0
lea r8, [0x1402dd8b8]
mov rcx, r10
mov rdx, qword [rsp + 0x20]
call fcn.1401ac3e0
lea r8, [0x1402dd870]
mov rcx, r10
mov rdx, qword [rsp + 0x20]
call fcn.1401ac3e0
lea r8, [0x1402dd888]
mov rcx, r10
mov rdx, qword [rsp + 0x20]
call fcn.1401ac3e0
lea r8, [0x1402dd990]
mov rcx, rax
mov rdx, qword [rsp + 0x20]
call fcn.1401ac3e0
lea r8, [0x1402dd960]
mov rcx, rdx
mov rdx, qword [rsp + 0x20]
call fcn.1401ac3e0
lea r8, [0x1402dd978]
mov rcx, rax
mov rdx, qword [rsp + 0x20]
call fcn.1401ac3e0
lea r8, str._home_zuzu_.cargo_registry_src_index.crates.io_6f17d22bba15001f_encoding_rs_0.8.34_src_data.rs
mov edx, 0x217
mov rcx, 0xffffffffffffffff
call fcn.1401ac3e0
lea r8, str._home_zuzu_.cargo_registry_src_index.crates.io_6f17d22bba15001f_encoding_rs_0.8.34_src_data.rs
mov edx, 0x437
mov rcx, 0xffffffffffffffff
call fcn.1401ac3e0
lea r8, [0x1402dd918]
mov rcx, rdx
mov rdx, qword [rsp + 0x20]
call fcn.1401ac3e0
lea r8, [0x1402dd930]
mov rcx, rax
mov rdx, qword [rsp + 0x20]
call fcn.1401ac3e0
lea r8, [0x1402dd948]
mov rcx, rax
mov rdx, qword [rsp + 0x20]
call fcn.1401ac3e0
lea r8, [0x1402dd900]
mov rcx, rax
call fcn.1401b2670
lea rcx, str._home_zuzu_.cargo_registry_src_index.crates.io_6f17d22bba15001f_encoding_rs_0.8.34_src_lib.rs
call fcn.1401abf80
int3