[*] Binary protection state of librtsxmd.so.5.1.87231a

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


[*] Function system tear down of librtsxmd.so.5.1.87231a

    ; assembly                           | /* r2dec pseudo code output */
                                         | /* /logs/firmware/patool_extraction/DUMP/mtdblock8_unblob_extracted/mtdblock8_extract/0-9650176.squashfs_v4_le_extract/lib/librtsxmd.so.5.1.87231a @ 0x12f8 */
                                         | #include <stdint.h>
                                         |  
    ; (fcn) fcn.000012f8 ()              | void fcn_000012f8 () {
    0x000012f8 lui gp, 2                 |     
    0x000012fc addiu gp, gp, 0x6598      |     
    0x00001300 addu gp, gp, t9           |     gp += t9;
    0x00001304 addiu sp, sp, -0x30       |     
    0x00001308 sw ra, 0x2c(sp)           |     *(var_2ch) = ra;
    0x0000130c sw s3, 0x28(sp)           |     *(var_28h) = s3;
    0x00001310 sw s2, 0x24(sp)           |     *(var_24h) = s2;
    0x00001314 sw s1, 0x20(sp)           |     *(var_20h) = s1;
    0x00001318 sw s0, 0x1c(sp)           |     *(var_1ch) = s0;
    0x0000131c lw t8, -0x7fe4(gp)        |     t8 = *((gp - 8185));
    0x00001320 sw gp, 0x10(sp)           |     *(var_10h) = gp;
    0x00001324 lbu v0, -0x620(t8)        |     v0 = *((t8 - 1568));
    0x00001328 move s1, t8               |     s1 = t8;
                                         |     if (v0 != 0) {
    0x0000132c bnez v0, 0x13b4           |         goto label_0;
                                         |     }
    0x00001330 lw t8, -0x7efc(gp)        |     t8 = *((gp - 8127));
    0x00001334 lw t8, -0x7fe0(gp)        |     t8 = *((gp - 8184));
                                         |     if (t8 != 0) {
    0x00001338 beqz t8, 0x134c           |         
    0x0000133c lw t9, -0x7efc(gp)        |         t9 = *((gp - 8127));
    0x00001340 lw a0, (t8)               |         a0 = *(t8);
    0x00001344 jalr t9                   |         t9 ();
    0x00001348 lw gp, 0x10(sp)           |         gp = *(var_10h);
                                         |     }
    0x0000134c lw v0, -0x7fe4(gp)        |     v0 = *((gp - 8185));
    0x00001350 lw s2, -0x7fdc(gp)        |     s2 = *((gp - 8183));
    0x00001354 addiu v0, v0, -0x76c      |     v0 += -0x76c;
    0x00001358 subu s2, s2, v0           |     __asm ("subu s2, s2, v0");
    0x0000135c move s3, v0               |     s3 = v0;
    0x00001360 sra s2, s2, 2             |     s2 >>= 2;
    0x00001364 lw s0, -0x7fe4(gp)        |     s0 = *((gp - 8185));
    0x00001368 addiu s2, s2, -1          |     s2 += -1;
                                         |     do {
    0x0000136c lw v0, -0x61c(s0)         |         v0 = *((s0 - 391));
    0x00001370 sltu t8, v0, s2           |         t8 = (v0 < s2) ? 1 : 0;
    0x00001374 addiu v0, v0, 1           |         v0++;
                                         |         if (t8 == 0) {
    0x00001378 beqz t8, 0x139c           |             goto label_1;
                                         |         }
    0x0000137c sw v0, -0x61c(s0)         |         *((s0 - 391)) = v0;
    0x00001380 sll v0, v0, 2             |         v0 <<= 2;
    0x00001384 addu v0, s3, v0           |         v0 = s3 + v0;
    0x00001388 lw t9, (v0)               |         t9 = *(v0);
    0x0000138c jalr t9                   |         t9 ();
    0x00001390 nop                       |         
    0x00001394 lw gp, 0x10(sp)           |         gp = *(var_10h);
    0x00001398 b 0x136c                  |         
                                         |     } while (1);
                                         | label_1:
    0x0000139c lw t9, -0x7fd8(gp)        |     t9 = *((gp - 8182));
    0x000013a0 addiu t9, t9, 0x1260      |     t9 += entry0;
    0x000013a4 jalr t9                   |     t9 ();
    0x000013a8 nop                       |     
    0x000013ac addiu t8, zero, 1         |     t8 = 1;
    0x000013b0 sb t8, -0x620(s1)         |     *((s1 - 1568)) = t8;
                                         | label_0:
    0x000013b4 lw ra, 0x2c(sp)           |     ra = *(var_2ch);
    0x000013b8 lw s3, 0x28(sp)           |     s3 = *(var_28h);
    0x000013bc lw s2, 0x24(sp)           |     s2 = *(var_24h);
    0x000013c0 lw s1, 0x20(sp)           |     s1 = *(var_20h);
    0x000013c4 lw s0, 0x1c(sp)           |     s0 = *(var_1ch);
    0x000013c8 addiu sp, sp, 0x30        |     
    0x000013cc jr ra                     |     return v0;
                                         | }
    ; assembly                               | /* r2dec pseudo code output */
                                             | /* /logs/firmware/patool_extraction/DUMP/mtdblock8_unblob_extracted/mtdblock8_extract/0-9650176.squashfs_v4_le_extract/lib/librtsxmd.so.5.1.87231a @ 0xb970 */
                                             | #include <stdint.h>
                                             |  
    ; (fcn) sym.rts_init_network ()          | void rts_init_network () {
    0x0000b970 lui gp, 2                     |     
    0x0000b974 addiu gp, gp, -0x40e0         |     
    0x0000b978 addu gp, gp, t9               |     gp += t9;
    0x0000b97c addiu sp, sp, -0xd0           |     
    0x0000b980 sw ra, 0xc4(sp)               |     *(var_c4h) = ra;
    0x0000b984 sdc1 f20, 0xc8(sp)            |     __asm ("sdc1 f20, 0xc8(sp)");
    0x0000b988 sw fp, 0xc0(sp)               |     *(var_c0h) = fp;
    0x0000b98c sw s7, 0xbc(sp)               |     *(var_bch) = s7;
    0x0000b990 sw s6, 0xb8(sp)               |     *(var_b8h) = s6;
    0x0000b994 sw s5, 0xb4(sp)               |     *(var_b4h) = s5;
    0x0000b998 sw s4, 0xb0(sp)               |     *(var_b0h) = s4;
    0x0000b99c sw s3, 0xac(sp)               |     *(var_ach) = s3;
    0x0000b9a0 sw s2, 0xa8(sp)               |     *(var_a8h) = s2;
    0x0000b9a4 sw s1, 0xa4(sp)               |     *(var_a4h) = s1;
    0x0000b9a8 sw s0, 0xa0(sp)               |     *(var_a0h) = s0;
    0x0000b9ac sw gp, 0x10(sp)               |     *(var_10h) = gp;
    0x0000b9b0 move s4, a0                   |     s4 = a0;
                                             |     if (a0 == 0) {
    0x0000b9b4 beqz a0, 0xc4fc               |         goto label_26;
                                             |     }
    0x0000b9b8 lw t9, -0x7f04(gp)            |     t9 = *((gp - 8129));
    0x0000b9bc addiu a0, zero, 0x24          |     a0 = 0x24;
    0x0000b9c0 jalr t9                       |     t9 ();
    0x0000b9c4 lw gp, 0x10(sp)               |     gp = *(var_10h);
    0x0000b9c8 move s0, v0                   |     s0 = v0;
                                             |     if (v0 == 0) {
    0x0000b9cc beqz v0, 0xc4fc               |         goto label_26;
                                             |     }
    0x0000b9d0 lw a0, -0x7fd4(gp)            |     a0 = *((gp - 8181));
    0x0000b9d4 lw t9, -0x7ef8(gp)            |     t9 = *((gp - 8126));
    0x0000b9d8 addiu a0, a0, -0x948          |     a0 += -0x948;
    0x0000b9dc sw zero, 0x20(v0)             |     *((v0 + 8)) = 0;
    0x0000b9e0 jalr t9                       |     t9 ();
    0x0000b9e4 lw gp, 0x10(sp)               |     gp = *(var_10h);
    0x0000b9e8 lw a1, 4(s4)                  |     a1 = *((s4 + 1));
    0x0000b9ec lw a0, -0x7fd4(gp)            |     a0 = *((gp - 8181));
    0x0000b9f0 lw t9, -0x7ed0(gp)            |     t9 = *((gp - 8116));
    0x0000b9f4 addiu a0, a0, -0x934          |     a0 += -0x934;
    0x0000b9f8 jalr t9                       |     t9 ();
    0x0000b9fc lw a0, 4(s4)                  |     a0 = *((s4 + 1));
    0x0000ba00 lw gp, 0x10(sp)               |     gp = *(var_10h);
                                             |     if (a0 == 0) {
    0x0000ba04 beqz a0, 0xc794               |         goto label_27;
                                             |     }
    0x0000ba08 lw a1, -0x7fd4(gp)            |     a1 = *((gp - 8181));
    0x0000ba0c lw t9, -0x7f5c(gp)            |     t9 = *((gp - 8151));
    0x0000ba10 addiu a1, a1, -0x92c          |     a1 += -0x92c;
    0x0000ba14 jalr t9                       |     t9 ();
    0x0000ba18 lw gp, 0x10(sp)               |     gp = *(var_10h);
    0x0000ba1c move s1, v0                   |     s1 = v0;
                                             |     if (v0 == 0) {
    0x0000ba20 beqz v0, 0xca40               |         goto label_28;
                                             |     }
    0x0000ba24 addiu v1, zero, 3             |     v1 = 3;
    0x0000ba28 addiu s3, zero, -1            |     s3 = -1;
    0x0000ba2c sw v1, 0x90(sp)               |     *(var_90h) = v1;
    0x0000ba30 addiu s6, zero, -1            |     s6 = -1;
    0x0000ba34 move s2, zero                 |     s2 = 0;
                                             | label_4:
    0x0000ba38 lw t9, -0x7f70(gp)            |     t9 = *((gp - 8156));
                                             |     do {
                                             | label_3:
    0x0000ba3c move a0, s1                   |         a0 = s1;
    0x0000ba40 jalr t9                       |         t9 ();
    0x0000ba44 lw gp, 0x10(sp)               |         gp = *(var_10h);
                                             |         if (v0 == 0) {
    0x0000ba48 beqz v0, 0xbbac               |             goto label_29;
                                             |         }
                                             | label_1:
    0x0000ba4c lb t8, 4(v0)                  |         t8 = *((v0 + 4));
    0x0000ba50 addiu v1, zero, 0x5d          |         v1 = 0x5d;
    0x0000ba54 addiu v1, zero, 0x76          |         v1 = 0x76;
                                             |         if (t8 == v1) {
    0x0000ba58 beq t8, v1, 0xbe98            |             goto label_30;
                                             |         }
    0x0000ba5c addiu v1, zero, 0x70          |         v1 = 0x70;
                                             |         if (t8 == v1) {
    0x0000ba60 beq t8, v1, 0xbf34            |             goto label_31;
                                             |         }
    0x0000ba64 addiu v1, zero, 0x6e          |         v1 = 0x6e;
                                             |         if (t8 != v1) {
    0x0000ba68 bne t8, v1, 0xc038            |             goto label_32;
                                             |         }
    0x0000ba6c lb v1, (v0)                   |         v1 = *(v0);
    0x0000ba70 addiu t8, zero, 0x5b          |         t8 = 0x5b;
    0x0000ba74 lw t9, -0x7f70(gp)            |         t9 = *((gp - 8156));
    0x0000ba78 bne v1, t8, 0xba3c            |         
                                             |     } while (v1 != t8);
    0x0000ba7c lw t9, -0x7ef8(gp)            |     t9 = *((gp - 8126));
    0x0000ba80 move a0, v0                   |     a0 = v0;
    0x0000ba84 lw fp, -0x7edc(gp)            |     fp = *((gp - 8119));
    0x0000ba88 move s5, zero                 |     s5 = 0;
    0x0000ba8c jalr t9                       |     t9 ();
    0x0000ba90 lw gp, 0x10(sp)               |     gp = *(var_10h);
                                             | label_0:
    0x0000ba94 lw t9, -0x7f70(gp)            |     t9 = *((gp - 8156));
    0x0000ba98 move a0, s1                   |     a0 = s1;
    0x0000ba9c jalr t9                       |     t9 ();
    0x0000baa0 lw gp, 0x10(sp)               |     gp = *(var_10h);
    0x0000baa4 sw v0, 0x88(sp)               |     *(var_88h) = v0;
    0x0000baa8 sw v0, 0x80(sp)               |     *(var_80h) = v0;
                                             |     if (s5 == 0) {
    0x0000baac beqz s5, 0xc96c               |         goto label_33;
                                             |     }
    0x0000bab0 move a0, v0                   |     a0 = v0;
    0x0000bab4 addiu a3, zero, 0x2d          |     a3 = 0x2d;
    0x0000bab8 addiu t0, sp, 0x80            |     t0 = sp + 0x80;
                                             | label_18:
    0x0000babc lb t8, (a0)                   |     t8 = *(a0);
    0x0000bac0 sll v1, t8, 1                 |     v1 = t8 << 1;
                                             |     if (t8 == 0) {
    0x0000bac4 beqz t8, 0xbb04               |         goto label_34;
                                             |     }
                                             |     do {
    0x0000bac8 lw v0, (fp)                   |         v0 = *(fp);
    0x0000bacc addu v1, v0, v1               |         v1 = v0 + v1;
    0x0000bad0 lhu v1, (v1)                  |         v1 = *(v1);
    0x0000bad4 andi v1, v1, 8                |         v1 &= 8;
    0x0000bad8 lw t9, -0x7f24(gp)            |         t9 = *((gp - 8137));
                                             |         if (v1 != 0) {
    0x0000badc bnez v1, 0xc688               |             goto label_35;
                                             |         }
    0x0000bae0 addiu v1, zero, 0x2b          |         v1 = 0x2b;
                                             |         if (t8 == a3) {
    0x0000bae4 beq t8, a3, 0xc66c            |             goto label_36;
                                             |         }
                                             |         if (t8 == v1) {
    0x0000bae8 beq t8, v1, 0xc66c            |             goto label_36;
                                             |         }
    0x0000baec nop                           |         
                                             | label_17:
    0x0000baf0 addiu a0, a0, 1               |         a0++;
    0x0000baf4 sw a0, 0x80(sp)               |         *(var_80h) = a0;
    0x0000baf8 lb t8, (a0)                   |         t8 = *(a0);
    0x0000bafc sll v1, t8, 1                 |         v1 = t8 << 1;
    0x0000bb00 bnez t8, 0xbac8               |         
                                             |     } while (t8 != 0);
                                             | label_34:
    0x0000bb04 addiu s5, s5, 1               |     s5++;
    0x0000bb08 addiu t8, zero, 2             |     t8 = 2;
    0x0000bb0c lw t9, -0x7f04(gp)            |     t9 = *((gp - 8129));
                                             |     if (s5 != t8) {
    0x0000bb10 bne s5, t8, 0xba94            |         goto label_0;
                                             |     }
    0x0000bb14 div zero, s6, s7              |     __asm ("div zero, s6, s7");
                                             |     if (s7 == 0) {
    0x0000bb18 bnez s7, 0xbb20               |         
    0x0000bb1c break 7                       |         __asm ("break 7");
                                             |     }
    0x0000bb20 addiu a0, zero, 0x24          |     a0 = 0x24;
    0x0000bb24 mflo s6                       |     __asm ("mflo s6");
    0x0000bb28 mult s7, s7                   |     __asm ("mult s7, s7");
    0x0000bb2c mflo t8                       |     __asm ("mflo t8");
    0x0000bb30 div zero, s3, t8              |     __asm ("div zero, s3, t8");
                                             |     if (t8 == 0) {
    0x0000bb34 bnez t8, 0xbb3c               |         
    0x0000bb38 break 7                       |         __asm ("break 7");
                                             |     }
    0x0000bb3c mflo s3                       |     __asm ("mflo s3");
    0x0000bb40 jalr t9                       |     t9 ();
    0x0000bb44 move fp, v0                   |     fp = v0;
    0x0000bb48 lw gp, 0x10(sp)               |     gp = *(var_10h);
                                             |     if (v0 != 0) {
    0x0000bb4c beqz v0, 0xbb78               |         
    0x0000bb50 lw t9, -0x7f04(gp)            |         t9 = *((gp - 8129));
    0x0000bb54 addiu a0, zero, 8             |         a0 = 8;
    0x0000bb58 jalr t9                       |         t9 ();
    0x0000bb5c lw v1, 0x94(sp)               |         v1 = *(var_94h);
    0x0000bb60 lw gp, 0x10(sp)               |         gp = *(var_10h);
    0x0000bb64 sw s5, 4(fp)                  |         *(arg_4h) = s5;
    0x0000bb68 sw v0, (fp)                   |         *(fp) = v0;
    0x0000bb6c sw s7, (v0)                   |         *(v0) = s7;
    0x0000bb70 sw v1, 4(v0)                  |         *((v0 + 1)) = v1;
    0x0000bb74 sw zero, 0x20(fp)             |         *(arg_20h) = 0;
                                             |     }
    0x0000bb78 move t8, s2                   |     t8 = s2;
                                             |     if (s2 == 0) {
    0x0000bb7c beqz s2, 0xcb04               |         goto label_37;
                                             |     }
    0x0000bb80 lw v0, 0x20(t8)               |     v0 = *((t8 + 8));
    0x0000bb84 b 0xbb90                      |     
                                             |     while (v0 != 0) {
    0x0000bb88 move t8, v0                   |         t8 = v0;
    0x0000bb8c lw v0, 0x20(t8)               |         v0 = *((t8 + 8));
    0x0000bb90 lw t9, -0x7f70(gp)            |         t9 = *((gp - 8156));
    0x0000bb94 bnez v0, 0xbb88               |         
                                             |     }
    0x0000bb98 move a0, s1                   |     a0 = s1;
    0x0000bb9c sw fp, 0x20(t8)               |     *((t8 + 32)) = fp;
    0x0000bba0 jalr t9                       |     t9 ();
    0x0000bba4 lw gp, 0x10(sp)               |     gp = *(var_10h);
                                             |     if (v0 != 0) {
    0x0000bba8 bnez v0, 0xba4c               |         goto label_1;
                                             |     }
                                             | label_29:
    0x0000bbac lw t9, -0x7f64(gp)            |     t9 = *((gp - 8153));
    0x0000bbb0 move a0, s1                   |     a0 = s1;
    0x0000bbb4 jalr t9                       |     t9 ();
    0x0000bbb8 move v1, s2                   |     v1 = s2;
    0x0000bbbc lw gp, 0x10(sp)               |     gp = *(var_10h);
    0x0000bbc0 move s5, v1                   |     s5 = v1;
    0x0000bbc4 sw v1, 0x20(s0)               |     *((s0 + 8)) = v1;
                                             | label_21:
    0x0000bbc8 lw t9, -0x7fd4(gp)            |     t9 = *((gp - 8181));
                                             |     if (s5 == 0) {
    0x0000bbcc beqz s5, 0xc4e0               |         goto label_38;
                                             |     }
    0x0000bbd0 lw a0, 8(s4)                  |     a0 = *((s4 + 2));
    0x0000bbd4 lwc1 f20, (s4)                |     __asm ("lwc1 f20, (s4)");
                                             |     if (a0 == 0) {
    0x0000bbd8 beqz a0, 0xc7b4               |         goto label_39;
                                             |     }
    0x0000bbdc lw a1, -0x7fd4(gp)            |     a1 = *((gp - 8181));
    0x0000bbe0 lw t9, -0x7f5c(gp)            |     t9 = *((gp - 8151));
    0x0000bbe4 addiu a1, a1, -0x92c          |     a1 += -0x92c;
    0x0000bbe8 jalr t9                       |     t9 ();
    0x0000bbec lw gp, 0x10(sp)               |     gp = *(var_10h);
    0x0000bbf0 move s1, v0                   |     s1 = v0;
                                             |     if (v0 == 0) {
    0x0000bbf4 beqz v0, 0xc4dc               |         goto label_40;
                                             |     }
    0x0000bbf8 move fp, zero                 |     fp = 0;
    0x0000bbfc lw t9, -0x7ee4(gp)            |     t9 = *((gp - 8121));
                                             | label_8:
    0x0000bc00 lui a0, 3                     |     a0 = 0x30d40;
    0x0000bc04 ori a0, a0, 0xd40             |     
    0x0000bc08 jalr t9                       |     t9 ();
    0x0000bc0c lw t8, 4(s5)                  |     t8 = *((s5 + 1));
    0x0000bc10 lw gp, 0x10(sp)               |     gp = *(var_10h);
                                             |     if (t8 != 0) {
    0x0000bc14 bnez t8, 0xc13c               |         goto label_41;
                                             |     }
    0x0000bc18 lw t8, (s5)                   |     t8 = *(s5);
    0x0000bc1c lw t9, -0x7f04(gp)            |     t9 = *((gp - 8129));
    0x0000bc20 lw v1, (t8)                   |     v1 = *(t8);
    0x0000bc24 lw s6, 8(t8)                  |     s6 = *((t8 + 2));
    0x0000bc28 lw s4, 0x10(t8)               |     s4 = *((t8 + 4));
    0x0000bc2c xori v0, v1, 1                |     v0 = v1 ^ 1;
    0x0000bc30 lw s2, 0xc(t8)                |     s2 = *((t8 + 3));
    0x0000bc34 mult s6, s6                   |     __asm ("mult s6, s6");
    0x0000bc38 sw v1, 0x90(sp)               |     *(var_90h) = v1;
                                             |     if (v0 != 0) {
    0x0000bc3c movz s4, s2, v0               |         s4 = s2;
                                             |     }
    0x0000bc40 sll s7, s4, 2                 |     s7 = s4 << 2;
    0x0000bc44 move a0, s7                   |     a0 = s7;
    0x0000bc48 mflo s6                       |     __asm ("mflo s6");
    0x0000bc4c jalr t9                       |     t9 ();
    0x0000bc50 move a1, fp                   |     a1 = fp;
    0x0000bc54 lw gp, 0x10(sp)               |     gp = *(var_10h);
    0x0000bc58 move a0, s1                   |     a0 = s1;
    0x0000bc5c move a2, zero                 |     a2 = 0;
    0x0000bc60 addu s3, s7, fp               |     s3 = s7 + fp;
    0x0000bc64 lw t9, -0x7f3c(gp)            |     t9 = *((gp - 8143));
    0x0000bc68 move fp, v0                   |     fp = v0;
    0x0000bc6c jalr t9                       |     t9 ();
    0x0000bc70 move a0, fp                   |     a0 = fp;
    0x0000bc74 lw gp, 0x10(sp)               |     gp = *(var_10h);
    0x0000bc78 addiu a1, zero, 1             |     a1 = 1;
    0x0000bc7c move a2, s7                   |     a2 = s7;
    0x0000bc80 lw t9, -0x7f54(gp)            |     t9 = *((gp - 8149));
    0x0000bc84 move a3, s1                   |     a3 = s1;
    0x0000bc88 jalr t9                       |     t9 ();
    0x0000bc8c lw gp, 0x10(sp)               |     gp = *(var_10h);
                                             |     if (s4 <= 0) {
    0x0000bc90 blez s4, 0xc534               |         goto label_42;
                                             |     }
    0x0000bc94 lw a1, 0x10(s5)               |     a1 = *((s5 + 4));
    0x0000bc98 move t8, fp                   |     t8 = fp;
    0x0000bc9c addu a0, s7, fp               |     a0 = s7 + fp;
                                             |     do {
    0x0000bca0 lbu v0, 1(t8)                 |         v0 = *((t8 + 1));
    0x0000bca4 addiu t8, t8, 4               |         t8 += 4;
    0x0000bca8 addiu a1, a1, 4               |         a1 += 4;
    0x0000bcac lbu a3, -2(t8)                |         a3 = *((t8 - 2));
    0x0000bcb0 sll v0, v0, 8                 |         v0 <<= 8;
    0x0000bcb4 lbu t0, -4(t8)                |         t0 = *((t8 - 4));
    0x0000bcb8 lbu a2, -1(t8)                |         a2 = *((t8 - 1));
    0x0000bcbc sll a3, a3, 0x10              |         a3 <<= 0x10;
    0x0000bcc0 addu a3, v0, a3               |         a3 = v0 + a3;
    0x0000bcc4 addu a3, a3, t0               |         a3 += t0;
    0x0000bcc8 sll a2, a2, 0x18              |         a2 <<= 0x18;
    0x0000bccc addu a2, a3, a2               |         a2 = a3 + a2;
    0x0000bcd0 sw a2, -4(a1)                 |         *((a1 - 1)) = a2;
    0x0000bcd4 bne t8, a0, 0xbca0            |         
                                             |     } while (t8 != a0);
    0x0000bcd8 lw t9, -0x7fc4(gp)            |     t9 = *((gp - 8177));
    0x0000bcdc move a0, fp                   |     a0 = fp;
    0x0000bce0 jalr t9                       |     t9 ();
    0x0000bce4 mult s6, s4                   |     __asm ("mult s6, s4");
    0x0000bce8 lw gp, 0x10(sp)               |     gp = *(var_10h);
    0x0000bcec lw t9, -0x7f04(gp)            |     t9 = *((gp - 8129));
    0x0000bcf0 mflo t8                       |     __asm ("mflo t8");
    0x0000bcf4 mult s2, t8                   |     __asm ("mult s2, t8");
    0x0000bcf8 mflo t8                       |     __asm ("mflo t8");
    0x0000bcfc mflo a0                       |     __asm ("mflo a0");
    0x0000bd00 sw t8, 0x98(sp)               |     *(var_98h) = t8;
    0x0000bd04 addu fp, s3, t8               |     fp = s3 + t8;
    0x0000bd08 jalr t9                       |     t9 ();
    0x0000bd0c move a1, s3                   |     a1 = s3;
    0x0000bd10 lw gp, 0x10(sp)               |     gp = *(var_10h);
    0x0000bd14 move a0, s1                   |     a0 = s1;
    0x0000bd18 move a2, zero                 |     a2 = 0;
    0x0000bd1c lw t9, -0x7f3c(gp)            |     t9 = *((gp - 8143));
    0x0000bd20 move s3, v0                   |     s3 = v0;
    0x0000bd24 jalr t9                       |     t9 ();
    0x0000bd28 move a0, s3                   |     a0 = s3;
    0x0000bd2c lw gp, 0x10(sp)               |     gp = *(var_10h);
    0x0000bd30 addiu a1, zero, 1             |     a1 = 1;
    0x0000bd34 lw t8, 0x98(sp)               |     t8 = *(var_98h);
    0x0000bd38 move a3, s1                   |     a3 = s1;
    0x0000bd3c lw t9, -0x7f54(gp)            |     t9 = *((gp - 8149));
    0x0000bd40 move a2, t8                   |     a2 = t8;
    0x0000bd44 jalr t9                       |     t9 ();
    0x0000bd48 mult s6, s2                   |     __asm ("mult s6, s2");
    0x0000bd4c lw gp, 0x10(sp)               |     gp = *(var_10h);
    0x0000bd50 move t0, zero                 |     t0 = 0;
    0x0000bd54 move t1, zero                 |     t1 = 0;
    0x0000bd58 mflo s2                       |     __asm ("mflo s2");
    0x0000bd5c addu a0, s3, s2               |     a0 = s3 + s2;
                                             |     if (s2 <= 0) {
                                             | label_2:
    0x0000bd60 blez s2, 0xbd98               |         goto label_43;
                                             |     }
    0x0000bd64 nop                           |     
    0x0000bd68 lw v0, 8(s5)                  |     v0 = *((s5 + 2));
    0x0000bd6c sll a1, t0, 2                 |     a1 = t0 << 2;
    0x0000bd70 addu t8, s3, t1               |     t8 = s3 + t1;
    0x0000bd74 addu a3, a0, t1               |     a3 = a0 + t1;
    0x0000bd78 addu a1, v0, a1               |     a1 = v0 + a1;
    0x0000bd7c lw a1, (a1)                   |     a1 = *(a1);
                                             |     do {
    0x0000bd80 lb a2, (t8)                   |         a2 = *(t8);
    0x0000bd84 addiu a1, a1, 4               |         a1 += 4;
    0x0000bd88 addiu t8, t8, 1               |         t8++;
    0x0000bd8c sw a2, -4(a1)                 |         *((a1 - 1)) = a2;
    0x0000bd90 bne t8, a3, 0xbd80            |         
                                             |     } while (t8 != a3);
    0x0000bd94 addu t1, s2, t1               |     t1 = s2 + t1;
                                             | label_43:
    0x0000bd98 addiu t0, t0, 1               |     t0++;
    0x0000bd9c lw v1, 0x90(sp)               |     v1 = *(var_90h);
                                             |     if (t0 != s4) {
    0x0000bda0 bne t0, s4, 0xbd60            |         goto label_2;
                                             |     }
    0x0000bda4 addiu t8, zero, 1             |     t8 = 1;
    0x0000bda8 lw t9, -0x7fc4(gp)            |     t9 = *((gp - 8177));
                                             |     if (v1 != t8) {
    0x0000bdac bne v1, t8, 0xc5a4            |         goto label_44;
                                             |     }
    0x0000bdb0 sll t8, t0, 3                 |     t8 = t0 << 3;
    0x0000bdb4 lw a1, 8(s5)                  |     a1 = *((s5 + 2));
    0x0000bdb8 addu t0, t8, t0               |     t0 = t8 + t0;
    0x0000bdbc addiu v0, zero, 4             |     v0 = 4;
    0x0000bdc0 move a0, zero                 |     a0 = 0;
                                             |     do {
    0x0000bdc4 lw t8, (a1)                   |         t8 = *(a1);
    0x0000bdc8 sll t7, a0, 2                 |         t7 = a0 << 2;
    0x0000bdcc addiu t5, v0, 4               |         t5 = v0 + 4;
    0x0000bdd0 addiu t4, v0, 8               |         t4 = v0 + 8;
    0x0000bdd4 addu t7, t8, t7               |         t7 = t8 + t7;
    0x0000bdd8 addiu t3, v0, 0xc             |         t3 = v0 + 0xc;
    0x0000bddc lw t9, (t7)                   |         t9 = *(t7);
    0x0000bde0 addiu t2, v0, 0x10            |         t2 = v0 + 0x10;
    0x0000bde4 addiu t1, v0, 0x14            |         t1 = v0 + 0x14;
    0x0000bde8 addiu a3, v0, 0x18            |         a3 = v0 + 0x18;
    0x0000bdec addiu a2, v0, 0x1c            |         a2 = v0 + 0x1c;
    0x0000bdf0 addu t6, t8, v0               |         t6 = t8 + v0;
    0x0000bdf4 addiu a1, a1, 4               |         a1 += 4;
    0x0000bdf8 addu t5, t8, t5               |         t5 = t8 + t5;
    0x0000bdfc addu t4, t8, t4               |         t4 = t8 + t4;
    0x0000be00 addu t3, t8, t3               |         t3 = t8 + t3;
    0x0000be04 addu t2, t8, t2               |         t2 = t8 + t2;
    0x0000be08 addu t1, t8, t1               |         t1 = t8 + t1;
    0x0000be0c addu a3, t8, a3               |         a3 = t8 + a3;
    0x0000be10 addu a2, t8, a2               |         a2 = t8 + a2;
    0x0000be14 addiu v0, v0, 0x24            |         v0 += 0x24;
    0x0000be18 sw t9, (t8)                   |         *(t8) = t9;
                                             |         if (a0 != 0) {
    0x0000be1c beqz a0, 0xbe84               |             
    0x0000be20 sw zero, (t7)                 |             *(t7) = 0;
    0x0000be24 lw t7, (t6)                   |             t7 = *(t6);
    0x0000be28 sw t7, 4(t8)                  |             *((t8 + 4)) = t7;
    0x0000be2c sw zero, (t6)                 |             *(t6) = 0;
    0x0000be30 lw t6, (t5)                   |             t6 = *(t5);
    0x0000be34 sw t6, 8(t8)                  |             *((t8 + 8)) = t6;
    0x0000be38 sw zero, (t5)                 |             *(t5) = 0;
    0x0000be3c lw t5, (t4)                   |             t5 = *(t4);
    0x0000be40 sw t5, 0xc(t8)                |             *((t8 + 12)) = t5;
    0x0000be44 sw zero, (t4)                 |             *(t4) = 0;
    0x0000be48 lw t4, (t3)                   |             t4 = *(t3);
    0x0000be4c sw t4, 0x10(t8)               |             *((t8 + 16)) = t4;
    0x0000be50 sw zero, (t3)                 |             *(t3) = 0;
    0x0000be54 lw t3, (t2)                   |             t3 = *(t2);
    0x0000be58 sw t3, 0x14(t8)               |             *((t8 + 20)) = t3;
    0x0000be5c sw zero, (t2)                 |             *(t2) = 0;
    0x0000be60 lw t2, (t1)                   |             t2 = *(t1);
    0x0000be64 sw t2, 0x18(t8)               |             *((t8 + 24)) = t2;
    0x0000be68 sw zero, (t1)                 |             *(t1) = 0;
    0x0000be6c lw t1, (a3)                   |             t1 = *(a3);
    0x0000be70 sw t1, 0x1c(t8)               |             *((t8 + 28)) = t1;
    0x0000be74 sw zero, (a3)                 |             *(a3) = 0;
    0x0000be78 lw a3, (a2)                   |             a3 = *(a2);
    0x0000be7c sw a3, 0x20(t8)               |             *((t8 + 32)) = a3;
    0x0000be80 sw zero, (a2)                 |             *(a2) = 0;
                                             |         }
    0x0000be84 addiu a0, a0, 9               |         a0 += 9;
    0x0000be88 lw t9, -0x7fc4(gp)            |         t9 = *((gp - 8177));
    0x0000be8c bne a0, t0, 0xbdc4            |         
                                             |     } while (a0 != t0);
    0x0000be90 b 0xc5a4                      |     goto label_44;
    0x0000be94 nop                           |     
                                             | label_30:
    0x0000be98 lb v1, (v0)                   |     v1 = *(v0);
    0x0000be9c addiu t8, zero, 0x5b          |     t8 = 0x5b;
    0x0000bea0 lw t9, -0x7f70(gp)            |     t9 = *((gp - 8156));
                                             |     if (v1 != t8) {
    0x0000bea4 bne v1, t8, 0xba3c            |         goto label_3;
                                             |     }
    0x0000bea8 lw t9, -0x7ef8(gp)            |     t9 = *((gp - 8126));
    0x0000beac move a0, v0                   |     a0 = v0;
    0x0000beb0 lw s5, -0x7edc(gp)            |     s5 = *((gp - 8119));
    0x0000beb4 addiu fp, sp, 0x88            |     fp = sp + 0x88;
    0x0000beb8 jalr t9                       |     t9 ();
    0x0000bebc lw gp, 0x10(sp)               |     gp = *(var_10h);
    0x0000bec0 lw t9, -0x7f70(gp)            |     t9 = *((gp - 8156));
    0x0000bec4 move a0, s1                   |     a0 = s1;
    0x0000bec8 jalr t9                       |     t9 ();
    0x0000becc addiu t2, zero, 0x2d          |     t2 = 0x2d;
    0x0000bed0 lw gp, 0x10(sp)               |     gp = *(var_10h);
    0x0000bed4 addiu t1, zero, 0x2b          |     t1 = 0x2b;
    0x0000bed8 sw v0, 0x88(sp)               |     *(var_88h) = v0;
    0x0000bedc move t8, v0                   |     t8 = v0;
                                             | label_5:
    0x0000bee0 lb v0, (t8)                   |     v0 = *(t8);
    0x0000bee4 move a0, t8                   |     a0 = t8;
    0x0000bee8 lw t9, -0x7f24(gp)            |     t9 = *((gp - 8137));
    0x0000beec move a1, fp                   |     a1 = fp;
    0x0000bef0 addiu a2, zero, 0xa           |     a2 = 0xa;
    0x0000bef4 addiu t0, t8, 1               |     t0 = t8 + 1;
    0x0000bef8 sll a3, v0, 1                 |     a3 = v0 << 1;
                                             |     if (v0 == 0) {
    0x0000befc beqz v0, 0xba38               |         goto label_4;
                                             |     }
    0x0000bf00 lw v1, (s5)                   |     v1 = *(s5);
    0x0000bf04 addu a3, v1, a3               |     a3 = v1 + a3;
    0x0000bf08 lhu a3, (a3)                  |     a3 = *(a3);
    0x0000bf0c andi a3, a3, 8                |     a3 &= 8;
                                             |     if (a3 != 0) {
    0x0000bf10 bnez a3, 0xc648               |         goto label_45;
                                             |     }
    0x0000bf14 nop                           |     
                                             |     if (v0 == t2) {
    0x0000bf18 beq v0, t2, 0xc62c            |         goto label_46;
                                             |     }
    0x0000bf1c nop                           |     
                                             |     if (v0 == t1) {
    0x0000bf20 beq v0, t1, 0xc62c            |         goto label_46;
                                             |     }
    0x0000bf24 nop                           |     
                                             | label_16:
    0x0000bf28 sw t0, 0x88(sp)               |     *(var_88h) = t0;
    0x0000bf2c move t8, t0                   |     t8 = t0;
    0x0000bf30 b 0xbee0                      |     goto label_5;
                                             | label_31:
    0x0000bf34 lb v1, (v0)                   |     v1 = *(v0);
    0x0000bf38 addiu t8, zero, 0x5b          |     t8 = 0x5b;
    0x0000bf3c lw t9, -0x7f70(gp)            |     t9 = *((gp - 8156));
                                             |     if (v1 != t8) {
    0x0000bf40 bne v1, t8, 0xba3c            |         goto label_3;
                                             |     }
    0x0000bf44 lw t9, -0x7ef8(gp)            |     t9 = *((gp - 8126));
    0x0000bf48 move a0, v0                   |     a0 = v0;
    0x0000bf4c lw s5, -0x7edc(gp)            |     s5 = *((gp - 8119));
    0x0000bf50 move s3, zero                 |     s3 = 0;
    0x0000bf54 jalr t9                       |     t9 ();
    0x0000bf58 lw gp, 0x10(sp)               |     gp = *(var_10h);
    0x0000bf5c sw s6, 0x1c(sp)               |     *(var_1ch) = s6;
    0x0000bf60 lw fp, -0x7fd4(gp)            |     fp = *((gp - 8181));
    0x0000bf64 lw t9, -0x7f70(gp)            |     t9 = *((gp - 8156));
                                             | label_6:
    0x0000bf68 move a0, s1                   |     a0 = s1;
    0x0000bf6c jalr t9                       |     t9 ();
    0x0000bf70 lw t8, 0x90(sp)               |     t8 = *(var_90h);
    0x0000bf74 move a0, v0                   |     a0 = v0;
    0x0000bf78 lw gp, 0x10(sp)               |     gp = *(var_10h);
    0x0000bf7c sw t8, 0x24(sp)               |     *(var_24h) = t8;
    0x0000bf80 sw v0, 0x88(sp)               |     *(var_88h) = v0;
    0x0000bf84 sw v0, 0x84(sp)               |     *(var_84h) = v0;
                                             | label_15:
    0x0000bf88 lb t8, (a0)                   |     t8 = *(a0);
                                             |     if (t8 == 0) {
    0x0000bf8c beqz t8, 0xbfd4               |         goto label_47;
                                             |     }
    0x0000bf90 nop                           |     
                                             |     do {
    0x0000bf94 lw v0, (s5)                   |         v0 = *(s5);
    0x0000bf98 sll v1, t8, 1                 |         v1 = t8 << 1;
    0x0000bf9c addu v1, v0, v1               |         v1 = v0 + v1;
    0x0000bfa0 lhu v1, (v1)                  |         v1 = *(v1);
    0x0000bfa4 andi v1, v1, 8                |         v1 &= 8;
    0x0000bfa8 addiu v1, zero, 0x2d          |         v1 = 0x2d;
                                             |         if (v1 != 0) {
    0x0000bfac bnez v1, 0xc5d0               |             goto label_48;
                                             |         }
    0x0000bfb0 addiu v1, zero, 0x2b          |         v1 = 0x2b;
                                             |         if (t8 == v1) {
    0x0000bfb4 beq t8, v1, 0xc5b4            |             goto label_49;
                                             |         }
                                             |         if (t8 == v1) {
    0x0000bfb8 beq t8, v1, 0xc5b4            |             goto label_49;
                                             |         }
    0x0000bfbc nop                           |         
                                             | label_14:
    0x0000bfc0 addiu a0, a0, 1               |         a0++;
    0x0000bfc4 sw a0, 0x84(sp)               |         *(var_84h) = a0;
    0x0000bfc8 lb t8, (a0)                   |         t8 = *(a0);
    0x0000bfcc bnez t8, 0xbf94               |         
                                             |     } while (t8 != 0);
    0x0000bfd0 nop                           |     
                                             | label_47:
    0x0000bfd4 addiu s3, s3, 1               |     s3++;
    0x0000bfd8 addiu t8, zero, 4             |     t8 = 4;
    0x0000bfdc lw t9, -0x7f70(gp)            |     t9 = *((gp - 8156));
                                             |     if (s3 != t8) {
    0x0000bfe0 bne s3, t8, 0xbf68            |         goto label_6;
                                             |     }
    0x0000bfe4 lw t8, 0x1c(sp)               |     t8 = *(var_1ch);
    0x0000bfe8 addiu a0, sp, 0x18            |     a0 = sp + 0x18;
    0x0000bfec lw v1, 0x28(sp)               |     v1 = *(var_28h);
    0x0000bff0 lw t9, -0x7fd4(gp)            |     t9 = *((gp - 8181));
    0x0000bff4 mult v1, t8                   |     __asm ("mult v1, t8");
    0x0000bff8 sw v1, 0x90(sp)               |     *(var_90h) = v1;
    0x0000bffc addiu t9, t9, -0x59a8         |     t9 += -0x59a8;
    0x0000c000 mflo s3                       |     __asm ("mflo s3");
    0x0000c004 mult t8, s3                   |     __asm ("mult t8, s3");
    0x0000c008 mflo s3                       |     __asm ("mflo s3");
    0x0000c00c jalr t9                       |     t9 ();
    0x0000c010 lw gp, 0x10(sp)               |     gp = *(var_10h);
                                             |     if (s2 == 0) {
    0x0000c014 beqz s2, 0xcb0c               |         goto label_50;
                                             |     }
    0x0000c018 move t8, s2                   |     t8 = s2;
    0x0000c01c b 0xc024                      |     
                                             |     while (v1 != 0) {
    0x0000c020 move t8, v1                   |         t8 = v1;
    0x0000c024 lw v1, 0x20(t8)               |         v1 = *((t8 + 8));
    0x0000c028 bnez v1, 0xc020               |         
                                             |     }
    0x0000c02c nop                           |     
    0x0000c030 sw v0, 0x20(t8)               |     *((t8 + 32)) = v0;
    0x0000c034 b 0xba38                      |     goto label_4;
                                             | label_32:
    0x0000c038 addiu t8, zero, 0x5b          |     t8 = 0x5b;
                                             |     if (t8 != v1) {
    0x0000c03c bne t8, v1, 0xba38            |         goto label_4;
                                             |     }
    0x0000c040 lb v1, (v0)                   |     v1 = *(v0);
    0x0000c044 lw t9, -0x7f70(gp)            |     t9 = *((gp - 8156));
                                             |     if (v1 != t8) {
    0x0000c048 bne v1, t8, 0xba3c            |         goto label_3;
                                             |     }
    0x0000c04c lw t9, -0x7ef8(gp)            |     t9 = *((gp - 8126));
    0x0000c050 move a0, v0                   |     a0 = v0;
    0x0000c054 lw s5, -0x7edc(gp)            |     s5 = *((gp - 8119));
    0x0000c058 move fp, zero                 |     fp = 0;
    0x0000c05c jalr t9                       |     t9 ();
    0x0000c060 lw gp, 0x10(sp)               |     gp = *(var_10h);
                                             | label_7:
    0x0000c064 lw t9, -0x7f70(gp)            |     t9 = *((gp - 8156));
    0x0000c068 move a0, s1                   |     a0 = s1;
    0x0000c06c jalr t9                       |     t9 ();
    0x0000c070 move a1, s3                   |     a1 = s3;
    0x0000c074 lw gp, 0x10(sp)               |     gp = *(var_10h);
    0x0000c078 sw v0, 0x88(sp)               |     *(var_88h) = v0;
    0x0000c07c lw t8, -0x7fd4(gp)            |     t8 = *((gp - 8181));
    0x0000c080 lw t9, -0x7ed0(gp)            |     t9 = *((gp - 8116));
    0x0000c084 addiu a0, t8, -0x8c0          |     a0 = t8 + -0x8c0;
    0x0000c088 sw s3, 0x18(sp)               |     *(var_18h) = s3;
    0x0000c08c jalr t9                       |     t9 ();
    0x0000c090 lw t8, 0x88(sp)               |     t8 = *(var_88h);
    0x0000c094 lw gp, 0x10(sp)               |     gp = *(var_10h);
    0x0000c098 sw t8, 0x7c(sp)               |     *(var_7ch) = t8;
                                             |     if (fp == 0) {
    0x0000c09c beqz fp, 0xc89c               |         goto label_51;
                                             |     }
    0x0000c0a0 move a0, t8                   |     a0 = t8;
    0x0000c0a4 addiu a3, zero, 0x2d          |     a3 = 0x2d;
    0x0000c0a8 addiu t0, sp, 0x7c            |     t0 = sp + 0x7c;
                                             | label_20:
    0x0000c0ac lb t8, (a0)                   |     t8 = *(a0);
    0x0000c0b0 sll v1, t8, 1                 |     v1 = t8 << 1;
                                             |     if (t8 == 0) {
    0x0000c0b4 beqz t8, 0xc0f4               |         goto label_52;
                                             |     }
                                             |     do {
    0x0000c0b8 lw v0, (s5)                   |         v0 = *(s5);
    0x0000c0bc addu v1, v0, v1               |         v1 = v0 + v1;
    0x0000c0c0 lhu v1, (v1)                  |         v1 = *(v1);
    0x0000c0c4 andi v1, v1, 8                |         v1 &= 8;
    0x0000c0c8 lw t9, -0x7f24(gp)            |         t9 = *((gp - 8137));
                                             |         if (v1 != 0) {
    0x0000c0cc bnez v1, 0xc6e8               |             goto label_53;
                                             |         }
    0x0000c0d0 addiu v1, zero, 0x2b          |         v1 = 0x2b;
                                             |         if (t8 == a3) {
    0x0000c0d4 beq t8, a3, 0xc6cc            |             goto label_54;
                                             |         }
                                             |         if (t8 == v1) {
    0x0000c0d8 beq t8, v1, 0xc6cc            |             goto label_54;
                                             |         }
    0x0000c0dc nop                           |         
                                             | label_19:
    0x0000c0e0 addiu a0, a0, 1               |         a0++;
    0x0000c0e4 sw a0, 0x7c(sp)               |         *(var_7ch) = a0;
    0x0000c0e8 lb t8, (a0)                   |         t8 = *(a0);
    0x0000c0ec sll v1, t8, 1                 |         v1 = t8 << 1;
    0x0000c0f0 bnez t8, 0xc0b8               |         
                                             |     } while (t8 != 0);
                                             | label_52:
    0x0000c0f4 addiu fp, fp, 1               |     fp++;
    0x0000c0f8 addiu t8, zero, 2             |     t8 = 2;
    0x0000c0fc lw v0, -0x7fd4(gp)            |     v0 = *((gp - 8181));
                                             |     if (fp != t8) {
    0x0000c100 bne fp, t8, 0xc064            |         goto label_7;
                                             |     }
    0x0000c104 addiu a0, sp, 0x18            |     a0 = sp + 0x18;
    0x0000c108 addiu t9, v0, -0x5bd0         |     t9 = v0 + -0x5bd0;
    0x0000c10c lw s3, 0x1c(sp)               |     s3 = *(var_1ch);
    0x0000c110 jalr t9                       |     t9 ();
    0x0000c114 lw gp, 0x10(sp)               |     gp = *(var_10h);
                                             |     if (s2 == 0) {
    0x0000c118 beqz s2, 0xcb0c               |         goto label_50;
                                             |     }
    0x0000c11c move t8, s2                   |     t8 = s2;
    0x0000c120 b 0xc128                      |     
                                             |     while (v1 != 0) {
    0x0000c124 move t8, v1                   |         t8 = v1;
    0x0000c128 lw v1, 0x20(t8)               |         v1 = *((t8 + 8));
    0x0000c12c bnez v1, 0xc124               |         
                                             |     }
    0x0000c130 nop                           |     
    0x0000c134 sw v0, 0x20(t8)               |     *((t8 + 32)) = v0;
    0x0000c138 b 0xba38                      |     goto label_4;
                                             | label_41:
    0x0000c13c addiu v0, zero, 1             |     v0 = 1;
    0x0000c140 lw t9, -0x7f04(gp)            |     t9 = *((gp - 8129));
                                             |     if (t8 == v0) {
    0x0000c144 beq t8, v0, 0xc360            |         goto label_55;
                                             |     }
                                             | label_13:
    0x0000c148 lw s5, 0x20(s5)               |     s5 = *((s5 + 8));
    0x0000c14c lw t9, -0x7ee4(gp)            |     t9 = *((gp - 8121));
                                             |     if (s5 != 0) {
    0x0000c150 bnez s5, 0xbc00               |         goto label_8;
                                             |     }
    0x0000c154 lw t9, -0x7f64(gp)            |     t9 = *((gp - 8153));
    0x0000c158 move a0, s1                   |     a0 = s1;
    0x0000c15c addiu s5, zero, 0x80          |     s5 = 0x80;
    0x0000c160 jalr t9                       |     t9 ();
    0x0000c164 addiu a0, zero, 8             |     a0 = 8;
    0x0000c168 lw gp, 0x10(sp)               |     gp = *(var_10h);
    0x0000c16c lw s2, 0x20(s0)               |     s2 = *((s0 + 8));
    0x0000c170 lw t9, -0x7f04(gp)            |     t9 = *((gp - 8129));
    0x0000c174 lw t8, (s2)                   |     t8 = *(s2);
    0x0000c178 lw s1, 4(t8)                  |     s1 = *((t8 + 1));
    0x0000c17c jalr t9                       |     t9 ();
    0x0000c180 addiu a0, zero, 0x80          |     a0 = 0x80;
    0x0000c184 lw gp, 0x10(sp)               |     gp = *(var_10h);
    0x0000c188 move s3, v0                   |     s3 = v0;
    0x0000c18c lw t9, -0x7f04(gp)            |     t9 = *((gp - 8129));
    0x0000c190 sw v0, 0x18(s0)               |     *((s0 + 6)) = v0;
    0x0000c194 jalr t9                       |     t9 ();
    0x0000c198 addiu a0, zero, 0x80          |     a0 = 0x80;
    0x0000c19c lw gp, 0x10(sp)               |     gp = *(var_10h);
    0x0000c1a0 move s4, v0                   |     s4 = v0;
    0x0000c1a4 lw t9, -0x7f04(gp)            |     t9 = *((gp - 8129));
    0x0000c1a8 sw v0, (s3)                   |     *(s3) = v0;
    0x0000c1ac jalr t9                       |     t9 ();
    0x0000c1b0 lw gp, 0x10(sp)               |     gp = *(var_10h);
    0x0000c1b4 sw v0, 4(s3)                  |     *((s3 + 1)) = v0;
    0x0000c1b8 move s3, zero                 |     s3 = 0;
    0x0000c1bc b 0xc1c4                      |     
                                             |     while (s3 != s5) {
    0x0000c1c0 lw s4, (t8)                   |         s4 = *(t8);
    0x0000c1c4 lw t9, -0x7f04(gp)            |         t9 = *((gp - 8129));
    0x0000c1c8 addiu a0, zero, 0x1000        |         a0 = 0x1000;
    0x0000c1cc addu s4, s4, s3               |         s4 += s3;
    0x0000c1d0 jalr t9                       |         t9 ();
    0x0000c1d4 addiu a0, zero, 0x1000        |         a0 = 0x1000;
    0x0000c1d8 lw gp, 0x10(sp)               |         gp = *(var_10h);
    0x0000c1dc sw v0, (s4)                   |         *(s4) = v0;
    0x0000c1e0 lw t8, 0x18(s0)               |         t8 = *((s0 + 6));
    0x0000c1e4 lw t9, -0x7f04(gp)            |         t9 = *((gp - 8129));
    0x0000c1e8 lw s4, 4(t8)                  |         s4 = *((t8 + 1));
    0x0000c1ec jalr t9                       |         t9 ();
    0x0000c1f0 addu s4, s4, s3               |         s4 += s3;
    0x0000c1f4 addiu s3, s3, 4               |         s3 += 4;
    0x0000c1f8 lw gp, 0x10(sp)               |         gp = *(var_10h);
    0x0000c1fc sw v0, (s4)                   |         *(s4) = v0;
    0x0000c200 lw t8, 0x18(s0)               |         t8 = *((s0 + 6));
    0x0000c204 bne s3, s5, 0xc1c0            |         
                                             |     }
    0x0000c208 lw t1, (t8)                   |     t1 = *(t8);
    0x0000c20c move a3, zero                 |     a3 = 0;
    0x0000c210 lw t0, 4(t8)                  |     t0 = *((t8 + 1));
    0x0000c214 addiu a2, zero, 0x1000        |     a2 = 0x1000;
    0x0000c218 addiu t2, zero, 0x80          |     t2 = 0x80;
    0x0000c21c addu v0, t0, a3               |     v0 = t0 + a3;
                                             | label_9:
    0x0000c220 addu t8, t1, a3               |     t8 = t1 + a3;
    0x0000c224 lw a0, (v0)                   |     a0 = *(v0);
    0x0000c228 lw a1, (t8)                   |     a1 = *(t8);
    0x0000c22c move t8, zero                 |     t8 = 0;
                                             |     do {
    0x0000c230 addu v1, a1, t8               |         v1 = a1 + t8;
    0x0000c234 addu v0, a0, t8               |         v0 = a0 + t8;
    0x0000c238 addiu t8, t8, 4               |         t8 += 4;
    0x0000c23c sw zero, (v1)                 |         *(v1) = 0;
    0x0000c240 sw zero, (v0)                 |         *(v0) = 0;
    0x0000c244 bne t8, a2, 0xc230            |         
                                             |     } while (t8 != a2);
    0x0000c248 addiu a3, a3, 4               |     a3 += 4;
    0x0000c24c addu v0, t0, a3               |     v0 = t0 + a3;
                                             |     if (a3 != t2) {
    0x0000c250 bne a3, t2, 0xc220            |         goto label_9;
                                             |     }
    0x0000c254 lw t9, -0x7f04(gp)            |     t9 = *((gp - 8129));
    0x0000c258 addiu a0, zero, 0x80          |     a0 = 0x80;
    0x0000c25c move s6, zero                 |     s6 = 0;
    0x0000c260 addiu s5, zero, 0x80          |     s5 = 0x80;
    0x0000c264 jalr t9                       |     t9 ();
    0x0000c268 addiu a0, zero, 0x80          |     a0 = 0x80;
    0x0000c26c lw gp, 0x10(sp)               |     gp = *(var_10h);
    0x0000c270 addiu s7, zero, 8             |     s7 = 8;
    0x0000c274 lw t9, -0x7f04(gp)            |     t9 = *((gp - 8129));
    0x0000c278 sw v0, 0x10(s0)               |     *((s0 + 4)) = v0;
    0x0000c27c jalr t9                       |     t9 ();
    0x0000c280 mult s1, s1                   |     __asm ("mult s1, s1");
    0x0000c284 lw gp, 0x10(sp)               |     gp = *(var_10h);
    0x0000c288 sw v0, 0x14(s0)               |     *((s0 + 5)) = v0;
    0x0000c28c mflo s1                       |     __asm ("mflo s1");
    0x0000c290 sll s4, s1, 2                 |     s4 = s1 << 2;
                                             | label_10:
    0x0000c294 move s1, zero                 |     s1 = 0;
    0x0000c298 addu fp, s0, s6               |     fp = s0 + s6;
                                             |     do {
    0x0000c29c lw t9, -0x7f04(gp)            |         t9 = *((gp - 8129));
    0x0000c2a0 move a0, s4                   |         a0 = s4;
    0x0000c2a4 lw s3, 0x10(fp)               |         s3 = *(arg_10h);
    0x0000c2a8 jalr t9                       |         t9 ();
    0x0000c2ac addu s3, s3, s1               |         s3 += s1;
    0x0000c2b0 addiu s1, s1, 4               |         s1 += 4;
    0x0000c2b4 lw gp, 0x10(sp)               |         gp = *(var_10h);
    0x0000c2b8 sw v0, (s3)                   |         *(s3) = v0;
    0x0000c2bc bne s1, s5, 0xc29c            |         
                                             |     } while (s1 != s5);
    0x0000c2c0 addiu s6, s6, 4               |     s6 += 4;
    0x0000c2c4 move a0, zero                 |     a0 = 0;
                                             |     if (s6 != s7) {
    0x0000c2c8 bne s6, s7, 0xc294            |         goto label_10;
                                             |     }
    0x0000c2cc addiu v0, zero, 1             |     v0 = 1;
    0x0000c2d0 b 0xc2e0                      |     
                                             |     while (t8 != v0) {
    0x0000c2d4 lw s2, 0x20(s2)               |         s2 = *((s2 + 8));
    0x0000c2d8 lw t9, -0x7f04(gp)            |         t9 = *((gp - 8129));
                                             |         if (s2 == 0) {
    0x0000c2dc beqz s2, 0xc308               |             goto label_56;
                                             |         }
                                             | label_11:
    0x0000c2e0 lw t8, 4(s2)                  |         t8 = *((s2 + 1));
    0x0000c2e4 bne t8, v0, 0xc2d4            |         
                                             |     }
    0x0000c2e8 nop                           |     
    0x0000c2ec lw t8, (s2)                   |     t8 = *(s2);
    0x0000c2f0 lw s2, 0x20(s2)               |     s2 = *((s2 + 8));
    0x0000c2f4 lw t8, 4(t8)                  |     t8 = *((t8 + 1));
    0x0000c2f8 slt v1, a0, t8                |     v1 = (a0 < t8) ? 1 : 0;
                                             |     if (v1 != 0) {
    0x0000c2fc movn a0, t8, v1               |         a0 = t8;
                                             |         goto label_57;
                                             |     }
                                             |     if (s2 != 0) {
                                             | label_57:
    0x0000c300 bnez s2, 0xc2e0               |         goto label_11;
                                             |     }
    0x0000c304 lw t9, -0x7f04(gp)            |     t9 = *((gp - 8129));
                                             | label_56:
    0x0000c308 sll a0, a0, 2                 |     a0 <<= 2;
    0x0000c30c jalr t9                       |     t9 ();
    0x0000c310 lw gp, 0x10(sp)               |     gp = *(var_10h);
    0x0000c314 sw v0, 0x1c(s0)               |     *((s0 + 7)) = v0;
    0x0000c318 lw a0, -0x7fd4(gp)            |     a0 = *((gp - 8181));
    0x0000c31c lw t9, -0x7ef8(gp)            |     t9 = *((gp - 8126));
    0x0000c320 addiu a0, a0, -0x834          |     a0 += -0x834;
    0x0000c324 jalr t9                       |     t9 ();
    0x0000c328 ldc1 f20, 0xc8(sp)            |     __asm ("ldc1 f20, (var_c8h)");
    0x0000c32c move v0, s0                   |     v0 = s0;
    0x0000c330 lw ra, 0xc4(sp)               |     ra = *(var_c4h);
    0x0000c334 lw fp, 0xc0(sp)               |     fp = *(var_c0h);
    0x0000c338 lw s7, 0xbc(sp)               |     s7 = *(var_bch);
    0x0000c33c lw s6, 0xb8(sp)               |     s6 = *(var_b8h);
    0x0000c340 lw s5, 0xb4(sp)               |     s5 = *(var_b4h);
    0x0000c344 lw s4, 0xb0(sp)               |     s4 = *(var_b0h);
    0x0000c348 lw s3, 0xac(sp)               |     s3 = *(var_ach);
    0x0000c34c lw s2, 0xa8(sp)               |     s2 = *(var_a8h);
    0x0000c350 lw s1, 0xa4(sp)               |     s1 = *(var_a4h);
    0x0000c354 lw s0, 0xa0(sp)               |     s0 = *(var_a0h);
    0x0000c358 addiu sp, sp, 0xd0            |     
    0x0000c35c jr ra                         |     return v1;
                                             | label_55:
    0x0000c360 lw t8, (s5)                   |     t8 = *(s5);
    0x0000c364 lw s3, 4(t8)                  |     s3 = *((t8 + 1));
    0x0000c368 lw s2, (t8)                   |     s2 = *(t8);
    0x0000c36c sll s7, s3, 2                 |     s7 = s3 << 2;
    0x0000c370 addu v1, fp, s7               |     v1 = fp + s7;
    0x0000c374 move a0, s7                   |     a0 = s7;
    0x0000c378 sw v1, 0x90(sp)               |     *(var_90h) = v1;
    0x0000c37c jalr t9                       |     t9 ();
    0x0000c380 move a0, s1                   |     a0 = s1;
    0x0000c384 lw gp, 0x10(sp)               |     gp = *(var_10h);
    0x0000c388 move a1, fp                   |     a1 = fp;
    0x0000c38c move a2, zero                 |     a2 = 0;
    0x0000c390 lw t9, -0x7f3c(gp)            |     t9 = *((gp - 8143));
    0x0000c394 move s6, v0                   |     s6 = v0;
    0x0000c398 jalr t9                       |     t9 ();
    0x0000c39c move a0, s6                   |     a0 = s6;
    0x0000c3a0 lw gp, 0x10(sp)               |     gp = *(var_10h);
    0x0000c3a4 addiu a1, zero, 1             |     a1 = 1;
    0x0000c3a8 move a2, s7                   |     a2 = s7;
    0x0000c3ac lw t9, -0x7f54(gp)            |     t9 = *((gp - 8149));
    0x0000c3b0 move a3, s1                   |     a3 = s1;
    0x0000c3b4 jalr t9                       |     t9 ();
    0x0000c3b8 lw gp, 0x10(sp)               |     gp = *(var_10h);
                                             |     if (s3 <= 0) {
    0x0000c3bc blez s3, 0xc404               |         goto label_58;
                                             |     }
    0x0000c3c0 lw a1, 0x10(s5)               |     a1 = *((s5 + 4));
    0x0000c3c4 move t8, s6                   |     t8 = s6;
    0x0000c3c8 addu v0, s7, s6               |     v0 = s7 + s6;
                                             |     do {
    0x0000c3cc lbu t1, 1(t8)                 |         t1 = *((t8 + 1));
    0x0000c3d0 addiu t8, t8, 4               |         t8 += 4;
    0x0000c3d4 addiu a1, a1, 4               |         a1 += 4;
    0x0000c3d8 lbu t0, -2(t8)                |         t0 = *((t8 - 2));
    0x0000c3dc sll t1, t1, 8                 |         t1 <<= 8;
    0x0000c3e0 lbu a3, -4(t8)                |         a3 = *((t8 - 4));
    0x0000c3e4 lbu a2, -1(t8)                |         a2 = *((t8 - 1));
    0x0000c3e8 sll t0, t0, 0x10              |         t0 <<= 0x10;
    0x0000c3ec addu t0, t1, t0               |         t0 = t1 + t0;
    0x0000c3f0 addu a3, t0, a3               |         a3 = t0 + a3;
    0x0000c3f4 sll a2, a2, 0x18              |         a2 <<= 0x18;
    0x0000c3f8 addu a2, a3, a2               |         a2 = a3 + a2;
    0x0000c3fc sw a2, -4(a1)                 |         *((a1 - 1)) = a2;
    0x0000c400 bne t8, v0, 0xc3cc            |         
                                             |     } while (t8 != v0);
                                             | label_58:
    0x0000c404 lw t9, -0x7fc4(gp)            |     t9 = *((gp - 8177));
    0x0000c408 move a0, s6                   |     a0 = s6;
    0x0000c40c jalr t9                       |     t9 ();
    0x0000c410 mult s2, s3                   |     __asm ("mult s2, s3");
    0x0000c414 lw gp, 0x10(sp)               |     gp = *(var_10h);
    0x0000c418 lw t9, -0x7f04(gp)            |     t9 = *((gp - 8129));
    0x0000c41c mflo a0                       |     __asm ("mflo a0");
    0x0000c420 mflo fp                       |     __asm ("mflo fp");
    0x0000c424 jalr t9                       |     t9 ();
    0x0000c428 lw gp, 0x10(sp)               |     gp = *(var_10h);
    0x0000c42c move a0, s1                   |     a0 = s1;
    0x0000c430 lw a1, 0x90(sp)               |     a1 = *(var_90h);
    0x0000c434 move a2, zero                 |     a2 = 0;
    0x0000c438 lw t9, -0x7f3c(gp)            |     t9 = *((gp - 8143));
    0x0000c43c move s7, v0                   |     s7 = v0;
    0x0000c440 jalr t9                       |     t9 ();
    0x0000c444 lw gp, 0x10(sp)               |     gp = *(var_10h);
                                             |     if (fp <= 0) {
    0x0000c448 blez fp, 0xc478               |         goto label_59;
                                             |     }
    0x0000c44c move s4, s7                   |     s4 = s7;
    0x0000c450 addu s6, fp, s7               |     s6 = fp + s7;
                                             |     do {
    0x0000c454 lw t9, -0x7f54(gp)            |         t9 = *((gp - 8149));
    0x0000c458 move a0, s4                   |         a0 = s4;
    0x0000c45c addiu a1, zero, 1             |         a1 = 1;
    0x0000c460 addiu a2, zero, 1             |         a2 = 1;
    0x0000c464 move a3, s1                   |         a3 = s1;
    0x0000c468 addiu s4, s4, 1               |         s4++;
    0x0000c46c jalr t9                       |         t9 ();
    0x0000c470 lw gp, 0x10(sp)               |         gp = *(var_10h);
    0x0000c474 bne s4, s6, 0xc454            |         
                                             |     } while (s4 != s6);
                                             | label_59:
    0x0000c478 lw v1, 0x90(sp)               |     v1 = *(var_90h);
    0x0000c47c addu fp, v1, fp               |     fp = v1 + fp;
                                             |     if (s3 <= 0) {
    0x0000c480 blez s3, 0xc4c8               |         goto label_60;
                                             |     }
    0x0000c484 move t8, s7                   |     t8 = s7;
    0x0000c488 move a2, zero                 |     a2 = 0;
                                             | label_12:
    0x0000c48c addu a1, t8, s2               |     a1 = t8 + s2;
                                             |     if (s2 <= 0) {
    0x0000c490 blez s2, 0xc4bc               |         goto label_61;
                                             |     }
    0x0000c494 lw a0, 8(s5)                  |     a0 = *((s5 + 2));
    0x0000c498 sll v0, a2, 2                 |     v0 = a2 << 2;
    0x0000c49c addu a1, s2, t8               |     a1 = s2 + t8;
    0x0000c4a0 addu v0, a0, v0               |     v0 = a0 + v0;
    0x0000c4a4 lw v0, (v0)                   |     v0 = *(v0);
                                             |     do {
    0x0000c4a8 lb a0, (t8)                   |         a0 = *(t8);
    0x0000c4ac addiu v0, v0, 4               |         v0 += 4;
    0x0000c4b0 addiu t8, t8, 1               |         t8++;
    0x0000c4b4 sw a0, -4(v0)                 |         *((v0 - 1)) = a0;
    0x0000c4b8 bne a1, t8, 0xc4a8            |         
                                             |     } while (a1 != t8);
                                             | label_61:
    0x0000c4bc addiu a2, a2, 1               |     a2++;
    0x0000c4c0 move t8, a1                   |     t8 = a1;
                                             |     if (a2 != s3) {
    0x0000c4c4 bne a2, s3, 0xc48c            |         goto label_12;
                                             |     }
                                             | label_60:
    0x0000c4c8 lw t9, -0x7fc4(gp)            |     t9 = *((gp - 8177));
    0x0000c4cc move a0, s7                   |     a0 = s7;
    0x0000c4d0 jalr t9                       |     t9 ();
    0x0000c4d4 lw gp, 0x10(sp)               |     gp = *(var_10h);
    0x0000c4d8 b 0xc148                      |     goto label_13;
                                             | label_40:
    0x0000c4dc lw t9, -0x7fd4(gp)            |     t9 = *((gp - 8181));
                                             | label_38:
    0x0000c4e0 addiu t9, t9, -0x6c40         |     t9 += -0x6c40;
    0x0000c4e4 move a0, s0                   |     a0 = s0;
    0x0000c4e8 jalr t9                       |     t9 ();
    0x0000c4ec lw gp, 0x10(sp)               |     gp = *(var_10h);
    0x0000c4f0 lw t9, -0x7fc4(gp)            |     t9 = *((gp - 8177));
    0x0000c4f4 move a0, s0                   |     a0 = s0;
    0x0000c4f8 jalr t9                       |     t9 ();
                                             | label_26:
    0x0000c4fc ldc1 f20, 0xc8(sp)            |     __asm ("ldc1 f20, (var_c8h)");
    0x0000c500 lw ra, 0xc4(sp)               |     ra = *(var_c4h);
    0x0000c504 lw fp, 0xc0(sp)               |     fp = *(var_c0h);
    0x0000c508 move v0, zero                 |     v0 = 0;
    0x0000c50c lw s7, 0xbc(sp)               |     s7 = *(var_bch);
    0x0000c510 lw s6, 0xb8(sp)               |     s6 = *(var_b8h);
    0x0000c514 lw s5, 0xb4(sp)               |     s5 = *(var_b4h);
    0x0000c518 lw s4, 0xb0(sp)               |     s4 = *(var_b0h);
    0x0000c51c lw s3, 0xac(sp)               |     s3 = *(var_ach);
    0x0000c520 lw s2, 0xa8(sp)               |     s2 = *(var_a8h);
    0x0000c524 lw s1, 0xa4(sp)               |     s1 = *(var_a4h);
    0x0000c528 lw s0, 0xa0(sp)               |     s0 = *(var_a0h);
    0x0000c52c addiu sp, sp, 0xd0            |     
    0x0000c530 jr ra                         |     return v1;
                                             | label_42:
    0x0000c534 lw t9, -0x7fc4(gp)            |     t9 = *((gp - 8177));
    0x0000c538 move a0, fp                   |     a0 = fp;
    0x0000c53c jalr t9                       |     t9 ();
    0x0000c540 mult s6, s4                   |     __asm ("mult s6, s4");
    0x0000c544 lw gp, 0x10(sp)               |     gp = *(var_10h);
    0x0000c548 lw t9, -0x7f04(gp)            |     t9 = *((gp - 8129));
    0x0000c54c mflo t2                       |     __asm ("mflo t2");
    0x0000c550 mult s2, t2                   |     __asm ("mult s2, t2");
    0x0000c554 mflo a0                       |     __asm ("mflo a0");
    0x0000c558 mflo s2                       |     __asm ("mflo s2");
    0x0000c55c jalr t9                       |     t9 ();
    0x0000c560 lw gp, 0x10(sp)               |     gp = *(var_10h);
    0x0000c564 move a1, s3                   |     a1 = s3;
    0x0000c568 move a0, s1                   |     a0 = s1;
    0x0000c56c move a2, zero                 |     a2 = 0;
    0x0000c570 lw t9, -0x7f3c(gp)            |     t9 = *((gp - 8143));
    0x0000c574 addu fp, s3, s2               |     fp = s3 + s2;
    0x0000c578 move s3, v0                   |     s3 = v0;
    0x0000c57c jalr t9                       |     t9 ();
    0x0000c580 move a0, s3                   |     a0 = s3;
    0x0000c584 lw gp, 0x10(sp)               |     gp = *(var_10h);
    0x0000c588 addiu a1, zero, 1             |     a1 = 1;
    0x0000c58c move a2, s2                   |     a2 = s2;
    0x0000c590 lw t9, -0x7f54(gp)            |     t9 = *((gp - 8149));
    0x0000c594 move a3, s1                   |     a3 = s1;
    0x0000c598 jalr t9                       |     t9 ();
    0x0000c59c lw gp, 0x10(sp)               |     gp = *(var_10h);
    0x0000c5a0 lw t9, -0x7fc4(gp)            |     t9 = *((gp - 8177));
                                             | label_44:
    0x0000c5a4 move a0, s3                   |     a0 = s3;
    0x0000c5a8 jalr t9                       |     t9 ();
    0x0000c5ac lw gp, 0x10(sp)               |     gp = *(var_10h);
    0x0000c5b0 b 0xc148                      |     goto label_13;
                                             | label_49:
    0x0000c5b4 lb t8, 1(a0)                  |     t8 = *((a0 + 1));
    0x0000c5b8 sll t8, t8, 1                 |     t8 <<= 1;
    0x0000c5bc addu v0, v0, t8               |     v0 += t8;
    0x0000c5c0 lhu t8, (v0)                  |     t8 = *(v0);
    0x0000c5c4 andi t8, t8, 8                |     t8 &= 8;
                                             |     if (t8 == 0) {
    0x0000c5c8 beqz t8, 0xbfc0               |         goto label_14;
                                             |     }
    0x0000c5cc nop                           |     
                                             | label_48:
    0x0000c5d0 lw t9, -0x7f24(gp)            |     t9 = *((gp - 8137));
    0x0000c5d4 addiu a1, sp, 0x84            |     a1 = sp + 0x84;
    0x0000c5d8 addiu a2, zero, 0xa           |     a2 = 0xa;
    0x0000c5dc jalr t9                       |     t9 ();
    0x0000c5e0 lw gp, 0x10(sp)               |     gp = *(var_10h);
                                             |     if (s3 == 0) {
    0x0000c5e4 beqz s3, 0xc72c               |         goto label_62;
                                             |     }
    0x0000c5e8 addiu t8, zero, 1             |     t8 = 1;
    0x0000c5ec addiu t8, zero, 2             |     t8 = 2;
                                             |     if (s3 == t8) {
    0x0000c5f0 beq s3, t8, 0xc750            |         goto label_63;
                                             |     }
    0x0000c5f4 addiu t8, zero, 3             |     t8 = 3;
                                             |     if (s3 == t8) {
    0x0000c5f8 beq s3, t8, 0xc770            |         goto label_64;
                                             |     }
    0x0000c5fc move a1, v0                   |     a1 = v0;
                                             |     if (s3 != t8) {
    0x0000c600 beq s3, t8, 0xc60c            |         
    0x0000c604 lw a0, 0x84(sp)               |         a0 = *(var_84h);
    0x0000c608 b 0xbf88                      |         goto label_15;
                                             |     }
    0x0000c60c lw a0, -0x7fd4(gp)            |     a0 = *((gp - 8181));
    0x0000c610 lw t9, -0x7ed0(gp)            |     t9 = *((gp - 8116));
    0x0000c614 addiu a0, a0, -0x8e8          |     a0 += -0x8e8;
    0x0000c618 sw v0, 0x30(sp)               |     *(var_30h) = v0;
    0x0000c61c jalr t9                       |     t9 ();
    0x0000c620 lw gp, 0x10(sp)               |     gp = *(var_10h);
    0x0000c624 lw a0, 0x84(sp)               |     a0 = *(var_84h);
    0x0000c628 b 0xbf88                      |     goto label_15;
                                             | label_46:
    0x0000c62c lb t8, 1(t8)                  |     t8 = *((t8 + 1));
    0x0000c630 sll t8, t8, 1                 |     t8 <<= 1;
    0x0000c634 addu v1, v1, t8               |     v1 += t8;
    0x0000c638 lhu t8, (v1)                  |     t8 = *(v1);
    0x0000c63c andi t8, t8, 8                |     t8 &= 8;
                                             |     if (t8 == 0) {
    0x0000c640 beqz t8, 0xbf28               |         goto label_16;
                                             |     }
    0x0000c644 nop                           |     
                                             | label_45:
    0x0000c648 sw t1, 0x9c(sp)               |     *(var_9ch) = t1;
    0x0000c64c sw t2, 0x98(sp)               |     *(var_98h) = t2;
    0x0000c650 jalr t9                       |     t9 ();
    0x0000c654 lw gp, 0x10(sp)               |     gp = *(var_10h);
    0x0000c658 move s6, v0                   |     s6 = v0;
    0x0000c65c lw t8, 0x88(sp)               |     t8 = *(var_88h);
    0x0000c660 lw t1, 0x9c(sp)               |     t1 = *(var_9ch);
    0x0000c664 lw t2, 0x98(sp)               |     t2 = *(var_98h);
    0x0000c668 b 0xbee0                      |     goto label_5;
                                             | label_36:
    0x0000c66c lb t8, 1(a0)                  |     t8 = *((a0 + 1));
    0x0000c670 sll t8, t8, 1                 |     t8 <<= 1;
    0x0000c674 addu v0, v0, t8               |     v0 += t8;
    0x0000c678 lhu t8, (v0)                  |     t8 = *(v0);
    0x0000c67c andi t8, t8, 8                |     t8 &= 8;
    0x0000c680 lw t9, -0x7f24(gp)            |     t9 = *((gp - 8137));
                                             |     if (t8 == 0) {
    0x0000c684 beqz t8, 0xbaf0               |         goto label_17;
                                             |     }
                                             | label_35:
    0x0000c688 move a1, t0                   |     a1 = t0;
    0x0000c68c sw a3, 0x98(sp)               |     *(var_98h) = a3;
    0x0000c690 addiu a2, zero, 0xa           |     a2 = 0xa;
    0x0000c694 sw t0, 0x9c(sp)               |     *(var_9ch) = t0;
    0x0000c698 jalr t9                       |     t9 ();
    0x0000c69c lw gp, 0x10(sp)               |     gp = *(var_10h);
    0x0000c6a0 move a1, v0                   |     a1 = v0;
    0x0000c6a4 move s7, v0                   |     s7 = v0;
    0x0000c6a8 lw a0, -0x7fd4(gp)            |     a0 = *((gp - 8181));
    0x0000c6ac lw t9, -0x7ed0(gp)            |     t9 = *((gp - 8116));
    0x0000c6b0 addiu a0, a0, -0x8dc          |     a0 += -0x8dc;
    0x0000c6b4 jalr t9                       |     t9 ();
    0x0000c6b8 lw gp, 0x10(sp)               |     gp = *(var_10h);
    0x0000c6bc lw a0, 0x80(sp)               |     a0 = *(var_80h);
    0x0000c6c0 lw a3, 0x98(sp)               |     a3 = *(var_98h);
    0x0000c6c4 lw t0, 0x9c(sp)               |     t0 = *(var_9ch);
    0x0000c6c8 b 0xbabc                      |     goto label_18;
                                             | label_54:
    0x0000c6cc lb t8, 1(a0)                  |     t8 = *((a0 + 1));
    0x0000c6d0 sll t8, t8, 1                 |     t8 <<= 1;
    0x0000c6d4 addu v0, v0, t8               |     v0 += t8;
    0x0000c6d8 lhu t8, (v0)                  |     t8 = *(v0);
    0x0000c6dc andi t8, t8, 8                |     t8 &= 8;
    0x0000c6e0 lw t9, -0x7f24(gp)            |     t9 = *((gp - 8137));
                                             |     if (t8 == 0) {
    0x0000c6e4 beqz t8, 0xc0e0               |         goto label_19;
                                             |     }
                                             | label_53:
    0x0000c6e8 move a1, t0                   |     a1 = t0;
    0x0000c6ec sw a3, 0x98(sp)               |     *(var_98h) = a3;
    0x0000c6f0 addiu a2, zero, 0xa           |     a2 = 0xa;
    0x0000c6f4 sw t0, 0x9c(sp)               |     *(var_9ch) = t0;
    0x0000c6f8 jalr t9                       |     t9 ();
    0x0000c6fc lw gp, 0x10(sp)               |     gp = *(var_10h);
    0x0000c700 move a1, v0                   |     a1 = v0;
    0x0000c704 sw v0, 0x24(sp)               |     *(var_24h) = v0;
    0x0000c708 lw a0, -0x7fd4(gp)            |     a0 = *((gp - 8181));
    0x0000c70c lw t9, -0x7ed0(gp)            |     t9 = *((gp - 8116));
    0x0000c710 addiu a0, a0, -0x8e8          |     a0 += -0x8e8;
    0x0000c714 jalr t9                       |     t9 ();
    0x0000c718 lw gp, 0x10(sp)               |     gp = *(var_10h);
    0x0000c71c lw a0, 0x7c(sp)               |     a0 = *(var_7ch);
    0x0000c720 lw a3, 0x98(sp)               |     a3 = *(var_98h);
    0x0000c724 lw t0, 0x9c(sp)               |     t0 = *(var_9ch);
    0x0000c728 b 0xc0ac                      |     goto label_20;
                                             | label_62:
    0x0000c72c lw a0, -0x7fd4(gp)            |     a0 = *((gp - 8181));
    0x0000c730 move a1, v0                   |     a1 = v0;
    0x0000c734 lw t9, -0x7ed0(gp)            |     t9 = *((gp - 8116));
    0x0000c738 addiu a0, a0, -0x928          |     a0 += -0x928;
    0x0000c73c sw v0, 0x28(sp)               |     *(var_28h) = v0;
    0x0000c740 jalr t9                       |     t9 ();
    0x0000c744 lw gp, 0x10(sp)               |     gp = *(var_10h);
    0x0000c748 lw a0, 0x84(sp)               |     a0 = *(var_84h);
    0x0000c74c b 0xbf88                      |     goto label_15;
                                             | label_63:
    0x0000c750 lw t9, -0x7ed0(gp)            |     t9 = *((gp - 8116));
    0x0000c754 addiu a0, fp, -0x910          |     a0 = fp + -0x910;
    0x0000c758 move a1, v0                   |     a1 = v0;
    0x0000c75c sw v0, 0x20(sp)               |     *(var_20h) = v0;
    0x0000c760 jalr t9                       |     t9 ();
    0x0000c764 lw gp, 0x10(sp)               |     gp = *(var_10h);
    0x0000c768 lw a0, 0x84(sp)               |     a0 = *(var_84h);
    0x0000c76c b 0xbf88                      |     goto label_15;
                                             | label_64:
    0x0000c770 lw a0, -0x7fd4(gp)            |     a0 = *((gp - 8181));
    0x0000c774 move a1, v0                   |     a1 = v0;
    0x0000c778 lw t9, -0x7ed0(gp)            |     t9 = *((gp - 8116));
    0x0000c77c addiu a0, a0, -0x8fc          |     a0 += -0x8fc;
    0x0000c780 sw v0, 0x18(sp)               |     *(var_18h) = v0;
    0x0000c784 jalr t9                       |     t9 ();
    0x0000c788 lw gp, 0x10(sp)               |     gp = *(var_10h);
    0x0000c78c lw a0, 0x84(sp)               |     a0 = *(var_84h);
    0x0000c790 b 0xbf88                      |     goto label_15;
                                             | label_27:
    0x0000c794 lw t9, -0x7fd4(gp)            |     t9 = *((gp - 8181));
    0x0000c798 addiu t9, t9, -0x57b0         |     t9 += -0x57b0;
    0x0000c79c lwc1 f12, (s4)                |     __asm ("lwc1 f12, (s4)");
    0x0000c7a0 jalr t9                       |     t9 ();
    0x0000c7a4 lw gp, 0x10(sp)               |     gp = *(var_10h);
    0x0000c7a8 move s5, v0                   |     s5 = v0;
    0x0000c7ac sw v0, 0x20(s0)               |     *((s0 + 8)) = v0;
    0x0000c7b0 b 0xbbc8                      |     goto label_21;
                                             | label_39:
    0x0000c7b4 cvt.d.s f20, f20              |     __asm ("cvt.d.s f20, f20");
    0x0000c7b8 lw a0, -0x7fd4(gp)            |     a0 = *((gp - 8181));
    0x0000c7bc lw t9, -0x7ed0(gp)            |     t9 = *((gp - 8116));
    0x0000c7c0 mfc1 a2, f20                  |     __asm ("mfc1 a2, f20");
    0x0000c7c4 mfhc1 a3, f20                 |     __asm ("mfhc1 a3, f20");
    0x0000c7c8 addiu a0, a0, -0x8bc          |     a0 += -0x8bc;
    0x0000c7cc jalr t9                       |     t9 ();
    0x0000c7d0 lui v0, 0x7fff                |     v0 = 0x7fff0000;
    0x0000c7d4 lw gp, 0x10(sp)               |     gp = *(var_10h);
    0x0000c7d8 ori v0, v0, 0xffff            |     v0 |= 0xffff;
    0x0000c7dc lw a0, -0x7fd4(gp)            |     a0 = *((gp - 8181));
    0x0000c7e0 ldc1 f0, -0x820(a0)           |     __asm ("ldc1 f0, -0x82(arg_4h)");
    0x0000c7e4 lw a0, -0x7fd4(gp)            |     a0 = *((gp - 8181));
    0x0000c7e8 ldc1 f2, -0xa88(a0)           |     __asm ("ldc1 f2, -0xa88(a0)");
    0x0000c7ec sub.d f2, f20, f2             |     __asm ("sub.d f2, f20, f2");
    0x0000c7f0 mfc1 a0, f2                   |     __asm ("mfc1 a0, f2");
    0x0000c7f4 mfhc1 a1, f2                  |     __asm ("mfhc1 a1, f2");
    0x0000c7f8 mtc1 a0, f1                   |     __asm ("mtc1 a0, f1");
    0x0000c7fc and t9, a1, v0                |     t9 = a1 & v0;
                                             | label_51:
    0x0000c89c addiu t0, sp, 0x7c            |     t0 = sp + 0x7c;
    0x0000c8a0 addiu fp, zero, 0x2d          |     fp = 0x2d;
                                             | label_23:
    0x0000c8a4 lb v0, (t8)                   |     v0 = *(t8);
    0x0000c8a8 move a0, t8                   |     a0 = t8;
    0x0000c8ac lw t9, -0x7f24(gp)            |     t9 = *((gp - 8137));
    0x0000c8b0 move a1, t0                   |     a1 = t0;
    0x0000c8b4 addiu a2, zero, 0xa           |     a2 = 0xa;
    0x0000c8b8 addiu v1, t8, 1               |     v1 = t8 + 1;
    0x0000c8bc sll t1, v0, 1                 |     t1 = v0 << 1;
                                             |     if (v0 == 0) {
    0x0000c8c0 beqz v0, 0xc914               |         goto label_65;
                                             |     }
                                             |     do {
    0x0000c8c4 lw a3, (s5)                   |         a3 = *(s5);
    0x0000c8c8 addu t1, a3, t1               |         t1 = a3 + t1;
    0x0000c8cc lhu t1, (t1)                  |         t1 = *(t1);
    0x0000c8d0 andi t1, t1, 8                |         t1 &= 8;
                                             |         if (t1 != 0) {
    0x0000c8d4 bnez t1, 0xc938               |             goto label_66;
                                             |         }
    0x0000c8d8 nop                           |         
    0x0000c8dc addiu t1, zero, 0x2b          |         t1 = 0x2b;
                                             |         if (v0 == fp) {
    0x0000c8e0 beq v0, fp, 0xc91c            |             goto label_67;
                                             |         }
                                             |         if (v0 == t1) {
    0x0000c8e4 beq v0, t1, 0xc91c            |             goto label_67;
                                             |         }
    0x0000c8e8 nop                           |         
                                             | label_22:
    0x0000c8ec move t8, v1                   |         t8 = v1;
    0x0000c8f0 sw v1, 0x7c(sp)               |         *(var_7ch) = v1;
    0x0000c8f4 lb v0, (t8)                   |         v0 = *(t8);
    0x0000c8f8 move a0, t8                   |         a0 = t8;
    0x0000c8fc lw t9, -0x7f24(gp)            |         t9 = *((gp - 8137));
    0x0000c900 move a1, t0                   |         a1 = t0;
    0x0000c904 addiu a2, zero, 0xa           |         a2 = 0xa;
    0x0000c908 addiu v1, t8, 1               |         v1 = t8 + 1;
    0x0000c90c sll t1, v0, 1                 |         t1 = v0 << 1;
    0x0000c910 bnez v0, 0xc8c4               |         
                                             |     } while (v0 != 0);
                                             | label_65:
    0x0000c914 addiu fp, zero, 1             |     fp = 1;
    0x0000c918 b 0xc064                      |     goto label_7;
                                             | label_67:
    0x0000c91c lb t8, 1(t8)                  |     t8 = *((t8 + 1));
    0x0000c920 sll t8, t8, 1                 |     t8 <<= 1;
    0x0000c924 addu a3, a3, t8               |     a3 += t8;
    0x0000c928 lhu t8, (a3)                  |     t8 = *(a3);
    0x0000c92c andi t8, t8, 8                |     t8 &= 8;
                                             |     if (t8 == 0) {
    0x0000c930 beqz t8, 0xc8ec               |         goto label_22;
                                             |     }
    0x0000c934 nop                           |     
                                             | label_66:
    0x0000c938 sw t0, 0x9c(sp)               |     *(var_9ch) = t0;
    0x0000c93c jalr t9                       |     t9 ();
    0x0000c940 lw gp, 0x10(sp)               |     gp = *(var_10h);
    0x0000c944 move a1, v0                   |     a1 = v0;
    0x0000c948 sw v0, 0x1c(sp)               |     *(var_1ch) = v0;
    0x0000c94c lw a0, -0x7fd4(gp)            |     a0 = *((gp - 8181));
    0x0000c950 lw t9, -0x7ed0(gp)            |     t9 = *((gp - 8116));
    0x0000c954 addiu a0, a0, -0x8cc          |     a0 += -0x8cc;
    0x0000c958 jalr t9                       |     t9 ();
    0x0000c95c lw gp, 0x10(sp)               |     gp = *(var_10h);
    0x0000c960 lw t8, 0x7c(sp)               |     t8 = *(var_7ch);
    0x0000c964 lw t0, 0x9c(sp)               |     t0 = *(var_9ch);
    0x0000c968 b 0xc8a4                      |     goto label_23;
                                             | label_33:
    0x0000c96c move t8, v0                   |     t8 = v0;
    0x0000c970 addiu t0, sp, 0x80            |     t0 = sp + 0x80;
    0x0000c974 addiu s5, zero, 0x2d          |     s5 = 0x2d;
                                             | label_25:
    0x0000c978 lb v0, (t8)                   |     v0 = *(t8);
    0x0000c97c move a0, t8                   |     a0 = t8;
    0x0000c980 lw t9, -0x7f24(gp)            |     t9 = *((gp - 8137));
    0x0000c984 move a1, t0                   |     a1 = t0;
    0x0000c988 addiu a2, zero, 0xa           |     a2 = 0xa;
    0x0000c98c addiu v1, t8, 1               |     v1 = t8 + 1;
    0x0000c990 sll t1, v0, 1                 |     t1 = v0 << 1;
                                             |     if (v0 == 0) {
    0x0000c994 beqz v0, 0xc9e8               |         goto label_68;
                                             |     }
                                             |     do {
    0x0000c998 lw a3, (fp)                   |         a3 = *(fp);
    0x0000c99c addu t1, a3, t1               |         t1 = a3 + t1;
    0x0000c9a0 lhu t1, (t1)                  |         t1 = *(t1);
    0x0000c9a4 andi t1, t1, 8                |         t1 &= 8;
                                             |         if (t1 != 0) {
    0x0000c9a8 bnez t1, 0xca0c               |             goto label_69;
                                             |         }
    0x0000c9ac nop                           |         
    0x0000c9b0 addiu t1, zero, 0x2b          |         t1 = 0x2b;
                                             |         if (v0 == s5) {
    0x0000c9b4 beq v0, s5, 0xc9f0            |             goto label_70;
                                             |         }
                                             |         if (v0 == t1) {
    0x0000c9b8 beq v0, t1, 0xc9f0            |             goto label_70;
                                             |         }
    0x0000c9bc nop                           |         
                                             | label_24:
    0x0000c9c0 move t8, v1                   |         t8 = v1;
    0x0000c9c4 sw v1, 0x80(sp)               |         *(var_80h) = v1;
    0x0000c9c8 lb v0, (t8)                   |         v0 = *(t8);
    0x0000c9cc move a0, t8                   |         a0 = t8;
    0x0000c9d0 lw t9, -0x7f24(gp)            |         t9 = *((gp - 8137));
    0x0000c9d4 move a1, t0                   |         a1 = t0;
    0x0000c9d8 addiu a2, zero, 0xa           |         a2 = 0xa;
    0x0000c9dc addiu v1, t8, 1               |         v1 = t8 + 1;
    0x0000c9e0 sll t1, v0, 1                 |         t1 = v0 << 1;
    0x0000c9e4 bnez v0, 0xc998               |         
                                             |     } while (v0 != 0);
                                             | label_68:
    0x0000c9e8 addiu s5, zero, 1             |     s5 = 1;
    0x0000c9ec b 0xba94                      |     goto label_0;
                                             | label_70:
    0x0000c9f0 lb t8, 1(t8)                  |     t8 = *((t8 + 1));
    0x0000c9f4 sll t8, t8, 1                 |     t8 <<= 1;
    0x0000c9f8 addu a3, a3, t8               |     a3 += t8;
    0x0000c9fc lhu t8, (a3)                  |     t8 = *(a3);
    0x0000ca00 andi t8, t8, 8                |     t8 &= 8;
                                             |     if (t8 == 0) {
    0x0000ca04 beqz t8, 0xc9c0               |         goto label_24;
                                             |     }
    0x0000ca08 nop                           |     
                                             | label_69:
    0x0000ca0c sw t0, 0x9c(sp)               |     *(var_9ch) = t0;
    0x0000ca10 jalr t9                       |     t9 ();
    0x0000ca14 lw gp, 0x10(sp)               |     gp = *(var_10h);
    0x0000ca18 move a1, v0                   |     a1 = v0;
    0x0000ca1c sw v0, 0x94(sp)               |     *(var_94h) = v0;
    0x0000ca20 lw a0, -0x7fd4(gp)            |     a0 = *((gp - 8181));
    0x0000ca24 lw t9, -0x7ed0(gp)            |     t9 = *((gp - 8116));
    0x0000ca28 addiu a0, a0, -0x910          |     a0 += -0x910;
    0x0000ca2c jalr t9                       |     t9 ();
    0x0000ca30 lw gp, 0x10(sp)               |     gp = *(var_10h);
    0x0000ca34 lw t8, 0x80(sp)               |     t8 = *(var_80h);
    0x0000ca38 lw t0, 0x9c(sp)               |     t0 = *(var_9ch);
    0x0000ca3c b 0xc978                      |     goto label_25;
                                             | label_28:
    0x0000ca40 move v1, zero                 |     v1 = 0;
    0x0000ca44 sw v1, 0x20(s0)               |     *((s0 + 8)) = v1;
    0x0000ca48 move s5, v1                   |     s5 = v1;
    0x0000ca4c b 0xbbc8                      |     goto label_21;
                                             | label_37:
    0x0000cb04 move s2, fp                   |     s2 = fp;
    0x0000cb08 b 0xba38                      |     goto label_4;
                                             | label_50:
    0x0000cb0c move s2, v0                   |     s2 = v0;
    0x0000cb10 b 0xba38                      |     goto label_4;
                                             | }

[*] Function system used 1 times librtsxmd.so.5.1.87231a