Function at 0x488851
Capabilities:
Encrypt data using speck

Disassembly:
push 0xcf1026
push dword [ebp - 8]
adc bh, cl
add bh, bh
jne 0x48884f
call esi
push 1
push edi
push dword [ebp - 4]
call 0xcfd3b2f8
cmp dword [0x4c52b0], 0
je 0x488878
cmp byte [ebp + 0xb], 8
jne 0x488878
or eax, 0x40
jmp 0x48887b
xor eax, dword [edi + 0x5b5e5f40]
pop edi
pop esi
pop ebx
add byte [0xfac269], ah
push dword [ebp + 8]
sub esp, 0xc
lea eax, [ebp - 8]
mov ecx, 0x4c57b0
push ebx
push esi
push edi
push eax
lea eax, [ebp - 4]
push eax
mov esi, dword [ebp + 8]
call 0x41402435
sub al, 0x25
jne 0x4888ad
xor eax, eax
jmp 0x4889b6
mov ecx, dword [ebp - 4]
mov eax, dword [0x4c5810]
mov eax, dword [eax + ecx*4]
mov ecx, dword [ebp - 8]
mov eax, dword [eax]
mov dword [ebp + 8], eax
mov eax, dword [0x4c5824]
mov eax, dword [eax + ecx*4]
lea ebx, [ebp - 0x74c774f4]
aaa
mov bl, byte [edi + 0x90]
call 0x41403262
movzx eax, bl
cmp eax, 0x13
jg 0x488968
je 0x488955
test eax, eax
js 0x4888a6
cmp eax, 4
jle 0xcfd3899d
cmp eax, 8
je 0x488949
cmp eax, 0x10
je 0x48893d
cmp eax, 0x11
jne 0x4888a6
mov eax, dword [ebp + 0xc]
push 1
push 0x39
push dword [edi + 0x34]
mov dword [edi + 0x4c], eax
call dword [0x5d8bf658]
cmp dword [0x4c52b0], 0
je 0x11814b3
cmp bl, 8
je 0x488938
cmp bl, 4
je 0x488938
cmp bl, 0x1a
je 0x488938
cmp bl, 0x19
jne 0x4889b3
or eax, 0x40
jmp 0x4889b6
push dword [ebp + 0xc]
push 0
push 0xcf111e
jmp 0x48895f
push dword [ebp + 0xc]
push 0
push 0x409
jmp 0x48895f
push dword [ebp + 0xc]
push 0
push 0xcf8b1024
push esi
call dword [0x5d8bf688]
jmp 0x488917
cmp eax, 0x14
je 0x488904
cmp eax, 0x17
je 0x48899d
cmp eax, 0x18
je 0x488987
jle 0xff4b88a6
cmp eax, 0x1b
jle 0x48899d
jmp 0xff4b88a6
push 0xfffffffffffffff0
push esi
call dword [0x51fff68b]
or eax, 0xb
push eax
push 0xfffffffffffffff0
push esi
call dword [0x5d8bf510]
mov eax, dword [ebp + 0xc]
push 1
push edi
push dword [ebp + 8]
mov dword [edi + 0x4c], eax
call 0x117b2f8
jmp 0xff4b7217
xor eax, dword [edi + 0x5b5e5f40]
pop edi
pop esi
pop ebx
add byte [0xfac269], ah
push dword [ebp + 8]
push ecx
push ecx
lea eax, [ebp - 4]
mov ecx, 0x4c57b0
push eax
lea eax, [ebp - 8]
push eax
mov esi, dword [ebp + 8]
call 0x41402435
sub al, 0x25
jne 0x4889e1
xor eax, eax
jmp 0x488a02
mov eax, dword [0x4c5824]
mov ecx, dword [ebp - 4]
ret 0x8804
add byte [0xfac269], ah
push dword [ebp + 8]
mov eax, 0x2110
call fcn.00431973
push ebx
push esi
push edi
lea eax, [ebp - 0x1c]
xor esi, esi
push eax
lea eax, [ebp - 8]
mov dword [ebp - 0x18], esi
push eax
mov esi, dword [ebp + 8]
mov ecx, 0x4c57b0
mov dword [ebp - 0x10], esi
mov dword [ebp - 0xc], esi
mov dword [ebp - 0x14], esi
call 0x41402435
sub al, 0x25
jne 0x488a46
xor eax, eax
jmp 0x488f3b
mov ecx, dword [ebp - 8]
mov eax, dword [0x4c5810]
mov eax, dword [eax + ecx*4]
mov ecx, dword [ebp - 0x1c]
mov edx, dword [eax]
mov eax, dword [0x4c5824]
mov dword [ebp - 8], edx
mov eax, dword [eax + ecx*4]
mov ebx, dword [eax]
mov al, byte [ebx + 0x90]
mov edi, dword [ebx]
sub al, 0x25
je 0x488aa5
cmp al, 1
je 0x488a87
jbe 0x488a79
cmp al, 3
jbe 0x488ac1
mov ecx, dword [ebp + 0x10]
test ecx, ecx
je 0x488ac4
cmp word [ecx], si
je 0x488ac4
jmp 0x488a3f
mov dword [ebp - 0x18], 0xcf8b0880
mov dword [ebp - 0x10], 0xcf8b08a2
mov dword [ebp - 0xc], 0xcf8b0886
mov dword [ebp - 0x14], 0xcf8b0884
jmp 0x488ac1
mov dword [ebp - 0x18], 0xcf8b0843
mov dword [ebp - 0x10], 0xcf8b0858
mov dword [ebp - 0xc], 0xcf8b084e
mov dword [ebp - 0x14], 0x14b
mov ecx, dword [ebp + 0x10]
movzx eax, al
cmp eax, 0x1c
ja 0x1178f11
movzx eax, byte [eax + 0x5d8b8f45]
jmp dword [eax*4 + 0x488f11]
pop edi
pop esi
pop ebx
add byte [0xcc269], ah
stosd dword es:[edi], eax
mov cl, byte [eax]
mov edi, 0x300488b
mov word [eax], cs
mov dl, 0x8a
dec eax
add byte [eax - 0x75], dh
dec eax
add bh, ch
lea ecx, [eax]
dec eax
mov cs, word [eax]
mov esi, 0x9100488d
mov ecx, dword [eax]
xor cl, byte [eax + ecx*2 + 0x488cd700]
add byte [ecx - 0x21ffb775], ch
mov cs, word [eax]
add byte [eax], al
add dword [ecx], eax
or al, 2
add eax, dword [ebx]
add al, 0xc
or al, 5
or al, 0xc
push es
push es
or al, 7
or byte [ecx], cl
or cl, byte [ebx]
add ecx, dword [esp + ecx]
or al, 0xc
or al, 2
push dword [ebp + 8]
sub esp, 0x14
lea ecx, [ebp - 0x14]
dec eax
or bh, bh
or dword [eax], edx
call fcn.00407e14
lea eax, [ebp - 4]
mov ecx, 0x4c57b0
push eax
lea eax, [ebp + 0x10]
push eax
mov esi, dword [ebp + 8]
call 0x41402435
sub al, 0x25
je 0x1391b60
mov ecx, dword [ebp + 0x10]
mov eax, dword [0x4c5810]
mov eax, dword [eax + ecx*4]
mov ecx, dword [ebp - 4]
mov esi, dword [eax]
mov eax, dword [0x4c5824]
mov eax, dword [eax + ecx*4]
mov eax, dword [eax]
mov dword [ebp + 8], eax
test byte [eax + 0x91], 1
jne 0x489060
fld qword [ebp + 0x1c]
fld qword [0x4b9e58]
fucomp st(1)
fnstsw ax
test ah, 0x44
jp 0x489004
mov eax, dword [esi + 0x7c]
fstp st(0)
jmp 0x48900f
fmul qword [0x4a4908]
call fcn.0043b3b3
push ebx
mov ebx, dword [ebp + 0xc]
mov dword [ebp + 0x10], eax
cmp ebx, 0xffffffff
jne 0x489021
mov ebx, dword [esi - 0x3074ff80]
cmp dword [ebp + 0x14], 0xffffffff
jne 0x489030
mov eax, dword [esi + 0xcf8b84]
mov dword [ebp + 0x14], eax
cmp dword [ebp - 0x10], 0
jne 0x489042
lea eax, [esi + 0x6c]
push eax
or dword [ebp - 0x14], 0xffffffe8
cmp al, dh
idiv edi
xor edi, edi
lea eax, [ebp - 0x14]
inc edi
push edi
push dword [ebp + 0x18]
push dword [ebp + 0x14]
push ebx
mov esi, dword [ebp + 0x10]
push eax
dec dword [ecx]
or byte [esi - 0x18], dl
test eax, 0x5bffffd1
add al, 0
push esi
mov eax, dword [ebx - 0x321713b3]
enter 0xfffffffffffffff7, 0xffffffffffffff8b
invalid