Function at 0x40b1c9
Capabilities:
Encrypt data using speck

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x18
push ebx
push esi
push edi
mov dword [ebp - 8], 2
cmp byte [0x157a8f0], 1
je 0x40b348
mov dword [ebp - 4], 0
jmp 0x40b33c
fld dword [0x1579c30]
fstp dword [ebp - 0xc]
mov edi, dword [ebp - 4]
lea edi, [edi*4 + 0x1579a0c]
fld dword [ebp - 0xc]
fadd dword [edi]
fstp dword [edi]
mov edi, dword [ebp - 4]
fld qword [0x1579c28]
fcomp dword [edi*4 + 0x1579a0c]
fnstsw ax
sahf
ja 0x40b26a
call sub.CRTDLL.DLL_rand
mov edi, eax
mov ecx, 4
cdq
idiv ecx
mov dword [ebp - 0x10], edx
mov edi, dword [ebp - 4]
fldz
fstp dword [edi*4 + 0x1579a0c]
cmp dword [ebp - 0x10], 2
jle 0x40b26a
call sub.CRTDLL.DLL_rand
mov edi, eax
mov esi, dword [ebp - 4]
mov ecx, 3
cdq
idiv ecx
mov ebx, edx
mov byte [esi + 0x1579a1c], bl
mov edi, dword [ebp - 4]
cmp byte [edi + 0x1579a1c], 1
jne 0x40b2b6
push 1
mov edi, dword [ebp - 4]
fld dword [edi*4 + 0x1579a0c]
sub esp, 4
fstp dword [esp]
fld1
sub esp, 4
fstp dword [esp]
fldz
fstp dword [ebp - 0x10]
fld dword [ebp - 0x10]
sub esp, 4
fstp dword [esp]
fld dword [ebp - 0x10]
sub esp, 4
fstp dword [esp]
push edi
call fcn.00407eff
add esp, 0x18
jmp 0x40b339
mov edi, dword [ebp - 4]
cmp byte [edi + 0x1579a1c], 2
jne 0x40b2ff
push 1
mov edi, dword [ebp - 4]
fld dword [edi*4 + 0x1579a0c]
sub esp, 4
fstp dword [esp]
fldz
fstp dword [ebp - 0x14]
fld dword [ebp - 0x14]
sub esp, 4
fstp dword [esp]
fld dword [ebp - 0x14]
sub esp, 4
fstp dword [esp]
fld1
sub esp, 4
fstp dword [esp]
push edi
call fcn.00407eff
add esp, 0x18
jmp 0x40b339
push 1
mov edi, dword [ebp - 4]
fld dword [edi*4 + 0x1579a0c]
sub esp, 4
fstp dword [esp]
fldz
fstp dword [ebp - 0x18]
fld dword [ebp - 0x18]
sub esp, 4
fstp dword [esp]
fld1
sub esp, 4
fstp dword [esp]
fld dword [ebp - 0x18]
sub esp, 4
fstp dword [esp]
push edi
call fcn.00407eff
add esp, 0x18
inc dword [ebp - 4]
mov edi, dword [ebp - 8]
cmp dword [ebp - 4], edi
jl 0x40b1f2
cmp byte [0x1579790], 0
jne 0x40b4c8
call sub.CRTDLL.DLL_rand
mov edi, eax
mov ecx, 0x3c
cdq
idiv ecx
mov dword [ebp - 0xc], edx
cmp dword [ebp - 0xc], 0
jne 0x40b3c3
call sub.CRTDLL.DLL_rand
mov edi, eax
mov ecx, 3
cdq
idiv ecx
mov ebx, edx
mov byte [0x1579a20], bl
call sub.CRTDLL.DLL_rand
mov edi, eax
call sub.CRTDLL.DLL_rand
mov esi, eax
mov eax, edi
cdq
xor eax, edx
sub eax, edx
and eax, 1
xor eax, edx
sub eax, edx
mov edx, eax
mov edi, edx
shl edi, 1
sub edi, 1
mov eax, esi
mov ecx, 3
cdq
idiv ecx
mov esi, edx
add esi, 1
mov ebx, edi
imul ebx, esi
mov byte [0x1579a21], bl
cmp byte [0x1579a20], 0
jne 0x40b417
push 0
fld qword [0x1579c20]
movsx edi, byte [0x1579a21]
push edi
fild dword [esp]
add esp, 4
fmulp st(1)
sub esp, 4
fstp dword [esp]
fldz
fstp dword [ebp - 0x10]
fld dword [ebp - 0x10]
sub esp, 4
fstp dword [esp]
fld dword [ebp - 0x10]
sub esp, 4
fstp dword [esp]
fld dword [0x1579c1c]
sub esp, 4
fstp dword [esp]
push 7
call fcn.00407eff
add esp, 0x18
cmp byte [0x1579a20], 1
jne 0x40b46b
push 0
fld qword [0x1579c20]
movsx edi, byte [0x1579a21]
push edi
fild dword [esp]
add esp, 4
fmulp st(1)
sub esp, 4
fstp dword [esp]
fldz
fstp dword [ebp - 0x14]
fld dword [ebp - 0x14]
sub esp, 4
fstp dword [esp]
fld dword [0x1579c1c]
sub esp, 4
fstp dword [esp]
fld dword [ebp - 0x14]
sub esp, 4
fstp dword [esp]
push 7
call fcn.00407eff
add esp, 0x18
cmp byte [0x1579a20], 2
jne 0x40b7af
push 0
fld qword [0x1579c20]
movsx edi, byte [0x1579a21]
push edi
fild dword [esp]
add esp, 4
fmulp st(1)
sub esp, 4
fstp dword [esp]
fld dword [0x1579c1c]
sub esp, 4
fstp dword [esp]
fldz
fstp dword [ebp - 0x18]
fld dword [ebp - 0x18]
sub esp, 4
fstp dword [esp]
fld dword [ebp - 0x18]
sub esp, 4
fstp dword [esp]
push 7
call fcn.00407eff
add esp, 0x18
jmp 0x40b7af
cmp byte [0x1579790], 1
jne 0x40b573
call sub.CRTDLL.DLL_rand
mov edi, eax
cdq
xor eax, edx
sub eax, edx
and eax, 1
xor eax, edx
sub eax, edx
mov edx, eax
mov ebx, edx
mov byte [0x1579a08], bl
push 1
fldz
fstp dword [ebp - 0xc]
fld dword [ebp - 0xc]
sub esp, 4
fstp dword [esp]
fld dword [ebp - 0xc]
sub esp, 4
fstp dword [esp]
fld dword [ebp - 0xc]
sub esp, 4
fstp dword [esp]
fld1
sub esp, 4
fstp dword [esp]
push 7
call fcn.00407eff
add esp, 0x18
push 0
fld dword [0x1579c18]
sub esp, 4
fstp dword [esp]
fldz
fstp dword [ebp - 0x10]
fld dword [ebp - 0x10]
sub esp, 4
fstp dword [esp]
fld1
sub esp, 4
fstp dword [esp]
fld dword [ebp - 0x10]
sub esp, 4
fstp dword [esp]
push 7
call fcn.00407eff
add esp, 0x18
mov dword [0x1579a04], 0
mov byte [0x1579790], 2
jmp 0x40b7af
cmp byte [0x1579790], 2
jne 0x40b636
cmp byte [0x1579a08], 0
jne 0x40b5c2
push 0
fld dword [0x1579c30]
sub esp, 4
fstp dword [esp]
fldz
fstp dword [ebp - 0xc]
fld dword [ebp - 0xc]
sub esp, 4
fstp dword [esp]
fld1
sub esp, 4
fstp dword [esp]
fld dword [ebp - 0xc]
sub esp, 4
fstp dword [esp]
push 7
call fcn.00407eff
add esp, 0x18
jmp 0x40b5f9
push 0
fld dword [0x1579c14]
sub esp, 4
fstp dword [esp]
fldz
fstp dword [ebp - 0x10]
fld dword [ebp - 0x10]
sub esp, 4
fstp dword [esp]
fld1
sub esp, 4
fstp dword [esp]
fld dword [ebp - 0x10]
sub esp, 4
fstp dword [esp]
push 7
call fcn.00407eff
add esp, 0x18
inc dword [0x1579a04]
mov edi, dword [0x1579a04]
cmp edi, 0x46
jge 0x40b620
cmp byte [0x1579a08], 1
jne 0x40b7af
cmp edi, 0x23
jl 0x40b7af
mov byte [0x1579790], 3
mov dword [0x1579a04], 0
jmp 0x40b7af
cmp byte [0x1579790], 3
jne 0x40b6f9
cmp byte [0x1579a08], 0
jne 0x40b685
push 0
fld dword [0x1579c10]
sub esp, 4
fstp dword [esp]
fldz
fstp dword [ebp - 0xc]
fld dword [ebp - 0xc]
sub esp, 4
fstp dword [esp]
fld dword [ebp - 0xc]
sub esp, 4
fstp dword [esp]
fld1
sub esp, 4
fstp dword [esp]
push 7
call fcn.00407eff
add esp, 0x18
jmp 0x40b6bc
push 0
fld dword [0x1579c0c]
sub esp, 4
fstp dword [esp]
fldz
fstp dword [ebp - 0x10]
fld dword [ebp - 0x10]
sub esp, 4
fstp dword [esp]
fld dword [ebp - 0x10]
sub esp, 4
fstp dword [esp]
fld1
sub esp, 4
fstp dword [esp]
push 7
call fcn.00407eff
add esp, 0x18
inc dword [0x1579a04]
mov edi, dword [0x1579a04]
cmp edi, 0x34
jg 0x40b6e3
cmp byte [0x1579a08], 1
jne 0x40b7af
cmp edi, 0x1a
jl 0x40b7af
mov byte [0x1579790], 4
mov dword [0x1579a04], 0
jmp 0x40b7af
cmp byte [0x1579790], 4
jne 0x40b7af
cmp byte [0x1579a08], 0
jne 0x40b748
push 0
fld dword [0x1579c0c]
sub esp, 4
fstp dword [esp]
fld1
sub esp, 4
fstp dword [esp]
fldz
fstp dword [ebp - 0xc]
fld dword [ebp - 0xc]
sub esp, 4
fstp dword [esp]
fld dword [ebp - 0xc]
sub esp, 4
fstp dword [esp]
push 7
call fcn.00407eff
add esp, 0x18
jmp 0x40b77f
push 0
fld dword [0x1579c08]
sub esp, 4
fstp dword [esp]
fld1
sub esp, 4
fstp dword [esp]
fldz
fstp dword [ebp - 0x10]
fld dword [ebp - 0x10]
sub esp, 4
fstp dword [esp]
fld dword [ebp - 0x10]
sub esp, 4
fstp dword [esp]
push 7
call fcn.00407eff
add esp, 0x18
inc dword [0x1579a04]
mov edi, dword [0x1579a04]
cmp edi, 0x2d
jg 0x40b79e
cmp byte [0x1579a08], 1
jne 0x40b7af
cmp edi, 0x17
jle 0x40b7af
mov dword [0x1579a04], 0
mov byte [0x1579790], 0
pop edi
pop esi
pop ebx
leave
ret