[*] Binary protection state of libssh2.so.1.0.1

  
  	Full RELRO     Canary found      NX disabled  DSO          No RPATH     No RUNPATH   No Symbols


[*] Function strcat tear down of libssh2.so.1.0.1

    ; assembly                           | /* r2dec pseudo code output */
                                         | /* /logs/firmware/unblob_extracted/firmware_extract/4325012-58052244.squashfs_v4_le_extract/usr/lib/libssh2.so.1.0.1 @ 0x4594 */
                                         | #include <stdint.h>
                                         |  
    ; (fcn) entry.fini0 ()               | void entry_fini0 () {
    0x00004594 lui gp, 5                 |     
    0x00004598 addiu gp, gp, 0xb7c       |     
    0x0000459c addu gp, gp, t9           |     gp += t9;
    0x000045a0 addiu sp, sp, -0x20       |     
    0x000045a4 sw s0, 0x18(sp)           |     *(var_18h) = s0;
    0x000045a8 lw s0, -0x7fe4(gp)        |     s0 = *((gp - 8185));
    0x000045ac sw gp, 0x10(sp)           |     *(var_10h) = gp;
    0x000045b0 sw ra, 0x1c(sp)           |     *(var_1ch) = ra;
    0x000045b4 lbu v0, -0x29e0(s0)       |     v0 = *((s0 - 10720));
    0x000045b8 lw v0, -0x7c8c(gp)        |     v0 = *((gp - 7971));
                                         |     if (v0 == 0) {
    0x000045bc bnez v0, 0x45f0           |         
    0x000045c0 lw v0, -0x7fe0(gp)        |         v0 = *((gp - 8184));
                                         |         if (v0 != 0) {
    0x000045c4 beqz v0, 0x45d8           |             
    0x000045c8 lw t9, -0x7c8c(gp)        |             t9 = *((gp - 7971));
    0x000045cc lw a0, (v0)               |             a0 = *(v0);
    0x000045d0 jalr t9                   |             t9 ();
    0x000045d4 lw gp, 0x10(sp)           |             gp = *(var_10h);
                                         |         }
    0x000045d8 lw t9, -0x7fdc(gp)        |         t9 = *((gp - 8183));
    0x000045dc addiu t9, t9, 0x4510      |         t9 += entry0;
    0x000045e0 bal 0x4510                |         entry0 ();
    0x000045e4 nop                       |         
    0x000045e8 addiu v0, zero, 1         |         v0 = 1;
    0x000045ec sb v0, -0x29e0(s0)        |         *((s0 - 10720)) = v0;
                                         |     }
    0x000045f0 lw ra, 0x1c(sp)           |     ra = *(var_1ch);
    0x000045f4 lw s0, 0x18(sp)           |     s0 = *(var_18h);
    0x000045f8 addiu sp, sp, 0x20        |     
    0x000045fc jr ra                     |     return v0;
                                         | }
    ; assembly                               | /* r2dec pseudo code output */
                                             | /* /logs/firmware/unblob_extracted/firmware_extract/4325012-58052244.squashfs_v4_le_extract/usr/lib/libssh2.so.1.0.1 @ 0x30d30 */
                                             | #include <stdint.h>
                                             |  
    ; (fcn) fcn.00030d30 ()                  | void fcn_00030d30 () {
    0x00030d30 lui gp, 2                     |     
    0x00030d34 addiu gp, gp, 0x43e0          |     
    0x00030d38 addu gp, gp, t9               |     gp += t9;
    0x00030d3c addiu sp, sp, -0xd0           |     
    0x00030d40 sw s1, 0xac(sp)               |     *(var_ach) = s1;
    0x00030d44 lw s1, -0x7cd4(gp)            |     s1 = *((gp - 7989));
    0x00030d48 sw s2, 0xb0(sp)               |     *(var_b0h) = s2;
    0x00030d4c lw s2, 0xe0(sp)               |     s2 = *(arg_e0h);
    0x00030d50 lw v0, (s1)                   |     v0 = *(s1);
    0x00030d54 sw gp, 0x20(sp)               |     *(var_20h) = gp;
    0x00030d58 sw s5, 0xbc(sp)               |     *(var_bch) = s5;
    0x00030d5c sw s0, 0xa8(sp)               |     *(var_a8h) = s0;
    0x00030d60 sw ra, 0xcc(sp)               |     *(var_cch) = ra;
    0x00030d64 sw fp, 0xc8(sp)               |     *(var_c8h) = fp;
    0x00030d68 sw s7, 0xc4(sp)               |     *(var_c4h) = s7;
    0x00030d6c sw s6, 0xc0(sp)               |     *(var_c0h) = s6;
    0x00030d70 sw s4, 0xb8(sp)               |     *(var_b8h) = s4;
    0x00030d74 sw s3, 0xb4(sp)               |     *(var_b4h) = s3;
    0x00030d78 move s0, a0                   |     s0 = a0;
    0x00030d7c move s5, a1                   |     s5 = a1;
    0x00030d80 sw v0, 0xa4(sp)               |     *(var_a4h) = v0;
    0x00030d84 sw zero, 0x44(sp)             |     *(var_44h) = 0;
    0x00030d88 sw zero, 0x48(sp)             |     *(var_48h) = 0;
    0x00030d8c sw zero, 0x4c(sp)             |     *(var_4ch) = 0;
    0x00030d90 sw zero, 0x50(sp)             |     *(var_50h) = 0;
    0x00030d94 sw zero, 0x54(sp)             |     *(var_54h) = 0;
    0x00030d98 sw zero, 0x5c(sp)             |     *(var_5ch) = 0;
    0x00030d9c sw zero, 0x60(sp)             |     *(var_60h) = 0;
    0x00030da0 sw zero, 0x64(sp)             |     *(var_64h) = 0;
    0x00030da4 sw zero, 0x68(sp)             |     *(var_68h) = 0;
    0x00030da8 sw zero, 0x6c(sp)             |     *(var_6ch) = 0;
    0x00030dac sw zero, 0x70(sp)             |     *(var_70h) = 0;
                                             |     if (s2 != 0) {
    0x00030db0 beqz s2, 0x30db8              |         
    0x00030db4 sw zero, (s2)                 |         *(s2) = 0;
                                             |     }
    0x00030db8 lw t9, -0x7cc4(gp)            |     t9 = *((gp - 7985));
    0x00030dbc sw a3, 0x10(sp)               |     *(var_10h) = a3;
    0x00030dc0 addiu a1, sp, 0x60            |     a1 = sp + 0x60;
    0x00030dc4 move a3, a2                   |     a3 = a2;
    0x00030dc8 move a0, s0                   |     a0 = s0;
    0x00030dcc addiu a2, sp, 0x64            |     a2 = sp + 0x64;
    0x00030dd0 jalr t9                       |     t9 ();
    0x00030dd4 lw gp, 0x20(sp)               |     gp = *(var_20h);
                                             |     if (v0 != 0) {
    0x00030dd8 bnez v0, 0x31258              |         goto label_8;
                                             |     }
    0x00030ddc lw v0, 0x64(sp)               |     v0 = *(var_64h);
    0x00030de0 lw s3, 0x60(sp)               |     s3 = *(var_60h);
    0x00030de4 sltiu v1, v0, 0xe             |     v1 = (v0 < 0xe) ? 1 : 0;
    0x00030de8 sw s3, 0x80(sp)               |     *(var_80h) = s3;
    0x00030dec sw s3, 0x84(sp)               |     *(var_84h) = s3;
    0x00030df0 sw v0, 0x88(sp)               |     *(var_88h) = v0;
                                             |     if (v1 != 0) {
    0x00030df4 bnez v1, 0x30fbc              |         goto label_9;
                                             |     }
    0x00030df8 lw a1, -0x7f74(gp)            |     a1 = *((gp - 8157));
    0x00030dfc lw t9, -0x7d90(gp)            |     t9 = *((gp - 8036));
    0x00030e00 addiu a2, zero, 0xe           |     a2 = 0xe;
    0x00030e04 addiu a1, a1, -0x4df8         |     a1 += -0x4df8;
    0x00030e08 move a0, s3                   |     a0 = s3;
    0x00030e0c jalr t9                       |     t9 ();
    0x00030e10 lw gp, 0x20(sp)               |     gp = *(var_20h);
                                             |     if (v0 != 0) {
    0x00030e14 bnez v0, 0x30fac              |         goto label_10;
                                             |     }
    0x00030e18 lw t9, -0x7f44(gp)            |     t9 = *((gp - 8145));
    0x00030e1c addiu s6, sp, 0x6c            |     s6 = sp + 0x6c;
    0x00030e20 addiu s4, sp, 0x80            |     s4 = sp + 0x80;
    0x00030e24 addiu s3, s3, 0xf             |     s3 += 0xf;
    0x00030e28 move a2, s6                   |     a2 = s6;
    0x00030e2c addiu a1, sp, 0x44            |     a1 = sp + 0x44;
    0x00030e30 move a0, s4                   |     a0 = s4;
    0x00030e34 sw s3, 0x84(sp)               |     *(var_84h) = s3;
    0x00030e38 bal 0x14fe4                   |     fcn_00014fe4 ();
    0x00030e3c lw gp, 0x20(sp)               |     gp = *(var_20h);
                                             |     if (v0 == 0) {
    0x00030e40 bnez v0, 0x30f24              |         
    0x00030e44 lw v0, 0x6c(sp)               |         v0 = *(var_6ch);
    0x00030e48 lw a2, -0x7f74(gp)            |         a2 = *((gp - 8157));
                                             |         if (v0 != 0) {
    0x00030e4c beqz v0, 0x30f28              |             
    0x00030e50 lw t9, -0x7f44(gp)            |             t9 = *((gp - 8145));
    0x00030e54 move a2, s6                   |             a2 = s6;
    0x00030e58 addiu a1, sp, 0x48            |             a1 = sp + 0x48;
    0x00030e5c move a0, s4                   |             a0 = s4;
    0x00030e60 bal 0x14fe4                   |             fcn_00014fe4 ();
    0x00030e64 lw gp, 0x20(sp)               |             gp = *(var_20h);
                                             |             if (v0 != 0) {
    0x00030e68 bnez v0, 0x30fcc              |                 goto label_11;
                                             |             }
    0x00030e6c lw v0, 0x6c(sp)               |             v0 = *(var_6ch);
    0x00030e70 lw a2, -0x7f74(gp)            |             a2 = *((gp - 8157));
                                             |             if (v0 == 0) {
    0x00030e74 beqz v0, 0x30fd0              |                 goto label_12;
                                             |             }
    0x00030e78 lw t9, -0x7f44(gp)            |             t9 = *((gp - 8145));
    0x00030e7c addiu a2, sp, 0x68            |             a2 = sp + 0x68;
    0x00030e80 addiu a1, sp, 0x4c            |             a1 = sp + 0x4c;
    0x00030e84 move a0, s4                   |             a0 = s4;
    0x00030e88 bal 0x14fe4                   |             fcn_00014fe4 ();
    0x00030e8c lw gp, 0x20(sp)               |             gp = *(var_20h);
                                             |             if (v0 != 0) {
    0x00030e90 bnez v0, 0x31040              |                 goto label_13;
                                             |             }
    0x00030e94 lw v0, 0x4c(sp)               |             v0 = *(var_4ch);
    0x00030e98 sw v0, 0x98(sp)               |             *(var_98h) = v0;
    0x00030e9c sw v0, 0x9c(sp)               |             *(var_9ch) = v0;
    0x00030ea0 lw v0, 0x68(sp)               |             v0 = *(var_68h);
    0x00030ea4 sw v0, 0xa0(sp)               |             *(var_a0h) = v0;
                                             |             if (s5 == 0) {
    0x00030ea8 beqz s5, 0x30fdc              |                 goto label_14;
                                             |             }
    0x00030eac lb v0, (s5)                   |             v0 = *(s5);
    0x00030eb0 lw s3, -0x7fcc(gp)            |             s3 = *((gp - 8179));
                                             |             if (v0 == 0) {
    0x00030eb4 beqz v0, 0x30fe0              |                 goto label_15;
                                             |             }
    0x00030eb8 lw s7, 0x48(sp)               |             s7 = *(var_48h);
    0x00030ebc lw t9, -0x7ddc(gp)            |             t9 = *((gp - 8055));
    0x00030ec0 addiu a1, s3, 0x65c4          |             a1 = s3 + 0x65c4;
    0x00030ec4 move a0, s7                   |             a0 = s7;
    0x00030ec8 jalr t9                       |             t9 ();
    0x00030ecc lw gp, 0x20(sp)               |             gp = *(var_20h);
                                             |             if (v0 != 0) {
    0x00030ed0 bnez v0, 0x31014              |                 goto label_16;
                                             |             }
    0x00030ed4 lw t9, -0x7ddc(gp)            |             t9 = *((gp - 8055));
    0x00030ed8 lw a0, 0x44(sp)               |             a0 = *(var_44h);
    0x00030edc addiu a1, s3, 0x65c4          |             a1 = s3 + 0x65c4;
    0x00030ee0 jalr t9                       |             t9 ();
    0x00030ee4 lw gp, 0x20(sp)               |             gp = *(var_20h);
                                             |             if (v0 != 0) {
    0x00030ee8 bnez v0, 0x31270              |                 goto label_17;
                                             |             }
                                             | label_1:
    0x00030eec lw t9, -0x7f0c(gp)            |             t9 = *((gp - 8131));
    0x00030ef0 addiu a1, sp, 0x58            |             a1 = sp + 0x58;
    0x00030ef4 move a0, s4                   |             a0 = s4;
    0x00030ef8 bal 0x14ef0                   |             fcn_00014ef0 ();
    0x00030efc lw gp, 0x20(sp)               |             gp = *(var_20h);
                                             |             if (v0 == 0) {
    0x00030f00 bnez v0, 0x30f14              |                 
    0x00030f04 lw v1, 0x58(sp)               |                 v1 = *(var_58h);
    0x00030f08 addiu v0, zero, 1             |                 v0 = 1;
                                             |                 if (v1 == v0) {
    0x00030f0c beql v1, v0, 0x31050          |                     goto label_18;
                                             |                 }
    0x00030f10 lw t9, -0x7f44(gp)            |                 t9 = *((gp - 8145));
                                             |             }
    0x00030f14 lw a2, -0x7f74(gp)            |             a2 = *((gp - 8157));
    0x00030f18 lw t9, -0x7fd0(gp)            |             t9 = *(gp);
    0x00030f1c addiu a2, a2, -0x4d6c         |             a2 += -0x4d6c;
    0x00030f20 b 0x30f30                     |             
                                             |         } else {
    0x00030f24 lw a2, -0x7f74(gp)            |             a2 = *((gp - 8157));
                                             |         }
    0x00030f28 lw t9, -0x7fd0(gp)            |         t9 = *(gp);
    0x00030f2c addiu a2, a2, -0x4dd0         |         a2 += -0x4dd0;
                                             |     }
                                             |     do {
                                             | label_0:
    0x00030f30 addiu a1, zero, -0xe          |         a1 = -0xe;
    0x00030f34 move a0, s0                   |         a0 = s0;
    0x00030f38 bal 0x145ac                   |         fcn_000145ac ();
    0x00030f3c lw gp, 0x20(sp)               |         gp = *(var_20h);
    0x00030f40 move fp, v0                   |         fp = v0;
                                             | label_2:
    0x00030f44 lw a0, 0x60(sp)               |         a0 = *(var_60h);
    0x00030f48 lw t9, -0x7ed4(gp)            |         t9 = *((gp - 8117));
                                             |         if (a0 != 0) {
    0x00030f4c beqz a0, 0x30f6c              |             
    0x00030f50 lw a1, 0x64(sp)               |             a1 = *(var_64h);
    0x00030f54 bal 0x14e24                   |             fcn_00014e24 ();
    0x00030f58 lw t9, 0xc(s0)                |             t9 = *((s0 + 3));
    0x00030f5c lw a0, 0x60(sp)               |             a0 = *(var_60h);
    0x00030f60 move a1, s0                   |             a1 = s0;
    0x00030f64 jalr t9                       |             t9 ();
    0x00030f68 lw gp, 0x20(sp)               |             gp = *(var_20h);
                                             |         }
    0x00030f6c lw a0, 0xa4(sp)               |         a0 = *(var_a4h);
    0x00030f70 lw v1, (s1)                   |         v1 = *(s1);
    0x00030f74 move v0, fp                   |         v0 = fp;
                                             |         if (a0 != v1) {
    0x00030f78 bne a0, v1, 0x3157c           |             goto label_19;
                                             |         }
    0x00030f7c lw ra, 0xcc(sp)               |         ra = *(var_cch);
    0x00030f80 lw fp, 0xc8(sp)               |         fp = *(var_c8h);
    0x00030f84 lw s7, 0xc4(sp)               |         s7 = *(var_c4h);
    0x00030f88 lw s6, 0xc0(sp)               |         s6 = *(var_c0h);
    0x00030f8c lw s5, 0xbc(sp)               |         s5 = *(var_bch);
    0x00030f90 lw s4, 0xb8(sp)               |         s4 = *(var_b8h);
    0x00030f94 lw s3, 0xb4(sp)               |         s3 = *(var_b4h);
    0x00030f98 lw s2, 0xb0(sp)               |         s2 = *(var_b0h);
    0x00030f9c lw s1, 0xac(sp)               |         s1 = *(var_ach);
    0x00030fa0 lw s0, 0xa8(sp)               |         s0 = *(var_a8h);
    0x00030fa4 addiu sp, sp, 0xd0            |         
    0x00030fa8 jr ra                         |         return v1;
                                             | label_10:
    0x00030fac lw a2, -0x7f74(gp)            |         a2 = *((gp - 8157));
    0x00030fb0 lw t9, -0x7fd0(gp)            |         t9 = *(gp);
    0x00030fb4 addiu a2, a2, -0x4de8         |         a2 += -0x4de8;
    0x00030fb8 b 0x30f30                     |         
                                             |     } while (1);
                                             | label_9:
    0x00030fbc lw a2, -0x7f74(gp)            |     a2 = *((gp - 8157));
    0x00030fc0 lw t9, -0x7fd0(gp)            |     t9 = *(gp);
    0x00030fc4 addiu a2, a2, -0x4e08         |     a2 += -0x4e08;
    0x00030fc8 b 0x30f30                     |     goto label_0;
                                             | label_11:
    0x00030fcc lw a2, -0x7f74(gp)            |     a2 = *((gp - 8157));
                                             | label_12:
    0x00030fd0 lw t9, -0x7fd0(gp)            |     t9 = *(gp);
    0x00030fd4 addiu a2, a2, -0x4db8         |     a2 += -0x4db8;
    0x00030fd8 b 0x30f30                     |     goto label_0;
                                             | label_14:
    0x00030fdc lw s3, -0x7fcc(gp)            |     s3 = *((gp - 8179));
                                             | label_15:
    0x00030fe0 lw t9, -0x7ddc(gp)            |     t9 = *((gp - 8055));
    0x00030fe4 lw a0, 0x44(sp)               |     a0 = *(var_44h);
    0x00030fe8 addiu a1, s3, 0x65c4          |     a1 = s3 + 0x65c4;
    0x00030fec jalr t9                       |     t9 ();
    0x00030ff0 lw gp, 0x20(sp)               |     gp = *(var_20h);
                                             |     if (v0 != 0) {
    0x00030ff4 bnez v0, 0x31574              |         goto label_20;
                                             |     }
    0x00030ff8 lw s7, 0x48(sp)               |     s7 = *(var_48h);
    0x00030ffc lw t9, -0x7ddc(gp)            |     t9 = *((gp - 8055));
    0x00031000 addiu a1, s3, 0x65c4          |     a1 = s3 + 0x65c4;
    0x00031004 move a0, s7                   |     a0 = s7;
    0x00031008 jalr t9                       |     t9 ();
    0x0003100c lw gp, 0x20(sp)               |     gp = *(var_20h);
                                             |     if (v0 == 0) {
    0x00031010 beqz v0, 0x30eec              |         goto label_1;
                                             |     }
                                             | label_16:
    0x00031014 lw a1, -0x7f74(gp)            |     a1 = *((gp - 8157));
    0x00031018 lw t9, -0x7ddc(gp)            |     t9 = *((gp - 8055));
    0x0003101c addiu a1, a1, -0x4d94         |     a1 += -0x4d94;
    0x00031020 move a0, s7                   |     a0 = s7;
    0x00031024 jalr t9                       |     t9 ();
    0x00031028 lw gp, 0x20(sp)               |     gp = *(var_20h);
                                             |     if (v0 == 0) {
    0x0003102c beqz v0, 0x30eec              |         goto label_1;
                                             |     }
    0x00031030 lw a2, -0x7f74(gp)            |     a2 = *((gp - 8157));
    0x00031034 lw t9, -0x7fd0(gp)            |     t9 = *(gp);
    0x00031038 addiu a2, a2, -0x4d8c         |     a2 += -0x4d8c;
    0x0003103c b 0x30f30                     |     goto label_0;
                                             | label_13:
    0x00031040 lw a2, -0x7f74(gp)            |     a2 = *((gp - 8157));
    0x00031044 lw t9, -0x7fd0(gp)            |     t9 = *(gp);
    0x00031048 addiu a2, a2, -0x4da4         |     a2 += -0x4da4;
    0x0003104c b 0x30f30                     |     goto label_0;
                                             | label_18:
    0x00031050 addiu s7, sp, 0x50            |     s7 = sp + 0x50;
    0x00031054 move a2, s6                   |     a2 = s6;
    0x00031058 move a1, s7                   |     a1 = s7;
    0x0003105c move a0, s4                   |     a0 = s4;
    0x00031060 bal 0x14fe4                   |     fcn_00014fe4 ();
    0x00031064 lw gp, 0x20(sp)               |     gp = *(var_20h);
                                             |     if (v0 != 0) {
    0x00031068 bnez v0, 0x31260              |         goto label_21;
                                             |     }
    0x0003106c lw v0, 0x6c(sp)               |     v0 = *(var_6ch);
    0x00031070 lw a2, -0x7f74(gp)            |     a2 = *((gp - 8157));
                                             |     if (v0 == 0) {
    0x00031074 beqz v0, 0x31264              |         goto label_22;
                                             |     }
    0x00031078 lw t9, -0x7f44(gp)            |     t9 = *((gp - 8145));
    0x0003107c move a2, s6                   |     a2 = s6;
    0x00031080 move a1, s7                   |     a1 = s7;
    0x00031084 move a0, s4                   |     a0 = s4;
    0x00031088 bal 0x14fe4                   |     fcn_00014fe4 ();
    0x0003108c move s6, v0                   |     s6 = v0;
    0x00031090 lw gp, 0x20(sp)               |     gp = *(var_20h);
                                             |     if (v0 != 0) {
    0x00031094 bnez v0, 0x31280              |         goto label_23;
                                             |     }
    0x00031098 lw v0, 0x6c(sp)               |     v0 = *(var_6ch);
    0x0003109c lw v1, 0x50(sp)               |     v1 = *(var_50h);
                                             |     if (v0 == 0) {
    0x000310a0 beqz v0, 0x31280              |         goto label_23;
                                             |     }
    0x000310a4 lw s4, 0x44(sp)               |     s4 = *(var_44h);
    0x000310a8 sw v1, 0x90(sp)               |     *(var_90h) = v1;
    0x000310ac sw v1, 0x8c(sp)               |     *(var_8ch) = v1;
    0x000310b0 sw v0, 0x94(sp)               |     *(var_94h) = v0;
                                             |     if (s4 == 0) {
    0x000310b4 beqz s4, 0x31558              |         goto label_24;
                                             |     }
    0x000310b8 lw t9, -0x7ddc(gp)            |     t9 = *((gp - 8055));
    0x000310bc addiu a1, s3, 0x65c4          |     a1 = s3 + 0x65c4;
    0x000310c0 move a0, s4                   |     a0 = s4;
    0x000310c4 jalr t9                       |     t9 ();
    0x000310c8 move s6, v0                   |     s6 = v0;
    0x000310cc lw gp, 0x20(sp)               |     gp = *(var_20h);
                                             |     if (v0 != 0) {
    0x000310d0 bnez v0, 0x31290              |         goto label_25;
                                             |     }
    0x000310d4 addiu v0, sp, 0x78            |     v0 = sp + 0x78;
    0x000310d8 move v1, zero                 |     v1 = 0;
    0x000310dc move s7, zero                 |     s7 = 0;
    0x000310e0 move s5, zero                 |     s5 = 0;
    0x000310e4 move s3, zero                 |     s3 = 0;
    0x000310e8 move s4, zero                 |     s4 = 0;
    0x000310ec sw v0, 0x2c(sp)               |     *(var_2ch) = v0;
                                             | label_4:
    0x000310f0 lw t9, -0x7f0c(gp)            |     t9 = *((gp - 8131));
    0x000310f4 addiu fp, sp, 0x8c            |     fp = sp + 0x8c;
    0x000310f8 lw a1, 0x2c(sp)               |     a1 = *(var_2ch);
    0x000310fc sw v1, 0x30(sp)               |     *(var_30h) = v1;
    0x00031100 move a0, fp                   |     a0 = fp;
    0x00031104 bal 0x14ef0                   |     fcn_00014ef0 ();
    0x00031108 lw gp, 0x20(sp)               |     gp = *(var_20h);
    0x0003110c lw v1, 0x30(sp)               |     v1 = *(var_30h);
                                             |     if (v0 != 0) {
    0x00031110 bnez v0, 0x3162c              |         goto label_26;
                                             |     }
    0x00031114 lw t9, -0x7f0c(gp)            |     t9 = *((gp - 8131));
    0x00031118 sw v1, 0x2c(sp)               |     *(var_2ch) = v1;
    0x0003111c move a0, fp                   |     a0 = fp;
    0x00031120 addiu a1, sp, 0x7c            |     a1 = sp + 0x7c;
    0x00031124 bal 0x14ef0                   |     fcn_00014ef0 ();
    0x00031128 move fp, v0                   |     fp = v0;
    0x0003112c lw gp, 0x20(sp)               |     gp = *(var_20h);
    0x00031130 lw v1, 0x2c(sp)               |     v1 = *(var_2ch);
                                             |     if (v0 != 0) {
    0x00031134 bnez v0, 0x3162c              |         goto label_26;
                                             |     }
    0x00031138 lw a0, 0x78(sp)               |     a0 = *(var_78h);
    0x0003113c lw v0, 0x7c(sp)               |     v0 = *(var_7ch);
    0x00031140 lw a2, -0x7f74(gp)            |     a2 = *((gp - 8157));
                                             |     if (a0 != v0) {
    0x00031144 bne a0, v0, 0x31630           |         goto label_27;
                                             |     }
    0x00031148 lw t9, -0x7e2c(gp)            |     t9 = *((gp - 8075));
                                             |     if (s2 != 0) {
    0x0003114c beqz s2, 0x311dc              |         
    0x00031150 move a0, s0                   |         a0 = s0;
    0x00031154 bal 0x14e48                   |         fcn_00014e48 ();
    0x00031158 lw gp, 0x20(sp)               |         gp = *(var_20h);
    0x0003115c lw v1, 0x2c(sp)               |         v1 = *(var_2ch);
                                             |         if (v0 == 0) {
    0x00031160 beqz v0, 0x31588              |             goto label_28;
                                             |         }
    0x00031164 lw t9, -0x7fa8(gp)            |         t9 = *((gp - 8170));
    0x00031168 lw a1, 0x94(sp)               |         a1 = *(var_94h);
    0x0003116c sw v1, 0x2c(sp)               |         *(var_2ch) = v1;
    0x00031170 sw v0, 0x30(sp)               |         *(var_30h) = v0;
    0x00031174 move a0, s0                   |         a0 = s0;
    0x00031178 bal 0x14d54                   |         fcn_00014d54 ();
    0x0003117c lw a3, 0x30(sp)               |         a3 = *(var_30h);
    0x00031180 lw gp, 0x20(sp)               |         gp = *(var_20h);
    0x00031184 lw v1, 0x2c(sp)               |         v1 = *(var_2ch);
    0x00031188 sw v0, (a3)                   |         *(a3) = v0;
                                             |         if (v0 == 0) {
    0x0003118c beqz v0, 0x31658              |             goto label_29;
                                             |         }
    0x00031190 lw t9, -0x7c98(gp)            |         t9 = *((gp - 7974));
    0x00031194 lw a1, 0x8c(sp)               |         a1 = *(var_8ch);
    0x00031198 lw a2, 0x94(sp)               |         a2 = *(var_94h);
    0x0003119c sw a3, 0x30(sp)               |         *(var_30h) = a3;
    0x000311a0 sw v1, 0x2c(sp)               |         *(var_2ch) = v1;
    0x000311a4 move a0, v0                   |         a0 = v0;
    0x000311a8 jalr t9                       |         t9 ();
    0x000311ac lw a3, 0x30(sp)               |         a3 = *(var_30h);
    0x000311b0 lw a0, 0x90(sp)               |         a0 = *(var_90h);
    0x000311b4 lw a1, 0x8c(sp)               |         a1 = *(var_8ch);
    0x000311b8 lw v0, (a3)                   |         v0 = *(a3);
    0x000311bc subu a0, a0, a1               |         __asm ("subu a0, a0, a1");
    0x000311c0 lw a1, 0x94(sp)               |         a1 = *(var_94h);
    0x000311c4 addu v0, v0, a0               |         v0 += a0;
    0x000311c8 lw v1, 0x2c(sp)               |         v1 = *(var_2ch);
    0x000311cc lw gp, 0x20(sp)               |         gp = *(var_20h);
    0x000311d0 sw v0, 4(a3)                  |         *((a3 + 1)) = v0;
    0x000311d4 sw a1, 8(a3)                  |         *((a3 + 2)) = a1;
    0x000311d8 sw a3, (s2)                   |         *(s2) = a3;
                                             |     }
                                             | label_5:
    0x000311dc lw t9, -0x7ed4(gp)            |     t9 = *((gp - 8117));
                                             |     if (s4 != 0) {
    0x000311e0 beqz s4, 0x31204              |         
    0x000311e4 move a1, v1                   |         a1 = v1;
    0x000311e8 move a0, s4                   |         a0 = s4;
    0x000311ec bal 0x14e24                   |         fcn_00014e24 ();
    0x000311f0 lw t9, 0xc(s0)                |         t9 = *((s0 + 3));
    0x000311f4 move a1, s0                   |         a1 = s0;
    0x000311f8 move a0, s4                   |         a0 = s4;
    0x000311fc jalr t9                       |         t9 ();
    0x00031200 lw gp, 0x20(sp)               |         gp = *(var_20h);
                                             |     }
    0x00031204 lw t9, -0x7ed4(gp)            |     t9 = *((gp - 8117));
                                             |     if (s3 != 0) {
    0x00031208 beqz s3, 0x3122c              |         
    0x0003120c move a1, s6                   |         a1 = s6;
    0x00031210 move a0, s3                   |         a0 = s3;
    0x00031214 bal 0x14e24                   |         fcn_00014e24 ();
    0x00031218 lw t9, 0xc(s0)                |         t9 = *((s0 + 3));
    0x0003121c move a1, s0                   |         a1 = s0;
    0x00031220 move a0, s3                   |         a0 = s3;
    0x00031224 jalr t9                       |         t9 ();
    0x00031228 lw gp, 0x20(sp)               |         gp = *(var_20h);
                                             |     }
    0x0003122c lw t9, -0x7ed4(gp)            |     t9 = *((gp - 8117));
                                             |     if (s5 == 0) {
    0x00031230 beqz s5, 0x30f44              |         goto label_2;
                                             |     }
    0x00031234 move a1, s7                   |     a1 = s7;
    0x00031238 move a0, s5                   |     a0 = s5;
    0x0003123c bal 0x14e24                   |     fcn_00014e24 ();
    0x00031240 lw t9, 0xc(s0)                |     t9 = *((s0 + 3));
    0x00031244 move a1, s0                   |     a1 = s0;
    0x00031248 move a0, s5                   |     a0 = s5;
    0x0003124c jalr t9                       |     t9 ();
    0x00031250 lw gp, 0x20(sp)               |     gp = *(var_20h);
    0x00031254 b 0x30f44                     |     goto label_2;
                                             | label_8:
    0x00031258 addiu fp, zero, -1            |     fp = -1;
    0x0003125c b 0x30f44                     |     goto label_2;
                                             | label_21:
    0x00031260 lw a2, -0x7f74(gp)            |     a2 = *((gp - 8157));
                                             | label_22:
    0x00031264 lw t9, -0x7fd0(gp)            |     t9 = *(gp);
    0x00031268 addiu a2, a2, -0x4d4c         |     a2 += -0x4d4c;
    0x0003126c b 0x30f30                     |     goto label_0;
                                             | label_17:
    0x00031270 lw a2, -0x7f74(gp)            |     a2 = *((gp - 8157));
    0x00031274 lw t9, -0x7fd0(gp)            |     t9 = *(gp);
    0x00031278 addiu a2, a2, -0x4d7c         |     a2 += -0x4d7c;
    0x0003127c b 0x30f30                     |     goto label_0;
                                             | label_23:
    0x00031280 lw a2, -0x7f74(gp)            |     a2 = *((gp - 8157));
    0x00031284 lw t9, -0x7fd0(gp)            |     t9 = *(gp);
    0x00031288 addiu a2, a2, -0x4d1c         |     a2 += -0x4d1c;
    0x0003128c b 0x30f30                     |     goto label_0;
                                             | label_25:
    0x00031290 lw t9, -0x7d2c(gp)            |     t9 = *((gp - 8011));
    0x00031294 move fp, zero                 |     fp = 0;
    0x00031298 jalr t9                       |     t9 ();
    0x0003129c lw gp, 0x20(sp)               |     gp = *(var_20h);
    0x000312a0 lw s7, 0x44(sp)               |     s7 = *(var_44h);
    0x000312a4 move s3, v0                   |     s3 = v0;
    0x000312a8 addiu s3, s3, 4               |     s3 += 4;
                                             |     do {
    0x000312ac lw s4, -4(s3)                 |         s4 = *((s3 - 1));
                                             |         if (s4 == 0) {
    0x000312b0 beqz s4, 0x31300              |             goto label_30;
                                             |         }
    0x000312b4 nop                           |         
                                             | label_3:
    0x000312b8 lw s6, (s4)                   |         s6 = *(s4);
    0x000312bc lb v0, (s6)                   |         v0 = *(s6);
    0x000312c0 beql v0, zero, 0x312ac        |         
                                             |     } while (v0 == 0);
    0x000312c4 addiu s3, s3, 4               |     s3 += 4;
    0x000312c8 lw t9, -0x7c9c(gp)            |     t9 = *((gp - 7975));
    0x000312cc move a0, s6                   |     a0 = s6;
    0x000312d0 jalr t9                       |     t9 ();
    0x000312d4 lw gp, 0x20(sp)               |     gp = *(var_20h);
    0x000312d8 move a2, v0                   |     a2 = v0;
    0x000312dc move a1, s6                   |     a1 = s6;
    0x000312e0 lw t9, -0x7b4c(gp)            |     t9 = *((gp - 7891));
    0x000312e4 move a0, s7                   |     a0 = s7;
    0x000312e8 addiu s3, s3, 4               |     s3 += 4;
    0x000312ec jalr t9                       |     t9 ();
                                             |     if (v0 != 0) {
    0x000312f0 movz fp, s4, v0               |         fp = s4;
                                             |     }
    0x000312f4 lw s4, -4(s3)                 |     s4 = *((s3 - 1));
    0x000312f8 lw gp, 0x20(sp)               |     gp = *(var_20h);
                                             |     if (s4 != 0) {
    0x000312fc bnez s4, 0x312b8              |         goto label_3;
                                             |     }
                                             | label_30:
    0x00031300 move a0, s0                   |     a0 = s0;
                                             |     if (fp == 0) {
    0x00031304 beqz fp, 0x3161c              |         goto label_31;
                                             |     }
    0x00031308 sw zero, 0x78(sp)             |     *(var_78h) = 0;
    0x0003130c lw s6, 0x10(fp)               |     s6 = *(arg_e0h);
    0x00031310 lw s7, 0xc(fp)                |     s7 = *(arg_ch);
    0x00031314 lw t9, -0x7fa8(gp)            |     t9 = *((gp - 8170));
    0x00031318 addu v1, s6, s7               |     v1 = s6 + s7;
    0x0003131c move a1, v1                   |     a1 = v1;
    0x00031320 sw v1, 0x2c(sp)               |     *(var_2ch) = v1;
    0x00031324 sw zero, 0x74(sp)             |     *(var_74h) = 0;
    0x00031328 sw zero, 0x7c(sp)             |     *(var_7ch) = 0;
    0x0003132c bal 0x14d54                   |     fcn_00014d54 ();
    0x00031330 move s4, v0                   |     s4 = v0;
    0x00031334 lw gp, 0x20(sp)               |     gp = *(var_20h);
    0x00031338 lw v1, 0x2c(sp)               |     v1 = *(var_2ch);
                                             |     if (v0 == 0) {
    0x0003133c beqz v0, 0x3160c              |         goto label_32;
                                             |     }
    0x00031340 lw a1, -0x7f74(gp)            |     a1 = *((gp - 8157));
    0x00031344 lw t9, -0x7ddc(gp)            |     t9 = *((gp - 8055));
    0x00031348 lw a0, 0x48(sp)               |     a0 = *(var_48h);
    0x0003134c sw v1, 0x2c(sp)               |     *(var_2ch) = v1;
    0x00031350 addiu a1, a1, -0x4d94         |     a1 += -0x4d94;
    0x00031354 jalr t9                       |     t9 ();
    0x00031358 lw gp, 0x20(sp)               |     gp = *(var_20h);
    0x0003135c lw v1, 0x2c(sp)               |     v1 = *(var_2ch);
                                             |     if (v0 != 0) {
    0x00031360 bnez v0, 0x315f4              |         goto label_33;
                                             |     }
    0x00031364 lw a2, -0x7f74(gp)            |     a2 = *((gp - 8157));
                                             |     if (s5 == 0) {
    0x00031368 beqz s5, 0x315f8              |         goto label_34;
                                             |     }
    0x0003136c lw t9, -0x7f44(gp)            |     t9 = *((gp - 8145));
    0x00031370 addiu s3, sp, 0x98            |     s3 = sp + 0x98;
    0x00031374 addiu a2, sp, 0x70            |     a2 = sp + 0x70;
    0x00031378 addiu a1, sp, 0x54            |     a1 = sp + 0x54;
    0x0003137c move a0, s3                   |     a0 = s3;
    0x00031380 bal 0x14fe4                   |     fcn_00014fe4 ();
    0x00031384 lw gp, 0x20(sp)               |     gp = *(var_20h);
    0x00031388 lw v1, 0x2c(sp)               |     v1 = *(var_2ch);
                                             |     if (v0 != 0) {
    0x0003138c bnez v0, 0x315b0              |         goto label_35;
                                             |     }
    0x00031390 lw t9, -0x7f0c(gp)            |     t9 = *((gp - 8131));
    0x00031394 sw v1, 0x2c(sp)               |     *(var_2ch) = v1;
    0x00031398 addiu a1, sp, 0x5c            |     a1 = sp + 0x5c;
    0x0003139c move a0, s3                   |     a0 = s3;
    0x000313a0 bal 0x14ef0                   |     fcn_00014ef0 ();
    0x000313a4 lw gp, 0x20(sp)               |     gp = *(var_20h);
    0x000313a8 lw v1, 0x2c(sp)               |     v1 = *(var_2ch);
                                             |     if (v0 != 0) {
    0x000313ac bnez v0, 0x315b0              |         goto label_35;
                                             |     }
    0x000313b0 lw t9, -0x7c9c(gp)            |     t9 = *((gp - 7975));
    0x000313b4 move a0, s5                   |     a0 = s5;
    0x000313b8 jalr t9                       |     t9 ();
    0x000313bc lw gp, 0x20(sp)               |     gp = *(var_20h);
    0x000313c0 lw a0, 0x5c(sp)               |     a0 = *(var_5ch);
    0x000313c4 lw v1, 0x2c(sp)               |     v1 = *(var_2ch);
    0x000313c8 lw a3, 0x70(sp)               |     a3 = *(var_70h);
    0x000313cc lw t9, -0x7e28(gp)            |     t9 = *((gp - 8074));
    0x000313d0 lw a2, 0x54(sp)               |     a2 = *(var_54h);
    0x000313d4 sw a0, 0x18(sp)               |     *(var_18h) = a0;
    0x000313d8 sw v1, 0x14(sp)               |     *(var_14h) = v1;
    0x000313dc sw s4, 0x10(sp)               |     *(var_10h) = s4;
    0x000313e0 move a1, v0                   |     a1 = v0;
    0x000313e4 move a0, s5                   |     a0 = s5;
    0x000313e8 bal 0x15370                   |     fcn_00015370 ();
    0x000313ec lw gp, 0x20(sp)               |     gp = *(var_20h);
    0x000313f0 lw v1, 0x2c(sp)               |     v1 = *(var_2ch);
                                             |     if (v0 < 0) {
    0x000313f4 bltz v0, 0x31704              |         goto label_36;
                                             |     }
    0x000313f8 lw v0, 8(fp)                  |     v0 = *(arg_8h);
    0x000313fc lw t9, -0x7fa8(gp)            |     t9 = *((gp - 8170));
    0x00031400 sw v1, 0x2c(sp)               |     *(var_2ch) = v1;
    0x00031404 move a1, s6                   |     a1 = s6;
    0x00031408 move a0, s0                   |     a0 = s0;
    0x0003140c sw v0, 0x30(sp)               |     *(var_30h) = v0;
    0x00031410 bal 0x14d54                   |     fcn_00014d54 ();
    0x00031414 move s3, v0                   |     s3 = v0;
    0x00031418 lw gp, 0x20(sp)               |     gp = *(var_20h);
    0x0003141c lw v1, 0x2c(sp)               |     v1 = *(var_2ch);
                                             |     if (v0 == 0) {
    0x00031420 beqz v0, 0x316d8              |         goto label_37;
                                             |     }
    0x00031424 lw t9, -0x7fa8(gp)            |     t9 = *((gp - 8170));
    0x00031428 sw v1, 0x2c(sp)               |     *(var_2ch) = v1;
    0x0003142c move a1, s7                   |     a1 = s7;
    0x00031430 move a0, s0                   |     a0 = s0;
    0x00031434 bal 0x14d54                   |     fcn_00014d54 ();
    0x00031438 move s5, v0                   |     s5 = v0;
    0x0003143c lw gp, 0x20(sp)               |     gp = *(var_20h);
    0x00031440 lw v1, 0x2c(sp)               |     v1 = *(var_2ch);
                                             |     if (v0 == 0) {
    0x00031444 beqz v0, 0x316c4              |         goto label_38;
                                             |     }
    0x00031448 lw t9, -0x7c98(gp)            |     t9 = *((gp - 7974));
    0x0003144c sw v1, 0x38(sp)               |     *(var_38h) = v1;
    0x00031450 move a2, s6                   |     a2 = s6;
    0x00031454 move a1, s4                   |     a1 = s4;
    0x00031458 move a0, s3                   |     a0 = s3;
    0x0003145c jalr t9                       |     t9 ();
    0x00031460 lw gp, 0x20(sp)               |     gp = *(var_20h);
    0x00031464 addiu t0, sp, 0x7c            |     t0 = sp + 0x7c;
    0x00031468 addiu v0, sp, 0x78            |     v0 = sp + 0x78;
    0x0003146c lw t9, -0x7c98(gp)            |     t9 = *((gp - 7974));
    0x00031470 move a2, s7                   |     a2 = s7;
    0x00031474 addu a1, s4, s6               |     a1 = s4 + s6;
    0x00031478 move a0, s5                   |     a0 = s5;
    0x0003147c sw t0, 0x34(sp)               |     *(var_34h) = t0;
    0x00031480 sw v0, 0x2c(sp)               |     *(var_2ch) = v0;
    0x00031484 jalr t9                       |     t9 ();
    0x00031488 lw t0, 0x34(sp)               |     t0 = *(var_34h);
    0x0003148c lw v0, 0x2c(sp)               |     v0 = *(var_2ch);
    0x00031490 sw t0, 0x1c(sp)               |     *(var_1ch) = t0;
    0x00031494 sw zero, 0x18(sp)             |     *(var_18h) = 0;
    0x00031498 sw v0, 0x14(sp)               |     *(var_14h) = v0;
    0x0003149c sw s3, 0x10(sp)               |     *(var_10h) = s3;
    0x000314a0 lw t9, 0x18(fp)               |     t9 = *(arg_18h);
    0x000314a4 addiu a3, sp, 0x74            |     a3 = sp + 0x74;
    0x000314a8 move a2, s5                   |     a2 = s5;
    0x000314ac move a1, fp                   |     a1 = fp;
    0x000314b0 move a0, s0                   |     a0 = s0;
    0x000314b4 jalr t9                       |     t9 ();
    0x000314b8 move t1, v0                   |     t1 = v0;
    0x000314bc lw gp, 0x20(sp)               |     gp = *(var_20h);
    0x000314c0 lw v1, 0x38(sp)               |     v1 = *(var_38h);
                                             |     if (v0 != 0) {
    0x000314c4 bnez v0, 0x316bc              |         goto label_39;
                                             |     }
    0x000314c8 lw v0, 0x94(sp)               |     v0 = *(var_94h);
    0x000314cc lw a0, 0x30(sp)               |     a0 = *(var_30h);
    0x000314d0 divu zero, v0, a0             |     __asm ("divu zero, v0, a0");
    0x000314d4 teq a0, zero, 7               |     __asm ("teq a0, zero, 7");
    0x000314d8 mfhi v0                       |     __asm ("mfhi v0");
    0x000314dc lw t0, 0x34(sp)               |     t0 = *(var_34h);
                                             |     if (v0 != 0) {
    0x000314e0 bnez v0, 0x31698              |         goto label_40;
                                             |     }
    0x000314e4 lw a1, 0x8c(sp)               |     a1 = *(var_8ch);
                                             |     do {
    0x000314e8 lw t9, 0x1c(fp)               |         t9 = *(arg_1ch);
    0x000314ec lw a2, 0x30(sp)               |         a2 = *(var_30h);
    0x000314f0 sw v1, 0x3c(sp)               |         *(var_3ch) = v1;
    0x000314f4 move a3, t0                   |         a3 = t0;
    0x000314f8 sw t0, 0x38(sp)               |         *(var_38h) = t0;
    0x000314fc addu a1, a1, t1               |         a1 += t1;
    0x00031500 sw t1, 0x34(sp)               |         *(var_34h) = t1;
    0x00031504 move a0, s0                   |         a0 = s0;
    0x00031508 jalr t9                       |         t9 ();
    0x0003150c lw t1, 0x34(sp)               |         t1 = *(var_34h);
    0x00031510 lw t0, 0x38(sp)               |         t0 = *(var_38h);
    0x00031514 lw v1, 0x3c(sp)               |         v1 = *(var_3ch);
                                             |         if (v0 != 0) {
    0x00031518 bnez v0, 0x31698              |             goto label_40;
                                             |         }
    0x0003151c lw a0, 0x30(sp)               |         a0 = *(var_30h);
    0x00031520 lw v0, 0x94(sp)               |         v0 = *(var_94h);
    0x00031524 addu t1, t1, a0               |         t1 += a0;
    0x00031528 subu v0, v0, a0               |         __asm ("subu v0, v0, a0");
    0x0003152c sltu v0, v0, t1               |         v0 = (v0 < t1) ? 1 : 0;
    0x00031530 lw a1, 0x8c(sp)               |         a1 = *(var_8ch);
    0x00031534 beqz v0, 0x314e8              |         
                                             |     } while (v0 == 0);
    0x00031538 lw t9, 0x20(fp)               |     t9 = *(arg_20h);
    0x0003153c sw v1, 0x30(sp)               |     *(var_30h) = v1;
    0x00031540 move a1, t0                   |     a1 = t0;
    0x00031544 move a0, s0                   |     a0 = s0;
    0x00031548 jalr t9                       |     t9 ();
    0x0003154c lw gp, 0x20(sp)               |     gp = *(var_20h);
    0x00031550 lw v1, 0x30(sp)               |     v1 = *(var_30h);
    0x00031554 b 0x310f0                     |     goto label_4;
                                             | label_24:
    0x00031558 addiu v0, sp, 0x78            |     v0 = sp + 0x78;
    0x0003155c move v1, zero                 |     v1 = 0;
    0x00031560 move s7, zero                 |     s7 = 0;
    0x00031564 move s5, zero                 |     s5 = 0;
    0x00031568 move s3, zero                 |     s3 = 0;
    0x0003156c sw v0, 0x2c(sp)               |     *(var_2ch) = v0;
    0x00031570 b 0x310f0                     |     goto label_4;
                                             | label_20:
    0x00031574 addiu fp, zero, -0x30         |     fp = -0x30;
    0x00031578 b 0x30f44                     |     goto label_2;
                                             | label_19:
    0x0003157c lw t9, -0x7d10(gp)            |     t9 = *((gp - 8004));
    0x00031580 jalr t9                       |     t9 ();
    0x00031584 nop                           |     
                                             | label_28:
    0x00031588 lw a2, -0x7f74(gp)            |     a2 = *((gp - 8157));
    0x0003158c lw t9, -0x7fd0(gp)            |     t9 = *(gp);
    0x00031590 addiu a2, a2, -0x4c30         |     a2 += -0x4c30;
    0x00031594 addiu a1, zero, -6            |     a1 = -6;
                                             | label_6:
    0x00031598 move a0, s0                   |     a0 = s0;
    0x0003159c bal 0x145ac                   |     fcn_000145ac ();
    0x000315a0 move fp, v0                   |     fp = v0;
    0x000315a4 lw gp, 0x20(sp)               |     gp = *(var_20h);
    0x000315a8 lw v1, 0x2c(sp)               |     v1 = *(var_2ch);
    0x000315ac b 0x311dc                     |     goto label_5;
                                             | label_35:
    0x000315b0 lw a2, -0x7f74(gp)            |     a2 = *((gp - 8157));
    0x000315b4 lw t9, -0x7fd0(gp)            |     t9 = *(gp);
    0x000315b8 sw v1, 0x2c(sp)               |     *(var_2ch) = v1;
    0x000315bc addiu a2, a2, -0x4cd0         |     a2 += -0x4cd0;
    0x000315c0 addiu a1, zero, -0xe          |     a1 = -0xe;
                                             |     do {
                                             | label_7:
    0x000315c4 move a0, s0                   |         a0 = s0;
    0x000315c8 bal 0x145ac                   |         fcn_000145ac ();
    0x000315cc lw t9, 0xc(s0)                |         t9 = *((s0 + 3));
    0x000315d0 move a1, s0                   |         a1 = s0;
    0x000315d4 move a0, s4                   |         a0 = s4;
    0x000315d8 move fp, v0                   |         fp = v0;
    0x000315dc move s5, zero                 |         s5 = 0;
    0x000315e0 jalr t9                       |         t9 ();
    0x000315e4 move s3, zero                 |         s3 = 0;
    0x000315e8 lw gp, 0x20(sp)               |         gp = *(var_20h);
    0x000315ec lw v1, 0x2c(sp)               |         v1 = *(var_2ch);
    0x000315f0 b 0x311dc                     |         goto label_5;
                                             | label_33:
    0x000315f4 lw a2, -0x7f74(gp)            |         a2 = *((gp - 8157));
                                             | label_34:
    0x000315f8 sw v1, 0x2c(sp)               |         *(var_2ch) = v1;
    0x000315fc lw t9, -0x7fd0(gp)            |         t9 = *(gp);
    0x00031600 addiu a2, a2, -0x4cb0         |         a2 += -0x4cb0;
    0x00031604 addiu a1, zero, -0x30         |         a1 = -0x30;
    0x00031608 b 0x315c4                     |         
                                             |     } while (1);
                                             | label_32:
    0x0003160c lw a2, -0x7f74(gp)            |     a2 = *((gp - 8157));
    0x00031610 lw t9, -0x7fd0(gp)            |     t9 = *(gp);
    0x00031614 addiu a2, a2, -0x4ce4         |     a2 += -0x4ce4;
    0x00031618 b 0x30f30                     |     goto label_0;
                                             | label_31:
    0x0003161c lw a2, -0x7f74(gp)            |     a2 = *((gp - 8157));
    0x00031620 lw t9, -0x7fd0(gp)            |     t9 = *(gp);
    0x00031624 addiu a2, a2, -0x4d00         |     a2 += -0x4d00;
    0x00031628 b 0x30f30                     |     goto label_0;
                                             | label_26:
    0x0003162c lw a2, -0x7f74(gp)            |     a2 = *((gp - 8157));
                                             | label_27:
    0x00031630 lw t9, -0x7fd0(gp)            |     t9 = *(gp);
    0x00031634 sw v1, 0x2c(sp)               |     *(var_2ch) = v1;
    0x00031638 addiu a2, a2, -0x4c60         |     a2 += -0x4c60;
    0x0003163c addiu a1, zero, -0xe          |     a1 = -0xe;
    0x00031640 move a0, s0                   |     a0 = s0;
    0x00031644 bal 0x145ac                   |     fcn_000145ac ();
    0x00031648 addiu fp, zero, -0x30         |     fp = -0x30;
    0x0003164c lw gp, 0x20(sp)               |     gp = *(var_20h);
    0x00031650 lw v1, 0x2c(sp)               |     v1 = *(var_2ch);
    0x00031654 b 0x311dc                     |     goto label_5;
                                             | label_29:
    0x00031658 lw a2, -0x7f74(gp)            |     a2 = *((gp - 8157));
    0x0003165c lw t9, -0x7fd0(gp)            |     t9 = *(gp);
    0x00031660 addiu a2, a2, -0x4c30         |     a2 += -0x4c30;
    0x00031664 addiu a1, zero, -6            |     a1 = -6;
    0x00031668 move a0, s0                   |     a0 = s0;
    0x0003166c bal 0x145ac                   |     fcn_000145ac ();
    0x00031670 lw gp, 0x20(sp)               |     gp = *(var_20h);
    0x00031674 lw a3, 0x30(sp)               |     a3 = *(var_30h);
    0x00031678 move a0, s0                   |     a0 = s0;
    0x0003167c lw t9, -0x7e48(gp)            |     t9 = *((gp - 8082));
    0x00031680 move a1, a3                   |     a1 = a3;
    0x00031684 move fp, v0                   |     fp = v0;
    0x00031688 bal 0x14e60                   |     fcn_00014e60 ();
    0x0003168c lw gp, 0x20(sp)               |     gp = *(var_20h);
    0x00031690 lw v1, 0x2c(sp)               |     v1 = *(var_2ch);
    0x00031694 b 0x311dc                     |     goto label_5;
                                             | label_40:
    0x00031698 lw t9, 0x20(fp)               |     t9 = *(arg_20h);
    0x0003169c sw v1, 0x2c(sp)               |     *(var_2ch) = v1;
    0x000316a0 move a1, t0                   |     a1 = t0;
    0x000316a4 move a0, s0                   |     a0 = s0;
    0x000316a8 jalr t9                       |     t9 ();
    0x000316ac addiu fp, zero, -0xc          |     fp = -0xc;
    0x000316b0 lw gp, 0x20(sp)               |     gp = *(var_20h);
    0x000316b4 lw v1, 0x2c(sp)               |     v1 = *(var_2ch);
    0x000316b8 b 0x311dc                     |     goto label_5;
                                             | label_39:
    0x000316bc addiu fp, zero, -0xc          |     fp = -0xc;
    0x000316c0 b 0x311dc                     |     goto label_5;
                                             | label_38:
    0x000316c4 lw a2, -0x7f74(gp)            |     a2 = *((gp - 8157));
    0x000316c8 lw t9, -0x7fd0(gp)            |     t9 = *(gp);
    0x000316cc addiu a2, a2, -0x4c78         |     a2 += -0x4c78;
    0x000316d0 addiu a1, zero, -0xe          |     a1 = -0xe;
    0x000316d4 b 0x31598                     |     goto label_6;
                                             | label_37:
    0x000316d8 lw a2, -0x7f74(gp)            |     a2 = *((gp - 8157));
    0x000316dc lw t9, -0x7fd0(gp)            |     t9 = *(gp);
    0x000316e0 addiu a2, a2, -0x4c94         |     a2 += -0x4c94;
    0x000316e4 addiu a1, zero, -0xe          |     a1 = -0xe;
    0x000316e8 move a0, s0                   |     a0 = s0;
    0x000316ec bal 0x145ac                   |     fcn_000145ac ();
    0x000316f0 move fp, v0                   |     fp = v0;
    0x000316f4 lw gp, 0x20(sp)               |     gp = *(var_20h);
    0x000316f8 move s5, zero                 |     s5 = 0;
    0x000316fc lw v1, 0x2c(sp)               |     v1 = *(var_2ch);
    0x00031700 b 0x311dc                     |     goto label_5;
                                             | label_36:
    0x00031704 lw a2, -0x7f74(gp)            |     a2 = *((gp - 8157));
    0x00031708 lw t9, -0x7fd0(gp)            |     t9 = *(gp);
    0x0003170c addiu a2, a2, -0x4d7c         |     a2 += -0x4d7c;
    0x00031710 addiu a1, zero, -0xc          |     a1 = -0xc;
    0x00031714 b 0x315c4                     |     goto label_7;
                                             | }

[*] Function strcat used 1 times libssh2.so.1.0.1