[*] 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