[*] Binary protection state of sadc

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


[*] Function fprintf tear down of sadc

    ; assembly                           | /* r2dec pseudo code output */
                                         | /* /logs/firmware/unblob_extracted/firmware_extract/4325012-58052244.squashfs_v4_le_extract/usr/libexec/sa/sadc @ 0x4208 */
                                         | #include <stdint.h>
                                         |  
    ; (fcn) sym.create_sa_file ()        | void create_sa_file () {
    0x00004208 lui gp, 2                 |     
    0x0000420c addiu gp, gp, 0x7938      |     
    0x00004210 addu gp, gp, t9           |     gp += t9;
    0x00004214 addiu sp, sp, -0x30       |     
    0x00004218 lw t9, -0x7d44(gp)        |     t9 = sym.imp.open;
    0x0000421c sw s1, 0x28(sp)           |     *(var_28h) = s1;
    0x00004220 move s1, a1               |     s1 = a1;
    0x00004224 sw gp, 0x18(sp)           |     *(var_18h) = gp;
    0x00004228 sw s0, 0x24(sp)           |     *(var_24h) = s0;
    0x0000422c sw ra, 0x2c(sp)           |     *(var_2ch) = ra;
    0x00004230 move s0, a0               |     s0 = a0;
    0x00004234 addiu a2, zero, 0x1a4     |     a2 = segment.NOTE;
    0x00004238 addiu a1, zero, 0x101     |     a1 = 0x101;
    0x0000423c move a0, s1               |     a0 = s1;
    0x00004240 jalr t9                   |     t9 ();
    0x00004244 lw gp, 0x18(sp)           |     gp = *(var_18h);
    0x00004248 sw v0, (s0)               |     *(s0) = v0;
                                         |     if (v0 >= 0) {
    0x0000424c bltz v0, 0x4298           |         
    0x00004250 lw t9, -0x7f84(gp)        |         t9 = sym.ask_for_flock;
    0x00004254 addiu a1, zero, 1         |         a1 = 1;
    0x00004258 move a0, v0               |         a0 = v0;
    0x0000425c bal 0x3a10                |         sym_ask_for_flock ();
    0x00004260 lw gp, 0x18(sp)           |         gp = *(var_18h_6);
    0x00004264 lw a0, (s0)               |         a0 = *(s0);
    0x00004268 lw t9, -0x7d64(gp)        |         t9 = sym.imp.ftruncate;
    0x0000426c move a1, zero             |         a1 = 0;
    0x00004270 jalr t9                   |         t9 ();
    0x00004274 lw gp, 0x18(sp)           |         gp = *(var_18h_6);
                                         |         if (v0 < 0) {
    0x00004278 bltz v0, 0x4298           |             goto label_0;
                                         |         }
    0x0000427c lw a0, (s0)               |         a0 = *(s0);
    0x00004280 lw ra, 0x2c(sp)           |         ra = *(var_2ch_5);
    0x00004284 lw s1, 0x28(sp)           |         s1 = *(var_28h_5);
    0x00004288 lw s0, 0x24(sp)           |         s0 = *(var_24h_6);
    0x0000428c lw t9, -0x7f78(gp)        |         t9 = sym.setup_file_hdr;
    0x00004290 addiu sp, sp, 0x30        |         
    0x00004294 b 0x3b6c                  |         void (*0x3b6c)() ();
                                         |     }
                                         | label_0:
    0x00004298 lw v0, -0x7cec(gp)        |     v0 = *((gp - 7995));
    0x0000429c lw t9, -0x7d68(gp)        |     t9 = sym.imp.__errno_location;
    0x000042a0 lw s0, (v0)               |     s0 = *(v0);
    0x000042a4 jalr t9                   |     t9 ();
    0x000042a8 lw gp, 0x18(sp)           |     gp = *(var_18h);
    0x000042ac lw t9, -0x7d34(gp)        |     t9 = sym.imp.strerror;
    0x000042b0 lw a0, (v0)               |     a0 = *(v0);
    0x000042b4 jalr t9                   |     t9 ();
    0x000042b8 lw gp, 0x18(sp)           |     gp = *(var_18h);
    0x000042bc move a0, s0               |     a0 = s0;
    0x000042c0 sw v0, 0x10(sp)           |     *(var_10h) = v0;
    0x000042c4 lw a2, -0x7fd0(gp)        |     a2 = sym.imp.strspn;
    0x000042c8 lw t9, -0x7d9c(gp)        |     t9 = sym.imp.__fprintf_chk
    0x000042cc move a3, s1               |     a3 = s1;
                                         |     /* str.Cannot_open__s:__s_n */
    0x000042d0 addiu a2, a2, 0x1f0       |     a2 += 0x1f0;
    0x000042d4 addiu a1, zero, 1         |     a1 = 1;
    0x000042d8 jalr t9                   |     t9 ();
    0x000042dc lw gp, 0x18(sp)           |     gp = *(var_18h);
    0x000042e0 lw t9, -0x7d3c(gp)        |     t9 = sym.imp.exit;
    0x000042e4 addiu a0, zero, 2         |     a0 = 2;
    0x000042e8 jalr t9                   |     return t9 ();
                                         | }
    ; assembly                                   | /* r2dec pseudo code output */
                                                 | /* /logs/firmware/unblob_extracted/firmware_extract/4325012-58052244.squashfs_v4_le_extract/usr/libexec/sa/sadc @ 0x63e8 */
                                                 | #include <stdint.h>
                                                 |  
    ; (fcn) sym.display_sa_file_version ()       | void display_sa_file_version () {
    0x000063e8 lui gp, 2                         |     
    0x000063ec addiu gp, gp, 0x5758              |     
    0x000063f0 addu gp, gp, t9                   |     gp += t9;
    0x000063f4 addiu sp, sp, -0x30               |     
    0x000063f8 lw a2, -0x7fd0(gp)                |     a2 = sym.imp.strspn;
    0x000063fc sw gp, 0x18(sp)                   |     *(var_18h_3) = gp;
    0x00006400 sw s1, 0x28(sp)                   |     *(var_28h_3) = s1;
    0x00006404 sw s0, 0x24(sp)                   |     *(var_24h) = s0;
    0x00006408 sw ra, 0x2c(sp)                   |     *(var_2ch) = ra;
    0x0000640c lbu v1, 6(a1)                     |     v1 = *((a1 + 6));
    0x00006410 lbu v0, 5(a1)                     |     v0 = *((a1 + 5));
    0x00006414 lbu a3, 4(a1)                     |     a3 = *((a1 + 4));
    0x00006418 lw t9, -0x7d9c(gp)                |     t9 = sym.imp.__fprintf_chk
    0x0000641c move s0, a1                       |     s0 = a1;
    0x00006420 sw v1, 0x14(sp)                   |     *(var_14h_3) = v1;
    0x00006424 sw v0, 0x10(sp)                   |     *(var_10h_4) = v0;
                                                 |     /* str.File_created_by_sar_sadc_from_sysstat_version__d._d._d */
    0x00006428 addiu a2, a2, 0x45c               |     a2 += aav.0x0000045c;
    0x0000642c addiu a1, zero, 1                 |     a1 = 1;
    0x00006430 move s1, a0                       |     s1 = a0;
    0x00006434 jalr t9                           |     t9 ();
    0x00006438 lbu a3, 7(s0)                     |     a3 = *((s0 + 7));
    0x0000643c lw gp, 0x18(sp)                   |     gp = *(var_18h_3);
                                                 |     if (a3 == 0) {
    0x00006440 bnez a3, 0x6464                   |         
    0x00006444 lw ra, 0x2c(sp)                   |         ra = *(var_2ch);
    0x00006448 lw s0, 0x24(sp)                   |         s0 = *(var_24h);
    0x0000644c move a1, s1                       |         a1 = s1;
    0x00006450 lw t9, -0x7d8c(gp)                |         t9 = sym.imp.fputc;
    0x00006454 lw s1, 0x28(sp)                   |         s1 = *(var_28h_3);
    0x00006458 addiu a0, zero, 0xa               |         a0 = 0xa;
    0x0000645c addiu sp, sp, 0x30                |         
    0x00006460 jr t9                             |         t9 ();
                                                 |     }
    0x00006464 lw a2, -0x7fd0(gp)                |     a2 = sym.imp.strspn;
    0x00006468 lw t9, -0x7d9c(gp)                |     t9 = sym.imp.__fprintf_chk
    0x0000646c move a0, s1                       |     a0 = s1;
    0x00006470 addiu a1, zero, 1                 |     a1 = 1;
                                                 |     /* esilref: '.&d' */
    0x00006474 addiu a2, a2, 0x494               |     a2 += 0x494;
    0x00006478 jalr t9                           |     t9 ();
    0x0000647c lw gp, 0x18(sp)                   |     gp = *(var_18h_3);
    0x00006480 lw ra, 0x2c(sp)                   |     ra = *(var_2ch);
    0x00006484 lw s0, 0x24(sp)                   |     s0 = *(var_24h);
    0x00006488 move a1, s1                       |     a1 = s1;
    0x0000648c lw t9, -0x7d8c(gp)                |     t9 = sym.imp.fputc;
    0x00006490 lw s1, 0x28(sp)                   |     s1 = *(var_28h_3);
    0x00006494 addiu a0, zero, 0xa               |     a0 = 0xa;
    0x00006498 addiu sp, sp, 0x30                |     
    0x0000649c jr t9                             |     return t9 ();
                                                 | }
    ; assembly                               | /* r2dec pseudo code output */
                                             | /* /logs/firmware/unblob_extracted/firmware_extract/4325012-58052244.squashfs_v4_le_extract/usr/libexec/sa/sadc @ 0xd900 */
                                             | #include <stdint.h>
                                             |  
    ; (fcn) sym.get_proc_cpu_nr ()           | void get_proc_cpu_nr () {
    0x0000d900 lui gp, 2                     |     
    0x0000d904 addiu gp, gp, -0x1dc0         |     
    0x0000d908 addu gp, gp, t9               |     gp += t9;
    0x0000d90c addiu sp, sp, -0x58           |     
    0x0000d910 lw a1, -0x7fd0(gp)            |     a1 = sym.imp.strspn;
    0x0000d914 sw s5, 0x4c(sp)               |     *(var_4ch) = s5;
    0x0000d918 lw s5, -0x7cf4(gp)            |     s5 = *((gp - 7997));
    0x0000d91c sw s0, 0x38(sp)               |     *(var_38h) = s0;
    0x0000d920 lw s0, -0x7fd0(gp)            |     s0 = sym.imp.strspn;
    0x0000d924 lw v0, (s5)                   |     v0 = *(s5);
    0x0000d928 lw t9, -0x7ce4(gp)            |     t9 = sym.imp.fopen;
    0x0000d92c sw gp, 0x18(sp)               |     *(var_18h) = gp;
    0x0000d930 sw ra, 0x54(sp)               |     *(var_54h) = ra;
    0x0000d934 sw s6, 0x50(sp)               |     *(var_50h) = s6;
    0x0000d938 sw s4, 0x48(sp)               |     *(var_48h) = s4;
    0x0000d93c sw s3, 0x44(sp)               |     *(var_44h) = s3;
    0x0000d940 sw s2, 0x40(sp)               |     *(var_40h) = s2;
    0x0000d944 sw s1, 0x3c(sp)               |     *(var_3ch) = s1;
    0x0000d948 addiu a1, a1, 0x1490          |     a1 += 0x1490;
                                             |     /* str._proc_stat */
    0x0000d94c addiu a0, s0, 0x41c           |     a0 = s0 + aav.0x0000041c;
    0x0000d950 sw v0, 0x34(sp)               |     *(var_34h) = v0;
    0x0000d954 jalr t9                       |     t9 ();
    0x0000d958 nop                           |     
    0x0000d95c lw gp, 0x18(sp)               |     gp = *(var_18h);
                                             |     if (v0 == 0) {
    0x0000d960 beqz v0, 0xda60               |         goto label_2;
                                             |     }
    0x0000d964 lw s2, -0x7fd0(gp)            |     s2 = sym.imp.strspn;
    0x0000d968 lw s3, -0x7fd0(gp)            |     s3 = sym.imp.strspn;
    0x0000d96c lw s6, -0x7fd0(gp)            |     s6 = sym.imp.strspn;
    0x0000d970 move s1, v0                   |     s1 = v0;
    0x0000d974 addiu s4, zero, -1            |     s4 = -1;
    0x0000d978 addiu s0, sp, 0x24            |     s0 = sp + 0x24;
                                             |     /* str.cpu_ */
    0x0000d97c addiu s2, s2, 0x428           |     s2 += aav.0x00000428;
                                             |     /* esilref: 'cpu' */
    0x0000d980 addiu s3, s3, 0x1430          |     s3 += 0x1430;
                                             |     do {
                                             | label_0:
    0x0000d984 lw t9, -0x7cf8(gp)            |         t9 = sym.imp.fgets;
    0x0000d988 move a2, s1                   |         a2 = s1;
    0x0000d98c addiu a1, zero, 0x10          |         a1 = 0x10;
    0x0000d990 move a0, s0                   |         a0 = s0;
    0x0000d994 jalr t9                       |         t9 ();
    0x0000d998 lw gp, 0x18(sp)               |         gp = *(var_18h);
                                             |         if (v0 == 0) {
    0x0000d99c beqz v0, 0xda18               |             goto label_3;
                                             |         }
                                             | label_1:
    0x0000d9a0 lw t9, -0x7da8(gp)            |         t9 = sym.imp.strncmp;
    0x0000d9a4 addiu a2, zero, 4             |         a2 = 4;
    0x0000d9a8 move a1, s2                   |         a1 = s2;
    0x0000d9ac move a0, s0                   |         a0 = s0;
    0x0000d9b0 jalr t9                       |         t9 ();
    0x0000d9b4 lw gp, 0x18(sp)               |         gp = *(var_18h);
    0x0000d9b8 beqz v0, 0xd984               |         
                                             |     } while (v0 == 0);
    0x0000d9bc lw t9, -0x7da8(gp)            |     t9 = sym.imp.strncmp;
    0x0000d9c0 addiu a2, zero, 3             |     a2 = 3;
    0x0000d9c4 move a1, s3                   |     a1 = s3;
    0x0000d9c8 move a0, s0                   |     a0 = s0;
    0x0000d9cc jalr t9                       |     t9 ();
    0x0000d9d0 lw gp, 0x18(sp)               |     gp = *(var_18h);
                                             |     if (v0 != 0) {
    0x0000d9d4 bnez v0, 0xd984               |         goto label_0;
                                             |     }
    0x0000d9d8 lw t9, -0x7d5c(gp)            |     t9 = sym.imp.__isoc99_sscanf;
    0x0000d9dc addiu a2, sp, 0x20            |     a2 = sp + 0x20;
                                             |     /* esilref: '&d' */
    0x0000d9e0 addiu a1, s6, 0x490           |     a1 = s6 + aav.0x00000490;
    0x0000d9e4 addiu a0, sp, 0x27            |     a0 = sp + 0x27;
    0x0000d9e8 jalr t9                       |     t9 ();
    0x0000d9ec lw gp, 0x18(sp)               |     gp = *(var_18h);
    0x0000d9f0 lw v0, 0x20(sp)               |     v0 = *(var_20h_4);
    0x0000d9f4 move a2, s1                   |     a2 = s1;
    0x0000d9f8 lw t9, -0x7cf8(gp)            |     t9 = sym.imp.fgets;
    0x0000d9fc slt v1, s4, v0                |     v1 = (s4 < v0) ? 1 : 0;
    0x0000da00 addiu a1, zero, 0x10          |     a1 = 0x10;
    0x0000da04 move a0, s0                   |     a0 = s0;
                                             |     if (v1 == 0) {
    0x0000da08 movn s4, v0, v1               |         s4 = v0;
                                             |     }
    0x0000da0c jalr t9                       |     t9 ();
    0x0000da10 lw gp, 0x18(sp)               |     gp = *(var_18h);
                                             |     if (v0 != 0) {
    0x0000da14 bnez v0, 0xd9a0               |         goto label_1;
                                             |     }
                                             | label_3:
    0x0000da18 lw t9, -0x7d94(gp)            |     t9 = sym.imp.fclose;
    0x0000da1c move a0, s1                   |     a0 = s1;
    0x0000da20 jalr t9                       |     t9 ();
    0x0000da24 lw a0, 0x34(sp)               |     a0 = *(var_34h);
    0x0000da28 lw v1, (s5)                   |     v1 = *(s5);
    0x0000da2c lw gp, 0x18(sp)               |     gp = *(var_18h);
    0x0000da30 addiu v0, s4, 1               |     v0 = s4 + 1;
                                             |     if (a0 == v1) {
    0x0000da34 bne a0, v1, 0xdab4            |         
    0x0000da38 lw ra, 0x54(sp)               |         ra = *(var_54h);
    0x0000da3c lw s6, 0x50(sp)               |         s6 = *(var_50h);
    0x0000da40 lw s5, 0x4c(sp)               |         s5 = *(var_4ch);
    0x0000da44 lw s4, 0x48(sp)               |         s4 = *(var_48h);
    0x0000da48 lw s3, 0x44(sp)               |         s3 = *(var_44h);
    0x0000da4c lw s2, 0x40(sp)               |         s2 = *(var_40h);
    0x0000da50 lw s1, 0x3c(sp)               |         s1 = *(var_3ch);
    0x0000da54 lw s0, 0x38(sp)               |         s0 = *(var_38h);
    0x0000da58 addiu sp, sp, 0x58            |         
    0x0000da5c jr ra                         |         return v0;
                                             | label_2:
    0x0000da60 lw v0, -0x7cec(gp)            |         v0 = *((gp - 7995));
    0x0000da64 lw t9, -0x7d68(gp)            |         t9 = sym.imp.__errno_location;
    0x0000da68 lw s1, (v0)                   |         s1 = *(v0);
    0x0000da6c jalr t9                       |         t9 ();
    0x0000da70 lw gp, 0x18(sp)               |         gp = *(var_18h);
    0x0000da74 lw t9, -0x7d34(gp)            |         t9 = sym.imp.strerror;
    0x0000da78 lw a0, (v0)                   |         a0 = *(v0);
    0x0000da7c jalr t9                       |         t9 ();
    0x0000da80 lw gp, 0x18(sp)               |         gp = *(var_18h);
    0x0000da84 move a0, s1                   |         a0 = s1;
    0x0000da88 sw v0, 0x10(sp)               |         *(var_10h) = v0;
    0x0000da8c lw a2, -0x7fd0(gp)            |         a2 = sym.imp.strspn;
    0x0000da90 lw t9, -0x7d9c(gp)            |         t9 = sym.imp.__fprintf_chk
                                             |         /* str._proc_stat */
    0x0000da94 addiu a3, s0, 0x41c           |         a3 = s0 + aav.0x0000041c;
                                             |         /* str.Cannot_open__s:__s_n */
    0x0000da98 addiu a2, a2, 0x1f0           |         a2 += 0x1f0;
    0x0000da9c addiu a1, zero, 1             |         a1 = 1;
    0x0000daa0 jalr t9                       |         t9 ();
    0x0000daa4 lw gp, 0x18(sp)               |         gp = *(var_18h);
    0x0000daa8 lw t9, -0x7d3c(gp)            |         t9 = sym.imp.exit;
    0x0000daac addiu a0, zero, 1             |         a0 = 1;
    0x0000dab0 jalr t9                       |         t9 ();
                                             |     }
    0x0000dab4 lw t9, -0x7d08(gp)            |     t9 = sym.imp.__stack_chk_fail;
    0x0000dab8 jalr t9                       |     t9 ();
    0x0000dabc nop                           |     
                                             | }
    ; assembly                               | /* r2dec pseudo code output */
                                             | /* /logs/firmware/unblob_extracted/firmware_extract/4325012-58052244.squashfs_v4_le_extract/usr/libexec/sa/sadc @ 0x64a0 */
                                             | #include <stdint.h>
                                             |  
    ; (fcn) sym.handle_invalid_sa_file ()    | void handle_invalid_sa_file () {
    0x000064a0 lui gp, 2                     |     
    0x000064a4 addiu gp, gp, 0x56a0          |     
    0x000064a8 addu gp, gp, t9               |     gp += t9;
    0x000064ac addiu sp, sp, -0x30           |     
    0x000064b0 lw t9, -0x7d9c(gp)            |     t9 = sym.imp.__fprintf_chk
    0x000064b4 sw s0, 0x1c(sp)               |     *(var_1ch) = s0;
    0x000064b8 lw s0, -0x7cec(gp)            |     s0 = *((gp - 7995));
    0x000064bc sw s2, 0x24(sp)               |     *(var_24h) = s2;
    0x000064c0 move s2, a3                   |     s2 = a3;
    0x000064c4 move a3, a2                   |     a3 = a2;
    0x000064c8 lw a2, -0x7fd0(gp)            |     a2 = sym.imp.strspn;
    0x000064cc sw s1, 0x20(sp)               |     *(var_20h) = s1;
    0x000064d0 move s1, a0                   |     s1 = a0;
    0x000064d4 lw a0, (s0)                   |     a0 = *(s0);
    0x000064d8 sw gp, 0x10(sp)               |     *(var_10h) = gp;
    0x000064dc sw s3, 0x28(sp)               |     *(var_28h) = s3;
    0x000064e0 sw ra, 0x2c(sp)               |     *(var_2ch) = ra;
    0x000064e4 move s3, a1                   |     s3 = a1;
                                             |     /* str.Invalid_system_activity_file:__s_n */
    0x000064e8 addiu a2, a2, 0x498           |     a2 += 0x498;
    0x000064ec addiu a1, zero, 1             |     a1 = 1;
    0x000064f0 jalr t9                       |     t9 ();
    0x000064f4 addiu v0, zero, 0x4c          |     v0 = 0x4c;
    0x000064f8 lw gp, 0x10(sp)               |     gp = *(var_10h);
                                             |     if (s2 == v0) {
    0x000064fc beq s2, v0, 0x651c            |         goto label_1;
                                             |     }
                                             | label_0:
    0x00006500 lw t9, -0x7db4(gp)            |     t9 = sym.imp.close;
                                             |     do {
    0x00006504 move a0, s1                   |         a0 = s1;
    0x00006508 jalr t9                       |         t9 ();
    0x0000650c lw gp, 0x10(sp)               |         gp = *(var_10h);
    0x00006510 lw t9, -0x7d3c(gp)            |         t9 = sym.imp.exit;
    0x00006514 addiu a0, zero, 3             |         a0 = 3;
    0x00006518 jalr t9                       |         t9 ();
                                             | label_1:
    0x0000651c lhu v0, (s3)                  |         v0 = *(s3);
    0x00006520 ori v1, zero, 0xd596          |         v1 = 0xd596;
    0x00006524 ori v1, zero, 0x96d5          |         v1 = 0x96d5;
                                             |         if (v0 == v1) {
    0x00006528 beq v0, v1, 0x6534            |             goto label_2;
                                             |         }
    0x0000652c lw t9, -0x7db4(gp)            |         t9 = sym.imp.close;
    0x00006530 bne v0, v1, 0x6504            |         
                                             |     } while (v0 != v1);
                                             | label_2:
    0x00006534 lw a0, (s0)                   |     a0 = *(s0);
    0x00006538 lw t9, -0x7e24(gp)            |     t9 = sym.display_sa_file_version;
    0x0000653c move a1, s3                   |     a1 = s3;
    0x00006540 bal 0x63e8                    |     sym_display_sa_file_version ();
    0x00006544 lhu v1, (s3)                  |     v1 = *(s3);
    0x00006548 ori v0, zero, 0xd596          |     v0 = 0xd596;
    0x0000654c lw gp, 0x10(sp)               |     gp = *(var_10h);
    0x00006550 lw a0, (s0)                   |     a0 = *(s0);
    0x00006554 lhu a3, 2(s3)                 |     a3 = *((s3 + 1));
                                             |     if (v1 != v0) {
    0x00006558 beq v1, v0, 0x6564            |         
    0x0000655c wsbh a3, a3                   |         __asm ("wsbh a3, a3");
    0x00006560 andi a3, a3, 0xffff           |         a3 &= 0xffff;
                                             |     }
    0x00006564 lw a2, -0x7fd0(gp)            |     a2 = sym.imp.strspn;
    0x00006568 lw t9, -0x7d9c(gp)            |     t9 = sym.imp.__fprintf_chk
                                             |     /* str.Current_sysstat_version_cannot_read_the_format_of_this_file___x__n */
    0x0000656c addiu a2, a2, 0x4bc           |     a2 += aav.0x000004bc;
    0x00006570 addiu a1, zero, 1             |     a1 = 1;
    0x00006574 jalr t9                       |     t9 ();
    0x00006578 lw gp, 0x10(sp)               |     gp = *(var_10h);
    0x0000657c b 0x6500                      |     goto label_0;
                                             | }
    ; assembly                           | /* r2dec pseudo code output */
                                         | /* /logs/firmware/unblob_extracted/firmware_extract/4325012-58052244.squashfs_v4_le_extract/usr/libexec/sa/sadc @ 0x436c */
                                         | #include <stdint.h>
                                         |  
    ; (fcn) sym.open_ofile ()            | void open_ofile () {
    0x0000436c lui gp, 2                 |     
    0x00004370 addiu gp, gp, 0x77d4      |     
    0x00004374 addu gp, gp, t9           |     gp += t9;
    0x00004378 addiu sp, sp, -0x648      |     
    0x0000437c sw s1, 0x624(sp)          |     *(var_624h) = s1;
    0x00004380 lw s1, -0x7cf4(gp)        |     s1 = *((gp - 7997));
    0x00004384 sw gp, 0x18(sp)           |     *(var_18h_3) = gp;
    0x00004388 sw ra, 0x644(sp)          |     *(var_644h) = ra;
    0x0000438c sw fp, 0x640(sp)          |     *(var_640h) = fp;
    0x00004390 sw s7, 0x63c(sp)          |     *(var_63ch) = s7;
    0x00004394 sw s6, 0x638(sp)          |     *(var_638h) = s6;
    0x00004398 sw s5, 0x634(sp)          |     *(var_634h) = s5;
    0x0000439c sw s4, 0x630(sp)          |     *(var_630h) = s4;
    0x000043a0 sw s3, 0x62c(sp)          |     *(var_62ch) = s3;
    0x000043a4 sw s2, 0x628(sp)          |     *(var_628h) = s2;
    0x000043a8 sw s0, 0x620(sp)          |     *(var_620h) = s0;
    0x000043ac lw v1, (s1)               |     v1 = *(s1);
    0x000043b0 lb v0, (a1)               |     v0 = *(a1);
    0x000043b4 sw v1, 0x61c(sp)          |     *(var_61ch) = v1;
    0x000043b8 sw zero, 0x28(sp)         |     *(var_28h_2) = 0;
    0x000043bc sw zero, 0x2c(sp)         |     *(var_2ch_2) = 0;
    0x000043c0 sw zero, 0x30(sp)         |     *(var_30h) = 0;
    0x000043c4 sw zero, 0x34(sp)         |     *(var_34h) = 0;
    0x000043c8 sw zero, 0x38(sp)         |     *(var_38h) = 0;
    0x000043cc sw zero, 0x3c(sp)         |     *(var_3ch) = 0;
    0x000043d0 sw zero, 0x40(sp)         |     *(var_40h) = 0;
    0x000043d4 sw zero, 0x44(sp)         |     *(var_44h) = 0;
    0x000043d8 sw zero, 0x48(sp)         |     *(var_48h) = 0;
    0x000043dc sw zero, 0x4c(sp)         |     *(var_4ch) = 0;
    0x000043e0 sw zero, 0x50(sp)         |     *(var_50h) = 0;
    0x000043e4 bnez v0, 0x4424           |     
                                         |     while (1) {
                                         | label_3:
    0x000043e8 lw v1, 0x61c(sp)          |         v1 = *(var_61ch);
    0x000043ec lw v0, (s1)               |         v0 = *(s1);
    0x000043f0 lw ra, 0x644(sp)          |         ra = *(var_644h);
                                         |         if (v1 != v0) {
    0x000043f4 bne v1, v0, 0x47c0        |             goto label_15;
                                         |         }
    0x000043f8 lw fp, 0x640(sp)          |         fp = *(var_640h);
    0x000043fc lw s7, 0x63c(sp)          |         s7 = *(var_63ch);
    0x00004400 lw s6, 0x638(sp)          |         s6 = *(var_638h);
    0x00004404 lw s5, 0x634(sp)          |         s5 = *(var_634h);
    0x00004408 lw s4, 0x630(sp)          |         s4 = *(var_630h);
    0x0000440c lw s3, 0x62c(sp)          |         s3 = *(var_62ch);
    0x00004410 lw s2, 0x628(sp)          |         s2 = *(var_628h);
    0x00004414 lw s1, 0x624(sp)          |         s1 = *(var_624h);
    0x00004418 lw s0, 0x620(sp)          |         s0 = *(var_620h);
    0x0000441c addiu sp, sp, 0x648       |         
    0x00004420 jr ra                     |         return v0;
    0x00004424 lw t9, -0x7d44(gp)        |         t9 = sym.imp.open;
    0x00004428 move s0, a1               |         s0 = a1;
    0x0000442c move s2, a0               |         s2 = a0;
    0x00004430 addiu a1, zero, 0xa       |         a1 = 0xa;
    0x00004434 move a0, s0               |         a0 = s0;
    0x00004438 jalr t9                   |         t9 ();
    0x0000443c lw gp, 0x18(sp)           |         gp = *(var_18h_3);
    0x00004440 sw v0, (s2)               |         *(s2) = v0;
                                         |         if (v0 >= 0) {
    0x00004444 bgez v0, 0x447c           |             goto label_16;
                                         |         }
    0x00004448 lw t9, -0x7d68(gp)        |         t9 = sym.imp.__errno_location;
    0x0000444c jalr t9                   |         t9 ();
    0x00004450 nop                       |         
    0x00004454 lw a0, (v0)               |         a0 = *(v0);
    0x00004458 addiu v0, zero, 2         |         v0 = 2;
    0x0000445c lw gp, 0x18(sp)           |         gp = *(var_18h_3);
                                         |         if (a0 != v0) {
    0x00004460 bne a0, v0, 0x47dc        |             goto label_17;
                                         |         }
    0x00004464 lw t9, -0x7f74(gp)        |         t9 = sym.create_sa_file;
                                         | label_0:
    0x00004468 move a1, s0               |         a1 = s0;
    0x0000446c move a0, s2               |         a0 = s2;
    0x00004470 bal 0x4208                |         sym_create_sa_file ();
    0x00004474 lw gp, 0x18(sp)           |         gp = *(var_18h_3);
    0x00004478 b 0x43e8                  |         
                                         |     }
                                         | label_16:
    0x0000447c lw t9, -0x7ccc(gp)        |     t9 = sym.imp.read;
    0x00004480 addiu s3, sp, 0x54        |     s3 = sp + 0x54;
    0x00004484 addiu a2, zero, 0x4c      |     a2 = 0x4c;
    0x00004488 move a1, s3               |     a1 = s3;
    0x0000448c move a0, v0               |     a0 = v0;
    0x00004490 jalr t9                   |     t9 ();
    0x00004494 lw gp, 0x18(sp)           |     gp = *(var_18h_3);
                                         |     if (v0 == 0) {
    0x00004498 beqz v0, 0x45c8           |         goto label_18;
                                         |     }
    0x0000449c addiu v1, zero, 0x4c      |     v1 = 0x4c;
    0x000044a0 lui v1, 0x2175            |     v1 = 0x21750000;
                                         |     if (v0 == v1) {
    0x000044a4 beq v0, v1, 0x454c        |         goto label_19;
                                         |     }
    0x000044a8 lw v1, -0x7fbc(gp)        |     v1 = *(gp);
                                         | label_1:
    0x000044ac lw v1, (v1)               |     v1 = *(v1);
    0x000044b0 andi v1, v1, 8            |     v1 &= 8;
    0x000044b4 lw a0, (s2)               |     a0 = *(s2);
                                         |     if (v1 != 0) {
    0x000044b8 bnez v1, 0x45a0           |         goto label_20;
                                         |     }
    0x000044bc lw t9, -0x7f70(gp)        |     t9 = sym.handle_invalid_sa_file;
    0x000044c0 move a3, v0               |     a3 = v0;
    0x000044c4 move a2, s0               |     a2 = s0;
    0x000044c8 move a1, s3               |     a1 = s3;
    0x000044cc bal 0x64a0                |     sym_handle_invalid_sa_file ();
    0x000044d0 lw gp, 0x18(sp)           |     gp = *(var_18h_3);
    0x000044d4 lw t9, -0x7ccc(gp)        |     t9 = sym.imp.read;
                                         | label_2:
    0x000044d8 lw a1, -0x7fa8(gp)        |     a1 = *(gp);
    0x000044dc lw a0, (s2)               |     a0 = *(s2);
    0x000044e0 addiu a2, zero, 0x148     |     a2 = aav.0x00000148;
    0x000044e4 jalr t9                   |     t9 ();
    0x000044e8 addiu v1, zero, 0x148     |     v1 = aav.0x00000148;
    0x000044ec lw gp, 0x18(sp)           |     gp = *(var_18h_3);
                                         |     if (v0 == v1) {
    0x000044f0 beq v0, v1, 0x45d4        |         goto label_21;
                                         |     }
                                         | label_6:
    0x000044f4 lw a0, (s2)               |     a0 = *(s2);
                                         | label_4:
    0x000044f8 lw t9, -0x7db4(gp)        |     t9 = sym.imp.close;
                                         | label_5:
    0x000044fc jalr t9                   |     t9 ();
    0x00004500 nop                       |     
    0x00004504 lw gp, 0x18(sp)           |     gp = *(var_18h_3);
    0x00004508 lw v0, -0x7fbc(gp)        |     v0 = *(gp);
    0x0000450c lw v0, (v0)               |     v0 = *(v0);
    0x00004510 andi v0, v0, 8            |     v0 &= 8;
    0x00004514 lw t9, -0x7f74(gp)        |     t9 = sym.create_sa_file;
                                         |     if (v0 != 0) {
    0x00004518 bnez v0, 0x4468           |         goto label_0;
                                         |     }
    0x0000451c lw v0, -0x7cec(gp)        |     v0 = *((gp - 7995));
    0x00004520 lw a2, -0x7fd0(gp)        |     a2 = sym.imp.strspn;
    0x00004524 lw t9, -0x7d9c(gp)        |     t9 = sym.imp.__fprintf_chk
    0x00004528 lw a0, (v0)               |     a0 = *(v0);
    0x0000452c move a3, s0               |     a3 = s0;
                                         |     /* str.Cannot_append_data_to_that_file___s__n */
    0x00004530 addiu a2, a2, 0x208       |     a2 += aav.0x00000208;
    0x00004534 addiu a1, zero, 1         |     a1 = 1;
    0x00004538 jalr t9                   |     t9 ();
    0x0000453c lw gp, 0x18(sp)           |     gp = *(var_18h_3);
    0x00004540 lw t9, -0x7d3c(gp)        |     t9 = sym.imp.exit;
    0x00004544 addiu a0, zero, 1         |     a0 = 1;
    0x00004548 jalr t9                   |     t9 ();
                                         | label_19:
    0x0000454c lw a0, 0x54(sp)           |     a0 = *(var_54h);
    0x00004550 ori v1, v1, 0xd596        |     v1 |= 0xd596;
    0x00004554 lw v1, -0x7fbc(gp)        |     v1 = *(gp);
                                         |     if (a0 != v1) {
    0x00004558 bne a0, v1, 0x44ac        |         goto label_1;
                                         |     }
    0x0000455c lw a0, 0x5c(sp)           |     a0 = *(var_5ch);
    0x00004560 addiu v1, zero, 0x148     |     v1 = aav.0x00000148;
    0x00004564 lw v1, -0x7fbc(gp)        |     v1 = *(gp);
                                         |     if (a0 != v1) {
    0x00004568 bne a0, v1, 0x44ac        |         goto label_1;
                                         |     }
    0x0000456c lw v1, 0x64(sp)           |     v1 = *(var_64h);
    0x00004570 addiu a0, zero, 1         |     a0 = 1;
    0x00004574 lw v1, -0x7fbc(gp)        |     v1 = *(gp);
                                         |     if (v1 == a0) {
    0x00004578 bnel v1, a0, 0x44ac       |         goto label_1;
                                         |     }
    0x0000457c lw a0, 0x68(sp)           |     a0 = *(var_68h);
    0x00004580 lw v1, -0x7fbc(gp)        |     v1 = *(gp);
                                         |     if (a0 != v1) {
    0x00004584 bne a0, v1, 0x44ac        |         goto label_1;
                                         |     }
    0x00004588 lw a0, 0x6c(sp)           |     a0 = *(var_6ch);
    0x0000458c addiu v1, zero, 0xb       |     v1 = 0xb;
    0x00004590 lw v1, -0x7fbc(gp)        |     v1 = *(gp);
                                         |     if (a0 != v1) {
    0x00004594 bne a0, v1, 0x44ac        |         goto label_1;
                                         |     }
    0x00004598 lw t9, -0x7ccc(gp)        |     t9 = sym.imp.read;
    0x0000459c b 0x44d8                  |     goto label_2;
                                         | label_20:
    0x000045a0 lw t9, -0x7db4(gp)        |     t9 = sym.imp.close;
                                         |     do {
                                         | label_10:
    0x000045a4 jalr t9                   |         t9 ();
    0x000045a8 nop                       |         
    0x000045ac lw gp, 0x18(sp)           |         gp = *(var_18h_3);
    0x000045b0 move a1, s0               |         a1 = s0;
    0x000045b4 lw t9, -0x7f74(gp)        |         t9 = sym.create_sa_file;
    0x000045b8 move a0, s2               |         a0 = s2;
    0x000045bc bal 0x4208                |         sym_create_sa_file ();
    0x000045c0 lw gp, 0x18(sp)           |         gp = *(var_18h_3);
    0x000045c4 b 0x43e8                  |         goto label_3;
                                         | label_18:
    0x000045c8 lw a0, (s2)               |         a0 = *(s2);
    0x000045cc lw t9, -0x7db4(gp)        |         t9 = sym.imp.close;
    0x000045d0 b 0x45a4                  |         
                                         |     } while (1);
                                         | label_21:
    0x000045d4 lw s4, -0x7fa8(gp)        |     s4 = *(gp);
    0x000045d8 lw t9, -0x7fa4(gp)        |     t9 = sym.get_time;
    0x000045dc move a1, zero             |     a1 = 0;
    0x000045e0 addiu a0, sp, 0x28        |     a0 = sp + 0x28;
    0x000045e4 bal 0x69e0                |     sym_get_time ();
    0x000045e8 lbu v1, 0x3d(s4)          |     v1 = *((s4 + 61));
    0x000045ec lw v0, 0x38(sp)           |     v0 = *(var_38h);
    0x000045f0 lw gp, 0x18(sp)           |     gp = *(var_18h_3);
                                         |     if (v1 == v0) {
    0x000045f4 beq v1, v0, 0x479c        |         goto label_22;
                                         |     }
    0x000045f8 lw v1, (s2)               |     v1 = *(s2);
    0x000045fc move a0, v1               |     a0 = v1;
                                         | label_8:
    0x00004600 lw v0, -0x7fbc(gp)        |     v0 = *(gp);
    0x00004604 lw v0, (v0)               |     v0 = *(v0);
    0x00004608 andi v0, v0, 2            |     v0 &= 2;
    0x0000460c lw t9, -0x7db4(gp)        |     t9 = sym.imp.close;
                                         |     if (v0 != 0) {
    0x00004610 bnez v0, 0x47b8           |         goto label_23;
                                         |     }
    0x00004614 lw v0, 0x14(s4)           |     v0 = *((s4 + 5));
                                         | label_9:
    0x00004618 addiu v0, v0, -1          |     v0 += -1;
    0x0000461c sltiu v0, v0, 0x27        |     v0 = (v0 < 0x27) ? 1 : 0;
    0x00004620 addiu v0, zero, 0x24      |     v0 = 0x24;
                                         |     if (v0 == 0) {
    0x00004624 beqz v0, 0x44f8           |         goto label_4;
                                         |     }
    0x00004628 lw a1, 0x34(s4)           |     a1 = *((s4 + 13));
    0x0000462c lw t9, -0x7db4(gp)        |     t9 = sym.imp.close;
                                         |     if (a1 != v0) {
    0x00004630 bne a1, v0, 0x44fc        |         goto label_5;
                                         |     }
    0x00004634 lw a1, 0x24(s4)           |     a1 = *((s4 + 9));
    0x00004638 addiu v0, zero, 9         |     v0 = 9;
    0x0000463c addiu v0, zero, 0x18      |     v0 = 0x18;
                                         |     if (a1 != v0) {
    0x00004640 bne a1, v0, 0x44fc        |         goto label_5;
                                         |     }
    0x00004644 lw a1, 0x38(s4)           |     a1 = *((s4 + 14));
    0x00004648 addiu v0, zero, 2         |     v0 = 2;
                                         |     if (a1 != v0) {
    0x0000464c bne a1, v0, 0x44fc        |         goto label_5;
                                         |     }
    0x00004650 lw a1, 0x28(s4)           |     a1 = *((s4 + 10));
                                         |     if (a1 != v0) {
    0x00004654 bne a1, v0, 0x44fc        |         goto label_5;
                                         |     }
    0x00004658 nop                       |     
    0x0000465c lw a1, 0x20(s4)           |     a1 = *((s4 + 8));
    0x00004660 lw v0, 0x1c(s4)           |     v0 = *((s4 + 7));
    0x00004664 lw a2, 0x2c(s4)           |     a2 = *((s4 + 11));
    0x00004668 or v0, v0, a1             |     v0 |= a1;
    0x0000466c lw a1, 0x30(s4)           |     a1 = *((s4 + 12));
    0x00004670 or v0, v0, a2             |     v0 |= a2;
    0x00004674 or v0, v0, a1             |     v0 |= a1;
    0x00004678 addiu s5, sp, 0xa0        |     s5 = sp + 0xa0;
                                         |     if (v0 != 0) {
    0x0000467c bnez v0, 0x44fc           |         goto label_5;
                                         |     }
    0x00004680 lw s6, -0x7fcc(gp)        |     s6 = *(gp);
    0x00004684 move fp, s5               |     fp = s5;
    0x00004688 move s7, zero             |     s7 = 0;
                                         | label_7:
    0x0000468c lw t9, -0x7ccc(gp)        |     t9 = sym.imp.read;
    0x00004690 move a0, v1               |     a0 = v1;
    0x00004694 addiu a2, zero, 0x24      |     a2 = 0x24;
    0x00004698 move a1, fp               |     a1 = fp;
    0x0000469c jalr t9                   |     t9 ();
    0x000046a0 addiu v1, zero, 0x24      |     v1 = 0x24;
    0x000046a4 lw gp, 0x18(sp)           |     gp = *(var_18h_3);
                                         |     if (v0 != v1) {
    0x000046a8 beq v0, v1, 0x46c8        |         
    0x000046ac lw t9, -0x7f70(gp)        |         t9 = sym.handle_invalid_sa_file;
    0x000046b0 lw a0, (s2)               |         a0 = *(s2);
    0x000046b4 move a3, zero             |         a3 = 0;
    0x000046b8 move a2, s0               |         a2 = s0;
    0x000046bc move a1, s3               |         a1 = s3;
    0x000046c0 bal 0x64a0                |         sym_handle_invalid_sa_file ();
    0x000046c4 lw gp, 0x18(sp)           |         gp = *(var_18h_3);
                                         |     }
    0x000046c8 lw t9, -0x7f90(gp)        |     t9 = sym.get_activity_position;
    0x000046cc lw a1, (fp)               |     a1 = *(fp);
    0x000046d0 move a2, zero             |     a2 = 0;
    0x000046d4 move a0, s6               |     a0 = s6;
    0x000046d8 bal 0x5ee0                |     sym_get_activity_position ();
    0x000046dc lw gp, 0x18(sp)           |     gp = *(var_18h_3);
                                         |     if (v0 < 0) {
    0x000046e0 bltz v0, 0x44f4           |         goto label_6;
                                         |     }
    0x000046e4 sll v0, v0, 2             |     v0 <<= 2;
    0x000046e8 lw v1, 0x14(fp)           |     v1 = *(arg_14h);
    0x000046ec lwx v0, v0(s6)            |     __asm ("lwx v0, v0(s6)");
    0x000046f0 lw a0, 0x8c(v0)           |     a0 = *((v0 + 35));
    0x000046f4 lw a0, (s2)               |     a0 = *(s2);
                                         |     if (a0 == v1) {
    0x000046f8 bnel a0, v1, 0x44f8       |         goto label_4;
                                         |     }
    0x000046fc lw a0, 8(v0)              |     a0 = *((v0 + 2));
    0x00004700 lw v1, 4(fp)              |     v1 = *(arg_4h);
    0x00004704 lw a0, (s2)               |     a0 = *(s2);
                                         |     if (a0 == v1) {
    0x00004708 bnel a0, v1, 0x44f8       |         goto label_4;
                                         |     }
    0x0000470c lw a0, 8(fp)              |     a0 = *(arg_8h);
                                         |     if (a0 <= 0) {
    0x00004710 blezl a0, 0x44f8          |         goto label_4;
                                         |     }
    0x00004714 lw a0, (s2)               |     a0 = *(s2);
    0x00004718 lw v1, 0xc(fp)            |     v1 = *(arg_ch);
                                         |     if (v1 <= 0) {
    0x0000471c blezl v1, 0x44f8          |         goto label_4;
                                         |     }
    0x00004720 lw a0, (s2)               |     a0 = *(s2);
    0x00004724 lw a1, 0x78(v0)           |     a1 = *((v0 + 30));
    0x00004728 slt a0, a1, a0            |     a0 = (a1 < a0) ? 1 : 0;
    0x0000472c slti v1, v1, 0x401        |     v1 = (v1 < 0x401) ? 1 : 0;
                                         |     if (a0 != 0) {
    0x00004730 bnez a0, 0x44f4           |         goto label_6;
                                         |     }
                                         |     if (v1 == 0) {
    0x00004734 beql v1, zero, 0x44f8     |         goto label_4;
                                         |     }
    0x00004738 lw a0, (s2)               |     a0 = *(s2);
    0x0000473c lw a0, 0x18(fp)           |     a0 = *(var_18h_3);
    0x00004740 lw v1, 0x54(v0)           |     v1 = *((v0 + 21));
    0x00004744 lw a0, (s2)               |     a0 = *(s2);
                                         |     if (a0 == v1) {
    0x00004748 bnel a0, v1, 0x44f8       |         goto label_4;
                                         |     }
    0x0000474c lw a0, 0x1c(fp)           |     a0 = *(arg_1ch);
    0x00004750 lw v1, 0x58(v0)           |     v1 = *((v0 + 22));
    0x00004754 lw a0, (s2)               |     a0 = *(s2);
                                         |     if (a0 == v1) {
    0x00004758 bnel a0, v1, 0x44f8       |         goto label_4;
                                         |     }
    0x0000475c lw a0, 0x20(fp)           |     a0 = *(arg_20h);
    0x00004760 lw v1, 0x5c(v0)           |     v1 = *((v0 + 23));
    0x00004764 lw a0, (s2)               |     a0 = *(s2);
                                         |     if (a0 == v1) {
    0x00004768 bnel a0, v1, 0x44f8       |         goto label_4;
                                         |     }
    0x0000476c lw v1, 0x10(fp)           |     v1 = *(var_10h_4);
    0x00004770 lw v0, 0x10(v0)           |     v0 = *((v0 + 4));
                                         |     if (v1 == 0) {
    0x00004774 beqz v1, 0x47cc           |         goto label_24;
                                         |     }
                                         |     if (v0 < 0) {
    0x00004778 bltzl v0, 0x44f8          |         goto label_4;
                                         |     }
    0x0000477c lw a0, (s2)               |     a0 = *(s2);
    0x00004780 lw v0, 0x14(s4)           |     v0 = *((s4 + 5));
                                         | label_11:
    0x00004784 addiu s7, s7, 1           |     s7++;
    0x00004788 sltu v0, s7, v0           |     v0 = (s7 < v0) ? 1 : 0;
    0x0000478c addiu fp, fp, 0x24        |     fp += 0x24;
                                         |     if (v0 == 0) {
    0x00004790 beqz v0, 0x4820           |         goto label_25;
                                         |     }
    0x00004794 lw v1, (s2)               |     v1 = *(s2);
    0x00004798 b 0x468c                  |     goto label_7;
                                         | label_22:
    0x0000479c lw v1, (s2)               |     v1 = *(s2);
    0x000047a0 lw a1, 0x18(s4)           |     a1 = *((s4 + 6));
    0x000047a4 lw v0, 0x3c(sp)           |     v0 = *(var_3ch);
    0x000047a8 move a0, v1               |     a0 = v1;
                                         |     if (a1 != v0) {
    0x000047ac bne a1, v0, 0x4600        |         goto label_8;
                                         |     }
    0x000047b0 lw v0, 0x14(s4)           |     v0 = *((s4 + 5));
    0x000047b4 b 0x4618                  |     goto label_9;
                                         | label_23:
    0x000047b8 move a0, v1               |     a0 = v1;
    0x000047bc b 0x45a4                  |     goto label_10;
                                         | label_15:
    0x000047c0 lw t9, -0x7d08(gp)        |     t9 = sym.imp.__stack_chk_fail;
    0x000047c4 jalr t9                   |     t9 ();
    0x000047c8 nop                       |     
                                         |     if (v0 < 0) {
                                         | label_24:
    0x000047cc bltzl v0, 0x4784          |         goto label_11;
                                         |     }
    0x000047d0 lw v0, 0x14(s4)           |     v0 = *((s4 + 5));
    0x000047d4 lw a0, (s2)               |     a0 = *(s2);
    0x000047d8 b 0x44f8                  |     goto label_4;
                                         | label_17:
    0x000047dc lw v0, -0x7cec(gp)        |     v0 = *((gp - 7995));
    0x000047e0 lw t9, -0x7d34(gp)        |     t9 = sym.imp.strerror;
    0x000047e4 lw s1, (v0)               |     s1 = *(v0);
    0x000047e8 jalr t9                   |     t9 ();
    0x000047ec lw gp, 0x18(sp)           |     gp = *(var_18h_3);
    0x000047f0 move a0, s1               |     a0 = s1;
    0x000047f4 sw v0, 0x10(sp)           |     *(var_10h_4) = v0;
    0x000047f8 lw a2, -0x7fd0(gp)        |     a2 = sym.imp.strspn;
    0x000047fc lw t9, -0x7d9c(gp)        |     t9 = sym.imp.__fprintf_chk
    0x00004800 move a3, s0               |     a3 = s0;
                                         |     /* str.Cannot_open__s:__s_n */
    0x00004804 addiu a2, a2, 0x1f0       |     a2 += 0x1f0;
    0x00004808 addiu a1, zero, 1         |     a1 = 1;
    0x0000480c jalr t9                   |     t9 ();
    0x00004810 lw gp, 0x18(sp)           |     gp = *(var_18h_3);
    0x00004814 lw t9, -0x7d3c(gp)        |     t9 = sym.imp.exit;
    0x00004818 addiu a0, zero, 2         |     a0 = 2;
    0x0000481c jalr t9                   |     t9 ();
                                         | label_25:
    0x00004820 lw s3, -0x7fc4(gp)        |     s3 = *(gp);
    0x00004824 move v0, zero             |     v0 = 0;
    0x00004828 addiu a2, zero, -2        |     a2 = -2;
    0x0000482c addiu a1, zero, 0x9c      |     a1 = 0x9c;
                                         |     do {
    0x00004830 lwx a0, v0(s6)            |         __asm ("lwx a0, v0(s6)");
    0x00004834 addu a3, s3, v0           |         a3 = s3 + v0;
    0x00004838 addiu v0, v0, 4           |         v0 += 4;
    0x0000483c lw v1, 4(a0)              |         v1 = *((a0 + 1));
    0x00004840 and v1, v1, a2            |         v1 &= a2;
    0x00004844 sw v1, 4(a0)              |         *((a0 + 1)) = v1;
    0x00004848 sw zero, (a3)             |         *(a3) = 0;
    0x0000484c bne v0, a1, 0x4830        |         
                                         |     } while (v0 != a1);
    0x00004850 lw s7, -0x7fcc(gp)        |     s7 = *(gp);
    0x00004854 move s2, zero             |     s2 = 0;
                                         | label_12:
    0x00004858 lw v0, 0x14(s4)           |     v0 = *((s4 + 5));
    0x0000485c sltu v0, s2, v0           |     v0 = (s2 < v0) ? 1 : 0;
    0x00004860 lw t9, -0x7f90(gp)        |     t9 = sym.get_activity_position;
                                         |     if (v0 == 0) {
    0x00004864 beqz v0, 0x43e8           |         goto label_3;
                                         |     }
    0x00004868 lw a1, (s5)               |     a1 = *(s5);
    0x0000486c addiu a2, zero, 1         |     a2 = 1;
    0x00004870 move a0, s7               |     a0 = s7;
    0x00004874 bal 0x5ee0                |     sym_get_activity_position ();
    0x00004878 sll fp, v0, 2             |     fp = v0 << 2;
    0x0000487c lwx s0, fp(s6)            |     __asm ("lwx s0, fp(s6)");
    0x00004880 lw v0, 4(s0)              |     v0 = *((s0 + 1));
    0x00004884 andi v0, v0, 0x200        |     v0 &= aav.0x00000200;
    0x00004888 lw gp, 0x18(sp)           |     gp = *(var_18h_3);
                                         |     if (v0 == 0) {
    0x0000488c beqz v0, 0x48f0           |         goto label_26;
                                         |     }
    0x00004890 lw v0, 0x70(s0)           |     v0 = *((s0 + 28));
                                         |     if (v0 == 0) {
    0x00004894 beql v0, zero, 0x48f4     |         goto label_27;
                                         |     }
    0x00004898 lw v0, 8(s5)              |     v0 = *((s5 + 2));
                                         |     do {
    0x0000489c lw a1, 0x90(s0)           |         a1 = *((s0 + 36));
    0x000048a0 lw v1, 0xc(s5)            |         v1 = *((s5 + 3));
    0x000048a4 mul a1, a1, v0            |         __asm ("mul a1, a1, v0");
    0x000048a8 mul a1, a1, v1            |         __asm ("mul a1, a1, v1");
    0x000048ac sw v1, 0x74(s0)           |         *((s0 + 29)) = v1;
                                         |         if (a1 != 0) {
    0x000048b0 bnez a1, 0x48fc           |             goto label_28;
                                         |         }
                                         | label_14:
    0x000048b4 lwx v0, fp(s6)            |         __asm ("lwx v0, fp(s6)");
                                         | label_13:
    0x000048b8 lw v1, 0x98(v0)           |         v1 = *((v0 + 38));
    0x000048bc sll v1, s2, 2             |         v1 = s2 << 2;
                                         |         if (v1 == 0) {
    0x000048c0 beqz v1, 0x4954           |             goto label_29;
                                         |         }
    0x000048c4 lw a0, 0x70(v0)           |         a0 = *((v0 + 28));
    0x000048c8 sw a0, 0x88(v0)           |         *((v0 + 34)) = a0;
    0x000048cc lw a0, (s5)               |         a0 = *(s5);
    0x000048d0 addu v1, s3, v1           |         v1 = s3 + v1;
    0x000048d4 addiu s2, s2, 1           |         s2++;
    0x000048d8 sw a0, (v1)               |         *(v1) = a0;
    0x000048dc lw v1, 4(v0)              |         v1 = *((v0 + 1));
    0x000048e0 addiu s5, s5, 0x24        |         s5 += 0x24;
    0x000048e4 ori v1, v1, 1             |         v1 |= 1;
    0x000048e8 sw v1, 4(v0)              |         *((v0 + 1)) = v1;
    0x000048ec b 0x4858                  |         goto label_12;
                                         | label_26:
    0x000048f0 lw v0, 8(s5)              |         v0 = *((s5 + 2));
                                         | label_27:
    0x000048f4 sw v0, 0x70(s0)           |         *((s0 + 28)) = v0;
    0x000048f8 b 0x489c                  |         
                                         |     } while (1);
                                         | label_28:
    0x000048fc lw v1, 0x98(s0)           |     v1 = *((s0 + 38));
    0x00004900 lw t9, -0x7d2c(gp)        |     t9 = sym.imp.realloc;
    0x00004904 move a0, v1               |     a0 = v1;
    0x00004908 sw v1, 0x24(sp)           |     *(var_24h_2) = v1;
    0x0000490c jalr t9                   |     t9 ();
    0x00004910 lw gp, 0x18(sp)           |     gp = *(var_18h_3);
    0x00004914 sw v0, 0x98(s0)           |     *((s0 + 38)) = v0;
    0x00004918 lw v1, 0x24(sp)           |     v1 = *(var_24h_2);
                                         |     if (v0 == 0) {
    0x0000491c beqz v0, 0x4984           |         goto label_30;
                                         |     }
    0x00004920 lwx v0, fp(s6)            |     __asm ("lwx v0, fp(s6)");
                                         |     if (v1 != 0) {
    0x00004924 bnez v1, 0x48b8           |         goto label_13;
                                         |     }
    0x00004928 lw t9, -0x7d60(gp)        |     t9 = sym.imp.memset;
    0x0000492c move a1, zero             |     a1 = 0;
    0x00004930 lw a0, 0x70(v0)           |     a0 = *((v0 + 28));
    0x00004934 lw v1, 0x90(v0)           |     v1 = *((v0 + 36));
    0x00004938 lw a2, 0x74(v0)           |     a2 = *((v0 + 29));
    0x0000493c mul v1, v1, a0            |     __asm ("mul v1, v1, a0");
    0x00004940 lw a0, 0x98(v0)           |     a0 = *((v0 + 38));
    0x00004944 mul a2, v1, a2            |     __asm ("mul a2, v1, a2");
    0x00004948 jalr t9                   |     t9 ();
    0x0000494c lw gp, 0x18(sp)           |     gp = *(var_18h_3);
    0x00004950 b 0x48b4                  |     goto label_14;
                                         | label_29:
    0x00004954 lw v0, -0x7cec(gp)        |     v0 = *((gp - 7995));
    0x00004958 lw a0, -0x7fd0(gp)        |     a0 = sym.imp.strspn;
    0x0000495c lw t9, -0x7d20(gp)        |     t9 = sym.imp.fwrite;
    0x00004960 lw a3, (v0)               |     a3 = *(v0);
                                         |     /* str.srealloc_n */
    0x00004964 addiu a0, a0, 0x1dc       |     a0 += aav.0x000001dc;
    0x00004968 addiu a2, zero, 9         |     a2 = 9;
    0x0000496c addiu a1, zero, 1         |     a1 = 1;
    0x00004970 jalr t9                   |     t9 ();
    0x00004974 lw gp, 0x18(sp)           |     gp = *(var_18h_3);
    0x00004978 lw t9, -0x7d3c(gp)        |     t9 = sym.imp.exit;
    0x0000497c addiu a0, zero, 4         |     a0 = 4;
    0x00004980 jalr t9                   |     t9 ();
                                         | label_30:
    0x00004984 lw a0, -0x7fd0(gp)        |     a0 = sym.imp.strspn;
    0x00004988 lw t9, -0x7d1c(gp)        |     t9 = sym.imp.perror;
                                         |     /* str.realloc */
    0x0000498c addiu a0, a0, 0x1d4       |     a0 += 0x1d4;
    0x00004990 jalr t9                   |     t9 ();
    0x00004994 lw gp, 0x18(sp)           |     gp = *(var_18h_3);
    0x00004998 lw t9, -0x7d3c(gp)        |     t9 = sym.imp.exit;
    0x0000499c addiu a0, zero, 4         |     a0 = 4;
    0x000049a0 jalr t9                   |     return t9 ();
                                         | }
    ; assembly                           | /* r2dec pseudo code output */
                                         | /* /logs/firmware/unblob_extracted/firmware_extract/4325012-58052244.squashfs_v4_le_extract/usr/libexec/sa/sadc @ 0x3604 */
                                         | #include <stdint.h>
                                         |  
    ; (fcn) sym.p_write_error ()         | void p_write_error () {
    0x00003604 lui gp, 3                 |     
    0x00003608 addiu gp, gp, -0x7ac4     |     
    0x0000360c addu gp, gp, t9           |     gp += t9;
    0x00003610 addiu sp, sp, -0x20       |     
    0x00003614 lw v0, -0x7cec(gp)        |     v0 = *((gp - 7995));
    0x00003618 lw t9, -0x7d68(gp)        |     t9 = sym.imp.__errno_location;
    0x0000361c sw ra, 0x1c(sp)           |     *(var_1ch) = ra;
    0x00003620 sw gp, 0x10(sp)           |     *(var_10h) = gp;
    0x00003624 sw s0, 0x18(sp)           |     *(var_18h) = s0;
    0x00003628 lw s0, (v0)               |     s0 = *(v0);
    0x0000362c jalr t9                   |     t9 ();
    0x00003630 lw gp, 0x10(sp)           |     gp = *(var_10h);
    0x00003634 lw t9, -0x7d34(gp)        |     t9 = sym.imp.strerror;
    0x00003638 lw a0, (v0)               |     a0 = *(v0);
    0x0000363c jalr t9                   |     t9 ();
    0x00003640 lw gp, 0x10(sp)           |     gp = *(var_10h);
    0x00003644 move a0, s0               |     a0 = s0;
    0x00003648 move a3, v0               |     a3 = v0;
    0x0000364c lw a2, -0x7fd0(gp)        |     a2 = sym.imp.strspn;
    0x00003650 lw t9, -0x7d9c(gp)        |     t9 = sym.imp.__fprintf_chk
                                         |     /* str.Cannot_write_data_to_system_activity_file:__s_n */
    0x00003654 addiu a2, a2, 0x1a4       |     a2 += segment.NOTE;
    0x00003658 addiu a1, zero, 1         |     a1 = 1;
    0x0000365c jalr t9                   |     t9 ();
    0x00003660 lw gp, 0x10(sp)           |     gp = *(var_10h);
    0x00003664 lw t9, -0x7d3c(gp)        |     t9 = sym.imp.exit;
    0x00003668 addiu a0, zero, 2         |     a0 = 2;
    0x0000366c jalr t9                   |     return t9 ();
                                         | }
    ; assembly                           | /* r2dec pseudo code output */
                                         | /* /logs/firmware/unblob_extracted/firmware_extract/4325012-58052244.squashfs_v4_le_extract/usr/libexec/sa/sadc @ 0x6d10 */
                                         | #include <stdint.h>
                                         |  
    ; (fcn) sym.read_stat_cpu ()         | void read_stat_cpu () {
    0x00006d10 lui gp, 2                 |     
    0x00006d14 addiu gp, gp, 0x4e30      |     
    0x00006d18 addu gp, gp, t9           |     gp += t9;
    0x00006d1c lw v0, -0x7cf4(gp)        |     v0 = *((gp - 7997));
    0x00006d20 addiu sp, sp, -0x20d0     |     
    0x00006d24 lw t9, -0x7ce4(gp)        |     t9 = sym.imp.fopen;
    0x00006d28 sw s5, 0x20bc(sp)         |     *(arg_20bch) = s5;
    0x00006d2c sw s2, 0x20b0(sp)         |     *(arg_20b0h) = s2;
    0x00006d30 sw v0, 0x44(sp)           |     *(arg_44h) = v0;
    0x00006d34 lw s2, -0x7fd0(gp)        |     s2 = sym.imp.strspn;
    0x00006d38 lw v0, (v0)               |     v0 = *(v0);
    0x00006d3c move s5, a1               |     s5 = a1;
    0x00006d40 lw a1, -0x7fd0(gp)        |     a1 = sym.imp.strspn;
    0x00006d44 sw gp, 0x38(sp)           |     *(arg_38h) = gp;
    0x00006d48 sw s0, 0x20a8(sp)         |     *(arg_20a8h) = s0;
    0x00006d4c sw ra, 0x20cc(sp)         |     *(arg_20cch) = ra;
    0x00006d50 sw fp, 0x20c8(sp)         |     *(arg_20c8h) = fp;
    0x00006d54 sw s7, 0x20c4(sp)         |     *(arg_20c4h) = s7;
    0x00006d58 sw s6, 0x20c0(sp)         |     *(arg_20c0h) = s6;
    0x00006d5c sw s4, 0x20b8(sp)         |     *(arg_20b8h) = s4;
    0x00006d60 sw s3, 0x20b4(sp)         |     *(arg_20b4h) = s3;
    0x00006d64 sw s1, 0x20ac(sp)         |     *(arg_20ach) = s1;
    0x00006d68 move s0, a0               |     s0 = a0;
    0x00006d6c addiu a1, a1, 0x1490      |     a1 += 0x1490;
                                         |     /* str._proc_stat */
    0x00006d70 addiu a0, s2, 0x41c       |     a0 = s2 + aav.0x0000041c;
    0x00006d74 sw v0, 0x20a4(sp)         |     *(arg_20a4h) = v0;
    0x00006d78 jalr t9                   |     t9 ();
    0x00006d7c nop                       |     
    0x00006d80 lw gp, 0x38(sp)           |     gp = *(arg_38h);
                                         |     if (v0 == 0) {
    0x00006d84 beqz v0, 0x7000           |         goto label_4;
                                         |     }
    0x00006d88 move s1, v0               |     s1 = v0;
    0x00006d8c lw s2, -0x7fd0(gp)        |     s2 = sym.imp.strspn;
    0x00006d90 lw v0, -0x7fd0(gp)        |     v0 = sym.imp.strspn;
    0x00006d94 lw s4, -0x7fd0(gp)        |     s4 = sym.imp.strspn;
    0x00006d98 lw s6, -0x7fd0(gp)        |     s6 = sym.imp.strspn;
    0x00006d9c sw v0, 0x40(sp)           |     *(arg_40h) = v0;
    0x00006da0 move s3, zero             |     s3 = 0;
    0x00006da4 addiu s7, sp, 0xa4        |     s7 = sp + 0xa4;
                                         |     /* str.cpu_ */
    0x00006da8 addiu s2, s2, 0x428       |     s2 += aav.0x00000428;
                                         |     /* esilref: 'cpu' */
    0x00006dac addiu s4, s4, 0x1430      |     s4 += 0x1430;
    0x00006db0 addiu fp, sp, 0x50        |     fp = sp + 0x50;
                                         |     /* str._llu__llu__llu__llu__llu__llu__llu__llu__llu__llu */
    0x00006db4 addiu s6, s6, 0x5f8       |     s6 += 0x5f8;
                                         |     do {
    0x00006db8 lw t9, -0x7cf8(gp)        |         t9 = sym.imp.fgets;
                                         | label_0:
    0x00006dbc move a2, s1               |         a2 = s1;
    0x00006dc0 addiu a1, zero, 0x2000    |         a1 = 0x2000;
    0x00006dc4 move a0, s7               |         a0 = s7;
    0x00006dc8 jalr t9                   |         t9 ();
    0x00006dcc lw gp, 0x38(sp)           |         gp = *(arg_38h);
                                         |         if (v0 == 0) {
    0x00006dd0 beqz v0, 0x6f08           |             goto label_3;
                                         |         }
                                         | label_1:
    0x00006dd4 lw t9, -0x7da8(gp)        |         t9 = sym.imp.strncmp;
    0x00006dd8 addiu a2, zero, 4         |         a2 = 4;
    0x00006ddc move a1, s2               |         a1 = s2;
    0x00006de0 move a0, s7               |         a0 = s7;
    0x00006de4 jalr t9                   |         t9 ();
    0x00006de8 lw gp, 0x38(sp)           |         gp = *(arg_38h);
                                         |         if (v0 == 0) {
    0x00006dec beqz v0, 0x6f5c           |             goto label_5;
                                         |         }
    0x00006df0 lw t9, -0x7da8(gp)        |         t9 = sym.imp.strncmp;
    0x00006df4 addiu a2, zero, 3         |         a2 = 3;
    0x00006df8 move a1, s4               |         a1 = s4;
    0x00006dfc move a0, s7               |         a0 = s7;
    0x00006e00 jalr t9                   |         t9 ();
    0x00006e04 lw gp, 0x38(sp)           |         gp = *(arg_38h);
    0x00006e08 bnez v0, 0x6db8           |         
                                         |     } while (v0 != 0);
    0x00006e0c lw t9, -0x7d60(gp)        |     t9 = sym.imp.memset;
    0x00006e10 addiu a2, zero, 0x50      |     a2 = 0x50;
    0x00006e14 move a1, zero             |     a1 = 0;
    0x00006e18 move a0, fp               |     a0 = fp;
    0x00006e1c jalr t9                   |     t9 ();
    0x00006e20 addiu v0, sp, 0x98        |     v0 = sp + 0x98;
    0x00006e24 sw v0, 0x30(sp)           |     *(arg_30h) = v0;
    0x00006e28 addiu v0, sp, 0x90        |     v0 = sp + 0x90;
    0x00006e2c sw v0, 0x2c(sp)           |     *(arg_2ch) = v0;
    0x00006e30 addiu v0, sp, 0x78        |     v0 = sp + 0x78;
    0x00006e34 sw v0, 0x28(sp)           |     *(arg_28h) = v0;
    0x00006e38 addiu v0, sp, 0x88        |     v0 = sp + 0x88;
    0x00006e3c sw v0, 0x24(sp)           |     *(var_24h) = v0;
    0x00006e40 addiu v0, sp, 0x80        |     v0 = sp + 0x80;
    0x00006e44 sw v0, 0x20(sp)           |     *(var_20h) = v0;
    0x00006e48 addiu v0, sp, 0x70        |     v0 = sp + 0x70;
    0x00006e4c sw v0, 0x1c(sp)           |     *(var_1ch) = v0;
    0x00006e50 addiu v0, sp, 0x68        |     v0 = sp + 0x68;
    0x00006e54 lw gp, 0x38(sp)           |     gp = *(arg_38h);
    0x00006e58 sw v0, 0x18(sp)           |     *(var_18h) = v0;
    0x00006e5c addiu v0, sp, 0x60        |     v0 = sp + 0x60;
    0x00006e60 sw v0, 0x14(sp)           |     *(var_14h) = v0;
    0x00006e64 addiu v0, sp, 0x58        |     v0 = sp + 0x58;
    0x00006e68 sw v0, 0x10(sp)           |     *(var_10h) = v0;
    0x00006e6c lw v0, 0x40(sp)           |     v0 = *(arg_40h);
    0x00006e70 lw t9, -0x7d5c(gp)        |     t9 = sym.imp.__isoc99_sscanf;
    0x00006e74 addiu a0, sp, 0xa7        |     a0 = sp + 0xa7;
    0x00006e78 move a3, fp               |     a3 = fp;
    0x00006e7c addiu a2, sp, 0x4c        |     a2 = sp + 0x4c;
    0x00006e80 addiu a1, v0, 0x62c       |     a1 = v0 + 0x62c;
    0x00006e84 jalr t9                   |     t9 ();
    0x00006e88 lw t4, 0x4c(sp)           |     t4 = *(arg_4ch);
    0x00006e8c addiu a0, t4, 1           |     a0 = t4 + 1;
    0x00006e90 slt v0, a0, s5            |     v0 = (a0 < s5) ? 1 : 0;
    0x00006e94 lw gp, 0x38(sp)           |     gp = *(arg_38h);
                                         |     if (v0 == 0) {
    0x00006e98 beqz v0, 0x6fec           |         goto label_6;
                                         |     }
    0x00006e9c sll v0, a0, 2             |     v0 = a0 << 2;
    0x00006ea0 addu v0, v0, a0           |     v0 += a0;
    0x00006ea4 sll v0, v0, 4             |     v0 <<= 4;
    0x00006ea8 move v1, fp               |     v1 = fp;
    0x00006eac addu v0, s0, v0           |     v0 = s0 + v0;
    0x00006eb0 addiu t3, sp, 0xa0        |     t3 = sp + 0xa0;
                                         |     do {
    0x00006eb4 lw t2, (v1)               |         t2 = *(v1);
    0x00006eb8 lw a3, 4(v1)              |         a3 = *((v1 + 1));
    0x00006ebc lw a2, 8(v1)              |         a2 = *((v1 + 2));
    0x00006ec0 lw a1, 0xc(v1)            |         a1 = *((v1 + 3));
    0x00006ec4 addiu v1, v1, 0x10        |         v1 += 0x10;
    0x00006ec8 sw t2, (v0)               |         *(v0) = t2;
    0x00006ecc sw a3, 4(v0)              |         *((v0 + 1)) = a3;
    0x00006ed0 sw a2, 8(v0)              |         *((v0 + 2)) = a2;
    0x00006ed4 sw a1, 0xc(v0)            |         *((v0 + 3)) = a1;
    0x00006ed8 addiu v0, v0, 0x10        |         v0 += 0x10;
    0x00006edc bne v1, t3, 0x6eb4        |         
                                         |     } while (v1 != t3);
    0x00006ee0 slt a0, a0, s3            |     a0 = (a0 < s3) ? 1 : 0;
    0x00006ee4 lw t9, -0x7cf8(gp)        |     t9 = sym.imp.fgets;
                                         |     if (a0 != 0) {
    0x00006ee8 bnez a0, 0x6dbc           |         goto label_0;
                                         |     }
    0x00006eec move a2, s1               |     a2 = s1;
    0x00006ef0 addiu a1, zero, 0x2000    |     a1 = 0x2000;
    0x00006ef4 move a0, s7               |     a0 = s7;
    0x00006ef8 addiu s3, t4, 2           |     s3 = t4 + 2;
    0x00006efc jalr t9                   |     t9 ();
    0x00006f00 lw gp, 0x38(sp)           |     gp = *(arg_38h);
                                         |     if (v0 != 0) {
    0x00006f04 bnez v0, 0x6dd4           |         goto label_1;
                                         |     }
                                         | label_3:
    0x00006f08 lw t9, -0x7d94(gp)        |     t9 = sym.imp.fclose;
                                         | label_2:
    0x00006f0c move a0, s1               |     a0 = s1;
    0x00006f10 jalr t9                   |     t9 ();
    0x00006f14 lw v0, 0x44(sp)           |     v0 = *(arg_44h);
    0x00006f18 lw a0, 0x20a4(sp)         |     a0 = *(arg_20a4h);
    0x00006f1c lw gp, 0x38(sp)           |     gp = *(arg_38h);
    0x00006f20 lw v1, (v0)               |     v1 = *(v0);
    0x00006f24 move v0, s3               |     v0 = s3;
                                         |     if (a0 != v1) {
    0x00006f28 bne a0, v1, 0x6ff4        |         goto label_7;
                                         |     }
    0x00006f2c lw ra, 0x20cc(sp)         |     ra = *(arg_20cch);
    0x00006f30 lw fp, 0x20c8(sp)         |     fp = *(arg_20c8h);
    0x00006f34 lw s7, 0x20c4(sp)         |     s7 = *(arg_20c4h);
    0x00006f38 lw s6, 0x20c0(sp)         |     s6 = *(arg_20c0h);
    0x00006f3c lw s5, 0x20bc(sp)         |     s5 = *(arg_20bch);
    0x00006f40 lw s4, 0x20b8(sp)         |     s4 = *(arg_20b8h);
    0x00006f44 lw s3, 0x20b4(sp)         |     s3 = *(arg_20b4h);
    0x00006f48 lw s2, 0x20b0(sp)         |     s2 = *(arg_20b0h);
    0x00006f4c lw s1, 0x20ac(sp)         |     s1 = *(arg_20ach);
    0x00006f50 lw s0, 0x20a8(sp)         |     s0 = *(arg_20a8h);
    0x00006f54 addiu sp, sp, 0x20d0      |     
    0x00006f58 jr ra                     |     return v0;
                                         | label_5:
    0x00006f5c lw t9, -0x7d60(gp)        |     t9 = sym.imp.memset;
    0x00006f60 addiu a2, zero, 0x50      |     a2 = 0x50;
    0x00006f64 move a1, zero             |     a1 = 0;
    0x00006f68 move a0, s0               |     a0 = s0;
    0x00006f6c jalr t9                   |     t9 ();
    0x00006f70 lw gp, 0x38(sp)           |     gp = *(arg_38h);
    0x00006f74 addiu t3, s0, 0x48        |     t3 = s0 + 0x48;
    0x00006f78 addiu t2, s0, 0x40        |     t2 = s0 + 0x40;
    0x00006f7c lw t9, -0x7d5c(gp)        |     t9 = sym.imp.__isoc99_sscanf;
    0x00006f80 addiu a3, s0, 0x28        |     a3 = s0 + 0x28;
    0x00006f84 addiu a2, s0, 0x38        |     a2 = s0 + 0x38;
    0x00006f88 addiu a1, s0, 0x30        |     a1 = s0 + 0x30;
    0x00006f8c addiu a0, s0, 0x20        |     a0 = s0 + 0x20;
    0x00006f90 addiu v1, s0, 0x18        |     v1 = s0 + 0x18;
    0x00006f94 addiu v0, s0, 0x10        |     v0 = s0 + 0x10;
    0x00006f98 sw a3, 0x24(sp)           |     *(var_24h) = a3;
    0x00006f9c sw a2, 0x20(sp)           |     *(var_20h) = a2;
    0x00006fa0 sw a1, 0x1c(sp)           |     *(var_1ch) = a1;
    0x00006fa4 sw a0, 0x18(sp)           |     *(var_18h) = a0;
    0x00006fa8 sw t3, 0x2c(sp)           |     *(arg_2ch) = t3;
    0x00006fac sw t2, 0x28(sp)           |     *(arg_28h) = t2;
    0x00006fb0 sw v1, 0x14(sp)           |     *(var_14h) = v1;
    0x00006fb4 sw v0, 0x10(sp)           |     *(var_10h) = v0;
    0x00006fb8 addiu a3, s0, 8           |     a3 = s0 + 8;
    0x00006fbc move a2, s0               |     a2 = s0;
    0x00006fc0 move a1, s6               |     a1 = s6;
    0x00006fc4 addiu a0, sp, 0xa9        |     a0 = sp + 0xa9;
    0x00006fc8 jalr t9                   |     t9 ();
    0x00006fcc lw gp, 0x38(sp)           |     gp = *(arg_38h);
                                         |     if (s3 == 0) {
    0x00006fd0 bnez s3, 0x6fd8           |         
    0x00006fd4 addiu s3, zero, 1         |         s3 = 1;
                                         |     }
    0x00006fd8 addiu v0, zero, 1         |     v0 = 1;
    0x00006fdc lw t9, -0x7cf8(gp)        |     t9 = sym.imp.fgets;
                                         |     if (s5 == v0) {
    0x00006fe0 bnel s5, v0, 0x6dbc       |         goto label_0;
                                         |     }
    0x00006fe4 lw t9, -0x7d94(gp)        |     t9 = sym.imp.fclose;
    0x00006fe8 b 0x6f0c                  |     goto label_2;
                                         | label_6:
    0x00006fec addiu s3, zero, -1        |     s3 = -1;
    0x00006ff0 b 0x6f08                  |     goto label_3;
                                         | label_7:
    0x00006ff4 lw t9, -0x7d08(gp)        |     t9 = sym.imp.__stack_chk_fail;
    0x00006ff8 jalr t9                   |     t9 ();
    0x00006ffc nop                       |     
                                         | label_4:
    0x00007000 lw v0, -0x7cec(gp)        |     v0 = *((gp - 7995));
    0x00007004 lw t9, -0x7d68(gp)        |     t9 = sym.imp.__errno_location;
    0x00007008 lw s0, (v0)               |     s0 = *(v0);
    0x0000700c jalr t9                   |     t9 ();
    0x00007010 lw gp, 0x38(sp)           |     gp = *(arg_38h);
    0x00007014 lw t9, -0x7d34(gp)        |     t9 = sym.imp.strerror;
    0x00007018 lw a0, (v0)               |     a0 = *(v0);
    0x0000701c jalr t9                   |     t9 ();
    0x00007020 lw gp, 0x38(sp)           |     gp = *(arg_38h);
    0x00007024 move a0, s0               |     a0 = s0;
    0x00007028 sw v0, 0x10(sp)           |     *(var_10h) = v0;
    0x0000702c lw a2, -0x7fd0(gp)        |     a2 = sym.imp.strspn;
    0x00007030 lw t9, -0x7d9c(gp)        |     t9 = sym.imp.__fprintf_chk
                                         |     /* str._proc_stat */
    0x00007034 addiu a3, s2, 0x41c       |     a3 = s2 + aav.0x0000041c;
                                         |     /* str.Cannot_open__s:__s_n */
    0x00007038 addiu a2, a2, 0x1f0       |     a2 += 0x1f0;
    0x0000703c addiu a1, zero, 1         |     a1 = 1;
    0x00007040 jalr t9                   |     t9 ();
    0x00007044 lw gp, 0x38(sp)           |     gp = *(arg_38h);
    0x00007048 lw t9, -0x7d3c(gp)        |     t9 = sym.imp.exit;
    0x0000704c addiu a0, zero, 2         |     a0 = 2;
    0x00007050 jalr t9                   |     return t9 ();
                                         | }
    ; assembly                           | /* r2dec pseudo code output */
                                         | /* /logs/firmware/unblob_extracted/firmware_extract/4325012-58052244.squashfs_v4_le_extract/usr/libexec/sa/sadc @ 0x7718 */
                                         | #include <stdint.h>
                                         |  
    ; (fcn) sym.read_uptime ()           | void read_uptime () {
    0x00007718 lui gp, 2                 |     
    0x0000771c addiu gp, gp, 0x4428      |     
    0x00007720 addu gp, gp, t9           |     gp += t9;
    0x00007724 addiu sp, sp, -0xc0       |     
    0x00007728 lw a1, -0x7fd0(gp)        |     a1 = sym.imp.strspn;
    0x0000772c sw s1, 0xac(sp)           |     *(var_ach_2) = s1;
    0x00007730 lw s1, -0x7cf4(gp)        |     s1 = *((gp - 7997));
    0x00007734 sw s2, 0xb0(sp)           |     *(var_b0h_2) = s2;
    0x00007738 lw s2, -0x7fd0(gp)        |     s2 = sym.imp.strspn;
    0x0000773c lw v0, (s1)               |     v0 = *(s1);
    0x00007740 lw t9, -0x7ce4(gp)        |     t9 = sym.imp.fopen;
    0x00007744 sw gp, 0x10(sp)           |     *(var_10h_2) = gp;
    0x00007748 sw s3, 0xb4(sp)           |     *(var_b4h_2) = s3;
    0x0000774c sw ra, 0xbc(sp)           |     *(var_bch_2) = ra;
    0x00007750 sw s4, 0xb8(sp)           |     *(var_b8h_2) = s4;
    0x00007754 sw s0, 0xa8(sp)           |     *(var_a8h_2) = s0;
    0x00007758 move s3, a0               |     s3 = a0;
    0x0000775c addiu a1, a1, 0x1490      |     a1 += 0x1490;
                                         |     /* str._proc_uptime */
    0x00007760 addiu a0, s2, 0x740       |     a0 = s2 + 0x740;
    0x00007764 sw v0, 0xa4(sp)           |     *(var_a4h_2) = v0;
    0x00007768 jalr t9                   |     t9 ();
    0x0000776c nop                       |     
    0x00007770 lw gp, 0x10(sp)           |     gp = *(var_10h_2);
                                         |     if (v0 != 0) {
    0x00007774 beqz v0, 0x77d4           |         
    0x00007778 lw t9, -0x7cf8(gp)        |         t9 = sym.imp.fgets;
    0x0000777c addiu s4, sp, 0x24        |         s4 = sp + 0x24;
    0x00007780 move a2, v0               |         a2 = v0;
    0x00007784 addiu a1, zero, 0x80      |         a1 = 0x80;
    0x00007788 move a0, s4               |         a0 = s4;
    0x0000778c move s0, v0               |         s0 = v0;
    0x00007790 jalr t9                   |         t9 ();
    0x00007794 lw gp, 0x10(sp)           |         gp = *(var_10h_2);
                                         |         if (v0 != 0) {
    0x00007798 beqz v0, 0x77c4           |             
    0x0000779c lw a1, -0x7fd0(gp)        |             a1 = sym.imp.strspn;
    0x000077a0 lw t9, -0x7d5c(gp)        |             t9 = sym.imp.__isoc99_sscanf;
    0x000077a4 addiu a3, sp, 0x20        |             a3 = sp + 0x20;
    0x000077a8 addiu a2, sp, 0x1c        |             a2 = sp + 0x1c;
                                         |             /* str._lu._lu */
    0x000077ac addiu a1, a1, 0x750       |             a1 += 0x750;
    0x000077b0 move a0, s4               |             a0 = s4;
    0x000077b4 jalr t9                   |             t9 ();
    0x000077b8 addiu v1, zero, 2         |             v1 = 2;
    0x000077bc lw gp, 0x10(sp)           |             gp = *(var_10h_2);
                                         |             if (v0 == v1) {
    0x000077c0 beq v0, v1, 0x7804        |                 goto label_0;
                                         |             }
                                         |         }
    0x000077c4 lw t9, -0x7d94(gp)        |         t9 = sym.imp.fclose;
    0x000077c8 move a0, s0               |         a0 = s0;
    0x000077cc jalr t9                   |         t9 ();
    0x000077d0 lw gp, 0x10(sp)           |         gp = *(var_10h_2);
                                         |     }
    0x000077d4 lw v0, -0x7cec(gp)        |     v0 = *((gp - 7995));
    0x000077d8 lw a2, -0x7fd0(gp)        |     a2 = sym.imp.strspn;
    0x000077dc lw t9, -0x7d9c(gp)        |     t9 = sym.imp.__fprintf_chk
    0x000077e0 lw a0, (v0)               |     a0 = *(v0);
                                         |     /* str._proc_uptime */
    0x000077e4 addiu a3, s2, 0x740       |     a3 = s2 + 0x740;
                                         |     /* str.Cannot_read__s_n */
    0x000077e8 addiu a2, a2, 0x758       |     a2 += 0x758;
    0x000077ec addiu a1, zero, 1         |     a1 = 1;
    0x000077f0 jalr t9                   |     t9 ();
    0x000077f4 lw gp, 0x10(sp)           |     gp = *(var_10h_2);
    0x000077f8 lw t9, -0x7d3c(gp)        |     t9 = sym.imp.exit;
    0x000077fc addiu a0, zero, 2         |     a0 = 2;
    0x00007800 jalr t9                   |     t9 ();
                                         | label_0:
    0x00007804 lw v0, 0x20(sp)           |     v0 = *(var_20h);
    0x00007808 move v1, zero             |     v1 = 0;
    0x0000780c mtlo v0                   |     __asm ("mtlo v0");
    0x00007810 lw a1, 0x1c(sp)           |     a1 = *(var_1ch);
    0x00007814 mthi v1                   |     __asm ("mthi v1");
    0x00007818 addiu a0, zero, 0x64      |     a0 = 0x64;
    0x0000781c maddu a1, a0              |     __asm ("maddu a1, a0");
    0x00007820 mfhi v1                   |     __asm ("mfhi v1");
    0x00007824 mflo v0                   |     __asm ("mflo v0");
    0x00007828 lw t9, -0x7d94(gp)        |     t9 = sym.imp.fclose;
    0x0000782c move a0, s0               |     a0 = s0;
    0x00007830 sw v1, 4(s3)              |     *((s3 + 1)) = v1;
    0x00007834 sw v0, (s3)               |     *(s3) = v0;
    0x00007838 jalr t9                   |     t9 ();
    0x0000783c lw v1, 0xa4(sp)           |     v1 = *(var_a4h_2);
    0x00007840 lw v0, (s1)               |     v0 = *(s1);
    0x00007844 lw gp, 0x10(sp)           |     gp = *(var_10h_2);
                                         |     if (v1 == v0) {
    0x00007848 bne v1, v0, 0x786c        |         
    0x0000784c lw ra, 0xbc(sp)           |         ra = *(var_bch_2);
    0x00007850 lw s4, 0xb8(sp)           |         s4 = *(var_b8h_2);
    0x00007854 lw s3, 0xb4(sp)           |         s3 = *(var_b4h_2);
    0x00007858 lw s2, 0xb0(sp)           |         s2 = *(var_b0h_2);
    0x0000785c lw s1, 0xac(sp)           |         s1 = *(var_ach_2);
    0x00007860 lw s0, 0xa8(sp)           |         s0 = *(var_a8h_2);
    0x00007864 addiu sp, sp, 0xc0        |         
    0x00007868 jr ra                     |         return v1;
                                         |     }
    0x0000786c lw t9, -0x7d08(gp)        |     t9 = sym.imp.__stack_chk_fail;
    0x00007870 jalr t9                   |     t9 ();
    0x00007874 nop                       |     
    0x00007878 lui gp, 2                 |     
    0x0000787c addiu gp, gp, 0x42c8      |     
    0x00007880 addu gp, gp, t9           |     gp += t9;
    0x00007884 addiu sp, sp, -0x30       |     
    0x00007888 lw v0, 0x28(a1)           |     v0 = *((a1 + 10));
    0x0000788c sw s1, 0x1c(sp)           |     *(var_1ch_2) = s1;
    0x00007890 move s1, a0               |     s1 = a0;
    0x00007894 lw a0, 0x28(a0)           |     a0 = *((a0 + 10));
    0x00007898 lw t9, -0x7e14(gp)        |     t9 = *(gp);
    0x0000789c sw ra, 0x2c(sp)           |     *(var_2ch) = ra;
    0x000078a0 sw gp, 0x10(sp)           |     *(var_10h_3) = gp;
    0x000078a4 sw s4, 0x28(sp)           |     *(var_28h) = s4;
    0x000078a8 sw s3, 0x24(sp)           |     *(var_24h) = s3;
    0x000078ac sw s2, 0x20(sp)           |     *(var_20h_2) = s2;
    0x000078b0 sw s0, 0x18(sp)           |     *(var_18h) = s0;
    0x000078b4 subu a0, a0, v0           |     __asm ("subu a0, a0, v0");
    0x000078b8 move s2, a2               |     s2 = a2;
    0x000078bc move s3, a3               |     s3 = a3;
    0x000078c0 move s0, a1               |     s0 = a1;
    0x000078c4 bal 0xf950                |     fcn_0000f950 ();
    0x000078c8 lw gp, 0x10(sp)           |     gp = *(var_10h_3);
    0x000078cc move a0, s2               |     a0 = s2;
    0x000078d0 move a1, s3               |     a1 = s3;
    0x000078d4 lw t9, -0x7e10(gp)        |     t9 = *(gp);
    0x000078d8 move s2, v0               |     s2 = v0;
    0x000078dc move s3, v1               |     s3 = v1;
    0x000078e0 bal 0xf9f0                |     fcn_0000f9f0 ();
    0x000078e4 lw gp, 0x10(sp)           |     gp = *(var_10h_3);
    0x000078e8 move a2, v0               |     a2 = v0;
    0x000078ec move a3, v1               |     a3 = v1;
    0x000078f0 lw t9, -0x7e0c(gp)        |     t9 = *(gp);
    0x000078f4 move a0, s2               |     a0 = s2;
    0x000078f8 move a1, s3               |     a1 = s3;
    0x000078fc bal 0xebf0                |     fcn_0000ebf0 ();
    0x00007900 lw gp, 0x10(sp)           |     gp = *(var_10h_3);
    0x00007904 lw s4, 0x40(sp)           |     s4 = *(var_10h_2);
    0x00007908 move a1, v1               |     a1 = v1;
    0x0000790c lw a0, -0x7fd0(gp)        |     a0 = sym.imp.strspn;
    0x00007910 lw t9, -0x7e08(gp)        |     t9 = *(gp);
    0x00007914 lw a2, 0x15a0(a0)         |     a2 = *((a0 + 1384));
    0x00007918 lw a3, 0x15a4(a0)         |     a3 = *((a0 + 1385));
    0x0000791c move a0, v0               |     a0 = v0;
    0x00007920 bal 0xf3b0                |     fcn_0000f3b0 ();
    0x00007924 lw a1, (s1)               |     a1 = *(s1);
    0x00007928 lw a0, (s0)               |     a0 = *(s0);
    0x0000792c lw gp, 0x10(sp)           |     gp = *(var_10h_3);
    0x00007930 sw v0, (s4)               |     *(s4) = v0;
    0x00007934 sw v1, 4(s4)              |     *((s4 + 1)) = v1;
    0x00007938 lw v0, 4(s1)              |     v0 = *((s1 + 1));
    0x0000793c lw v1, 4(s0)              |     v1 = *((s0 + 1));
                                         |     if (a1 == a0) {
    0x00007940 beq a1, a0, 0x7a3c        |         goto label_1;
                                         |     }
    0x00007944 subu a0, a1, a0           |     __asm ("subu a0, a1, a0");
                                         |     do {
    0x00007948 lw t9, -0x7e10(gp)        |         t9 = *(gp);
    0x0000794c sltu a1, a1, a0           |         a1 = (a1 < a0) ? 1 : 0;
    0x00007950 subu v0, v0, v1           |         __asm ("subu v0, v0, v1");
    0x00007954 subu a1, v0, a1           |         __asm ("subu a1, v0, a1");
    0x00007958 bal 0xf9f0                |         fcn_0000f9f0 ();
    0x0000795c lw a1, 0x20(s0)           |         a1 = *((s0 + 8));
    0x00007960 lw a0, 0x20(s1)           |         a0 = *((s1 + 8));
    0x00007964 lw a2, 0x24(s1)           |         a2 = *((s1 + 9));
    0x00007968 lw gp, 0x10(sp)           |         gp = *(var_10h_3);
    0x0000796c subu a0, a0, a1           |         __asm ("subu a0, a0, a1");
    0x00007970 lw a1, 0x24(s0)           |         a1 = *((s0 + 9));
    0x00007974 lw a3, 0x38(s1)           |         a3 = *((s1 + 14));
    0x00007978 addu a0, a0, a2           |         a0 += a2;
    0x0000797c subu a1, a0, a1           |         __asm ("subu a1, a0, a1");
    0x00007980 lw a2, 0x38(s0)           |         a2 = *((s0 + 14));
    0x00007984 addu a0, a1, a3           |         a0 = a1 + a3;
    0x00007988 lw t9, -0x7e14(gp)        |         t9 = *(gp);
    0x0000798c subu a0, a0, a2           |         __asm ("subu a0, a0, a2");
    0x00007990 move s2, v0               |         s2 = v0;
    0x00007994 move s3, v1               |         s3 = v1;
    0x00007998 bal 0xf950                |         fcn_0000f950 ();
    0x0000799c lw gp, 0x10(sp)           |         gp = *(var_10h_3);
    0x000079a0 move a2, s2               |         a2 = s2;
    0x000079a4 move a3, s3               |         a3 = s3;
    0x000079a8 lw t9, -0x7e0c(gp)        |         t9 = *(gp);
    0x000079ac move a0, v0               |         a0 = v0;
    0x000079b0 move a1, v1               |         a1 = v1;
    0x000079b4 bal 0xebf0                |         fcn_0000ebf0 ();
    0x000079b8 lw a1, 8(s0)              |         a1 = *((s0 + 2));
    0x000079bc lw a0, 8(s1)              |         a0 = *((s1 + 2));
    0x000079c0 lw a2, 0x10(s1)           |         a2 = *((s1 + 4));
    0x000079c4 lw gp, 0x10(sp)           |         gp = *(var_10h_3);
    0x000079c8 subu a0, a0, a1           |         __asm ("subu a0, a0, a1");
    0x000079cc lw a1, 0x10(s0)           |         a1 = *((s0 + 4));
    0x000079d0 lw a3, 0x18(s1)           |         a3 = *((s1 + 6));
    0x000079d4 addu a0, a0, a2           |         a0 += a2;
    0x000079d8 subu a1, a0, a1           |         __asm ("subu a1, a0, a1");
    0x000079dc lw a2, 0x18(s0)           |         a2 = *((s0 + 6));
    0x000079e0 addu a0, a1, a3           |         a0 = a1 + a3;
    0x000079e4 lw t9, -0x7e14(gp)        |         t9 = *(gp);
    0x000079e8 subu a0, a0, a2           |         __asm ("subu a0, a0, a2");
    0x000079ec sw v0, 8(s4)              |         *((s4 + 2)) = v0;
    0x000079f0 sw v1, 0xc(s4)            |         *((s4 + 3)) = v1;
    0x000079f4 bal 0xf950                |         fcn_0000f950 ();
    0x000079f8 lw gp, 0x10(sp)           |         gp = *(var_10h_3);
    0x000079fc move a2, s2               |         a2 = s2;
    0x00007a00 move a3, s3               |         a3 = s3;
    0x00007a04 lw t9, -0x7e0c(gp)        |         t9 = *(gp);
    0x00007a08 move a0, v0               |         a0 = v0;
    0x00007a0c move a1, v1               |         a1 = v1;
    0x00007a10 bal 0xebf0                |         fcn_0000ebf0 ();
    0x00007a14 lw ra, 0x2c(sp)           |         ra = *(var_2ch);
    0x00007a18 sw v0, 0x10(s4)           |         *((s4 + 4)) = v0;
    0x00007a1c sw v1, 0x14(s4)           |         *((s4 + 5)) = v1;
    0x00007a20 lw s3, 0x24(sp)           |         s3 = *(var_24h);
    0x00007a24 lw s4, 0x28(sp)           |         s4 = *(var_28h);
    0x00007a28 lw s2, 0x20(sp)           |         s2 = *(var_20h_2);
    0x00007a2c lw s1, 0x1c(sp)           |         s1 = *(var_1ch_2);
    0x00007a30 lw s0, 0x18(sp)           |         s0 = *(var_18h);
    0x00007a34 addiu sp, sp, 0x30        |         
    0x00007a38 jr ra                     |         return v1;
                                         | label_1:
    0x00007a3c subu a0, a1, a0           |         __asm ("subu a0, a1, a0");
    0x00007a40 bnel v0, v1, 0x7948       |         
                                         |     } while (v0 == v1);
    0x00007a44 lw ra, 0x2c(sp)           |     ra = *(var_2ch);
    0x00007a48 move v0, zero             |     v0 = 0;
    0x00007a4c move v1, zero             |     v1 = 0;
    0x00007a50 sw zero, 8(s4)            |     *((s4 + 2)) = 0;
    0x00007a54 sw zero, 0xc(s4)          |     *((s4 + 3)) = 0;
    0x00007a58 sw v0, 0x10(s4)           |     *((s4 + 4)) = v0;
    0x00007a5c sw v1, 0x14(s4)           |     *((s4 + 5)) = v1;
    0x00007a60 lw s3, 0x24(sp)           |     s3 = *(var_24h);
    0x00007a64 lw s4, 0x28(sp)           |     s4 = *(var_28h);
    0x00007a68 lw s2, 0x20(sp)           |     s2 = *(var_20h_2);
    0x00007a6c lw s1, 0x1c(sp)           |     s1 = *(var_1ch_2);
    0x00007a70 lw s0, 0x18(sp)           |     s0 = *(var_18h);
    0x00007a74 addiu sp, sp, 0x30        |     
    0x00007a78 jr ra                     |     return v1;
                                         | }
    ; assembly                               | /* r2dec pseudo code output */
                                             | /* /logs/firmware/unblob_extracted/firmware_extract/4325012-58052244.squashfs_v4_le_extract/usr/libexec/sa/sadc @ 0x6cb8 */
                                             | #include <stdint.h>
                                             |  
    ; (fcn) sym.sysstat_panic ()             | void sysstat_panic () {
    0x00006cb8 lui gp, 2                     |     
    0x00006cbc addiu gp, gp, 0x4e88          |     
    0x00006cc0 addu gp, gp, t9               |     gp += t9;
    0x00006cc4 lw v0, -0x7cec(gp)            |     v0 = *((gp - 7995));
    0x00006cc8 addiu sp, sp, -0x28           |     
    0x00006ccc lw a2, -0x7fd0(gp)            |     a2 = sym.imp.strspn;
    0x00006cd0 lw t9, -0x7d9c(gp)            |     t9 = sym.imp.__fprintf_chk
    0x00006cd4 move a3, a0                   |     a3 = a0;
    0x00006cd8 lw a0, (v0)                   |     a0 = *(v0);
                                             |     /* str.sysstat:__s__d_:_Internal_error..._n */
    0x00006cdc addiu a2, a2, 0x5d4           |     a2 += 0x5d4;
    0x00006ce0 sw gp, 0x18(sp)               |     *(var_18h) = gp;
    0x00006ce4 sw a1, 0x10(sp)               |     *(var_10h) = a1;
    0x00006ce8 sw ra, 0x24(sp)               |     *(var_24h) = ra;
    0x00006cec addiu a1, zero, 1             |     a1 = 1;
    0x00006cf0 jalr t9                       |     t9 ();
    0x00006cf4 lw gp, 0x18(sp)               |     gp = *(var_18h);
    0x00006cf8 lw t9, -0x7d3c(gp)            |     t9 = sym.imp.exit;
    0x00006cfc addiu a0, zero, 1             |     a0 = 1;
    0x00006d00 jalr t9                       |     t9 ();
    0x00006d04 nop                           |     
    0x00006d08 nop                           |     
    0x00006d0c nop                           |     
                                             | }
    ; assembly                           | /* r2dec pseudo code output */
                                         | /* /logs/firmware/unblob_extracted/firmware_extract/4325012-58052244.squashfs_v4_le_extract/usr/libexec/sa/sadc @ 0x3050 */
                                         | #include <stdint.h>
                                         |  
    ; (fcn) sym.usage ()                 | void usage () {
    0x00003050 lui gp, 3                 |     
    0x00003054 addiu gp, gp, -0x7510     |     
    0x00003058 addu gp, gp, t9           |     gp += t9;
    0x0000305c addiu sp, sp, -0x20       |     
    0x00003060 lw a2, -0x7fd0(gp)        |     a2 = sym.imp.strspn;
    0x00003064 sw s0, 0x18(sp)           |     *(var_18h) = s0;
    0x00003068 lw s0, -0x7cec(gp)        |     s0 = *((gp - 7995));
    0x0000306c lw t9, -0x7d9c(gp)        |     t9 = sym.imp.__fprintf_chk
    0x00003070 move a3, a0               |     a3 = a0;
    0x00003074 lw a0, (s0)               |     a0 = *(s0);
    0x00003078 sw gp, 0x10(sp)           |     *(var_10h_2) = gp;
    0x0000307c sw ra, 0x1c(sp)           |     *(var_1ch_2) = ra;
                                         |     /* str.Usage:__s___options______interval_____count_________outfile____n */
    0x00003080 addiu a2, a2, 0x94        |     a2 += 0x94;
    0x00003084 addiu a1, zero, 1         |     a1 = 1;
    0x00003088 jalr t9                   |     t9 ();
    0x0000308c lw gp, 0x10(sp)           |     gp = *(var_10h_2);
    0x00003090 lw a3, (s0)               |     a3 = *(s0);
    0x00003094 addiu a2, zero, 0x82      |     a2 = 0x82;
    0x00003098 lw a0, -0x7fd0(gp)        |     a0 = sym.imp.strspn;
    0x0000309c lw t9, -0x7d20(gp)        |     t9 = sym.imp.fwrite;
                                         |     /* str.Options_are:_n___C__comment_______D______F______f______L______V___n___S__INT__DISK__IPV6__POWER__SNMP__XDISK__ALL__XALL____n */
    0x000030a0 addiu a0, a0, 0xd4        |     a0 += 0xd4;
    0x000030a4 addiu a1, zero, 1         |     a1 = 1;
    0x000030a8 jalr t9                   |     t9 ();
    0x000030ac lw gp, 0x10(sp)           |     gp = *(var_10h_2);
    0x000030b0 lw t9, -0x7d3c(gp)        |     t9 = sym.imp.exit;
    0x000030b4 addiu a0, zero, 1         |     a0 = 1;
    0x000030b8 jalr t9                   |     t9 ();
    0x000030bc lui gp, 3                 |     
    0x000030c0 addiu gp, gp, -0x757c     |     
    0x000030c4 addu gp, gp, t9           |     gp += t9;
    0x000030c8 lw v0, -0x7fcc(gp)        |     v0 = *(gp);
    0x000030cc addiu a3, v0, 0x9c        |     a3 = v0 + 0x9c;
    0x000030d0 lw a2, (v0)               |     a2 = *(v0);
                                         |     do {
    0x000030d4 lw v1, 0xc(a2)            |         v1 = *((a2 + 3));
    0x000030d8 and v1, a0, v1            |         v1 = a0 & v1;
    0x000030dc addiu v0, v0, 4           |         v0 += 4;
                                         |         if (v1 != 0) {
    0x000030e0 beqz v1, 0x3100           |             
    0x000030e4 lw v1, 4(a2)              |             v1 = *((a2 + 1));
    0x000030e8 ori v1, v1, 1             |             v1 |= 1;
    0x000030ec sw v1, 4(a2)              |             *((a2 + 1)) = v1;
                                         |             if (a1 == 0) {
    0x000030f0 beqz a1, 0x3100           |                 goto label_0;
                                         |             }
    0x000030f4 lw v1, 0x94(a2)           |             v1 = *((a2 + 37));
    0x000030f8 or v1, v1, a1             |             v1 |= a1;
    0x000030fc sw v1, 0x94(a2)           |             *((a2 + 37)) = v1;
                                         |         }
                                         | label_0:
    0x00003100 lw a2, (v0)               |         a2 = *(v0);
    0x00003104 bnel v0, a3, 0x30d4       |         
                                         |     } while (v0 == a3);
    0x00003108 jr ra                     |     return v0;
    0x0000310c nop                       |     
                                         | }

[*] Function fprintf used 14 times sadc