[*] Binary protection state of audiocontrol

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


[*] Function system tear down of audiocontrol

    ; assembly                           | /* r2dec pseudo code output */
                                         | /* /logs/firmware/unblob_extracted/firmware_extract/4325012-58052244.squashfs_v4_le_extract/usr/bin/audiocontrol @ 0x8980 */
                                         | #include <stdint.h>
                                         |  
    ; (fcn) main ()                      | int32_t main () {
                                         |     /* [13] -r-x section size 216512 named .text */
    0x00008980 lui gp, 6                 |     
    0x00008984 addiu gp, gp, -0x48a0     |     
    0x00008988 addu gp, gp, t9           |     gp += t9;
    0x0000898c addiu sp, sp, -0xd8       |     
    0x00008990 lw a2, -0x7fdc(gp)        |     a2 = *(gp);
    0x00008994 sw s7, 0xd0(sp)           |     *(var_d0h) = s7;
    0x00008998 lw s7, -0x7934(gp)        |     s7 = *((gp - 7757));
    0x0000899c lw t9, -0x7954(gp)        |     t9 = sym.imp.__syslog_chk;
    0x000089a0 sw gp, 0x18(sp)           |     *(var_18h) = gp;
    0x000089a4 lw v0, (s7)               |     v0 = *(s7);
    0x000089a8 sw s6, 0xcc(sp)           |     *(var_cch) = s6;
    0x000089ac sw s5, 0xc8(sp)           |     *(var_c8h) = s5;
    0x000089b0 sw s4, 0xc4(sp)           |     *(var_c4h) = s4;
    0x000089b4 sw s3, 0xc0(sp)           |     *(var_c0h) = s3;
    0x000089b8 sw s2, 0xbc(sp)           |     *(var_bch) = s2;
    0x000089bc sw s1, 0xb8(sp)           |     *(var_b8h) = s1;
    0x000089c0 sw s0, 0xb4(sp)           |     *(var_b4h) = s0;
    0x000089c4 sw ra, 0xd4(sp)           |     *(var_d4h) = ra;
    0x000089c8 move s5, a0               |     s5 = a0;
    0x000089cc move s4, a1               |     s4 = a1;
                                         |     /* str.Audiocontrol_starting. */
    0x000089d0 addiu a2, a2, -0x28c      |     a2 += -aav.0x0000028c;
    0x000089d4 addiu a1, zero, 1         |     a1 = 1;
    0x000089d8 addiu a0, zero, 6         |     a0 = 6;
    0x000089dc sw v0, 0xac(sp)           |     *(var_ach) = v0;
    0x000089e0 sw zero, 0x20(sp)         |     *(var_20h) = 0;
    0x000089e4 sw zero, 0x24(sp)         |     *(var_24h) = 0;
    0x000089e8 sw zero, 0x28(sp)         |     *(var_28h) = 0;
    0x000089ec move s0, zero             |     s0 = 0;
    0x000089f0 jalr t9                   |     t9 ();
    0x000089f4 lw gp, 0x18(sp)           |     gp = *(var_18h);
    0x000089f8 addiu s3, zero, -1        |     s3 = -1;
    0x000089fc lw s2, -0x7fd8(gp)        |     s2 = *((gp - 8182));
    0x00008a00 lw s1, -0x7fdc(gp)        |     s1 = *(gp);
                                         |     /* esilref: 'x' */
    0x00008a04 addiu s2, s2, -0x3ff0     |     s2 += -0x3ff0;
    0x00008a08 addiu s1, s1, -0x274      |     s1 += -0x274;
    0x00008a0c addiu s6, zero, 1         |     s6 = 1;
    0x00008a10 b 0x8a1c                  |     
                                         |     while (v0 != s3) {
    0x00008a14 xori v0, v0, 0x45         |         v0 ^= 0x45;
                                         |         if (v0 != 0) {
    0x00008a18 movz s0, s6, v0           |             s0 = s6;
                                         |         }
    0x00008a1c lw t9, -0x7898(gp)        |         t9 = sym.imp.getopt_long;
    0x00008a20 sw zero, 0x10(sp)         |         *(var_10h) = 0;
    0x00008a24 move a3, s2               |         a3 = s2;
    0x00008a28 move a2, s1               |         a2 = s1;
    0x00008a2c move a1, s4               |         a1 = s4;
    0x00008a30 move a0, s5               |         a0 = s5;
    0x00008a34 jalr t9                   |         t9 ();
    0x00008a38 lw gp, 0x18(sp)           |         gp = *(var_18h);
    0x00008a3c bne v0, s3, 0x8a14        |         
                                         |     }
                                         |     if (s0 == 0) {
    0x00008a40 beql s0, zero, 0x8aa0     |         goto label_8;
                                         |     }
    0x00008a44 move s4, zero             |     s4 = 0;
    0x00008a48 lw a0, -0x7fdc(gp)        |     a0 = *(gp);
    0x00008a4c lw t9, -0x7fd4(gp)        |     t9 = sym.product_conf_parse_json;
    0x00008a50 addiu a1, sp, 0x20        |     a1 = sp + 0x20;
                                         |     /* str._usr_share_audiocontrol_devices.json */
    0x00008a54 addiu a0, a0, -0x270      |     a0 += -aav.0x00000270;
    0x00008a58 jalr t9                   |     t9 ();
    0x00008a5c lw gp, 0x18(sp)           |     gp = *(var_18h);
                                         |     if (v0 != 0) {
    0x00008a60 bnez v0, 0x8cac           |         goto label_9;
                                         |     }
    0x00008a64 addiu v0, zero, 1         |     v0 = 1;
                                         | label_0:
    0x00008a68 lw a0, 0xac(sp)           |     a0 = *(var_ach);
    0x00008a6c lw v1, (s7)               |     v1 = *(s7);
    0x00008a70 lw ra, 0xd4(sp)           |     ra = *(var_d4h);
                                         |     if (a0 != v1) {
    0x00008a74 bne a0, v1, 0x9048        |         goto label_10;
                                         |     }
    0x00008a78 lw s7, 0xd0(sp)           |     s7 = *(var_d0h);
    0x00008a7c lw s6, 0xcc(sp)           |     s6 = *(var_cch);
    0x00008a80 lw s5, 0xc8(sp)           |     s5 = *(var_c8h);
    0x00008a84 lw s4, 0xc4(sp)           |     s4 = *(var_c4h);
    0x00008a88 lw s3, 0xc0(sp)           |     s3 = *(var_c0h);
    0x00008a8c lw s2, 0xbc(sp)           |     s2 = *(var_bch);
    0x00008a90 lw s1, 0xb8(sp)           |     s1 = *(var_b8h);
    0x00008a94 lw s0, 0xb4(sp)           |     s0 = *(var_b4h);
    0x00008a98 addiu sp, sp, 0xd8        |     
    0x00008a9c jr ra                     |     return v0;
                                         |     do {
                                         | label_8:
    0x00008aa0 lw t9, -0x7fd0(gp)        |         t9 = sym.cards_populate_card_types;
    0x00008aa4 bal 0xab10                |         sym_cards_populate_card_types ();
    0x00008aa8 nop                       |         
    0x00008aac lw gp, 0x18(sp)           |         gp = *(var_18h);
    0x00008ab0 lw a0, -0x7fcc(gp)        |         a0 = *(gp);
    0x00008ab4 lw t9, -0x78fc(gp)        |         t9 = sym.imp.sd_bus_open_system
    0x00008ab8 jalr t9                   |         t9 ();
    0x00008abc nop                       |         
    0x00008ac0 lw gp, 0x18(sp)           |         gp = *(var_18h);
                                         |         if (v0 < 0) {
    0x00008ac4 bltz v0, 0x8dd8           |             goto label_11;
                                         |         }
    0x00008ac8 lw s1, -0x7fcc(gp)        |         s1 = *(gp);
    0x00008acc lw s2, -0x7fd8(gp)        |         s2 = *((gp - 8182));
    0x00008ad0 lw a2, -0x7fdc(gp)        |         a2 = *(gp);
    0x00008ad4 lw t9, -0x78bc(gp)        |         t9 = sym.imp.sd_bus_add_object_manager;
    0x00008ad8 lw a0, (s1)               |         a0 = *(s1);
                                         |         /* str._com_axis_AudioControl_Device */
    0x00008adc addiu a2, a2, -0x178      |         a2 += -aav.0x00000178;
    0x00008ae0 addiu a1, s2, -0x3538     |         a1 = s2 + -0x3538;
    0x00008ae4 jalr t9                   |         t9 ();
    0x00008ae8 lw gp, 0x18(sp)           |         gp = *(var_18h);
                                         |         if (v0 < 0) {
    0x00008aec bltz v0, 0x8cf8           |             goto label_12;
                                         |         }
    0x00008af0 lw a2, -0x7fdc(gp)        |         a2 = *(gp);
    0x00008af4 lw t9, -0x78bc(gp)        |         t9 = sym.imp.sd_bus_add_object_manager;
    0x00008af8 lw a0, (s1)               |         a0 = *(s1);
                                         |         /* str._com_axis_AudioControl */
    0x00008afc addiu a2, a2, -0x1808     |         a2 += -0x1808;
    0x00008b00 addiu a1, s2, -0x3538     |         a1 = s2 + -0x3538;
    0x00008b04 jalr t9                   |         t9 ();
    0x00008b08 lw gp, 0x18(sp)           |         gp = *(var_18h);
                                         |         if (v0 < 0) {
    0x00008b0c bltz v0, 0x8cf8           |             goto label_12;
                                         |         }
    0x00008b10 lw s3, -0x7fd8(gp)        |         s3 = *((gp - 8182));
    0x00008b14 lw t9, -0x78e4(gp)        |         t9 = sym.imp.sd_event_default;
    0x00008b18 addiu a0, s3, -0x353c     |         a0 = s3 + -0x353c;
    0x00008b1c jalr t9                   |         t9 ();
    0x00008b20 lw gp, 0x18(sp)           |         gp = *(var_18h);
                                         |         if (v0 < 0) {
    0x00008b24 bltz v0, 0x8e90           |             goto label_13;
                                         |         }
    0x00008b28 lw t9, -0x770c(gp)        |         t9 = sym.imp.sigemptyset;
    0x00008b2c addiu s5, sp, 0x2c        |         s5 = sp + 0x2c;
    0x00008b30 move a0, s5               |         a0 = s5;
    0x00008b34 jalr t9                   |         t9 ();
    0x00008b38 lw gp, 0x18(sp)           |         gp = *(var_18h);
                                         |         if (v0 < 0) {
    0x00008b3c bltz v0, 0x8ec8           |             goto label_14;
                                         |         }
    0x00008b40 lw t9, -0x79d4(gp)        |         t9 = sym.imp.sigaddset;
    0x00008b44 addiu a1, zero, 0xf       |         a1 = 0xf;
    0x00008b48 move a0, s5               |         a0 = s5;
    0x00008b4c jalr t9                   |         t9 ();
    0x00008b50 lw gp, 0x18(sp)           |         gp = *(var_18h);
                                         |         if (v0 < 0) {
    0x00008b54 bltz v0, 0x8ec8           |             goto label_14;
                                         |         }
    0x00008b58 lw t9, -0x79d4(gp)        |         t9 = sym.imp.sigaddset;
    0x00008b5c addiu a1, zero, 2         |         a1 = 2;
    0x00008b60 move a0, s5               |         a0 = s5;
    0x00008b64 jalr t9                   |         t9 ();
    0x00008b68 lw gp, 0x18(sp)           |         gp = *(var_18h);
                                         |         if (v0 < 0) {
    0x00008b6c bltz v0, 0x8ec8           |             goto label_14;
                                         |         }
    0x00008b70 lw t9, -0x7998(gp)        |         t9 = sym.imp.sigprocmask;
    0x00008b74 move a2, zero             |         a2 = 0;
    0x00008b78 move a1, s5               |         a1 = s5;
    0x00008b7c addiu a0, zero, 1         |         a0 = 1;
    0x00008b80 jalr t9                   |         t9 ();
    0x00008b84 lw gp, 0x18(sp)           |         gp = *(var_18h);
                                         |         if (v0 < 0) {
    0x00008b88 bltz v0, 0x8ef8           |             goto label_15;
                                         |         }
    0x00008b8c lw t9, -0x7a78(gp)        |         t9 = sym.imp.sd_event_add_signal;
    0x00008b90 lw a0, -0x353c(s3)        |         a0 = *((s3 - 3407));
    0x00008b94 sw zero, 0x10(sp)         |         *(var_10h) = 0;
    0x00008b98 move a3, zero             |         a3 = 0;
    0x00008b9c addiu a2, zero, 0xf       |         a2 = 0xf;
    0x00008ba0 move a1, zero             |         a1 = 0;
    0x00008ba4 jalr t9                   |         t9 ();
    0x00008ba8 lw gp, 0x18(sp)           |         gp = *(var_18h);
                                         |         if (v0 < 0) {
    0x00008bac bltz v0, 0x8f18           |             goto label_16;
                                         |         }
    0x00008bb0 lw t9, -0x7a78(gp)        |         t9 = sym.imp.sd_event_add_signal;
    0x00008bb4 lw a0, -0x353c(s3)        |         a0 = *((s3 - 3407));
    0x00008bb8 sw zero, 0x10(sp)         |         *(var_10h) = 0;
    0x00008bbc move a3, zero             |         a3 = 0;
    0x00008bc0 addiu a2, zero, 2         |         a2 = 2;
    0x00008bc4 move a1, zero             |         a1 = 0;
    0x00008bc8 jalr t9                   |         t9 ();
    0x00008bcc lw gp, 0x18(sp)           |         gp = *(var_18h);
                                         |         if (v0 < 0) {
    0x00008bd0 bltz v0, 0x8f38           |             goto label_17;
                                         |         }
    0x00008bd4 lw t9, -0x79bc(gp)        |         t9 = sym.imp.sd_bus_attach_event;
    0x00008bd8 lw a1, -0x353c(s3)        |         a1 = *((s3 - 3407));
    0x00008bdc lw a0, (s1)               |         a0 = *(s1);
    0x00008be0 move a2, zero             |         a2 = 0;
    0x00008be4 jalr t9                   |         t9 ();
    0x00008be8 lw gp, 0x18(sp)           |         gp = *(var_18h);
                                         |         if (v0 < 0) {
    0x00008bec bltz v0, 0x8f58           |             goto label_18;
                                         |         }
    0x00008bf0 lw t9, -0x7fc8(gp)        |         t9 = sym.cards_get_internal_card_names;
    0x00008bf4 addiu a0, sp, 0x28        |         a0 = sp + 0x28;
    0x00008bf8 bal 0x9ec0                |         sym_cards_get_internal_card_names ();
    0x00008bfc lw gp, 0x18(sp)           |         gp = *(var_18h);
                                         |         if (v0 == 0) {
    0x00008c00 beqz v0, 0x8d2c           |             goto label_2;
                                         |         }
    0x00008c04 lw t9, -0x7fc4(gp)        |         t9 = sym.internal_device_setup;
    0x00008c08 lw a1, -0x353c(s3)        |         a1 = *((s3 - 3407));
    0x00008c0c lw a0, -0x3538(s2)        |         a0 = *((s2 - 3406));
    0x00008c10 bal 0xa0b4                |         sym_internal_device_setup ();
    0x00008c14 lw gp, 0x18(sp)           |         gp = *(var_18h);
                                         |         if (v0 <= 0) {
    0x00008c18 blez v0, 0x9028           |             goto label_19;
                                         |         }
                                         | label_7:
    0x00008c1c lw t9, -0x7fc0(gp)        |         t9 = sym.internal_device_setup_dbus_api;
    0x00008c20 lw a0, -0x3538(s2)        |         a0 = *((s2 - 3406));
    0x00008c24 move a1, s4               |         a1 = s4;
    0x00008c28 bal 0xa7a0                |         sym_internal_device_setup_dbus_api ();
    0x00008c2c lw gp, 0x18(sp)           |         gp = *(var_18h);
                                         |         if (v0 < 0) {
    0x00008c30 bltz v0, 0x9008           |             goto label_20;
                                         |         }
                                         | label_6:
    0x00008c34 lw t9, -0x7fbc(gp)        |         t9 = sym.settings_dbus_add_interface;
                                         |         if (s0 != 0) {
    0x00008c38 bnez s0, 0x8f9c           |             goto label_21;
                                         |         }
                                         | label_5:
    0x00008c3c lw t9, -0x7fb8(gp)        |         t9 = sym.external_dbus_add_interface;
    0x00008c40 lw a0, (s1)               |         a0 = *(s1);
    0x00008c44 jalr t9                   |         t9 ();
    0x00008c48 lw gp, 0x18(sp)           |         gp = *(var_18h);
                                         |         if (v0 == 0) {
    0x00008c4c beqz v0, 0x8f7c           |             goto label_22;
                                         |         }
                                         | label_4:
    0x00008c50 lw a1, -0x7fdc(gp)        |         a1 = *(gp);
    0x00008c54 lw t9, -0x79c0(gp)        |         t9 = sym.imp.sd_bus_request_name;
    0x00008c58 lw a0, (s1)               |         a0 = *(s1);
    0x00008c5c move a2, zero             |         a2 = 0;
    0x00008c60 move a3, zero             |         a3 = 0;
                                         |         /* str.com.axis.AudioControl */
    0x00008c64 addiu a1, a1, -0x15e0     |         a1 += -0x15e0;
    0x00008c68 jalr t9                   |         t9 ();
    0x00008c6c lw gp, 0x18(sp)           |         gp = *(var_18h);
                                         |         if (v0 < 0) {
    0x00008c70 bltz v0, 0x8fd4           |             goto label_23;
                                         |         }
    0x00008c74 lw t9, -0x7834(gp)        |         t9 = sym.imp.sd_event_loop;
    0x00008c78 lw a0, -0x353c(s3)        |         a0 = *((s3 - 3407));
    0x00008c7c jalr t9                   |         t9 ();
    0x00008c80 lw gp, 0x18(sp)           |         gp = *(var_18h);
                                         |         if (v0 >= 0) {
    0x00008c84 bgez v0, 0x8d2c           |             goto label_2;
                                         |         }
    0x00008c88 lw t9, -0x7740(gp)        |         t9 = sym.imp.strerror;
    0x00008c8c negu a0, v0               |         __asm ("negu a0, v0");
    0x00008c90 jalr t9                   |         t9 ();
    0x00008c94 lw gp, 0x18(sp)           |         gp = *(var_18h);
    0x00008c98 move a3, v0               |         a3 = v0;
    0x00008c9c lw a2, -0x7fdc(gp)        |         a2 = *(gp);
    0x00008ca0 lw t9, -0x7954(gp)        |         t9 = sym.imp.__syslog_chk;
                                         |         /* str.Event_loop_failed:__s */
    0x00008ca4 addiu a2, a2, 0x54        |         a2 += 0x54;
    0x00008ca8 b 0x8eb0                  |         goto label_3;
                                         | label_9:
    0x00008cac lw t9, -0x7fb4(gp)        |         t9 = sym.device_capability_map_from_product_conf;
    0x00008cb0 lw a0, 0x20(sp)           |         a0 = *(var_20h);
    0x00008cb4 bal 0x11f1c               |         sym_device_capability_map_from_product_conf ();
    0x00008cb8 lw gp, 0x18(sp)           |         gp = *(var_18h);
    0x00008cbc lw t9, -0x7fb0(gp)        |         t9 = sym.device_settings_file_exists;
    0x00008cc0 move s4, v0               |         s4 = v0;
    0x00008cc4 bal 0xd9e0                |         sym_device_settings_file_exists ();
    0x00008cc8 lw gp, 0x18(sp)           |         gp = *(var_18h);
                                         |         if (v0 == 0) {
    0x00008ccc beqz v0, 0x8e18           |             goto label_24;
                                         |         }
    0x00008cd0 lw t9, -0x7fac(gp)        |         t9 = sym.device_settings_load;
    0x00008cd4 addiu a0, sp, 0x24        |         a0 = sp + 0x24;
    0x00008cd8 bal 0xd8d4                |         sym_device_settings_load ();
    0x00008cdc lw gp, 0x18(sp)           |         gp = *(var_18h);
                                         |         if (v0 == 0) {
    0x00008ce0 beqz v0, 0x8ee8           |             goto label_25;
                                         |         }
                                         | label_1:
    0x00008ce4 lw t9, -0x7fa8(gp)        |         t9 = sym.cards_set_device_settings;
    0x00008ce8 lw a0, 0x24(sp)           |         a0 = *(var_24h);
    0x00008cec bal 0xad20                |         sym_cards_set_device_settings ();
    0x00008cf0 lw gp, 0x18(sp)           |         gp = *(var_18h);
    0x00008cf4 b 0x8aa0                  |         
                                         |     } while (1);
                                         | label_12:
    0x00008cf8 lw t9, -0x7740(gp)        |     t9 = sym.imp.strerror;
    0x00008cfc negu a0, v0               |     __asm ("negu a0, v0");
    0x00008d00 jalr t9                   |     t9 ();
    0x00008d04 lw gp, 0x18(sp)           |     gp = *(var_18h);
    0x00008d08 move a3, v0               |     a3 = v0;
    0x00008d0c addiu a1, zero, 1         |     a1 = 1;
    0x00008d10 lw a2, -0x7fdc(gp)        |     a2 = *(gp);
    0x00008d14 lw t9, -0x7954(gp)        |     t9 = sym.imp.__syslog_chk;
                                         |     /* str.Failed_to_add_object_manager:__s */
    0x00008d18 addiu a2, a2, -0x158      |     a2 += -aav.0x00000158;
    0x00008d1c addiu a0, zero, 3         |     a0 = 3;
    0x00008d20 jalr t9                   |     t9 ();
    0x00008d24 lw gp, 0x18(sp)           |     gp = *(var_18h);
    0x00008d28 lw s3, -0x7fd8(gp)        |     s3 = *((gp - 8182));
                                         |     do {
                                         | label_2:
    0x00008d2c lw t9, -0x7fa4(gp)        |         t9 = sym.external_dbus_remove_interface;
    0x00008d30 jalr t9                   |         t9 ();
    0x00008d34 nop                       |         
    0x00008d38 lw gp, 0x18(sp)           |         gp = *(var_18h);
    0x00008d3c lw t9, -0x7714(gp)        |         t9 = sym.imp.sd_bus_slot_unref;
    0x00008d40 lw a0, -0x3538(s2)        |         a0 = *((s2 - 3406));
    0x00008d44 jalr t9                   |         t9 ();
    0x00008d48 lw gp, 0x18(sp)           |         gp = *(var_18h);
    0x00008d4c lw a0, -0x353c(s3)        |         a0 = *((s3 - 3407));
    0x00008d50 lw t9, -0x7a90(gp)        |         t9 = sym.imp.sd_event_unref;
    0x00008d54 sw v0, -0x3538(s2)        |         *((s2 - 3406)) = v0;
    0x00008d58 jalr t9                   |         t9 ();
    0x00008d5c lw gp, 0x18(sp)           |         gp = *(var_18h);
    0x00008d60 lw a0, (s1)               |         a0 = *(s1);
    0x00008d64 lw t9, -0x7948(gp)        |         t9 = sym.imp.sd_bus_unref;
    0x00008d68 sw v0, -0x353c(s3)        |         *((s3 - 3407)) = v0;
    0x00008d6c jalr t9                   |         t9 ();
    0x00008d70 lw gp, 0x18(sp)           |         gp = *(var_18h);
    0x00008d74 lw t9, -0x7fa0(gp)        |         t9 = sym.internal_device_cleanup;
    0x00008d78 sw v0, (s1)               |         *(s1) = v0;
    0x00008d7c bal 0xa84c                |         sym_internal_device_cleanup ();
    0x00008d80 lw gp, 0x18(sp)           |         gp = *(var_18h);
    0x00008d84 lw t9, -0x7f9c(gp)        |         t9 = sym.device_capability_free_devices;
    0x00008d88 move a0, s4               |         a0 = s4;
    0x00008d8c bal 0x11e40               |         sym_device_capability_free_devices ();
    0x00008d90 lw gp, 0x18(sp)           |         gp = *(var_18h);
    0x00008d94 lw t9, -0x7f98(gp)        |         t9 = sym.cards_free_card_names;
    0x00008d98 lw a0, 0x28(sp)           |         a0 = *(var_28h);
    0x00008d9c bal 0xa04c                |         sym_cards_free_card_names ();
    0x00008da0 lw gp, 0x18(sp)           |         gp = *(var_18h);
    0x00008da4 lw t9, -0x7f94(gp)        |         t9 = sym.cards_free_card_types;
    0x00008da8 bal 0xaaf4                |         sym_cards_free_card_types ();
    0x00008dac nop                       |         
    0x00008db0 lw gp, 0x18(sp)           |         gp = *(var_18h);
    0x00008db4 addiu a1, zero, 1         |         a1 = 1;
    0x00008db8 addiu a0, zero, 6         |         a0 = 6;
    0x00008dbc lw a2, -0x7fdc(gp)        |         a2 = *(gp);
    0x00008dc0 lw t9, -0x7954(gp)        |         t9 = sym.imp.__syslog_chk;
                                         |         /* str.Terminating */
    0x00008dc4 addiu a2, a2, 0x6c        |         a2 += 0x6c;
    0x00008dc8 jalr t9                   |         t9 ();
    0x00008dcc lw gp, 0x18(sp)           |         gp = *(var_18h);
    0x00008dd0 move v0, zero             |         v0 = 0;
    0x00008dd4 b 0x8a68                  |         goto label_0;
                                         | label_11:
    0x00008dd8 lw t9, -0x7740(gp)        |         t9 = sym.imp.strerror;
    0x00008ddc negu a0, v0               |         __asm ("negu a0, v0");
    0x00008de0 jalr t9                   |         t9 ();
    0x00008de4 lw gp, 0x18(sp)           |         gp = *(var_18h);
    0x00008de8 move a3, v0               |         a3 = v0;
    0x00008dec addiu a1, zero, 1         |         a1 = 1;
    0x00008df0 lw a2, -0x7fdc(gp)        |         a2 = *(gp);
    0x00008df4 lw t9, -0x7954(gp)        |         t9 = sym.imp.__syslog_chk;
                                         |         /* str.Failed_to_connect_to_system_bus:__s */
    0x00008df8 addiu a2, a2, -0x19c      |         a2 += -aav.0x0000019c;
    0x00008dfc addiu a0, zero, 3         |         a0 = 3;
    0x00008e00 jalr t9                   |         t9 ();
    0x00008e04 lw gp, 0x18(sp)           |         gp = *(var_18h);
    0x00008e08 lw s1, -0x7fcc(gp)        |         s1 = *(gp);
    0x00008e0c lw s2, -0x7fd8(gp)        |         s2 = *((gp - 8182));
    0x00008e10 lw s3, -0x7fd8(gp)        |         s3 = *((gp - 8182));
    0x00008e14 b 0x8d2c                  |         
                                         |     } while (1);
                                         | label_24:
    0x00008e18 lw a3, -0x7fdc(gp)        |     a3 = *(gp);
    0x00008e1c lw a2, -0x7fdc(gp)        |     a2 = *(gp);
    0x00008e20 lw t9, -0x7954(gp)        |     t9 = sym.imp.__syslog_chk;
                                         |     /* str._etc_audiocontrol_device_settings.json */
    0x00008e24 addiu a3, a3, -0x1054     |     a3 += -0x1054;
                                         |     /* str.Didnt_find__s_assuming_first_time_setup_or_factory_reset */
    0x00008e28 addiu a2, a2, -0x210      |     a2 += -aav.0x00000210;
    0x00008e2c addiu a1, zero, 1         |     a1 = 1;
    0x00008e30 addiu a0, zero, 6         |     a0 = 6;
    0x00008e34 jalr t9                   |     t9 ();
    0x00008e38 lw gp, 0x18(sp)           |     gp = *(var_18h);
    0x00008e3c lw t9, -0x7f90(gp)        |     t9 = sym.device_settings_map_from_product_conf;
    0x00008e40 lw a0, 0x20(sp)           |     a0 = *(var_20h);
    0x00008e44 bal 0xdf84                |     sym_device_settings_map_from_product_conf ();
    0x00008e48 lw gp, 0x18(sp)           |     gp = *(var_18h);
    0x00008e4c move a0, v0               |     a0 = v0;
    0x00008e50 lw t9, -0x7f8c(gp)        |     t9 = sym.device_settings_save;
    0x00008e54 sw v0, 0x24(sp)           |     *(var_24h) = v0;
    0x00008e58 bal 0xd7ec                |     sym_device_settings_save ();
    0x00008e5c lw gp, 0x18(sp)           |     gp = *(var_18h);
                                         |     if (v0 != 0) {
    0x00008e60 bnez v0, 0x8ce4           |         goto label_1;
                                         |     }
    0x00008e64 lw a2, -0x7fdc(gp)        |     a2 = *(gp);
    0x00008e68 lw t9, -0x7954(gp)        |     t9 = sym.imp.__syslog_chk;
                                         |     /* str.Failed_to_create__etc_audiocontrol_device_settings.json */
    0x00008e6c addiu a2, a2, -0x1d4      |     a2 += -aav.0x000001d4;
                                         |     do {
    0x00008e70 addiu a1, zero, 1         |         a1 = 1;
    0x00008e74 addiu a0, zero, 3         |         a0 = 3;
    0x00008e78 jalr t9                   |         t9 ();
    0x00008e7c lw gp, 0x18(sp)           |         gp = *(var_18h);
    0x00008e80 lw s1, -0x7fcc(gp)        |         s1 = *(gp);
    0x00008e84 lw s2, -0x7fd8(gp)        |         s2 = *((gp - 8182));
    0x00008e88 lw s3, -0x7fd8(gp)        |         s3 = *((gp - 8182));
    0x00008e8c b 0x8d2c                  |         goto label_2;
                                         | label_13:
    0x00008e90 lw t9, -0x7740(gp)        |         t9 = sym.imp.strerror;
    0x00008e94 negu a0, v0               |         __asm ("negu a0, v0");
    0x00008e98 jalr t9                   |         t9 ();
    0x00008e9c lw gp, 0x18(sp)           |         gp = *(var_18h);
    0x00008ea0 move a3, v0               |         a3 = v0;
    0x00008ea4 lw a2, -0x7fdc(gp)        |         a2 = *(gp);
    0x00008ea8 lw t9, -0x7954(gp)        |         t9 = sym.imp.__syslog_chk;
                                         |         /* str.Failed_to_allocate_event_loop:__s */
    0x00008eac addiu a2, a2, -0x134      |         a2 += -aav.0x00000134;
                                         | label_3:
    0x00008eb0 addiu a1, zero, 1         |         a1 = 1;
    0x00008eb4 addiu a0, zero, 3         |         a0 = 3;
    0x00008eb8 jalr t9                   |         t9 ();
    0x00008ebc lw gp, 0x18(sp)           |         gp = *(var_18h);
    0x00008ec0 addiu v0, zero, 1         |         v0 = 1;
    0x00008ec4 b 0x8a68                  |         goto label_0;
                                         | label_14:
    0x00008ec8 lw a2, -0x7fdc(gp)        |         a2 = *(gp);
    0x00008ecc lw t9, -0x7954(gp)        |         t9 = sym.imp.__syslog_chk;
                                         |         /* str.Failed_to_add_signals_to_signal_set */
    0x00008ed0 addiu a2, a2, -0x110      |         a2 += -aav.0x00000110;
    0x00008ed4 addiu a1, zero, 1         |         a1 = 1;
    0x00008ed8 addiu a0, zero, 3         |         a0 = 3;
    0x00008edc jalr t9                   |         t9 ();
    0x00008ee0 lw gp, 0x18(sp)           |         gp = *(var_18h);
    0x00008ee4 b 0x8d2c                  |         goto label_2;
                                         | label_25:
    0x00008ee8 lw a2, -0x7fdc(gp)        |         a2 = *(gp);
    0x00008eec lw t9, -0x7954(gp)        |         t9 = sym.imp.__syslog_chk;
                                         |         /* str.Failed_to_load__etc_audiocontrol_device_settings.json */
    0x00008ef0 addiu a2, a2, -0x248      |         a2 += -0x248;
    0x00008ef4 b 0x8e70                  |         
                                         |     } while (1);
                                         | label_15:
    0x00008ef8 lw a2, -0x7fdc(gp)        |     a2 = *(gp);
    0x00008efc lw t9, -0x7954(gp)        |     t9 = sym.imp.__syslog_chk;
                                         |     /* str.Failed_to_block_signals */
    0x00008f00 addiu a2, a2, -0xec       |     a2 += -0xec;
    0x00008f04 addiu a1, zero, 1         |     a1 = 1;
    0x00008f08 addiu a0, zero, 3         |     a0 = 3;
    0x00008f0c jalr t9                   |     t9 ();
    0x00008f10 lw gp, 0x18(sp)           |     gp = *(var_18h);
    0x00008f14 b 0x8d2c                  |     goto label_2;
                                         | label_16:
    0x00008f18 lw a2, -0x7fdc(gp)        |     a2 = *(gp);
    0x00008f1c lw t9, -0x7954(gp)        |     t9 = sym.imp.__syslog_chk;
                                         |     /* str.Failed_to_add_SIGTERM_event_to_event_loop */
    0x00008f20 addiu a2, a2, -0xd4       |     a2 += -0xd4;
    0x00008f24 addiu a1, zero, 1         |     a1 = 1;
    0x00008f28 addiu a0, zero, 3         |     a0 = 3;
    0x00008f2c jalr t9                   |     t9 ();
    0x00008f30 lw gp, 0x18(sp)           |     gp = *(var_18h);
    0x00008f34 b 0x8d2c                  |     goto label_2;
                                         | label_17:
    0x00008f38 lw a2, -0x7fdc(gp)        |     a2 = *(gp);
    0x00008f3c lw t9, -0x7954(gp)        |     t9 = sym.imp.__syslog_chk;
                                         |     /* str.Failed_to_add_SIGINT_event_to_event_loop */
    0x00008f40 addiu a2, a2, -0xa8       |     a2 += -0xa8;
    0x00008f44 addiu a1, zero, 1         |     a1 = 1;
    0x00008f48 addiu a0, zero, 3         |     a0 = 3;
    0x00008f4c jalr t9                   |     t9 ();
    0x00008f50 lw gp, 0x18(sp)           |     gp = *(var_18h);
    0x00008f54 b 0x8d2c                  |     goto label_2;
                                         | label_18:
    0x00008f58 lw t9, -0x7740(gp)        |     t9 = sym.imp.strerror;
    0x00008f5c negu a0, v0               |     __asm ("negu a0, v0");
    0x00008f60 jalr t9                   |     t9 ();
    0x00008f64 lw gp, 0x18(sp)           |     gp = *(var_18h);
    0x00008f68 move a3, v0               |     a3 = v0;
    0x00008f6c lw a2, -0x7fdc(gp)        |     a2 = *(gp);
    0x00008f70 lw t9, -0x7954(gp)        |     t9 = sym.imp.__syslog_chk;
                                         |     /* str.Failed_to_attach_event_to_bus:__s */
    0x00008f74 addiu a2, a2, -0x7c       |     a2 += -0x7c;
    0x00008f78 b 0x8eb0                  |     goto label_3;
                                         | label_22:
    0x00008f7c lw a2, -0x7fdc(gp)        |     a2 = *(gp);
    0x00008f80 lw t9, -0x7954(gp)        |     t9 = sym.imp.__syslog_chk;
                                         |     /* str.No_external_devices_can_be_added. */
    0x00008f84 addiu a2, a2, 0xc         |     a2 += 0xc;
    0x00008f88 addiu a1, zero, 1         |     a1 = 1;
    0x00008f8c addiu a0, zero, 6         |     a0 = 6;
    0x00008f90 jalr t9                   |     t9 ();
    0x00008f94 lw gp, 0x18(sp)           |     gp = *(var_18h);
    0x00008f98 b 0x8c50                  |     goto label_4;
                                         | label_21:
    0x00008f9c lw a2, 0x24(sp)           |     a2 = *(var_24h);
    0x00008fa0 lw a0, (s1)               |     a0 = *(s1);
    0x00008fa4 addiu a1, s2, -0x3538     |     a1 = s2 + -0x3538;
    0x00008fa8 jalr t9                   |     t9 ();
    0x00008fac lw gp, 0x18(sp)           |     gp = *(var_18h);
                                         |     if (v0 != 0) {
    0x00008fb0 bnez v0, 0x8c3c           |         goto label_5;
                                         |     }
    0x00008fb4 lw a2, -0x7fdc(gp)        |     a2 = *(gp);
    0x00008fb8 lw t9, -0x7954(gp)        |     t9 = sym.imp.__syslog_chk;
                                         |     /* str.Failed_to_setup_DBus_for_DeviceSettings */
    0x00008fbc addiu a2, a2, -0x1c       |     a2 += -0x1c;
    0x00008fc0 addiu a1, zero, 1         |     a1 = 1;
    0x00008fc4 addiu a0, zero, 3         |     a0 = 3;
    0x00008fc8 jalr t9                   |     t9 ();
    0x00008fcc lw gp, 0x18(sp)           |     gp = *(var_18h);
    0x00008fd0 b 0x8c3c                  |     goto label_5;
                                         | label_23:
    0x00008fd4 lw t9, -0x7740(gp)        |     t9 = sym.imp.strerror;
    0x00008fd8 negu a0, v0               |     __asm ("negu a0, v0");
    0x00008fdc jalr t9                   |     t9 ();
    0x00008fe0 lw gp, 0x18(sp)           |     gp = *(var_18h);
    0x00008fe4 move a3, v0               |     a3 = v0;
    0x00008fe8 addiu a1, zero, 1         |     a1 = 1;
    0x00008fec lw a2, -0x7fdc(gp)        |     a2 = *(gp);
    0x00008ff0 lw t9, -0x7954(gp)        |     t9 = sym.imp.__syslog_chk;
                                         |     /* str.Failed_to_acquire_service_name:__s */
    0x00008ff4 addiu a2, a2, 0x30        |     a2 += 0x30;
    0x00008ff8 addiu a0, zero, 3         |     a0 = 3;
    0x00008ffc jalr t9                   |     t9 ();
    0x00009000 nop                       |     
    0x00009004 sll s2, zero, 0           |     s2 = 0;
                                         | label_20:
    0x00009008 lw a2, -0x7fdc(gp)        |     a2 = *(gp);
    0x0000900c lw t9, -0x7954(gp)        |     t9 = sym.imp.__syslog_chk;
                                         |     /* str.Failed_to_setup_DBus_API. */
    0x00009010 addiu a2, a2, -0x38       |     a2 += -0x38;
    0x00009014 addiu a1, zero, 1         |     a1 = 1;
    0x00009018 addiu a0, zero, 6         |     a0 = 6;
    0x0000901c jalr t9                   |     t9 ();
    0x00009020 lw gp, 0x18(sp)           |     gp = *(var_18h);
    0x00009024 b 0x8c34                  |     goto label_6;
                                         | label_19:
    0x00009028 lw a2, -0x7fdc(gp)        |     a2 = *(gp);
    0x0000902c lw t9, -0x7954(gp)        |     t9 = sym.imp.__syslog_chk;
                                         |     /* str.No_built_in_devices_are_set_up. */
    0x00009030 addiu a2, a2, -0x58       |     a2 += -0x58;
    0x00009034 addiu a1, zero, 1         |     a1 = 1;
    0x00009038 addiu a0, zero, 6         |     a0 = 6;
    0x0000903c jalr t9                   |     t9 ();
    0x00009040 lw gp, 0x18(sp)           |     gp = *(var_18h);
    0x00009044 b 0x8c1c                  |     goto label_7;
                                         | label_10:
    0x00009048 lw t9, -0x79a8(gp)        |     t9 = sym.imp.__stack_chk_fail;
    0x0000904c jalr t9                   |     t9 ();
    0x00009050 nop                       |     
    0x00009054 nop                       |     
    0x00009058 nop                       |     
    0x0000905c nop                       |     
                                         | }

[*] Function system used 3 times audiocontrol