[*] Binary protection state of vision-devices

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


[*] Function system tear down of vision-devices

    ; assembly                           | /* r2dec pseudo code output */
                                         | /* /logs/firmware/unblob_extracted/firmware_extract/4325012-58052244.squashfs_v4_le_extract/usr/bin/vision-devices @ 0x1060 */
                                         | #include <stdint.h>
                                         |  
    ; (fcn) main ()                      | int32_t main () {
                                         |     /* [13] -r-x section size 4832 named .text */
    0x00001060 lui gp, 2                 |     
    0x00001064 addiu gp, gp, -0x6050     |     
    0x00001068 addu gp, gp, t9           |     gp += t9;
    0x0000106c addiu sp, sp, -0xd8       |     
    0x00001070 lw t9, -0x7f6c(gp)        |     t9 = sym.imp.ax_log_syslog;
    0x00001074 sw s4, 0xc8(sp)           |     *(var_c8h) = s4;
    0x00001078 lw s4, -0x7f68(gp)        |     s4 = *((gp - 8154));
    0x0000107c sw gp, 0x18(sp)           |     *(var_18h) = gp;
    0x00001080 sw ra, 0xd4(sp)           |     *(var_d4h) = ra;
    0x00001084 lw v0, (s4)               |     v0 = *(s4);
    0x00001088 sw s6, 0xd0(sp)           |     *(var_d0h) = s6;
    0x0000108c sw v0, 0xb4(sp)           |     *(var_b4h) = v0;
    0x00001090 sw s5, 0xcc(sp)           |     *(var_cch) = s5;
    0x00001094 sw s3, 0xc4(sp)           |     *(var_c4h) = s3;
    0x00001098 sw s2, 0xc0(sp)           |     *(var_c0h) = s2;
    0x0000109c sw s1, 0xbc(sp)           |     *(var_bch) = s1;
    0x000010a0 sw s0, 0xb8(sp)           |     *(var_b8h) = s0;
    0x000010a4 jalr t9                   |     t9 ();
    0x000010a8 nop                       |     
    0x000010ac lw gp, 0x18(sp)           |     gp = *(var_18h);
    0x000010b0 addiu a0, sp, 0x2c        |     a0 = sp + 0x2c;
    0x000010b4 lw t9, -0x7f0c(gp)        |     t9 = sym.imp.sigemptyset;
    0x000010b8 sw zero, 0x24(sp)         |     *(var_24h) = 0;
    0x000010bc jalr t9                   |     t9 ();
    0x000010c0 lw gp, 0x18(sp)           |     gp = *(var_18h);
                                         |     if (v0 < 0) {
    0x000010c4 bltz v0, 0x16ec           |         goto label_9;
                                         |     }
    0x000010c8 lw v0, -0x7fd8(gp)        |     v0 = *((gp - 8182));
    0x000010cc lw t9, -0x7f50(gp)        |     t9 = sym.imp.sigaction;
    0x000010d0 addiu v0, v0, 0x18d0      |     v0 += 0x18d0;
    0x000010d4 addiu s0, sp, 0x24        |     s0 = sp + 0x24;
    0x000010d8 move a2, zero             |     a2 = 0;
    0x000010dc move a1, s0               |     a1 = s0;
    0x000010e0 addiu a0, zero, 1         |     a0 = 1;
    0x000010e4 sw v0, 0x28(sp)           |     *(var_28h) = v0;
    0x000010e8 jalr t9                   |     t9 ();
    0x000010ec lw gp, 0x18(sp)           |     gp = *(var_18h);
                                         |     if (v0 < 0) {
    0x000010f0 bltz v0, 0x16bc           |         goto label_10;
                                         |     }
    0x000010f4 lw t9, -0x7f50(gp)        |     t9 = sym.imp.sigaction;
    0x000010f8 move a2, zero             |     a2 = 0;
    0x000010fc move a1, s0               |     a1 = s0;
    0x00001100 addiu a0, zero, 2         |     a0 = 2;
    0x00001104 jalr t9                   |     t9 ();
    0x00001108 lw gp, 0x18(sp)           |     gp = *(var_18h);
                                         |     if (v0 < 0) {
    0x0000110c bltz v0, 0x1708           |         goto label_11;
                                         |     }
    0x00001110 lw t9, -0x7f50(gp)        |     t9 = sym.imp.sigaction;
    0x00001114 move a2, zero             |     a2 = 0;
    0x00001118 move a1, s0               |     a1 = s0;
    0x0000111c addiu a0, zero, 0xf       |     a0 = 0xf;
    0x00001120 jalr t9                   |     t9 ();
    0x00001124 lw gp, 0x18(sp)           |     gp = *(var_18h);
                                         |     if (v0 < 0) {
    0x00001128 bltz v0, 0x134c           |         goto label_12;
                                         |     }
    0x0000112c lw t9, -0x7f30(gp)        |     t9 = sym.imp.calloc;
    0x00001130 addiu a1, zero, 8         |     a1 = 8;
    0x00001134 addiu a0, zero, 1         |     a0 = 1;
    0x00001138 jalr t9                   |     t9 ();
    0x0000113c move s1, v0               |     s1 = v0;
    0x00001140 lw gp, 0x18(sp)           |     gp = *(var_18h);
                                         |     if (v0 == 0) {
    0x00001144 beqz v0, 0x1684           |         goto label_13;
                                         |     }
    0x00001148 lw t9, -0x7f64(gp)        |     t9 = sym.imp.sd_bus_open_system
    0x0000114c move a0, v0               |     a0 = v0;
    0x00001150 jalr t9                   |     t9 ();
    0x00001154 move s0, v0               |     s0 = v0;
    0x00001158 lw gp, 0x18(sp)           |     gp = *(var_18h);
                                         |     if (v0 < 0) {
    0x0000115c bltz v0, 0x14e0           |         goto label_14;
                                         |     }
    0x00001160 lw v0, -0x7fdc(gp)        |     v0 = *((gp - 8183));
    0x00001164 lw s3, -0x7fd8(gp)        |     s3 = *((gp - 8182));
    0x00001168 lw a3, -0x7fd8(gp)        |     a3 = *((gp - 8182));
    0x0000116c lw t9, -0x7f8c(gp)        |     t9 = sym.imp.sd_bus_add_object_vtable;
    0x00001170 addiu v0, v0, 0x2fa0      |     v0 += 0x2fa0;
    0x00001174 addiu s2, s1, 4           |     s2 = s1 + 4;
    0x00001178 lw a0, (s1)               |     a0 = *(s1);
    0x0000117c sw s1, 0x14(sp)           |     *(var_14h) = s1;
    0x00001180 sw v0, 0x10(sp)           |     *(var_10h) = v0;
    0x00001184 addiu a3, a3, 0x28ec      |     a3 += str.com.axis.VisionDevices1.Encode;
    0x00001188 addiu a2, s3, 0x290c      |     a2 = s3 + str._com_axis_VisionDevices1;
    0x0000118c move a1, s2               |     a1 = s2;
    0x00001190 jalr t9                   |     t9 ();
    0x00001194 move s0, v0               |     s0 = v0;
    0x00001198 lw gp, 0x18(sp)           |     gp = *(var_18h);
                                         |     if (v0 < 0) {
    0x0000119c bltz v0, 0x137c           |         goto label_15;
                                         |     }
    0x000011a0 lw v0, -0x7fdc(gp)        |     v0 = *((gp - 8183));
    0x000011a4 lw s6, -0x7fd8(gp)        |     s6 = *((gp - 8182));
    0x000011a8 lw t9, -0x7f8c(gp)        |     t9 = sym.imp.sd_bus_add_object_vtable;
    0x000011ac addiu v0, v0, 0x2f40      |     v0 += 0x2f40;
    0x000011b0 lw a0, (s1)               |     a0 = *(s1);
    0x000011b4 sw s1, 0x14(sp)           |     *(var_14h) = s1;
    0x000011b8 sw v0, 0x10(sp)           |     *(var_10h) = v0;
    0x000011bc addiu a3, s6, 0x294c      |     a3 = s6 + str.com.axis.VisionDevices1.Acceleration;
    0x000011c0 addiu a2, s3, 0x290c      |     a2 = s3 + str._com_axis_VisionDevices1;
    0x000011c4 move a1, s2               |     a1 = s2;
    0x000011c8 jalr t9                   |     t9 ();
    0x000011cc move s0, v0               |     s0 = v0;
    0x000011d0 lw gp, 0x18(sp)           |     gp = *(var_18h);
                                         |     if (v0 < 0) {
    0x000011d4 bltz v0, 0x158c           |         goto label_16;
                                         |     }
    0x000011d8 lw v0, -0x7fdc(gp)        |     v0 = *((gp - 8183));
    0x000011dc lw s6, -0x7fd8(gp)        |     s6 = *((gp - 8182));
    0x000011e0 lw t9, -0x7f8c(gp)        |     t9 = sym.imp.sd_bus_add_object_vtable;
    0x000011e4 addiu v0, v0, 0x2ee0      |     v0 += 0x2ee0;
    0x000011e8 lw a0, (s1)               |     a0 = *(s1);
    0x000011ec sw s1, 0x14(sp)           |     *(var_14h) = s1;
    0x000011f0 sw v0, 0x10(sp)           |     *(var_10h) = v0;
    0x000011f4 addiu a3, s6, 0x2994      |     a3 = s6 + str.com.axis.VisionDevices1.GPU;
    0x000011f8 addiu a2, s3, 0x290c      |     a2 = s3 + str._com_axis_VisionDevices1;
    0x000011fc move a1, s2               |     a1 = s2;
    0x00001200 jalr t9                   |     t9 ();
    0x00001204 move s0, v0               |     s0 = v0;
    0x00001208 lw gp, 0x18(sp)           |     gp = *(var_18h);
                                         |     if (v0 < 0) {
    0x0000120c bltz v0, 0x15ac           |         goto label_17;
                                         |     }
    0x00001210 lw v0, -0x7fdc(gp)        |     v0 = *((gp - 8183));
    0x00001214 lw s6, -0x7fd8(gp)        |     s6 = *((gp - 8182));
    0x00001218 lw t9, -0x7f8c(gp)        |     t9 = sym.imp.sd_bus_add_object_vtable;
    0x0000121c addiu v0, v0, 0x2e80      |     v0 += 0x2e80;
    0x00001220 lw a0, (s1)               |     a0 = *(s1);
    0x00001224 sw s1, 0x14(sp)           |     *(var_14h) = s1;
    0x00001228 sw v0, 0x10(sp)           |     *(var_10h) = v0;
    0x0000122c addiu a3, s6, 0x29b0      |     a3 = s6 + str.com.axis.VisionDevices1.ObjectClassification;
    0x00001230 addiu a2, s3, 0x290c      |     a2 = s3 + str._com_axis_VisionDevices1;
    0x00001234 move a1, s2               |     a1 = s2;
    0x00001238 jalr t9                   |     t9 ();
    0x0000123c move s0, v0               |     s0 = v0;
    0x00001240 lw gp, 0x18(sp)           |     gp = *(var_18h);
                                         |     if (v0 < 0) {
    0x00001244 bltz v0, 0x1498           |         goto label_18;
                                         |     }
    0x00001248 lw a1, -0x7fd8(gp)        |     a1 = *((gp - 8182));
    0x0000124c lw t9, -0x7f84(gp)        |     t9 = sym.imp.sd_bus_request_name;
    0x00001250 lw a0, (s1)               |     a0 = *(s1);
    0x00001254 move a2, zero             |     a2 = 0;
    0x00001258 move a3, zero             |     a3 = 0;
    0x0000125c addiu a1, a1, 0x29e0      |     a1 += str.com.axis.VisionDevices1;
    0x00001260 jalr t9                   |     t9 ();
    0x00001264 move s0, v0               |     s0 = v0;
    0x00001268 lw gp, 0x18(sp)           |     gp = *(var_18h);
                                         |     if (v0 < 0) {
    0x0000126c bltz v0, 0x161c           |         goto label_19;
                                         |     }
    0x00001270 lw t9, -0x7f44(gp)        |     t9 = sym.imp.apac_init;
    0x00001274 addiu a0, sp, 0x20        |     a0 = sp + 0x20;
    0x00001278 jalr t9                   |     t9 ();
    0x0000127c lw gp, 0x18(sp)           |     gp = *(var_18h);
                                         |     if (v0 == 0) {
    0x00001280 beqz v0, 0x1520           |         goto label_20;
                                         |     }
    0x00001284 lw s3, -0x7fdc(gp)        |     s3 = *((gp - 8183));
    0x00001288 addiu v0, zero, 1         |     v0 = 1;
    0x0000128c lw s2, (s1)               |     s2 = *(s1);
    0x00001290 sb v0, 0x3130(s3)         |     *((s3 + 12592)) = v0;
    0x00001294 lbu v0, 0x3130(s3)        |     v0 = *((s3 + 12592));
                                         |     do {
                                         | label_0:
    0x00001298 lw t9, -0x7f98(gp)        |         t9 = sym.imp.sd_bus_process;
                                         |         if (v0 == 0) {
    0x0000129c beqz v0, 0x12f8           |             goto label_21;
                                         |         }
    0x000012a0 move a1, zero             |         a1 = 0;
    0x000012a4 move a0, s2               |         a0 = s2;
    0x000012a8 jalr t9                   |         t9 ();
    0x000012ac move s0, v0               |         s0 = v0;
    0x000012b0 lw gp, 0x18(sp)           |         gp = *(var_18h);
                                         |         if (v0 < 0) {
    0x000012b4 bltz v0, 0x1548           |             goto label_22;
                                         |         }
    0x000012b8 lbu v0, 0x3130(s3)        |         v0 = *((s3 + 12592));
    0x000012bc bnez v0, 0x1298           |         
                                         |     } while (v0 != 0);
    0x000012c0 lw t9, -0x7fa0(gp)        |     t9 = sym.imp.sd_bus_wait;
    0x000012c4 lui a2, 0x1c9             |     a2 = 0x1c9c380;
    0x000012c8 ori a2, a2, 0xc380        |     
    0x000012cc move a3, zero             |     a3 = 0;
    0x000012d0 move a0, s2               |     a0 = s2;
    0x000012d4 jalr t9                   |     t9 ();
    0x000012d8 move s0, v0               |     s0 = v0;
    0x000012dc lw gp, 0x18(sp)           |     gp = *(var_18h);
                                         |     if (v0 == 0) {
    0x000012e0 beqz v0, 0x12f8           |         goto label_21;
                                         |     }
    0x000012e4 lbu v0, 0x3130(s3)        |     v0 = *((s3 + 12592));
                                         |     if (v0 >= 0) {
    0x000012e8 bgez v0, 0x1298           |         goto label_0;
                                         |     }
    0x000012ec addiu v0, zero, -4        |     v0 = -4;
    0x000012f0 lw t9, -0x7f1c(gp)        |     t9 = sym.imp.strerror;
                                         |     if (s0 != v0) {
    0x000012f4 bne s0, v0, 0x15f4        |         goto label_23;
                                         |     }
                                         | label_21:
    0x000012f8 lw a1, -0x7fd8(gp)        |     a1 = *((gp - 8182));
    0x000012fc lw t9, -0x7f14(gp)        |     t9 = sym.imp.sd_notify;
    0x00001300 addiu a1, a1, 0x2ab0      |     a1 += str.STOPPING1;
    0x00001304 move a0, zero             |     a0 = 0;
    0x00001308 jalr t9                   |     t9 ();
    0x0000130c lw gp, 0x18(sp)           |     gp = *(var_18h);
                                         |     if (v0 < 0) {
    0x00001310 bltz v0, 0x165c           |         goto label_24;
                                         |     }
                                         | label_6:
    0x00001314 lw t9, -0x7f90(gp)        |     t9 = sym.imp.apac_release;
    0x00001318 jalr t9                   |     t9 ();
    0x0000131c nop                       |     
    0x00001320 lw gp, 0x18(sp)           |     gp = *(var_18h);
    0x00001324 lw t9, -0x7fd8(gp)        |     t9 = *((gp - 8182));
    0x00001328 addiu t9, t9, 0x1d14      |     t9 += fcn.00001d14;
    0x0000132c move a0, s1               |     a0 = s1;
    0x00001330 bal 0x1d14                |     fcn_00001d14 ();
    0x00001334 lw gp, 0x18(sp)           |     gp = *(var_18h);
    0x00001338 lw t9, -0x7f40(gp)        |     t9 = sym.imp.free;
                                         |     do {
    0x0000133c move a0, s1               |         a0 = s1;
    0x00001340 jalr t9                   |         t9 ();
    0x00001344 lw gp, 0x18(sp)           |         gp = *(var_18h);
    0x00001348 b 0x1450                  |         goto label_25;
                                         | label_12:
    0x0000134c lw a3, -0x7fd8(gp)        |         a3 = *((gp - 8182));
    0x00001350 lw a2, -0x7fd8(gp)        |         a2 = *((gp - 8182));
    0x00001354 lw t9, -0x7fa8(gp)        |         t9 = sym.imp.g_log;
    0x00001358 move a0, zero             |         a0 = 0;
    0x0000135c addiu a3, a3, 0x26ac      |         a3 += 0x26ac;
    0x00001360 addiu a2, a2, 0x288c      |         a2 += str._sTerminating:_sigaction_SIGTERM;
    0x00001364 addiu a1, zero, 0x100     |         a1 = 0x100;
    0x00001368 jalr t9                   |         t9 ();
    0x0000136c lw gp, 0x18(sp)           |         gp = *(var_18h);
    0x00001370 lw t9, -0x7fa4(gp)        |         t9 = sym.imp.exit;
    0x00001374 move a0, zero             |         a0 = 0;
    0x00001378 jalr t9                   |         t9 ();
                                         | label_15:
    0x0000137c lw t9, -0x7f1c(gp)        |         t9 = sym.imp.strerror;
    0x00001380 negu s3, v0               |         __asm ("negu s3, v0");
    0x00001384 move a0, s3               |         a0 = s3;
    0x00001388 jalr t9                   |         t9 ();
    0x0000138c lw gp, 0x18(sp)           |         gp = *(var_18h);
    0x00001390 sw v0, 0x10(sp)           |         *(var_10h) = v0;
    0x00001394 addiu a1, zero, 0x100     |         a1 = 0x100;
    0x00001398 lw s5, -0x7fd8(gp)        |         s5 = *((gp - 8182));
    0x0000139c lw a2, -0x7fd8(gp)        |         a2 = *((gp - 8182));
    0x000013a0 lw t9, -0x7fa8(gp)        |         t9 = sym.imp.g_log;
    0x000013a4 addiu a3, s5, 0x26ac      |         a3 = s5 + 0x26ac;
    0x000013a8 addiu a2, a2, 0x2928      |         a2 += str._sFailed_to_issue_method_call:__s;
    0x000013ac move a0, zero             |         a0 = 0;
    0x000013b0 jalr t9                   |         t9 ();
    0x000013b4 lw gp, 0x18(sp)           |         gp = *(var_18h);
                                         | label_1:
    0x000013b8 lw s2, -0x7fd8(gp)        |         s2 = *((gp - 8182));
    0x000013bc addiu s2, s2, 0x1d14      |         s2 += fcn.00001d14;
    0x000013c0 move t9, s2               |         t9 = s2;
    0x000013c4 move a0, s1               |         a0 = s1;
    0x000013c8 bal 0x1d14                |         fcn_00001d14 ();
    0x000013cc lw gp, 0x18(sp)           |         gp = *(var_18h);
    0x000013d0 lw t9, -0x7f1c(gp)        |         t9 = sym.imp.strerror;
    0x000013d4 move a0, s3               |         a0 = s3;
    0x000013d8 jalr t9                   |         t9 ();
    0x000013dc lw gp, 0x18(sp)           |         gp = *(var_18h);
    0x000013e0 sw v0, 0x10(sp)           |         *(var_10h) = v0;
    0x000013e4 addiu a3, s5, 0x26ac      |         a3 = s5 + 0x26ac;
    0x000013e8 lw a2, -0x7fd8(gp)        |         a2 = *((gp - 8182));
    0x000013ec lw t9, -0x7fa8(gp)        |         t9 = sym.imp.g_log;
    0x000013f0 addiu a2, a2, 0x2a20      |         a2 += str._sFailed_to_create_bus:__s;
    0x000013f4 addiu a1, zero, 0x100     |         a1 = 0x100;
    0x000013f8 move a0, zero             |         a0 = 0;
    0x000013fc jalr t9                   |         t9 ();
    0x00001400 lw gp, 0x18(sp)           |         gp = *(var_18h);
    0x00001404 lw s3, -0x7fdc(gp)        |         s3 = *((gp - 8183));
                                         | label_2:
    0x00001408 lw a1, -0x7fd8(gp)        |         a1 = *((gp - 8182));
    0x0000140c lw t9, -0x7f14(gp)        |         t9 = sym.imp.sd_notify;
    0x00001410 addiu a1, a1, 0x2ab0      |         a1 += str.STOPPING1;
    0x00001414 move a0, zero             |         a0 = 0;
    0x00001418 jalr t9                   |         t9 ();
    0x0000141c lw gp, 0x18(sp)           |         gp = *(var_18h);
                                         |         if (v0 < 0) {
    0x00001420 bltz v0, 0x1730           |             goto label_26;
                                         |         }
                                         | label_8:
    0x00001424 lw t9, -0x7f90(gp)        |         t9 = sym.imp.apac_release;
    0x00001428 jalr t9                   |         t9 ();
    0x0000142c nop                       |         
    0x00001430 move t9, s2               |         t9 = s2;
    0x00001434 move a0, s1               |         a0 = s1;
    0x00001438 bal 0x1d14                |         fcn_00001d14 ();
    0x0000143c lbu v0, 0x3130(s3)        |         v0 = *((s3 + 12592));
    0x00001440 lw gp, 0x18(sp)           |         gp = *(var_18h);
                                         |         if (v0 != 0) {
    0x00001444 bnez v0, 0x15cc           |             goto label_27;
                                         |         }
                                         | label_4:
    0x00001448 lw t9, -0x7f40(gp)        |         t9 = sym.imp.free;
    0x0000144c bnez s1, 0x133c           |         
                                         |     } while (s1 != 0);
                                         | label_25:
    0x00001450 lw t9, -0x7fac(gp)        |     t9 = sym.imp.ax_log_cleanup;
    0x00001454 jalr t9                   |     t9 ();
    0x00001458 nop                       |     
    0x0000145c lw a0, 0xb4(sp)           |     a0 = *(var_b4h);
    0x00001460 lw v1, (s4)               |     v1 = *(s4);
    0x00001464 lw gp, 0x18(sp)           |     gp = *(var_18h);
    0x00001468 move v0, zero             |     v0 = 0;
                                         |     if (a0 != v1) {
    0x0000146c bne a0, v1, 0x1724        |         goto label_28;
                                         |     }
    0x00001470 lw ra, 0xd4(sp)           |     ra = *(var_d4h);
    0x00001474 lw s6, 0xd0(sp)           |     s6 = *(var_d0h);
    0x00001478 lw s5, 0xcc(sp)           |     s5 = *(var_cch);
    0x0000147c lw s4, 0xc8(sp)           |     s4 = *(var_c8h);
    0x00001480 lw s3, 0xc4(sp)           |     s3 = *(var_c4h);
    0x00001484 lw s2, 0xc0(sp)           |     s2 = *(var_c0h);
    0x00001488 lw s1, 0xbc(sp)           |     s1 = *(var_bch);
    0x0000148c lw s0, 0xb8(sp)           |     s0 = *(var_b8h);
    0x00001490 addiu sp, sp, 0xd8        |     
    0x00001494 jr ra                     |     return v0;
                                         | label_18:
    0x00001498 lw t9, -0x7f1c(gp)        |     t9 = sym.imp.strerror;
    0x0000149c negu s3, v0               |     __asm ("negu s3, v0");
    0x000014a0 move a0, s3               |     a0 = s3;
    0x000014a4 jalr t9                   |     t9 ();
    0x000014a8 lw gp, 0x18(sp)           |     gp = *(var_18h);
    0x000014ac addiu s6, s6, 0x29b0      |     s6 += str.com.axis.VisionDevices1.ObjectClassification;
    0x000014b0 lw s5, -0x7fd8(gp)        |     s5 = *((gp - 8182));
                                         |     do {
                                         | label_3:
    0x000014b4 lw a2, -0x7fd8(gp)        |         a2 = *((gp - 8182));
    0x000014b8 lw t9, -0x7fa8(gp)        |         t9 = sym.imp.g_log;
    0x000014bc sw v0, 0x14(sp)           |         *(var_14h) = v0;
    0x000014c0 sw s6, 0x10(sp)           |         *(var_10h) = s6;
    0x000014c4 addiu a3, s5, 0x26ac      |         a3 = s5 + 0x26ac;
    0x000014c8 addiu a2, a2, 0x2974      |         a2 += str._sFailed_to_add_vtable__s:__s;
    0x000014cc addiu a1, zero, 0x100     |         a1 = 0x100;
    0x000014d0 move a0, zero             |         a0 = 0;
    0x000014d4 jalr t9                   |         t9 ();
    0x000014d8 lw gp, 0x18(sp)           |         gp = *(var_18h);
    0x000014dc b 0x13b8                  |         goto label_1;
                                         | label_14:
    0x000014e0 lw t9, -0x7f1c(gp)        |         t9 = sym.imp.strerror;
    0x000014e4 negu s3, v0               |         __asm ("negu s3, v0");
    0x000014e8 move a0, s3               |         a0 = s3;
    0x000014ec jalr t9                   |         t9 ();
    0x000014f0 lw gp, 0x18(sp)           |         gp = *(var_18h);
    0x000014f4 sw v0, 0x10(sp)           |         *(var_10h) = v0;
    0x000014f8 addiu a1, zero, 0x100     |         a1 = 0x100;
    0x000014fc lw s5, -0x7fd8(gp)        |         s5 = *((gp - 8182));
    0x00001500 lw a2, -0x7fd8(gp)        |         a2 = *((gp - 8182));
    0x00001504 lw t9, -0x7fa8(gp)        |         t9 = sym.imp.g_log;
    0x00001508 addiu a3, s5, 0x26ac      |         a3 = s5 + 0x26ac;
    0x0000150c addiu a2, a2, 0x28c4      |         a2 += str._sFailed_to_connect_to_system_bus:__s
    0x00001510 move a0, zero             |         a0 = 0;
    0x00001514 jalr t9                   |         t9 ();
    0x00001518 lw gp, 0x18(sp)           |         gp = *(var_18h);
    0x0000151c b 0x13b8                  |         goto label_1;
                                         | label_20:
    0x00001520 lw v0, 0x20(sp)           |         v0 = *(var_20h);
    0x00001524 lw a2, -0x7fd8(gp)        |         a2 = *((gp - 8182));
    0x00001528 lw t9, -0x7fa8(gp)        |         t9 = sym.imp.g_log;
    0x0000152c lw a3, 8(v0)              |         a3 = *((v0 + 2));
    0x00001530 addiu a2, a2, 0x2a3c      |         a2 += str.apac_init_failed:__s;
    0x00001534 addiu a1, zero, 4         |         a1 = 4;
    0x00001538 move a0, zero             |         a0 = 0;
    0x0000153c jalr t9                   |         t9 ();
    0x00001540 b 0x1540                  |         
    0x00001544 nop                       |         
                                         | label_22:
    0x00001548 lw t9, -0x7f1c(gp)        |         t9 = sym.imp.strerror;
    0x0000154c negu a0, v0               |         __asm ("negu a0, v0");
    0x00001550 jalr t9                   |         t9 ();
    0x00001554 lw gp, 0x18(sp)           |         gp = *(var_18h);
    0x00001558 sw v0, 0x10(sp)           |         *(var_10h) = v0;
    0x0000155c lw s5, -0x7fd8(gp)        |         s5 = *((gp - 8182));
    0x00001560 lw a2, -0x7fd8(gp)        |         a2 = *((gp - 8182));
    0x00001564 lw t9, -0x7fa8(gp)        |         t9 = sym.imp.g_log;
    0x00001568 addiu a3, s5, 0x26ac      |         a3 = s5 + 0x26ac;
    0x0000156c addiu a2, a2, 0x2a54      |         a2 += str._sFailed_to_process_bus:__s;
                                         | label_5:
    0x00001570 addiu a1, zero, 0x100     |         a1 = 0x100;
    0x00001574 move a0, zero             |         a0 = 0;
    0x00001578 jalr t9                   |         t9 ();
    0x0000157c lw gp, 0x18(sp)           |         gp = *(var_18h);
    0x00001580 lw s2, -0x7fd8(gp)        |         s2 = *((gp - 8182));
    0x00001584 addiu s2, s2, 0x1d14      |         s2 += fcn.00001d14;
    0x00001588 b 0x1408                  |         goto label_2;
                                         | label_16:
    0x0000158c lw t9, -0x7f1c(gp)        |         t9 = sym.imp.strerror;
    0x00001590 negu s3, v0               |         __asm ("negu s3, v0");
    0x00001594 move a0, s3               |         a0 = s3;
    0x00001598 jalr t9                   |         t9 ();
    0x0000159c lw gp, 0x18(sp)           |         gp = *(var_18h);
    0x000015a0 addiu s6, s6, 0x294c      |         s6 += str.com.axis.VisionDevices1.Acceleration;
    0x000015a4 lw s5, -0x7fd8(gp)        |         s5 = *((gp - 8182));
    0x000015a8 b 0x14b4                  |         
                                         |     } while (1);
                                         | label_17:
    0x000015ac lw t9, -0x7f1c(gp)        |     t9 = sym.imp.strerror;
    0x000015b0 negu s3, v0               |     __asm ("negu s3, v0");
    0x000015b4 move a0, s3               |     a0 = s3;
    0x000015b8 jalr t9                   |     t9 ();
    0x000015bc lw gp, 0x18(sp)           |     gp = *(var_18h);
    0x000015c0 addiu s6, s6, 0x2994      |     s6 += str.com.axis.VisionDevices1.GPU;
    0x000015c4 lw s5, -0x7fd8(gp)        |     s5 = *((gp - 8182));
    0x000015c8 b 0x14b4                  |     goto label_3;
                                         | label_27:
    0x000015cc lw a2, -0x7fd8(gp)        |     a2 = *((gp - 8182));
    0x000015d0 lw t9, -0x7fa8(gp)        |     t9 = sym.imp.g_log;
    0x000015d4 sw s0, 0x10(sp)           |     *(var_10h) = s0;
    0x000015d8 addiu a3, s5, 0x26ac      |     a3 = s5 + 0x26ac;
    0x000015dc addiu a2, a2, 0x2a8c      |     a2 += str._smain_loop_exit_with_failure___d_;
    0x000015e0 addiu a1, zero, 0x100     |     a1 = 0x100;
    0x000015e4 move a0, zero             |     a0 = 0;
    0x000015e8 jalr t9                   |     t9 ();
    0x000015ec lw gp, 0x18(sp)           |     gp = *(var_18h);
    0x000015f0 b 0x1448                  |     goto label_4;
                                         | label_23:
    0x000015f4 negu a0, s0               |     __asm ("negu a0, s0");
    0x000015f8 jalr t9                   |     t9 ();
    0x000015fc lw gp, 0x18(sp)           |     gp = *(var_18h);
    0x00001600 sw v0, 0x10(sp)           |     *(var_10h) = v0;
    0x00001604 lw s5, -0x7fd8(gp)        |     s5 = *((gp - 8182));
    0x00001608 lw a2, -0x7fd8(gp)        |     a2 = *((gp - 8182));
    0x0000160c lw t9, -0x7fa8(gp)        |     t9 = sym.imp.g_log;
    0x00001610 addiu a3, s5, 0x26ac      |     a3 = s5 + 0x26ac;
    0x00001614 addiu a2, a2, 0x2a70      |     a2 += str._sFailed_to_wait_on_bus:__s;
    0x00001618 b 0x1570                  |     goto label_5;
                                         | label_19:
    0x0000161c lw t9, -0x7f1c(gp)        |     t9 = sym.imp.strerror;
    0x00001620 negu s3, v0               |     __asm ("negu s3, v0");
    0x00001624 move a0, s3               |     a0 = s3;
    0x00001628 jalr t9                   |     t9 ();
    0x0000162c lw gp, 0x18(sp)           |     gp = *(var_18h);
    0x00001630 sw v0, 0x10(sp)           |     *(var_10h) = v0;
    0x00001634 addiu a1, zero, 0x100     |     a1 = 0x100;
    0x00001638 lw s5, -0x7fd8(gp)        |     s5 = *((gp - 8182));
    0x0000163c lw a2, -0x7fd8(gp)        |     a2 = *((gp - 8182));
    0x00001640 lw t9, -0x7fa8(gp)        |     t9 = sym.imp.g_log;
    0x00001644 addiu a3, s5, 0x26ac      |     a3 = s5 + 0x26ac;
    0x00001648 addiu a2, a2, 0x29f8      |     a2 += str._sFailed_to_acquire_service_name:__s;
    0x0000164c move a0, zero             |     a0 = 0;
    0x00001650 jalr t9                   |     t9 ();
    0x00001654 lw gp, 0x18(sp)           |     gp = *(var_18h);
    0x00001658 b 0x13b8                  |     goto label_1;
                                         | label_24:
    0x0000165c lw a3, -0x7fd8(gp)        |     a3 = *((gp - 8182));
    0x00001660 lw a2, -0x7fd8(gp)        |     a2 = *((gp - 8182));
    0x00001664 lw t9, -0x7fa8(gp)        |     t9 = sym.imp.g_log;
    0x00001668 addiu a3, a3, 0x26ac      |     a3 += 0x26ac;
    0x0000166c addiu a2, a2, 0x2abc      |     a2 += str._sFailed_to_notify_systemd_of_shutdown
    0x00001670 addiu a1, zero, 0x10      |     a1 = 0x10;
    0x00001674 move a0, zero             |     a0 = 0;
    0x00001678 jalr t9                   |     t9 ();
    0x0000167c lw gp, 0x18(sp)           |     gp = *(var_18h);
    0x00001680 b 0x1314                  |     goto label_6;
                                         | label_13:
    0x00001684 lw s5, -0x7fd8(gp)        |     s5 = *((gp - 8182));
    0x00001688 lw a2, -0x7fd8(gp)        |     a2 = *((gp - 8182));
    0x0000168c lw t9, -0x7fa8(gp)        |     t9 = sym.imp.g_log;
    0x00001690 addiu a3, s5, 0x26ac      |     a3 = s5 + 0x26ac;
    0x00001694 addiu a2, a2, 0x28b0      |     a2 += str._sIllegal_handle;
    0x00001698 addiu a1, zero, 0x100     |     a1 = 0x100;
    0x0000169c move a0, zero             |     a0 = 0;
    0x000016a0 jalr t9                   |     t9 ();
    0x000016a4 lw gp, 0x18(sp)           |     gp = *(var_18h);
    0x000016a8 addiu s0, zero, -1        |     s0 = -1;
    0x000016ac lw s2, -0x7fd8(gp)        |     s2 = *((gp - 8182));
    0x000016b0 lw s3, -0x7fdc(gp)        |     s3 = *((gp - 8183));
    0x000016b4 addiu s2, s2, 0x1d14      |     s2 += fcn.00001d14;
    0x000016b8 b 0x1408                  |     goto label_2;
                                         | label_10:
    0x000016bc lw a3, -0x7fd8(gp)        |     a3 = *((gp - 8182));
    0x000016c0 lw a2, -0x7fd8(gp)        |     a2 = *((gp - 8182));
    0x000016c4 lw t9, -0x7fa8(gp)        |     t9 = sym.imp.g_log;
    0x000016c8 move a0, zero             |     a0 = 0;
    0x000016cc addiu a3, a3, 0x26ac      |     a3 += 0x26ac;
    0x000016d0 addiu a2, a2, 0x2854      |     a2 += str._sFailed:_sigaction_SIGHUP;
                                         |     do {
                                         | label_7:
    0x000016d4 addiu a1, zero, 0x100     |         a1 = 0x100;
    0x000016d8 jalr t9                   |         t9 ();
    0x000016dc lw gp, 0x18(sp)           |         gp = *(var_18h);
    0x000016e0 lw t9, -0x7fa4(gp)        |         t9 = sym.imp.exit;
    0x000016e4 addiu a0, zero, 1         |         a0 = 1;
    0x000016e8 jalr t9                   |         t9 ();
                                         | label_9:
    0x000016ec lw a3, -0x7fd8(gp)        |         a3 = *((gp - 8182));
    0x000016f0 lw a2, -0x7fd8(gp)        |         a2 = *((gp - 8182));
    0x000016f4 lw t9, -0x7fa8(gp)        |         t9 = sym.imp.g_log;
    0x000016f8 move a0, zero             |         a0 = 0;
    0x000016fc addiu a3, a3, 0x26ac      |         a3 += 0x26ac;
    0x00001700 addiu a2, a2, 0x283c      |         a2 += str._sFailed:_sigemptyset;
    0x00001704 b 0x16d4                  |         
                                         |     } while (1);
                                         | label_11:
    0x00001708 lw a3, -0x7fd8(gp)        |     a3 = *((gp - 8182));
    0x0000170c lw a2, -0x7fd8(gp)        |     a2 = *((gp - 8182));
    0x00001710 lw t9, -0x7fa8(gp)        |     t9 = sym.imp.g_log;
    0x00001714 move a0, zero             |     a0 = 0;
    0x00001718 addiu a3, a3, 0x26ac      |     a3 += 0x26ac;
    0x0000171c addiu a2, a2, 0x2870      |     a2 += str._sFailed:_sigaction_SIGINT;
    0x00001720 b 0x16d4                  |     goto label_7;
                                         | label_28:
    0x00001724 lw t9, -0x7f80(gp)        |     t9 = sym.imp.__stack_chk_fail;
    0x00001728 jalr t9                   |     t9 ();
    0x0000172c nop                       |     
                                         | label_26:
    0x00001730 lw a2, -0x7fd8(gp)        |     a2 = *((gp - 8182));
    0x00001734 lw t9, -0x7fa8(gp)        |     t9 = sym.imp.g_log;
    0x00001738 addiu a3, s5, 0x26ac      |     a3 = s5 + 0x26ac;
    0x0000173c addiu a2, a2, 0x2abc      |     a2 += str._sFailed_to_notify_systemd_of_shutdown
    0x00001740 addiu a1, zero, 0x10      |     a1 = 0x10;
    0x00001744 move a0, zero             |     a0 = 0;
    0x00001748 jalr t9                   |     t9 ();
    0x0000174c lw gp, 0x18(sp)           |     gp = *(var_18h);
    0x00001750 b 0x1424                  |     goto label_8;
                                         | }

[*] Function system used 5 times vision-devices