[*] Binary protection state of sar
Full RELRO Canary found NX disabled PIE enabled No RPATH No RUNPATH No Symbols
[*] Function strcat tear down of sar
; assembly | /* r2dec pseudo code output */
| /* /logs/firmware/unblob_extracted/firmware_extract/4325012-58052244.squashfs_v4_le_extract/usr/bin/sar @ 0x1d8bc */
| #include <stdint.h>
|
; (fcn) sym.ioc_init () | void ioc_init () {
0x0001d8bc lui gp, 2 |
0x0001d8c0 addiu gp, gp, 0x294 |
0x0001d8c4 addu gp, gp, t9 | gp += t9;
0x0001d8c8 lw v0, -0x7bf8(gp) | v0 = *((gp - 7934));
0x0001d8cc addiu sp, sp, -0x248 |
0x0001d8d0 lw t9, -0x7be4(gp) | t9 = sym.imp.fopen;
0x0001d8d4 sw s1, 0x224(sp) | *(var_224h) = s1;
0x0001d8d8 sw s0, 0x220(sp) | *(var_220h) = s0;
0x0001d8dc lw s1, -0x7fd8(gp) | s1 = *(gp);
0x0001d8e0 lw s0, -0x7fd8(gp) | s0 = *(gp);
0x0001d8e4 sw v0, 0x50(sp) | *(var_50h) = v0;
0x0001d8e8 lw v0, (v0) | v0 = *(v0);
0x0001d8ec sw gp, 0x30(sp) | *(var_30h) = gp;
0x0001d8f0 sw ra, 0x244(sp) | *(var_244h) = ra;
0x0001d8f4 sw fp, 0x240(sp) | *(var_240h) = fp;
0x0001d8f8 sw s7, 0x23c(sp) | *(var_23ch) = s7;
0x0001d8fc sw s6, 0x238(sp) | *(var_238h) = s6;
0x0001d900 sw s5, 0x234(sp) | *(var_234h) = s5;
0x0001d904 sw s4, 0x230(sp) | *(var_230h) = s4;
0x0001d908 sw s3, 0x22c(sp) | *(var_22ch) = s3;
0x0001d90c sw s2, 0x228(sp) | *(var_228h) = s2;
0x0001d910 addiu a1, s1, 0x34ac | a1 = s1 + 0x34ac;
| /* str._etc_sysconfig_sysstat.ioconf */
0x0001d914 addiu a0, s0, 0x36cc | a0 = s0 + 0x36cc;
0x0001d918 sw v0, 0x21c(sp) | *(var_21ch) = v0;
0x0001d91c jalr t9 | t9 ();
0x0001d920 nop |
0x0001d924 lw gp, 0x30(sp) | gp = *(var_30h);
| if (v0 == 0) {
0x0001d928 beqz v0, 0x1e08c | goto label_13;
| }
0x0001d92c lw t9, -0x7c88(gp) | t9 = sym.imp.strncpy;
0x0001d930 addiu s7, sp, 0xdc | s7 = sp + 0xdc;
0x0001d934 addiu a2, zero, 0x40 | a2 = 0x40;
| /* str._etc_sysconfig_sysstat.ioconf */
0x0001d938 addiu a1, s0, 0x36cc | a1 = s0 + 0x36cc;
0x0001d93c move a0, s7 | a0 = s7;
0x0001d940 move s6, v0 | s6 = v0;
0x0001d944 jalr t9 | t9 ();
0x0001d948 lw gp, 0x30(sp) | gp = *(var_30h);
| label_12:
0x0001d94c lw v0, -0x7d80(gp) | v0 = *((gp - 8032));
0x0001d950 lw t9, -0x7c7c(gp) | t9 = sym.imp.memset;
0x0001d954 addiu v0, v0, -0x529c | v0 += -0x529c;
0x0001d958 sw v0, 0x4c(sp) | *(var_4ch) = v0;
0x0001d95c addiu a2, zero, 0x800 | a2 = 0x800;
0x0001d960 move a1, zero | a1 = 0;
0x0001d964 move a0, v0 | a0 = v0;
0x0001d968 sb zero, 0x11b(sp) | *(var_11bh) = 0;
0x0001d96c jalr t9 | t9 ();
0x0001d970 lw gp, 0x30(sp) | gp = *(var_30h);
0x0001d974 move s2, zero | s2 = 0;
0x0001d978 move s0, zero | s0 = 0;
0x0001d97c lw v0, -0x7fd8(gp) | v0 = *(gp);
0x0001d980 sw zero, 0x48(sp) | *(var_48h) = 0;
0x0001d984 sw v0, 0x3c(sp) | *(var_3ch) = v0;
0x0001d988 lw v0, -0x7d80(gp) | v0 = *((gp - 8032));
0x0001d98c addiu fp, sp, 0x11c | fp = sp + 0x11c;
0x0001d990 addiu v0, v0, -0x4a9c | v0 += -0x4a9c;
0x0001d994 sw v0, 0x40(sp) | *(var_40h) = v0;
0x0001d998 lw v0, -0x7fd8(gp) | v0 = *(gp);
| /* str._s:_Indirect_record__u:_u:_u:..._references_not_yet_seen_major__u_n */
0x0001d99c addiu v0, v0, 0x375c | v0 += 0x375c;
0x0001d9a0 sw v0, 0x5c(sp) | *(var_5ch) = v0;
0x0001d9a4 lw v0, -0x7fd8(gp) | v0 = *(gp);
0x0001d9a8 sw v0, 0x54(sp) | *(var_54h) = v0;
0x0001d9ac lw v0, -0x7fd8(gp) | v0 = *(gp);
0x0001d9b0 addiu v0, v0, 0x21a4 | v0 += 0x21a4;
0x0001d9b4 sw v0, 0x58(sp) | *(var_58h) = v0;
| do {
| label_2:
0x0001d9b8 lw t9, -0x7bfc(gp) | t9 = sym.imp.fgets;
| label_0:
0x0001d9bc move a2, s6 | a2 = s6;
0x0001d9c0 addiu a1, zero, 0xff | a1 = 0xff;
0x0001d9c4 move a0, fp | a0 = fp;
0x0001d9c8 jalr t9 | t9 ();
0x0001d9cc lw gp, 0x30(sp) | gp = *(var_30h);
| if (v0 == 0) {
0x0001d9d0 beqz v0, 0x1dc38 | goto label_14;
| }
| label_1:
0x0001d9d4 lb v0, 0x11c(sp) | v0 = *(var_11ch);
0x0001d9d8 addiu a0, zero, 0x23 | a0 = 0x23;
0x0001d9dc addiu a0, zero, 0xa | a0 = 0xa;
0x0001d9e0 beq v0, a0, 0x1d9b8 |
| } while (v0 == a0);
0x0001d9e4 lw t9, -0x7bfc(gp) | t9 = sym.imp.fgets;
| if (v0 == a0) {
0x0001d9e8 beq v0, a0, 0x1d9bc | goto label_0;
| }
0x0001d9ec lw t9, -0x7c44(gp) | t9 = sym.imp.malloc;
| if (s2 == 0) {
0x0001d9f0 beqz s2, 0x1ddec | goto label_15;
| }
| label_5:
0x0001d9f4 lw t9, -0x7c44(gp) | t9 = sym.imp.malloc;
| if (s0 == 0) {
0x0001d9f8 beqz s0, 0x1dd88 | goto label_16;
| }
| label_3:
0x0001d9fc lw t9, -0x7c7c(gp) | t9 = sym.imp.memset;
0x0001da00 addiu a2, zero, 0xf0 | a2 = 0xf0;
0x0001da04 move a1, zero | a1 = 0;
0x0001da08 move a0, s2 | a0 = s2;
0x0001da0c jalr t9 | t9 ();
0x0001da10 lw gp, 0x30(sp) | gp = *(var_30h);
0x0001da14 lw v0, 0x3c(sp) | v0 = *(var_3ch);
0x0001da18 addiu s4, s0, 4 | s4 = s0 + 4;
0x0001da1c lw t9, -0x7c78(gp) | t9 = sym.imp.__isoc99_sscanf;
0x0001da20 addiu s5, sp, 0x68 | s5 = sp + 0x68;
0x0001da24 addiu s3, sp, 0x64 | s3 = sp + 0x64;
0x0001da28 addiu s1, sp, 0x9c | s1 = sp + 0x9c;
0x0001da2c sw zero, (s0) | *(s0) = 0;
0x0001da30 sw zero, 4(s0) | *((s0 + 1)) = 0;
0x0001da34 sw zero, 8(s0) | *((s0 + 2)) = 0;
0x0001da38 sw zero, 0xc(s0) | *((s0 + 3)) = 0;
0x0001da3c sw zero, 0x10(s0) | *((s0 + 4)) = 0;
0x0001da40 move a0, fp | a0 = fp;
0x0001da44 move a3, s5 | a3 = s5;
0x0001da48 sw s1, 0x14(sp) | *(var_14h) = s1;
0x0001da4c sw s4, 0x10(sp) | *(var_10h) = s4;
0x0001da50 move a2, s3 | a2 = s3;
0x0001da54 addiu a1, v0, 0x3700 | a1 = v0 + 0x3700;
0x0001da58 jalr t9 | t9 ();
0x0001da5c addiu a0, zero, 4 | a0 = 4;
0x0001da60 lw gp, 0x30(sp) | gp = *(var_30h);
| if (v0 == a0) {
0x0001da64 beq v0, a0, 0x1dcb8 | goto label_17;
| }
0x0001da68 lw a1, -0x7fd8(gp) | a1 = *(gp);
0x0001da6c lw t9, -0x7c78(gp) | t9 = sym.imp.__isoc99_sscanf;
0x0001da70 move a0, fp | a0 = fp;
0x0001da74 sw s4, 0x10(sp) | *(var_10h) = s4;
0x0001da78 move a3, s5 | a3 = s5;
0x0001da7c move a2, s3 | a2 = s3;
| /* str._u:_u:_u */
0x0001da80 addiu a1, a1, 0x370c | a1 += 0x370c;
0x0001da84 jalr t9 | t9 ();
0x0001da88 addiu a0, v0, -3 | a0 = v0 + -3;
0x0001da8c sltiu a0, a0, 2 | a0 = (a0 < 2) ? 1 : 0;
0x0001da90 lw gp, 0x30(sp) | gp = *(var_30h);
| if (a0 != 0) {
0x0001da94 bnez a0, 0x1dcbc | goto label_18;
| }
0x0001da98 addiu v0, sp, 0x8c | v0 = sp + 0x8c;
0x0001da9c move v1, v0 | v1 = v0;
0x0001daa0 lw a1, -0x7fd8(gp) | a1 = *(gp);
0x0001daa4 sw v0, 0x44(sp) | *(var_44h) = v0;
0x0001daa8 addiu v0, s2, 0x7c | v0 = s2 + 0x7c;
0x0001daac lw t9, -0x7c78(gp) | t9 = sym.imp.__isoc99_sscanf;
0x0001dab0 addiu a0, s2, 0x80 | a0 = s2 + 0x80;
0x0001dab4 sw v0, 0x1c(sp) | *(var_1ch) = v0;
0x0001dab8 addiu s5, sp, 0x6c | s5 = sp + 0x6c;
0x0001dabc addiu v0, sp, 0x7c | v0 = sp + 0x7c;
0x0001dac0 sw a0, 0x24(sp) | *(var_24h) = a0;
0x0001dac4 sw s1, 0x28(sp) | *(var_28h) = s1;
0x0001dac8 move a0, fp | a0 = fp;
0x0001dacc sw v1, 0x20(sp) | *(var_20h) = v1;
0x0001dad0 sw v0, 0x18(sp) | *(var_18h) = v0;
0x0001dad4 sw s4, 0x14(sp) | *(var_14h) = s4;
0x0001dad8 sw s5, 0x10(sp) | *(var_10h) = s5;
0x0001dadc move a3, s2 | a3 = s2;
0x0001dae0 move a2, s3 | a2 = s3;
| /* str._u:__:_:__:_:_u:__:_:_u:__:_:_u:_s */
0x0001dae4 addiu a1, a1, 0x37a4 | a1 += 0x37a4;
0x0001dae8 jalr t9 | t9 ();
0x0001daec addiu a0, zero, 9 | a0 = 9;
0x0001daf0 lw gp, 0x30(sp) | gp = *(var_30h);
| if (v0 != a0) {
0x0001daf4 bne v0, a0, 0x1de44 | goto label_19;
| }
0x0001daf8 lw a1, 0x64(sp) | a1 = *(var_64h);
0x0001dafc addiu v0, a1, -1 | v0 = a1 + -1;
0x0001db00 sltiu v0, v0, 0x1fe | v0 = (v0 < 0x1fe) ? 1 : 0;
0x0001db04 lb v0, 0x6c(sp) | v0 = *(var_6ch);
| if (v0 == 0) {
0x0001db08 beqz v0, 0x1df90 | goto label_20;
| }
0x0001db0c addiu a0, zero, 0x78 | a0 = 0x78;
0x0001db10 lw v1, 0x40(sp) | v1 = *(var_40h);
| if (v0 == a0) {
0x0001db14 beq v0, a0, 0x1dee8 | goto label_21;
| }
0x0001db18 addiu a1, zero, 0x2a | a1 = 0x2a;
0x0001db1c addiu a0, s2, 0x20 | a0 = s2 + 0x20;
| if (v0 == a1) {
0x0001db20 beq v0, a1, 0x1dfc8 | goto label_22;
| }
0x0001db24 lw a3, -0x7fd8(gp) | a3 = *(gp);
0x0001db28 lw t9, -0x7d00(gp) | t9 = sym.imp.__sprintf_chk;
0x0001db2c sw s5, 0x14(sp) | *(var_14h) = s5;
0x0001db30 sw s2, 0x10(sp) | *(var_10h) = s2;
| /* str._s_s__d */
0x0001db34 addiu a3, a3, 0x389c | a3 += 0x389c;
0x0001db38 addiu a2, zero, 0x33 | a2 = 0x33;
0x0001db3c addiu a1, zero, 1 | a1 = 1;
0x0001db40 jalr t9 | t9 ();
0x0001db44 lw v0, 0x78(s2) | v0 = *((s2 + 30));
0x0001db48 lw gp, 0x30(sp) | gp = *(var_30h);
0x0001db4c addiu v0, v0, 1 | v0++;
0x0001db50 sw v0, 0x78(s2) | *((s2 + 30)) = v0;
0x0001db54 lb v0, 0x7c(sp) | v0 = *(var_7ch);
0x0001db58 addiu a0, zero, 0x61 | a0 = 0x61;
0x0001db5c sb zero, 0x53(s2) | *((s2 + 83)) = 0;
| if (v0 == a0) {
0x0001db60 beq v0, a0, 0x1dff0 | goto label_23;
| }
| label_8:
0x0001db64 addiu a0, zero, 0x64 | a0 = 0x64;
0x0001db68 addiu a3, s2, 0x53 | a3 = s2 + 0x53;
| if (v0 == a0) {
0x0001db6c beq v0, a0, 0x1e064 | goto label_24;
| }
0x0001db70 addiu a0, zero, 0x25 | a0 = 0x25;
0x0001db74 lw t9, -0x7c88(gp) | t9 = sym.imp.strncpy;
| if (v0 == a0) {
0x0001db78 beq v0, a0, 0x1e048 | goto label_25;
| }
| label_9:
0x0001db7c lb a1, 0x8c(sp) | a1 = *(var_8ch);
0x0001db80 addiu v0, zero, 0x2a | v0 = 0x2a;
0x0001db84 addiu a0, s2, 0x63 | a0 = s2 + 0x63;
| if (a1 == v0) {
0x0001db88 beq a1, v0, 0x1dfc0 | goto label_26;
| }
0x0001db8c lw v0, 0x44(sp) | v0 = *(var_44h);
| label_7:
0x0001db90 lw a3, -0x7fd8(gp) | a3 = *(gp);
0x0001db94 lw t9, -0x7d00(gp) | t9 = sym.imp.__sprintf_chk;
0x0001db98 addiu a1, zero, 1 | a1 = 1;
0x0001db9c sw v0, 0x10(sp) | *(var_10h) = v0;
| /* str._s__d */
0x0001dba0 addiu a3, a3, 0x38a4 | a3 += 0x38a4;
0x0001dba4 addiu a2, zero, 0x12 | a2 = 0x12;
0x0001dba8 jalr t9 | t9 ();
0x0001dbac lw a0, 0x64(sp) | a0 = *(var_64h);
0x0001dbb0 lw v1, 0x40(sp) | v1 = *(var_40h);
0x0001dbb4 sll v0, a0, 2 | v0 = a0 << 2;
0x0001dbb8 addu v0, v0, v1 | v0 += v1;
0x0001dbbc addiu a1, zero, 1 | a1 = 1;
0x0001dbc0 lw gp, 0x30(sp) | gp = *(var_30h);
0x0001dbc4 sw s2, 0x10(s0) | *((s0 + 4)) = s2;
0x0001dbc8 sw a1, (s0) | *(s0) = a1;
0x0001dbcc sw zero, 0xc(s0) | *((s0 + 3)) = 0;
0x0001dbd0 sw a0, 8(s0) | *((s0 + 2)) = a0;
0x0001dbd4 sw s0, (v0) | *(v0) = s0;
0x0001dbd8 addiu s2, s2, 0x84 | s2 += 0x84;
| do {
0x0001dbdc lw a2, (s1) | a2 = *(s1);
0x0001dbe0 lw a1, 4(s1) | a1 = *(var_4h);
0x0001dbe4 lw a0, 8(s1) | a0 = *(var_8h);
0x0001dbe8 lw v0, 0xc(s1) | v0 = *(var_ch);
0x0001dbec addiu s1, s1, 0x10 | s1 += 0x10;
0x0001dbf0 sw a2, (s2) | *(s2) = a2;
0x0001dbf4 sw a1, 4(s2) | *((s2 + 1)) = a1;
0x0001dbf8 sw a0, 8(s2) | *((s2 + 2)) = a0;
0x0001dbfc sw v0, 0xc(s2) | *((s2 + 3)) = v0;
0x0001dc00 addiu s2, s2, 0x10 | s2 += 0x10;
0x0001dc04 bne s1, s7, 0x1dbdc |
| } while (s1 != s7);
0x0001dc08 lw v0, 0x48(sp) | v0 = *(var_48h);
0x0001dc0c lw t9, -0x7bfc(gp) | t9 = sym.imp.fgets;
0x0001dc10 addiu v0, v0, 1 | v0++;
0x0001dc14 sw v0, 0x48(sp) | *(var_48h) = v0;
0x0001dc18 move a2, s6 | a2 = s6;
0x0001dc1c addiu a1, zero, 0xff | a1 = 0xff;
0x0001dc20 move a0, fp | a0 = fp;
0x0001dc24 jalr t9 | t9 ();
0x0001dc28 move s2, zero | s2 = 0;
0x0001dc2c move s0, zero | s0 = 0;
0x0001dc30 lw gp, 0x30(sp) | gp = *(var_30h);
| if (v0 != 0) {
0x0001dc34 bnez v0, 0x1d9d4 | goto label_1;
| }
| label_14:
0x0001dc38 lw t9, -0x7cc4(gp) | t9 = sym.imp.fclose;
0x0001dc3c move a0, s6 | a0 = s6;
0x0001dc40 jalr t9 | t9 ();
0x0001dc44 lw gp, 0x30(sp) | gp = *(var_30h);
0x0001dc48 lw t9, -0x7bf0(gp) | t9 = sym.imp.free;
0x0001dc4c move a0, s2 | a0 = s2;
0x0001dc50 jalr t9 | t9 ();
0x0001dc54 lw gp, 0x30(sp) | gp = *(var_30h);
0x0001dc58 lw t9, -0x7bf0(gp) | t9 = sym.imp.free;
0x0001dc5c move a0, s0 | a0 = s0;
0x0001dc60 jalr t9 | t9 ();
0x0001dc64 lw gp, 0x30(sp) | gp = *(var_30h);
0x0001dc68 addiu a0, zero, 1 | a0 = 1;
0x0001dc6c lw v0, 0x48(sp) | v0 = *(var_48h);
0x0001dc70 lw v1, -0x7d80(gp) | v1 = *((gp - 8032));
0x0001dc74 sw a0, -0x429c(v1) | *((v1 - 4263)) = a0;
| label_4:
0x0001dc78 lw v1, 0x50(sp) | v1 = *(var_50h);
0x0001dc7c lw a0, 0x21c(sp) | a0 = *(var_21ch);
0x0001dc80 lw v1, (v1) | v1 = *(v1);
0x0001dc84 lw ra, 0x244(sp) | ra = *(var_244h);
| if (a0 != v1) {
0x0001dc88 bne a0, v1, 0x1e12c | goto label_27;
| }
0x0001dc8c lw fp, 0x240(sp) | fp = *(var_240h);
0x0001dc90 lw s7, 0x23c(sp) | s7 = *(var_23ch);
0x0001dc94 lw s6, 0x238(sp) | s6 = *(var_238h);
0x0001dc98 lw s5, 0x234(sp) | s5 = *(var_234h);
0x0001dc9c lw s4, 0x230(sp) | s4 = *(var_230h);
0x0001dca0 lw s3, 0x22c(sp) | s3 = *(var_22ch);
0x0001dca4 lw s2, 0x228(sp) | s2 = *(var_228h);
0x0001dca8 lw s1, 0x224(sp) | s1 = *(var_224h);
0x0001dcac lw s0, 0x220(sp) | s0 = *(var_220h);
0x0001dcb0 addiu sp, sp, 0x248 |
0x0001dcb4 jr ra | return v0;
| label_17:
0x0001dcb8 addiu v0, zero, 4 | v0 = 4;
| label_18:
0x0001dcbc lw a1, 0x68(sp) | a1 = *(var_68h);
0x0001dcc0 sltiu a0, a1, 0x200 | a0 = (a1 < aav.0x00000200) ? 1 : 0;
| if (a1 == 0) {
0x0001dcc4 beqz a1, 0x1d9b8 | goto label_2;
| }
0x0001dcc8 lw a2, 0x64(sp) | a2 = *(var_64h);
| if (a0 == 0) {
0x0001dccc beqz a0, 0x1df38 | goto label_28;
| }
0x0001dcd0 sltiu a0, a2, 0x200 | a0 = (a2 < aav.0x00000200) ? 1 : 0;
0x0001dcd4 lw v1, 0x40(sp) | v1 = *(var_40h);
| if (a0 == 0) {
0x0001dcd8 beqz a0, 0x1df64 | goto label_29;
| }
0x0001dcdc sll a0, a1, 2 | a0 = a1 << 2;
0x0001dce0 lwx a3, a0(v1) | __asm ("lwx a3, a0(v1)");
0x0001dce4 addiu t0, zero, 3 | t0 = 3;
| if (a3 == 0) {
0x0001dce8 beqz a3, 0x1e0cc | goto label_30;
| }
| if (v0 == t0) {
0x0001dcec beql v0, t0, 0x1e010 | goto label_31;
| }
0x0001dcf0 lw v0, 0x10(a3) | v0 = *((a3 + 4));
0x0001dcf4 lw v0, 0xc(s0) | v0 = *((s0 + 3));
0x0001dcf8 lw t9, -0x7c44(gp) | t9 = sym.imp.malloc;
| if (v0 == 0) {
0x0001dcfc beqz v0, 0x1de74 | goto label_32;
| }
| do {
| label_6:
0x0001dd00 lw a3, (s1) | a3 = *(s1);
0x0001dd04 lw a2, 4(s1) | a2 = *(var_4h);
0x0001dd08 lw a1, 8(s1) | a1 = *(var_8h);
0x0001dd0c lw a0, 0xc(s1) | a0 = *(var_ch);
0x0001dd10 swl a3, 3(v0) | __asm ("swl a3, 3(v0)");
0x0001dd14 swr a3, (v0) | __asm ("swr a3, (v0)");
0x0001dd18 swl a2, 7(v0) | __asm ("swl a2, 7(v0)");
0x0001dd1c swr a2, 4(v0) | __asm ("swr a2, 4(v0)");
0x0001dd20 swl a1, 0xb(v0) | __asm ("swl a1, 0xb(v0)");
0x0001dd24 swr a1, 8(v0) | __asm ("swr a1, 8(v0)");
0x0001dd28 swl a0, 0xf(v0) | __asm ("swl a0, 0xf(v0)");
0x0001dd2c addiu s1, s1, 0x10 | s1 += 0x10;
0x0001dd30 swr a0, 0xc(v0) | __asm ("swr a0, 0xc(v0)");
0x0001dd34 addiu v0, v0, 0x10 | v0 += 0x10;
0x0001dd38 bne s1, s7, 0x1dd00 |
| } while (s1 != s7);
0x0001dd3c lw a1, 0x68(sp) | a1 = *(var_68h);
0x0001dd40 lw a2, 0x64(sp) | a2 = *(var_64h);
0x0001dd44 sll a0, a1, 2 | a0 = a1 << 2;
| label_10:
0x0001dd48 lw v0, 0x40(sp) | v0 = *(var_40h);
0x0001dd4c sll a2, a2, 2 | a2 <<= 2;
0x0001dd50 addu a2, v0, a2 | a2 = v0 + a2;
0x0001dd54 lw v1, 0x4c(sp) | v1 = *(var_4ch);
0x0001dd58 sw s0, (a2) | *(a2) = s0;
0x0001dd5c addu a3, v1, a0 | a3 = v1 + a0;
0x0001dd60 lwx a0, a0(v0) | __asm ("lwx a0, a0(v0)");
0x0001dd64 lw v0, (a3) | v0 = *(a3);
0x0001dd68 sw a1, 8(s0) | *((s0 + 2)) = a1;
0x0001dd6c lw a0, 0x10(a0) | a0 = *((a0 + 4));
0x0001dd70 addiu v0, v0, 1 | v0++;
0x0001dd74 sw a0, 0x10(s0) | *((s0 + 4)) = a0;
0x0001dd78 sw zero, (s0) | *(s0) = 0;
0x0001dd7c sw v0, (a3) | *(a3) = v0;
0x0001dd80 move s0, zero | s0 = 0;
0x0001dd84 b 0x1d9b8 | goto label_2;
| label_16:
0x0001dd88 addiu a0, zero, 0x14 | a0 = 0x14;
0x0001dd8c jalr t9 | t9 ();
0x0001dd90 move s0, v0 | s0 = v0;
0x0001dd94 lw gp, 0x30(sp) | gp = *(var_30h);
| if (v0 != 0) {
0x0001dd98 bnez v0, 0x1d9fc | goto label_3;
| }
0x0001dd9c lw a0, -0x7fd8(gp) | a0 = *(gp);
0x0001dda0 lw t9, -0x7c30(gp) | t9 = sym.imp.perror;
| /* str.malloc */
0x0001dda4 addiu a0, a0, 0x1fc0 | a0 += 0x1fc0;
0x0001dda8 jalr t9 | t9 ();
0x0001ddac lw gp, 0x30(sp) | gp = *(var_30h);
0x0001ddb0 lw t9, -0x7fd8(gp) | t9 = *(gp);
| /* fcn.0001d7d8 */
0x0001ddb4 addiu t9, t9, -0x2828 | t9 += -0x2828;
0x0001ddb8 bal 0x1d7d8 | fcn_0001d7d8 ();
0x0001ddbc nop |
0x0001ddc0 lw gp, 0x30(sp) | gp = *(var_30h);
0x0001ddc4 lw t9, -0x7cc4(gp) | t9 = sym.imp.fclose;
0x0001ddc8 move a0, s6 | a0 = s6;
0x0001ddcc jalr t9 | t9 ();
0x0001ddd0 lw gp, 0x30(sp) | gp = *(var_30h);
0x0001ddd4 lw t9, -0x7bf0(gp) | t9 = sym.imp.free;
0x0001ddd8 move a0, s2 | a0 = s2;
0x0001dddc jalr t9 | t9 ();
0x0001dde0 lw gp, 0x30(sp) | gp = *(var_30h);
| label_11:
0x0001dde4 move v0, zero | v0 = 0;
0x0001dde8 b 0x1dc78 | goto label_4;
| label_15:
0x0001ddec addiu a0, zero, 0xf0 | a0 = 0xf0;
0x0001ddf0 jalr t9 | t9 ();
0x0001ddf4 move s2, v0 | s2 = v0;
0x0001ddf8 lw gp, 0x30(sp) | gp = *(var_30h);
| if (v0 != 0) {
0x0001ddfc bnez v0, 0x1d9f4 | goto label_5;
| }
0x0001de00 lw a0, -0x7fd8(gp) | a0 = *(gp);
0x0001de04 lw t9, -0x7c30(gp) | t9 = sym.imp.perror;
| /* str.malloc */
0x0001de08 addiu a0, a0, 0x1fc0 | a0 += 0x1fc0;
0x0001de0c jalr t9 | t9 ();
0x0001de10 lw gp, 0x30(sp) | gp = *(var_30h);
0x0001de14 lw t9, -0x7fd8(gp) | t9 = *(gp);
| /* fcn.0001d7d8 */
0x0001de18 addiu t9, t9, -0x2828 | t9 += -0x2828;
0x0001de1c bal 0x1d7d8 | fcn_0001d7d8 ();
0x0001de20 nop |
0x0001de24 lw gp, 0x30(sp) | gp = *(var_30h);
0x0001de28 lw t9, -0x7cc4(gp) | t9 = sym.imp.fclose;
0x0001de2c move a0, s6 | a0 = s6;
0x0001de30 jalr t9 | t9 ();
0x0001de34 lw gp, 0x30(sp) | gp = *(var_30h);
| if (s0 != 0) {
0x0001de38 bnez s0, 0x1ded0 | goto label_33;
| }
0x0001de3c move v0, zero | v0 = 0;
0x0001de40 b 0x1dc78 | goto label_4;
| label_19:
0x0001de44 lw a0, -0x7be8(gp) | a0 = *((gp - 7930));
0x0001de48 lw a2, -0x7fd8(gp) | a2 = *(gp);
0x0001de4c lw t9, -0x7ccc(gp) | t9 = sym.imp.__fprintf_chk;
0x0001de50 lw a0, (a0) | a0 = *(a0);
0x0001de54 move a3, s7 | a3 = s7;
0x0001de58 sw fp, 0x14(sp) | *(var_14h) = fp;
0x0001de5c sw v0, 0x10(sp) | *(var_10h) = v0;
| /* str._s:_Malformed__u_field_record:__s_n */
0x0001de60 addiu a2, a2, 0x37cc | a2 += 0x37cc;
0x0001de64 addiu a1, zero, 1 | a1 = 1;
0x0001de68 jalr t9 | t9 ();
0x0001de6c lw gp, 0x30(sp) | gp = *(var_30h);
0x0001de70 b 0x1d9b8 | goto label_2;
| label_32:
0x0001de74 addiu a0, zero, 0x40 | a0 = 0x40;
0x0001de78 jalr t9 | t9 ();
0x0001de7c lw gp, 0x30(sp) | gp = *(var_30h);
0x0001de80 sw v0, 0xc(s0) | *((s0 + 3)) = v0;
| if (v0 != 0) {
0x0001de84 bnez v0, 0x1dd00 | goto label_6;
| }
0x0001de88 lw a0, -0x7fd8(gp) | a0 = *(gp);
0x0001de8c lw t9, -0x7c30(gp) | t9 = sym.imp.perror;
| /* str.malloc */
0x0001de90 addiu a0, a0, 0x1fc0 | a0 += 0x1fc0;
0x0001de94 jalr t9 | t9 ();
0x0001de98 lw gp, 0x30(sp) | gp = *(var_30h);
0x0001de9c lw t9, -0x7fd8(gp) | t9 = *(gp);
| /* fcn.0001d7d8 */
0x0001dea0 addiu t9, t9, -0x2828 | t9 += -0x2828;
0x0001dea4 bal 0x1d7d8 | fcn_0001d7d8 ();
0x0001dea8 nop |
0x0001deac lw gp, 0x30(sp) | gp = *(var_30h);
0x0001deb0 lw t9, -0x7cc4(gp) | t9 = sym.imp.fclose;
0x0001deb4 move a0, s6 | a0 = s6;
0x0001deb8 jalr t9 | t9 ();
0x0001debc lw gp, 0x30(sp) | gp = *(var_30h);
0x0001dec0 lw t9, -0x7bf0(gp) | t9 = sym.imp.free;
0x0001dec4 move a0, s2 | a0 = s2;
0x0001dec8 jalr t9 | t9 ();
0x0001decc lw gp, 0x30(sp) | gp = *(var_30h);
| label_33:
0x0001ded0 lw t9, -0x7bf0(gp) | t9 = sym.imp.free;
0x0001ded4 move a0, s0 | a0 = s0;
0x0001ded8 jalr t9 | t9 ();
0x0001dedc lw gp, 0x30(sp) | gp = *(var_30h);
0x0001dee0 move v0, zero | v0 = 0;
0x0001dee4 b 0x1dc78 | goto label_4;
| label_21:
0x0001dee8 sll v0, a1, 2 | v0 = a1 << 2;
0x0001deec lwx v0, v0(v1) | __asm ("lwx v0, v0(v1)");
| if (v0 == 0) {
0x0001def0 beql v0, zero, 0x1e104 | goto label_34;
| }
0x0001def4 lw v0, -0x7be8(gp) | v0 = *((gp - 7930));
0x0001def8 lw s1, 0x10(v0) | s1 = *((v0 + 4));
0x0001defc lw v0, 0xe8(s1) | v0 = *((s1 + 58));
| if (v0 == 0) {
0x0001df00 beql v0, zero, 0x1e01c | goto label_35;
| }
0x0001df04 lw v0, 4(s0) | v0 = *((s0 + 1));
0x0001df08 lw v0, -0x7be8(gp) | v0 = *((gp - 7930));
0x0001df0c lw a2, -0x7fd8(gp) | a2 = *(gp);
0x0001df10 lw t9, -0x7ccc(gp) | t9 = sym.imp.__fprintf_chk;
0x0001df14 lw a0, (v0) | a0 = *(v0);
0x0001df18 move a3, s7 | a3 = s7;
0x0001df1c sw a1, 0x10(sp) | *(var_10h) = a1;
0x0001df20 sw fp, 0x14(sp) | *(var_14h) = fp;
| /* str._s:_duplicate_x_record_for_major__u___ignored_ninput_line:__s_n */
0x0001df24 addiu a2, a2, 0x3858 | a2 += 0x3858;
0x0001df28 addiu a1, zero, 1 | a1 = 1;
0x0001df2c jalr t9 | t9 ();
0x0001df30 lw gp, 0x30(sp) | gp = *(var_30h);
0x0001df34 b 0x1d9b8 | goto label_2;
| label_28:
0x0001df38 lw v0, -0x7be8(gp) | v0 = *((gp - 7930));
0x0001df3c lw a2, -0x7fd8(gp) | a2 = *(gp);
0x0001df40 lw t9, -0x7ccc(gp) | t9 = sym.imp.__fprintf_chk;
0x0001df44 lw a0, (v0) | a0 = *(v0);
0x0001df48 move a3, s7 | a3 = s7;
0x0001df4c sw a1, 0x10(sp) | *(var_10h) = a1;
| /* str._s:_Indirect_major__u_out_of_range_n */
0x0001df50 addiu a2, a2, 0x3718 | a2 += 0x3718;
0x0001df54 addiu a1, zero, 1 | a1 = 1;
0x0001df58 jalr t9 | t9 ();
0x0001df5c lw gp, 0x30(sp) | gp = *(var_30h);
0x0001df60 b 0x1d9b8 | goto label_2;
| label_29:
0x0001df64 lw v0, -0x7be8(gp) | v0 = *((gp - 7930));
0x0001df68 sw a2, 0x10(sp) | *(var_10h) = a2;
0x0001df6c lw t9, -0x7ccc(gp) | t9 = sym.imp.__fprintf_chk;
0x0001df70 lw a0, (v0) | a0 = *(v0);
0x0001df74 lw v0, 0x54(sp) | v0 = *(var_54h);
0x0001df78 move a3, s7 | a3 = s7;
0x0001df7c addiu a2, v0, 0x3740 | a2 = v0 + 0x3740;
0x0001df80 addiu a1, zero, 1 | a1 = 1;
0x0001df84 jalr t9 | t9 ();
0x0001df88 lw gp, 0x30(sp) | gp = *(var_30h);
0x0001df8c b 0x1d9b8 | goto label_2;
| label_20:
0x0001df90 lw v0, -0x7be8(gp) | v0 = *((gp - 7930));
0x0001df94 lw a3, -0x7fd8(gp) | a3 = *(gp);
0x0001df98 lw a2, -0x7fd8(gp) | a2 = *(gp);
0x0001df9c lw t9, -0x7ccc(gp) | t9 = sym.imp.__fprintf_chk;
0x0001dfa0 lw a0, (v0) | a0 = *(v0);
| /* str.ioc_init */
0x0001dfa4 addiu a3, a3, 0x38c0 | a3 += 0x38c0;
0x0001dfa8 sw a1, 0x10(sp) | *(var_10h) = a1;
| /* str._s:_major__u_out_of_range_n */
0x0001dfac addiu a2, a2, 0x37f0 | a2 += 0x37f0;
0x0001dfb0 addiu a1, zero, 1 | a1 = 1;
0x0001dfb4 jalr t9 | t9 ();
0x0001dfb8 lw gp, 0x30(sp) | gp = *(var_30h);
0x0001dfbc b 0x1d9b8 | goto label_2;
| label_26:
0x0001dfc0 lw v0, 0x58(sp) | v0 = *(var_58h);
0x0001dfc4 b 0x1db90 | goto label_7;
| label_22:
0x0001dfc8 lw t9, -0x7c88(gp) | t9 = sym.imp.strncpy;
0x0001dfcc addiu a2, zero, 0x32 | a2 = 0x32;
0x0001dfd0 move a1, s2 | a1 = s2;
0x0001dfd4 jalr t9 | t9 ();
0x0001dfd8 lb v0, 0x7c(sp) | v0 = *(var_7ch);
0x0001dfdc addiu a0, zero, 0x61 | a0 = 0x61;
0x0001dfe0 lw gp, 0x30(sp) | gp = *(var_30h);
0x0001dfe4 sb zero, 0x52(s2) | *((s2 + 82)) = 0;
0x0001dfe8 sb zero, 0x53(s2) | *((s2 + 83)) = 0;
| if (v0 != a0) {
0x0001dfec bne v0, a0, 0x1db64 | goto label_8;
| }
| label_23:
0x0001dff0 lw a0, -0x7d2c(gp) | a0 = sym.ioc_ito26;
0x0001dff4 sb zero, 0x55(s2) | *((s2 + 85)) = 0;
0x0001dff8 sw a0, 0xc4(s2) | *((s2 + 49)) = a0;
0x0001dffc addiu a0, zero, 0x25 | a0 = 0x25;
0x0001e000 sb a0, 0x53(s2) | *((s2 + 83)) = a0;
0x0001e004 addiu a0, zero, 0x73 | a0 = 0x73;
0x0001e008 sb a0, 0x54(s2) | *((s2 + 84)) = a0;
0x0001e00c b 0x1db7c | goto label_9;
| label_31:
0x0001e010 addiu v0, v0, 0x84 | v0 += 0x84;
0x0001e014 sw v0, 0xc(s0) | *((s0 + 3)) = v0;
0x0001e018 b 0x1dd48 | goto label_10;
| label_35:
0x0001e01c lw t9, -0x7c88(gp) | t9 = sym.imp.strncpy;
0x0001e020 sw v0, 0xec(s1) | *((s1 + 59)) = v0;
0x0001e024 addiu a2, zero, 0x20 | a2 = 0x20;
0x0001e028 move a1, s2 | a1 = s2;
0x0001e02c addiu a0, s1, 0xc8 | a0 = s1 + 0xc8;
0x0001e030 jalr t9 | t9 ();
0x0001e034 addiu v0, zero, 1 | v0 = 1;
0x0001e038 lw gp, 0x30(sp) | gp = *(var_30h);
0x0001e03c sb zero, 0xe7(s1) | *((s1 + 231)) = 0;
0x0001e040 sw v0, 0xe8(s1) | *((s1 + 58)) = v0;
0x0001e044 b 0x1d9b8 | goto label_2;
| label_25:
0x0001e048 addiu a3, s2, 0x53 | a3 = s2 + 0x53;
0x0001e04c move a0, a3 | a0 = a3;
0x0001e050 addiu a2, zero, 0xf | a2 = 0xf;
0x0001e054 addiu a1, sp, 0x7d | a1 = sp + 0x7d;
0x0001e058 jalr t9 | t9 ();
0x0001e05c lw gp, 0x30(sp) | gp = *(var_30h);
0x0001e060 move a3, v0 | a3 = v0;
| label_24:
0x0001e064 lw v0, -0x7d28(gp) | v0 = sym.ioc_ito10;
0x0001e068 lw a1, -0x7fd8(gp) | a1 = *(gp);
0x0001e06c lw t9, -0x7bbc(gp) | t9 = sym.imp.__strcat_chk
0x0001e070 sw v0, 0xc4(s2) | *((s2 + 49)) = v0;
0x0001e074 addiu a2, zero, 0x10 | a2 = 0x10;
| /* esilref: '&s' */
0x0001e078 addiu a1, a1, 0x37c8 | a1 += 0x37c8;
0x0001e07c move a0, a3 | a0 = a3;
0x0001e080 jalr t9 | t9 ();
0x0001e084 lw gp, 0x30(sp) | gp = *(var_30h);
0x0001e088 b 0x1db7c | goto label_9;
| label_13:
0x0001e08c lw s0, -0x7fd8(gp) | s0 = *(gp);
0x0001e090 lw t9, -0x7be4(gp) | t9 = sym.imp.fopen;
0x0001e094 addiu a1, s1, 0x34ac | a1 = s1 + 0x34ac;
| /* str.._sysstat.ioconf */
0x0001e098 addiu a0, s0, 0x36ec | a0 = s0 + 0x36ec;
0x0001e09c jalr t9 | t9 ();
0x0001e0a0 move s6, v0 | s6 = v0;
0x0001e0a4 lw gp, 0x30(sp) | gp = *(var_30h);
| if (v0 == 0) {
0x0001e0a8 beqz v0, 0x1dde4 | goto label_11;
| }
0x0001e0ac lw t9, -0x7c88(gp) | t9 = sym.imp.strncpy;
0x0001e0b0 addiu s7, sp, 0xdc | s7 = sp + 0xdc;
0x0001e0b4 addiu a2, zero, 0x40 | a2 = 0x40;
| /* str.._sysstat.ioconf */
0x0001e0b8 addiu a1, s0, 0x36ec | a1 = s0 + 0x36ec;
0x0001e0bc move a0, s7 | a0 = s7;
0x0001e0c0 jalr t9 | t9 ();
0x0001e0c4 lw gp, 0x30(sp) | gp = *(var_30h);
0x0001e0c8 b 0x1d94c | goto label_12;
| label_30:
0x0001e0cc lw a0, -0x7be8(gp) | a0 = *((gp - 7930));
0x0001e0d0 sw a2, 0x1c(sp) | *(var_1ch) = a2;
0x0001e0d4 lw v0, 4(s0) | v0 = *((s0 + 1));
0x0001e0d8 lw a0, (a0) | a0 = *(a0);
0x0001e0dc lw t9, -0x7ccc(gp) | t9 = sym.imp.__fprintf_chk;
0x0001e0e0 sw a2, 0x10(sp) | *(var_10h) = a2;
0x0001e0e4 lw a2, 0x5c(sp) | a2 = *(var_5ch);
0x0001e0e8 sw a1, 0x14(sp) | *(var_14h) = a1;
0x0001e0ec sw v0, 0x18(sp) | *(var_18h) = v0;
0x0001e0f0 move a3, s7 | a3 = s7;
0x0001e0f4 addiu a1, zero, 1 | a1 = 1;
0x0001e0f8 jalr t9 | t9 ();
0x0001e0fc lw gp, 0x30(sp) | gp = *(var_30h);
0x0001e100 b 0x1d9b8 | goto label_2;
| label_34:
0x0001e104 lw a2, -0x7fd8(gp) | a2 = *(gp);
0x0001e108 lw t9, -0x7ccc(gp) | t9 = sym.imp.__fprintf_chk;
0x0001e10c lw a0, (v0) | a0 = *(v0);
0x0001e110 move a3, s7 | a3 = s7;
0x0001e114 sw a1, 0x10(sp) | *(var_10h) = a1;
| /* str._s:_type_x_record_for_major__u_must_follow_the_base_record___ignored_n */
0x0001e118 addiu a2, a2, 0x380c | a2 += 0x380c;
0x0001e11c addiu a1, zero, 1 | a1 = 1;
0x0001e120 jalr t9 | t9 ();
0x0001e124 lw gp, 0x30(sp) | gp = *(var_30h);
0x0001e128 b 0x1d9b8 | goto label_2;
| label_27:
0x0001e12c lw t9, -0x7c10(gp) | t9 = sym.imp.__stack_chk_fail;
0x0001e130 jalr t9 | t9 ();
0x0001e134 nop |
| }
; assembly | /* r2dec pseudo code output */
| /* /logs/firmware/unblob_extracted/firmware_extract/4325012-58052244.squashfs_v4_le_extract/usr/bin/sar @ 0x7adc */
| #include <stdint.h>
|
; (fcn) sym.parse_timestamp () | void parse_timestamp () {
0x00007adc lui gp, 3 |
0x00007ae0 addiu gp, gp, 0x6074 |
0x00007ae4 addu gp, gp, t9 | gp += t9;
0x00007ae8 addiu sp, sp, -0x48 |
0x00007aec sw s1, 0x30(sp) | *(var_30h) = s1;
0x00007af0 lw s1, (a1) | s1 = *(a1);
0x00007af4 sw s3, 0x38(sp) | *(var_38h) = s3;
0x00007af8 addiu v0, s1, 1 | v0 = s1 + 1;
0x00007afc lw s3, -0x7bf8(gp) | s3 = *((gp - 7934));
0x00007b00 sw s0, 0x2c(sp) | *(var_2ch) = s0;
0x00007b04 sll s0, v0, 2 | s0 = v0 << 2;
0x00007b08 lw v1, (s3) | v1 = *(s3);
0x00007b0c lwx s0, s0(a0) | __asm ("lwx s0, s0(a0)");
0x00007b10 sw gp, 0x10(sp) | *(var_10h) = gp;
0x00007b14 sw s5, 0x40(sp) | *(var_40h) = s5;
0x00007b18 sw s4, 0x3c(sp) | *(var_3ch) = s4;
0x00007b1c sw ra, 0x44(sp) | *(var_44h) = ra;
0x00007b20 sw s2, 0x34(sp) | *(var_34h) = s2;
0x00007b24 move s4, a2 | s4 = a2;
0x00007b28 move s5, a3 | s5 = a3;
0x00007b2c sw v1, 0x24(sp) | *(var_24h) = v1;
0x00007b30 sw v0, (a1) | *(a1) = v0;
| if (s0 != 0) {
0x00007b34 beqz s0, 0x7b60 |
0x00007b38 lw t9, -0x7c68(gp) | t9 = sym.imp.strlen;
0x00007b3c move a0, s0 | a0 = s0;
0x00007b40 move s2, a1 | s2 = a1;
0x00007b44 jalr t9 | t9 ();
0x00007b48 addiu v1, zero, 5 | v1 = 5;
0x00007b4c lw gp, 0x10(sp) | gp = *(var_10h);
| if (v0 == v1) {
0x00007b50 beq v0, v1, 0x7bf0 | goto label_1;
| }
0x00007b54 addiu v1, zero, 8 | v1 = 8;
0x00007b58 lw t9, -0x7c88(gp) | t9 = sym.imp.strncpy;
| if (v0 == v1) {
0x00007b5c beq v0, v1, 0x7bc8 | goto label_2;
| }
| }
0x00007b60 lw t9, -0x7c88(gp) | t9 = sym.imp.strncpy;
0x00007b64 addiu v1, sp, 0x18 | v1 = sp + 0x18;
0x00007b68 move a0, v1 | a0 = v1;
0x00007b6c addiu a2, zero, 8 | a2 = 8;
0x00007b70 move a1, s5 | a1 = s5;
0x00007b74 jalr t9 | t9 ();
0x00007b78 lw gp, 0x10(sp) | gp = *(var_10h);
0x00007b7c move v1, v0 | v1 = v0;
| do {
| label_0:
0x00007b80 lw t9, -0x7e60(gp) | t9 = sym.decode_timestamp;
0x00007b84 move a0, v1 | a0 = v1;
0x00007b88 move a1, s4 | a1 = s4;
0x00007b8c sb zero, 0x20(sp) | *(var_20h) = 0;
0x00007b90 bal 0x79c0 | sym_decode_timestamp ();
0x00007b94 lw a0, 0x24(sp) | a0 = *(var_24h);
0x00007b98 lw v1, (s3) | v1 = *(s3);
0x00007b9c lw gp, 0x10(sp) | gp = *(var_10h);
| if (a0 != v1) {
0x00007ba0 bne a0, v1, 0x7c3c | goto label_3;
| }
0x00007ba4 lw ra, 0x44(sp) | ra = *(var_44h);
0x00007ba8 lw s5, 0x40(sp) | s5 = *(var_40h);
0x00007bac lw s4, 0x3c(sp) | s4 = *(var_3ch);
0x00007bb0 lw s3, 0x38(sp) | s3 = *(var_38h);
0x00007bb4 lw s2, 0x34(sp) | s2 = *(var_34h);
0x00007bb8 lw s1, 0x30(sp) | s1 = *(var_30h);
0x00007bbc lw s0, 0x2c(sp) | s0 = *(var_2ch);
0x00007bc0 addiu sp, sp, 0x48 |
0x00007bc4 jr ra | return v1;
| label_2:
0x00007bc8 addiu v1, sp, 0x18 | v1 = sp + 0x18;
0x00007bcc addiu s1, s1, 2 | s1 += 2;
0x00007bd0 move a0, v1 | a0 = v1;
0x00007bd4 sw s1, (s2) | *(s2) = s1;
0x00007bd8 addiu a2, zero, 8 | a2 = 8;
0x00007bdc move a1, s0 | a1 = s0;
0x00007be0 jalr t9 | t9 ();
0x00007be4 move v1, v0 | v1 = v0;
0x00007be8 lw gp, 0x10(sp) | gp = *(var_10h);
0x00007bec b 0x7b80 |
| } while (1);
| label_1:
0x00007bf0 addiu v1, sp, 0x18 | v1 = sp + 0x18;
0x00007bf4 lw t9, -0x7c88(gp) | t9 = sym.imp.strncpy;
0x00007bf8 addiu s1, s1, 2 | s1 += 2;
0x00007bfc move a0, v1 | a0 = v1;
0x00007c00 addiu a2, zero, 5 | a2 = 5;
0x00007c04 move a1, s0 | a1 = s0;
0x00007c08 sw s1, (s2) | *(s2) = s1;
0x00007c0c jalr t9 | t9 ();
0x00007c10 lw gp, 0x10(sp) | gp = *(var_10h);
0x00007c14 addiu a2, zero, 9 | a2 = 9;
0x00007c18 move a0, v0 | a0 = v0;
0x00007c1c lw a1, -0x7fd8(gp) | a1 = *(gp);
0x00007c20 lw t9, -0x7bbc(gp) | t9 = sym.imp.__strcat_chk
| /* esilref: ':00' */
0x00007c24 addiu a1, a1, 0x2e70 | a1 += 0x2e70;
0x00007c28 sb zero, 0x1d(sp) | *(var_1dh) = 0;
0x00007c2c jalr t9 | t9 ();
0x00007c30 move v1, v0 | v1 = v0;
0x00007c34 lw gp, 0x10(sp) | gp = *(var_10h);
0x00007c38 b 0x7b80 | goto label_0;
| label_3:
0x00007c3c lw t9, -0x7c10(gp) | t9 = sym.imp.__stack_chk_fail;
0x00007c40 jalr t9 | t9 ();
0x00007c44 nop |
| }
[*] Function strcat used 3 times sar