Function at 0x180046cf0
Capabilities:
Encrypt data using speck

Disassembly:
mov qword [rsp + 0x20], r9
mov qword [rsp + 0x18], r8
mov qword [rsp + 0x10], rdx
mov qword [rsp + 8], rcx
push rbp
push rbx
push rsi
push rdi
push r12
push r13
push r14
push r15
lea rbp, [rsp - 0x17]
sub rsp, 0xa8
mov edi, dword [rbp + 0x7f]
mov r15, r9
imul eax, edi, 0x460
mov r9, r8
mov r14, rdx
mov dword [rbp - 0x59], edi
mov r12d, edi
mov dword [rbp - 0x21], eax
cmp edi, eax
ja 0x18004728f
mov r13, qword [rbp - 0x29]
mov esi, dword [rbp - 0x51]
mov edi, dword [rbp - 0x4d]
mov r10d, 0xee
movabs rdx, 0x7fffffffffffffff
lea r8d, [r10 - 0xe]
cmp r12d, 0x454d
ja 0x180046f1e
je 0x180046f14
mov eax, r12d
sub eax, 0x71
je 0x180046eee
sub eax, 0x2c
je 0x180046ecd
sub eax, 7
je 0x18004726b
sub eax, 0x37
je 0x180046dfd
cmp eax, 0x3106
jne 0x180047255
mov r9, qword [rbp - 0x49]
lea rdx, [r14 + 0x20]
xor r8d, r8d
nop dword [rax]
mov qword [rdx], r13
mov rcx, 0xffffffffffffffff
nop word [rax + rax]
inc rcx
cmp byte [rcx + r13], 0
jne 0x180046dc0
mov rax, 0xffffffffffffffff
sub rax, rcx
add r9, rax
je 0x18004728b
inc r13
inc r8d
add r13, rcx
add rdx, 8
cmp r8d, 4
jb 0x180046db0
mov qword [rbp - 0x29], r13
mov qword [rbp - 0x49], r9
jmp 0x180047251
mov rax, qword [r15]
mov rbx, qword [rax + 0x1c8]
test rbx, rbx
je 0x180047255
mov rcx, qword [r14]
cmp dword [rcx + 0x150], 0
je 0x180046e4a
cmp word [rbx + 8], r8w
jne 0x180046e4a
cmp dword [rbx + 0x10], 5
jb 0x180046e4a
mov rax, qword [rbx + 0x18]
cmp byte [rax], 0x4a
jne 0x180046e4a
cmp byte [rax + 1], 0x46
jne 0x180046e4a
cmp byte [rax + 2], 0x49
jne 0x180046e4a
cmp byte [rax + 3], 0x46
jne 0x180046e4a
cmp byte [rax + 4], 0
je 0x180046ebc
cmp dword [rcx + 0x164], 0
je 0x180046e81
cmp word [rbx + 8], r10w
jne 0x180046e81
cmp dword [rbx + 0x10], 5
jb 0x180046e81
mov rax, qword [rbx + 0x18]
cmp byte [rax], 0x41
jne 0x180046e81
cmp byte [rax + 1], 0x64
jne 0x180046e81
cmp byte [rax + 2], 0x6f
jne 0x180046e81
cmp byte [rax + 3], 0x62
jne 0x180046e81
cmp byte [rax + 4], 0x65
je 0x180046ebc
mov eax, dword [rbx + 0x10]
lea r8, [rbp - 0x61]
mov dword [rbp - 0x61], eax
lea rdx, [rbp - 0x31]
movsx eax, word [rbx + 8]
mov r9d, 0x9c
mov dword [rbp - 0x59], eax
mov rax, qword [rbx + 0x18]
mov qword [rbp - 0x31], rcx
lea rcx, [rbp - 0x59]
mov qword [rsp + 0x20], rax
call fcn.180021470
mov r8d, 0xe0
lea r10d, [r8 + 0xe]
mov rbx, qword [rbx]
test rbx, rbx
jne 0x180046e10
jmp 0x18004724b
mov eax, dword [r9]
lea r8, [rbp - 0x4d]
lea r9, [rbp - 0x51]
mov dword [rbp - 0x61], eax
lea rdx, [rbp - 0x61]
mov ecx, 0x10b
call fcn.18002e120
jmp 0x18004724b
cmp qword [r15 + 0x18], 0x10
mov rax, r15
jb 0x180046efb
mov rax, qword [r15]
lea r13, [rax + 4]
mov rax, qword [r15 + 0x10]
sub rax, 4
mov qword [rbp - 0x29], r13
mov qword [rbp - 0x49], rax
jmp 0x180047255
xor eax, eax
mov dword [rbp - 0x3d], eax
jmp 0x180047255
cmp r12d, 0x6351
je 0x18004704c
cmp r12d, 0x89fd
je 0x180046f56
cmp r12d, 0x94c1
je 0x18004728f
cmp r12d, 0xcead
jne 0x180047255
mov eax, dword [rbp - 0x3d]
jmp 0x180047292
mov r13d, dword [rbp - 0x3d]
xor r10d, r10d
lea r12d, [r10 + 1]
nop dword [rax]
nop word [rax + rax]
mov r11d, 0x16
cmp r11d, 0x16
jne 0x180047019
mov ecx, r10d
mov edx, 0xf
shl edx, cl
mov r8d, 0xf
lea ecx, [r10 - 0x1c]
shl r8d, cl
cmp r10d, 0x1c
jl 0x180046fa9
mov eax, dword [r14]
lea ecx, [r10 - 0x1c]
and eax, r8d
jmp 0x180046fb1
mov eax, dword [r15]
mov ecx, r10d
and eax, edx
sar eax, cl
cmp r10d, 0x1c
jl 0x180046fc5
mov r9d, r8d
lea ecx, [r10 - 0x1c]
and r9d, esi
jmp 0x180046fce
mov r9d, edx
mov ecx, r10d
and r9d, edi
sar r9d, cl
sub eax, r9d
sub eax, r13d
cmovs r13d, r12d
test eax, eax
lea r9d, [rax + 0xa]
cmovns r9d, eax
cmp r10d, 0x1c
jl 0x180047004
xor r8d, 0xfffffff
lea ecx, [r10 - 0x1c]
and r8d, dword [r14]
shl r9d, cl
or r8d, r9d
mov dword [r14], r8d
jmp 0x180047019
xor edx, 0xfffffff
mov ecx, r10d
and edx, dword [r15]
shl r9d, cl
or edx, r9d
mov dword [r15], edx
add r11d, 0x5c2
cmp r11d, 0x5c2
jbe 0x180046f76
add r10d, 4
mov dword [rbp - 0x3d], r13d
cmp r10d, 0x38
jl 0x180046f70
mov r13, qword [rbp - 0x29]
mov r12d, dword [rbp - 0x59]
jmp 0x180047251
mov qword [rbp - 0x11], r14
lea rax, [rbp - 1]
mov qword [rbp - 9], r9
movaps xmm0, xmmword [rbp - 0x11]
movdqa xmmword [rbp - 1], xmm0
mov dword [rbp - 0x61], 0
mov qword [rbp - 0x31], rax
nop dword [rax]
mov r12d, 0x1a
cmp r12d, 0x1a
je 0x1800471ee
cmp r12d, 0xb0
je 0x1800471d0
cmp r12d, 0x146
je 0x1800470b6
mov r9, qword [rbp - 0x49]
cmp r12d, 0x1dc
jne 0x18004720b
mov eax, dword [rbp - 0x41]
sub r9, rax
mov rax, qword [rbp - 0x31]
jmp 0x180047207
mov rdi, qword [rax]
mov r15d, dword [rbp - 0x41]
mov r14, qword [rdi + 0x18]
cmp r15, r14
ja 0x1800470ee
mov rbx, rdi
cmp r14, 0x10
jb 0x1800470d2
mov rbx, qword [rdi]
mov r8, r15
mov qword [rdi + 0x10], r15
mov rdx, r13
mov rcx, rbx
call fcn.180078b00
mov byte [rbx + r15], 0
jmp 0x1800471b5
mov rcx, r14
mov rsi, r15
shr rcx, 1
mov rax, rdx
sub rax, rcx
or rsi, 0xf
cmp r14, rax
jbe 0x18004710b
mov rsi, rdx
jmp 0x180047116
lea rax, [rcx + r14]
cmp rsi, rax
cmovb rsi, rax
lea rcx, [rsi + 1]
cmp rcx, 0x1000
jb 0x18004714f
lea rax, [rcx + 0x27]
cmp rax, rcx
jbe 0x1800472a6
mov rcx, rax
call fcn.180077918
test rax, rax
je 0x1800472ac
lea rbx, [rax + 0x27]
and rbx, 0xffffffffffffffe0
mov qword [rbx - 8], rax
jmp 0x180047160
test rcx, rcx
je 0x18004715e
call fcn.180077918
mov rbx, rax
jmp 0x180047160
xor ebx, ebx
mov r8, r15
mov qword [rdi + 0x10], r15
mov rdx, r13
mov qword [rdi + 0x18], rsi
mov rcx, rbx
call fcn.180078b00
mov byte [rbx + r15], 0
cmp r14, 0x10
jb 0x1800471b2
mov rcx, qword [rdi]
lea rdx, [r14 + 1]
cmp rdx, 0x1000
jb 0x1800471ad
mov r8, qword [rcx - 8]
add rdx, 0x27
sub rcx, r8
lea rax, [rcx - 8]
cmp rax, 0x1f
ja 0x1800472ac
mov rcx, r8
call fcn.180077954
mov qword [rdi], rbx
mov r9, qword [rbp - 0x49]
add r13, r15
mov rax, qword [rbp - 0x31]
movabs rdx, 0x7fffffffffffffff
mov qword [rbp - 0x29], r13
jmp 0x18004720b
mov eax, dword [rbp - 0x41]
add r13, 4
mov r9, qword [rbp - 0x49]
mov qword [rbp - 0x29], r13
cmp rax, r9
ja 0x18004728b
mov rax, qword [rbp - 0x31]
jmp 0x18004720b
mov r9, qword [rbp - 0x49]
cmp r9, 4
jb 0x18004728b
mov ecx, dword [r13]
sub r9, 4
mov dword [rbp - 0x41], ecx
mov qword [rbp - 0x49], r9
add r12d, 0x96
cmp r12d, 0x272
jb 0x180047076
mov ecx, dword [rbp - 0x61]
add rax, 8
inc ecx
mov qword [rbp - 0x31], rax
mov dword [rbp - 0x61], ecx
cmp ecx, 2
jb 0x180047070
mov r14, qword [rbp + 0x67]
test r9, r9
mov r15, qword [rbp + 0x77]
mov r12d, dword [rbp - 0x59]
sete byte [rbp - 0x39]
mov esi, dword [rbp - 0x51]
mov edi, dword [rbp - 0x4d]
mov r9, qword [rbp + 0x6f]
imul eax, dword [rbp + 0x7f], 0x70
add r12d, eax
mov dword [rbp - 0x59], r12d
cmp r12d, dword [rbp - 0x21]
ja 0x18004728f
jmp 0x180046d49
mov rax, qword [rbp + 0x5f]
mov r8d, dword [rax]
mov eax, r8d
cdq
sub eax, edx
sar eax, 1
mov ecx, eax
imul eax, dword [r9], 0xff
add eax, ecx
cdq
idiv r8d
jmp 0x180047292
mov byte [rbp - 0x39], 0
mov eax, dword [rbp - 0x39]
add rsp, 0xa8
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbx
pop rbp
ret
call fcn.180020eb0
int3
call fcn.18007ba54
int3