[*] Binary protection state of sadf

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


[*] Function strcat tear down of sadf

    ; assembly                               | /* r2dec pseudo code output */
                                             | /* /logs/firmware/unblob_extracted/firmware_extract/4325012-58052244.squashfs_v4_le_extract/usr/bin/sadf @ 0x57dbc */
                                             | #include <stdint.h>
                                             |  
    ; (fcn) sym.ioc_init ()                  | void ioc_init () {
    0x00057dbc lui gp, 2                     |     
    0x00057dc0 addiu gp, gp, 0x7204          |     
    0x00057dc4 addu gp, gp, t9               |     gp += t9;
    0x00057dc8 lw v0, -0x7b7c(gp)            |     v0 = *((gp - 7903));
    0x00057dcc addiu sp, sp, -0x248          |     
    0x00057dd0 lw t9, -0x7b64(gp)            |     t9 = sym.imp.fopen;
    0x00057dd4 sw s1, 0x224(sp)              |     *(var_224h) = s1;
    0x00057dd8 sw s0, 0x220(sp)              |     *(var_220h) = s0;
    0x00057ddc lw s1, -0x7fdc(gp)            |     s1 = *(gp);
    0x00057de0 lw s0, -0x7fdc(gp)            |     s0 = *(gp);
    0x00057de4 sw v0, 0x50(sp)               |     *(var_50h) = v0;
    0x00057de8 lw v0, (v0)                   |     v0 = *(v0);
    0x00057dec sw gp, 0x30(sp)               |     *(var_30h) = gp;
    0x00057df0 sw ra, 0x244(sp)              |     *(var_244h) = ra;
    0x00057df4 sw fp, 0x240(sp)              |     *(var_240h) = fp;
    0x00057df8 sw s7, 0x23c(sp)              |     *(var_23ch) = s7;
    0x00057dfc sw s6, 0x238(sp)              |     *(var_238h) = s6;
    0x00057e00 sw s5, 0x234(sp)              |     *(var_234h) = s5;
    0x00057e04 sw s4, 0x230(sp)              |     *(var_230h) = s4;
    0x00057e08 sw s3, 0x22c(sp)              |     *(var_22ch) = s3;
    0x00057e0c sw s2, 0x228(sp)              |     *(var_228h) = s2;
    0x00057e10 addiu a1, s1, 0x4314          |     a1 = s1 + 0x4314;
                                             |     /* str._etc_sysconfig_sysstat.ioconf */
    0x00057e14 addiu a0, s0, 0x4484          |     a0 = s0 + 0x4484;
    0x00057e18 sw v0, 0x21c(sp)              |     *(var_21ch) = v0;
    0x00057e1c jalr t9                       |     t9 ();
    0x00057e20 nop                           |     
    0x00057e24 lw gp, 0x30(sp)               |     gp = *(var_30h);
                                             |     if (v0 == 0) {
    0x00057e28 beqz v0, 0x5858c              |         goto label_13;
                                             |     }
    0x00057e2c lw t9, -0x7c00(gp)            |     t9 = sym.imp.strncpy;
    0x00057e30 addiu s7, sp, 0xdc            |     s7 = sp + 0xdc;
    0x00057e34 addiu a2, zero, 0x40          |     a2 = 0x40;
                                             |     /* str._etc_sysconfig_sysstat.ioconf */
    0x00057e38 addiu a1, s0, 0x4484          |     a1 = s0 + 0x4484;
    0x00057e3c move a0, s7                   |     a0 = s7;
    0x00057e40 move s6, v0                   |     s6 = v0;
    0x00057e44 jalr t9                       |     t9 ();
    0x00057e48 lw gp, 0x30(sp)               |     gp = *(var_30h);
                                             | label_12:
    0x00057e4c lw v0, -0x7d40(gp)            |     v0 = *((gp - 8016));
    0x00057e50 lw t9, -0x7bf4(gp)            |     t9 = sym.imp.memset;
    0x00057e54 addiu v0, v0, -0x384c         |     v0 += -0x384c;
    0x00057e58 sw v0, 0x4c(sp)               |     *(var_4ch) = v0;
    0x00057e5c addiu a2, zero, 0x800         |     a2 = 0x800;
    0x00057e60 move a1, zero                 |     a1 = 0;
    0x00057e64 move a0, v0                   |     a0 = v0;
    0x00057e68 sb zero, 0x11b(sp)            |     *(var_11bh) = 0;
    0x00057e6c jalr t9                       |     t9 ();
    0x00057e70 lw gp, 0x30(sp)               |     gp = *(var_30h);
    0x00057e74 move s2, zero                 |     s2 = 0;
    0x00057e78 move s0, zero                 |     s0 = 0;
    0x00057e7c lw v0, -0x7fdc(gp)            |     v0 = *(gp);
    0x00057e80 sw zero, 0x48(sp)             |     *(var_48h) = 0;
    0x00057e84 sw v0, 0x3c(sp)               |     *(var_3ch) = v0;
    0x00057e88 lw v0, -0x7d40(gp)            |     v0 = *((gp - 8016));
    0x00057e8c addiu fp, sp, 0x11c           |     fp = sp + aav.0x0000011c;
    0x00057e90 addiu v0, v0, -0x304c         |     v0 += -0x304c;
    0x00057e94 sw v0, 0x40(sp)               |     *(var_40h) = v0;
    0x00057e98 lw v0, -0x7fdc(gp)            |     v0 = *(gp);
                                             |     /* str._s:_Indirect_record__u:_u:_u:..._references_not_yet_seen_major__u_n */
    0x00057e9c addiu v0, v0, 0x4514          |     v0 += 0x4514;
    0x00057ea0 sw v0, 0x5c(sp)               |     *(var_5ch) = v0;
    0x00057ea4 lw v0, -0x7fdc(gp)            |     v0 = *(gp);
    0x00057ea8 sw v0, 0x54(sp)               |     *(var_54h) = v0;
    0x00057eac lw v0, -0x7fdc(gp)            |     v0 = *(gp);
    0x00057eb0 addiu v0, v0, -0x2890         |     v0 += -0x2890;
    0x00057eb4 sw v0, 0x58(sp)               |     *(var_58h) = v0;
                                             |     do {
                                             | label_2:
    0x00057eb8 lw t9, -0x7b80(gp)            |         t9 = sym.imp.fgets;
                                             | label_0:
    0x00057ebc move a2, s6                   |         a2 = s6;
    0x00057ec0 addiu a1, zero, 0xff          |         a1 = 0xff;
    0x00057ec4 move a0, fp                   |         a0 = fp;
    0x00057ec8 jalr t9                       |         t9 ();
    0x00057ecc lw gp, 0x30(sp)               |         gp = *(var_30h);
                                             |         if (v0 == 0) {
    0x00057ed0 beqz v0, 0x58138              |             goto label_14;
                                             |         }
                                             | label_1:
    0x00057ed4 lb v0, 0x11c(sp)              |         v0 = *(var_11ch);
    0x00057ed8 addiu a0, zero, 0x23          |         a0 = 0x23;
    0x00057edc addiu a0, zero, 0xa           |         a0 = 0xa;
    0x00057ee0 beq v0, a0, 0x57eb8           |         
                                             |     } while (v0 == a0);
    0x00057ee4 lw t9, -0x7b80(gp)            |     t9 = sym.imp.fgets;
                                             |     if (v0 == a0) {
    0x00057ee8 beq v0, a0, 0x57ebc           |         goto label_0;
                                             |     }
    0x00057eec lw t9, -0x7bc0(gp)            |     t9 = sym.imp.malloc;
                                             |     if (s2 == 0) {
    0x00057ef0 beqz s2, 0x582ec              |         goto label_15;
                                             |     }
                                             | label_5:
    0x00057ef4 lw t9, -0x7bc0(gp)            |     t9 = sym.imp.malloc;
                                             |     if (s0 == 0) {
    0x00057ef8 beqz s0, 0x58288              |         goto label_16;
                                             |     }
                                             | label_3:
    0x00057efc lw t9, -0x7bf4(gp)            |     t9 = sym.imp.memset;
    0x00057f00 addiu a2, zero, 0xf0          |     a2 = 0xf0;
    0x00057f04 move a1, zero                 |     a1 = 0;
    0x00057f08 move a0, s2                   |     a0 = s2;
    0x00057f0c jalr t9                       |     t9 ();
    0x00057f10 lw gp, 0x30(sp)               |     gp = *(var_30h);
    0x00057f14 lw v0, 0x3c(sp)               |     v0 = *(var_3ch);
    0x00057f18 addiu s4, s0, 4               |     s4 = s0 + 4;
    0x00057f1c lw t9, -0x7bf0(gp)            |     t9 = sym.imp.__isoc99_sscanf;
    0x00057f20 addiu s5, sp, 0x68            |     s5 = sp + 0x68;
    0x00057f24 addiu s3, sp, 0x64            |     s3 = sp + 0x64;
    0x00057f28 addiu s1, sp, 0x9c            |     s1 = sp + 0x9c;
    0x00057f2c sw zero, (s0)                 |     *(s0) = 0;
    0x00057f30 sw zero, 4(s0)                |     *((s0 + 1)) = 0;
    0x00057f34 sw zero, 8(s0)                |     *((s0 + 2)) = 0;
    0x00057f38 sw zero, 0xc(s0)              |     *((s0 + 3)) = 0;
    0x00057f3c sw zero, 0x10(s0)             |     *((s0 + 4)) = 0;
    0x00057f40 move a0, fp                   |     a0 = fp;
    0x00057f44 move a3, s5                   |     a3 = s5;
    0x00057f48 sw s1, 0x14(sp)               |     *(var_14h) = s1;
    0x00057f4c sw s4, 0x10(sp)               |     *(var_10h) = s4;
    0x00057f50 move a2, s3                   |     a2 = s3;
    0x00057f54 addiu a1, v0, 0x44b8          |     a1 = v0 + 0x44b8;
    0x00057f58 jalr t9                       |     t9 ();
    0x00057f5c addiu a0, zero, 4             |     a0 = 4;
    0x00057f60 lw gp, 0x30(sp)               |     gp = *(var_30h);
                                             |     if (v0 == a0) {
    0x00057f64 beq v0, a0, 0x581b8           |         goto label_17;
                                             |     }
    0x00057f68 lw a1, -0x7fdc(gp)            |     a1 = *(gp);
    0x00057f6c lw t9, -0x7bf0(gp)            |     t9 = sym.imp.__isoc99_sscanf;
    0x00057f70 move a0, fp                   |     a0 = fp;
    0x00057f74 sw s4, 0x10(sp)               |     *(var_10h) = s4;
    0x00057f78 move a3, s5                   |     a3 = s5;
    0x00057f7c move a2, s3                   |     a2 = s3;
                                             |     /* str._u:_u:_u */
    0x00057f80 addiu a1, a1, 0x44c4          |     a1 += 0x44c4;
    0x00057f84 jalr t9                       |     t9 ();
    0x00057f88 addiu a0, v0, -3              |     a0 = v0 + -3;
    0x00057f8c sltiu a0, a0, 2               |     a0 = (a0 < 2) ? 1 : 0;
    0x00057f90 lw gp, 0x30(sp)               |     gp = *(var_30h);
                                             |     if (a0 != 0) {
    0x00057f94 bnez a0, 0x581bc              |         goto label_18;
                                             |     }
    0x00057f98 addiu v0, sp, 0x8c            |     v0 = sp + 0x8c;
    0x00057f9c move v1, v0                   |     v1 = v0;
    0x00057fa0 lw a1, -0x7fdc(gp)            |     a1 = *(gp);
    0x00057fa4 sw v0, 0x44(sp)               |     *(var_44h) = v0;
    0x00057fa8 addiu v0, s2, 0x7c            |     v0 = s2 + 0x7c;
    0x00057fac lw t9, -0x7bf0(gp)            |     t9 = sym.imp.__isoc99_sscanf;
    0x00057fb0 addiu a0, s2, 0x80            |     a0 = s2 + 0x80;
    0x00057fb4 sw v0, 0x1c(sp)               |     *(var_1ch) = v0;
    0x00057fb8 addiu s5, sp, 0x6c            |     s5 = sp + 0x6c;
    0x00057fbc addiu v0, sp, 0x7c            |     v0 = sp + 0x7c;
    0x00057fc0 sw a0, 0x24(sp)               |     *(var_24h) = a0;
    0x00057fc4 sw s1, 0x28(sp)               |     *(var_28h) = s1;
    0x00057fc8 move a0, fp                   |     a0 = fp;
    0x00057fcc sw v1, 0x20(sp)               |     *(var_20h) = v1;
    0x00057fd0 sw v0, 0x18(sp)               |     *(var_18h) = v0;
    0x00057fd4 sw s4, 0x14(sp)               |     *(var_14h) = s4;
    0x00057fd8 sw s5, 0x10(sp)               |     *(var_10h) = s5;
    0x00057fdc move a3, s2                   |     a3 = s2;
    0x00057fe0 move a2, s3                   |     a2 = s3;
                                             |     /* str._u:__:_:__:_:_u:__:_:_u:__:_:_u:_s */
    0x00057fe4 addiu a1, a1, 0x455c          |     a1 += 0x455c;
    0x00057fe8 jalr t9                       |     t9 ();
    0x00057fec addiu a0, zero, 9             |     a0 = 9;
    0x00057ff0 lw gp, 0x30(sp)               |     gp = *(var_30h);
                                             |     if (v0 != a0) {
    0x00057ff4 bne v0, a0, 0x58344           |         goto label_19;
                                             |     }
    0x00057ff8 lw a1, 0x64(sp)               |     a1 = *(var_64h);
    0x00057ffc addiu v0, a1, -1              |     v0 = a1 + -1;
    0x00058000 sltiu v0, v0, 0x1fe           |     v0 = (v0 < 0x1fe) ? 1 : 0;
    0x00058004 lb v0, 0x6c(sp)               |     v0 = *(var_6ch);
                                             |     if (v0 == 0) {
    0x00058008 beqz v0, 0x58490              |         goto label_20;
                                             |     }
    0x0005800c addiu a0, zero, 0x78          |     a0 = 0x78;
    0x00058010 lw v1, 0x40(sp)               |     v1 = *(var_40h);
                                             |     if (v0 == a0) {
    0x00058014 beq v0, a0, 0x583e8           |         goto label_21;
                                             |     }
    0x00058018 addiu a1, zero, 0x2a          |     a1 = 0x2a;
    0x0005801c addiu a0, s2, 0x20            |     a0 = s2 + 0x20;
                                             |     if (v0 == a1) {
    0x00058020 beq v0, a1, 0x584c8           |         goto label_22;
                                             |     }
    0x00058024 lw a3, -0x7fdc(gp)            |     a3 = *(gp);
    0x00058028 lw t9, -0x7c74(gp)            |     t9 = sym.imp.__sprintf_chk;
    0x0005802c sw s5, 0x14(sp)               |     *(var_14h) = s5;
    0x00058030 sw s2, 0x10(sp)               |     *(var_10h) = s2;
                                             |     /* str._s_s__d */
    0x00058034 addiu a3, a3, 0x4654          |     a3 += 0x4654;
    0x00058038 addiu a2, zero, 0x33          |     a2 = 0x33;
    0x0005803c addiu a1, zero, 1             |     a1 = 1;
    0x00058040 jalr t9                       |     t9 ();
    0x00058044 lw v0, 0x78(s2)               |     v0 = *((s2 + 30));
    0x00058048 lw gp, 0x30(sp)               |     gp = *(var_30h);
    0x0005804c addiu v0, v0, 1               |     v0++;
    0x00058050 sw v0, 0x78(s2)               |     *((s2 + 30)) = v0;
    0x00058054 lb v0, 0x7c(sp)               |     v0 = *(var_7ch);
    0x00058058 addiu a0, zero, 0x61          |     a0 = 0x61;
    0x0005805c sb zero, 0x53(s2)             |     *((s2 + 83)) = 0;
                                             |     if (v0 == a0) {
    0x00058060 beq v0, a0, 0x584f0           |         goto label_23;
                                             |     }
                                             | label_8:
    0x00058064 addiu a0, zero, 0x64          |     a0 = 0x64;
    0x00058068 addiu a3, s2, 0x53            |     a3 = s2 + 0x53;
                                             |     if (v0 == a0) {
    0x0005806c beq v0, a0, 0x58564           |         goto label_24;
                                             |     }
    0x00058070 addiu a0, zero, 0x25          |     a0 = 0x25;
    0x00058074 lw t9, -0x7c00(gp)            |     t9 = sym.imp.strncpy;
                                             |     if (v0 == a0) {
    0x00058078 beq v0, a0, 0x58548           |         goto label_25;
                                             |     }
                                             | label_9:
    0x0005807c lb a1, 0x8c(sp)               |     a1 = *(var_8ch);
    0x00058080 addiu v0, zero, 0x2a          |     v0 = 0x2a;
    0x00058084 addiu a0, s2, 0x63            |     a0 = s2 + 0x63;
                                             |     if (a1 == v0) {
    0x00058088 beq a1, v0, 0x584c0           |         goto label_26;
                                             |     }
    0x0005808c lw v0, 0x44(sp)               |     v0 = *(var_44h);
                                             | label_7:
    0x00058090 lw a3, -0x7fdc(gp)            |     a3 = *(gp);
    0x00058094 lw t9, -0x7c74(gp)            |     t9 = sym.imp.__sprintf_chk;
    0x00058098 addiu a1, zero, 1             |     a1 = 1;
    0x0005809c sw v0, 0x10(sp)               |     *(var_10h) = v0;
                                             |     /* str._s__d */
    0x000580a0 addiu a3, a3, 0x465c          |     a3 += 0x465c;
    0x000580a4 addiu a2, zero, 0x12          |     a2 = 0x12;
    0x000580a8 jalr t9                       |     t9 ();
    0x000580ac lw a0, 0x64(sp)               |     a0 = *(var_64h);
    0x000580b0 lw v1, 0x40(sp)               |     v1 = *(var_40h);
    0x000580b4 sll v0, a0, 2                 |     v0 = a0 << 2;
    0x000580b8 addu v0, v0, v1               |     v0 += v1;
    0x000580bc addiu a1, zero, 1             |     a1 = 1;
    0x000580c0 lw gp, 0x30(sp)               |     gp = *(var_30h);
    0x000580c4 sw s2, 0x10(s0)               |     *((s0 + 4)) = s2;
    0x000580c8 sw a1, (s0)                   |     *(s0) = a1;
    0x000580cc sw zero, 0xc(s0)              |     *((s0 + 3)) = 0;
    0x000580d0 sw a0, 8(s0)                  |     *((s0 + 2)) = a0;
    0x000580d4 sw s0, (v0)                   |     *(v0) = s0;
    0x000580d8 addiu s2, s2, 0x84            |     s2 += 0x84;
                                             |     do {
    0x000580dc lw a2, (s1)                   |         a2 = *(s1);
    0x000580e0 lw a1, 4(s1)                  |         a1 = *(var_4h);
    0x000580e4 lw a0, 8(s1)                  |         a0 = *(var_8h);
    0x000580e8 lw v0, 0xc(s1)                |         v0 = *(var_ch);
    0x000580ec addiu s1, s1, 0x10            |         s1 += 0x10;
    0x000580f0 sw a2, (s2)                   |         *(s2) = a2;
    0x000580f4 sw a1, 4(s2)                  |         *((s2 + 1)) = a1;
    0x000580f8 sw a0, 8(s2)                  |         *((s2 + 2)) = a0;
    0x000580fc sw v0, 0xc(s2)                |         *((s2 + 3)) = v0;
    0x00058100 addiu s2, s2, 0x10            |         s2 += 0x10;
    0x00058104 bne s1, s7, 0x580dc           |         
                                             |     } while (s1 != s7);
    0x00058108 lw v0, 0x48(sp)               |     v0 = *(var_48h);
    0x0005810c lw t9, -0x7b80(gp)            |     t9 = sym.imp.fgets;
    0x00058110 addiu v0, v0, 1               |     v0++;
    0x00058114 sw v0, 0x48(sp)               |     *(var_48h) = v0;
    0x00058118 move a2, s6                   |     a2 = s6;
    0x0005811c addiu a1, zero, 0xff          |     a1 = 0xff;
    0x00058120 move a0, fp                   |     a0 = fp;
    0x00058124 jalr t9                       |     t9 ();
    0x00058128 move s2, zero                 |     s2 = 0;
    0x0005812c move s0, zero                 |     s0 = 0;
    0x00058130 lw gp, 0x30(sp)               |     gp = *(var_30h);
                                             |     if (v0 != 0) {
    0x00058134 bnez v0, 0x57ed4              |         goto label_1;
                                             |     }
                                             | label_14:
    0x00058138 lw t9, -0x7c3c(gp)            |     t9 = sym.imp.fclose;
    0x0005813c move a0, s6                   |     a0 = s6;
    0x00058140 jalr t9                       |     t9 ();
    0x00058144 lw gp, 0x30(sp)               |     gp = *(var_30h);
    0x00058148 lw t9, -0x7b74(gp)            |     t9 = sym.imp.free;
    0x0005814c move a0, s2                   |     a0 = s2;
    0x00058150 jalr t9                       |     t9 ();
    0x00058154 lw gp, 0x30(sp)               |     gp = *(var_30h);
    0x00058158 lw t9, -0x7b74(gp)            |     t9 = sym.imp.free;
    0x0005815c move a0, s0                   |     a0 = s0;
    0x00058160 jalr t9                       |     t9 ();
    0x00058164 lw gp, 0x30(sp)               |     gp = *(var_30h);
    0x00058168 addiu a0, zero, 1             |     a0 = 1;
    0x0005816c lw v0, 0x48(sp)               |     v0 = *(var_48h);
    0x00058170 lw v1, -0x7d40(gp)            |     v1 = *((gp - 8016));
    0x00058174 sw a0, -0x284c(v1)            |     *((v1 - 2579)) = a0;
                                             | label_4:
    0x00058178 lw v1, 0x50(sp)               |     v1 = *(var_50h);
    0x0005817c lw a0, 0x21c(sp)              |     a0 = *(var_21ch);
    0x00058180 lw v1, (v1)                   |     v1 = *(v1);
    0x00058184 lw ra, 0x244(sp)              |     ra = *(var_244h);
                                             |     if (a0 != v1) {
    0x00058188 bne a0, v1, 0x5862c           |         goto label_27;
                                             |     }
    0x0005818c lw fp, 0x240(sp)              |     fp = *(var_240h);
    0x00058190 lw s7, 0x23c(sp)              |     s7 = *(var_23ch);
    0x00058194 lw s6, 0x238(sp)              |     s6 = *(var_238h);
    0x00058198 lw s5, 0x234(sp)              |     s5 = *(var_234h);
    0x0005819c lw s4, 0x230(sp)              |     s4 = *(var_230h);
    0x000581a0 lw s3, 0x22c(sp)              |     s3 = *(var_22ch);
    0x000581a4 lw s2, 0x228(sp)              |     s2 = *(var_228h);
    0x000581a8 lw s1, 0x224(sp)              |     s1 = *(var_224h);
    0x000581ac lw s0, 0x220(sp)              |     s0 = *(var_220h);
    0x000581b0 addiu sp, sp, 0x248           |     
    0x000581b4 jr ra                         |     return v0;
                                             | label_17:
    0x000581b8 addiu v0, zero, 4             |     v0 = 4;
                                             | label_18:
    0x000581bc lw a1, 0x68(sp)               |     a1 = *(var_68h);
    0x000581c0 sltiu a0, a1, 0x200           |     a0 = (a1 < aav.0x00000200) ? 1 : 0;
                                             |     if (a1 == 0) {
    0x000581c4 beqz a1, 0x57eb8              |         goto label_2;
                                             |     }
    0x000581c8 lw a2, 0x64(sp)               |     a2 = *(var_64h);
                                             |     if (a0 == 0) {
    0x000581cc beqz a0, 0x58438              |         goto label_28;
                                             |     }
    0x000581d0 sltiu a0, a2, 0x200           |     a0 = (a2 < aav.0x00000200) ? 1 : 0;
    0x000581d4 lw v1, 0x40(sp)               |     v1 = *(var_40h);
                                             |     if (a0 == 0) {
    0x000581d8 beqz a0, 0x58464              |         goto label_29;
                                             |     }
    0x000581dc sll a0, a1, 2                 |     a0 = a1 << 2;
    0x000581e0 lwx a3, a0(v1)                |     __asm ("lwx a3, a0(v1)");
    0x000581e4 addiu t0, zero, 3             |     t0 = 3;
                                             |     if (a3 == 0) {
    0x000581e8 beqz a3, 0x585cc              |         goto label_30;
                                             |     }
                                             |     if (v0 == t0) {
    0x000581ec beql v0, t0, 0x58510          |         goto label_31;
                                             |     }
    0x000581f0 lw v0, 0x10(a3)               |     v0 = *((a3 + 4));
    0x000581f4 lw v0, 0xc(s0)                |     v0 = *((s0 + 3));
    0x000581f8 lw t9, -0x7bc0(gp)            |     t9 = sym.imp.malloc;
                                             |     if (v0 == 0) {
    0x000581fc beqz v0, 0x58374              |         goto label_32;
                                             |     }
                                             |     do {
                                             | label_6:
    0x00058200 lw a3, (s1)                   |         a3 = *(s1);
    0x00058204 lw a2, 4(s1)                  |         a2 = *(var_4h);
    0x00058208 lw a1, 8(s1)                  |         a1 = *(var_8h);
    0x0005820c lw a0, 0xc(s1)                |         a0 = *(var_ch);
    0x00058210 swl a3, 3(v0)                 |         __asm ("swl a3, 3(v0)");
    0x00058214 swr a3, (v0)                  |         __asm ("swr a3, (v0)");
    0x00058218 swl a2, 7(v0)                 |         __asm ("swl a2, 7(v0)");
    0x0005821c swr a2, 4(v0)                 |         __asm ("swr a2, 4(v0)");
    0x00058220 swl a1, 0xb(v0)               |         __asm ("swl a1, 0xb(v0)");
    0x00058224 swr a1, 8(v0)                 |         __asm ("swr a1, 8(v0)");
    0x00058228 swl a0, 0xf(v0)               |         __asm ("swl a0, 0xf(v0)");
    0x0005822c addiu s1, s1, 0x10            |         s1 += 0x10;
    0x00058230 swr a0, 0xc(v0)               |         __asm ("swr a0, 0xc(v0)");
    0x00058234 addiu v0, v0, 0x10            |         v0 += 0x10;
    0x00058238 bne s1, s7, 0x58200           |         
                                             |     } while (s1 != s7);
    0x0005823c lw a1, 0x68(sp)               |     a1 = *(var_68h);
    0x00058240 lw a2, 0x64(sp)               |     a2 = *(var_64h);
    0x00058244 sll a0, a1, 2                 |     a0 = a1 << 2;
                                             | label_10:
    0x00058248 lw v0, 0x40(sp)               |     v0 = *(var_40h);
    0x0005824c sll a2, a2, 2                 |     a2 <<= 2;
    0x00058250 addu a2, v0, a2               |     a2 = v0 + a2;
    0x00058254 lw v1, 0x4c(sp)               |     v1 = *(var_4ch);
    0x00058258 sw s0, (a2)                   |     *(a2) = s0;
    0x0005825c addu a3, v1, a0               |     a3 = v1 + a0;
    0x00058260 lwx a0, a0(v0)                |     __asm ("lwx a0, a0(v0)");
    0x00058264 lw v0, (a3)                   |     v0 = *(a3);
    0x00058268 sw a1, 8(s0)                  |     *((s0 + 2)) = a1;
    0x0005826c lw a0, 0x10(a0)               |     a0 = *((a0 + 4));
    0x00058270 addiu v0, v0, 1               |     v0++;
    0x00058274 sw a0, 0x10(s0)               |     *((s0 + 4)) = a0;
    0x00058278 sw zero, (s0)                 |     *(s0) = 0;
    0x0005827c sw v0, (a3)                   |     *(a3) = v0;
    0x00058280 move s0, zero                 |     s0 = 0;
    0x00058284 b 0x57eb8                     |     goto label_2;
                                             | label_16:
    0x00058288 addiu a0, zero, 0x14          |     a0 = 0x14;
    0x0005828c jalr t9                       |     t9 ();
    0x00058290 move s0, v0                   |     s0 = v0;
    0x00058294 lw gp, 0x30(sp)               |     gp = *(var_30h);
                                             |     if (v0 != 0) {
    0x00058298 bnez v0, 0x57efc              |         goto label_3;
                                             |     }
    0x0005829c lw a0, -0x7fdc(gp)            |     a0 = *(gp);
    0x000582a0 lw t9, -0x7bac(gp)            |     t9 = sym.imp.perror;
                                             |     /* str.malloc */
    0x000582a4 addiu a0, a0, 0x1bc4          |     a0 += 0x1bc4;
    0x000582a8 jalr t9                       |     t9 ();
    0x000582ac lw gp, 0x30(sp)               |     gp = *(var_30h);
    0x000582b0 lw t9, -0x7cac(gp)            |     t9 = *(gp);
                                             |     /* fcn.00057cd8 */
    0x000582b4 addiu t9, t9, 0x7cd8          |     t9 += 0x7cd8;
    0x000582b8 bal 0x57cd8                   |     fcn_00057cd8 ();
    0x000582bc nop                           |     
    0x000582c0 lw gp, 0x30(sp)               |     gp = *(var_30h);
    0x000582c4 lw t9, -0x7c3c(gp)            |     t9 = sym.imp.fclose;
    0x000582c8 move a0, s6                   |     a0 = s6;
    0x000582cc jalr t9                       |     t9 ();
    0x000582d0 lw gp, 0x30(sp)               |     gp = *(var_30h);
    0x000582d4 lw t9, -0x7b74(gp)            |     t9 = sym.imp.free;
    0x000582d8 move a0, s2                   |     a0 = s2;
    0x000582dc jalr t9                       |     t9 ();
    0x000582e0 lw gp, 0x30(sp)               |     gp = *(var_30h);
                                             | label_11:
    0x000582e4 move v0, zero                 |     v0 = 0;
    0x000582e8 b 0x58178                     |     goto label_4;
                                             | label_15:
    0x000582ec addiu a0, zero, 0xf0          |     a0 = 0xf0;
    0x000582f0 jalr t9                       |     t9 ();
    0x000582f4 move s2, v0                   |     s2 = v0;
    0x000582f8 lw gp, 0x30(sp)               |     gp = *(var_30h);
                                             |     if (v0 != 0) {
    0x000582fc bnez v0, 0x57ef4              |         goto label_5;
                                             |     }
    0x00058300 lw a0, -0x7fdc(gp)            |     a0 = *(gp);
    0x00058304 lw t9, -0x7bac(gp)            |     t9 = sym.imp.perror;
                                             |     /* str.malloc */
    0x00058308 addiu a0, a0, 0x1bc4          |     a0 += 0x1bc4;
    0x0005830c jalr t9                       |     t9 ();
    0x00058310 lw gp, 0x30(sp)               |     gp = *(var_30h);
    0x00058314 lw t9, -0x7cac(gp)            |     t9 = *(gp);
                                             |     /* fcn.00057cd8 */
    0x00058318 addiu t9, t9, 0x7cd8          |     t9 += 0x7cd8;
    0x0005831c bal 0x57cd8                   |     fcn_00057cd8 ();
    0x00058320 nop                           |     
    0x00058324 lw gp, 0x30(sp)               |     gp = *(var_30h);
    0x00058328 lw t9, -0x7c3c(gp)            |     t9 = sym.imp.fclose;
    0x0005832c move a0, s6                   |     a0 = s6;
    0x00058330 jalr t9                       |     t9 ();
    0x00058334 lw gp, 0x30(sp)               |     gp = *(var_30h);
                                             |     if (s0 != 0) {
    0x00058338 bnez s0, 0x583d0              |         goto label_33;
                                             |     }
    0x0005833c move v0, zero                 |     v0 = 0;
    0x00058340 b 0x58178                     |     goto label_4;
                                             | label_19:
    0x00058344 lw a0, -0x7b6c(gp)            |     a0 = *((gp - 7899));
    0x00058348 lw a2, -0x7fdc(gp)            |     a2 = *(gp);
    0x0005834c lw t9, -0x7c44(gp)            |     t9 = sym.imp.__fprintf_chk;
    0x00058350 lw a0, (a0)                   |     a0 = *(a0);
    0x00058354 move a3, s7                   |     a3 = s7;
    0x00058358 sw fp, 0x14(sp)               |     *(var_14h) = fp;
    0x0005835c sw v0, 0x10(sp)               |     *(var_10h) = v0;
                                             |     /* str._s:_Malformed__u_field_record:__s_n */
    0x00058360 addiu a2, a2, 0x4584          |     a2 += 0x4584;
    0x00058364 addiu a1, zero, 1             |     a1 = 1;
    0x00058368 jalr t9                       |     t9 ();
    0x0005836c lw gp, 0x30(sp)               |     gp = *(var_30h);
    0x00058370 b 0x57eb8                     |     goto label_2;
                                             | label_32:
    0x00058374 addiu a0, zero, 0x40          |     a0 = 0x40;
    0x00058378 jalr t9                       |     t9 ();
    0x0005837c lw gp, 0x30(sp)               |     gp = *(var_30h);
    0x00058380 sw v0, 0xc(s0)                |     *((s0 + 3)) = v0;
                                             |     if (v0 != 0) {
    0x00058384 bnez v0, 0x58200              |         goto label_6;
                                             |     }
    0x00058388 lw a0, -0x7fdc(gp)            |     a0 = *(gp);
    0x0005838c lw t9, -0x7bac(gp)            |     t9 = sym.imp.perror;
                                             |     /* str.malloc */
    0x00058390 addiu a0, a0, 0x1bc4          |     a0 += 0x1bc4;
    0x00058394 jalr t9                       |     t9 ();
    0x00058398 lw gp, 0x30(sp)               |     gp = *(var_30h);
    0x0005839c lw t9, -0x7cac(gp)            |     t9 = *(gp);
                                             |     /* fcn.00057cd8 */
    0x000583a0 addiu t9, t9, 0x7cd8          |     t9 += 0x7cd8;
    0x000583a4 bal 0x57cd8                   |     fcn_00057cd8 ();
    0x000583a8 nop                           |     
    0x000583ac lw gp, 0x30(sp)               |     gp = *(var_30h);
    0x000583b0 lw t9, -0x7c3c(gp)            |     t9 = sym.imp.fclose;
    0x000583b4 move a0, s6                   |     a0 = s6;
    0x000583b8 jalr t9                       |     t9 ();
    0x000583bc lw gp, 0x30(sp)               |     gp = *(var_30h);
    0x000583c0 lw t9, -0x7b74(gp)            |     t9 = sym.imp.free;
    0x000583c4 move a0, s2                   |     a0 = s2;
    0x000583c8 jalr t9                       |     t9 ();
    0x000583cc lw gp, 0x30(sp)               |     gp = *(var_30h);
                                             | label_33:
    0x000583d0 lw t9, -0x7b74(gp)            |     t9 = sym.imp.free;
    0x000583d4 move a0, s0                   |     a0 = s0;
    0x000583d8 jalr t9                       |     t9 ();
    0x000583dc lw gp, 0x30(sp)               |     gp = *(var_30h);
    0x000583e0 move v0, zero                 |     v0 = 0;
    0x000583e4 b 0x58178                     |     goto label_4;
                                             | label_21:
    0x000583e8 sll v0, a1, 2                 |     v0 = a1 << 2;
    0x000583ec lwx v0, v0(v1)                |     __asm ("lwx v0, v0(v1)");
                                             |     if (v0 == 0) {
    0x000583f0 beql v0, zero, 0x58604        |         goto label_34;
                                             |     }
    0x000583f4 lw v0, -0x7b6c(gp)            |     v0 = *((gp - 7899));
    0x000583f8 lw s1, 0x10(v0)               |     s1 = *((v0 + 4));
    0x000583fc lw v0, 0xe8(s1)               |     v0 = *((s1 + 58));
                                             |     if (v0 == 0) {
    0x00058400 beql v0, zero, 0x5851c        |         goto label_35;
                                             |     }
    0x00058404 lw v0, 4(s0)                  |     v0 = *((s0 + 1));
    0x00058408 lw v0, -0x7b6c(gp)            |     v0 = *((gp - 7899));
    0x0005840c lw a2, -0x7fdc(gp)            |     a2 = *(gp);
    0x00058410 lw t9, -0x7c44(gp)            |     t9 = sym.imp.__fprintf_chk;
    0x00058414 lw a0, (v0)                   |     a0 = *(v0);
    0x00058418 move a3, s7                   |     a3 = s7;
    0x0005841c sw a1, 0x10(sp)               |     *(var_10h) = a1;
    0x00058420 sw fp, 0x14(sp)               |     *(var_14h) = fp;
                                             |     /* str._s:_duplicate_x_record_for_major__u___ignored_ninput_line:__s_n */
    0x00058424 addiu a2, a2, 0x4610          |     a2 += 0x4610;
    0x00058428 addiu a1, zero, 1             |     a1 = 1;
    0x0005842c jalr t9                       |     t9 ();
    0x00058430 lw gp, 0x30(sp)               |     gp = *(var_30h);
    0x00058434 b 0x57eb8                     |     goto label_2;
                                             | label_28:
    0x00058438 lw v0, -0x7b6c(gp)            |     v0 = *((gp - 7899));
    0x0005843c lw a2, -0x7fdc(gp)            |     a2 = *(gp);
    0x00058440 lw t9, -0x7c44(gp)            |     t9 = sym.imp.__fprintf_chk;
    0x00058444 lw a0, (v0)                   |     a0 = *(v0);
    0x00058448 move a3, s7                   |     a3 = s7;
    0x0005844c sw a1, 0x10(sp)               |     *(var_10h) = a1;
                                             |     /* str._s:_Indirect_major__u_out_of_range_n */
    0x00058450 addiu a2, a2, 0x44d0          |     a2 += 0x44d0;
    0x00058454 addiu a1, zero, 1             |     a1 = 1;
    0x00058458 jalr t9                       |     t9 ();
    0x0005845c lw gp, 0x30(sp)               |     gp = *(var_30h);
    0x00058460 b 0x57eb8                     |     goto label_2;
                                             | label_29:
    0x00058464 lw v0, -0x7b6c(gp)            |     v0 = *((gp - 7899));
    0x00058468 sw a2, 0x10(sp)               |     *(var_10h) = a2;
    0x0005846c lw t9, -0x7c44(gp)            |     t9 = sym.imp.__fprintf_chk;
    0x00058470 lw a0, (v0)                   |     a0 = *(v0);
    0x00058474 lw v0, 0x54(sp)               |     v0 = *(var_54h);
    0x00058478 move a3, s7                   |     a3 = s7;
    0x0005847c addiu a2, v0, 0x44f8          |     a2 = v0 + 0x44f8;
    0x00058480 addiu a1, zero, 1             |     a1 = 1;
    0x00058484 jalr t9                       |     t9 ();
    0x00058488 lw gp, 0x30(sp)               |     gp = *(var_30h);
    0x0005848c b 0x57eb8                     |     goto label_2;
                                             | label_20:
    0x00058490 lw v0, -0x7b6c(gp)            |     v0 = *((gp - 7899));
    0x00058494 lw a3, -0x7fdc(gp)            |     a3 = *(gp);
    0x00058498 lw a2, -0x7fdc(gp)            |     a2 = *(gp);
    0x0005849c lw t9, -0x7c44(gp)            |     t9 = sym.imp.__fprintf_chk;
    0x000584a0 lw a0, (v0)                   |     a0 = *(v0);
                                             |     /* str.ioc_init */
    0x000584a4 addiu a3, a3, 0x4670          |     a3 += 0x4670;
    0x000584a8 sw a1, 0x10(sp)               |     *(var_10h) = a1;
                                             |     /* str._s:_major__u_out_of_range_n */
    0x000584ac addiu a2, a2, 0x45a8          |     a2 += 0x45a8;
    0x000584b0 addiu a1, zero, 1             |     a1 = 1;
    0x000584b4 jalr t9                       |     t9 ();
    0x000584b8 lw gp, 0x30(sp)               |     gp = *(var_30h);
    0x000584bc b 0x57eb8                     |     goto label_2;
                                             | label_26:
    0x000584c0 lw v0, 0x58(sp)               |     v0 = *(var_58h);
    0x000584c4 b 0x58090                     |     goto label_7;
                                             | label_22:
    0x000584c8 lw t9, -0x7c00(gp)            |     t9 = sym.imp.strncpy;
    0x000584cc addiu a2, zero, 0x32          |     a2 = 0x32;
    0x000584d0 move a1, s2                   |     a1 = s2;
    0x000584d4 jalr t9                       |     t9 ();
    0x000584d8 lb v0, 0x7c(sp)               |     v0 = *(var_7ch);
    0x000584dc addiu a0, zero, 0x61          |     a0 = 0x61;
    0x000584e0 lw gp, 0x30(sp)               |     gp = *(var_30h);
    0x000584e4 sb zero, 0x52(s2)             |     *((s2 + 82)) = 0;
    0x000584e8 sb zero, 0x53(s2)             |     *((s2 + 83)) = 0;
                                             |     if (v0 != a0) {
    0x000584ec bne v0, a0, 0x58064           |         goto label_8;
                                             |     }
                                             | label_23:
    0x000584f0 lw a0, -0x7ca8(gp)            |     a0 = sym.ioc_ito26;
    0x000584f4 sb zero, 0x55(s2)             |     *((s2 + 85)) = 0;
    0x000584f8 sw a0, 0xc4(s2)               |     *((s2 + 49)) = a0;
    0x000584fc addiu a0, zero, 0x25          |     a0 = 0x25;
    0x00058500 sb a0, 0x53(s2)               |     *((s2 + 83)) = a0;
    0x00058504 addiu a0, zero, 0x73          |     a0 = 0x73;
    0x00058508 sb a0, 0x54(s2)               |     *((s2 + 84)) = a0;
    0x0005850c b 0x5807c                     |     goto label_9;
                                             | label_31:
    0x00058510 addiu v0, v0, 0x84            |     v0 += 0x84;
    0x00058514 sw v0, 0xc(s0)                |     *((s0 + 3)) = v0;
    0x00058518 b 0x58248                     |     goto label_10;
                                             | label_35:
    0x0005851c lw t9, -0x7c00(gp)            |     t9 = sym.imp.strncpy;
    0x00058520 sw v0, 0xec(s1)               |     *((s1 + 59)) = v0;
    0x00058524 addiu a2, zero, 0x20          |     a2 = 0x20;
    0x00058528 move a1, s2                   |     a1 = s2;
    0x0005852c addiu a0, s1, 0xc8            |     a0 = s1 + 0xc8;
    0x00058530 jalr t9                       |     t9 ();
    0x00058534 addiu v0, zero, 1             |     v0 = 1;
    0x00058538 lw gp, 0x30(sp)               |     gp = *(var_30h);
    0x0005853c sb zero, 0xe7(s1)             |     *((s1 + 231)) = 0;
    0x00058540 sw v0, 0xe8(s1)               |     *((s1 + 58)) = v0;
    0x00058544 b 0x57eb8                     |     goto label_2;
                                             | label_25:
    0x00058548 addiu a3, s2, 0x53            |     a3 = s2 + 0x53;
    0x0005854c move a0, a3                   |     a0 = a3;
    0x00058550 addiu a2, zero, 0xf           |     a2 = 0xf;
    0x00058554 addiu a1, sp, 0x7d            |     a1 = sp + 0x7d;
    0x00058558 jalr t9                       |     t9 ();
    0x0005855c lw gp, 0x30(sp)               |     gp = *(var_30h);
    0x00058560 move a3, v0                   |     a3 = v0;
                                             | label_24:
    0x00058564 lw v0, -0x7ca4(gp)            |     v0 = sym.ioc_ito10;
    0x00058568 lw a1, -0x7fdc(gp)            |     a1 = *(gp);
    0x0005856c lw t9, -0x7b44(gp)            |     t9 = sym.imp.__strcat_chk
    0x00058570 sw v0, 0xc4(s2)               |     *((s2 + 49)) = v0;
    0x00058574 addiu a2, zero, 0x10          |     a2 = 0x10;
                                             |     /* esilref: '&s' */
    0x00058578 addiu a1, a1, 0x35fc          |     a1 += 0x35fc;
    0x0005857c move a0, a3                   |     a0 = a3;
    0x00058580 jalr t9                       |     t9 ();
    0x00058584 lw gp, 0x30(sp)               |     gp = *(var_30h);
    0x00058588 b 0x5807c                     |     goto label_9;
                                             | label_13:
    0x0005858c lw s0, -0x7fdc(gp)            |     s0 = *(gp);
    0x00058590 lw t9, -0x7b64(gp)            |     t9 = sym.imp.fopen;
    0x00058594 addiu a1, s1, 0x4314          |     a1 = s1 + 0x4314;
                                             |     /* str.._sysstat.ioconf */
    0x00058598 addiu a0, s0, 0x44a4          |     a0 = s0 + 0x44a4;
    0x0005859c jalr t9                       |     t9 ();
    0x000585a0 move s6, v0                   |     s6 = v0;
    0x000585a4 lw gp, 0x30(sp)               |     gp = *(var_30h);
                                             |     if (v0 == 0) {
    0x000585a8 beqz v0, 0x582e4              |         goto label_11;
                                             |     }
    0x000585ac lw t9, -0x7c00(gp)            |     t9 = sym.imp.strncpy;
    0x000585b0 addiu s7, sp, 0xdc            |     s7 = sp + 0xdc;
    0x000585b4 addiu a2, zero, 0x40          |     a2 = 0x40;
                                             |     /* str.._sysstat.ioconf */
    0x000585b8 addiu a1, s0, 0x44a4          |     a1 = s0 + 0x44a4;
    0x000585bc move a0, s7                   |     a0 = s7;
    0x000585c0 jalr t9                       |     t9 ();
    0x000585c4 lw gp, 0x30(sp)               |     gp = *(var_30h);
    0x000585c8 b 0x57e4c                     |     goto label_12;
                                             | label_30:
    0x000585cc lw a0, -0x7b6c(gp)            |     a0 = *((gp - 7899));
    0x000585d0 sw a2, 0x1c(sp)               |     *(var_1ch) = a2;
    0x000585d4 lw v0, 4(s0)                  |     v0 = *((s0 + 1));
    0x000585d8 lw a0, (a0)                   |     a0 = *(a0);
    0x000585dc lw t9, -0x7c44(gp)            |     t9 = sym.imp.__fprintf_chk;
    0x000585e0 sw a2, 0x10(sp)               |     *(var_10h) = a2;
    0x000585e4 lw a2, 0x5c(sp)               |     a2 = *(var_5ch);
    0x000585e8 sw a1, 0x14(sp)               |     *(var_14h) = a1;
    0x000585ec sw v0, 0x18(sp)               |     *(var_18h) = v0;
    0x000585f0 move a3, s7                   |     a3 = s7;
    0x000585f4 addiu a1, zero, 1             |     a1 = 1;
    0x000585f8 jalr t9                       |     t9 ();
    0x000585fc lw gp, 0x30(sp)               |     gp = *(var_30h);
    0x00058600 b 0x57eb8                     |     goto label_2;
                                             | label_34:
    0x00058604 lw a2, -0x7fdc(gp)            |     a2 = *(gp);
    0x00058608 lw t9, -0x7c44(gp)            |     t9 = sym.imp.__fprintf_chk;
    0x0005860c lw a0, (v0)                   |     a0 = *(v0);
    0x00058610 move a3, s7                   |     a3 = s7;
    0x00058614 sw a1, 0x10(sp)               |     *(var_10h) = a1;
                                             |     /* str._s:_type_x_record_for_major__u_must_follow_the_base_record___ignored_n */
    0x00058618 addiu a2, a2, 0x45c4          |     a2 += 0x45c4;
    0x0005861c addiu a1, zero, 1             |     a1 = 1;
    0x00058620 jalr t9                       |     t9 ();
    0x00058624 lw gp, 0x30(sp)               |     gp = *(var_30h);
    0x00058628 b 0x57eb8                     |     goto label_2;
                                             | label_27:
    0x0005862c lw t9, -0x7b90(gp)            |     t9 = sym.imp.__stack_chk_fail;
    0x00058630 jalr t9                       |     t9 ();
    0x00058634 nop                           |     
                                             | }
    ; assembly                               | /* r2dec pseudo code output */
                                             | /* /logs/firmware/unblob_extracted/firmware_extract/4325012-58052244.squashfs_v4_le_extract/usr/bin/sadf @ 0x4f4dc */
                                             | #include <stdint.h>
                                             |  
    ; (fcn) sym.parse_timestamp ()           | void parse_timestamp () {
    0x0004f4dc lui gp, 3                     |     
    0x0004f4e0 addiu gp, gp, -0x51c          |     
    0x0004f4e4 addu gp, gp, t9               |     gp += t9;
    0x0004f4e8 addiu sp, sp, -0x48           |     
    0x0004f4ec sw s1, 0x30(sp)               |     *(var_30h) = s1;
    0x0004f4f0 lw s1, (a1)                   |     s1 = *(a1);
    0x0004f4f4 sw s3, 0x38(sp)               |     *(var_38h) = s3;
    0x0004f4f8 addiu v0, s1, 1               |     v0 = s1 + 1;
    0x0004f4fc lw s3, -0x7b7c(gp)            |     s3 = *((gp - 7903));
    0x0004f500 sw s0, 0x2c(sp)               |     *(var_2ch) = s0;
    0x0004f504 sll s0, v0, 2                 |     s0 = v0 << 2;
    0x0004f508 lw v1, (s3)                   |     v1 = *(s3);
    0x0004f50c lwx s0, s0(a0)                |     __asm ("lwx s0, s0(a0)");
    0x0004f510 sw gp, 0x10(sp)               |     *(var_10h) = gp;
    0x0004f514 sw s5, 0x40(sp)               |     *(var_40h) = s5;
    0x0004f518 sw s4, 0x3c(sp)               |     *(var_3ch) = s4;
    0x0004f51c sw ra, 0x44(sp)               |     *(var_44h) = ra;
    0x0004f520 sw s2, 0x34(sp)               |     *(var_34h) = s2;
    0x0004f524 move s4, a2                   |     s4 = a2;
    0x0004f528 move s5, a3                   |     s5 = a3;
    0x0004f52c sw v1, 0x24(sp)               |     *(var_24h) = v1;
    0x0004f530 sw v0, (a1)                   |     *(a1) = v0;
                                             |     if (s0 != 0) {
    0x0004f534 beqz s0, 0x4f560              |         
    0x0004f538 lw t9, -0x7be4(gp)            |         t9 = sym.imp.strlen;
    0x0004f53c move a0, s0                   |         a0 = s0;
    0x0004f540 move s2, a1                   |         s2 = a1;
    0x0004f544 jalr t9                       |         t9 ();
    0x0004f548 addiu v1, zero, 5             |         v1 = 5;
    0x0004f54c lw gp, 0x10(sp)               |         gp = *(var_10h);
                                             |         if (v0 == v1) {
    0x0004f550 beq v0, v1, 0x4f5f0           |             goto label_1;
                                             |         }
    0x0004f554 addiu v1, zero, 8             |         v1 = 8;
    0x0004f558 lw t9, -0x7c00(gp)            |         t9 = sym.imp.strncpy;
                                             |         if (v0 == v1) {
    0x0004f55c beq v0, v1, 0x4f5c8           |             goto label_2;
                                             |         }
                                             |     }
    0x0004f560 lw t9, -0x7c00(gp)            |     t9 = sym.imp.strncpy;
    0x0004f564 addiu v1, sp, 0x18            |     v1 = sp + 0x18;
    0x0004f568 move a0, v1                   |     a0 = v1;
    0x0004f56c addiu a2, zero, 8             |     a2 = 8;
    0x0004f570 move a1, s5                   |     a1 = s5;
    0x0004f574 jalr t9                       |     t9 ();
    0x0004f578 lw gp, 0x10(sp)               |     gp = *(var_10h);
    0x0004f57c move v1, v0                   |     v1 = v0;
                                             |     do {
                                             | label_0:
    0x0004f580 lw t9, -0x7d34(gp)            |         t9 = sym.decode_timestamp;
    0x0004f584 move a0, v1                   |         a0 = v1;
    0x0004f588 move a1, s4                   |         a1 = s4;
    0x0004f58c sb zero, 0x20(sp)             |         *(var_20h) = 0;
    0x0004f590 bal 0x4f3c0                   |         sym_decode_timestamp ();
    0x0004f594 lw a0, 0x24(sp)               |         a0 = *(var_24h);
    0x0004f598 lw v1, (s3)                   |         v1 = *(s3);
    0x0004f59c lw gp, 0x10(sp)               |         gp = *(var_10h);
                                             |         if (a0 != v1) {
    0x0004f5a0 bne a0, v1, 0x4f63c           |             goto label_3;
                                             |         }
    0x0004f5a4 lw ra, 0x44(sp)               |         ra = *(var_44h);
    0x0004f5a8 lw s5, 0x40(sp)               |         s5 = *(var_40h);
    0x0004f5ac lw s4, 0x3c(sp)               |         s4 = *(var_3ch);
    0x0004f5b0 lw s3, 0x38(sp)               |         s3 = *(var_38h);
    0x0004f5b4 lw s2, 0x34(sp)               |         s2 = *(var_34h);
    0x0004f5b8 lw s1, 0x30(sp)               |         s1 = *(var_30h);
    0x0004f5bc lw s0, 0x2c(sp)               |         s0 = *(var_2ch);
    0x0004f5c0 addiu sp, sp, 0x48            |         
    0x0004f5c4 jr ra                         |         return v1;
                                             | label_2:
    0x0004f5c8 addiu v1, sp, 0x18            |         v1 = sp + 0x18;
    0x0004f5cc addiu s1, s1, 2               |         s1 += 2;
    0x0004f5d0 move a0, v1                   |         a0 = v1;
    0x0004f5d4 sw s1, (s2)                   |         *(s2) = s1;
    0x0004f5d8 addiu a2, zero, 8             |         a2 = 8;
    0x0004f5dc move a1, s0                   |         a1 = s0;
    0x0004f5e0 jalr t9                       |         t9 ();
    0x0004f5e4 move v1, v0                   |         v1 = v0;
    0x0004f5e8 lw gp, 0x10(sp)               |         gp = *(var_10h);
    0x0004f5ec b 0x4f580                     |         
                                             |     } while (1);
                                             | label_1:
    0x0004f5f0 addiu v1, sp, 0x18            |     v1 = sp + 0x18;
    0x0004f5f4 lw t9, -0x7c00(gp)            |     t9 = sym.imp.strncpy;
    0x0004f5f8 addiu s1, s1, 2               |     s1 += 2;
    0x0004f5fc move a0, v1                   |     a0 = v1;
    0x0004f600 addiu a2, zero, 5             |     a2 = 5;
    0x0004f604 move a1, s0                   |     a1 = s0;
    0x0004f608 sw s1, (s2)                   |     *(s2) = s1;
    0x0004f60c jalr t9                       |     t9 ();
    0x0004f610 lw gp, 0x10(sp)               |     gp = *(var_10h);
    0x0004f614 addiu a2, zero, 9             |     a2 = 9;
    0x0004f618 move a0, v0                   |     a0 = v0;
    0x0004f61c lw a1, -0x7fdc(gp)            |     a1 = *(gp);
    0x0004f620 lw t9, -0x7b44(gp)            |     t9 = sym.imp.__strcat_chk
                                             |     /* esilref: ':00' */
    0x0004f624 addiu a1, a1, 0x3de4          |     a1 += 0x3de4;
    0x0004f628 sb zero, 0x1d(sp)             |     *(var_1dh) = 0;
    0x0004f62c jalr t9                       |     t9 ();
    0x0004f630 move v1, v0                   |     v1 = v0;
    0x0004f634 lw gp, 0x10(sp)               |     gp = *(var_10h);
    0x0004f638 b 0x4f580                     |     goto label_0;
                                             | label_3:
    0x0004f63c lw t9, -0x7b90(gp)            |     t9 = sym.imp.__stack_chk_fail;
    0x0004f640 jalr t9                       |     t9 ();
    0x0004f644 nop                           |     
                                             | }

[*] Function strcat used 3 times sadf