liblight.so
int __fastcall light_close(int a1)
{
int v1; // r0
int v2; // r2
const char *v3; // r1
int result; // r0
int v5; // [sp+8h] [bp-A0h]
char v6; // [sp+Ch] [bp-9Ch]
v5 = 0;
v1 = sub_828(a1, &v5);
if ( !v1 )
return -1;
switch ( v5 )
{
case 0:
memset(&v6, 0, 0x80u);
_sprintf_chk(&v6, 0, 128, "/sys/class/leds/multi_leds%d/color", 0);
v2 = 60;
v3 = "1 200 1 1 1 0 0 200 0 15 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15";
return sub_700((int)&v6, (int)v3, v2);
case 1:
memset(&v6, 0, 0x80u);
_sprintf_chk(&v6, 0, 128, "/sys/class/leds/multi_leds%d/color", 1);
v2 = 96;
v3 = "1 200 1 1 1 0 0 200 0 24 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39";
return sub_700((int)&v6, (int)v3, v2);
case 2:
result = sub_760(v1, 0);
break;
default:
result = 0;
break;
}
return result;
}
int __fastcall light_show(int a1)
{
int v1; // r0
const char *v2; // r6
int v4; // r0
int v5; // [sp+8h] [bp-A0h]
char v6; // [sp+Ch] [bp-9Ch]
v5 = 0;
v1 = sub_828(a1, &v5);
v2 = (const char *)v1;
if ( !v1 )
return -1;
if ( v5 == 2 )
return sub_760(v1, 1);
memset(&v6, 0, 0x80u);
_sprintf_chk(&v6, 0, 128, "/sys/class/leds/multi_leds%d/color", v5);
v4 = strlen(v2);
return sub_700((int)&v6, (int)v2, v4);
}
int __fastcall light_set(int a1, int a2, int a3)
{
int v3; // r8
int v4; // r4
int v5; // r5
int v6; // r0
int v7; // r0
char v9[128]; // [sp+Ch] [bp-9Ch]
v3 = a3;
v4 = a1;
v5 = a2;
memset(v9, 0, 0x80u);
v6 = _strlen_chk(v9, 128);
sprintf(&v9[v6], "%llx %06x", v4, v5, v3);
v7 = _strlen_chk(v9, 128);
return sub_700((int)"/sys/class/leds/multi_leds0/led_color", (int)v9, v7);
}