[*] Binary protection state of libavformat.so.58.29.100

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


[*] Function printf tear down of libavformat.so.58.29.100

    ; assembly                               | /* r2dec pseudo code output */
                                             | /* /logs/firmware/unblob_extracted/firmware_extract/4325012-58052244.squashfs_v4_le_extract/usr/lib/libavformat.so.58.29.100 @ 0x2f658 */
                                             | #include <stdint.h>
                                             |  
    ; (fcn) fcn.0002f658 ()                  | void fcn_0002f658 () {
    0x0002f658 lui gp, 5                     |     
    0x0002f65c addiu gp, gp, 0x6ab8          |     
    0x0002f660 addu gp, gp, t9               |     gp += t9;
    0x0002f664 addiu sp, sp, -0xd0           |     
    0x0002f668 lw v1, 0x1c(a0)               |     v1 = *((a0 + 7));
    0x0002f66c sw s7, 0xc4(sp)               |     *(var_c4h) = s7;
    0x0002f670 sw s5, 0xbc(sp)               |     *(var_bch) = s5;
    0x0002f674 lw s7, 0xc(a0)                |     s7 = *((a0 + 3));
    0x0002f678 move s5, a1                   |     s5 = a1;
    0x0002f67c lw a1, 0x20(a1)               |     a1 = *((a1 + 8));
    0x0002f680 sw s2, 0xb0(sp)               |     *(var_b0h) = s2;
    0x0002f684 sll a3, a1, 2                 |     a3 = a1 << 2;
    0x0002f688 move s2, a0                   |     s2 = a0;
    0x0002f68c lw v0, 0x80(s7)               |     v0 = *((s7 + 32));
    0x0002f690 addu a0, a3, a1               |     a0 = a3 + a1;
    0x0002f694 lw t0, -0x7904(gp)            |     t0 = *((gp - 7745));
    0x0002f698 sll a0, a0, 3                 |     a0 <<= 3;
    0x0002f69c addu v0, v0, a0               |     v0 += a0;
    0x0002f6a0 lwx v1, a3(v1)                |     __asm ("lwx v1, a3(v1)");
    0x0002f6a4 lw a0, (v0)                   |     a0 = *(v0);
    0x0002f6a8 lw a3, (t0)                   |     a3 = *(t0);
    0x0002f6ac sw gp, 0x40(sp)               |     *(var_40h) = gp;
    0x0002f6b0 sw fp, 0xc8(sp)               |     *(var_c8h) = fp;
    0x0002f6b4 sw s6, 0xc0(sp)               |     *(var_c0h) = s6;
    0x0002f6b8 sw s3, 0xb4(sp)               |     *(var_b4h) = s3;
    0x0002f6bc sw ra, 0xcc(sp)               |     *(var_cch) = ra;
    0x0002f6c0 sw s4, 0xb8(sp)               |     *(var_b8h) = s4;
    0x0002f6c4 sw s1, 0xac(sp)               |     *(var_ach) = s1;
    0x0002f6c8 sw s0, 0xa8(sp)               |     *(var_a8h) = s0;
    0x0002f6cc sw t0, 0x4c(sp)               |     *(var_4ch) = t0;
    0x0002f6d0 sw a2, 0xd8(sp)               |     *(arg_d8h) = a2;
    0x0002f6d4 sw a3, 0xa4(sp)               |     *(var_a4h) = a3;
    0x0002f6d8 lw s6, 0xb0(v1)               |     s6 = *((v1 + 44));
    0x0002f6dc lw fp, 0x24(s5)               |     fp = *((s5 + 9));
    0x0002f6e0 lw s3, 0x30(s5)               |     s3 = *((s5 + 12));
                                             |     if (a0 == 0) {
    0x0002f6e4 beqz a0, 0x2f958              |         goto label_20;
                                             |     }
    0x0002f6e8 lw a0, 0xf0(s7)               |     a0 = *((s7 + 60));
    0x0002f6ec lw v1, 0x10(s5)               |     v1 = *((s5 + 4));
    0x0002f6f0 lw s1, 0x14(s5)               |     s1 = *((s5 + 5));
                                             |     if (a0 == 0) {
    0x0002f6f4 beqz a0, 0x2f968              |         goto label_21;
                                             |     }
                                             |     do {
    0x0002f6f8 lw a0, 0xf4(s7)               |         a0 = *((s7 + 61));
    0x0002f6fc sw a0, 0x58(sp)               |         *(var_58h) = a0;
                                             | label_0:
    0x0002f700 lui a0, 0x8000                |         a0 = LIBAVFORMAT_58;
                                             |         if (v1 == 0) {
    0x0002f704 beqz v1, 0x301a4              |             goto label_22;
                                             |         }
    0x0002f708 lw s0, 0x20(v0)               |         s0 = *((v0 + 8));
                                             | label_17:
    0x0002f70c lw a0, 0x24(v0)               |         a0 = *((v0 + 9));
    0x0002f710 addu s0, v1, s0               |         s0 = v1 + s0;
    0x0002f714 lw v0, 0x58(s7)               |         v0 = *((s7 + 22));
    0x0002f718 addu s1, s1, a0               |         s1 += a0;
    0x0002f71c sltu v1, s0, v1               |         v1 = (s0 < v1) ? 1 : 0;
    0x0002f720 addiu a0, zero, -1            |         a0 = -1;
    0x0002f724 addu s1, v1, s1               |         s1 = v1 + s1;
                                             |         if (v0 == a0) {
    0x0002f728 beq v0, a0, 0x2fb90           |             goto label_23;
                                             |         }
    0x0002f72c lw v0, 0x60(s7)               |         v0 = *((s7 + 24));
                                             | label_4:
    0x0002f730 lw v1, 0x64(s7)               |         v1 = *((s7 + 25));
    0x0002f734 subu v0, s0, v0               |         __asm ("subu v0, s0, v0");
    0x0002f738 sltu a1, s0, v0               |         a1 = (s0 < v0) ? 1 : 0;
    0x0002f73c subu v1, s1, v1               |         __asm ("subu v1, s1, v1");
    0x0002f740 seh a0, v0                    |         __asm ("seh a0, v0");
    0x0002f744 subu v1, v1, a1               |         __asm ("subu v1, v1, a1");
    0x0002f748 sra a1, a0, 0x1f              |         a1 = a0 >> 0x1f;
                                             |         if (a0 == v0) {
    0x0002f74c bne a0, v0, 0x2f758           |             
                                             |             if (a1 == v1) {
    0x0002f750 beql a1, v1, 0x2f828          |                 goto label_18;
                                             |             }
    0x0002f754 lw s4, 0x50(s7)               |             s4 = *((s7 + 20));
                                             |         }
    0x0002f758 lw a2, -0x7fc4(gp)            |         a2 = *((gp - 8177));
    0x0002f75c lw t9, -0x7a1c(gp)            |         t9 = *((gp - 7815));
    0x0002f760 addiu a2, a2, 0x4468          |         a2 += 0x4468;
    0x0002f764 addiu a1, zero, 0x18          |         a1 = 0x18;
    0x0002f768 move a0, s2                   |         a0 = s2;
    0x0002f76c jalr t9                       |         t9 ();
    0x0002f770 lw gp, 0x40(sp)               |         gp = *(var_40h);
    0x0002f774 lw s4, 0xc(s2)                |         s4 = *((s2 + 3));
    0x0002f778 lw a0, 0x10(s2)               |         a0 = *((s2 + 4));
    0x0002f77c lw t9, -0x7d90(gp)            |         t9 = *((gp - 8036));
    0x0002f780 addiu a1, s4, 0x50            |         a1 = s4 + 0x50;
    0x0002f784 addiu t9, t9, -0x3458         |         t9 += -0x3458;
    0x0002f788 addiu a2, s4, 0xfc            |         a2 = s4 + 0xfc;
    0x0002f78c bal 0x2cba8                   |         fcn_0002cba8 ();
    0x0002f790 lw gp, 0x40(sp)               |         gp = *(var_40h);
    0x0002f794 addiu v0, zero, -1            |         v0 = -1;
    0x0002f798 lw a0, 0x10(s2)               |         a0 = *((s2 + 4));
    0x0002f79c sw v0, 0x58(s4)               |         *((s4 + 22)) = v0;
    0x0002f7a0 lw t9, -0x7f48(gp)            |         t9 = *((gp - 8146));
    0x0002f7a4 addiu v1, zero, -1            |         v1 = -1;
    0x0002f7a8 addiu v0, zero, 1             |         v0 = 1;
    0x0002f7ac move a3, zero                 |         a3 = 0;
    0x0002f7b0 move a2, zero                 |         a2 = 0;
    0x0002f7b4 sw v1, 0x5c(s4)               |         *((s4 + 23)) = v1;
    0x0002f7b8 sw v0, 0x10(sp)               |         *(var_10h) = v0;
    0x0002f7bc jalr t9                       |         t9 ();
    0x0002f7c0 lw gp, 0x40(sp)               |         gp = *(var_40h);
    0x0002f7c4 lw t4, 0x10(s5)               |         t4 = *((s5 + 4));
    0x0002f7c8 lw t5, 0x14(s5)               |         t5 = *((s5 + 5));
    0x0002f7cc lw t2, 8(s5)                  |         t2 = *((s5 + 2));
    0x0002f7d0 lw t3, 0xc(s5)                |         t3 = *((s5 + 3));
    0x0002f7d4 lw a2, -0x7fc4(gp)            |         a2 = *((gp - 8177));
    0x0002f7d8 lw t9, -0x7a1c(gp)            |         t9 = *((gp - 7815));
    0x0002f7dc sw v0, 0x10(sp)               |         *(var_10h) = v0;
    0x0002f7e0 sw v1, 0x14(sp)               |         *(var_14h) = v1;
    0x0002f7e4 addiu a2, a2, 0x4490          |         a2 += 0x4490;
    0x0002f7e8 addiu a1, zero, 0x30          |         a1 = 0x30;
    0x0002f7ec move a0, s2                   |         a0 = s2;
    0x0002f7f0 sw t4, 0x20(sp)               |         *(var_20h) = t4;
    0x0002f7f4 sw t5, 0x24(sp)               |         *(var_24h) = t5;
    0x0002f7f8 sw t2, 0x18(sp)               |         *(var_18h) = t2;
    0x0002f7fc sw t3, 0x1c(sp)               |         *(var_1ch) = t3;
    0x0002f800 jalr t9                       |         t9 ();
    0x0002f804 lw gp, 0x40(sp)               |         gp = *(var_40h);
    0x0002f808 lw t9, -0x7f44(gp)            |         t9 = *((gp - 8145));
    0x0002f80c lw a0, 0x10(s2)               |         a0 = *((s2 + 4));
    0x0002f810 jalr t9                       |         t9 ();
    0x0002f814 lw v0, 0x58(s7)               |         v0 = *((s7 + 22));
    0x0002f818 addiu v1, zero, -1            |         v1 = -1;
    0x0002f81c lw gp, 0x40(sp)               |         gp = *(var_40h);
                                             |         if (v0 == v1) {
    0x0002f820 beq v0, v1, 0x30228           |             goto label_24;
                                             |         }
                                             | label_5:
    0x0002f824 lw s4, 0x50(s7)               |         s4 = *((s7 + 20));
                                             | label_18:
    0x0002f828 lw t9, -0x7f48(gp)            |         t9 = *((gp - 8146));
    0x0002f82c addiu v0, zero, 1             |         v0 = 1;
    0x0002f830 move a0, s4                   |         a0 = s4;
    0x0002f834 sw v0, 0x10(sp)               |         *(var_10h) = v0;
    0x0002f838 move a2, zero                 |         a2 = 0;
    0x0002f83c move a3, zero                 |         a3 = 0;
    0x0002f840 jalr t9                       |         t9 ();
    0x0002f844 lw a1, (s6)                   |         a1 = *(s6);
    0x0002f848 addiu a0, zero, 3             |         a0 = 3;
    0x0002f84c lw gp, 0x40(sp)               |         gp = *(var_40h);
    0x0002f850 sw v0, 0x50(sp)               |         *(var_50h) = v0;
    0x0002f854 sw v1, 0x54(sp)               |         *(var_54h) = v1;
                                             |         if (a1 == a0) {
    0x0002f858 beq a1, a0, 0x2f974           |             goto label_25;
                                             |         }
    0x0002f85c lw t9, -0x7d90(gp)            |         t9 = *((gp - 8036));
    0x0002f860 andi fp, fp, 1                |         fp &= 1;
    0x0002f864 sw fp, 0x10(sp)               |         *(var_10h) = fp;
    0x0002f868 move a3, s5                   |         a3 = s5;
    0x0002f86c addiu a2, zero, 0xa3          |         a2 = 0xa3;
    0x0002f870 move a1, s4                   |         a1 = s4;
    0x0002f874 addiu t9, t9, -0x1a28         |         t9 += -0x1a28;
    0x0002f878 move a0, s2                   |         a0 = s2;
    0x0002f87c bal 0x2e5d8                   |         fcn_0002e5d8 ();
    0x0002f880 lw v0, 0x10(s2)               |         v0 = *((s2 + 4));
    0x0002f884 lw v0, 0x54(v0)               |         v0 = *((v0 + 21));
    0x0002f888 andi v0, v0, 1                |         v0 &= 1;
    0x0002f88c lw gp, 0x40(sp)               |         gp = *(var_40h);
                                             |         if (v0 == 0) {
    0x0002f890 beqz v0, 0x2fb88              |             goto label_26;
                                             |         }
    0x0002f894 lw v0, (s6)                   |         v0 = *(s6);
    0x0002f898 lw v0, 0xd8(sp)               |         v0 = *(arg_d8h);
                                             |         if (v0 == 0) {
    0x0002f89c beqz v0, 0x2fcac              |             goto label_27;
                                             |         }
                                             | label_11:
    0x0002f8a0 sra s2, s3, 0x1f              |         s2 = s3 >> 0x1f;
                                             |         if (v0 == 0) {
    0x0002f8a4 beqz v0, 0x2fab8              |             goto label_3;
                                             |         }
                                             | label_10:
    0x0002f8a8 lw t9, -0x7a70(gp)            |         t9 = *((gp - 7836));
                                             |         if (s1 < 0) {
    0x0002f8ac bltz s1, 0x2fb88              |             goto label_26;
                                             |         }
    0x0002f8b0 lw s4, 0x7c(s7)               |         s4 = *((s7 + 31));
    0x0002f8b4 addiu a2, zero, 0x28          |         a2 = 0x28;
    0x0002f8b8 lw a1, 0xc(s4)                |         a1 = *((s4 + 3));
    0x0002f8bc lw a0, 8(s4)                  |         a0 = *((s4 + 2));
    0x0002f8c0 addiu a1, a1, 1               |         a1++;
    0x0002f8c4 lw s6, 0x20(s5)               |         s6 = *((s5 + 8));
    0x0002f8c8 lw fp, 0x58(s7)               |         fp = *((s7 + 22));
    0x0002f8cc lw s2, 0x5c(s7)               |         s2 = *((s7 + 23));
    0x0002f8d0 jalr t9                       |         t9 ();
    0x0002f8d4 lw gp, 0x40(sp)               |         gp = *(var_40h);
                                             |         if (v0 == 0) {
    0x0002f8d8 beqz v0, 0x301d0              |             goto label_28;
                                             |         }
    0x0002f8dc lw a0, 0xc(s4)                |         a0 = *((s4 + 3));
    0x0002f8e0 lw a2, (s4)                   |         a2 = *(s4);
    0x0002f8e4 sll v1, a0, 2                 |         v1 = a0 << 2;
    0x0002f8e8 addu v1, v1, a0               |         v1 += a0;
    0x0002f8ec sll v1, v1, 3                 |         v1 <<= 3;
    0x0002f8f0 lw a3, 4(s4)                  |         a3 = *((s4 + 1));
    0x0002f8f4 addu v1, v0, v1               |         v1 = v0 + v1;
    0x0002f8f8 subu a2, fp, a2               |         __asm ("subu a2, fp, a2");
    0x0002f8fc sw v0, 8(s4)                  |         *((s4 + 2)) = v0;
    0x0002f900 subu s2, s2, a3               |         __asm ("subu s2, s2, a3");
    0x0002f904 sltu a1, fp, a2               |         a1 = (fp < a2) ? 1 : 0;
    0x0002f908 sw a2, 0x10(v1)               |         *((v1 + 4)) = a2;
    0x0002f90c lw v0, 0x58(sp)               |         v0 = *(var_58h);
    0x0002f910 lw a2, 0x50(sp)               |         a2 = *(var_50h);
    0x0002f914 lw a3, 0x54(sp)               |         a3 = *(var_54h);
    0x0002f918 subu a1, s2, a1               |         __asm ("subu a1, s2, a1");
    0x0002f91c addiu a0, a0, 1               |         a0++;
    0x0002f920 sw a1, 0x14(v1)               |         *((v1 + 5)) = a1;
    0x0002f924 sw s0, (v1)                   |         *(v1) = s0;
    0x0002f928 sw s1, 4(v1)                  |         *((v1 + 1)) = s1;
    0x0002f92c sw s6, 8(v1)                  |         *((v1 + 2)) = s6;
    0x0002f930 sw v0, 0xc(v1)                |         *((v1 + 3)) = v0;
    0x0002f934 sw a2, 0x18(v1)               |         *((v1 + 6)) = a2;
    0x0002f938 sw a3, 0x1c(v1)               |         *((v1 + 7)) = a3;
    0x0002f93c addiu a1, zero, -1            |         a1 = -1;
    0x0002f940 sw a0, 0xc(s4)                |         *((s4 + 3)) = a0;
    0x0002f944 addiu a0, zero, -1            |         a0 = -1;
    0x0002f948 sra s2, s3, 0x1f              |         s2 = s3 >> 0x1f;
    0x0002f94c sw a0, 0x20(v1)               |         *((v1 + 8)) = a0;
    0x0002f950 sw a1, 0x24(v1)               |         *((v1 + 9)) = a1;
    0x0002f954 b 0x2fab8                     |         goto label_3;
                                             | label_20:
    0x0002f958 lw a0, 0xf0(s7)               |         a0 = *((s7 + 60));
    0x0002f95c lw v1, 8(s5)                  |         v1 = *((s5 + 2));
    0x0002f960 lw s1, 0xc(s5)                |         s1 = *((s5 + 3));
    0x0002f964 bnez a0, 0x2f6f8              |         
                                             |     } while (a0 != 0);
                                             | label_21:
    0x0002f968 addiu a0, a1, 1               |     a0 = a1 + 1;
    0x0002f96c sw a0, 0x58(sp)               |     *(var_58h) = a0;
    0x0002f970 b 0x2f700                     |     goto label_0;
                                             | label_25:
    0x0002f974 lui v0, 1                     |     v0 = 0x10000;
    0x0002f978 lw v1, 4(s6)                  |     v1 = *((s6 + 1));
    0x0002f97c addiu v0, v0, 0x7809          |     v0 += 0x7809;
                                             |     if (v1 == v0) {
    0x0002f980 beql v1, v0, 0x2fd68          |         goto label_29;
                                             |     }
    0x0002f984 lw v1, 0x20(s5)               |     v1 = *((s5 + 8));
    0x0002f988 lw t2, 0x1c(s5)               |     t2 = *((s5 + 7));
    0x0002f98c addiu t5, t2, 4               |     t5 = t2 + 4;
    0x0002f990 addiu t2, t2, 5               |     t2 += 5;
    0x0002f994 sra v0, t5, 0x1f              |     v0 = t5 >> 0x1f;
    0x0002f998 sltu t3, t2, t5               |     t3 = (t2 < t5) ? 1 : 0;
    0x0002f99c addu t3, t3, v0               |     t3 += v0;
    0x0002f9a0 sll v1, t3, 0x19              |     v1 = t3 << 0x19;
    0x0002f9a4 srl v0, t2, 7                 |     v0 = t2 >> 7;
    0x0002f9a8 or v0, v1, v0                 |     v0 = v1 | v0;
    0x0002f9ac srl v1, t3, 7                 |     v1 = t3 >> 7;
    0x0002f9b0 or v0, v0, v1                 |     v0 |= v1;
    0x0002f9b4 addiu v1, zero, 0xe           |     v1 = 0xe;
                                             |     if (v0 == 0) {
    0x0002f9b8 beqz v0, 0x30140              |         goto label_30;
                                             |     }
    0x0002f9bc addiu a3, zero, 1             |     a3 = 1;
    0x0002f9c0 sll t4, t3, 1                 |     t4 = t3 << 1;
                                             |     do {
    0x0002f9c4 nor a1, zero, v1              |         __asm ("nor a1, zero, v1");
    0x0002f9c8 srlv v0, t2, v1               |         v0 = t2 >> v1;
    0x0002f9cc sllv a1, t4, a1               |         a1 = t4 << a1;
    0x0002f9d0 andi a2, v1, 0x20             |         a2 = v1 & 0x20;
    0x0002f9d4 srlv a0, t3, v1               |         a0 = t3 >> v1;
    0x0002f9d8 or v0, a1, v0                 |         v0 = a1 | v0;
                                             |         if (a2 == 0) {
    0x0002f9dc movn v0, a0, a2               |             v0 = a0;
                                             |         }
                                             |         if (a2 == 0) {
    0x0002f9e0 movn a0, zero, a2             |             a0 = 0;
                                             |         }
    0x0002f9e4 or v0, v0, a0                 |         v0 |= a0;
    0x0002f9e8 addiu a3, a3, 1               |         a3++;
    0x0002f9ec addiu v1, v1, 7               |         v1 += 7;
    0x0002f9f0 bnez v0, 0x2f9c4              |         
                                             |     } while (v0 != 0);
                                             | label_15:
    0x0002f9f4 addu a3, t5, a3               |     a3 = t5 + a3;
    0x0002f9f8 addiu a3, a3, 0xb             |     a3 += 0xb;
    0x0002f9fc lw t9, -0x7d90(gp)            |     t9 = *((gp - 8036));
    0x0002fa00 sra v0, a3, 0x1f              |     v0 = a3 >> 0x1f;
    0x0002fa04 sw v0, 0x14(sp)               |     *(var_14h) = v0;
    0x0002fa08 sw a3, 0x10(sp)               |     *(var_10h) = a3;
    0x0002fa0c addiu a2, zero, 0xa0          |     a2 = 0xa0;
    0x0002fa10 move a1, s4                   |     a1 = s4;
    0x0002fa14 addiu t9, t9, -0x4cf0         |     t9 += -0x4cf0;
    0x0002fa18 addiu a0, sp, 0x90            |     a0 = sp + 0x90;
    0x0002fa1c bal 0x2b310                   |     fcn_0002b310 ();
    0x0002fa20 lw v0, 0x44(s5)               |     v0 = *((s5 + 17));
    0x0002fa24 lw gp, 0x40(sp)               |     gp = *(var_40h);
    0x0002fa28 lw v1, 0x40(s5)               |     v1 = *((s5 + 16));
                                             |     if (v0 <= 0) {
    0x0002fa2c blez v0, 0x2fc94              |         goto label_31;
                                             |     }
    0x0002fa30 move s3, v1                   |     s3 = v1;
    0x0002fa34 lw t9, -0x7d90(gp)            |     t9 = *((gp - 8036));
                                             | label_8:
    0x0002fa38 addiu v0, zero, 1             |     v0 = 1;
                                             | label_9:
    0x0002fa3c sw v0, 0x10(sp)               |     *(var_10h) = v0;
    0x0002fa40 move a3, s5                   |     a3 = s5;
    0x0002fa44 addiu a2, zero, 0xa1          |     a2 = 0xa1;
    0x0002fa48 move a1, s4                   |     a1 = s4;
    0x0002fa4c addiu t9, t9, -0x1a28         |     t9 += -0x1a28;
    0x0002fa50 move a0, s2                   |     a0 = s2;
    0x0002fa54 bal 0x2e5d8                   |     fcn_0002e5d8 ();
    0x0002fa58 lw gp, 0x40(sp)               |     gp = *(var_40h);
    0x0002fa5c sra s6, s3, 0x1f              |     s6 = s3 >> 0x1f;
    0x0002fa60 move a2, s3                   |     a2 = s3;
    0x0002fa64 lw t9, -0x7d90(gp)            |     t9 = *((gp - 8036));
    0x0002fa68 move a3, s6                   |     a3 = s6;
    0x0002fa6c addiu a1, zero, 0x9b          |     a1 = 0x9b;
    0x0002fa70 addiu t9, t9, -0x46dc         |     t9 += -0x46dc;
    0x0002fa74 move a0, s4                   |     a0 = s4;
    0x0002fa78 bal 0x2b924                   |     fcn_0002b924 ();
    0x0002fa7c lw gp, 0x40(sp)               |     gp = *(var_40h);
    0x0002fa80 lw v0, 0x98(sp)               |     v0 = *(var_98h);
    0x0002fa84 lw a2, 0x90(sp)               |     a2 = *(var_90h);
    0x0002fa88 lw t9, -0x7d90(gp)            |     t9 = *((gp - 8036));
    0x0002fa8c lw a3, 0x94(sp)               |     a3 = *(var_94h);
    0x0002fa90 sw v0, 0x10(sp)               |     *(var_10h) = v0;
    0x0002fa94 addiu t9, t9, -0x4f74         |     t9 += -0x4f74;
    0x0002fa98 move a0, s4                   |     a0 = s4;
    0x0002fa9c bal 0x2b08c                   |     fcn_0002b08c ();
    0x0002faa0 lw gp, 0x40(sp)               |     gp = *(var_40h);
                                             | label_12:
    0x0002faa4 lw v0, 0x10(s2)               |     v0 = *((s2 + 4));
    0x0002faa8 lw v0, 0x54(v0)               |     v0 = *((v0 + 21));
    0x0002faac andi v0, v0, 1                |     v0 &= 1;
    0x0002fab0 move s2, s6                   |     s2 = s6;
                                             |     if (v0 != 0) {
    0x0002fab4 bnez v0, 0x2fcbc              |         goto label_32;
                                             |     }
                                             | label_3:
    0x0002fab8 addu s3, s0, s3               |     s3 = s0 + s3;
    0x0002fabc sltu s0, s3, s0               |     s0 = (s3 < s0) ? 1 : 0;
    0x0002fac0 addu s1, s1, s2               |     s1 += s2;
    0x0002fac4 lw v1, 0x74(s7)               |     v1 = *((s7 + 29));
    0x0002fac8 addu s0, s0, s1               |     s0 += s1;
    0x0002facc slt v0, v1, s0                |     v0 = (v1 < s0) ? 1 : 0;
    0x0002fad0 lw a0, 0x70(s7)               |     a0 = *((s7 + 28));
                                             |     if (v0 != 0) {
    0x0002fad4 bnez v0, 0x2fb68              |         goto label_33;
                                             |     }
    0x0002fad8 sltu v0, a0, s3               |     v0 = (a0 < s3) ? 1 : 0;
                                             |     if (s0 == v1) {
    0x0002fadc beq s0, v1, 0x2fb60           |         goto label_34;
                                             |     }
    0x0002fae0 lw v0, 0x4f8(s7)              |     v0 = *((s7 + 318));
                                             |     do {
    0x0002fae4 sw a0, 0x70(s7)               |         *((s7 + 28)) = a0;
    0x0002fae8 sw v1, 0x74(s7)               |         *((s7 + 29)) = v1;
                                             |         if (v0 == 0) {
    0x0002faec beqz v0, 0x2fb80              |             goto label_35;
                                             |         }
                                             | label_1:
    0x0002faf0 lw v1, 0x20(s5)               |         v1 = *((s5 + 8));
    0x0002faf4 sll v1, v1, 3                 |         v1 <<= 3;
    0x0002faf8 addu v0, v0, v1               |         v0 += v1;
    0x0002fafc lw v1, 4(v0)                  |         v1 = *((v0 + 1));
    0x0002fb00 slt a1, v1, s0                |         a1 = (v1 < s0) ? 1 : 0;
    0x0002fb04 lw a0, (v0)                   |         a0 = *(v0);
                                             |         if (a1 != 0) {
    0x0002fb08 bnez a1, 0x2fc88              |             goto label_36;
                                             |         }
    0x0002fb0c sltu a1, a0, s3               |         a1 = (a0 < s3) ? 1 : 0;
                                             |         if (s0 == v1) {
    0x0002fb10 beq s0, v1, 0x2fc80           |             goto label_37;
                                             |         }
                                             | label_7:
    0x0002fb14 sw a0, (v0)                   |         *(v0) = a0;
                                             | label_6:
    0x0002fb18 sw v1, 4(v0)                  |         *((v0 + 1)) = v1;
    0x0002fb1c move v0, zero                 |         v0 = 0;
                                             | label_2:
    0x0002fb20 lw v1, 0x4c(sp)               |         v1 = *(var_4ch);
    0x0002fb24 lw a0, 0xa4(sp)               |         a0 = *(var_a4h);
    0x0002fb28 lw v1, (v1)                   |         v1 = *(v1);
    0x0002fb2c lw ra, 0xcc(sp)               |         ra = *(var_cch);
                                             |         if (a0 != v1) {
    0x0002fb30 bne a0, v1, 0x301d8           |             goto label_38;
                                             |         }
    0x0002fb34 lw fp, 0xc8(sp)               |         fp = *(var_c8h);
    0x0002fb38 lw s7, 0xc4(sp)               |         s7 = *(var_c4h);
    0x0002fb3c lw s6, 0xc0(sp)               |         s6 = *(var_c0h);
    0x0002fb40 lw s5, 0xbc(sp)               |         s5 = *(var_bch);
    0x0002fb44 lw s4, 0xb8(sp)               |         s4 = *(var_b8h);
    0x0002fb48 lw s3, 0xb4(sp)               |         s3 = *(var_b4h);
    0x0002fb4c lw s2, 0xb0(sp)               |         s2 = *(var_b0h);
    0x0002fb50 lw s1, 0xac(sp)               |         s1 = *(var_ach);
    0x0002fb54 lw s0, 0xa8(sp)               |         s0 = *(var_a8h);
    0x0002fb58 addiu sp, sp, 0xd0            |         
    0x0002fb5c jr ra                         |         return v1;
                                             | label_34:
    0x0002fb60 beql v0, zero, 0x2fae4        |         
                                             |     } while (v0 == 0);
    0x0002fb64 lw v0, 0x4f8(s7)              |     v0 = *((s7 + 318));
                                             | label_33:
    0x0002fb68 lw v0, 0x4f8(s7)              |     v0 = *((s7 + 318));
    0x0002fb6c move a0, s3                   |     a0 = s3;
    0x0002fb70 move v1, s0                   |     v1 = s0;
    0x0002fb74 sw a0, 0x70(s7)               |     *((s7 + 28)) = a0;
    0x0002fb78 sw v1, 0x74(s7)               |     *((s7 + 29)) = v1;
                                             |     if (v0 != 0) {
    0x0002fb7c bnez v0, 0x2faf0              |         goto label_1;
                                             |     }
                                             | label_35:
    0x0002fb80 move v0, zero                 |     v0 = 0;
    0x0002fb84 b 0x2fb20                     |     goto label_2;
                                             | label_26:
    0x0002fb88 sra s2, s3, 0x1f              |     s2 = s3 >> 0x1f;
    0x0002fb8c b 0x2fab8                     |     goto label_3;
                                             | label_23:
    0x0002fb90 lw v1, 0x5c(s7)               |     v1 = *((s7 + 23));
    0x0002fb94 lw v0, 0x60(s7)               |     v0 = *((s7 + 24));
                                             |     if (v1 == v0) {
    0x0002fb98 bnel v1, v0, 0x2f730          |         goto label_4;
                                             |     }
    0x0002fb9c lw t9, -0x7f48(gp)            |     t9 = *((gp - 8146));
                                             | label_19:
    0x0002fba0 lw a0, 0x10(s2)               |     a0 = *((s2 + 4));
    0x0002fba4 addiu v0, zero, 1             |     v0 = 1;
    0x0002fba8 move a2, zero                 |     a2 = 0;
    0x0002fbac move a3, zero                 |     a3 = 0;
    0x0002fbb0 sw v0, 0x10(sp)               |     *(var_10h) = v0;
    0x0002fbb4 jalr t9                       |     t9 ();
    0x0002fbb8 lw gp, 0x40(sp)               |     gp = *(var_40h);
    0x0002fbbc sw v0, 0x58(s7)               |     *((s7 + 22)) = v0;
    0x0002fbc0 sw v1, 0x5c(s7)               |     *((s7 + 23)) = v1;
    0x0002fbc4 lw t9, -0x7fa8(gp)            |     t9 = *((gp - 8170));
    0x0002fbc8 addiu a0, s7, 0x50            |     a0 = s7 + 0x50;
    0x0002fbcc lw s4, 0x10(s2)               |     s4 = *((s2 + 4));
    0x0002fbd0 bal 0x1187c                   |     sym_avio_open_dyn_buf ();
    0x0002fbd4 lw gp, 0x40(sp)               |     gp = *(var_40h);
                                             |     if (v0 < 0) {
    0x0002fbd8 bltz v0, 0x2fb20              |         goto label_2;
                                             |     }
    0x0002fbdc lw t9, -0x7f88(gp)            |     t9 = *((gp - 8162));
    0x0002fbe0 addiu a1, zero, 0x1f          |     a1 = 0x1f;
    0x0002fbe4 move a0, s4                   |     a0 = s4;
    0x0002fbe8 jalr t9                       |     t9 ();
    0x0002fbec lw gp, 0x40(sp)               |     gp = *(var_40h);
    0x0002fbf0 addiu a1, zero, 0x43          |     a1 = 0x43;
    0x0002fbf4 lw t9, -0x7f88(gp)            |     t9 = *((gp - 8162));
    0x0002fbf8 move a0, s4                   |     a0 = s4;
    0x0002fbfc jalr t9                       |     t9 ();
    0x0002fc00 lw gp, 0x40(sp)               |     gp = *(var_40h);
    0x0002fc04 addiu a1, zero, 0xb6          |     a1 = 0xb6;
    0x0002fc08 lw t9, -0x7f88(gp)            |     t9 = *((gp - 8162));
    0x0002fc0c move a0, s4                   |     a0 = s4;
    0x0002fc10 jalr t9                       |     t9 ();
    0x0002fc14 lw gp, 0x40(sp)               |     gp = *(var_40h);
    0x0002fc18 addiu a1, zero, 0x75          |     a1 = 0x75;
    0x0002fc1c lw t9, -0x7f88(gp)            |     t9 = *((gp - 8162));
    0x0002fc20 move a0, s4                   |     a0 = s4;
    0x0002fc24 jalr t9                       |     t9 ();
    0x0002fc28 lw v0, 0xfc(s7)               |     v0 = *((s7 + 63));
    0x0002fc2c lw gp, 0x40(sp)               |     gp = *(var_40h);
                                             |     if (v0 != 0) {
    0x0002fc30 bnez v0, 0x30118              |         goto label_39;
                                             |     }
                                             | label_13:
    0x0002fc34 slti s4, s1, 0                |     s4 = (s1 < 0) ? 1 : 0;
    0x0002fc38 lw t9, -0x7d90(gp)            |     t9 = *((gp - 8036));
    0x0002fc3c move v0, s0                   |     v0 = s0;
    0x0002fc40 move v1, s1                   |     v1 = s1;
                                             |     if (s4 == 0) {
    0x0002fc44 movn v0, zero, s4             |         v0 = 0;
                                             |     }
                                             |     if (s4 == 0) {
    0x0002fc48 movn v1, zero, s4             |         v1 = 0;
                                             |     }
    0x0002fc4c lw a0, 0x50(s7)               |     a0 = *((s7 + 20));
    0x0002fc50 move a2, v0                   |     a2 = v0;
    0x0002fc54 sw v0, 0x50(sp)               |     *(var_50h) = v0;
    0x0002fc58 move a3, v1                   |     a3 = v1;
    0x0002fc5c addiu a1, zero, 0xe7          |     a1 = 0xe7;
    0x0002fc60 addiu t9, t9, -0x46dc         |     t9 += -0x46dc;
    0x0002fc64 move s4, v1                   |     s4 = v1;
    0x0002fc68 bal 0x2b924                   |     fcn_0002b924 ();
    0x0002fc6c lw v0, 0x50(sp)               |     v0 = *(var_50h);
    0x0002fc70 lw gp, 0x40(sp)               |     gp = *(var_40h);
    0x0002fc74 sw v0, 0x60(s7)               |     *((s7 + 24)) = v0;
    0x0002fc78 sw s4, 0x64(s7)               |     *((s7 + 25)) = s4;
    0x0002fc7c b 0x2f824                     |     goto label_5;
                                             |     if (a1 == 0) {
                                             | label_37:
    0x0002fc80 beql a1, zero, 0x2fb18        |         goto label_6;
                                             |     }
    0x0002fc84 sw a0, (v0)                   |     *(v0) = a0;
                                             | label_36:
    0x0002fc88 move a0, s3                   |     a0 = s3;
    0x0002fc8c move v1, s0                   |     v1 = s0;
    0x0002fc90 b 0x2fb14                     |     goto label_7;
                                             | label_31:
    0x0002fc94 lw t9, -0x7d90(gp)            |     t9 = *((gp - 8036));
                                             |     if (v0 != 0) {
    0x0002fc98 bnez v0, 0x2fa38              |         goto label_8;
                                             |     }
    0x0002fc9c move s3, v1                   |     s3 = v1;
                                             |     if (v1 == 0) {
    0x0002fca0 bnel v1, zero, 0x2fa38        |         goto label_8;
                                             |     }
    0x0002fca4 addiu v0, zero, 1             |     v0 = 1;
    0x0002fca8 b 0x2fa3c                     |     goto label_9;
                                             |     if (fp != 0) {
                                             | label_27:
    0x0002fcac bnez fp, 0x2f8a8              |         goto label_10;
                                             |     }
    0x0002fcb0 nop                           |     
    0x0002fcb4 b 0x2f8a0                     |     goto label_11;
    0x0002fcb8 nop                           |     
                                             | label_32:
    0x0002fcbc lw t9, -0x7a70(gp)            |     t9 = *((gp - 7836));
                                             |     if (s1 < 0) {
    0x0002fcc0 bltz s1, 0x2fab8              |         goto label_3;
                                             |     }
    0x0002fcc4 lw s4, 0x7c(s7)               |     s4 = *((s7 + 31));
    0x0002fcc8 lw a3, 0x20(s5)               |     a3 = *((s5 + 8));
    0x0002fccc lw a1, 0xc(s4)                |     a1 = *((s4 + 3));
    0x0002fcd0 lw a0, 8(s4)                  |     a0 = *((s4 + 2));
    0x0002fcd4 addiu a2, zero, 0x28          |     a2 = 0x28;
    0x0002fcd8 addiu a1, a1, 1               |     a1++;
    0x0002fcdc sw a3, 0x5c(sp)               |     *(var_5ch) = a3;
    0x0002fce0 lw fp, 0x58(s7)               |     fp = *((s7 + 22));
    0x0002fce4 lw s6, 0x5c(s7)               |     s6 = *((s7 + 23));
    0x0002fce8 jalr t9                       |     t9 ();
    0x0002fcec lw gp, 0x40(sp)               |     gp = *(var_40h);
                                             |     if (v0 == 0) {
    0x0002fcf0 beqz v0, 0x301d0              |         goto label_28;
                                             |     }
    0x0002fcf4 lw a0, 0xc(s4)                |     a0 = *((s4 + 3));
    0x0002fcf8 lw a1, (s4)                   |     a1 = *(s4);
    0x0002fcfc sll v1, a0, 2                 |     v1 = a0 << 2;
    0x0002fd00 addu v1, v1, a0               |     v1 += a0;
    0x0002fd04 sll v1, v1, 3                 |     v1 <<= 3;
    0x0002fd08 lw a2, 4(s4)                  |     a2 = *((s4 + 1));
    0x0002fd0c addu v1, v0, v1               |     v1 = v0 + v1;
    0x0002fd10 lw a3, 0x5c(sp)               |     a3 = *(var_5ch);
    0x0002fd14 subu a1, fp, a1               |     __asm ("subu a1, fp, a1");
    0x0002fd18 sw v0, 8(s4)                  |     *((s4 + 2)) = v0;
    0x0002fd1c subu s6, s6, a2               |     __asm ("subu s6, s6, a2");
    0x0002fd20 sw a3, 8(v1)                  |     *((v1 + 2)) = a3;
    0x0002fd24 sltu fp, fp, a1               |     fp = (fp < a1) ? 1 : 0;
    0x0002fd28 lw v0, 0x58(sp)               |     v0 = *(var_58h);
    0x0002fd2c lw a2, 0x50(sp)               |     a2 = *(var_50h);
    0x0002fd30 lw a3, 0x54(sp)               |     a3 = *(var_54h);
    0x0002fd34 subu s6, s6, fp               |     __asm ("subu s6, s6, fp");
    0x0002fd38 addiu a0, a0, 1               |     a0++;
    0x0002fd3c sw s0, (v1)                   |     *(v1) = s0;
    0x0002fd40 sw s1, 4(v1)                  |     *((v1 + 1)) = s1;
    0x0002fd44 sw v0, 0xc(v1)                |     *((v1 + 3)) = v0;
    0x0002fd48 sw a1, 0x10(v1)               |     *((v1 + 4)) = a1;
    0x0002fd4c sw s6, 0x14(v1)               |     *((v1 + 5)) = s6;
    0x0002fd50 sw a2, 0x18(v1)               |     *((v1 + 6)) = a2;
    0x0002fd54 sw a3, 0x1c(v1)               |     *((v1 + 7)) = a3;
    0x0002fd58 sw a0, 0xc(s4)                |     *((s4 + 3)) = a0;
    0x0002fd5c sw s3, 0x20(v1)               |     *((v1 + 8)) = s3;
    0x0002fd60 sw s2, 0x24(v1)               |     *((v1 + 9)) = s2;
    0x0002fd64 b 0x2fab8                     |     goto label_3;
                                             | label_29:
    0x0002fd68 lw a0, 0xc(s2)                |     a0 = *((s2 + 3));
    0x0002fd6c sll v0, v1, 2                 |     v0 = v1 << 2;
    0x0002fd70 addu v0, v0, v1               |     v0 += v1;
    0x0002fd74 lw v1, 0x80(a0)               |     v1 = *((a0 + 32));
    0x0002fd78 sll v0, v0, 3                 |     v0 <<= 3;
    0x0002fd7c sw a0, 0x60(sp)               |     *(var_60h) = a0;
    0x0002fd80 lwx v0, v0(v1)                |     __asm ("lwx v0, v0(v1)");
    0x0002fd84 lw v0, 0x10(s5)               |     v0 = *((s5 + 4));
                                             |     if (v0 == 0) {
    0x0002fd88 bnel v0, zero, 0x30138        |         goto label_40;
                                             |     }
    0x0002fd8c lw v0, 8(s5)                  |     v0 = *((s5 + 2));
    0x0002fd90 sw v0, 0x64(sp)               |     *(var_64h) = v0;
                                             | label_14:
    0x0002fd94 lw t9, -0x7988(gp)            |     t9 = *((gp - 7778));
    0x0002fd98 addiu a2, sp, 0x88            |     a2 = sp + 0x88;
    0x0002fd9c addiu a1, zero, 0x10          |     a1 = 0x10;
    0x0002fda0 move a0, s5                   |     a0 = s5;
    0x0002fda4 sw zero, 0x88(sp)             |     *(var_88h) = 0;
    0x0002fda8 jalr t9                       |     t9 ();
    0x0002fdac lw gp, 0x40(sp)               |     gp = *(var_40h);
    0x0002fdb0 addiu a1, zero, 0x11          |     a1 = 0x11;
    0x0002fdb4 addiu a2, sp, 0x8c            |     a2 = sp + 0x8c;
    0x0002fdb8 lw t9, -0x7988(gp)            |     t9 = *((gp - 7778));
    0x0002fdbc move a0, s5                   |     a0 = s5;
    0x0002fdc0 sw v0, 0x68(sp)               |     *(var_68h) = v0;
    0x0002fdc4 sw zero, 0x8c(sp)             |     *(var_8ch) = 0;
    0x0002fdc8 jalr t9                       |     t9 ();
    0x0002fdcc addiu fp, zero, 1             |     fp = 1;
    0x0002fdd0 lw gp, 0x40(sp)               |     gp = *(var_40h);
    0x0002fdd4 lw v1, 0x1c(s5)               |     v1 = *((s5 + 7));
    0x0002fdd8 lw a0, 0x8c(sp)               |     a0 = *(var_8ch);
    0x0002fddc sw fp, 0x10(sp)               |     *(var_10h) = fp;
    0x0002fde0 lw s3, 0x88(sp)               |     s3 = *(var_88h);
    0x0002fde4 lw t6, 8(s5)                  |     t6 = *((s5 + 2));
    0x0002fde8 lw t7, 0xc(s5)                |     t7 = *((s5 + 3));
    0x0002fdec lw t4, 0x10(s5)               |     t4 = *((s5 + 4));
    0x0002fdf0 lw t5, 0x14(s5)               |     t5 = *((s5 + 5));
    0x0002fdf4 lw t0, 0x30(s5)               |     t0 = *((s5 + 12));
    0x0002fdf8 lw t1, 0x34(s5)               |     t1 = *((s5 + 13));
    0x0002fdfc addu s3, s3, a0               |     s3 += a0;
    0x0002fe00 lw t9, -0x7f48(gp)            |     t9 = *((gp - 8146));
    0x0002fe04 move a2, zero                 |     a2 = 0;
    0x0002fe08 move a3, zero                 |     a3 = 0;
    0x0002fe0c move a0, s4                   |     a0 = s4;
    0x0002fe10 sw t6, 0x80(sp)               |     *(var_80h) = t6;
    0x0002fe14 sw t7, 0x84(sp)               |     *(var_84h) = t7;
    0x0002fe18 sw t4, 0x78(sp)               |     *(var_78h) = t4;
    0x0002fe1c sw t5, 0x7c(sp)               |     *(var_7ch) = t5;
    0x0002fe20 sw t0, 0x70(sp)               |     *(var_70h) = t0;
    0x0002fe24 sw t1, 0x74(sp)               |     *(var_74h) = t1;
    0x0002fe28 addiu s3, s3, 2               |     s3 += 2;
    0x0002fe2c sw v0, 0x6c(sp)               |     *(var_6ch) = v0;
    0x0002fe30 addu s3, s3, v1               |     s3 += v1;
    0x0002fe34 jalr t9                       |     t9 ();
    0x0002fe38 lw a0, 0x20(s5)               |     a0 = *((s5 + 8));
    0x0002fe3c lw gp, 0x40(sp)               |     gp = *(var_40h);
    0x0002fe40 addiu a0, a0, 1               |     a0++;
    0x0002fe44 sw a0, 0x38(sp)               |     *(var_38h) = a0;
    0x0002fe48 lw a0, 0x60(sp)               |     a0 = *(var_60h);
    0x0002fe4c sw fp, 0x3c(sp)               |     *(var_3ch) = fp;
    0x0002fe50 lw t0, 0x70(sp)               |     t0 = *(var_70h);
    0x0002fe54 lw a1, 0x5c(a0)               |     a1 = *((a0 + 23));
    0x0002fe58 lw a2, -0x7fc4(gp)            |     a2 = *((gp - 8177));
    0x0002fe5c lw a0, 0x58(a0)               |     a0 = *((a0 + 22));
    0x0002fe60 lw t1, 0x74(sp)               |     t1 = *(var_74h);
    0x0002fe64 lw t4, 0x78(sp)               |     t4 = *(var_78h);
    0x0002fe68 lw t5, 0x7c(sp)               |     t5 = *(var_7ch);
    0x0002fe6c lw t6, 0x80(sp)               |     t6 = *(var_80h);
    0x0002fe70 lw t7, 0x84(sp)               |     t7 = *(var_84h);
    0x0002fe74 addiu t2, s3, 4               |     t2 = s3 + 4;
    0x0002fe78 lw t9, -0x7a1c(gp)            |     t9 = *((gp - 7815));
    0x0002fe7c sw t2, 0x5c(sp)               |     *(var_5ch) = t2;
    0x0002fe80 sw a0, 0x30(sp)               |     *(var_30h) = a0;
    0x0002fe84 sw a1, 0x34(sp)               |     *(var_34h) = a1;
    0x0002fe88 sw v0, 0x28(sp)               |     *(var_28h) = v0;
    0x0002fe8c sw v1, 0x2c(sp)               |     *(var_2ch) = v1;
    0x0002fe90 sw t0, 0x20(sp)               |     *(var_20h) = t0;
    0x0002fe94 sw t1, 0x24(sp)               |     *(var_24h) = t1;
    0x0002fe98 sw t4, 0x18(sp)               |     *(var_18h) = t4;
    0x0002fe9c sw t5, 0x1c(sp)               |     *(var_1ch) = t5;
    0x0002fea0 sw t6, 0x10(sp)               |     *(var_10h) = t6;
    0x0002fea4 sw t7, 0x14(sp)               |     *(var_14h) = t7;
    0x0002fea8 move a3, s3                   |     a3 = s3;
    0x0002feac addiu a2, a2, 0x4388          |     a2 += 0x4388;
    0x0002feb0 addiu a1, zero, 0x30          |     a1 = 0x30;
    0x0002feb4 move a0, s2                   |     a0 = s2;
    0x0002feb8 jalr t9                       |     t9 ();
    0x0002febc lw t2, 0x5c(sp)               |     t2 = *(var_5ch);
    0x0002fec0 addiu fp, s3, 5               |     fp = s3 + 5;
    0x0002fec4 sra t0, t2, 0x1f              |     t0 = t2 >> 0x1f;
    0x0002fec8 sltu s6, fp, t2               |     s6 = (fp < t2) ? 1 : 0;
    0x0002fecc addu s6, s6, t0               |     s6 += t0;
    0x0002fed0 sll v1, s6, 0x19              |     v1 = s6 << 0x19;
    0x0002fed4 srl v0, fp, 7                 |     v0 = fp >> 7;
    0x0002fed8 or v0, v1, v0                 |     v0 = v1 | v0;
    0x0002fedc srl v1, s6, 7                 |     v1 = s6 >> 7;
    0x0002fee0 or v0, v0, v1                 |     v0 |= v1;
    0x0002fee4 lw gp, 0x40(sp)               |     gp = *(var_40h);
                                             |     if (v0 == 0) {
    0x0002fee8 beqz v0, 0x30148              |         goto label_41;
                                             |     }
    0x0002feec addiu v1, zero, 0xe           |     v1 = 0xe;
    0x0002fef0 addiu a3, zero, 1             |     a3 = 1;
    0x0002fef4 sll s3, s6, 1                 |     s3 = s6 << 1;
                                             |     do {
    0x0002fef8 nor a1, zero, v1              |         __asm ("nor a1, zero, v1");
    0x0002fefc srlv v0, fp, v1               |         v0 = fp >> v1;
    0x0002ff00 sllv a1, s3, a1               |         a1 = s3 << a1;
    0x0002ff04 andi a2, v1, 0x20             |         a2 = v1 & 0x20;
    0x0002ff08 srlv a0, s6, v1               |         a0 = s6 >> v1;
    0x0002ff0c or v0, a1, v0                 |         v0 = a1 | v0;
                                             |         if (a2 == 0) {
    0x0002ff10 movn v0, a0, a2               |             v0 = a0;
                                             |         }
                                             |         if (a2 == 0) {
    0x0002ff14 movn a0, zero, a2             |             a0 = 0;
                                             |         }
    0x0002ff18 or v0, v0, a0                 |         v0 |= a0;
    0x0002ff1c addiu a3, a3, 1               |         a3++;
    0x0002ff20 addiu v1, v1, 7               |         v1 += 7;
    0x0002ff24 bnez v0, 0x2fef8              |         
                                             |     } while (v0 != 0);
    0x0002ff28 addu a3, t2, a3               |     a3 = t2 + a3;
    0x0002ff2c addiu a3, a3, 0xb             |     a3 += 0xb;
    0x0002ff30 lw t9, -0x7d90(gp)            |     t9 = *((gp - 8036));
    0x0002ff34 sra v0, a3, 0x1f              |     v0 = a3 >> 0x1f;
    0x0002ff38 sw t0, 0x70(sp)               |     *(var_70h) = t0;
    0x0002ff3c sw t2, 0x5c(sp)               |     *(var_5ch) = t2;
    0x0002ff40 sw a3, 0x10(sp)               |     *(var_10h) = a3;
    0x0002ff44 addiu a2, zero, 0xa0          |     a2 = 0xa0;
    0x0002ff48 move a1, s4                   |     a1 = s4;
    0x0002ff4c addiu a0, sp, 0x90            |     a0 = sp + 0x90;
    0x0002ff50 addiu t9, t9, -0x4cf0         |     t9 += -0x4cf0;
    0x0002ff54 sw v0, 0x14(sp)               |     *(var_14h) = v0;
    0x0002ff58 bal 0x2b310                   |     fcn_0002b310 ();
    0x0002ff5c lw gp, 0x40(sp)               |     gp = *(var_40h);
    0x0002ff60 addiu a1, zero, 0xa1          |     a1 = 0xa1;
    0x0002ff64 lw t9, -0x7f88(gp)            |     t9 = *((gp - 8162));
    0x0002ff68 move a0, s4                   |     a0 = s4;
    0x0002ff6c jalr t9                       |     t9 ();
    0x0002ff70 lw gp, 0x40(sp)               |     gp = *(var_40h);
    0x0002ff74 addiu a3, zero, 0xe           |     a3 = 0xe;
    0x0002ff78 addiu v1, zero, 1             |     v1 = 1;
    0x0002ff7c lw t2, 0x5c(sp)               |     t2 = *(var_5ch);
    0x0002ff80 lw t0, 0x70(sp)               |     t0 = *(var_70h);
    0x0002ff84 b 0x2ff8c                     |     
                                             |     while (v0 != 0) {
    0x0002ff88 move v1, a0                   |         v1 = a0;
    0x0002ff8c nor a2, zero, a3              |         __asm ("nor a2, zero, a3");
    0x0002ff90 srlv v0, fp, a3               |         v0 = fp >> a3;
    0x0002ff94 sllv a2, s3, a2               |         a2 = s3 << a2;
    0x0002ff98 andi t3, a3, 0x20             |         t3 = a3 & 0x20;
    0x0002ff9c srlv a0, s6, a3               |         a0 = s6 >> a3;
    0x0002ffa0 or v0, a2, v0                 |         v0 = a2 | v0;
                                             |         if (t3 == 0) {
    0x0002ffa4 movn v0, a0, t3               |             v0 = a0;
                                             |         }
                                             |         if (t3 == 0) {
    0x0002ffa8 movn a0, zero, t3             |             a0 = 0;
                                             |         }
    0x0002ffac or v0, v0, a0                 |         v0 |= a0;
    0x0002ffb0 move a1, a3                   |         a1 = a3;
    0x0002ffb4 addiu a0, v1, 1               |         a0 = v1 + 1;
    0x0002ffb8 addiu a3, a3, 7               |         a3 += 7;
    0x0002ffbc bnez v0, 0x2ff88              |         
                                             |     }
                                             | label_16:
    0x0002ffc0 lui v0, 0x100                 |     v0 = LIBAVFORMAT_58;
    0x0002ffc4 sltu v0, t0, v0               |     v0 = (t0 < v0) ? 1 : 0;
    0x0002ffc8 addiu s6, zero, 1             |     s6 = 1;
                                             |     if (v0 == 0) {
    0x0002ffcc beqz v0, 0x301e4              |         goto label_42;
                                             |     }
    0x0002ffd0 sllv s6, s6, a1               |     s6 <<= a1;
    0x0002ffd4 andi v0, a1, 0x20             |     v0 = a1 & 0x20;
    0x0002ffd8 move s3, s6                   |     s3 = s6;
                                             |     if (v0 != 0) {
    0x0002ffdc movz s3, zero, v0             |         s3 = 0;
                                             |     }
    0x0002ffe0 or s3, s3, t0                 |     s3 |= t0;
                                             |     if (v0 == 0) {
    0x0002ffe4 movn s6, zero, v0             |         s6 = 0;
                                             |     }
    0x0002ffe8 sll v0, s3, 1                 |     v0 = s3 << 1;
    0x0002ffec or s6, s6, t2                 |     s6 |= t2;
    0x0002fff0 sll fp, v1, 3                 |     fp = v1 << 3;
    0x0002fff4 sw v0, 0x5c(sp)               |     *(var_5ch) = v0;
                                             |     do {
    0x0002fff8 lw v0, 0x5c(sp)               |         v0 = *(var_5ch);
    0x0002fffc nor v1, zero, fp              |         __asm ("nor v1, zero, fp");
    0x00030000 sllv v1, v0, v1               |         v1 = v0 << v1;
    0x00030004 srlv a1, s6, fp               |         a1 = s6 >> fp;
    0x00030008 andi a0, fp, 0x20             |         a0 = fp & 0x20;
    0x0003000c or a1, v1, a1                 |         a1 = v1 | a1;
    0x00030010 srlv v1, s3, fp               |         v1 = s3 >> fp;
                                             |         if (a0 == 0) {
    0x00030014 movn a1, v1, a0               |             a1 = v1;
                                             |         }
    0x00030018 lw t9, -0x7f88(gp)            |         t9 = *((gp - 8162));
    0x0003001c andi a1, a1, 0xff             |         a1 &= 0xff;
    0x00030020 move a0, s4                   |         a0 = s4;
    0x00030024 jalr t9                       |         t9 ();
    0x00030028 addiu fp, fp, -8              |         fp += -8;
    0x0003002c addiu v0, zero, -8            |         v0 = -8;
    0x00030030 lw gp, 0x40(sp)               |         gp = *(var_40h);
    0x00030034 bne fp, v0, 0x2fff8           |         
                                             |     } while (fp != v0);
    0x00030038 lw a1, 0x20(s5)               |     a1 = *((s5 + 8));
    0x0003003c lw t9, -0x7f88(gp)            |     t9 = *((gp - 8162));
    0x00030040 addiu a1, a1, 1               |     a1++;
    0x00030044 ori a1, a1, 0x80              |     a1 |= 0x80;
    0x00030048 move a0, s4                   |     a0 = s4;
    0x0003004c jalr t9                       |     t9 ();
    0x00030050 lw v0, 0x60(sp)               |     v0 = *(var_60h);
    0x00030054 lw gp, 0x40(sp)               |     gp = *(var_40h);
    0x00030058 move a0, s4                   |     a0 = s4;
    0x0003005c lw a1, 0x60(v0)               |     a1 = *((v0 + 24));
    0x00030060 lw v0, 0x64(sp)               |     v0 = *(var_64h);
    0x00030064 lw t9, -0x7f8c(gp)            |     t9 = *((gp - 8163));
    0x00030068 subu a1, v0, a1               |     __asm ("subu a1, v0, a1");
    0x0003006c jalr t9                       |     t9 ();
    0x00030070 lw gp, 0x40(sp)               |     gp = *(var_40h);
    0x00030074 move a1, zero                 |     a1 = 0;
    0x00030078 lw t9, -0x7f88(gp)            |     t9 = *((gp - 8162));
    0x0003007c move a0, s4                   |     a0 = s4;
    0x00030080 jalr t9                       |     t9 ();
    0x00030084 lw v0, 0x1c(s5)               |     v0 = *((s5 + 7));
    0x00030088 lw gp, 0x40(sp)               |     gp = *(var_40h);
    0x0003008c lw v1, 0x18(s5)               |     v1 = *((s5 + 6));
    0x00030090 sw v0, 0x18(sp)               |     *(var_18h) = v0;
    0x00030094 lw v0, 0x6c(sp)               |     v0 = *(var_6ch);
    0x00030098 lw a1, -0x7fc4(gp)            |     a1 = *((gp - 8177));
    0x0003009c sw v0, 0x14(sp)               |     *(var_14h) = v0;
    0x000300a0 lw v0, 0x8c(sp)               |     v0 = *(var_8ch);
    0x000300a4 lw a2, 0x88(sp)               |     a2 = *(var_88h);
    0x000300a8 lw t9, -0x7d48(gp)            |     t9 = *((gp - 8018));
    0x000300ac lw a3, 0x68(sp)               |     a3 = *(var_68h);
    0x000300b0 sw v1, 0x1c(sp)               |     *(var_1ch) = v1;
    0x000300b4 addiu a1, a1, 0x44d0          |     a1 += 0x44d0;
    0x000300b8 move a0, s4                   |     a0 = s4;
    0x000300bc sw v0, 0x10(sp)               |     *(var_10h) = v0;
    0x000300c0 bal 0x114dc                   |     sym_avio_printf ()
    0x000300c4 lw gp, 0x40(sp)               |     gp = *(var_40h);
    0x000300c8 lw a2, 0x30(s5)               |     a2 = *((s5 + 12));
    0x000300cc lw a3, 0x34(s5)               |     a3 = *((s5 + 13));
    0x000300d0 lw t9, -0x7d90(gp)            |     t9 = *((gp - 8036));
    0x000300d4 addiu a1, zero, 0x9b          |     a1 = 0x9b;
    0x000300d8 addiu t9, t9, -0x46dc         |     t9 += -0x46dc;
    0x000300dc move a0, s4                   |     a0 = s4;
    0x000300e0 bal 0x2b924                   |     fcn_0002b924 ();
    0x000300e4 lw gp, 0x40(sp)               |     gp = *(var_40h);
    0x000300e8 lw v0, 0x98(sp)               |     v0 = *(var_98h);
    0x000300ec lw a2, 0x90(sp)               |     a2 = *(var_90h);
    0x000300f0 lw t9, -0x7d90(gp)            |     t9 = *((gp - 8036));
    0x000300f4 lw a3, 0x94(sp)               |     a3 = *(var_94h);
    0x000300f8 sw v0, 0x10(sp)               |     *(var_10h) = v0;
    0x000300fc addiu t9, t9, -0x4f74         |     t9 += -0x4f74;
    0x00030100 move a0, s4                   |     a0 = s4;
    0x00030104 bal 0x2b08c                   |     fcn_0002b08c ();
    0x00030108 lw s3, 0x30(s5)               |     s3 = *((s5 + 12));
    0x0003010c lw gp, 0x40(sp)               |     gp = *(var_40h);
    0x00030110 sra s6, s3, 0x1f              |     s6 = s3 >> 0x1f;
    0x00030114 b 0x2faa4                     |     goto label_12;
                                             | label_39:
    0x00030118 lw t9, -0x7d90(gp)            |     t9 = *((gp - 8036));
    0x0003011c lw a0, 0x50(s7)               |     a0 = *((s7 + 20));
    0x00030120 addiu a2, zero, 6             |     a2 = 6;
    0x00030124 addiu t9, t9, -0x445c         |     t9 += -0x445c;
    0x00030128 move a3, zero                 |     a3 = 0;
    0x0003012c bal 0x2bba4                   |     fcn_0002bba4 ();
    0x00030130 lw gp, 0x40(sp)               |     gp = *(var_40h);
    0x00030134 b 0x2fc34                     |     goto label_13;
                                             | label_40:
    0x00030138 sw v0, 0x64(sp)               |     *(var_64h) = v0;
    0x0003013c b 0x2fd94                     |     goto label_14;
                                             | label_30:
    0x00030140 addiu a3, zero, 1             |     a3 = 1;
    0x00030144 b 0x2f9f4                     |     goto label_15;
                                             | label_41:
    0x00030148 lw t9, -0x7d90(gp)            |     t9 = *((gp - 8036));
    0x0003014c addiu s3, s3, 0x10            |     s3 += 0x10;
    0x00030150 sra v0, s3, 0x1f              |     v0 = s3 >> 0x1f;
    0x00030154 sw t0, 0x70(sp)               |     *(var_70h) = t0;
    0x00030158 sw t2, 0x5c(sp)               |     *(var_5ch) = t2;
    0x0003015c addiu a2, zero, 0xa0          |     a2 = 0xa0;
    0x00030160 move a1, s4                   |     a1 = s4;
    0x00030164 addiu a0, sp, 0x90            |     a0 = sp + 0x90;
    0x00030168 sw v0, 0x14(sp)               |     *(var_14h) = v0;
    0x0003016c addiu t9, t9, -0x4cf0         |     t9 += -0x4cf0;
    0x00030170 sw s3, 0x10(sp)               |     *(var_10h) = s3;
    0x00030174 bal 0x2b310                   |     fcn_0002b310 ();
    0x00030178 lw gp, 0x40(sp)               |     gp = *(var_40h);
    0x0003017c addiu a1, zero, 0xa1          |     a1 = 0xa1;
    0x00030180 lw t9, -0x7f88(gp)            |     t9 = *((gp - 8162));
    0x00030184 move a0, s4                   |     a0 = s4;
    0x00030188 jalr t9                       |     t9 ();
    0x0003018c lw gp, 0x40(sp)               |     gp = *(var_40h);
    0x00030190 move v1, zero                 |     v1 = 0;
    0x00030194 addiu a1, zero, 7             |     a1 = 7;
    0x00030198 lw t2, 0x5c(sp)               |     t2 = *(var_5ch);
    0x0003019c lw t0, 0x70(sp)               |     t0 = *(var_70h);
    0x000301a0 b 0x2ffc0                     |     goto label_16;
                                             | label_22:
    0x000301a4 lw s0, 0x20(v0)               |     s0 = *((v0 + 8));
                                             |     if (s1 == a0) {
    0x000301a8 bnel s1, a0, 0x2f70c          |         goto label_17;
                                             |     }
    0x000301ac lw a2, -0x7fc4(gp)            |     a2 = *((gp - 8177));
    0x000301b0 lw t9, -0x7a1c(gp)            |     t9 = *((gp - 7815));
    0x000301b4 addiu a2, a2, 0x443c          |     a2 += 0x443c;
    0x000301b8 addiu a1, zero, 0x10          |     a1 = 0x10;
    0x000301bc move a0, s2                   |     a0 = s2;
    0x000301c0 jalr t9                       |     t9 ();
    0x000301c4 lw gp, 0x40(sp)               |     gp = *(var_40h);
    0x000301c8 addiu v0, zero, -0x16         |     v0 = -0x16;
    0x000301cc b 0x2fb20                     |     goto label_2;
                                             | label_28:
    0x000301d0 addiu v0, zero, -0xc          |     v0 = -0xc;
    0x000301d4 b 0x2fb20                     |     goto label_2;
                                             | label_38:
    0x000301d8 lw t9, -0x7974(gp)            |     t9 = *(gp);
    0x000301dc jalr t9                       |     t9 ();
    0x000301e0 nop                           |     
                                             | label_42:
    0x000301e4 addiu v0, zero, 0xe6          |     v0 = 0xe6;
    0x000301e8 sw v0, 0x14(sp)               |     *(var_14h) = v0;
    0x000301ec lw v0, -0x7fc4(gp)            |     v0 = *((gp - 8177));
    0x000301f0 lw a3, -0x7fc4(gp)            |     a3 = *((gp - 8177));
    0x000301f4 lw a2, -0x7fc4(gp)            |     a2 = *((gp - 8177));
    0x000301f8 lw t9, -0x7a1c(gp)            |     t9 = *((gp - 7815));
    0x000301fc addiu v0, v0, 0x41d8          |     v0 += 0x41d8;
    0x00030200 sw v0, 0x10(sp)               |     *(var_10h) = v0;
    0x00030204 addiu a3, a3, 0x4214          |     a3 += 0x4214;
    0x00030208 addiu a2, a2, -0x2ad4         |     a2 += -0x2ad4;
    0x0003020c move a1, zero                 |     a1 = 0;
    0x00030210 move a0, zero                 |     a0 = 0;
    0x00030214 jalr t9                       |     t9 ();
    0x00030218 lw gp, 0x40(sp)               |     gp = *(var_40h);
    0x0003021c lw t9, -0x7bdc(gp)            |     t9 = *((gp - 7927));
    0x00030220 jalr t9                       |     t9 ();
    0x00030224 nop                           |     
                                             | label_24:
    0x00030228 lw v1, 0x5c(s7)               |     v1 = *((s7 + 23));
    0x0003022c lw s4, 0x50(s7)               |     s4 = *((s7 + 20));
                                             |     if (v1 == v0) {
    0x00030230 bnel v1, v0, 0x2f828          |         goto label_18;
                                             |     }
    0x00030234 lw t9, -0x7f48(gp)            |     t9 = *((gp - 8146));
    0x00030238 b 0x2fba0                     |     goto label_19;
                                             | }

[*] Function printf used 2 times libavformat.so.58.29.100