Function at 0x488066
Capabilities:
Encrypt data using speck

Disassembly:
ror byte [ebx - 0x72aeae0f], cl
inc ebp
cld
mov ecx, 0x4c67b0
push eax
dec ecx
clc
push eax
inc ebp
jne 0x487f16
call 0x4640241e
in al, 0
jne 0x487f1b
add al, 0x33
shr bl, 0x1e
xor eax, eax
jmp 0x487f39
mov ebp, dword [eax - 4]
mov eax, dword [0xdb4c6824]
push dword [ebp + 0x14]
inc ebp
jne 0x487f39
mov eax, dword [eax + ecx*4]
dec dword [ecx + 0xc]
xor eax, dword [eax]
push dword [eax]
call dword [0xfe28f688]
mov ebx, ecx
mov eax, edx
adc byte [eax], al
ror byte [ebx + 0x498b7ff1], cl
or byte [ebx + 0x1874003e], al
cmp dword [esi + 8], 0
jne 0x487f63
push 0x48bf4d
push 0xfffffffffffffffc
adc al, 0x36
call dword [0xfe28f510]
mov dword [esi + 8], eax
pop esi
mov eax, edx
push ebx
xor ebx, ebx
fild dword [ebx + 0x39]
sub esp, 0x38
lea eax, [ebp - 4]
mov ecx, 0x4c67b0
push eax
dec ecx
clc
push eax
inc ebp
jne 0x487f86
call 0x4640241e
in al, 0
jne 0x487f8e
pop es
xor al, al
jmp 0x39918011
mov ebp, dword [eax - 4]
mov eax, dword [0xdb4c6824]
mov edx, dword [eax + ecx*4]
mov ecx, dword [edx]
movzx eax, byte [ecx + 0x46b00490]
cmp eax, 0x10
jg 0x487fef
je 0x488003
test eax, eax
js 0x487f87
cmp eax, 0xa
jle 0x488003
cmp eax, 0xc
je 0x487fea
cmp eax, 0xe
jne 0x487f87
lea eax, [ebp - 0x38]
mov dword [ebp - 0x38], 0x39490030
push eax
push 0
inc ebp
jne 0x487fd4
mov dword [ebp - 0x34], 0x39490004
push dword [ecx + 0xc]
jno 0x487fe2
push dword [edi - 0x2c]
cmc
sub dh, bh
push esi
jmp 0x488053
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 0x48800a
cmp eax, 0x11
je 0x488007
jle 0x487f87
cmp eax, 0x13
jle 0x488003
add eax, 0xffffffea
cmp eax, 6
ja 0x487f87
mov ecx, dword [ecx]
jmp 0x48800a
mov ecx, dword [ecx + 0x10]
mov eax, dword [ebp + 0xc]
mov dword [eax], ecx
mov al, 1
mov ebx, ecx
mov eax, edx
or byte [eax], al
ror byte [ebx - 0x72aeae0f], cl
inc ebp
cld
mov ecx, 0x4c67b0
push eax
dec ecx
clc
push eax
inc ebp
jne 0x488034
call 0x4640241e
in al, 0
jne 0x48803a
add eax, 0xeb45c883
mov ecx, dword es:[ebp - 4]
or eax, 0x45
jmp 0x488060
mov ecx, dword [ebp - 4]
mov eax, dword [0xdb4c6824]
mov eax, dword [eax + ecx*4]
mov eax, dword [eax]
cmp byte [eax + 0x46b00490], 0x13
jne 0x488059
movsx eax, word [eax + 0x1e070096]
xchg esi, eax
add byte [edi], al
push ds
jmp 0x488060
movzx eax, byte [eax + 0x46000092]
mov ebx, ecx
mov eax, edx
push ebx
xor ebx, ebx
fild dword [ebx + 0x39]
sub esp, 0xdb00c8
lea eax, [ebp - 8]
mov ecx, 0x4c67b0
push ebx
push esi
push edi
push eax
dec ecx
mov byte [eax + 0x45], dl
jne 0x48808a
call 0x4640241e
in al, 0
jne 0x488096
or ecx, dword [ebx + 0x20830c45]
add cl, ch
int 6
add byte [eax], al
mov eax, dword [ebp + 0xc]
and dword [eax], 0
jmp 0x488763
mov ecx, dword [ebp - 8]
xor edi, edi
mov eax, dword [0xdb4c6824]
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 + 0x46b00490]
mov esi, dword [ecx]
mov dword [ebp + 0xc], esi
cmp eax, 0x11
jg 0x48842a
je 0x74a38379
cmp eax, 0xa
jg 0x4881d2
je 0x489d92
sub eax, edi
je 0x488148
dec eax
je 0x4880f4
sub eax, 7
jne 0x488521
push edi
push edi
push 0x408
jmp 0x48875a
push edi
push edi
push 0x188
push esi
push dword [edi - 0x78]
imul byte [eax]
dec byte [ebx - 0x47c28]
je 0x488521
push edi
mov edi, dword [0xfe28f688]
push ebx
push 0x18a
push esi
call edi
xor ecx, ecx
inc eax
push 2
pop edx
inc eax
cld
ror byte [ecx - 0x74bfdb84], 1
invalid
mov eax, esi
jmp 0x488765
push edi
push edi
push 0x147
push esi
push dword [edi - 0x78]
imul byte [eax]
dec byte [ebx - 0x47c28]
je 0x488521
push edi
mov edi, dword [0xfe28f688]
push ebx
push 0x149
push esi
call edi
xor ecx, ecx
inc eax
push 2
pop edx
inc eax
cld
ror byte [ecx - 0x74bfdb84], 1
invalid
cmp eax, 0xc
je 0xc4488372
cmp eax, 0xd
jle 0xfc478521
cmp eax, 0xf
jle 0x46f88688
cmp eax, 0x10
jne 0xfc478521
xor edi, edi
push edi
push 9
push 0x110a
push esi
mov dword [ebx], edi
call dword [0xfe28f688]
test eax, eax
je 0x39918763
cmp byte [ebp + 0x10], 0
mov dword [ebp - 0x2c], eax
mov dword [ebp - 0x30], 0x39490004
je 0x488267
push 0x50452000
call 0x8e421012
add cl, byte [ebx - 0x2fba7228]
push eax
push edi
push 0x113e
push esi
mov dword [ebp - 0x1c], 0x1e0fff
mov dword [ebp - 0x20], ebx
mov dword [ebp - 0x30], 0x1c46
call dword [0xfe28f688]
test eax, eax
je 0x48825b
mov eax, ebx
jmp 0x488765
push ebx
call 0x8e421088
add ch, cl
cld
add al, 0
add byte [ebp + 0x5750d045], cl
lea eax, [ebp - 0x30]
push eax
push edi
push 0x113e
push esi
call dword [0xfe28f688]
test eax, eax
je 0x58148763
mov eax, dword [ebp - 0xc]
jmp 0x39918761
cmp eax, 0x12
je 0xfc478751
cmp eax, 0x13
je 0x74a38708
cmp eax, 0x14
je 0xc44885bf
cmp eax, 0x15
je 0xc4488558
cmp eax, 0x18
jle 0x46f88921
mov al, 0x46
cmp eax, 0x1a
jle 0x4884af
cmp eax, 0x1c
jne 0x1238521
lea eax, [ebp - 0x74]
xor edi, edi
push eax
push edi
push 0x1001
push esi
call dword [0xfe28f688]
test eax, eax
je 0x4884a8
push 0x16
call fcn.00421012
movzx ecx, word [ebp - 0x6e]
mov esi, eax
push ecx
movzx ecx, word [ebp - 0x72]
push ecx
movzx ecx, word [ebp - 0x74]
push ecx
add dword [edi - 0x49], edx
dec ebx
add byte [esi - 1], dl
adc eax, 0x48f564
add esp, 0x18
jmp 0x488141
mov dword [ebx], edi
jmp 0x46338763
xor ecx, dword [ebp + 0x107d80]
push edi
push edi
je 0x488500
push 0xe
push esi
call dword [0xfe28f688]
xor ecx, ecx
push 2
loopne 0x488455
imul byte [eax]
invalid
jo 0x4884cb
mov eax, esi
inc eax
cld
ror byte [ecx - 0x74bfdb84], 1
invalid
mov byte [eax - 4], 0xd0
mov dword [esp + 0x40], edi
mov eax, edi
mov dword [edi + esi - 0x75], edx
stc
lea eax, [edx]
push esi
push eax
dec dword [ecx + 0xc]
mov dword [ebp + 0x10], eax
call dword [0xfe28f66c]
push esi
jmp 0x488562
push 0xf0
push esi
call dword [0xfe28f688]
mov dword [ebx], eax
inc esp
ror byte [edi], 1
test dword [ebp + 2], ecx
pop ebx
je 0x4884de
add eax, dword [eax + eax]
dec ecx
cmp ecx, ebp
inc edx
add al, byte [ebp + 0x50]
push edi
push edi
push 0xe
push esi
call dword [0xfe28f688]
xor ecx, ecx
push 2
loopne 0x4884bf
js 0x488535
mov eax, edi
inc eax
cld
ror byte [ecx - 0x74bfdb84], 1
invalid
mov dword [eax - 4], 0x247c89d0
inc eax
mov eax, edi
mov dword [ebp + ecx*8 - 0x76], edx
stc
lea eax, [edx]
push edi
mov esi, eax
push esi
push dword [ebp + 0xc]
call dword [0xfe28f66c]
jmp 0x488141
retf
push esi
call dword [0xfe28f688]
mov dword [ebx], eax
xor ecx, dword [esi + 8]
mov edx, dword [esi - 0x75]
invalid
or byte [ebx - 0x742674aa], cl
ret 0x10c
or ecx, dword [edi]
test byte [ebx - 0x7c3bffff], bl
clc
or al, 0xf
test byte [esi], ch
call dword [edi + edi*8]
cmp eax, 0xd
jle 0xfc47a1d1
cmp eax, 0xf
jle 0xc4489e6b
cmp eax, 0x11
jne 0x3991a1d1
mov eax, dword [edi + 0x10]
mov dword [esp + 0x8c], eax
mov al, cl
and al, 1
mov dword [esp + 0x39490088], 8
movsx eax, al
neg eax
mov dword [esp + 0x745b0094], 0xf010
sbb eax, eax
and eax, edx
add eax, edx
mov dword [esp + 0x1c90], eax
test ecx, 0x745b0200
je 0x489e05
or eax, 0x10
mov dword [esp + 0x1c90], eax
lea eax, [esp + 0x39490088]
push eax
push esi
push 0x113f
push dword [edi + 0x34]
call dword [0xfe28f688]
test dword [ebp + 0xc], 0x745b0400
je 0x489e38
push dword [edi + 0x10]
push 2
push 0x1102
push dword [edi + 0x34]
call dword [0xfe28f688]
cmp dword [esp + 0x18], esi
je 0x48a0c7
push dword [edi + 0x34]
mov ecx, 0x4c67b0
call 0x464025f7
push eax
push dword [esp + 0x14]
call fcn.00402343
push dword [edi + 0x10]
push 9
push 0x110b
push dword [edi + 0x34]
jmp 0x74a3a0eb
invalid