[*] Binary protection state of basic-device-info

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


[*] Function system tear down of basic-device-info

    ; assembly                           | /* r2dec pseudo code output */
                                         | /* /logs/firmware/unblob_extracted/firmware_extract/4325012-58052244.squashfs_v4_le_extract/usr/sbin/basic-device-info @ 0x2f2c */
                                         | #include <stdint.h>
                                         |  
    ; (fcn) sym.bdi_dbus_init ()         | void bdi_dbus_init () {
    0x00002f2c lui gp, 2                 |     
    0x00002f30 addiu gp, gp, -0x3efc     |     
    0x00002f34 addu gp, gp, t9           |     gp += t9;
    0x00002f38 addiu sp, sp, -0x38       |     
    0x00002f3c lw t9, -0x7ed0(gp)        |     t9 = sym.imp.sd_bus_open_system
    0x00002f40 sw s1, 0x24(sp)           |     *(var_24h) = s1;
    0x00002f44 lw s1, -0x7fd0(gp)        |     s1 = *((gp - 8180));
    0x00002f48 sw gp, 0x18(sp)           |     *(var_18h) = gp;
    0x00002f4c sw s4, 0x30(sp)           |     *(var_30h) = s4;
    0x00002f50 sw ra, 0x34(sp)           |     *(var_34h) = ra;
    0x00002f54 sw s3, 0x2c(sp)           |     *(var_2ch) = s3;
    0x00002f58 sw s2, 0x28(sp)           |     *(var_28h) = s2;
    0x00002f5c sw s0, 0x20(sp)           |     *(var_20h) = s0;
    0x00002f60 move s4, a0               |     s4 = a0;
    0x00002f64 addiu a0, s1, 0x7254      |     a0 = s1 + 0x7254;
    0x00002f68 jalr t9                   |     t9 ();
    0x00002f6c lw gp, 0x18(sp)           |     gp = *(var_18h);
                                         |     if (v0 >= 0) {
    0x00002f70 bltz v0, 0x3070           |         
    0x00002f74 lw v0, -0x7fd0(gp)        |         v0 = *((gp - 8180));
    0x00002f78 lw s2, -0x7fd8(gp)        |         s2 = *((gp - 8182));
    0x00002f7c lw s3, -0x7fd8(gp)        |         s3 = *((gp - 8182));
    0x00002f80 lw t9, -0x7f4c(gp)        |         t9 = sym.imp.sd_bus_add_object_vtable;
    0x00002f84 addiu v0, v0, 0x6f80      |         v0 += 0x6f80;
    0x00002f88 lw a0, 0x7254(s1)         |         a0 = *((s1 + 7317));
    0x00002f8c sw zero, 0x14(sp)         |         *(var_14h) = 0;
    0x00002f90 sw v0, 0x10(sp)           |         *(var_10h) = v0;
    0x00002f94 addiu a3, s2, 0x5af0      |         a3 = s2 + str.com.axis.BasicDeviceInfo1;
    0x00002f98 addiu a2, s3, 0x5b0c      |         a2 = s3 + str._com_axis_BasicDeviceInfo1;
    0x00002f9c move a1, zero             |         a1 = 0;
    0x00002fa0 jalr t9                   |         t9 ();
    0x00002fa4 move s0, v0               |         s0 = v0;
    0x00002fa8 lw gp, 0x18(sp)           |         gp = *(var_18h);
                                         |         if (v0 < 0) {
    0x00002fac bltz v0, 0x3118           |             goto label_1;
                                         |         }
    0x00002fb0 lw a0, -0x7fd8(gp)        |         a0 = *((gp - 8182));
    0x00002fb4 lw t9, -0x7f68(gp)        |         t9 = sym.imp.g_file_test;
    0x00002fb8 addiu a1, zero, 0x10      |         a1 = 0x10;
    0x00002fbc addiu a0, a0, 0x5b4c      |         a0 += str._usr_lib_legacyconfig;
    0x00002fc0 jalr t9                   |         t9 ();
    0x00002fc4 lw gp, 0x18(sp)           |         gp = *(var_18h);
                                         |         if (v0 != 0) {
    0x00002fc8 beqz v0, 0x3004           |             
    0x00002fcc lw v0, -0x7fd0(gp)        |             v0 = *((gp - 8180));
    0x00002fd0 lw a3, -0x7fd8(gp)        |             a3 = *((gp - 8182));
    0x00002fd4 lw t9, -0x7f4c(gp)        |             t9 = sym.imp.sd_bus_add_object_vtable;
    0x00002fd8 addiu v0, v0, 0x6d80      |             v0 += 0x6d80;
    0x00002fdc lw a0, 0x7254(s1)         |             a0 = *((s1 + 7317));
    0x00002fe0 sw zero, 0x14(sp)         |             *(var_14h) = 0;
    0x00002fe4 sw v0, 0x10(sp)           |             *(var_10h) = v0;
    0x00002fe8 addiu a3, a3, 0x5b64      |             a3 += str.com.axis.Configuration.Legacy;
    0x00002fec addiu a2, s3, 0x5b0c      |             a2 = s3 + str._com_axis_BasicDeviceInfo1;
    0x00002ff0 move a1, zero             |             a1 = 0;
    0x00002ff4 jalr t9                   |             t9 ();
    0x00002ff8 move s0, v0               |             s0 = v0;
    0x00002ffc lw gp, 0x18(sp)           |             gp = *(var_18h);
                                         |             if (v0 < 0) {
    0x00003000 bltz v0, 0x3190           |                 goto label_2;
                                         |             }
                                         |         }
    0x00003004 lw t9, -0x7f18(gp)        |         t9 = sym.imp.sd_bus_request_name;
    0x00003008 lw a0, 0x7254(s1)         |         a0 = *((s1 + 7317));
    0x0000300c move a2, zero             |         a2 = 0;
    0x00003010 move a3, zero             |         a3 = 0;
    0x00003014 addiu a1, s2, 0x5af0      |         a1 = s2 + str.com.axis.BasicDeviceInfo1;
    0x00003018 jalr t9                   |         t9 ();
    0x0000301c move s0, v0               |         s0 = v0;
    0x00003020 lw gp, 0x18(sp)           |         gp = *(var_18h);
                                         |         if (v0 < 0) {
    0x00003024 bltz v0, 0x30dc           |             goto label_3;
                                         |         }
    0x00003028 lw t9, -0x7f14(gp)        |         t9 = sym.imp.sd_bus_attach_event;
    0x0000302c lw a0, 0x7254(s1)         |         a0 = *((s1 + 7317));
    0x00003030 move a2, zero             |         a2 = 0;
    0x00003034 move a1, s4               |         a1 = s4;
    0x00003038 jalr t9                   |         t9 ();
    0x0000303c move s0, v0               |         s0 = v0;
    0x00003040 lw gp, 0x18(sp)           |         gp = *(var_18h);
                                         |         if (v0 < 0) {
    0x00003044 bltz v0, 0x3154           |             goto label_4;
                                         |         }
    0x00003048 lw ra, 0x34(sp)           |         ra = *(var_34h);
    0x0000304c move s0, zero             |         s0 = 0;
    0x00003050 move v0, s0               |         v0 = s0;
    0x00003054 lw s4, 0x30(sp)           |         s4 = *(var_30h);
    0x00003058 lw s3, 0x2c(sp)           |         s3 = *(var_2ch);
    0x0000305c lw s2, 0x28(sp)           |         s2 = *(var_28h);
    0x00003060 lw s1, 0x24(sp)           |         s1 = *(var_24h);
    0x00003064 lw s0, 0x20(sp)           |         s0 = *(var_20h);
    0x00003068 addiu sp, sp, 0x38        |         
    0x0000306c jr ra                     |         return v0;
                                         |     }
    0x00003070 lw t9, -0x7e24(gp)        |     t9 = sym.imp.strerror;
    0x00003074 negu a0, v0               |     __asm ("negu a0, v0");
    0x00003078 move s0, v0               |     s0 = v0;
    0x0000307c jalr t9                   |     t9 ();
    0x00003080 lw gp, 0x18(sp)           |     gp = *(var_18h);
    0x00003084 sw v0, 0x10(sp)           |     *(var_10h) = v0;
    0x00003088 addiu a1, zero, 0x100     |     a1 = 0x100;
    0x0000308c lw a3, -0x7fd8(gp)        |     a3 = *((gp - 8182));
    0x00003090 lw a2, -0x7fd8(gp)        |     a2 = *((gp - 8182));
    0x00003094 lw t9, -0x7f5c(gp)        |     t9 = sym.imp.g_log;
    0x00003098 addiu a3, a3, 0x62cc      |     a3 += 0x62cc;
    0x0000309c addiu a2, a2, 0x5ac4      |     a2 += str._sFailed_to_connect_to_the_system_bus:__s
    0x000030a0 move a0, zero             |     a0 = 0;
    0x000030a4 jalr t9                   |     t9 ();
    0x000030a8 lw gp, 0x18(sp)           |     gp = *(var_18h);
                                         |     do {
                                         | label_0:
    0x000030ac lw t9, -0x7eec(gp)        |         t9 = sym.imp.sd_bus_unref;
    0x000030b0 lw a0, 0x7254(s1)         |         a0 = *((s1 + 7317));
    0x000030b4 jalr t9                   |         t9 ();
    0x000030b8 lw ra, 0x34(sp)           |         ra = *(var_34h);
    0x000030bc move v0, s0               |         v0 = s0;
    0x000030c0 lw s4, 0x30(sp)           |         s4 = *(var_30h);
    0x000030c4 lw s3, 0x2c(sp)           |         s3 = *(var_2ch);
    0x000030c8 lw s2, 0x28(sp)           |         s2 = *(var_28h);
    0x000030cc lw s1, 0x24(sp)           |         s1 = *(var_24h);
    0x000030d0 lw s0, 0x20(sp)           |         s0 = *(var_20h);
    0x000030d4 addiu sp, sp, 0x38        |         
    0x000030d8 jr ra                     |         return v0;
                                         | label_3:
    0x000030dc lw t9, -0x7e24(gp)        |         t9 = sym.imp.strerror;
    0x000030e0 negu a0, v0               |         __asm ("negu a0, v0");
    0x000030e4 jalr t9                   |         t9 ();
    0x000030e8 lw gp, 0x18(sp)           |         gp = *(var_18h);
    0x000030ec sw v0, 0x10(sp)           |         *(var_10h) = v0;
    0x000030f0 addiu a1, zero, 0x100     |         a1 = 0x100;
    0x000030f4 lw a3, -0x7fd8(gp)        |         a3 = *((gp - 8182));
    0x000030f8 lw a2, -0x7fd8(gp)        |         a2 = *((gp - 8182));
    0x000030fc lw t9, -0x7f5c(gp)        |         t9 = sym.imp.g_log;
    0x00003100 addiu a3, a3, 0x62cc      |         a3 += 0x62cc;
    0x00003104 addiu a2, a2, 0x5bb0      |         a2 += str._sFailed_to_acquire_service_name:__s;
    0x00003108 move a0, zero             |         a0 = 0;
    0x0000310c jalr t9                   |         t9 ();
    0x00003110 lw gp, 0x18(sp)           |         gp = *(var_18h);
    0x00003114 b 0x30ac                  |         
                                         |     } while (1);
                                         | label_1:
    0x00003118 lw t9, -0x7e24(gp)        |     t9 = sym.imp.strerror;
    0x0000311c negu a0, v0               |     __asm ("negu a0, v0");
    0x00003120 jalr t9                   |     t9 ();
    0x00003124 lw gp, 0x18(sp)           |     gp = *(var_18h);
    0x00003128 sw v0, 0x10(sp)           |     *(var_10h) = v0;
    0x0000312c addiu a1, zero, 0x100     |     a1 = 0x100;
    0x00003130 lw a3, -0x7fd8(gp)        |     a3 = *((gp - 8182));
    0x00003134 lw a2, -0x7fd8(gp)        |     a2 = *((gp - 8182));
    0x00003138 lw t9, -0x7f5c(gp)        |     t9 = sym.imp.g_log;
    0x0000313c addiu a3, a3, 0x62cc      |     a3 += 0x62cc;
    0x00003140 addiu a2, a2, 0x5b28      |     a2 += str._sFailed_to_register_bus_object:__s;
    0x00003144 move a0, zero             |     a0 = 0;
    0x00003148 jalr t9                   |     t9 ();
    0x0000314c lw gp, 0x18(sp)           |     gp = *(var_18h);
    0x00003150 b 0x30ac                  |     goto label_0;
                                         | label_4:
    0x00003154 lw t9, -0x7e24(gp)        |     t9 = sym.imp.strerror;
    0x00003158 negu a0, v0               |     __asm ("negu a0, v0");
    0x0000315c jalr t9                   |     t9 ();
    0x00003160 lw gp, 0x18(sp)           |     gp = *(var_18h);
    0x00003164 sw v0, 0x10(sp)           |     *(var_10h) = v0;
    0x00003168 addiu a1, zero, 0x100     |     a1 = 0x100;
    0x0000316c lw a3, -0x7fd8(gp)        |     a3 = *((gp - 8182));
    0x00003170 lw a2, -0x7fd8(gp)        |     a2 = *((gp - 8182));
    0x00003174 lw t9, -0x7f5c(gp)        |     t9 = sym.imp.g_log;
    0x00003178 addiu a3, a3, 0x62cc      |     a3 += 0x62cc;
    0x0000317c addiu a2, a2, 0x5bd8      |     a2 += str._sFailed_to_attach_bus_to_event_loop:__s;
    0x00003180 move a0, zero             |     a0 = 0;
    0x00003184 jalr t9                   |     t9 ();
    0x00003188 lw gp, 0x18(sp)           |     gp = *(var_18h);
    0x0000318c b 0x30ac                  |     goto label_0;
                                         | label_2:
    0x00003190 lw t9, -0x7e24(gp)        |     t9 = sym.imp.strerror;
    0x00003194 negu a0, v0               |     __asm ("negu a0, v0");
    0x00003198 jalr t9                   |     t9 ();
    0x0000319c lw gp, 0x18(sp)           |     gp = *(var_18h);
    0x000031a0 sw v0, 0x10(sp)           |     *(var_10h) = v0;
    0x000031a4 addiu a1, zero, 0x100     |     a1 = 0x100;
    0x000031a8 lw a3, -0x7fd8(gp)        |     a3 = *((gp - 8182));
    0x000031ac lw a2, -0x7fd8(gp)        |     a2 = *((gp - 8182));
    0x000031b0 lw t9, -0x7f5c(gp)        |     t9 = sym.imp.g_log;
    0x000031b4 addiu a3, a3, 0x62cc      |     a3 += 0x62cc;
    0x000031b8 addiu a2, a2, 0x5b84      |     a2 += str._sFailed_to_register_legacy_bus_object:__s;
    0x000031bc move a0, zero             |     a0 = 0;
    0x000031c0 jalr t9                   |     t9 ();
    0x000031c4 lw gp, 0x18(sp)           |     gp = *(var_18h);
    0x000031c8 b 0x30ac                  |     goto label_0;
                                         | }

[*] Function system used 3 times basic-device-info