Function at 0x487b93
Capabilities:
Encrypt data using speck

Disassembly:
push ecx
call esi
mov esi, ecx
push 0x50
mov dword [edi + 0x10], eax
mov eax, dword [ebp + 0x18]
push 0xcf1105
push eax
mov dword [edi + 0x34], eax
call esi
mov word [edi + 0xcf8b88], ax
mov eax, dword [edi + 0x10]
mov dword [ebx + 0x1b0], eax
mov al, 1
pop edi
pop esi
pop ebx
add byte [0x14c269], ah
push dword [ebp + 8]
mov eax, dword [ebp + 0x18]
cmp eax, 0xffffffff
jne 0x487bd4
push 4
pop eax
test al, 0xc
jne 0x487bdb
or eax, 4
push ebx
push esi
push edi
or eax, 2
push eax
call 0x117b625
aaa
jne 0x487bf2
xor ebx, ebx
push ebx
push ecx
mov esi, dword [ebp + 0x10]
push ebx
push ebx
push ebx
push ebx
push eax
push ebx
push 0x4b9ba8
push ebx
push esi
call fcn.00401d68
mov edi, eax
test edi, edi
je 0x487c98
add dh, byte [edx]
adc al, 0xe8
sar ecx, 8
pop ecx
call fcn.0043b3b3
lea ecx, [ebp + 0x10]
push ecx
lea ecx, [ebp + 0x18]
push ecx
push eax
mov ecx, 0x4c57b0
call 0x41402435
sub al, 0x25
je 0x487c91
mov ecx, dword [ebp + 0x18]
mov eax, dword [0x4c5810]
mov eax, dword [eax + ecx*4]
mov ecx, dword [eax]
mov eax, dword [esi]
cmp eax, dword [ecx]
jne 0x487c91
mov edx, dword [ebp + 0x10]
mov eax, dword [0x4c5824]
mov eax, dword [eax + edx*4]
mov eax, dword [eax]
cmp byte [eax + 0xf08b90], 3
jne 0x487c91
push ds
dec ebp
or al, 0x8b
xor eax, 0x5d8bf688
push ebx
mov dword [ecx], edi
mov eax, dword [0x4c5824]
mov eax, dword [eax + edx*4]
mov eax, dword [eax]
mov eax, dword [eax]
push eax
push 0x469
push edi
mov dword [ecx + 0x34], eax
call esi
push 0x80017fff
push ebx
push 0x465
push edi
call esi
mov al, 1
jmp 0x487c9a
push edi
call dword [0x5d8bf63c]
xor al, al
pop edi
pop esi
pop ebx
imul eax, edx, 0x75ff0014
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 0x487cc3
xor eax, eax
jmp 0x487ce1
mov ebx, dword [ebp + 0x5824a1fc]
dec esp
add byte [edx], al
xor dl, byte [ebx + ecx*4]
jne 0x487ce1
mov eax, dword [eax + ecx*4]
dec dword [ebx - 0xff74f4]
xor bh, bh
adc eax, 0x5d8bf688
add byte [0xd910c269], ah
add bh, byte [ecx + eax]
imul esi, dword [esi + 9], 0x3e8308
je 0x487d0b
jle 0x487cfe
add byte [ebp + 0x12], dh
push 0x5d8bbc5d
push 0xfffffffffffffffc
add dh, byte [esi]
call dword [0x5d8bf510]
mov dword [esi + 8], eax
pop esi
imul eax, edx, 0x3c02d98b
add dword [ecx - 0x14], edx
cmp byte [ebp - 0x4f4603bb], cl
push edi
dec esp
add byte [eax - 0x73], dl
inc ebp
clc
push eax
mov esi, dword [ebp + 8]
call 0x41402435
sub al, 0x25
jne 0x487d36
xor al, al
jmp 0x487db9
mov ecx, dword [ebp - 4]
mov eax, dword [0x4c5824]
mov edx, dword [eax + ecx*4]
mov ecx, dword [edx]
movzx eax, byte [ecx + 0xf08b90]
cmp eax, 0x10
jg 0x487d97
je 0x487dab
test eax, eax
js 0x487d2f
cmp eax, 0xa
jle 0x487dab
cmp eax, 0xc
je 0x487d92
cmp eax, 0xe
jne 0x487d2f
lea eax, [ebp - 0x38]
mov dword [ebp - 0x38], 0x30
push eax
push 0
push dword [ebp + 8]
mov dword [ebp - 0x34], 0xcf8b04
push dword [ecx + 0xc]
call dword [0x5d8bf5d4]
test eax, eax
je 0x487d2f
push ds
dec ebp
or al, 0x8b
inc ebp
fmul qword [ecx - 0x74da14ff]
dec ecx
or al, 0xeb
sbb eax, dword [ebx + 0x137411f8]
mov ecx, dword [ecx + 0xc]
jmp 0x487db2
cmp eax, 0x11
je 0x487daf
jle 0x487d2f
cmp eax, 0x13
jle 0x487dab
add eax, 0xffffffea
cmp eax, 6
ja 0x487d2f
mov ecx, dword [ecx]
jmp 0x487db2
mov ecx, dword [ecx + 0x10]
mov eax, dword [ebp + 0xc]
mov dword [eax], ecx
mov al, 1
aaa
and eax, 0xfac269
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 0x487de2
or eax, 0x40
jmp 0x487e08
mov ecx, dword [ebp - 4]
mov eax, dword [0x4c5824]
mov eax, dword [eax + ecx*4]
mov eax, dword [eax]
cmp byte [eax + 0xf08b90], 0x13
jne 0x487e01
movsx eax, word [eax + 0xcf8b96]
jmp 0x487e08
movzx eax, byte [eax - 0x3fffff6e]
aaa
and eax, 0xd98bc269
add bh, byte [ecx + eax]
sub esp, 0xcf8bc8
lea eax, [ebp - 8]
mov ecx, 0x4c57b0
push ebx
push esi
push edi
push eax
lea eax, [ebp - 0x78]
push eax
mov esi, dword [ebp + 8]
call 0x41402435
sub al, 0x25
jne 0x487e3e
mov eax, dword [ebp + 0xc]
and dword [eax], 0
jmp 0x48850b
mov ecx, dword [ebp - 8]
xor edi, edi
mov eax, dword [0x4c5824]
mov ebx, dword [ebp + 0xc]
mov eax, dword [eax + ecx*4]
or dword [ebx], 0xffffffff
mov ecx, dword [eax]
mov dword [ebp - 8], ecx
movzx eax, byte [ecx + 0xf08b90]
mov esi, dword [ecx]
mov dword [ebp + 0xc], esi
cmp eax, 0x11
jg 0xcfd381d2
je 0xcfd38121
cmp eax, 0xa
jg 0x1177f7a
je 0x1180a3a
sub eax, edi
je 0x487ef0
dec eax
je 0x487e9c
sub eax, 7
jne 0x4882c9
push edi
push edi
push 0x408
jmp 0x488502
push edi
push edi
push 0xf08b0188
push esi
call dword [0x5d8bf688]
mov ebx, eax
cmp ebx, 0xffffffff
je 0x4882c9
push edi
mov edi, dword [0x5d8bf688]
push ebx
push 0xf08b018a
push esi
call edi
xor ecx, ecx
inc eax
push 2
pop edx
mov eax, dword [ebp - 0x10]
push esi
push 0xd
push dword [eax]
call dword [0xf98f0f88]
dec ecx
add al, dh
push esi
push ebx
push 0x189
push dword [ebp + 0xc]
call edi
mov eax, esi
jmp 0x48850d
push edi
push edi
push 0xf08b0147
push esi
call dword [0x5d8bf688]
mov ebx, eax
cmp ebx, 0xffffffff
je 0x4882c9
push edi
mov edi, dword [0x5d8bf688]
push ebx
push 0xf08b0149
push esi
call edi
xor ecx, ecx
inc eax
push 2
pop edx
mov eax, dword [ebp - 0x10]
push esi
push 0xd
push dword [eax]
call dword [0xf98ebb88]
dec ecx
add al, dh
push esi
push ebx
push 0xcf8b0848
jmp 0x487ee4
push edi
push edi
push 0xe
push esi
call dword [0x5d8bf688]
xor ecx, ecx
push 2
mov dword [ebp - 0x3874fe88], ecx
mov eax, dword [ebp - 0x10]
push esi
push 0xd
push dword [eax]
call dword [0xf98afc88]
dec ecx
push edi
add al, dh
push esi
push dword [ebp + 0xc]
call dword [0x5d8bf66c]
jmp 0x487ee9
push esi
call dword [0x5d8bf688]
mov dword [ebx], eax
xor eax, dword [edi + 0x5b0001]
and eax, 0xcc269
add dword [eax], eax
pop ebx
add byte [0xcc269], ah
push dword [ebp + 8]
sub esp, 0x18
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 0x488539
xor eax, eax
jmp 0x4885aa
mov ecx, dword [ebp - 4]
mov eax, dword [0x4c5824]
dec eax
xor esi, esi
mov eax, dword [eax + ecx*4]
mov eax, dword [eax]
mov ecx, dword [eax]
mov eax, dword [ebp + 0x14]
sub eax, esi
je 0x488595
dec eax
je 0x48858d
dec eax
jne 0x4885a7
lea eax, [ebp - 0x18]
push eax
mov esi, dword [ebp + 0x10]
push dword [ebp + 0xc]
push ecx
call dword [0x5d8bf688]
mov edx, dword [ebp + 0x18]
mov esi, eax
mov ecx, dword [ebp - 0x18]
mov eax, dword [ebp - 0xc]
mov dword [edx], ecx
mov edx, dword [ebp + 0x1c]
mov ecx, dword [ebp - 0x14]
mov dword [edx], ecx
mov edx, dword [ebp + 0x20]
mov ecx, dword [ebp - 0x10]
mov dword [edx], ecx
mov ecx, dword [ebp + 0x24]
mov dword [ecx], eax
jmp 0x4885a7
dec dword [ebx + 0x1075ff28]
jmp 0x48859b
mov esi, dword [ebp + 0x1c]
push dword [ebp + 0x18]
push dword [ebp + 0xc]
push ecx
call dword [0x5d8bf688]
mov esi, eax
mov eax, esi
pop esi
add byte [0x24c269], 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 0x4885d2
xor eax, eax
jmp 0x48860f
mov eax, dword [0x4c5824]
dec eax
mov esi, dword [ebp - 4]
ret 0xb004
add byte [0xcc269], ah
push dword [ebp + 8]
push ecx
push ecx
push esi
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
je 0x488665
mov ecx, dword [ebp - 4]
mov eax, dword [0x4c5824]
mov eax, dword [eax + ecx*4]
mov ecx, dword [eax]
cmp byte [ecx + 0x90], 0x15
add byte [eax], al
invalid
jne 0x488665
lea eax, [ebp + 0xc]
add ecx, 0x70
push eax
call 0x1409d6f
push 0
xor esi, esi
lea ebx, [ebp + 0x1284e80c]
clc
dec dword [ebx + 0x25005ec6]
imul eax, edx, 0x75ff0014
or byte [ebx + 0x458d0cec], al
clc
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 0x4886a1
xor eax, eax
jmp 0x48887b
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 - 4], eax
mov eax, dword [0x4c5824]
mov eax, dword [eax + ecx*4]
lea ebx, [ebp - 0x75c774f4]
lahf
nop
add byte [eax], al
add byte [ebx - 0x78a76c9], cl
mov byte [ebp + 0xb], bl
call fcn.00403262
cmp dword [edi + 0x48], 0
jl 0x4886e2
push dword [edi + 0x48]
call 0x117a4e2
movzx eax, bl
mov ebx, dword [ebp + 0xc]
cmp eax, 0x12
jg 0x11812c6
je 0x1181283
test eax, eax
je 0x488773
jle 0x48869a
cmp eax, 4
jle 0xcfd38f0c
cmp eax, 8
je 0x488753
cmp eax, 0x10
je 0x48873d
cmp eax, 0x11
jne 0x48869a
mov eax, dword [ebp + 0xc]
test eax, eax
js 0x4148869a
push 1
push eax
mov dword [edi + 0x48], eax
call fcn.00402303
push 1
push 0x39
push dword [edi + 0x34]
call dword [0x5d8bf658]
jmp 0xcfd38f64
cmp dword [ebp + 0xc], 0
jl 0x4148869a
push dword [ebp + 0xc]
push 0
push 0xcf111d
jmp 0x488767
cmp dword [ebp + 0xc], 0
jl 0x4148869a
push dword [ebp + 0xc]
push 0
push 0xcf8b2001
push esi
call dword [0x5d8bf688]
jmp 0x488864
mov eax, dword [ebp + 0xc]
test eax, eax
jns 0x118132e
jmp 0x331869a