[*] Binary protection state of gpgv
Full RELRO Canary found NX disabled PIE enabled No RPATH No RUNPATH No Symbols
[*] Function strcat tear down of gpgv
; assembly | /* r2dec pseudo code output */
| /* /logs/firmware/unblob_extracted/firmware_extract/4325012-58052244.squashfs_v4_le_extract/usr/bin/gpgv @ 0x1e7d8 */
| #include <stdint.h>
|
; (fcn) fcn.0001e7d8 () | void fcn_0001e7d8 () {
0x0001e7d8 lui gp, 4 |
0x0001e7dc addiu gp, gp, 0x3958 |
0x0001e7e0 addu gp, gp, t9 | gp += t9;
0x0001e7e4 addiu sp, sp, -0xe0 |
0x0001e7e8 lw v0, 4(a1) | v0 = *((a1 + 1));
0x0001e7ec sw s2, 0xc0(sp) | *(var_c0h) = s2;
0x0001e7f0 lw s2, -0x781c(gp) | s2 = *((gp - 7687));
0x0001e7f4 sw s3, 0xc4(sp) | *(var_c4h) = s3;
0x0001e7f8 move s3, a1 | s3 = a1;
0x0001e7fc lw a1, 0xfc(sp) | a1 = *(arg_fch);
0x0001e800 sw s4, 0xc8(sp) | *(var_c8h) = s4;
0x0001e804 lw s4, 0xf0(sp) | s4 = *(arg_f0h);
0x0001e808 lw v1, (s2) | v1 = *(s2);
0x0001e80c sw a1, 0x34(sp) | *(var_34h) = a1;
0x0001e810 lw a1, 0x100(sp) | a1 = *(arg_100h);
0x0001e814 sw gp, 0x28(sp) | *(var_28h) = gp;
0x0001e818 sw s1, 0xbc(sp) | *(var_bch) = s1;
0x0001e81c sw ra, 0xdc(sp) | *(var_dch) = ra;
0x0001e820 sw fp, 0xd8(sp) | *(var_d8h) = fp;
0x0001e824 sw s7, 0xd4(sp) | *(var_d4h) = s7;
0x0001e828 sw s6, 0xd0(sp) | *(var_d0h) = s6;
0x0001e82c sw s5, 0xcc(sp) | *(var_cch) = s5;
0x0001e830 sw s0, 0xb8(sp) | *(var_b8h) = s0;
0x0001e834 sw a2, 0xe8(sp) | *(arg_e8h) = a2;
0x0001e838 lw s1, 0xf4(sp) | s1 = *(arg_f4h);
0x0001e83c sw a1, 0x38(sp) | *(var_38h) = a1;
0x0001e840 sw v1, 0xb4(sp) | *(var_b4h) = v1;
0x0001e844 sw zero, (s4) | *(s4) = 0;
| if (v0 != 0) {
0x0001e848 bnez v0, 0x2121c | goto label_35;
| }
0x0001e84c move s6, a0 | s6 = a0;
0x0001e850 move s0, a3 | s0 = a3;
| if (a3 != 0) {
0x0001e854 beqz a3, 0x1e870 |
0x0001e858 lw t9, -0x7b94(gp) | t9 = sym.iobuf_tell;
0x0001e85c jalr t9 | t9 ();
0x0001e860 nop |
0x0001e864 lw gp, 0x28(sp) | gp = *(var_28h);
0x0001e868 sw v0, (s0) | *(s0) = v0;
0x0001e86c sw v1, 4(s0) | *((s0 + 1)) = v1;
| }
0x0001e870 lw v0, 0x20(s6) | v0 = *((s6 + 8));
0x0001e874 lw t9, -0x7c38(gp) | t9 = sym.iobuf_readbyte;
| if (v0 == 0) {
0x0001e878 bnez v0, 0x1e894 |
0x0001e87c lw a0, 0x2c(s6) | a0 = *((s6 + 11));
0x0001e880 lw v0, 0x30(s6) | v0 = *((s6 + 12));
0x0001e884 sltu v0, a0, v0 | v0 = (a0 < v0) ? 1 : 0;
0x0001e888 lw v0, 0x10(s6) | v0 = *((s6 + 4));
| if (v0 == 0) {
0x0001e88c bnel v0, zero, 0x1ea90 | goto label_36;
| }
0x0001e890 lw t9, -0x7c38(gp) | t9 = sym.iobuf_readbyte;
| }
0x0001e894 move a0, s6 | a0 = s6;
0x0001e898 jalr t9 | t9 ();
0x0001e89c move s7, v0 | s7 = v0;
0x0001e8a0 addiu v0, zero, -1 | v0 = -1;
0x0001e8a4 lw gp, 0x28(sp) | gp = *(var_28h);
| if (s7 == v0) {
0x0001e8a8 beq s7, v0, 0x1e9a8 | goto label_1;
| }
0x0001e8ac andi v1, s7, 0xff | v1 = s7 & 0xff;
0x0001e8b0 andi v0, s7, 0x80 | v0 = s7 & 0x80;
0x0001e8b4 sb v1, 0x48(sp) | *(var_48h) = v1;
| if (v0 == 0) {
0x0001e8b8 beqz v0, 0x1eac8 | goto label_37;
| }
| label_0:
0x0001e8bc andi s5, s7, 0x40 | s5 = s7 & 0x40;
0x0001e8c0 lw v0, 0x20(s6) | v0 = *((s6 + 8));
| if (s5 == 0) {
0x0001e8c4 bnel s5, zero, 0x1e9e8 | goto label_38;
| }
0x0001e8c8 andi v0, s7, 3 | v0 = s7 & 3;
0x0001e8cc addiu v1, zero, 3 | v1 = 3;
0x0001e8d0 ext s0, s7, 2, 4 | __asm ("ext s0, s7, 2, 4");
| if (v0 == v1) {
0x0001e8d4 beq v0, v1, 0x1ec04 | goto label_39;
| }
0x0001e8d8 addiu v1, zero, 1 | v1 = 1;
0x0001e8dc sllv v0, v1, v0 | v0 = v1 << v0;
0x0001e8e0 addiu s7, sp, 0x48 | s7 = sp + 0x48;
0x0001e8e4 sw v0, 0x3c(sp) | *(var_3ch) = v0;
0x0001e8e8 addu v0, v0, s7 | v0 += s7;
0x0001e8ec sw v0, 0x30(sp) | *(var_30h) = v0;
0x0001e8f0 move fp, zero | fp = 0;
0x0001e8f4 lw v0, 0x20(s6) | v0 = *((s6 + 8));
| do {
0x0001e8f8 sll fp, fp, 8 | fp <<= 8;
| if (v0 != 0) {
0x0001e8fc bnez v0, 0x1eaf0 | goto label_40;
| }
0x0001e900 lw a3, 0x2c(s6) | a3 = *((s6 + 11));
0x0001e904 lw a0, 0x30(s6) | a0 = *((s6 + 12));
0x0001e908 sltu a0, a3, a0 | a0 = (a3 < a0) ? 1 : 0;
0x0001e90c lw t9, -0x7c38(gp) | t9 = sym.iobuf_readbyte;
| if (a0 == 0) {
0x0001e910 beqz a0, 0x1eaf4 | goto label_41;
| }
0x0001e914 lw a0, 0x10(s6) | a0 = *((s6 + 4));
0x0001e918 lw t1, 0x14(s6) | t1 = *((s6 + 5));
0x0001e91c addiu a1, a0, 1 | a1 = a0 + 1;
0x0001e920 sltu a0, a1, a0 | a0 = (a1 < a0) ? 1 : 0;
0x0001e924 lw v0, 0x34(s6) | v0 = *((s6 + 13));
0x0001e928 addu a0, a0, t1 | a0 += t1;
0x0001e92c addiu t1, a3, 1 | t1 = a3 + 1;
0x0001e930 sw a1, 0x10(s6) | *((s6 + 4)) = a1;
0x0001e934 sw a0, 0x14(s6) | *((s6 + 5)) = a0;
0x0001e938 sw t1, 0x2c(s6) | *((s6 + 11)) = t1;
0x0001e93c lbux v0, a3(v0) | __asm ("lbux v0, a3(v0)");
| label_2:
0x0001e940 sb v0, 1(s7) | *((s7 + 1)) = v0;
0x0001e944 or fp, v0, fp | fp = v0 | fp;
0x0001e948 lw v0, 0x30(sp) | v0 = *(var_30h);
0x0001e94c addiu s7, s7, 1 | s7++;
0x0001e950 lw v0, 0x20(s6) | v0 = *((s6 + 8));
0x0001e954 bnel v0, s7, 0x1e8f8 |
| } while (v0 == s7);
0x0001e958 lw v0, 0x3c(sp) | v0 = *(var_3ch);
0x0001e95c addiu t1, v0, 1 | t1 = v0 + 1;
| do {
| label_3:
0x0001e960 addiu v0, zero, -1 | v0 = -1;
0x0001e964 move s7, zero | s7 = 0;
| if (fp == v0) {
0x0001e968 beq fp, v0, 0x21240 | goto label_42;
| }
| label_13:
0x0001e96c lw v1, 0xe8(sp) | v1 = *(arg_e8h);
| if (s1 == 0) {
0x0001e970 beqz s1, 0x1eb40 | goto label_43;
| }
0x0001e974 lw t9, -0x7f68(gp) | t9 = sym.iobuf_write;
| if (s0 != 0) {
0x0001e978 bnez s0, 0x1fc54 | goto label_44;
| }
| label_23:
0x0001e97c lw t9, -0x7bc0(gp) | t9 = sym.iobuf_skip_rest;
| label_5:
0x0001e980 move a2, s7 | a2 = s7;
| label_6:
0x0001e984 move a1, fp | a1 = fp;
0x0001e988 move a0, s6 | a0 = s6;
0x0001e98c jalr t9 | t9 ();
0x0001e990 addiu v0, zero, 1 | v0 = 1;
0x0001e994 lw gp, 0x28(sp) | gp = *(var_28h);
0x0001e998 sw v0, (s4) | *(s4) = v0;
| label_8:
0x0001e99c lw s7, 0x3c(s6) | s7 = *((s6 + 15));
| label_7:
0x0001e9a0 addiu s7, zero, 0x20 | s7 = 0x20;
| if (s7 != 0) {
0x0001e9a4 bnel s7, zero, 0x1e9a8 |
| }
| label_1:
0x0001e9a8 lw a0, 0xb4(sp) | a0 = *(var_b4h);
0x0001e9ac lw v1, (s2) | v1 = *(s2);
0x0001e9b0 move v0, s7 | v0 = s7;
| if (a0 != v1) {
0x0001e9b4 bne a0, v1, 0x21210 | goto label_45;
| }
0x0001e9b8 lw ra, 0xdc(sp) | ra = *(var_dch);
0x0001e9bc lw fp, 0xd8(sp) | fp = *(var_d8h);
0x0001e9c0 lw s7, 0xd4(sp) | s7 = *(var_d4h);
0x0001e9c4 lw s6, 0xd0(sp) | s6 = *(var_d0h);
0x0001e9c8 lw s5, 0xcc(sp) | s5 = *(var_cch);
0x0001e9cc lw s4, 0xc8(sp) | s4 = *(var_c8h);
0x0001e9d0 lw s3, 0xc4(sp) | s3 = *(var_c4h);
0x0001e9d4 lw s2, 0xc0(sp) | s2 = *(var_c0h);
0x0001e9d8 lw s1, 0xbc(sp) | s1 = *(var_bch);
0x0001e9dc lw s0, 0xb8(sp) | s0 = *(var_b8h);
0x0001e9e0 addiu sp, sp, 0xe0 |
0x0001e9e4 jr ra | return v1;
| label_38:
0x0001e9e8 andi s0, s7, 0x3f | s0 = s7 & 0x3f;
| if (v0 == 0) {
0x0001e9ec bnez v0, 0x1ea04 |
0x0001e9f0 lw v1, 0x2c(s6) | v1 = *((s6 + 11));
0x0001e9f4 lw a0, 0x30(s6) | a0 = *((s6 + 12));
0x0001e9f8 sltu a0, v1, a0 | a0 = (v1 < a0) ? 1 : 0;
0x0001e9fc lw a0, 0x10(s6) | a0 = *((s6 + 4));
| if (a0 == 0) {
0x0001ea00 bnel a0, zero, 0x1eb14 | goto label_46;
| }
| }
0x0001ea04 lw t9, -0x7c38(gp) | t9 = sym.iobuf_readbyte;
0x0001ea08 move a0, s6 | a0 = s6;
0x0001ea0c jalr t9 | t9 ();
0x0001ea10 addiu v1, zero, -1 | v1 = -1;
0x0001ea14 lw gp, 0x28(sp) | gp = *(var_28h);
| if (v0 == v1) {
0x0001ea18 beq v0, v1, 0x1fd5c | goto label_47;
| }
| label_4:
0x0001ea1c addiu v1, zero, 8 | v1 = 8;
0x0001ea20 slti v1, v0, 0xc0 | v1 = (v0 < 0xc0) ? 1 : 0;
| if (s0 == v1) {
0x0001ea24 beq s0, v1, 0x1ed50 | goto label_48;
| }
0x0001ea28 sb v0, 0x49(sp) | *(var_49h) = v0;
| if (v1 != 0) {
0x0001ea2c bnez v1, 0x1eb08 | goto label_49;
| }
0x0001ea30 slti v1, v0, 0xe0 | v1 = (v0 < 0xe0) ? 1 : 0;
0x0001ea34 addiu v1, zero, 0xff | v1 = 0xff;
| if (v1 == 0) {
0x0001ea38 beqz v1, 0x1ee3c | goto label_50;
| }
0x0001ea3c lw v1, 0x20(s6) | v1 = *((s6 + 8));
0x0001ea40 addiu v0, v0, -0xc0 | v0 += -0xc0;
0x0001ea44 sll s7, v0, 8 | s7 = v0 << 8;
| if (v1 == 0) {
0x0001ea48 bnez v1, 0x1ea60 |
0x0001ea4c lw v1, 0x2c(s6) | v1 = *((s6 + 11));
0x0001ea50 lw v0, 0x30(s6) | v0 = *((s6 + 12));
0x0001ea54 sltu v0, v1, v0 | v0 = (v1 < v0) ? 1 : 0;
0x0001ea58 lw v0, 0x10(s6) | v0 = *((s6 + 4));
| if (v0 == 0) {
0x0001ea5c bnel v0, zero, 0x1eeb0 | goto label_51;
| }
| }
0x0001ea60 lw t9, -0x7c38(gp) | t9 = sym.iobuf_readbyte;
0x0001ea64 move a0, s6 | a0 = s6;
0x0001ea68 jalr t9 | t9 ();
0x0001ea6c addiu v1, zero, -1 | v1 = -1;
0x0001ea70 lw gp, 0x28(sp) | gp = *(var_28h);
0x0001ea74 andi a0, v0, 0xff | a0 = v0 & 0xff;
| if (v0 == v1) {
0x0001ea78 beq v0, v1, 0x1fbac | goto label_52;
| }
| label_17:
0x0001ea7c addiu v1, s7, 0xc0 | v1 = s7 + 0xc0;
0x0001ea80 sb a0, 0x4a(sp) | *(var_4ah) = a0;
0x0001ea84 addu fp, v0, v1 | fp = v0 + v1;
0x0001ea88 addiu t1, zero, 3 | t1 = 3;
0x0001ea8c b 0x1e960 |
| } while (1);
| label_36:
0x0001ea90 lw a2, 0x14(s6) | a2 = *((s6 + 5));
0x0001ea94 addiu a1, v0, 1 | a1 = v0 + 1;
0x0001ea98 sltu v0, a1, v0 | v0 = (a1 < v0) ? 1 : 0;
0x0001ea9c lw v1, 0x34(s6) | v1 = *((s6 + 13));
0x0001eaa0 addu v0, v0, a2 | v0 += a2;
0x0001eaa4 addiu a2, a0, 1 | a2 = a0 + 1;
0x0001eaa8 sw v0, 0x14(s6) | *((s6 + 5)) = v0;
0x0001eaac sw a1, 0x10(s6) | *((s6 + 4)) = a1;
0x0001eab0 sw a2, 0x2c(s6) | *((s6 + 11)) = a2;
0x0001eab4 lbux v1, a0(v1) | __asm ("lbux v1, a0(v1)");
0x0001eab8 move s7, v1 | s7 = v1;
0x0001eabc andi v0, s7, 0x80 | v0 = s7 & 0x80;
0x0001eac0 sb v1, 0x48(sp) | *(var_48h) = v1;
| if (v0 != 0) {
0x0001eac4 bnez v0, 0x1e8bc | goto label_0;
| }
| label_37:
0x0001eac8 lw a1, -0x7fdc(gp) | a1 = *(gp);
0x0001eacc lw a0, -0x7fdc(gp) | a0 = *(gp);
0x0001ead0 lw t9, -0x7f84(gp) | t9 = sym.g10_log_error;
0x0001ead4 move a2, s7 | a2 = s7;
| /* str._dont_know_ */
0x0001ead8 addiu a1, a1, 0x5e34 | a1 += 0x5e34;
| /* str._s:_invalid_packet__ctb_02x__n */
0x0001eadc addiu a0, a0, 0x5e44 | a0 += 0x5e44;
0x0001eae0 bal 0x38550 | sym_g10_log_error ();
0x0001eae4 addiu s7, zero, 0xe | s7 = 0xe;
0x0001eae8 lw gp, 0x28(sp) | gp = *(var_28h);
0x0001eaec b 0x1e9a8 | goto label_1;
| label_40:
0x0001eaf0 lw t9, -0x7c38(gp) | t9 = sym.iobuf_readbyte;
| label_41:
0x0001eaf4 move a0, s6 | a0 = s6;
0x0001eaf8 jalr t9 | t9 ();
0x0001eafc andi v0, v0, 0xff | v0 &= 0xff;
0x0001eb00 lw gp, 0x28(sp) | gp = *(var_28h);
0x0001eb04 b 0x1e940 | goto label_2;
| label_49:
0x0001eb08 move fp, v0 | fp = v0;
0x0001eb0c addiu t1, zero, 2 | t1 = 2;
0x0001eb10 b 0x1e960 | goto label_3;
| label_46:
0x0001eb14 lw a2, 0x14(s6) | a2 = *((s6 + 5));
0x0001eb18 addiu a1, a0, 1 | a1 = a0 + 1;
0x0001eb1c sltu a0, a1, a0 | a0 = (a1 < a0) ? 1 : 0;
0x0001eb20 lw v0, 0x34(s6) | v0 = *((s6 + 13));
0x0001eb24 addu a0, a0, a2 | a0 += a2;
0x0001eb28 addiu a2, v1, 1 | a2 = v1 + 1;
0x0001eb2c sw a1, 0x10(s6) | *((s6 + 4)) = a1;
0x0001eb30 sw a0, 0x14(s6) | *((s6 + 5)) = a0;
0x0001eb34 sw a2, 0x2c(s6) | *((s6 + 11)) = a2;
0x0001eb38 lbux v0, v1(v0) | __asm ("lbux v0, v1(v0)");
0x0001eb3c b 0x1ea1c | goto label_4;
| label_43:
0x0001eb40 addiu v0, zero, 2 | v0 = 2;
0x0001eb44 addiu v0, zero, 0xd | v0 = 0xd;
| if (v1 == v0) {
0x0001eb48 beq v1, v0, 0x1ecc8 | goto label_53;
| }
| label_10:
0x0001eb4c lw v0, 0xf8(sp) | v0 = *(arg_f8h);
0x0001eb50 lw t9, -0x7bc0(gp) | t9 = sym.iobuf_skip_rest;
| if (v0 != 0) {
0x0001eb54 bnez v0, 0x1e980 | goto label_5;
| }
0x0001eb58 lw v0, 0xe8(sp) | v0 = *(arg_e8h);
| if (s0 == 0) {
0x0001eb5c beqz s0, 0x1e980 | goto label_5;
| }
0x0001eb60 lw v0, -0x7fc8(gp) | v0 = *(gp);
| if (v0 == 0) {
0x0001eb64 beqz v0, 0x1ec98 | goto label_54;
| }
0x0001eb68 addiu v0, zero, 0xe | v0 = 0xe;
0x0001eb6c addiu v0, zero, 6 | v0 = 6;
| if (s0 == v0) {
0x0001eb70 beq s0, v0, 0x1ee7c | goto label_55;
| }
0x0001eb74 addiu v0, zero, 7 | v0 = 7;
| if (s0 == v0) {
0x0001eb78 beq s0, v0, 0x1eea8 | goto label_56;
| }
0x0001eb7c addiu s1, zero, 7 | s1 = 7;
| if (s0 == v0) {
0x0001eb80 beq s0, v0, 0x1eb90 | goto label_57;
| }
0x0001eb84 addiu s1, zero, 5 | s1 = 5;
0x0001eb88 move a2, s7 | a2 = s7;
| if (s0 != s1) {
0x0001eb8c bne s0, s1, 0x1e984 | goto label_6;
| }
| label_57:
0x0001eb90 lw v0, -0x7fc8(gp) | v0 = *(gp);
0x0001eb94 lw v0, 8(v0) | v0 = *((v0 + 2));
0x0001eb98 andi v0, v0, 1 | v0 &= 1;
| if (v0 != 0) {
0x0001eb9c bnez v0, 0x1ece0 | goto label_14;
| }
0x0001eba0 nop |
0x0001eba4 sw s1, (s3) | *(s3) = s1;
0x0001eba8 lw t9, -0x7f2c(gp) | t9 = sym.xmalloc_clear;
0x0001ebac sw t1, 0x30(sp) | *(var_30h) = t1;
0x0001ebb0 addiu a0, zero, 0x7c | a0 = 0x7c;
| label_15:
0x0001ebb4 bal 0x3cbdc | sym_xmalloc_clear ();
0x0001ebb8 nop |
0x0001ebbc lw gp, 0x28(sp) | gp = *(var_28h);
0x0001ebc0 lw t1, 0x30(sp) | t1 = *(var_30h);
0x0001ebc4 addiu a0, s3, 4 | a0 = s3 + 4;
0x0001ebc8 lw t9, -0x7bd4(gp) | t9 = *(gp);
0x0001ebcc sw v0, 4(s3) | *((s3 + 1)) = v0;
0x0001ebd0 move a3, t1 | a3 = t1;
0x0001ebd4 sw a0, 0x10(sp) | *(var_10h) = a0;
0x0001ebd8 move a2, fp | a2 = fp;
0x0001ebdc move a1, s0 | a1 = s0;
| /* fcn.0001af40 */
0x0001ebe0 addiu t9, t9, -0x50c0 | t9 += -0x50c0;
0x0001ebe4 move a0, s6 | a0 = s6;
0x0001ebe8 bal 0x1af40 | fcn_0001af40 ();
0x0001ebec lw gp, 0x28(sp) | gp = *(var_28h);
0x0001ebf0 move s7, v0 | s7 = v0;
| if (s7 != 0) {
0x0001ebf4 bnez s7, 0x1e9a8 | goto label_1;
| }
0x0001ebf8 nop |
0x0001ebfc lw s7, 0x3c(s6) | s7 = *((s6 + 15));
0x0001ec00 b 0x1e9a0 | goto label_7;
| label_39:
0x0001ec04 addiu v0, zero, 9 | v0 = 9;
0x0001ec08 addiu v0, zero, 0xb | v0 = 0xb;
| if (s0 != v0) {
0x0001ec0c beq s0, v0, 0x1ec20 |
0x0001ec10 addiu v0, zero, 8 | v0 = 8;
| if (s0 == v0) {
0x0001ec14 beq s0, v0, 0x1ec20 | goto label_58;
| }
0x0001ec18 lw a1, -0x7fdc(gp) | a1 = *(gp);
| if (s0 != v0) {
0x0001ec1c bne s0, v0, 0x20180 | goto label_59;
| }
| }
| label_58:
0x0001ec20 lw v0, 0xf8(sp) | v0 = *(arg_f8h);
| if (s1 == 0) {
0x0001ec24 beqz s1, 0x1fc20 | goto label_60;
| }
| label_12:
0x0001ec28 lw t9, -0x7f68(gp) | t9 = sym.iobuf_write;
0x0001ec2c addiu a2, zero, 1 | a2 = 1;
0x0001ec30 addiu a1, sp, 0x48 | a1 = sp + 0x48;
0x0001ec34 move a0, s1 | a0 = s1;
0x0001ec38 jalr t9 | t9 ();
0x0001ec3c addiu v1, zero, -1 | v1 = -1;
0x0001ec40 lw gp, 0x28(sp) | gp = *(var_28h);
| if (v0 == v1) {
0x0001ec44 bne v0, v1, 0x1ec50 |
| label_20:
0x0001ec48 addiu s7, zero, 0x16 | s7 = 0x16;
0x0001ec4c b 0x1e9a8 | goto label_1;
| }
0x0001ec50 addiu s0, sp, 0x50 | s0 = sp + 0x50;
| label_21:
0x0001ec54 addiu s3, zero, -1 | s3 = -1;
| label_9:
0x0001ec58 lw t9, -0x7f64(gp) | t9 = sym.iobuf_read;
0x0001ec5c addiu a2, zero, 0x64 | a2 = 0x64;
0x0001ec60 move a1, s0 | a1 = s0;
0x0001ec64 move a0, s6 | a0 = s6;
0x0001ec68 jalr t9 | t9 ();
0x0001ec6c lw gp, 0x28(sp) | gp = *(var_28h);
| if (v0 == s3) {
0x0001ec70 beq v0, s3, 0x1e99c | goto label_8;
| }
0x0001ec74 lw t9, -0x7f68(gp) | t9 = sym.iobuf_write;
0x0001ec78 move a2, v0 | a2 = v0;
0x0001ec7c move a1, s0 | a1 = s0;
0x0001ec80 move a0, s1 | a0 = s1;
0x0001ec84 jalr t9 | t9 ();
0x0001ec88 lw gp, 0x28(sp) | gp = *(var_28h);
| if (v0 == 0) {
0x0001ec8c beqz v0, 0x1ec58 | goto label_9;
| }
0x0001ec90 addiu s7, zero, 0x16 | s7 = 0x16;
0x0001ec94 b 0x1e9a8 | goto label_1;
| label_54:
0x0001ec98 lw v0, 8(v0) | v0 = *((v0 + 2));
0x0001ec9c andi v0, v0, 1 | v0 &= 1;
0x0001eca0 move s1, s0 | s1 = s0;
| if (v0 != 0) {
0x0001eca4 bnez v0, 0x1ece0 | goto label_14;
| }
| label_11:
0x0001eca8 lw a0, -0x7fdc(gp) | a0 = *(gp);
0x0001ecac sll v0, s0, 2 | v0 = s0 << 2;
0x0001ecb0 addiu a0, a0, 0x6414 | a0 += 0x6414;
0x0001ecb4 sltu t0, zero, s5 | t0 = (0 < s5) ? 1 : 0;
0x0001ecb8 lwx v0, v0(a0) | __asm ("lwx v0, v0(a0)");
0x0001ecbc addu v0, v0, gp | v0 += gp;
0x0001ecc0 sw s1, (s3) | *(s3) = s1;
0x0001ecc4 jr v0 | v0 ();
| label_53:
0x0001ecc8 lw v0, -0x7fc8(gp) | v0 = *(gp);
| if (s0 != v0) {
0x0001eccc bne s0, v0, 0x1eb4c | goto label_10;
| }
0x0001ecd0 lw v0, 8(v0) | v0 = *((v0 + 2));
0x0001ecd4 andi v0, v0, 1 | v0 &= 1;
0x0001ecd8 addiu s1, zero, 0xd | s1 = 0xd;
| if (v0 == 0) {
0x0001ecdc beqz v0, 0x1f9f0 | goto label_61;
| }
| label_14:
0x0001ece0 lw a1, 0x54(s6) | a1 = *((s6 + 21));
| if (s5 == 0) {
0x0001ece4 beqz s5, 0x1ed44 | goto label_62;
| }
0x0001ece8 lw v0, -0x7fdc(gp) | v0 = *(gp);
| /* str.__new_ctb_ */
0x0001ecec addiu v0, v0, 0x5dfc | v0 += 0x5dfc;
| do {
| label_33:
0x0001ecf0 lw a0, 0x104(sp) | a0 = *(arg_104h);
0x0001ecf4 lw v1, 0x38(sp) | v1 = *(var_38h);
0x0001ecf8 sw a0, 0x1c(sp) | *(var_1ch) = a0;
0x0001ecfc sw v1, 0x18(sp) | *(var_18h) = v1;
0x0001ed00 lw a0, -0x7fdc(gp) | a0 = *(gp);
0x0001ed04 lw v1, 0x34(sp) | v1 = *(var_34h);
0x0001ed08 lw t9, -0x7f5c(gp) | t9 = sym.g10_log_debug;
0x0001ed0c sw t1, 0x30(sp) | *(var_30h) = t1;
0x0001ed10 sw v1, 0x14(sp) | *(var_14h) = v1;
0x0001ed14 sw v0, 0x10(sp) | *(var_10h) = v0;
0x0001ed18 move a3, fp | a3 = fp;
0x0001ed1c move a2, s0 | a2 = s0;
| /* str.parse_packet_iob_d_:_type_d_length_lu_s___s._s._d__n */
0x0001ed20 addiu a0, a0, 0x5f64 | a0 += 0x5f64;
0x0001ed24 bal 0x388a0 | sym_g10_log_debug ();
0x0001ed28 lw gp, 0x28(sp) | gp = *(var_28h);
0x0001ed2c lw t1, 0x30(sp) | t1 = *(var_30h);
0x0001ed30 b 0x1eca8 | goto label_11;
| label_19:
0x0001ed34 lw a1, 0x54(s6) | a1 = *((s6 + 21));
0x0001ed38 addiu s7, zero, 1 | s7 = 1;
0x0001ed3c move fp, zero | fp = 0;
0x0001ed40 addiu t1, zero, 1 | t1 = 1;
| label_62:
0x0001ed44 lw v0, -0x7fdc(gp) | v0 = *(gp);
0x0001ed48 addiu v0, v0, 0x4b84 | v0 += 0x4b84;
0x0001ed4c b 0x1ecf0 |
| } while (1);
| label_48:
0x0001ed50 lw t9, -0x7f70(gp) | t9 = sym.iobuf_set_partial_block_mode;
0x0001ed54 andi a1, v0, 0xff | a1 = v0 & 0xff;
0x0001ed58 move a0, s6 | a0 = s6;
0x0001ed5c jalr t9 | t9 ();
0x0001ed60 lw gp, 0x28(sp) | gp = *(var_28h);
| if (s1 != 0) {
0x0001ed64 bnez s1, 0x1ec28 | goto label_12;
| }
0x0001ed68 lw v0, 0xe8(sp) | v0 = *(arg_e8h);
0x0001ed6c lw v1, 0xf8(sp) | v1 = *(arg_f8h);
0x0001ed70 or v0, v0, v1 | v0 |= v1;
0x0001ed74 addiu s7, zero, 1 | s7 = 1;
| if (v0 != 0) {
0x0001ed78 bnez v0, 0x1fcf0 | goto label_63;
| }
0x0001ed7c lw v0, -0x7fc8(gp) | v0 = *(gp);
0x0001ed80 lw v0, 8(v0) | v0 = *((v0 + 2));
0x0001ed84 andi v0, v0, 1 | v0 &= 1;
0x0001ed88 addiu t0, zero, 1 | t0 = 1;
| if (v0 != 0) {
0x0001ed8c bnez v0, 0x20d60 | goto label_64;
| }
0x0001ed90 sw s0, (s3) | *(s3) = s0;
0x0001ed94 lw t9, -0x7f28(gp) | t9 = sym.xmalloc;
0x0001ed98 sw t0, 0x30(sp) | *(var_30h) = t0;
0x0001ed9c addiu a0, zero, 0xc | a0 = 0xc;
0x0001eda0 bal 0x3cb1c | sym_xmalloc ();
0x0001eda4 lw v1, 0x20(s6) | v1 = *((s6 + 8));
0x0001eda8 lw gp, 0x28(sp) | gp = *(var_28h);
0x0001edac move s0, v0 | s0 = v0;
0x0001edb0 sw v0, 4(s3) | *((s3 + 1)) = v0;
0x0001edb4 lw t0, 0x30(sp) | t0 = *(var_30h);
| if (v1 != 0) {
0x0001edb8 bnez v1, 0x2013c | goto label_65;
| }
0x0001edbc lw v1, 0x2c(s6) | v1 = *((s6 + 11));
0x0001edc0 lw v0, 0x30(s6) | v0 = *((s6 + 12));
0x0001edc4 sltu v0, v1, v0 | v0 = (v1 < v0) ? 1 : 0;
0x0001edc8 lw t9, -0x7c38(gp) | t9 = sym.iobuf_readbyte;
| if (v0 == 0) {
0x0001edcc beqz v0, 0x20140 | goto label_66;
| }
0x0001edd0 lw v0, 0x10(s6) | v0 = *((s6 + 4));
0x0001edd4 lw a1, 0x14(s6) | a1 = *((s6 + 5));
0x0001edd8 addiu a0, v0, 1 | a0 = v0 + 1;
0x0001eddc sltu v0, a0, v0 | v0 = (a0 < v0) ? 1 : 0;
0x0001ede0 lw a3, 0x34(s6) | a3 = *((s6 + 13));
0x0001ede4 addu v0, v0, a1 | v0 += a1;
0x0001ede8 addiu a1, v1, 1 | a1 = v1 + 1;
0x0001edec sw a0, 0x10(s6) | *((s6 + 4)) = a0;
0x0001edf0 sw v0, 0x14(s6) | *((s6 + 5)) = v0;
0x0001edf4 sw a1, 0x2c(s6) | *((s6 + 11)) = a1;
0x0001edf8 lbux a3, v1(a3) | __asm ("lbux a3, v1(a3)");
| label_32:
0x0001edfc lw v0, -0x7fb4(gp) | v0 = *((gp - 8173));
0x0001ee00 sb a3, 5(s0) | *((s0 + 5)) = a3;
0x0001ee04 sw zero, (s0) | *(s0) = 0;
0x0001ee08 lw v0, -0x4cac(v0) | v0 = *((v0 - 4907));
0x0001ee0c sb t0, 4(s0) | *((s0 + 4)) = t0;
0x0001ee10 sw s6, 8(s0) | *((s0 + 2)) = s6;
| if (v0 == 0) {
0x0001ee14 beqz v0, 0x1e99c | goto label_8;
| }
0x0001ee18 lw v0, -0x7fb4(gp) | v0 = *((gp - 8173));
0x0001ee1c lw a2, -0x7fdc(gp) | a2 = *(gp);
0x0001ee20 lw t9, -0x7920(gp) | t9 = sym.imp.__fprintf_chk;
0x0001ee24 lw a0, -0x4cb0(v0) | a0 = *((v0 - 4908));
| /* str.:compressed_packet:_algo_d_n */
0x0001ee28 addiu a2, a2, 0x6288 | a2 += 0x6288;
0x0001ee2c addiu a1, zero, 1 | a1 = 1;
0x0001ee30 jalr t9 | t9 ();
0x0001ee34 lw gp, 0x28(sp) | gp = *(var_28h);
0x0001ee38 b 0x1e99c | goto label_8;
| label_50:
0x0001ee3c andi s7, s7, 0x3d | s7 &= 0x3d;
| if (v0 == v1) {
0x0001ee40 beq v0, v1, 0x1fd80 | goto label_67;
| }
0x0001ee44 addiu v1, zero, 9 | v1 = 9;
0x0001ee48 addiu v1, zero, 0x12 | v1 = 0x12;
| if (s7 != v1) {
0x0001ee4c beq s7, v1, 0x1ee58 |
0x0001ee50 lw a1, -0x7fdc(gp) | a1 = *(gp);
| if (s0 != v1) {
0x0001ee54 bne s0, v1, 0x207a0 | goto label_68;
| }
| }
0x0001ee58 lw t9, -0x7f70(gp) | t9 = sym.iobuf_set_partial_block_mode;
0x0001ee5c andi a1, v0, 0xff | a1 = v0 & 0xff;
0x0001ee60 move a0, s6 | a0 = s6;
0x0001ee64 jalr t9 | t9 ();
0x0001ee68 addiu s7, zero, 1 | s7 = 1;
0x0001ee6c lw gp, 0x28(sp) | gp = *(var_28h);
0x0001ee70 addiu t1, zero, 2 | t1 = 2;
0x0001ee74 move fp, zero | fp = 0;
0x0001ee78 b 0x1e96c | goto label_13;
| label_55:
0x0001ee7c addiu s1, zero, 0xe | s1 = 0xe;
| label_16:
0x0001ee80 lw v0, -0x7fc8(gp) | v0 = *(gp);
0x0001ee84 lw v0, 8(v0) | v0 = *((v0 + 2));
0x0001ee88 andi v0, v0, 1 | v0 &= 1;
| if (v0 != 0) {
0x0001ee8c bnez v0, 0x1ece0 | goto label_14;
| }
0x0001ee90 nop |
0x0001ee94 sw s1, (s3) | *(s3) = s1;
0x0001ee98 sw t1, 0x30(sp) | *(var_30h) = t1;
0x0001ee9c lw t9, -0x7f2c(gp) | t9 = sym.xmalloc_clear;
0x0001eea0 addiu a0, zero, 0x80 | a0 = 0x80;
0x0001eea4 b 0x1ebb4 | goto label_15;
| label_56:
0x0001eea8 addiu s1, zero, 6 | s1 = 6;
0x0001eeac b 0x1ee80 | goto label_16;
| label_51:
0x0001eeb0 lw a2, 0x14(s6) | a2 = *((s6 + 5));
0x0001eeb4 addiu a1, v0, 1 | a1 = v0 + 1;
0x0001eeb8 sltu v0, a1, v0 | v0 = (a1 < v0) ? 1 : 0;
0x0001eebc lw a0, 0x34(s6) | a0 = *((s6 + 13));
0x0001eec0 addu v0, v0, a2 | v0 += a2;
0x0001eec4 addiu a2, v1, 1 | a2 = v1 + 1;
0x0001eec8 sw v0, 0x14(s6) | *((s6 + 5)) = v0;
0x0001eecc sw a1, 0x10(s6) | *((s6 + 4)) = a1;
0x0001eed0 sw a2, 0x2c(s6) | *((s6 + 11)) = a2;
0x0001eed4 lbux a0, v1(a0) | __asm ("lbux a0, v1(a0)");
0x0001eed8 move v0, a0 | v0 = a0;
0x0001eedc b 0x1ea7c | goto label_17;
| label_61:
0x0001f9f0 sw s0, (s3) | *(s3) = s0;
0x0001f9f4 sltiu v0, fp, 0x801 | v0 = (fp < 0x801) ? 1 : 0;
0x0001f9f8 lw t9, -0x7f2c(gp) | t9 = sym.xmalloc_clear;
| if (v0 == 0) {
0x0001f9fc beqz v0, 0x2097c | goto label_69;
| }
0x0001fa00 addiu a0, fp, 0x50 | a0 = fp + 0x50;
0x0001fa04 bal 0x3cbdc | sym_xmalloc_clear ();
0x0001fa08 addiu a0, zero, 1 | a0 = 1;
0x0001fa0c lw gp, 0x28(sp) | gp = *(var_28h);
0x0001fa10 sw v0, 4(s3) | *((s3 + 1)) = v0;
0x0001fa14 addiu s4, v0, 0x4c | s4 = v0 + 0x4c;
0x0001fa18 sw fp, 4(v0) | *((v0 + 1)) = fp;
0x0001fa1c sw a0, (v0) | *(v0) = a0;
| if (fp == 0) {
0x0001fa20 beqz fp, 0x20074 | goto label_70;
| }
0x0001fa24 addiu s1, fp, 0x4c | s1 = fp + 0x4c;
0x0001fa28 addu s1, v0, s1 | s1 = v0 + s1;
0x0001fa2c move s0, s4 | s0 = s4;
0x0001fa30 b 0x1fa6c |
| while (v0 == 0) {
0x0001fa34 lw a3, 0x14(s6) | a3 = *((s6 + 5));
0x0001fa38 addiu a2, a0, 1 | a2 = a0 + 1;
0x0001fa3c sltu a0, a2, a0 | a0 = (a2 < a0) ? 1 : 0;
0x0001fa40 lw v0, 0x34(s6) | v0 = *((s6 + 13));
0x0001fa44 addu a0, a0, a3 | a0 += a3;
0x0001fa48 addiu a3, a1, 1 | a3 = a1 + 1;
0x0001fa4c sw a2, 0x10(s6) | *((s6 + 4)) = a2;
0x0001fa50 sw a0, 0x14(s6) | *((s6 + 5)) = a0;
0x0001fa54 sw a3, 0x2c(s6) | *((s6 + 11)) = a3;
0x0001fa58 lbux v0, a1(v0) | __asm ("lbux v0, a1(v0)");
| label_18:
0x0001fa5c sb v0, (s0) | *(s0) = v0;
0x0001fa60 addiu s0, s0, 1 | s0++;
| if (s0 == s1) {
0x0001fa64 beql s0, s1, 0x20074 | goto label_70;
| }
0x0001fa68 addu s4, s4, fp | s4 += fp;
0x0001fa6c lw v0, 0x20(s6) | v0 = *((s6 + 8));
0x0001fa70 lw t9, -0x7c38(gp) | t9 = sym.iobuf_readbyte;
| if (v0 != 0) {
0x0001fa74 bnez v0, 0x1fa90 | goto label_71;
| }
0x0001fa78 lw a1, 0x2c(s6) | a1 = *((s6 + 11));
0x0001fa7c lw v0, 0x30(s6) | v0 = *((s6 + 12));
0x0001fa80 sltu v0, a1, v0 | v0 = (a1 < v0) ? 1 : 0;
0x0001fa84 lw a0, 0x10(s6) | a0 = *((s6 + 4));
0x0001fa88 bnel v0, zero, 0x1fa34 |
| }
0x0001fa8c lw t9, -0x7c38(gp) | t9 = sym.iobuf_readbyte;
| label_71:
0x0001fa90 move a0, s6 | a0 = s6;
0x0001fa94 jalr t9 | t9 ();
0x0001fa98 andi v0, v0, 0xff | v0 &= 0xff;
0x0001fa9c lw gp, 0x28(sp) | gp = *(var_28h);
0x0001faa0 b 0x1fa5c | goto label_18;
| label_52:
0x0001fbac lw a1, -0x7fdc(gp) | a1 = *(gp);
0x0001fbb0 lw a0, -0x7fdc(gp) | a0 = *(gp);
0x0001fbb4 lw t9, -0x7f84(gp) | t9 = sym.g10_log_error;
| /* str._dont_know_ */
0x0001fbb8 addiu a1, a1, 0x5e34 | a1 += 0x5e34;
| /* str._s:_2nd_length_byte_missing_n */
0x0001fbbc addiu a0, a0, 0x5e84 | a0 += 0x5e84;
0x0001fbc0 bal 0x38550 | sym_g10_log_error ();
0x0001fbc4 addiu s7, zero, 0xe | s7 = 0xe;
0x0001fbc8 lw gp, 0x28(sp) | gp = *(var_28h);
0x0001fbcc b 0x1e9a8 | goto label_1;
| label_60:
0x0001fc20 lw v0, 0xe8(sp) | v0 = *(arg_e8h);
| if (v0 != 0) {
0x0001fc24 bnez v0, 0x1fcec | goto label_72;
| }
0x0001fc28 addiu s7, zero, 1 | s7 = 1;
| if (v0 != 0) {
0x0001fc2c bnez v0, 0x1fcf0 | goto label_63;
| }
0x0001fc30 lw v0, -0x7fc8(gp) | v0 = *(gp);
0x0001fc34 lw v0, 8(v0) | v0 = *((v0 + 2));
0x0001fc38 andi v0, v0, 1 | v0 &= 1;
0x0001fc3c move s1, s0 | s1 = s0;
| if (v0 != 0) {
0x0001fc40 bnez v0, 0x1ed34 | goto label_19;
| }
0x0001fc44 addiu s7, zero, 1 | s7 = 1;
0x0001fc48 addiu t1, zero, 1 | t1 = 1;
0x0001fc4c move fp, zero | fp = 0;
0x0001fc50 b 0x1eca8 | goto label_11;
| label_44:
0x0001fc54 move a0, s1 | a0 = s1;
0x0001fc58 move a2, t1 | a2 = t1;
0x0001fc5c addiu a1, sp, 0x48 | a1 = sp + 0x48;
0x0001fc60 jalr t9 | t9 ();
0x0001fc64 addiu a0, zero, -1 | a0 = -1;
0x0001fc68 lw gp, 0x28(sp) | gp = *(var_28h);
| if (v0 == a0) {
0x0001fc6c beq v0, a0, 0x1ec48 | goto label_20;
| }
0x0001fc70 addiu s0, sp, 0x50 | s0 = sp + 0x50;
| if (s7 == 0) {
0x0001fc74 bnel s7, zero, 0x1ec54 | goto label_21;
| }
0x0001fc78 addiu v0, zero, 8 | v0 = 8;
| if (fp == 0) {
0x0001fc7c beqz fp, 0x1fcf8 | goto label_73;
| }
0x0001fc80 addiu s0, sp, 0x50 | s0 = sp + 0x50;
0x0001fc84 addiu s5, zero, 0x64 | s5 = 0x64;
0x0001fc88 addiu s4, zero, -1 | s4 = -1;
0x0001fc8c b 0x1fcb8 | goto label_74;
| label_22:
0x0001fc90 lw t9, -0x7f68(gp) | t9 = sym.iobuf_write;
0x0001fc94 move a2, v0 | a2 = v0;
0x0001fc98 move a1, s0 | a1 = s0;
0x0001fc9c move a0, s1 | a0 = s1;
0x0001fca0 jalr t9 | t9 ();
0x0001fca4 lw gp, 0x28(sp) | gp = *(var_28h);
| if (v0 != 0) {
0x0001fca8 bnez v0, 0x1ec48 | goto label_20;
| }
0x0001fcac subu fp, fp, s3 | __asm ("subu fp, fp, s3");
| if (fp == 0) {
0x0001fcb0 beql fp, zero, 0x1e9a0 | goto label_7;
| }
0x0001fcb4 lw s7, 0x3c(s6) | s7 = *((s6 + 15));
| label_74:
0x0001fcb8 sltiu a2, fp, 0x65 | a2 = (fp < 0x65) ? 1 : 0;
0x0001fcbc move v0, s5 | v0 = s5;
0x0001fcc0 lw t9, -0x7f64(gp) | t9 = sym.iobuf_read;
| if (a2 == 0) {
0x0001fcc4 movn v0, fp, a2 | v0 = fp;
| }
0x0001fcc8 move a2, v0 | a2 = v0;
0x0001fccc move a1, s0 | a1 = s0;
0x0001fcd0 move a0, s6 | a0 = s6;
0x0001fcd4 bal 0x3fc68 | sym_iobuf_read ();
0x0001fcd8 move s3, v0 | s3 = v0;
0x0001fcdc lw gp, 0x28(sp) | gp = *(var_28h);
| if (v0 != s4) {
0x0001fce0 bne v0, s4, 0x1fc90 | goto label_22;
| }
0x0001fce4 addiu s7, zero, 0x15 | s7 = 0x15;
0x0001fce8 b 0x1e9a8 | goto label_1;
| label_72:
0x0001fcec addiu s7, zero, 1 | s7 = 1;
| label_63:
0x0001fcf0 move fp, zero | fp = 0;
0x0001fcf4 b 0x1e97c | goto label_23;
| label_73:
0x0001fcf8 lw s7, 0x3c(s6) | s7 = *((s6 + 15));
| if (s0 == v0) {
0x0001fcfc bnel s0, v0, 0x1e9a0 | goto label_7;
| }
0x0001fd00 lw a0, -0x7fdc(gp) | a0 = *(gp);
0x0001fd04 lw t9, -0x7f5c(gp) | t9 = sym.g10_log_debug;
| /* str.copy_packet:_compressed__n */
0x0001fd08 addiu a0, a0, 0x5f48 | a0 += 0x5f48;
0x0001fd0c bal 0x388a0 | sym_g10_log_debug ();
0x0001fd10 lw gp, 0x28(sp) | gp = *(var_28h);
0x0001fd14 addiu s0, sp, 0x50 | s0 = sp + 0x50;
0x0001fd18 addiu s3, zero, -1 | s3 = -1;
| label_24:
0x0001fd1c lw t9, -0x7f64(gp) | t9 = sym.iobuf_read;
0x0001fd20 addiu a2, zero, 0x64 | a2 = 0x64;
0x0001fd24 move a1, s0 | a1 = s0;
0x0001fd28 move a0, s6 | a0 = s6;
0x0001fd2c bal 0x3fc68 | sym_iobuf_read ();
0x0001fd30 lw gp, 0x28(sp) | gp = *(var_28h);
| if (v0 == s3) {
0x0001fd34 beq v0, s3, 0x1e99c | goto label_8;
| }
0x0001fd38 lw t9, -0x7f68(gp) | t9 = sym.iobuf_write;
0x0001fd3c move a2, v0 | a2 = v0;
0x0001fd40 move a1, s0 | a1 = s0;
0x0001fd44 move a0, s1 | a0 = s1;
0x0001fd48 jalr t9 | t9 ();
0x0001fd4c lw gp, 0x28(sp) | gp = *(var_28h);
| if (v0 == 0) {
0x0001fd50 beqz v0, 0x1fd1c | goto label_24;
| }
0x0001fd54 addiu s7, zero, 0x16 | s7 = 0x16;
0x0001fd58 b 0x1e9a8 | goto label_1;
| label_47:
0x0001fd5c lw a1, -0x7fdc(gp) | a1 = *(gp);
0x0001fd60 lw a0, -0x7fdc(gp) | a0 = *(gp);
0x0001fd64 lw t9, -0x7f84(gp) | t9 = sym.g10_log_error;
| /* str._dont_know_ */
0x0001fd68 addiu a1, a1, 0x5e34 | a1 += 0x5e34;
| /* str._s:_1st_length_byte_missing_n */
0x0001fd6c addiu a0, a0, 0x5e64 | a0 += 0x5e64;
0x0001fd70 bal 0x38550 | sym_g10_log_error ();
0x0001fd74 addiu s7, zero, 0xe | s7 = 0xe;
0x0001fd78 lw gp, 0x28(sp) | gp = *(var_28h);
0x0001fd7c b 0x1e9a8 | goto label_1;
| label_67:
0x0001fd80 lw v0, 0x20(s6) | v0 = *((s6 + 8));
0x0001fd84 lw t9, -0x7c38(gp) | t9 = sym.iobuf_readbyte;
| if (v0 != 0) {
0x0001fd88 bnez v0, 0x1ff9c | goto label_75;
| }
0x0001fd8c lw a0, 0x2c(s6) | a0 = *((s6 + 11));
0x0001fd90 lw v0, 0x30(s6) | v0 = *((s6 + 12));
0x0001fd94 sltu v1, a0, v0 | v1 = (a0 < v0) ? 1 : 0;
| if (v1 == 0) {
0x0001fd98 beqz v1, 0x1ff9c | goto label_75;
| }
0x0001fd9c nop |
0x0001fda0 lw v1, 0x10(s6) | v1 = *((s6 + 4));
0x0001fda4 lw a2, 0x14(s6) | a2 = *((s6 + 5));
0x0001fda8 addiu a1, v1, 1 | a1 = v1 + 1;
0x0001fdac sltu v1, a1, v1 | v1 = (a1 < v1) ? 1 : 0;
0x0001fdb0 lw s7, 0x34(s6) | s7 = *((s6 + 13));
0x0001fdb4 addu v1, v1, a2 | v1 += a2;
0x0001fdb8 addiu a2, a0, 1 | a2 = a0 + 1;
0x0001fdbc sw a1, 0x10(s6) | *((s6 + 4)) = a1;
0x0001fdc0 sw v1, 0x14(s6) | *((s6 + 5)) = v1;
0x0001fdc4 sw a2, 0x2c(s6) | *((s6 + 11)) = a2;
0x0001fdc8 lbux s7, a0(s7) | __asm ("lbux s7, a0(s7)");
0x0001fdcc sb s7, 0x4a(sp) | *(var_4ah) = s7;
0x0001fdd0 sll s7, s7, 0x18 | s7 <<= 0x18;
| label_30:
0x0001fdd4 lw a0, 0x2c(s6) | a0 = *((s6 + 11));
0x0001fdd8 sltu v1, a0, v0 | v1 = (a0 < v0) ? 1 : 0;
| if (v1 == 0) {
0x0001fddc beql v1, zero, 0x1ff6c | goto label_76;
| }
0x0001fde0 lw t9, -0x7c38(gp) | t9 = sym.iobuf_readbyte;
0x0001fde4 lw v1, 0x10(s6) | v1 = *((s6 + 4));
0x0001fde8 lw a3, 0x14(s6) | a3 = *((s6 + 5));
0x0001fdec addiu a2, v1, 1 | a2 = v1 + 1;
0x0001fdf0 sltu v1, a2, v1 | v1 = (a2 < v1) ? 1 : 0;
0x0001fdf4 lw a1, 0x34(s6) | a1 = *((s6 + 13));
0x0001fdf8 addu v1, v1, a3 | v1 += a3;
0x0001fdfc addiu a3, a0, 1 | a3 = a0 + 1;
0x0001fe00 sw v1, 0x14(s6) | *((s6 + 5)) = v1;
0x0001fe04 sw a2, 0x10(s6) | *((s6 + 4)) = a2;
0x0001fe08 sw a3, 0x2c(s6) | *((s6 + 11)) = a3;
0x0001fe0c lbux a0, a0(a1) | __asm ("lbux a0, a0(a1)");
0x0001fe10 sll v1, a0, 0x10 | v1 = a0 << 0x10;
0x0001fe14 sb a0, 0x4b(sp) | *(var_4bh) = a0;
0x0001fe18 or s7, v1, s7 | s7 = v1 | s7;
| label_28:
0x0001fe1c lw a0, 0x2c(s6) | a0 = *((s6 + 11));
0x0001fe20 sltu v1, a0, v0 | v1 = (a0 < v0) ? 1 : 0;
| if (v1 == 0) {
0x0001fe24 beql v1, zero, 0x1ff3c | goto label_77;
| }
0x0001fe28 lw t9, -0x7c38(gp) | t9 = sym.iobuf_readbyte;
0x0001fe2c lw v1, 0x10(s6) | v1 = *((s6 + 4));
0x0001fe30 lw a3, 0x14(s6) | a3 = *((s6 + 5));
0x0001fe34 addiu a2, v1, 1 | a2 = v1 + 1;
0x0001fe38 sltu v1, a2, v1 | v1 = (a2 < v1) ? 1 : 0;
0x0001fe3c lw a1, 0x34(s6) | a1 = *((s6 + 13));
0x0001fe40 addu v1, v1, a3 | v1 += a3;
0x0001fe44 addiu a3, a0, 1 | a3 = a0 + 1;
0x0001fe48 sw v1, 0x14(s6) | *((s6 + 5)) = v1;
0x0001fe4c sw a2, 0x10(s6) | *((s6 + 4)) = a2;
0x0001fe50 sw a3, 0x2c(s6) | *((s6 + 11)) = a3;
0x0001fe54 lbux a0, a0(a1) | __asm ("lbux a0, a0(a1)");
0x0001fe58 sll v1, a0, 8 | v1 = a0 << 8;
0x0001fe5c sb a0, 0x4c(sp) | *(var_4ch) = a0;
0x0001fe60 or s7, v1, s7 | s7 = v1 | s7;
| label_26:
0x0001fe64 lw a1, 0x2c(s6) | a1 = *((s6 + 11));
0x0001fe68 sltu v0, a1, v0 | v0 = (a1 < v0) ? 1 : 0;
| if (v0 == 0) {
0x0001fe6c beql v0, zero, 0x1ff18 | goto label_78;
| }
0x0001fe70 lw t9, -0x7c38(gp) | t9 = sym.iobuf_readbyte;
0x0001fe74 lw v0, 0x10(s6) | v0 = *((s6 + 4));
0x0001fe78 lw a2, 0x14(s6) | a2 = *((s6 + 5));
0x0001fe7c addiu v1, v0, 1 | v1 = v0 + 1;
0x0001fe80 sltu v0, v1, v0 | v0 = (v1 < v0) ? 1 : 0;
0x0001fe84 lw a0, 0x34(s6) | a0 = *((s6 + 13));
0x0001fe88 addu v0, v0, a2 | v0 += a2;
0x0001fe8c addiu a2, a1, 1 | a2 = a1 + 1;
0x0001fe90 sw v0, 0x14(s6) | *((s6 + 5)) = v0;
0x0001fe94 sw v1, 0x10(s6) | *((s6 + 4)) = v1;
0x0001fe98 sw a2, 0x2c(s6) | *((s6 + 11)) = a2;
0x0001fe9c lbux a0, a1(a0) | __asm ("lbux a0, a1(a0)");
0x0001fea0 move v0, a0 | v0 = a0;
| do {
0x0001fea4 sb a0, 0x4d(sp) | *(var_4dh) = a0;
0x0001fea8 or fp, v0, s7 | fp = v0 | s7;
0x0001feac addiu t1, zero, 6 | t1 = 6;
0x0001feb0 b 0x1e960 | goto label_3;
| label_25:
0x0001ff14 lw t9, -0x7c38(gp) | t9 = sym.iobuf_readbyte;
| label_78:
0x0001ff18 move a0, s6 | a0 = s6;
0x0001ff1c bal 0x3fb3c | sym_iobuf_readbyte ();
0x0001ff20 addiu v1, zero, -1 | v1 = -1;
0x0001ff24 lw gp, 0x28(sp) | gp = *(var_28h);
| if (v0 == v1) {
0x0001ff28 beq v0, v1, 0x21098 | goto label_79;
| }
0x0001ff2c andi a0, v0, 0xff | a0 = v0 & 0xff;
0x0001ff30 andi v0, v0, 0xff | v0 &= 0xff;
0x0001ff34 b 0x1fea4 |
| } while (1);
| label_27:
0x0001ff38 lw t9, -0x7c38(gp) | t9 = sym.iobuf_readbyte;
| label_77:
0x0001ff3c move a0, s6 | a0 = s6;
0x0001ff40 bal 0x3fb3c | sym_iobuf_readbyte ();
0x0001ff44 sll v1, v0, 8 | v1 = v0 << 8;
0x0001ff48 lw a0, 0x20(s6) | a0 = *((s6 + 8));
0x0001ff4c andi v1, v1, 0xffff | v1 &= 0xffff;
0x0001ff50 lw gp, 0x28(sp) | gp = *(var_28h);
0x0001ff54 sb v0, 0x4c(sp) | *(var_4ch) = v0;
0x0001ff58 or s7, v1, s7 | s7 = v1 | s7;
| if (a0 != 0) {
0x0001ff5c bnez a0, 0x1ff14 | goto label_25;
| }
0x0001ff60 lw v0, 0x30(s6) | v0 = *((s6 + 12));
0x0001ff64 b 0x1fe64 | goto label_26;
| label_29:
0x0001ff68 lw t9, -0x7c38(gp) | t9 = sym.iobuf_readbyte;
| label_76:
0x0001ff6c move a0, s6 | a0 = s6;
0x0001ff70 bal 0x3fb3c | sym_iobuf_readbyte ();
0x0001ff74 sll v1, v0, 0x10 | v1 = v0 << 0x10;
0x0001ff78 lui a1, 0xff | a1 = 0xff0000;
0x0001ff7c lw a0, 0x20(s6) | a0 = *((s6 + 8));
0x0001ff80 and v1, v1, a1 | v1 &= a1;
0x0001ff84 lw gp, 0x28(sp) | gp = *(var_28h);
0x0001ff88 sb v0, 0x4b(sp) | *(var_4bh) = v0;
0x0001ff8c or s7, v1, s7 | s7 = v1 | s7;
| if (a0 != 0) {
0x0001ff90 bnez a0, 0x1ff38 | goto label_27;
| }
0x0001ff94 lw v0, 0x30(s6) | v0 = *((s6 + 12));
0x0001ff98 b 0x1fe1c | goto label_28;
| label_75:
0x0001ff9c move a0, s6 | a0 = s6;
0x0001ffa0 bal 0x3fb3c | sym_iobuf_readbyte ();
0x0001ffa4 lw v1, 0x20(s6) | v1 = *((s6 + 8));
0x0001ffa8 lw gp, 0x28(sp) | gp = *(var_28h);
0x0001ffac sb v0, 0x4a(sp) | *(var_4ah) = v0;
0x0001ffb0 sll s7, v0, 0x18 | s7 = v0 << 0x18;
| if (v1 != 0) {
0x0001ffb4 bnez v1, 0x1ff68 | goto label_29;
| }
0x0001ffb8 lw v0, 0x30(s6) | v0 = *((s6 + 12));
0x0001ffbc b 0x1fdd4 | goto label_30;
| label_70:
0x00020074 lw v0, -0x7fb4(gp) | v0 = *((gp - 8173));
0x00020078 sb zero, (s4) | *(s4) = 0;
0x0002007c lw v0, -0x4cac(v0) | v0 = *((v0 - 4907));
| if (v0 == 0) {
0x00020080 beql v0, zero, 0x1e9a0 | goto label_7;
| }
0x00020084 lw s7, 0x3c(s6) | s7 = *((s6 + 15));
0x00020088 lw s1, -0x7fb4(gp) | s1 = *((gp - 8173));
0x0002008c lw v0, 4(s3) | v0 = *((s3 + 1));
0x00020090 lw a0, -0x7fdc(gp) | a0 = *(gp);
0x00020094 lw t9, -0x7848(gp) | t9 = sym.imp.fwrite;
0x00020098 lw a3, -0x4cb0(s1) | a3 = *((s1 - 4908));
0x0002009c addiu a2, zero, 0x12 | a2 = 0x12;
0x000200a0 addiu a1, zero, 1 | a1 = 1;
| /* str.:user_ID_packet:__ */
0x000200a4 addiu a0, a0, 0x6180 | a0 += 0x6180;
0x000200a8 lw s4, 4(v0) | s4 = *((v0 + 1));
0x000200ac jalr t9 | t9 ();
0x000200b0 lw s3, 4(s3) | s3 = *((s3 + 1));
0x000200b4 lw gp, 0x28(sp) | gp = *(var_28h);
0x000200b8 addiu s0, s3, 0x4c | s0 = s3 + 0x4c;
| if (s4 == 0) {
0x000200bc beqz s4, 0x2015c | goto label_80;
| }
0x000200c0 addiu s4, s4, 0x4c | s4 += 0x4c;
0x000200c4 addu s3, s3, s4 | s3 += s4;
0x000200c8 lw s4, -0x7fdc(gp) | s4 = *(gp);
| /* esilref: '\x&x' */
0x000200cc addiu s4, s4, 0x53a0 | s4 += 0x53a0;
0x000200d0 b 0x200f4 |
| while (v0 != 0) {
0x000200d4 lw t9, -0x7840(gp) | t9 = sym.imp._IO_putc;
0x000200d8 move a1, a0 | a1 = a0;
0x000200dc move a0, a3 | a0 = a3;
0x000200e0 jalr t9 | t9 ();
0x000200e4 lw gp, 0x28(sp) | gp = *(var_28h);
| label_31:
0x000200e8 addiu s0, s0, 1 | s0++;
| if (s3 == s0) {
0x000200ec beql s3, s0, 0x20160 | goto label_81;
| }
0x000200f0 lw a0, -0x7fdc(gp) | a0 = *(gp);
0x000200f4 lbu a3, (s0) | a3 = *(s0);
0x000200f8 addiu v0, a3, -0x20 | v0 = a3 + -0x20;
0x000200fc sltiu v0, v0, 0x5b | v0 = (v0 < 0x5b) ? 1 : 0;
0x00020100 lw a0, -0x4cb0(s1) | a0 = *((s1 - 4908));
0x00020104 bnez v0, 0x200d4 |
| }
0x00020108 lw t9, -0x7920(gp) | t9 = sym.imp.__fprintf_chk;
0x0002010c move a2, s4 | a2 = s4;
0x00020110 addiu a1, zero, 1 | a1 = 1;
0x00020114 jalr t9 | t9 ();
0x00020118 lw gp, 0x28(sp) | gp = *(var_28h);
0x0002011c b 0x200e8 | goto label_31;
| label_65:
0x0002013c lw t9, -0x7c38(gp) | t9 = sym.iobuf_readbyte;
| label_66:
0x00020140 sw t0, 0x30(sp) | *(var_30h) = t0;
0x00020144 move a0, s6 | a0 = s6;
0x00020148 bal 0x3fb3c | sym_iobuf_readbyte ();
0x0002014c andi a3, v0, 0xff | a3 = v0 & 0xff;
0x00020150 lw gp, 0x28(sp) | gp = *(var_28h);
0x00020154 lw t0, 0x30(sp) | t0 = *(var_30h);
0x00020158 b 0x1edfc | goto label_32;
| label_80:
0x0002015c lw a0, -0x7fdc(gp) | a0 = *(gp);
| label_81:
0x00020160 lw t9, -0x7848(gp) | t9 = sym.imp.fwrite;
0x00020164 lw a3, -0x4cb0(s1) | a3 = *((s1 - 4908));
0x00020168 addiu a2, zero, 2 | a2 = 2;
0x0002016c addiu a1, zero, 1 | a1 = 1;
| /* esilref: '"
' */
0x00020170 addiu a0, a0, 0x539c | a0 += 0x539c;
0x00020174 jalr t9 | t9 ();
0x00020178 lw gp, 0x28(sp) | gp = *(var_28h);
0x0002017c b 0x1e99c | goto label_8;
| label_59:
0x00020180 lw a0, -0x7fdc(gp) | a0 = *(gp);
0x00020184 lw t9, -0x7f84(gp) | t9 = sym.g10_log_error;
0x00020188 move a2, s0 | a2 = s0;
| /* str._dont_know_ */
0x0002018c addiu a1, a1, 0x5e34 | a1 += 0x5e34;
| /* str._s:_indeterminate_length_for_invalid_packet_type__d_n */
0x00020190 addiu a0, a0, 0x5ef0 | a0 += 0x5ef0;
0x00020194 bal 0x38550 | sym_g10_log_error ();
0x00020198 addiu s7, zero, 0xe | s7 = 0xe;
0x0002019c lw gp, 0x28(sp) | gp = *(var_28h);
0x000201a0 b 0x1e9a8 | goto label_1;
| do {
0x00020204 lw t9, -0x7bc0(gp) | t9 = sym.iobuf_skip_rest;
0x00020208 move a2, zero | a2 = 0;
0x0002020c move a1, fp | a1 = fp;
0x00020210 move a0, s6 | a0 = s6;
0x00020214 jalr t9 | t9 ();
0x00020218 addiu s7, zero, 0xe | s7 = 0xe;
0x0002021c lw gp, 0x28(sp) | gp = *(var_28h);
0x00020220 b 0x1e9a8 | goto label_1;
| label_68:
0x000207a0 lw a0, -0x7fdc(gp) | a0 = *(gp);
0x000207a4 lw t9, -0x7f84(gp) | t9 = sym.g10_log_error;
0x000207a8 move a2, s0 | a2 = s0;
| /* str._dont_know_ */
0x000207ac addiu a1, a1, 0x5e34 | a1 += 0x5e34;
| /* str._s:_partial_length_for_invalid_packet_type__d_n */
0x000207b0 addiu a0, a0, 0x5ec0 | a0 += 0x5ec0;
0x000207b4 bal 0x38550 | sym_g10_log_error ();
0x000207b8 addiu s7, zero, 0xe | s7 = 0xe;
0x000207bc lw gp, 0x28(sp) | gp = *(var_28h);
0x000207c0 b 0x1e9a8 | goto label_1;
| label_69:
0x0002097c lw a0, -0x7fdc(gp) | a0 = *(gp);
0x00020980 lw t9, -0x7f84(gp) | t9 = sym.g10_log_error;
0x00020984 addiu a1, zero, 0xd | a1 = 0xd;
| /* str.packet__d__too_large_n */
0x00020988 addiu a0, a0, 0x5f9c | a0 += 0x5f9c;
0x0002098c bal 0x38550 | sym_g10_log_error ();
0x00020990 lw gp, 0x28(sp) | gp = *(var_28h);
0x00020994 b 0x20204 |
| } while (1);
| do {
0x00020c00 lw t9, -0x7bc0(gp) | t9 = sym.iobuf_skip_rest;
0x00020c04 move a2, zero | a2 = 0;
0x00020c08 move a1, zero | a1 = 0;
0x00020c0c move a0, s6 | a0 = s6;
0x00020c10 jalr t9 | t9 ();
0x00020c14 lw gp, 0x28(sp) | gp = *(var_28h);
0x00020c18 b 0x1e99c | goto label_8;
| label_64:
0x00020d60 lw v0, -0x7fdc(gp) | v0 = *(gp);
0x00020d64 lw a1, 0x54(s6) | a1 = *((s6 + 21));
0x00020d68 addiu s7, zero, 1 | s7 = 1;
0x00020d6c move fp, zero | fp = 0;
0x00020d70 addiu t1, zero, 1 | t1 = 1;
0x00020d74 addiu s1, zero, 8 | s1 = 8;
| /* str.__new_ctb_ */
0x00020d78 addiu v0, v0, 0x5dfc | v0 += 0x5dfc;
0x00020d7c b 0x1ecf0 | goto label_33;
| label_34:
0x00021020 lw t9, -0x7904(gp) | t9 = sym.imp.fputc;
0x00021024 lw a1, -0x4cb0(s1) | a1 = *((s1 - 4908));
0x00021028 addiu a0, zero, 0xa | a0 = 0xa;
0x0002102c jalr t9 | t9 ();
0x00021030 lw gp, 0x28(sp) | gp = *(var_28h);
0x00021034 b 0x20c00 |
| } while (1);
| label_79:
0x00021098 lw a1, -0x7fdc(gp) | a1 = *(gp);
0x0002109c lw a0, -0x7fdc(gp) | a0 = *(gp);
0x000210a0 lw t9, -0x7f84(gp) | t9 = sym.g10_log_error;
| /* str._dont_know_ */
0x000210a4 addiu a1, a1, 0x5e34 | a1 += 0x5e34;
| /* str._s:_4_byte_length_invalid_n */
0x000210a8 addiu a0, a0, 0x5ea4 | a0 += 0x5ea4;
0x000210ac bal 0x38550 | sym_g10_log_error ();
0x000210b0 addiu s7, zero, 0xe | s7 = 0xe;
0x000210b4 lw gp, 0x28(sp) | gp = *(var_28h);
0x000210b8 b 0x1e9a8 | goto label_1;
| label_45:
0x00021210 lw t9, -0x7834(gp) | t9 = sym.imp.__stack_chk_fail;
0x00021214 jalr t9 | t9 ();
0x00021218 nop |
| label_35:
0x0002121c lw a3, -0x7fdc(gp) | a3 = *(gp);
0x00021220 lw a1, -0x7fdc(gp) | a1 = *(gp);
0x00021224 lw a0, -0x7fdc(gp) | a0 = *(gp);
0x00021228 lw t9, -0x7944(gp) | t9 = sym.imp.__assert_fail;
| /* str.parse */
0x0002122c addiu a3, a3, 0x654c | a3 += 0x654c;
0x00021230 addiu a2, zero, 0x146 | a2 = 0x146;
| /* str..._.._gnupg_1.4.7_g10_parse_packet.c */
0x00021234 addiu a1, a1, 0x5d34 | a1 += 0x5d34;
| /* str._pkt__pkt.generic */
0x00021238 addiu a0, a0, 0x5e20 | a0 += 0x5e20;
0x0002123c jalr t9 | t9 ();
| label_42:
0x00021240 lw a0, -0x7fdc(gp) | a0 = *(gp);
0x00021244 lw a1, -0x7fdc(gp) | a1 = *(gp);
0x00021248 lw t9, -0x7f84(gp) | t9 = sym.g10_log_error;
| /* str._s:_garbled_packet_detected_n */
0x0002124c addiu a0, a0, 0x5f28 | a0 += 0x5f28;
| /* str._dont_know_ */
0x00021250 addiu a1, a1, 0x5e34 | a1 += 0x5e34;
0x00021254 bal 0x38550 | sym_g10_log_error ();
0x00021258 lw gp, 0x28(sp) | gp = *(var_28h);
0x0002125c lw t9, -0x7f90(gp) | t9 = sym.g10_exit;
0x00021260 addiu a0, zero, 2 | a0 = 2;
0x00021264 bal 0x62b4 | sym_g10_exit ();
0x00021268 lw a2, -0x7fdc(gp) | a2 = *(gp);
0x0002126c andi a3, v1, 0xf | a3 = v1 & 0xf;
0x00021270 srl v0, v1, 4 | v0 = v1 >> 4;
0x00021274 lw t9, -0x7920(gp) | t9 = sym.imp.__fprintf_chk;
0x00021278 addiu v0, v0, 6 | v0 += 6;
0x0002127c addiu a3, a3, 0x10 | a3 += 0x10;
0x00021280 lw a0, -0x4cb0(s1) | a0 = *((s1 - 4908));
0x00021284 sw v1, 0x10(sp) | *(var_10h) = v1;
0x00021288 sllv a3, a3, v0 | a3 <<= v0;
| /* str.__count__lu___lu_ */
0x0002128c addiu a2, a2, 0x6088 | a2 += 0x6088;
0x00021290 addiu a1, zero, 1 | a1 = 1;
0x00021294 jalr t9 | t9 ();
0x00021298 lw gp, 0x28(sp) | gp = *(var_28h);
0x0002129c b 0x21020 | goto label_34;
| }
; assembly | /* r2dec pseudo code output */
| /* /logs/firmware/unblob_extracted/firmware_extract/4325012-58052244.squashfs_v4_le_extract/usr/bin/gpgv @ 0x38ee4 */
| #include <stdint.h>
|
; (fcn) sym.asctimestamp () | void asctimestamp () {
0x00038ee4 lui gp, 3 |
0x00038ee8 addiu gp, gp, -0x6db4 |
0x00038eec addu gp, gp, t9 | gp += t9;
0x00038ef0 addiu sp, sp, -0x38 |
0x00038ef4 sw s1, 0x28(sp) | *(var_28h) = s1;
0x00038ef8 lw s1, -0x781c(gp) | s1 = *((gp - 7687));
0x00038efc sw gp, 0x10(sp) | *(var_10h) = gp;
0x00038f00 sw ra, 0x34(sp) | *(var_34h) = ra;
0x00038f04 lw v0, (s1) | v0 = *(s1);
0x00038f08 sw s3, 0x30(sp) | *(var_30h) = s3;
0x00038f0c sw s2, 0x2c(sp) | *(var_2ch) = s2;
0x00038f10 sw s0, 0x24(sp) | *(var_24h) = s0;
0x00038f14 sw a0, 0x18(sp) | *(var_18h) = a0;
0x00038f18 sw v0, 0x1c(sp) | *(var_1ch) = v0;
0x00038f1c lw t9, -0x7894(gp) | t9 = sym.imp.localtime;
| if (a0 < 0) {
0x00038f20 bltz a0, 0x38fd0 | goto label_1;
| }
0x00038f24 addiu a0, sp, 0x18 | a0 = sp + 0x18;
0x00038f28 jalr t9 | t9 ();
0x00038f2c lw gp, 0x10(sp) | gp = *(var_10h);
0x00038f30 lui a0, 2 | a0 = 0x20028;
0x00038f34 addiu a0, a0, 0x28 |
0x00038f38 lw t9, -0x78fc(gp) | t9 = sym.imp.nl_langinfo;
0x00038f3c lw s0, -0x7fb4(gp) | s0 = *((gp - 8173));
0x00038f40 move s3, v0 | s3 = v0;
0x00038f44 jalr t9 | t9 ();
0x00038f48 lw gp, 0x10(sp) | gp = *(var_10h);
0x00038f4c addiu a2, zero, 0x2f | a2 = 0x2f;
0x00038f50 move a1, v0 | a1 = v0;
0x00038f54 lw t9, -0x79a4(gp) | t9 = sym.mem2str;
0x00038f58 addiu a0, s0, -0x49ec | a0 = s0 + -0x49ec;
0x00038f5c bal 0x39c70 | sym_mem2str ();
0x00038f60 lw gp, 0x10(sp) | gp = *(var_10h);
0x00038f64 addiu a0, s0, -0x49ec | a0 = s0 + -0x49ec;
0x00038f68 lw a1, -0x7d90(gp) | a1 = *((gp - 8036));
0x00038f6c lw t9, -0x77d4(gp) | t9 = sym.imp.strstr;
| /* esilref: '&Z' */
0x00038f70 addiu a1, a1, -0x7df4 | a1 += -0x7df4;
0x00038f74 jalr t9 | t9 ();
0x00038f78 lw gp, 0x10(sp) | gp = *(var_10h);
| if (v0 == 0) {
0x00038f7c beqz v0, 0x39004 | goto label_2;
| }
| label_0:
0x00038f80 lw s2, -0x7fb4(gp) | s2 = *((gp - 8173));
0x00038f84 lw t9, -0x788c(gp) | t9 = sym.imp.strftime;
0x00038f88 move a3, s3 | a3 = s3;
0x00038f8c addiu a2, s0, -0x49ec | a2 = s0 + -0x49ec;
0x00038f90 addiu a1, zero, 0x31 | a1 = 0x31;
0x00038f94 addiu a0, s2, -0x49b8 | a0 = s2 + -0x49b8;
0x00038f98 jalr t9 | t9 ();
0x00038f9c addiu v0, s2, -0x49b8 | v0 = s2 + -0x49b8;
0x00038fa0 lw gp, 0x10(sp) | gp = *(var_10h);
0x00038fa4 sb zero, 0x31(v0) | *((v0 + 49)) = 0;
| do {
0x00038fa8 lw a0, 0x1c(sp) | a0 = *(var_1ch);
0x00038fac lw v1, (s1) | v1 = *(s1);
0x00038fb0 lw ra, 0x34(sp) | ra = *(var_34h);
| if (a0 != v1) {
0x00038fb4 bne a0, v1, 0x39024 | goto label_3;
| }
0x00038fb8 lw s3, 0x30(sp) | s3 = *(var_30h);
0x00038fbc lw s2, 0x2c(sp) | s2 = *(var_2ch);
0x00038fc0 lw s1, 0x28(sp) | s1 = *(var_28h);
0x00038fc4 lw s0, 0x24(sp) | s0 = *(var_24h);
0x00038fc8 addiu sp, sp, 0x38 |
0x00038fcc jr ra | return v1;
| label_1:
0x00038fd0 lw a0, -0x7fdc(gp) | a0 = *(gp);
0x00038fd4 lw s2, -0x7fb4(gp) | s2 = *((gp - 8173));
| /* str.__________ */
0x00038fd8 addiu v1, a0, 0x5178 | v1 = a0 + 0x5178;
0x00038fdc addiu v0, s2, -0x49b8 | v0 = s2 + -0x49b8;
0x00038fe0 lw a2, 0x5178(a0) | a2 = *((a0 + 5214));
0x00038fe4 lw a1, 4(v1) | a1 = *((v1 + 1));
0x00038fe8 lhu a0, 8(v1) | a0 = *((v1 + 4));
0x00038fec lbu v1, 0xa(v1) | v1 = *((v1 + 10));
0x00038ff0 sw a2, -0x49b8(s2) | *((s2 - 4718)) = a2;
0x00038ff4 sw a1, 4(v0) | *((v0 + 1)) = a1;
0x00038ff8 sh a0, 8(v0) | *((v0 + 4)) = a0;
0x00038ffc sb v1, 0xa(v0) | *((v0 + 10)) = v1;
0x00039000 b 0x38fa8 |
| } while (1);
| label_2:
0x00039004 lw a1, -0x7d90(gp) | a1 = *((gp - 8036));
0x00039008 lw t9, -0x77c4(gp) | t9 = sym.imp.__strcat_chk
0x0003900c addiu a2, zero, 0x32 | a2 = 0x32;
| /* esilref: ' &Z' */
0x00039010 addiu a1, a1, -0x7df0 | a1 += -0x7df0;
0x00039014 addiu a0, s0, -0x49ec | a0 = s0 + -0x49ec;
0x00039018 jalr t9 | t9 ();
0x0003901c lw gp, 0x10(sp) | gp = *(var_10h);
0x00039020 b 0x38f80 | goto label_0;
| label_3:
0x00039024 lw t9, -0x7834(gp) | t9 = sym.imp.__stack_chk_fail;
0x00039028 jalr t9 | t9 ();
0x0003902c nop |
| }
[*] Function strcat used 2 times gpgv