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