[*] Binary protection state of audiocontrol

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


[*] Function strcat tear down of audiocontrol

    ; assembly                           | /* r2dec pseudo code output */
                                         | /* /logs/firmware/unblob_extracted/firmware_extract/4325012-58052244.squashfs_v4_le_extract/usr/bin/audiocontrol @ 0x14520 */
                                         | #include <stdint.h>
                                         |  
    ; (fcn) fcn.00014520 ()              | void fcn_00014520 () {
    0x00014520 lui gp, 5                 |     
    0x00014524 addiu gp, gp, -0x440      |     
    0x00014528 addu gp, gp, t9           |     gp += t9;
    0x0001452c addiu sp, sp, -0x50       |     
    0x00014530 lw t9, -0x79c8(gp)        |     t9 = sym.imp.fopen;
    0x00014534 sw s3, 0x34(sp)           |     *(var_34h) = s3;
    0x00014538 lw s3, -0x7934(gp)        |     s3 = *((gp - 7757));
    0x0001453c sw s5, 0x3c(sp)           |     *(var_3ch_2) = s5;
    0x00014540 sw s4, 0x38(sp)           |     *(var_38h) = s4;
    0x00014544 lw v0, (s3)               |     v0 = *(s3);
    0x00014548 move s4, a0               |     s4 = a0;
    0x0001454c move s5, a1               |     s5 = a1;
    0x00014550 lw a0, -0x7fdc(gp)        |     a0 = *(gp);
    0x00014554 lw a1, -0x7fdc(gp)        |     a1 = *(gp);
    0x00014558 sw gp, 0x10(sp)           |     *(var_10h_2) = gp;
    0x0001455c sw ra, 0x4c(sp)           |     *(var_4ch_2) = ra;
    0x00014560 sw fp, 0x48(sp)           |     *(var_48h_2) = fp;
    0x00014564 sw s7, 0x44(sp)           |     *(var_44h_2) = s7;
    0x00014568 sw s6, 0x40(sp)           |     *(var_40h_2) = s6;
    0x0001456c sw s2, 0x30(sp)           |     *(var_30h_2) = s2;
    0x00014570 sw s1, 0x2c(sp)           |     *(var_2ch_2) = s1;
    0x00014574 sw s0, 0x28(sp)           |     *(var_28h_2) = s0;
                                         |     /* str._sys_devices_soc0_machine */
    0x00014578 addiu a0, a0, 0x3e8       |     a0 += 0x3e8;
    0x0001457c addiu a1, a1, 0x6dbc      |     a1 += 0x6dbc;
    0x00014580 sw v0, 0x24(sp)           |     *(var_24h_2) = v0;
    0x00014584 jalr t9                   |     t9 ();
    0x00014588 nop                       |     
    0x0001458c lw gp, 0x10(sp)           |     gp = *(var_10h_2);
    0x00014590 sw zero, 0x20(sp)         |     *(var_20h_2) = 0;
                                         |     if (v0 == 0) {
    0x00014594 beqz v0, 0x14710          |         goto label_3;
                                         |     }
    0x00014598 lw a1, -0x7fdc(gp)        |     a1 = *(gp);
    0x0001459c lw t9, -0x7a34(gp)        |     t9 = sym.imp.fscanf;
    0x000145a0 addiu a2, sp, 0x20        |     a2 = sp + 0x20;
                                         |     /* str._m__n_ */
    0x000145a4 addiu a1, a1, 0x424       |     a1 += 0x424;
    0x000145a8 move a0, v0               |     a0 = v0;
    0x000145ac move s2, v0               |     s2 = v0;
    0x000145b0 jalr t9                   |     t9 ();
    0x000145b4 addiu v1, zero, 1         |     v1 = 1;
    0x000145b8 lw gp, 0x10(sp)           |     gp = *(var_10h_2);
                                         |     if (v0 != v1) {
    0x000145bc bne v0, v1, 0x146bc       |         goto label_4;
                                         |     }
    0x000145c0 lw a1, -0x7fdc(gp)        |     a1 = *(gp);
    0x000145c4 lw s1, 0x20(sp)           |     s1 = *(var_20h_2);
    0x000145c8 lw s0, -0x7fd8(gp)        |     s0 = *((gp - 8182));
    0x000145cc lw t9, -0x7a40(gp)        |     t9 = sym.imp.strncmp;
    0x000145d0 addiu a2, zero, 8         |     a2 = 8;
                                         |     /* str.ARTPEC_5 */
    0x000145d4 addiu a1, a1, 0x3dc       |     a1 += aav.0x000003dc;
    0x000145d8 move a0, s1               |     a0 = s1;
    0x000145dc jalr t9                   |     t9 ();
                                         |     /* esilref: 'ARTPEC-5' */
    0x000145e0 addiu s0, s0, -0x5440     |     s0 += -0x5440;
    0x000145e4 move s7, s0               |     s7 = s0;
    0x000145e8 move s6, zero             |     s6 = 0;
    0x000145ec addiu fp, zero, 6         |     fp = 6;
    0x000145f0 lw gp, 0x10(sp)           |     gp = *(var_10h_2);
                                         |     if (v0 == 0) {
    0x000145f4 beqz v0, 0x14638          |         goto label_5;
                                         |     }
                                         |     do {
    0x000145f8 addiu s6, s6, 1           |         s6++;
    0x000145fc addiu s7, s7, 0xc         |         s7 += 0xc;
                                         |         if (s6 == fp) {
    0x00014600 beq s6, fp, 0x146e4       |             goto label_6;
                                         |         }
    0x00014604 lw a1, (s7)               |         a1 = *(s7);
    0x00014608 lw t9, -0x78d8(gp)        |         t9 = sym.imp.strlen;
    0x0001460c move a0, a1               |         a0 = a1;
    0x00014610 sw a1, 0x1c(sp)           |         *(var_1ch_2) = a1;
    0x00014614 jalr t9                   |         t9 ();
    0x00014618 lw gp, 0x10(sp)           |         gp = *(var_10h_2);
    0x0001461c lw a1, 0x1c(sp)           |         a1 = *(var_1ch_2);
    0x00014620 move a2, v0               |         a2 = v0;
    0x00014624 lw t9, -0x7a40(gp)        |         t9 = sym.imp.strncmp;
    0x00014628 move a0, s1               |         a0 = s1;
    0x0001462c jalr t9                   |         t9 ();
    0x00014630 lw gp, 0x10(sp)           |         gp = *(var_10h_2);
    0x00014634 bnez v0, 0x145f8          |         
                                         |     } while (v0 != 0);
                                         | label_5:
    0x00014638 sll v0, s6, 1             |     v0 = s6 << 1;
    0x0001463c addu v0, v0, s6           |     v0 += s6;
    0x00014640 sll v0, v0, 2             |     v0 <<= 2;
    0x00014644 addu v0, s0, v0           |     v0 = s0 + v0;
    0x00014648 addiu s0, zero, 1         |     s0 = 1;
    0x0001464c lw v1, 8(v0)              |     v1 = *((v0 + 2));
    0x00014650 lw v0, 4(v0)              |     v0 = *((v0 + 1));
    0x00014654 sw v1, (s5)               |     *(s5) = v1;
    0x00014658 sw v0, (s4)               |     *(s4) = v0;
                                         |     do {
                                         | label_0:
    0x0001465c lw t9, -0x785c(gp)        |         t9 = sym.imp.free;
    0x00014660 move a0, s1               |         a0 = s1;
    0x00014664 jalr t9                   |         t9 ();
    0x00014668 lw gp, 0x10(sp)           |         gp = *(var_10h_2);
    0x0001466c lw t9, -0x78c0(gp)        |         t9 = sym.imp.fclose;
    0x00014670 move a0, s2               |         a0 = s2;
    0x00014674 jalr t9                   |         t9 ();
    0x00014678 lw gp, 0x10(sp)           |         gp = *(var_10h_2);
                                         | label_1:
    0x0001467c lw a0, 0x24(sp)           |         a0 = *(var_24h_2);
    0x00014680 lw v1, (s3)               |         v1 = *(s3);
    0x00014684 move v0, s0               |         v0 = s0;
                                         |         if (a0 != v1) {
    0x00014688 bne a0, v1, 0x14744       |             goto label_7;
                                         |         }
    0x0001468c lw ra, 0x4c(sp)           |         ra = *(var_4ch_2);
    0x00014690 lw fp, 0x48(sp)           |         fp = *(var_48h_2);
    0x00014694 lw s7, 0x44(sp)           |         s7 = *(var_44h_2);
    0x00014698 lw s6, 0x40(sp)           |         s6 = *(var_40h_2);
    0x0001469c lw s5, 0x3c(sp)           |         s5 = *(var_3ch_2);
    0x000146a0 lw s4, 0x38(sp)           |         s4 = *(var_38h);
    0x000146a4 lw s3, 0x34(sp)           |         s3 = *(var_34h);
    0x000146a8 lw s2, 0x30(sp)           |         s2 = *(var_30h_2);
    0x000146ac lw s1, 0x2c(sp)           |         s1 = *(var_2ch_2);
    0x000146b0 lw s0, 0x28(sp)           |         s0 = *(var_28h_2);
    0x000146b4 addiu sp, sp, 0x50        |         
    0x000146b8 jr ra                     |         return v0;
                                         | label_4:
    0x000146bc lw a2, -0x7fdc(gp)        |         a2 = *(gp);
    0x000146c0 lw t9, -0x7954(gp)        |         t9 = sym.imp.__syslog_chk;
                                         |         /* str.Could_not_read_machine_type. */
    0x000146c4 addiu a2, a2, 0x42c       |         a2 += 0x42c;
    0x000146c8 addiu a1, zero, 1         |         a1 = 1;
    0x000146cc addiu a0, zero, 3         |         a0 = 3;
    0x000146d0 jalr t9                   |         t9 ();
    0x000146d4 move s0, zero             |         s0 = 0;
    0x000146d8 lw gp, 0x10(sp)           |         gp = *(var_10h_2);
    0x000146dc lw s1, 0x20(sp)           |         s1 = *(var_20h_2);
    0x000146e0 b 0x1465c                 |         
                                         |     } while (1);
                                         | label_6:
    0x000146e4 lw a2, -0x7fdc(gp)        |     a2 = *(gp);
    0x000146e8 lw t9, -0x7954(gp)        |     t9 = sym.imp.__syslog_chk;
    0x000146ec move a3, s1               |     a3 = s1;
                                         |     /* str.Unsupported_machine__s. */
    0x000146f0 addiu a2, a2, 0x44c       |     a2 += 0x44c;
    0x000146f4 addiu a1, zero, 1         |     a1 = 1;
    0x000146f8 addiu a0, zero, 3         |     a0 = 3;
    0x000146fc jalr t9                   |     t9 ();
    0x00014700 move s0, zero             |     s0 = 0;
    0x00014704 lw gp, 0x10(sp)           |     gp = *(var_10h_2);
    0x00014708 lw s1, 0x20(sp)           |     s1 = *(var_20h_2);
    0x0001470c b 0x1465c                 |     goto label_0;
                                         | label_3:
    0x00014710 lw a2, -0x7fdc(gp)        |     a2 = *(gp);
    0x00014714 lw t9, -0x7954(gp)        |     t9 = sym.imp.__syslog_chk;
                                         |     /* str.Could_not_open_machine_file. */
    0x00014718 addiu a2, a2, 0x404       |     a2 += 0x404;
    0x0001471c addiu a1, zero, 1         |     a1 = 1;
    0x00014720 addiu a0, zero, 3         |     a0 = 3;
    0x00014724 jalr t9                   |     t9 ();
    0x00014728 lw gp, 0x10(sp)           |     gp = *(var_10h_2);
    0x0001472c lw a0, 0x20(sp)           |     a0 = *(var_20h_2);
    0x00014730 lw t9, -0x785c(gp)        |     t9 = sym.imp.free;
    0x00014734 move s0, zero             |     s0 = 0;
    0x00014738 jalr t9                   |     t9 ();
    0x0001473c lw gp, 0x10(sp)           |     gp = *(var_10h_2);
    0x00014740 b 0x1467c                 |     goto label_1;
                                         | label_7:
    0x00014744 lw t9, -0x79a8(gp)        |     t9 = sym.imp.__stack_chk_fail;
    0x00014748 jalr t9                   |     t9 ();
    0x0001474c nop                       |     
    0x00014750 lui gp, 5                 |     
    0x00014754 addiu gp, gp, -0x670      |     
    0x00014758 addu gp, gp, t9           |     gp += t9;
    0x0001475c lw v0, -0x7fd8(gp)        |     v0 = *((gp - 8182));
    0x00014760 addiu sp, sp, -0x30       |     
    0x00014764 lw a0, -0x352c(v0)        |     a0 = *((v0 - 3403));
    0x00014768 lw v0, -0x7fd8(gp)        |     v0 = *((gp - 8182));
    0x0001476c sw gp, 0x10(sp)           |     *(var_10h_3) = gp;
    0x00014770 sw s4, 0x28(sp)           |     *(var_28h_3) = s4;
    0x00014774 sw ra, 0x2c(sp)           |     *(var_2ch_3) = ra;
    0x00014778 sw s3, 0x24(sp)           |     *(var_24h_3) = s3;
    0x0001477c sw s2, 0x20(sp)           |     *(var_20h_3) = s2;
    0x00014780 sw s1, 0x1c(sp)           |     *(var_1ch) = s1;
    0x00014784 sw s0, 0x18(sp)           |     *(var_18h_4) = s0;
    0x00014788 lw s4, -0x3530(v0)        |     s4 = *((v0 - 3404));
                                         |     if (a0 == 0) {
    0x0001478c beqz a0, 0x1488c          |         goto label_8;
                                         |     }
                                         | label_2:
    0x00014790 lw t9, -0x7a68(gp)        |     t9 = sym.imp.strdup;
    0x00014794 jalr t9                   |     t9 ();
    0x00014798 nop                       |     
    0x0001479c move s2, v0               |     s2 = v0;
    0x000147a0 lw gp, 0x10(sp)           |     gp = *(var_10h_3);
                                         |     if (s4 == 0) {
    0x000147a4 beqz s4, 0x1483c          |         goto label_9;
                                         |     }
    0x000147a8 lw s3, (s4)               |     s3 = *(s4);
    0x000147ac move s1, s4               |     s1 = s4;
                                         |     if (s3 == 0) {
    0x000147b0 beqz s3, 0x1483c          |         goto label_9;
                                         |     }
    0x000147b4 lw t9, -0x78d8(gp)        |     t9 = sym.imp.strlen;
    0x000147b8 b 0x147e4                 |     
                                         |     while (v0 != 0) {
    0x000147bc lw v0, (s4)               |         v0 = *(s4);
    0x000147c0 move s2, s0               |         s2 = s0;
    0x000147c4 lw a1, 4(v0)              |         a1 = *((v0 + 1));
    0x000147c8 jalr t9                   |         t9 ();
    0x000147cc lw gp, 0x10(sp)           |         gp = *(var_10h_3);
                                         |         if (s1 == 0) {
    0x000147d0 beqz s1, 0x14840          |             goto label_10;
                                         |         }
    0x000147d4 lw s3, (s1)               |         s3 = *(s1);
    0x000147d8 lw a0, -0x7fdc(gp)        |         a0 = *(gp);
                                         |         if (s3 == 0) {
    0x000147dc beqz s3, 0x14844          |             goto label_11;
                                         |         }
    0x000147e0 lw t9, -0x78d8(gp)        |         t9 = sym.imp.strlen;
    0x000147e4 move a0, s2               |         a0 = s2;
    0x000147e8 jalr t9                   |         t9 ();
    0x000147ec lw gp, 0x10(sp)           |         gp = *(var_10h_3);
    0x000147f0 lw a0, 4(s3)              |         a0 = *((s3 + 1));
    0x000147f4 move s0, v0               |         s0 = v0;
    0x000147f8 lw t9, -0x78d8(gp)        |         t9 = sym.imp.strlen;
    0x000147fc addiu s1, s1, 4           |         s1 += 4;
    0x00014800 jalr t9                   |         t9 ();
    0x00014804 lw gp, 0x10(sp)           |         gp = *(var_10h_3);
    0x00014808 addu v0, s0, v0           |         v0 = s0 + v0;
    0x0001480c move a0, s2               |         a0 = s2;
    0x00014810 lw t9, -0x7778(gp)        |         t9 = sym.imp.realloc;
    0x00014814 addiu a1, v0, 2           |         a1 = v0 + 2;
    0x00014818 jalr t9                   |         t9 ();
    0x0001481c lw gp, 0x10(sp)           |         gp = *(var_10h_3);
    0x00014820 move s0, v0               |         s0 = v0;
    0x00014824 move a0, v0               |         a0 = v0;
    0x00014828 lw t9, -0x79f4(gp)        |         t9 = sym.imp.strcat
    0x0001482c bnez v0, 0x147bc          |         
                                         |     }
    0x00014830 move s0, s2               |     s0 = s2;
    0x00014834 move s1, zero             |     s1 = 0;
    0x00014838 b 0x1485c                 |     goto label_12;
                                         | label_9:
    0x0001483c move s0, s2               |     s0 = s2;
                                         | label_10:
    0x00014840 lw a0, -0x7fdc(gp)        |     a0 = *(gp);
                                         | label_11:
    0x00014844 lw t9, -0x7e54(gp)        |     t9 = sym.file_utils_set_file_content;
    0x00014848 move a1, s0               |     a1 = s0;
                                         |     /* str._run_audiocontrol_asound.conf */
    0x0001484c addiu a0, a0, 0x468       |     a0 += 0x468;
    0x00014850 bal 0x2e1bc               |     sym_file_utils_set_file_content ();
    0x00014854 lw gp, 0x10(sp)           |     gp = *(var_10h_3);
    0x00014858 move s1, v0               |     s1 = v0;
                                         | label_12:
    0x0001485c lw t9, -0x785c(gp)        |     t9 = sym.imp.free;
    0x00014860 move a0, s0               |     a0 = s0;
    0x00014864 jalr t9                   |     t9 ();
    0x00014868 lw ra, 0x2c(sp)           |     ra = *(var_2ch_3);
    0x0001486c move v0, s1               |     v0 = s1;
    0x00014870 lw s4, 0x28(sp)           |     s4 = *(var_28h_3);
    0x00014874 lw s3, 0x24(sp)           |     s3 = *(var_24h_3);
    0x00014878 lw s2, 0x20(sp)           |     s2 = *(var_20h_3);
    0x0001487c lw s1, 0x1c(sp)           |     s1 = *(var_1ch);
    0x00014880 lw s0, 0x18(sp)           |     s0 = *(var_18h_4);
    0x00014884 addiu sp, sp, 0x30        |     
    0x00014888 jr ra                     |     return v0;
                                         | label_8:
    0x0001488c lw a0, -0x7ea4(gp)        |     a0 = *((gp - 8105));
    0x00014890 addiu a0, a0, -0x79f8     |     a0 += -0x79f8;
    0x00014894 b 0x14790                 |     goto label_2;
                                         | }

[*] Function strcat used 2 times audiocontrol