[*] Binary protection state of usage-statistics

  
  	Full RELRO     Canary found      NX disabled  PIE enabled  No RPATH     No RUNPATH   No Symbols


[*] Function sprintf tear down of usage-statistics

    ; assembly                                           | /* r2dec pseudo code output */
                                                         | /* /logs/firmware/unblob_extracted/firmware_extract/4325012-58052244.squashfs_v4_le_extract/usr/sbin/usage-statistics @ 0x2b40 */
                                                         | #include <stdint.h>
                                                         |  
    ; (fcn) sym.bus_async_unregister_and_exit ()         | void bus_async_unregister_and_exit () {
    0x00002b40 lui gp, 2                                 |     
    0x00002b44 addiu gp, gp, -0x6b30                     |     
    0x00002b48 addu gp, gp, t9                           |     gp += t9;
    0x00002b4c addiu sp, sp, -0x50                       |     
    0x00002b50 sw s1, 0x40(sp)                           |     *(var_40h) = s1;
    0x00002b54 lw s1, -0x7f48(gp)                        |     s1 = *((gp - 8146));
    0x00002b58 sw gp, 0x18(sp)                           |     *(var_18h) = gp;
    0x00002b5c sw ra, 0x4c(sp)                           |     *(var_4ch) = ra;
    0x00002b60 lw v0, (s1)                               |     v0 = *(s1);
    0x00002b64 sw s3, 0x48(sp)                           |     *(var_48h) = s3;
    0x00002b68 sw s2, 0x44(sp)                           |     *(var_44h) = s2;
    0x00002b6c sw s0, 0x3c(sp)                           |     *(var_3ch) = s0;
    0x00002b70 sw v0, 0x34(sp)                           |     *(var_34h) = v0;
    0x00002b74 sw zero, 0x2c(sp)                         |     *(var_2ch) = 0;
                                                         |     if (a0 == 0) {
    0x00002b78 beqz a0, 0x2c58                           |         goto label_0;
                                                         |     }
    0x00002b7c move s0, a1                               |     s0 = a1;
                                                         |     if (a1 == 0) {
    0x00002b80 beqz a1, 0x2c80                           |         goto label_1;
                                                         |     }
    0x00002b84 move s2, a2                               |     s2 = a2;
                                                         |     if (a2 == 0) {
    0x00002b88 beqz a2, 0x2cac                           |         goto label_2;
                                                         |     }
    0x00002b8c lw t9, -0x7f4c(gp)                        |     t9 = sym.imp.sd_bus_get_unique_name;
    0x00002b90 move s3, a0                               |     s3 = a0;
    0x00002b94 addiu a1, sp, 0x30                        |     a1 = sp + 0x30;
    0x00002b98 move a0, s0                               |     a0 = s0;
    0x00002b9c jalr t9                                   |     t9 ();
    0x00002ba0 lw gp, 0x18(sp)                           |     gp = *(var_18h);
                                                         |     if (v0 < 0) {
    0x00002ba4 bltz v0, 0x2c18                           |         goto label_3;
                                                         |     }
    0x00002ba8 lw a2, -0x7fdc(gp)                        |     a2 = *((gp - 8183));
    0x00002bac lw v0, 0x30(sp)                           |     v0 = *(var_30h_3);
    0x00002bb0 lw t9, -0x7f14(gp)                        |     t9 = sym.imp.__asprintf_chk
    0x00002bb4 sw v0, 0x10(sp)                           |     *(var_10h) = v0;
    0x00002bb8 move a3, s2                               |     a3 = s2;
    0x00002bbc addiu a2, a2, 0x3b24                      |     a2 += str.senderorg.freedesktop.DBus_typesignal_interfaceorg.freedesktop.DBus_memberNameOwnerChanged_path_org_freedesktop_DBus_arg0_s_arg1_s_arg2;
    0x00002bc0 addiu a1, zero, 1                         |     a1 = 1;
    0x00002bc4 addiu a0, sp, 0x2c                        |     a0 = sp + 0x2c;
    0x00002bc8 jalr t9                                   |     t9 ();
    0x00002bcc lw gp, 0x18(sp)                           |     gp = *(var_18h);
                                                         |     if (v0 < 0) {
    0x00002bd0 bltz v0, 0x2cd8                           |         goto label_4;
                                                         |     }
    0x00002bd4 lw a3, -0x7fdc(gp)                        |     a3 = *((gp - 8183));
    0x00002bd8 lw t9, -0x7ef4(gp)                        |     t9 = sym.imp.sd_bus_add_match;
    0x00002bdc lw a2, 0x2c(sp)                           |     a2 = *(var_2ch);
    0x00002be0 sw s3, 0x10(sp)                           |     *(var_10h) = s3;
    0x00002be4 addiu a3, a3, 0x2a80                      |     a3 += 0x2a80;
    0x00002be8 move a1, zero                             |     a1 = 0;
    0x00002bec move a0, s0                               |     a0 = s0;
    0x00002bf0 jalr t9                                   |     t9 ();
    0x00002bf4 lw gp, 0x18(sp)                           |     gp = *(var_18h);
                                                         |     if (v0 < 0) {
    0x00002bf8 bltz v0, 0x2c18                           |         goto label_3;
                                                         |     }
    0x00002bfc lw t9, -0x7fa8(gp)                        |     t9 = sym.imp.sd_bus_release_name;
    0x00002c00 move a1, s2                               |     a1 = s2;
    0x00002c04 move a0, s0                               |     a0 = s0;
    0x00002c08 jalr t9                                   |     t9 ();
    0x00002c0c slti v1, v0, 1                            |     v1 = (v0 < 1) ? 1 : 0;
    0x00002c10 lw gp, 0x18(sp)                           |     gp = *(var_18h);
    0x00002c14 movz v0, zero, v1                         |     v0 = 0;
                                                         |     while (1) {
                                                         | label_3:
    0x00002c18 lw t9, -0x7f00(gp)                        |         t9 = sym.imp.free;
    0x00002c1c lw a0, 0x2c(sp)                           |         a0 = *(var_2ch);
    0x00002c20 sw v0, 0x24(sp)                           |         *(var_24h) = v0;
    0x00002c24 jalr t9                                   |         t9 ();
    0x00002c28 lw a0, 0x34(sp)                           |         a0 = *(var_34h);
    0x00002c2c lw v1, (s1)                               |         v1 = *(s1);
    0x00002c30 lw gp, 0x18(sp)                           |         gp = *(var_18h);
    0x00002c34 lw v0, 0x24(sp)                           |         v0 = *(var_24h);
                                                         |         if (a0 != v1) {
    0x00002c38 bne a0, v1, 0x2ce0                        |             goto label_5;
                                                         |         }
    0x00002c3c lw ra, 0x4c(sp)                           |         ra = *(var_4ch);
    0x00002c40 lw s3, 0x48(sp)                           |         s3 = *(var_48h);
    0x00002c44 lw s2, 0x44(sp)                           |         s2 = *(var_44h);
    0x00002c48 lw s1, 0x40(sp)                           |         s1 = *(var_40h);
    0x00002c4c lw s0, 0x3c(sp)                           |         s0 = *(var_3ch);
    0x00002c50 addiu sp, sp, 0x50                        |         
    0x00002c54 jr ra                                     |         return v0;
                                                         | label_0:
    0x00002c58 lw v0, -0x7fdc(gp)                        |         v0 = *((gp - 8183));
    0x00002c5c lw a3, -0x7fdc(gp)                        |         a3 = *((gp - 8183));
    0x00002c60 lw a1, -0x7fdc(gp)                        |         a1 = *((gp - 8183));
    0x00002c64 addiu v0, v0, 0x37b8                      |         v0 += 0x37b8;
    0x00002c68 lw t9, -0x7efc(gp)                        |         t9 = sym.imp.g_assertion_message_expr;
    0x00002c6c sw v0, 0x10(sp)                           |         *(var_10h) = v0;
    0x00002c70 addiu a3, a3, 0x3c08                      |         a3 += str.bus_async_unregister_and_exit;
    0x00002c74 addiu a2, zero, 0x2a                      |         a2 = 0x2a;
    0x00002c78 addiu a1, a1, 0x3b10                      |         a1 += str.bus_util.c;
    0x00002c7c jalr t9                                   |         t9 ();
                                                         | label_1:
    0x00002c80 lw v0, -0x7fdc(gp)                        |         v0 = *((gp - 8183));
    0x00002c84 lw a3, -0x7fdc(gp)                        |         a3 = *((gp - 8183));
    0x00002c88 lw a1, -0x7fdc(gp)                        |         a1 = *((gp - 8183));
    0x00002c8c addiu v0, v0, 0x34bc                      |         v0 += 0x34bc;
    0x00002c90 lw t9, -0x7efc(gp)                        |         t9 = sym.imp.g_assertion_message_expr;
    0x00002c94 sw v0, 0x10(sp)                           |         *(var_10h) = v0;
    0x00002c98 addiu a3, a3, 0x3c08                      |         a3 += str.bus_async_unregister_and_exit;
    0x00002c9c addiu a2, zero, 0x2b                      |         a2 = 0x2b;
    0x00002ca0 addiu a1, a1, 0x3b10                      |         a1 += str.bus_util.c;
    0x00002ca4 move a0, zero                             |         a0 = 0;
    0x00002ca8 jalr t9                                   |         t9 ();
                                                         | label_2:
    0x00002cac lw v0, -0x7fdc(gp)                        |         v0 = *((gp - 8183));
    0x00002cb0 lw a3, -0x7fdc(gp)                        |         a3 = *((gp - 8183));
    0x00002cb4 lw a1, -0x7fdc(gp)                        |         a1 = *((gp - 8183));
    0x00002cb8 addiu v0, v0, 0x3b1c                      |         v0 += str.name;
    0x00002cbc lw t9, -0x7efc(gp)                        |         t9 = sym.imp.g_assertion_message_expr;
    0x00002cc0 sw v0, 0x10(sp)                           |         *(var_10h) = v0;
    0x00002cc4 addiu a3, a3, 0x3c08                      |         a3 += str.bus_async_unregister_and_exit;
    0x00002cc8 addiu a2, zero, 0x2c                      |         a2 = 0x2c;
    0x00002ccc addiu a1, a1, 0x3b10                      |         a1 += str.bus_util.c;
    0x00002cd0 move a0, zero                             |         a0 = 0;
    0x00002cd4 jalr t9                                   |         t9 ();
                                                         | label_4:
    0x00002cd8 addiu v0, zero, -0xc                      |         v0 = -0xc;
    0x00002cdc b 0x2c18                                  |         
                                                         |     }
                                                         | label_5:
    0x00002ce0 lw t9, -0x7f60(gp)                        |     t9 = sym.imp.__stack_chk_fail;
    0x00002ce4 jalr t9                                   |     t9 ();
    0x00002ce8 nop                                       |     
                                                         | }

[*] Function sprintf used 2 times usage-statistics