[*] Binary protection state of image2d

  
  	Full RELRO     Canary found      NX disabled  PIE enabled  No RPATH     No RUNPATH   No Symbols


[*] Function popen tear down of image2d

    ; assembly                               | /* r2dec pseudo code output */
                                             | /* /logs/firmware/unblob_extracted/firmware_extract/4325012-58052244.squashfs_v4_le_extract/usr/bin/image2d @ 0x152b78 */
                                             | #include <stdint.h>
                                             |  
    ; (fcn) fcn.00152b78 ()                  | void fcn_00152b78 () {
    0x00152b78 lui gp, 0x10                  |     
    0x00152b7c addiu gp, gp, -0x38a8         |     
    0x00152b80 addu gp, gp, t9               |     gp += t9;
    0x00152b84 lw v0, 0x18(a0)               |     v0 = *((a0 + 6));
    0x00152b88 addiu sp, sp, -0x28           |     
    0x00152b8c lw t9, -0x5e00(gp)            |     t9 = sym.imp.ioctl;
    0x00152b90 xori a2, a1, 1                |     a2 = a1 ^ 1;
    0x00152b94 sw s2, 0x20(sp)               |     *(var_20h) = s2;
    0x00152b98 sw s1, 0x1c(sp)               |     *(var_1ch) = s1;
    0x00152b9c move s2, a1                   |     s2 = a1;
    0x00152ba0 move s1, a0                   |     s1 = a0;
    0x00152ba4 lui a1, 0xc004                |     a1 = 0xc0040000;
    0x00152ba8 lw a0, (v0)                   |     a0 = *(v0);
    0x00152bac sw gp, 0x10(sp)               |     *(var_10h) = gp;
    0x00152bb0 sw s0, 0x18(sp)               |     *(var_18h) = s0;
    0x00152bb4 sw ra, 0x24(sp)               |     *(var_24h) = ra;
    0x00152bb8 addiu a1, a1, 0x4900          |     a1 += 0x4900;
    0x00152bbc jalr t9                       |     t9 ();
    0x00152bc0 move s0, v0                   |     s0 = v0;
    0x00152bc4 lw gp, 0x10(sp)               |     gp = *(var_10h);
                                             |     if (v0 >= 0) {
    0x00152bc8 bltz v0, 0x152bec             |         
    0x00152bcc lw ra, 0x24(sp)               |         ra = *(var_24h);
    0x00152bd0 sb s2, 0xc(s1)                |         *((s1 + 12)) = s2;
    0x00152bd4 move v0, s0                   |         v0 = s0;
    0x00152bd8 lw s2, 0x20(sp)               |         s2 = *(var_20h);
    0x00152bdc lw s1, 0x1c(sp)               |         s1 = *(var_1ch);
    0x00152be0 lw s0, 0x18(sp)               |         s0 = *(var_18h);
    0x00152be4 addiu sp, sp, 0x28            |         
    0x00152be8 jr ra                         |         return v0;
                                             |     }
    0x00152bec lw t9, -0x5b94(gp)            |     t9 = sym.imp.__errno_location;
    0x00152bf0 jalr t9                       |     t9 ();
    0x00152bf4 nop                           |     
    0x00152bf8 lw gp, 0x10(sp)               |     gp = *(var_10h);
    0x00152bfc lw t9, -0x5bc4(gp)            |     t9 = sym.imp.strerror;
    0x00152c00 lw a0, (v0)                   |     a0 = *(v0);
    0x00152c04 jalr t9                       |     t9 ();
    0x00152c08 lw gp, 0x10(sp)               |     gp = *(var_10h);
    0x00152c0c move a3, v0                   |     a3 = v0;
    0x00152c10 move a1, zero                 |     a1 = 0;
    0x00152c14 lw a2, -0x7e54(gp)            |     a2 = *(gp);
    0x00152c18 lw t9, -0x7f7c(gp)            |     t9 = sym.debug_output;
                                             |     /* str.Failed_to_move_IR_cut_filter:__s_n */
    0x00152c1c addiu a2, a2, -0x1420         |     a2 += -0x1420;
    0x00152c20 addiu a0, zero, 2             |     a0 = 2;
    0x00152c24 jalr t9                       |     t9 ();
    0x00152c28 lw ra, 0x24(sp)               |     ra = *(var_24h);
    0x00152c2c move v0, s0                   |     v0 = s0;
    0x00152c30 lw s2, 0x20(sp)               |     s2 = *(var_20h);
    0x00152c34 lw s1, 0x1c(sp)               |     s1 = *(var_1ch);
    0x00152c38 lw s0, 0x18(sp)               |     s0 = *(var_18h);
    0x00152c3c addiu sp, sp, 0x28            |     
    0x00152c40 jr ra                         |     return v0;
                                             | }
    ; assembly                               | /* r2dec pseudo code output */
                                             | /* /logs/firmware/unblob_extracted/firmware_extract/4325012-58052244.squashfs_v4_le_extract/usr/bin/image2d @ 0x153d80 */
                                             | #include <stdint.h>
                                             |  
    ; (fcn) fcn.00153d80 ()                  | void fcn_00153d80 () {
    0x00153d80 lui gp, 0x10                  |     
    0x00153d84 addiu gp, gp, -0x4ab0         |     
    0x00153d88 addu gp, gp, t9               |     gp += t9;
    0x00153d8c addiu sp, sp, -0x30           |     
    0x00153d90 sw s0, 0x20(sp)               |     *(var_20h) = s0;
    0x00153d94 lw s0, 0x18(a0)               |     s0 = *((a0 + 6));
    0x00153d98 sw gp, 0x18(sp)               |     *(var_18h) = gp;
    0x00153d9c sw ra, 0x2c(sp)               |     *(var_2ch) = ra;
    0x00153da0 lw v0, 4(s0)                  |     v0 = *((s0 + 1));
    0x00153da4 sw s2, 0x28(sp)               |     *(var_28h) = s2;
    0x00153da8 sw s1, 0x24(sp)               |     *(var_24h) = s1;
    0x00153dac lw a0, (s0)                   |     a0 = *(s0);
    0x00153db0 sb a1, 8(s0)                  |     *((s0 + 8)) = a1;
                                             |     if (v0 >= 0) {
    0x00153db4 bltz v0, 0x153ddc             |         
    0x00153db8 lw a2, -0x7e54(gp)            |         a2 = *(gp);
    0x00153dbc lw t9, -0x7f7c(gp)            |         t9 = sym.debug_output;
    0x00153dc0 move a3, a0                   |         a3 = a0;
                                             |         /* str.fd_for__s_is_already_open_n */
    0x00153dc4 addiu a2, a2, -0x1020         |         a2 += -0x1020;
    0x00153dc8 addiu a0, zero, 2             |         a0 = 2;
    0x00153dcc move a1, zero                 |         a1 = 0;
    0x00153dd0 jalr t9                       |         t9 ();
    0x00153dd4 lw gp, 0x18(sp)               |         gp = *(var_18h);
    0x00153dd8 lw a0, (s0)                   |         a0 = *(s0);
                                             |     }
    0x00153ddc lw t9, -0x5ba4(gp)            |     t9 = sym.imp.open;
    0x00153de0 addiu a1, zero, 2             |     a1 = 2;
    0x00153de4 jalr t9                       |     t9 ();
    0x00153de8 lw gp, 0x18(sp)               |     gp = *(var_18h);
    0x00153dec sw v0, 4(s0)                  |     *((s0 + 1)) = v0;
                                             |     if (v0 < 0) {
    0x00153df0 bltz v0, 0x153f78             |         goto label_3;
                                             |     }
    0x00153df4 lbu v1, 8(s0)                 |     v1 = *((s0 + 8));
    0x00153df8 lw a1, -0x7f24(gp)            |     a1 = *(gp);
                                             |     if (v1 != 0) {
    0x00153dfc bnez v1, 0x153e48             |         goto label_4;
                                             |     }
    0x00153e00 lw a1, -0x7e54(gp)            |     a1 = *(gp);
    0x00153e04 lw t9, -0x5ca8(gp)            |     t9 = sym.imp.write;
                                             |     /* esilref: '$' */
    0x00153e08 addiu a1, a1, 0xdb4           |     a1 += 0xdb4;
    0x00153e0c addiu a2, zero, 1             |     a2 = 1;
    0x00153e10 move a0, v0                   |     a0 = v0;
    0x00153e14 jalr t9                       |     t9 ();
    0x00153e18 lw gp, 0x18(sp)               |     gp = *(var_18h);
                                             |     if (v0 < 0) {
    0x00153e1c bltz v0, 0x153e64             |         goto label_5;
                                             |     }
                                             |     do {
    0x00153e20 lw a0, 4(s0)                  |         a0 = *((s0 + 1));
    0x00153e24 lw t9, -0x5f64(gp)            |         t9 = *(gp);
                                             |         if (a0 >= 0) {
    0x00153e28 bgez a0, 0x153ed4             |             goto label_6;
                                             |         }
                                             | label_0:
    0x00153e2c move v0, zero                 |         v0 = 0;
                                             | label_2:
    0x00153e30 lw ra, 0x2c(sp)               |         ra = *(var_2ch);
    0x00153e34 lw s2, 0x28(sp)               |         s2 = *(var_28h);
    0x00153e38 lw s1, 0x24(sp)               |         s1 = *(var_24h);
    0x00153e3c lw s0, 0x20(sp)               |         s0 = *(var_20h);
    0x00153e40 addiu sp, sp, 0x30            |         
    0x00153e44 jr ra                         |         return v0;
                                             | label_4:
    0x00153e48 lw t9, -0x5ca8(gp)            |         t9 = sym.imp.write;
    0x00153e4c addiu a1, a1, 0x7adc          |         a1 += aav.0x00007adc;
    0x00153e50 addiu a2, zero, 1             |         a2 = 1;
    0x00153e54 move a0, v0                   |         a0 = v0;
    0x00153e58 jalr t9                       |         t9 ();
    0x00153e5c lw gp, 0x18(sp)               |         gp = *(var_18h);
    0x00153e60 bgez v0, 0x153e20             |         
                                             |     } while (v0 >= 0);
                                             | label_5:
    0x00153e64 lbu v0, 8(s0)                 |     v0 = *((s0 + 8));
    0x00153e68 lw s1, -0x7e54(gp)            |     s1 = *(gp);
                                             |     if (v0 != 0) {
    0x00153e6c bnez v0, 0x153f08             |         goto label_7;
                                             |     }
    0x00153e70 lw s1, -0x7e54(gp)            |     s1 = *(gp);
                                             |     /* str.open */
    0x00153e74 addiu s1, s1, -0x1028         |     s1 += -0x1028;
                                             | label_1:
    0x00153e78 lw t9, -0x5b94(gp)            |     t9 = sym.imp.__errno_location;
    0x00153e7c jalr t9                       |     t9 ();
    0x00153e80 nop                           |     
    0x00153e84 lw gp, 0x18(sp)               |     gp = *(var_18h);
    0x00153e88 lw a0, (v0)                   |     a0 = *(v0);
    0x00153e8c lw t9, -0x5bc4(gp)            |     t9 = sym.imp.strerror;
    0x00153e90 move s2, v0                   |     s2 = v0;
    0x00153e94 jalr t9                       |     t9 ();
    0x00153e98 lw gp, 0x18(sp)               |     gp = *(var_18h);
    0x00153e9c lw v1, (s2)                   |     v1 = *(s2);
    0x00153ea0 addiu a0, zero, 4             |     a0 = 4;
    0x00153ea4 lw a2, -0x7e54(gp)            |     a2 = *(gp);
    0x00153ea8 lw t9, -0x7f7c(gp)            |     t9 = sym.debug_output;
    0x00153eac sw v1, 0x14(sp)               |     *(var_14h) = v1;
    0x00153eb0 sw v0, 0x10(sp)               |     *(var_10h) = v0;
    0x00153eb4 move a3, s1                   |     a3 = s1;
                                             |     /* str.Failed_to__s_IR_cut_filter_:__s___d__n */
    0x00153eb8 addiu a2, a2, -0xfdc          |     a2 += -0xfdc;
    0x00153ebc move a1, zero                 |     a1 = 0;
    0x00153ec0 jalr t9                       |     t9 ();
    0x00153ec4 lw a0, 4(s0)                  |     a0 = *((s0 + 1));
    0x00153ec8 lw gp, 0x18(sp)               |     gp = *(var_18h);
                                             |     if (a0 < 0) {
    0x00153ecc bltz a0, 0x153e2c             |         goto label_0;
                                             |     }
    0x00153ed0 lw t9, -0x5f64(gp)            |     t9 = *(gp);
                                             | label_6:
    0x00153ed4 jalr t9                       |     t9 ();
    0x00153ed8 nop                           |     
    0x00153edc lw gp, 0x18(sp)               |     gp = *(var_18h);
                                             |     if (v0 >= 0) {
    0x00153ee0 bltz v0, 0x153f10             |         
    0x00153ee4 lw ra, 0x2c(sp)               |         ra = *(var_2ch);
    0x00153ee8 addiu v0, zero, -1            |         v0 = -1;
    0x00153eec sw v0, 4(s0)                  |         *((s0 + 1)) = v0;
    0x00153ef0 lw s2, 0x28(sp)               |         s2 = *(var_28h);
    0x00153ef4 lw s1, 0x24(sp)               |         s1 = *(var_24h);
    0x00153ef8 lw s0, 0x20(sp)               |         s0 = *(var_20h);
    0x00153efc move v0, zero                 |         v0 = 0;
    0x00153f00 addiu sp, sp, 0x30            |         
    0x00153f04 jr ra                         |         return v0;
                                             |         /* str.close */
                                             | label_7:
    0x00153f08 addiu s1, s1, -0x1030         |         s1 += -0x1030;
    0x00153f0c b 0x153e78                    |         goto label_1;
                                             |     }
    0x00153f10 lw t9, -0x5b94(gp)            |     t9 = sym.imp.__errno_location;
    0x00153f14 lw s1, (s0)                   |     s1 = *(s0);
    0x00153f18 jalr t9                       |     t9 ();
    0x00153f1c lw gp, 0x18(sp)               |     gp = *(var_18h);
    0x00153f20 lw a0, (v0)                   |     a0 = *(v0);
    0x00153f24 lw t9, -0x5bc4(gp)            |     t9 = sym.imp.strerror;
    0x00153f28 move s0, v0                   |     s0 = v0;
    0x00153f2c jalr t9                       |     t9 ();
    0x00153f30 lw gp, 0x18(sp)               |     gp = *(var_18h);
    0x00153f34 lw v1, (s0)                   |     v1 = *(s0);
    0x00153f38 move a3, s1                   |     a3 = s1;
    0x00153f3c lw a2, -0x7e54(gp)            |     a2 = *(gp);
    0x00153f40 lw t9, -0x7f7c(gp)            |     t9 = sym.debug_output;
    0x00153f44 sw v1, 0x14(sp)               |     *(var_14h) = v1;
    0x00153f48 sw v0, 0x10(sp)               |     *(var_10h) = v0;
                                             |     /* str.Failed_to_close_fd_for__s_:__s___d__n */
    0x00153f4c addiu a2, a2, -0xfb4          |     a2 += -0xfb4;
    0x00153f50 move a1, zero                 |     a1 = 0;
    0x00153f54 addiu a0, zero, 4             |     a0 = 4;
    0x00153f58 jalr t9                       |     t9 ();
    0x00153f5c lw ra, 0x2c(sp)               |     ra = *(var_2ch);
    0x00153f60 lw s2, 0x28(sp)               |     s2 = *(var_28h);
    0x00153f64 lw s1, 0x24(sp)               |     s1 = *(var_24h);
    0x00153f68 lw s0, 0x20(sp)               |     s0 = *(var_20h);
    0x00153f6c move v0, zero                 |     v0 = 0;
    0x00153f70 addiu sp, sp, 0x30            |     
    0x00153f74 jr ra                         |     return v0;
                                             | label_3:
    0x00153f78 lw t9, -0x5b94(gp)            |     t9 = sym.imp.__errno_location;
    0x00153f7c lw s1, (s0)                   |     s1 = *(s0);
    0x00153f80 jalr t9                       |     t9 ();
    0x00153f84 lw gp, 0x18(sp)               |     gp = *(var_18h);
    0x00153f88 lw a0, (v0)                   |     a0 = *(v0);
    0x00153f8c lw t9, -0x5bc4(gp)            |     t9 = sym.imp.strerror;
    0x00153f90 move s0, v0                   |     s0 = v0;
    0x00153f94 jalr t9                       |     t9 ();
    0x00153f98 lw gp, 0x18(sp)               |     gp = *(var_18h);
    0x00153f9c lw v1, (s0)                   |     v1 = *(s0);
    0x00153fa0 sw v0, 0x10(sp)               |     *(var_10h) = v0;
    0x00153fa4 lw a2, -0x7e54(gp)            |     a2 = *(gp);
    0x00153fa8 lw t9, -0x7f7c(gp)            |     t9 = sym.debug_output;
    0x00153fac sw v1, 0x14(sp)               |     *(var_14h) = v1;
    0x00153fb0 move a3, s1                   |     a3 = s1;
                                             |     /* str.Failed_open_fd_for__s_:__s___d__n */
    0x00153fb4 addiu a2, a2, -0x1000         |     a2 += -aav.0x00001000;
    0x00153fb8 move a1, zero                 |     a1 = 0;
    0x00153fbc addiu a0, zero, 4             |     a0 = 4;
    0x00153fc0 jalr t9                       |     t9 ();
    0x00153fc4 addiu v0, zero, -1            |     v0 = -1;
    0x00153fc8 b 0x153e30                    |     goto label_2;
                                             | }
    ; assembly                               | /* r2dec pseudo code output */
                                             | /* /logs/firmware/unblob_extracted/firmware_extract/4325012-58052244.squashfs_v4_le_extract/usr/bin/image2d @ 0x154298 */
                                             | #include <stdint.h>
                                             |  
    ; (fcn) fcn.00154298 ()                  | void fcn_00154298 () {
    0x00154298 lui gp, 0x10                  |     
    0x0015429c addiu gp, gp, -0x4fc8         |     
    0x001542a0 addu gp, gp, t9               |     gp += t9;
    0x001542a4 lw v0, 0x18(a0)               |     v0 = *((a0 + 6));
    0x001542a8 addiu sp, sp, -0x28           |     
    0x001542ac lw t9, -0x6430(gp)            |     t9 = sym.serial_link_set_ircut_filter;
    0x001542b0 move a2, a1                   |     a2 = a1;
    0x001542b4 sw s2, 0x20(sp)               |     *(var_20h) = s2;
    0x001542b8 sw s1, 0x1c(sp)               |     *(var_1ch) = s1;
    0x001542bc move s2, a1                   |     s2 = a1;
    0x001542c0 move s1, a0                   |     s1 = a0;
    0x001542c4 lw a1, (v0)                   |     a1 = *(v0);
    0x001542c8 lw a0, 4(v0)                  |     a0 = *((v0 + 1));
    0x001542cc sw gp, 0x10(sp)               |     *(var_10h) = gp;
    0x001542d0 sw s0, 0x18(sp)               |     *(var_18h) = s0;
    0x001542d4 sw ra, 0x24(sp)               |     *(var_24h) = ra;
    0x001542d8 jalr t9                       |     t9 ();
    0x001542dc nop                           |     
    0x001542e0 move s0, v0                   |     s0 = v0;
    0x001542e4 lw gp, 0x10(sp)               |     gp = *(var_10h);
                                             |     if (v0 >= 0) {
    0x001542e8 bltz v0, 0x15430c             |         
    0x001542ec lw ra, 0x24(sp)               |         ra = *(var_24h);
    0x001542f0 sb s2, 0xc(s1)                |         *((s1 + 12)) = s2;
    0x001542f4 move v0, s0                   |         v0 = s0;
    0x001542f8 lw s2, 0x20(sp)               |         s2 = *(var_20h);
    0x001542fc lw s1, 0x1c(sp)               |         s1 = *(var_1ch);
    0x00154300 lw s0, 0x18(sp)               |         s0 = *(var_18h);
    0x00154304 addiu sp, sp, 0x28            |         
    0x00154308 jr ra                         |         return v0;
                                             |     }
    0x0015430c lw t9, -0x5b94(gp)            |     t9 = sym.imp.__errno_location;
    0x00154310 jalr t9                       |     t9 ();
    0x00154314 nop                           |     
    0x00154318 lw gp, 0x10(sp)               |     gp = *(var_10h);
    0x0015431c lw t9, -0x5bc4(gp)            |     t9 = sym.imp.strerror;
    0x00154320 lw a0, (v0)                   |     a0 = *(v0);
    0x00154324 jalr t9                       |     t9 ();
    0x00154328 lw gp, 0x10(sp)               |     gp = *(var_10h);
    0x0015432c move a3, v0                   |     a3 = v0;
    0x00154330 move a1, zero                 |     a1 = 0;
    0x00154334 lw a2, -0x7e54(gp)            |     a2 = *(gp);
    0x00154338 lw t9, -0x7f7c(gp)            |     t9 = sym.debug_output;
                                             |     /* str.Failed_to_move_IR_cut_filter:__s_n */
    0x0015433c addiu a2, a2, -0x1420         |     a2 += -0x1420;
    0x00154340 addiu a0, zero, 2             |     a0 = 2;
    0x00154344 jalr t9                       |     t9 ();
    0x00154348 lw ra, 0x24(sp)               |     ra = *(var_24h);
    0x0015434c move v0, s0                   |     v0 = s0;
    0x00154350 lw s2, 0x20(sp)               |     s2 = *(var_20h);
    0x00154354 lw s1, 0x1c(sp)               |     s1 = *(var_1ch);
    0x00154358 lw s0, 0x18(sp)               |     s0 = *(var_18h);
    0x0015435c addiu sp, sp, 0x28            |     
    0x00154360 jr ra                         |     return v0;
                                             | }
    ; assembly                                               | /* r2dec pseudo code output */
                                                             | /* /logs/firmware/unblob_extracted/firmware_extract/4325012-58052244.squashfs_v4_le_extract/usr/bin/image2d @ 0xeeef4 */
                                                             | #include <stdint.h>
                                                             |  
    ; (fcn) sym.a5_platform_load_calibration_data ()         | void a5_platform_load_calibration_data () {
    0x000eeef4 lui gp, 0x16                                  |     
    0x000eeef8 addiu gp, gp, 0x3dc                           |     
    0x000eeefc addu gp, gp, t9                               |     gp += t9;
    0x000eef00 addiu sp, sp, -0x50                           |     
    0x000eef04 sw s0, 0x38(sp)                               |     *(var_38h) = s0;
    0x000eef08 lw s0, -0x5f08(gp)                            |     s0 = *((gp - 6082));
    0x000eef0c sw gp, 0x10(sp)                               |     *(var_10h) = gp;
    0x000eef10 sw ra, 0x4c(sp)                               |     *(var_4ch) = ra;
    0x000eef14 lw v0, (s0)                                   |     v0 = *(s0);
    0x000eef18 sw s4, 0x48(sp)                               |     *(var_48h) = s4;
    0x000eef1c sw s3, 0x44(sp)                               |     *(var_44h) = s3;
    0x000eef20 sw s2, 0x40(sp)                               |     *(var_40h) = s2;
    0x000eef24 sw s1, 0x3c(sp)                               |     *(var_3ch) = s1;
    0x000eef28 sw v0, 0x34(sp)                               |     *(var_34h) = v0;
    0x000eef2c lw t9, -0x70e0(gp)                            |     t9 = sym.is_valid_stream_id;
                                                             |     if (a0 != 0) {
    0x000eef30 beqz a0, 0xeef54                              |         
    0x000eef34 move s1, a0                                   |         s1 = a0;
    0x000eef38 move a0, a1                                   |         a0 = a1;
    0x000eef3c move s2, a1                                   |         s2 = a1;
    0x000eef40 move s3, a2                                   |         s3 = a2;
    0x000eef44 move s4, a3                                   |         s4 = a3;
    0x000eef48 bal 0xfff24                                   |         sym_is_valid_stream_id ();
    0x000eef4c lw gp, 0x10(sp)                               |         gp = *(var_10h);
                                                             |         if (v0 != 0) {
    0x000eef50 bnez v0, 0xeef84                              |             goto label_2;
                                                             |         }
                                                             |     }
    0x000eef54 addiu v0, zero, -3                            |     v0 = -3;
                                                             |     do {
                                                             | label_0:
    0x000eef58 lw a0, 0x34(sp)                               |         a0 = *(var_34h);
    0x000eef5c lw v1, (s0)                                   |         v1 = *(s0);
    0x000eef60 lw ra, 0x4c(sp)                               |         ra = *(var_4ch);
                                                             |         if (a0 != v1) {
    0x000eef64 bne a0, v1, 0xef038                           |             goto label_3;
                                                             |         }
    0x000eef68 lw s4, 0x48(sp)                               |         s4 = *(var_48h);
    0x000eef6c lw s3, 0x44(sp)                               |         s3 = *(var_44h);
    0x000eef70 lw s2, 0x40(sp)                               |         s2 = *(var_40h);
    0x000eef74 lw s1, 0x3c(sp)                               |         s1 = *(var_3ch);
    0x000eef78 lw s0, 0x38(sp)                               |         s0 = *(var_38h);
    0x000eef7c addiu sp, sp, 0x50                            |         
    0x000eef80 jr ra                                         |         return v0;
                                                             | label_2:
    0x000eef84 slti v0, s2, 0                                |         v0 = (s2 < 0) ? 1 : 0;
    0x000eef88 move v1, s2                                   |         v1 = s2;
                                                             |         if (v0 == 0) {
    0x000eef8c movn v1, zero, v0                             |             v1 = 0;
                                                             |         }
    0x000eef90 ext v0, v1, 8, 8                              |         __asm ("ext v0, v1, 8, 8");
    0x000eef94 sll v1, v0, 1                                 |         v1 = v0 << 1;
    0x000eef98 addu v0, v1, v0                               |         v0 = v1 + v0;
    0x000eef9c lw a0, 0x3c(s1)                               |         a0 = *((s1 + 15));
    0x000eefa0 lw v1, 0x60(sp)                               |         v1 = *(arg_60h);
    0x000eefa4 sll v0, v0, 2                                 |         v0 <<= 2;
    0x000eefa8 lw t9, 0x14(s1)                               |         t9 = *((s1 + 5));
    0x000eefac sw v1, 0x1c(sp)                               |         *(var_1ch_2) = v1;
    0x000eefb0 addiu v1, zero, 1                             |         v1 = 1;
    0x000eefb4 sw s2, 0x20(sp)                               |         *(var_20h_2) = s2;
    0x000eefb8 sw s4, 0x24(sp)                               |         *(var_24h_2) = s4;
    0x000eefbc sw s3, 0x28(sp)                               |         *(var_28h) = s3;
    0x000eefc0 sw v1, 0x2c(sp)                               |         *(var_2ch) = v1;
    0x000eefc4 sw zero, 0x30(sp)                             |         *(var_30h) = 0;
    0x000eefc8 lwx a0, v0(a0)                                |         __asm ("lwx a0, v0(a0)");
                                                             |         if (t9 == 0) {
    0x000eefcc beqz t9, 0xef01c                              |             goto label_4;
                                                             |         }
    0x000eefd0 lui a2, 0x8018                                |         a2 = 0x80180000;
    0x000eefd4 move a1, a0                                   |         a1 = a0;
    0x000eefd8 addiu a3, sp, 0x1c                            |         a3 = sp + 0x1c;
    0x000eefdc addiu a2, a2, 0x2a0f                          |         a2 += 0x2a0f;
    0x000eefe0 move a0, s1                                   |         a0 = s1;
    0x000eefe4 jalr t9                                       |         t9 ();
    0x000eefe8 lw gp, 0x10(sp)                               |         gp = *(var_10h);
                                                             | label_1:
    0x000eefec lw a2, -0x7da8(gp)                            |         a2 = *(gp);
                                                             |         if (v0 != 0) {
    0x000eeff0 bnez v0, 0xeeffc                              |             goto label_5;
                                                             |         }
    0x000eeff4 addiu v0, zero, -0xff                         |         v0 = -0xff;
    0x000eeff8 b 0xeef58                                     |         
                                                             |     } while (1);
                                                             | label_5:
    0x000eeffc lw t9, -0x7f7c(gp)                            |     t9 = sym.debug_output;
                                                             |     /* str.Failed_to_load_table_n */
    0x000ef000 addiu a2, a2, 0x1af8                          |     a2 += 0x1af8;
    0x000ef004 move a1, zero                                 |     a1 = 0;
    0x000ef008 addiu a0, zero, 2                             |     a0 = 2;
    0x000ef00c bal 0xf7988                                   |     sym_debug_output ();
    0x000ef010 lw gp, 0x10(sp)                               |     gp = *(var_10h);
    0x000ef014 addiu v0, zero, -4                            |     v0 = -4;
    0x000ef018 b 0xeef58                                     |     goto label_0;
                                                             | label_4:
    0x000ef01c lw t9, -0x5e00(gp)                            |     t9 = sym.imp.ioctl;
    0x000ef020 lui a1, 0x8018                                |     a1 = 0x80180000;
    0x000ef024 addiu a2, sp, 0x1c                            |     a2 = sp + 0x1c;
    0x000ef028 addiu a1, a1, 0x2a0f                          |     a1 += 0x2a0f;
    0x000ef02c jalr t9                                       |     t9 ();
    0x000ef030 lw gp, 0x10(sp)                               |     gp = *(var_10h);
    0x000ef034 b 0xeefec                                     |     goto label_1;
                                                             | label_3:
    0x000ef038 lw t9, -0x5fc0(gp)                            |     t9 = sym.imp.__stack_chk_fail;
    0x000ef03c jalr t9                                       |     t9 ();
    0x000ef040 nop                                           |     
                                                             | }
    ; assembly                               | /* r2dec pseudo code output */
                                             | /* /logs/firmware/unblob_extracted/firmware_extract/4325012-58052244.squashfs_v4_le_extract/usr/bin/image2d @ 0xfa934 */
                                             | #include <stdint.h>
                                             |  
    ; (fcn) sym.algo_step_destroy ()         | void algo_step_destroy () {
    0x000fa934 lui gp, 0x15                  |     
    0x000fa938 addiu gp, gp, 0x499c          |     
    0x000fa93c addu gp, gp, t9               |     gp += t9;
    0x000fa940 addiu sp, sp, -0x28           |     
    0x000fa944 lw t9, -0x5cac(gp)            |     t9 = sym.imp.g_list_foreach;
    0x000fa948 sw s1, 0x1c(sp)               |     *(var_1ch) = s1;
    0x000fa94c lw s1, -0x6f88(gp)            |     s1 = *(gp);
    0x000fa950 sw s0, 0x18(sp)               |     *(var_18h) = s0;
    0x000fa954 move s0, a0                   |     s0 = a0;
    0x000fa958 lw a0, 0x20(a0)               |     a0 = *((a0 + 8));
    0x000fa95c sw ra, 0x24(sp)               |     *(var_24h) = ra;
    0x000fa960 sw gp, 0x10(sp)               |     *(var_10h) = gp;
    0x000fa964 move a2, zero                 |     a2 = 0;
    0x000fa968 sw s2, 0x20(sp)               |     *(var_20h) = s2;
    0x000fa96c move s2, a1                   |     s2 = a1;
    0x000fa970 addiu a1, s1, -0x5820         |     a1 = s1 + -0x5820;
    0x000fa974 jalr t9                       |     t9 ();
    0x000fa978 lw gp, 0x10(sp)               |     gp = *(var_10h);
    0x000fa97c lw t9, -0x5cb4(gp)            |     t9 = sym.imp.g_list_free;
    0x000fa980 lw a0, 0x20(s0)               |     a0 = *((s0 + 8));
    0x000fa984 jalr t9                       |     t9 ();
    0x000fa988 lw gp, 0x10(sp)               |     gp = *(var_10h);
    0x000fa98c lw a0, 0x24(s0)               |     a0 = *((s0 + 9));
    0x000fa990 move a2, zero                 |     a2 = 0;
    0x000fa994 lw t9, -0x5cac(gp)            |     t9 = sym.imp.g_list_foreach;
    0x000fa998 addiu a1, s1, -0x5820         |     a1 = s1 + -0x5820;
    0x000fa99c sw zero, 0x20(s0)             |     *((s0 + 8)) = 0;
    0x000fa9a0 jalr t9                       |     t9 ();
    0x000fa9a4 lw gp, 0x10(sp)               |     gp = *(var_10h);
    0x000fa9a8 lw t9, -0x5cb4(gp)            |     t9 = sym.imp.g_list_free;
    0x000fa9ac lw a0, 0x24(s0)               |     a0 = *((s0 + 9));
    0x000fa9b0 jalr t9                       |     t9 ();
    0x000fa9b4 lw gp, 0x10(sp)               |     gp = *(var_10h);
    0x000fa9b8 lw a0, 0x28(s0)               |     a0 = *((s0 + 10));
    0x000fa9bc move a2, s2                   |     a2 = s2;
    0x000fa9c0 lw t9, -0x5cac(gp)            |     t9 = sym.imp.g_list_foreach;
    0x000fa9c4 lw a1, -0x7b40(gp)            |     a1 = sym.control_timeout_destroy;
    0x000fa9c8 sw zero, 0x24(s0)             |     *((s0 + 9)) = 0;
    0x000fa9cc jalr t9                       |     t9 ();
    0x000fa9d0 lw gp, 0x10(sp)               |     gp = *(var_10h);
    0x000fa9d4 lw t9, -0x5cb4(gp)            |     t9 = sym.imp.g_list_free;
    0x000fa9d8 lw a0, 0x28(s0)               |     a0 = *((s0 + 10));
    0x000fa9dc jalr t9                       |     t9 ();
    0x000fa9e0 lw t9, 0x14(s0)               |     t9 = *((s0 + 5));
    0x000fa9e4 lw gp, 0x10(sp)               |     gp = *(var_10h);
    0x000fa9e8 sw zero, 0x28(s0)             |     *((s0 + 10)) = 0;
                                             |     if (t9 != 0) {
    0x000fa9ec beqz t9, 0xfaa00              |         
    0x000fa9f0 move a1, s2                   |         a1 = s2;
    0x000fa9f4 move a0, s0                   |         a0 = s0;
    0x000fa9f8 jalr t9                       |         t9 ();
    0x000fa9fc lw gp, 0x10(sp)               |         gp = *(var_10h);
                                             |     }
    0x000faa00 lui v0, 0xdead                |     v0 = 0xdead0000;
    0x000faa04 lw a0, 0x18(s0)               |     a0 = *((s0 + 6));
    0x000faa08 ori v0, v0, 0xbeef            |     v0 |= 0xbeef;
    0x000faa0c sw v0, 0x10(s0)               |     *((s0 + 4)) = v0;
                                             |     if (a0 == 0) {
    0x000faa10 beqz a0, 0xfaa28              |         goto label_0;
                                             |     }
    0x000faa14 lw v0, (a0)                   |     v0 = *(a0);
    0x000faa18 addiu v0, v0, -1              |     v0 += -1;
    0x000faa1c sw v0, (a0)                   |     *(a0) = v0;
    0x000faa20 beqz v0, 0xfaa48              |     
                                             |     while (1) {
    0x000faa24 sw zero, 0x18(s0)             |         *((s0 + 6)) = 0;
                                             | label_0:
    0x000faa28 lw ra, 0x24(sp)               |         ra = *(var_24h);
    0x000faa2c lw s2, 0x20(sp)               |         s2 = *(var_20h);
    0x000faa30 lw s1, 0x1c(sp)               |         s1 = *(var_1ch);
    0x000faa34 move a0, s0                   |         a0 = s0;
    0x000faa38 lw t9, -0x5b98(gp)            |         t9 = *((gp - 5862));
    0x000faa3c lw s0, 0x18(sp)               |         s0 = *(var_18h);
    0x000faa40 addiu sp, sp, 0x28            |         
    0x000faa44 jr t9                         |         t9 ();
    0x000faa48 lw t9, -0x5b98(gp)            |         t9 = *((gp - 5862));
    0x000faa4c jalr t9                       |         t9 ();
    0x000faa50 nop                           |         
    0x000faa54 lw gp, 0x10(sp)               |         gp = *(var_10h);
    0x000faa58 b 0xfaa24                     |         
                                             |     }
                                             | }
    ; assembly                               | /* r2dec pseudo code output */
                                             | /* /logs/firmware/unblob_extracted/firmware_extract/4325012-58052244.squashfs_v4_le_extract/usr/bin/image2d @ 0x1066b0 */
                                             | #include <stdint.h>
                                             |  
    ; (fcn) sym.data_pool_destroy ()         | void data_pool_destroy () {
    0x001066b0 lui gp, 0x15                  |     
    0x001066b4 addiu gp, gp, -0x73e0         |     
    0x001066b8 addu gp, gp, t9               |     gp += t9;
                                             |     if (a0 == 0) {
    0x001066bc beqz a0, 0x106798             |         goto label_0;
                                             |     }
    0x001066c0 nop                           |     
    0x001066c4 addiu sp, sp, -0x28           |     
    0x001066c8 lw v1, (a0)                   |     v1 = *(a0);
    0x001066cc sw gp, 0x10(sp)               |     *(var_10h) = gp;
    0x001066d0 sw s0, 0x1c(sp)               |     *(var_1ch) = s0;
    0x001066d4 sw ra, 0x24(sp)               |     *(var_24h) = ra;
    0x001066d8 sw s1, 0x20(sp)               |     *(var_20h) = s1;
    0x001066dc move s0, a0                   |     s0 = a0;
                                             |     if (v1 == 0) {
    0x001066e0 beqz v1, 0x106738             |         goto label_1;
                                             |     }
    0x001066e4 lw v0, 0x14(a0)               |     v0 = *((a0 + 5));
                                             |     if (v0 == 0) {
    0x001066e8 beql v0, zero, 0x10673c       |         goto label_2;
                                             |     }
    0x001066ec lw a2, 4(s0)                  |     a2 = *((s0 + 1));
    0x001066f0 lw a1, 0xc(a0)                |     a1 = *((a0 + 3));
                                             |     if (a1 == 0) {
    0x001066f4 beql a1, zero, 0x10673c       |         goto label_2;
                                             |     }
    0x001066f8 lw a2, 4(s0)                  |     a2 = *((s0 + 1));
    0x001066fc move s1, zero                 |     s1 = 0;
    0x00106700 sll v0, s1, 3                 |     v0 = s1 << 3;
                                             |     do {
    0x00106704 addiu s1, s1, 1               |         s1++;
    0x00106708 lwx v0, v0(v1)                |         __asm ("lwx v0, v0(v1)");
    0x0010670c move a0, v0                   |         a0 = v0;
                                             |         if (v0 != 0) {
    0x00106710 beqz v0, 0x10672c             |             
    0x00106714 lw t9, 0x14(s0)               |             t9 = *((s0 + 5));
    0x00106718 jalr t9                       |             t9 ();
    0x0010671c nop                           |             
    0x00106720 lw gp, 0x10(sp)               |             gp = *(var_10h);
    0x00106724 lw a1, 0xc(s0)                |             a1 = *((s0 + 3));
    0x00106728 lw v1, (s0)                   |             v1 = *(s0);
                                             |         }
    0x0010672c sltu v0, s1, a1               |         v0 = (s1 < a1) ? 1 : 0;
    0x00106730 sll v0, s1, 3                 |         v0 = s1 << 3;
    0x00106734 bnel v0, zero, 0x106704       |         
                                             |     } while (v0 == 0);
                                             | label_1:
    0x00106738 lw a2, 4(s0)                  |     a2 = *((s0 + 1));
                                             | label_2:
    0x0010673c lw t9, -0x5ce0(gp)            |     t9 = sym.imp.memset;
    0x00106740 move a0, v1                   |     a0 = v1;
    0x00106744 sll a2, a2, 3                 |     a2 <<= 3;
    0x00106748 move a1, zero                 |     a1 = 0;
    0x0010674c jalr t9                       |     t9 ();
    0x00106750 lw gp, 0x10(sp)               |     gp = *(var_10h);
    0x00106754 lw t9, -0x5b98(gp)            |     t9 = *((gp - 5862));
    0x00106758 lw a0, (s0)                   |     a0 = *(s0);
    0x0010675c jalr t9                       |     t9 ();
    0x00106760 lw gp, 0x10(sp)               |     gp = *(var_10h);
    0x00106764 move a0, s0                   |     a0 = s0;
    0x00106768 addiu a2, zero, 0x24          |     a2 = 0x24;
    0x0010676c lw t9, -0x5ce0(gp)            |     t9 = sym.imp.memset;
    0x00106770 move a1, zero                 |     a1 = 0;
    0x00106774 jalr t9                       |     t9 ();
    0x00106778 lw gp, 0x10(sp)               |     gp = *(var_10h);
    0x0010677c lw ra, 0x24(sp)               |     ra = *(var_24h);
    0x00106780 lw s1, 0x20(sp)               |     s1 = *(var_20h);
    0x00106784 move a0, s0                   |     a0 = s0;
    0x00106788 lw t9, -0x5b98(gp)            |     t9 = *((gp - 5862));
    0x0010678c lw s0, 0x1c(sp)               |     s0 = *(var_1ch);
    0x00106790 addiu sp, sp, 0x28            |     
    0x00106794 jr t9                         |     t9 ();
                                             | label_0:
    0x00106798 jr ra                         |     return v0;
    0x0010679c nop                           |     
                                             | }
    ; assembly                                       | /* r2dec pseudo code output */
                                                     | /* /logs/firmware/unblob_extracted/firmware_extract/4325012-58052244.squashfs_v4_le_extract/usr/bin/image2d @ 0xefe80 */
                                                     | #include <stdint.h>
                                                     |  
    ; (fcn) sym.platform_set_dual_exposure ()        | void platform_set_dual_exposure () {
    0x000efe80 lui gp, 0x16                          |     
    0x000efe84 addiu gp, gp, -0xbb0                  |     
    0x000efe88 addu gp, gp, t9                       |     gp += t9;
    0x000efe8c addiu sp, sp, -0x60                   |     
    0x000efe90 lw t9, -0x6ff4(gp)                    |     t9 = sym.a5_platform_sensor_config_get;
    0x000efe94 sw s3, 0x48(sp)                       |     *(var_48h) = s3;
    0x000efe98 lw s3, -0x5f08(gp)                    |     s3 = *((gp - 6082));
    0x000efe9c sw gp, 0x10(sp)                       |     *(var_10h) = gp;
    0x000efea0 sw s7, 0x58(sp)                       |     *(var_58h) = s7;
    0x000efea4 lw v0, (s3)                           |     v0 = *(s3);
    0x000efea8 sw s6, 0x54(sp)                       |     *(var_54h) = s6;
    0x000efeac sw s4, 0x4c(sp)                       |     *(var_4ch) = s4;
    0x000efeb0 sw s1, 0x40(sp)                       |     *(var_40h) = s1;
    0x000efeb4 sw s0, 0x3c(sp)                       |     *(var_3ch) = s0;
    0x000efeb8 move s6, a1                           |     s6 = a1;
    0x000efebc sw ra, 0x5c(sp)                       |     *(var_5ch) = ra;
    0x000efec0 sw s5, 0x50(sp)                       |     *(var_50h) = s5;
    0x000efec4 sw s2, 0x44(sp)                       |     *(var_44h) = s2;
    0x000efec8 move a1, a2                           |     a1 = a2;
    0x000efecc sw v0, 0x34(sp)                       |     *(var_34h) = v0;
    0x000efed0 move s0, a2                           |     s0 = a2;
    0x000efed4 move s1, a0                           |     s1 = a0;
    0x000efed8 bal 0xef410                           |     sym_a5_platform_sensor_config_get ();
    0x000efedc move s7, v0                           |     s7 = v0;
    0x000efee0 lw v0, (s6)                           |     v0 = *(s6);
    0x000efee4 addiu v1, zero, 1                     |     v1 = 1;
    0x000efee8 lw gp, 0x10(sp)                       |     gp = *(var_10h);
    0x000efeec lw s4, 8(s7)                          |     s4 = *((s7 + 2));
                                                     |     if (v0 == v1) {
    0x000efef0 beq v0, v1, 0xf00a8                   |         goto label_6;
                                                     |     }
    0x000efef4 slti a0, s0, 0                        |     a0 = (s0 < 0) ? 1 : 0;
                                                     |     if (v0 == 0) {
    0x000efef8 beqz v0, 0xf005c                      |         goto label_7;
                                                     |     }
    0x000efefc addiu a0, zero, 2                     |     a0 = 2;
    0x000eff00 addiu v0, zero, -4                    |     v0 = -4;
                                                     |     if (v0 != a0) {
    0x000eff04 bne v0, a0, 0xf0024                   |         goto label_2;
                                                     |     }
    0x000eff08 sw v1, 8(s7)                          |     *((s7 + 2)) = v1;
    0x000eff0c addiu s5, zero, 1                     |     s5 = 1;
                                                     | label_1:
    0x000eff10 slti a0, s0, 0                        |     a0 = (s0 < 0) ? 1 : 0;
    0x000eff14 move v0, s0                           |     v0 = s0;
                                                     |     if (a0 == 0) {
    0x000eff18 movn v0, zero, a0                     |         v0 = 0;
                                                     |     }
    0x000eff1c ext a0, v0, 8, 8                      |     __asm ("ext a0, v0, 8, 8");
    0x000eff20 sll s2, a0, 1                         |     s2 = a0 << 1;
    0x000eff24 addu a0, s2, a0                       |     a0 = s2 + a0;
    0x000eff28 lw a1, 0x3c(s1)                       |     a1 = *((s1 + 15));
    0x000eff2c sll s2, a0, 2                         |     s2 = a0 << 2;
    0x000eff30 lw t9, 0x14(s1)                       |     t9 = *((s1 + 5));
    0x000eff34 lwx a0, s2(a1)                        |     __asm ("lwx a0, s2(a1)");
                                                     |     if (t9 == 0) {
    0x000eff38 beqz t9, 0xf008c                      |         goto label_8;
                                                     |     }
                                                     |     do {
    0x000eff3c lui a2, 0x4090                        |         a2 = imp.g_str_equal;
    0x000eff40 move a1, a0                           |         a1 = a0;
    0x000eff44 move a3, s7                           |         a3 = s7;
    0x000eff48 addiu a2, a2, 0x2a30                  |         a2 += 0x2a30;
    0x000eff4c move a0, s1                           |         a0 = s1;
    0x000eff50 jalr t9                               |         t9 ();
    0x000eff54 lw gp, 0x10(sp)                       |         gp = *(var_10h);
                                                     | label_0:
    0x000eff58 move a1, zero                         |         a1 = 0;
                                                     |         if (v0 >= 0) {
    0x000eff5c bltz v0, 0xf0004                      |             
    0x000eff60 lw v0, 0x14(s6)                       |             v0 = *((s6 + 5));
    0x000eff64 lw v1, 0x10(s6)                       |             v1 = *((s6 + 4));
    0x000eff68 sll v0, v0, 0x14                      |             v0 <<= 0x14;
    0x000eff6c sra v0, v0, 0x14                      |             v0 >>= 0x14;
    0x000eff70 lw a0, 0x3c(s1)                       |             a0 = *((s1 + 15));
    0x000eff74 lw a3, 8(s6)                          |             a3 = *((s6 + 2));
    0x000eff78 lw a2, 0xc(s6)                        |             a2 = *((s6 + 3));
    0x000eff7c ins a1, v0, 0, 0xc                    |             __asm ("ins a1, v0, 0, 0xc");
    0x000eff80 lw t9, 0x14(s1)                       |             t9 = *((s1 + 5));
    0x000eff84 ext v0, v1, 0, 0x18                   |             __asm ("ext v0, v1, 0, 0x18");
    0x000eff88 sw a1, 0x2c(sp)                       |             *(var_2ch) = a1;
    0x000eff8c sw zero, 0x1c(sp)                     |             *(var_1ch_2) = 0;
    0x000eff90 sw zero, 0x30(sp)                     |             *(var_30h) = 0;
    0x000eff94 sw s5, 0x18(sp)                       |             *(var_18h_2) = s5;
    0x000eff98 sw a3, 0x20(sp)                       |             *(var_20h_2) = a3;
    0x000eff9c sw a2, 0x24(sp)                       |             *(var_24h_2) = a2;
    0x000effa0 sw v0, 0x28(sp)                       |             *(var_28h) = v0;
    0x000effa4 lwx a0, s2(a0)                        |             __asm ("lwx a0, s2(a0)");
                                                     |             if (t9 == 0) {
    0x000effa8 beqz t9, 0xf0260                      |                 goto label_9;
                                                     |             }
    0x000effac lui a2, 0x801c                        |             a2 = 0x801c0000;
    0x000effb0 move a1, a0                           |             a1 = a0;
    0x000effb4 addiu a3, sp, 0x18                    |             a3 = sp + 0x18;
    0x000effb8 addiu a2, a2, 0x2a00                  |             a2 += aav.0x00002a00;
    0x000effbc move a0, s1                           |             a0 = s1;
    0x000effc0 jalr t9                               |             t9 ();
    0x000effc4 lw gp, 0x10(sp)                       |             gp = *(var_10h);
                                                     | label_3:
    0x000effc8 lw s6, -0x7048(gp)                    |             s6 = sym.a5_platform_stream_config_get;
                                                     |             if (v0 < 0) {
    0x000effcc bltz v0, 0xf027c                      |                 goto label_10;
                                                     |             }
    0x000effd0 move a1, s0                           |             a1 = s0;
    0x000effd4 move t9, s6                           |             t9 = s6;
    0x000effd8 move a0, s1                           |             a0 = s1;
    0x000effdc bal 0xeb8a4                           |             sym_a5_platform_stream_config_get ();
    0x000effe0 addiu v1, zero, 2                     |             v1 = 2;
    0x000effe4 lw gp, 0x10(sp)                       |             gp = *(var_10h);
    0x000effe8 move s5, v0                           |             s5 = v0;
                                                     |             if (s4 == v1) {
    0x000effec beq s4, v1, 0xf00b8                   |                 goto label_11;
                                                     |             }
    0x000efff0 lw v0, 8(s7)                          |             v0 = *((s7 + 2));
    0x000efff4 addiu a1, s0, 1                       |             a1 = s0 + 1;
                                                     |             if (v0 == v1) {
    0x000efff8 beq v0, v1, 0xf00bc                   |                 goto label_12;
                                                     |             }
    0x000efffc addiu v0, zero, -0xff                 |             v0 = -0xff;
    0x000f0000 b 0xf0024                             |             
                                                     |         } else {
    0x000f0004 lw a2, -0x7da8(gp)                    |             a2 = *(gp);
    0x000f0008 lw t9, -0x7f7c(gp)                    |             t9 = sym.debug_output;
                                                     |             /* str.failed_to_configure_sensor_capture */
    0x000f000c addiu a2, a2, 0x1b10                  |             a2 += aav.0x00001b10;
                                                     | label_4:
    0x000f0010 move a1, zero                         |             a1 = 0;
    0x000f0014 addiu a0, zero, 4                     |             a0 = 4;
    0x000f0018 bal 0xf7988                           |             sym_debug_output ();
    0x000f001c lw gp, 0x10(sp)                       |             gp = *(var_10h);
    0x000f0020 addiu v0, zero, -4                    |             v0 = -4;
                                                     |         }
                                                     | label_2:
    0x000f0024 lw a0, 0x34(sp)                       |         a0 = *(var_34h);
    0x000f0028 lw v1, (s3)                           |         v1 = *(s3);
    0x000f002c lw ra, 0x5c(sp)                       |         ra = *(var_5ch);
                                                     |         if (a0 != v1) {
    0x000f0030 bne a0, v1, 0xf02a8                   |             goto label_13;
                                                     |         }
    0x000f0034 lw s7, 0x58(sp)                       |         s7 = *(var_58h);
    0x000f0038 lw s6, 0x54(sp)                       |         s6 = *(var_54h);
    0x000f003c lw s5, 0x50(sp)                       |         s5 = *(var_50h);
    0x000f0040 lw s4, 0x4c(sp)                       |         s4 = *(var_4ch);
    0x000f0044 lw s3, 0x48(sp)                       |         s3 = *(var_48h);
    0x000f0048 lw s2, 0x44(sp)                       |         s2 = *(var_44h);
    0x000f004c lw s1, 0x40(sp)                       |         s1 = *(var_40h);
    0x000f0050 lw s0, 0x3c(sp)                       |         s0 = *(var_3ch);
    0x000f0054 addiu sp, sp, 0x60                    |         
    0x000f0058 jr ra                                 |         return v0;
                                                     | label_7:
    0x000f005c move v0, s0                           |         v0 = s0;
                                                     |         if (a0 == 0) {
    0x000f0060 movn v0, zero, a0                     |             v0 = 0;
                                                     |         }
    0x000f0064 ext a0, v0, 8, 8                      |         __asm ("ext a0, v0, 8, 8");
    0x000f0068 sll s2, a0, 1                         |         s2 = a0 << 1;
    0x000f006c addu a0, s2, a0                       |         a0 = s2 + a0;
    0x000f0070 lw a1, 0x3c(s1)                       |         a1 = *((s1 + 15));
    0x000f0074 sll s2, a0, 2                         |         s2 = a0 << 2;
    0x000f0078 lw t9, 0x14(s1)                       |         t9 = *((s1 + 5));
    0x000f007c sw zero, 8(s7)                        |         *((s7 + 2)) = 0;
    0x000f0080 move s5, zero                         |         s5 = 0;
    0x000f0084 lwx a0, s2(a1)                        |         __asm ("lwx a0, s2(a1)");
    0x000f0088 bnez t9, 0xeff3c                      |         
                                                     |     } while (t9 != 0);
                                                     | label_8:
    0x000f008c lw t9, -0x5e00(gp)                    |     t9 = sym.imp.ioctl;
    0x000f0090 lui a1, 0x4090                        |     a1 = imp.g_str_equal;
    0x000f0094 move a2, s7                           |     a2 = s7;
    0x000f0098 addiu a1, a1, 0x2a30                  |     a1 += 0x2a30;
    0x000f009c jalr t9                               |     t9 ();
    0x000f00a0 lw gp, 0x10(sp)                       |     gp = *(var_10h);
    0x000f00a4 b 0xeff58                             |     goto label_0;
                                                     | label_6:
    0x000f00a8 addiu v0, zero, 2                     |     v0 = 2;
    0x000f00ac sw v0, 8(s7)                          |     *((s7 + 2)) = v0;
    0x000f00b0 addiu s5, zero, 1                     |     s5 = 1;
    0x000f00b4 b 0xeff10                             |     goto label_1;
                                                     | label_11:
    0x000f00b8 addiu a1, s0, 1                       |     a1 = s0 + 1;
                                                     | label_12:
    0x000f00bc move t9, s6                           |     t9 = s6;
    0x000f00c0 move a0, s1                           |     a0 = s1;
    0x000f00c4 bal 0xeb8a4                           |     sym_a5_platform_stream_config_get ();
    0x000f00c8 lw gp, 0x10(sp)                       |     gp = *(var_10h);
    0x000f00cc move s0, v0                           |     s0 = v0;
    0x000f00d0 addiu s4, v0, 4                       |     s4 = v0 + 4;
    0x000f00d4 lw t9, -0x7044(gp)                    |     t9 = *(gp);
    0x000f00d8 move a1, s4                           |     a1 = s4;
    0x000f00dc move a0, s1                           |     a0 = s1;
    0x000f00e0 bal 0xeb500                           |     sym_artpec5_platform_stream_config_get ();
    0x000f00e4 lw v1, (s0)                           |     v1 = *(s0);
    0x000f00e8 lw gp, 0x10(sp)                       |     gp = *(var_10h);
    0x000f00ec slti v0, v1, 0                        |     v0 = (v1 < 0) ? 1 : 0;
                                                     |     if (v0 == 0) {
    0x000f00f0 movn v1, zero, v0                     |         v1 = 0;
                                                     |     }
    0x000f00f4 ext v0, v1, 8, 8                      |     __asm ("ext v0, v1, 8, 8");
    0x000f00f8 addiu v1, zero, 0x12c                 |     v1 = aav.0x0000012c;
    0x000f00fc mul a0, v0, v1                        |     __asm ("mul a0, v0, v1");
    0x000f0100 addiu v1, zero, 1                     |     v1 = 1;
    0x000f0104 addu v0, a0, s1                       |     v0 = a0 + s1;
    0x000f0108 addiu a0, zero, -1                    |     a0 = -1;
    0x000f010c lw a1, 0xc0(v0)                       |     a1 = *((v0 + 48));
    0x000f0110 lw a2, 0xbc(v0)                       |     a2 = *((v0 + 47));
    0x000f0114 addiu v0, s5, 8                       |     v0 = s5 + 8;
    0x000f0118 sw v1, 0x210(s0)                      |     *(s0) = v1;
    0x000f011c sw v1, 0x214(s0)                      |     *(s0) = v1;
    0x000f0120 sw v1, 0x204(s0)                      |     *(s0) = v1;
    0x000f0124 sw v1, 0x208(s0)                      |     *(s0) = v1;
    0x000f0128 sw v1, 0x20c(s0)                      |     *(s0) = v1;
    0x000f012c sw v1, 0x218(s0)                      |     *(s0) = v1;
    0x000f0130 sw v1, 0x21c(s0)                      |     *(s0) = v1;
    0x000f0134 sw v1, 0x220(s0)                      |     *(s0) = v1;
    0x000f0138 sw v1, 0x224(s0)                      |     *(s0) = v1;
    0x000f013c sw v1, 0x228(s0)                      |     *(s0) = v1;
    0x000f0140 sw v1, 0x230(s0)                      |     *(s0) = v1;
    0x000f0144 sw a1, 0x1e4(s0)                      |     *(s0) = a1;
    0x000f0148 sw a1, 0x1f0(s0)                      |     *(s0) = a1;
    0x000f014c sw a1, 0x1fc(s0)                      |     *(s0) = a1;
    0x000f0150 sw a0, 0x10c(s0)                      |     *(s0) = a0;
    0x000f0154 sw a0, 0x110(s0)                      |     *(s0) = a0;
    0x000f0158 sw a0, 0x114(s0)                      |     *(s0) = a0;
    0x000f015c sw a0, 0x19c(s0)                      |     *(s0) = a0;
    0x000f0160 sw a2, 0x1e0(s0)                      |     *(s0) = a2;
    0x000f0164 sw a2, 0x1ec(s0)                      |     *(s0) = a2;
    0x000f0168 sw a2, 0x1f8(s0)                      |     *(s0) = a2;
    0x000f016c sw zero, 0xa8(s0)                     |     *((s0 + 42)) = 0;
    0x000f0170 sw zero, 0x104(s0)                    |     *(s0) = 0;
    0x000f0174 sw zero, 0x108(s0)                    |     *(s0) = 0;
    0x000f0178 sw zero, 0x4c(s0)                     |     *((s0 + 19)) = 0;
    0x000f017c sw zero, 0x2c(s0)                     |     *((s0 + 11)) = 0;
    0x000f0180 sw zero, 0x30(s0)                     |     *((s0 + 12)) = 0;
    0x000f0184 sw zero, 0x34(s0)                     |     *((s0 + 13)) = 0;
    0x000f0188 sw zero, 0x1a8(s0)                    |     *(s0) = 0;
    0x000f018c sw v1, 0x24(s0)                       |     *((s0 + 9)) = v1;
    0x000f0190 sw zero, 0x1ac(s0)                    |     *(s0) = 0;
    0x000f0194 sw zero, 0x1a0(s0)                    |     *(s0) = 0;
    0x000f0198 sw zero, 0x1d8(s0)                    |     *(s0) = 0;
    0x000f019c sw zero, 0x1dc(s0)                    |     *(s0) = 0;
    0x000f01a0 lwl t1, 3(v0)                         |     __asm ("lwl t1, 3(v0)");
    0x000f01a4 lwl t0, 7(v0)                         |     __asm ("lwl t0, 7(v0)");
    0x000f01a8 lwl a1, 0xb(v0)                       |     __asm ("lwl a1, 0xb(v0)");
    0x000f01ac lwl a0, 0xf(v0)                       |     __asm ("lwl a0, 0xf(v0)");
    0x000f01b0 lwr t1, (v0)                          |     __asm ("lwr t1, (v0)");
    0x000f01b4 addiu v1, s0, 8                       |     v1 = s0 + 8;
    0x000f01b8 lwr a0, 0xc(v0)                       |     __asm ("lwr a0, 0xc(v0)");
    0x000f01bc lwr a1, 8(v0)                         |     __asm ("lwr a1, 8(v0)");
    0x000f01c0 lwr t0, 4(v0)                         |     __asm ("lwr t0, 4(v0)");
    0x000f01c4 swl t1, 3(v1)                         |     __asm ("swl t1, 3(v1)");
    0x000f01c8 swr t1, (v1)                          |     __asm ("swr t1, (v1)");
    0x000f01cc swl t0, 7(v1)                         |     __asm ("swl t0, 7(v1)");
    0x000f01d0 swr t0, 4(v1)                         |     __asm ("swr t0, 4(v1)");
    0x000f01d4 swl a1, 0xb(v1)                       |     __asm ("swl a1, 0xb(v1)");
    0x000f01d8 swr a1, 8(v1)                         |     __asm ("swr a1, 8(v1)");
    0x000f01dc swl a0, 0xf(v1)                       |     __asm ("swl a0, 0xf(v1)");
    0x000f01e0 swr a0, 0xc(v1)                       |     __asm ("swr a0, 0xc(v1)");
    0x000f01e4 lw a0, 0x3c(s1)                       |     a0 = *((s1 + 15));
    0x000f01e8 lw t9, 0x14(s1)                       |     t9 = *((s1 + 5));
    0x000f01ec lwx a0, s2(a0)                        |     __asm ("lwx a0, s2(a0)");
                                                     |     if (t9 == 0) {
    0x000f01f0 beqz t9, 0xf028c                      |         goto label_14;
                                                     |     }
    0x000f01f4 lui a2, 0x81dc                        |     a2 = 0x81dc0000;
    0x000f01f8 move a1, a0                           |     a1 = a0;
    0x000f01fc move a3, s4                           |     a3 = s4;
    0x000f0200 addiu a2, a2, 0x2a0a                  |     a2 += 0x2a0a;
    0x000f0204 move a0, s1                           |     a0 = s1;
    0x000f0208 jalr t9                               |     t9 ();
    0x000f020c lw gp, 0x10(sp)                       |     gp = *(var_10h);
                                                     |     if (v0 == 0) {
                                                     | label_5:
    0x000f0210 beql v0, zero, 0xf0024                |         goto label_2;
                                                     |     }
    0x000f0214 addiu v0, zero, -0xff                 |     v0 = -0xff;
    0x000f0218 lw t9, -0x5b94(gp)                    |     t9 = sym.imp.__errno_location;
    0x000f021c jalr t9                               |     t9 ();
    0x000f0220 nop                                   |     
    0x000f0224 lw gp, 0x10(sp)                       |     gp = *(var_10h);
    0x000f0228 lw t9, -0x5bc4(gp)                    |     t9 = sym.imp.strerror;
    0x000f022c lw a0, (v0)                           |     a0 = *(v0);
    0x000f0230 jalr t9                               |     t9 ();
    0x000f0234 lw gp, 0x10(sp)                       |     gp = *(var_10h);
    0x000f0238 move a3, v0                           |     a3 = v0;
    0x000f023c move a1, zero                         |     a1 = 0;
    0x000f0240 lw a2, -0x7da8(gp)                    |     a2 = *(gp);
    0x000f0244 lw t9, -0x7f7c(gp)                    |     t9 = sym.debug_output;
                                                     |     /* str.ioctl_CAM_IOC_STREAM_CONF_failed:__s_n */
    0x000f0248 addiu a2, a2, 0x186c                  |     a2 += 0x186c;
    0x000f024c addiu a0, zero, 4                     |     a0 = 4;
    0x000f0250 bal 0xf7988                           |     sym_debug_output ();
    0x000f0254 lw gp, 0x10(sp)                       |     gp = *(var_10h);
    0x000f0258 addiu v0, zero, -4                    |     v0 = -4;
    0x000f025c b 0xf0024                             |     goto label_2;
                                                     | label_9:
    0x000f0260 lw t9, -0x5e00(gp)                    |     t9 = sym.imp.ioctl;
    0x000f0264 lui a1, 0x801c                        |     a1 = 0x801c0000;
    0x000f0268 addiu a2, sp, 0x18                    |     a2 = sp + 0x18;
    0x000f026c addiu a1, a1, 0x2a00                  |     a1 += aav.0x00002a00;
    0x000f0270 jalr t9                               |     t9 ();
    0x000f0274 lw gp, 0x10(sp)                       |     gp = *(var_10h);
    0x000f0278 b 0xeffc8                             |     goto label_3;
                                                     | label_10:
    0x000f027c lw a2, -0x7da8(gp)                    |     a2 = *(gp);
    0x000f0280 lw t9, -0x7f7c(gp)                    |     t9 = sym.debug_output;
                                                     |     /* str.failed_to_setup_dual_exposure_n */
    0x000f0284 addiu a2, a2, 0x1b88                  |     a2 += 0x1b88;
    0x000f0288 b 0xf0010                             |     goto label_4;
                                                     | label_14:
    0x000f028c lw t9, -0x5e00(gp)                    |     t9 = sym.imp.ioctl;
    0x000f0290 lui a1, 0x81dc                        |     a1 = 0x81dc0000;
    0x000f0294 move a2, s4                           |     a2 = s4;
    0x000f0298 addiu a1, a1, 0x2a0a                  |     a1 += 0x2a0a;
    0x000f029c jalr t9                               |     t9 ();
    0x000f02a0 lw gp, 0x10(sp)                       |     gp = *(var_10h);
    0x000f02a4 b 0xf0210                             |     goto label_5;
                                                     | label_13:
    0x000f02a8 lw t9, -0x5fc0(gp)                    |     t9 = sym.imp.__stack_chk_fail;
    0x000f02ac jalr t9                               |     t9 ();
    0x000f02b0 nop                                   |     
    0x000f02b4 lui gp, 0x16                          |     
    0x000f02b8 addiu gp, gp, -0xfe4                  |     
    0x000f02bc addu gp, gp, t9                       |     gp += t9;
    0x000f02c0 addiu sp, sp, -0x28                   |     
    0x000f02c4 lw v0, 0x10(a1)                       |     v0 = *((a1 + 4));
    0x000f02c8 sw s0, 0x18(sp)                       |     *(var_18h) = s0;
    0x000f02cc lw s0, -0x7da8(gp)                    |     s0 = *(gp);
    0x000f02d0 lw t9, -0x70dc(gp)                    |     t9 = sym.purb_get;
    0x000f02d4 sll v0, v0, 2                         |     v0 <<= 2;
    0x000f02d8 addiu s0, s0, 0x2158                  |     s0 += 0x2158;
    0x000f02dc sw gp, 0x10(sp)                       |     *(var_10h_2) = gp;
    0x000f02e0 sw s2, 0x20(sp)                       |     *(var_20h) = s2;
    0x000f02e4 sw s1, 0x1c(sp)                       |     *(var_1ch) = s1;
    0x000f02e8 sw ra, 0x24(sp)                       |     *(var_24h) = ra;
    0x000f02ec move s2, a1                           |     s2 = a1;
    0x000f02f0 move s1, a0                           |     s1 = a0;
    0x000f02f4 lwx s0, v0(s0)                        |     __asm ("lwx s0, v0(s0)");
    0x000f02f8 bal 0xf51f0                           |     sym_purb_get ();
    0x000f02fc lw gp, 0x10(sp)                       |     gp = *(var_10h_2);
                                                     |     if (v0 == 0) {
    0x000f0300 beqz v0, 0xf03c4                      |         goto label_15;
                                                     |     }
    0x000f0304 lw v1, (s2)                           |     v1 = *(s2);
    0x000f0308 addiu a0, v0, 0x14                    |     a0 = v0 + 0x14;
    0x000f030c addiu a1, zero, -1                    |     a1 = -1;
    0x000f0310 sw a0, 0x10(v0)                       |     *((v0 + 4)) = a0;
                                                     |     if (v1 == a1) {
    0x000f0314 beq v1, a1, 0xf03bc                   |         goto label_16;
                                                     |     }
    0x000f0318 lhu a3, 8(s2)                         |     a3 = *((s2 + 4));
    0x000f031c move a1, zero                         |     a1 = 0;
    0x000f0320 ins a1, v1, 0, 0x10                   |     __asm ("ins a1, v1, 0, 0x10");
    0x000f0324 ins a1, a3, 0x10, 0x10                |     __asm ("ins a1, a3, 0x10, 0x10");
    0x000f0328 addiu v1, v0, 0x24                    |     v1 = v0 + 0x24;
    0x000f032c addiu a2, s0, 0x18                    |     a2 = s0 + 0x18;
    0x000f0330 addiu a3, zero, 2                     |     a3 = 2;
    0x000f0334 sw v1, 0x10(v0)                       |     *((v0 + 4)) = v1;
    0x000f0338 sw a3, 0x14(v0)                       |     *((v0 + 5)) = a3;
    0x000f033c sw a2, 0x18(v0)                       |     *((v0 + 6)) = a2;
    0x000f0340 sw a1, 0x1c(v0)                       |     *((v0 + 7)) = a1;
                                                     |     do {
    0x000f0344 lw a1, 4(s2)                          |         a1 = *((s2 + 1));
    0x000f0348 addiu a2, zero, -1                    |         a2 = -1;
    0x000f034c move a2, zero                         |         a2 = 0;
                                                     |         if (a1 != a2) {
    0x000f0350 beq a1, a2, 0xf0380                   |             
    0x000f0354 lhu a3, 0xc(s2)                       |             a3 = *((s2 + 6));
    0x000f0358 ins a2, a1, 0, 0x10                   |             __asm ("ins a2, a1, 0, 0x10");
    0x000f035c ins a2, a3, 0x10, 0x10                |             __asm ("ins a2, a3, 0x10, 0x10");
    0x000f0360 addiu a1, v1, 0x10                    |             a1 = v1 + 0x10;
    0x000f0364 addiu s0, s0, 0x20                    |             s0 += 0x20;
    0x000f0368 addiu a3, zero, 2                     |             a3 = 2;
    0x000f036c sw a1, 0x10(v0)                       |             *((v0 + 4)) = a1;
    0x000f0370 sw a3, (v1)                           |             *(v1) = a3;
    0x000f0374 sw s0, 4(v1)                          |             *((v1 + 1)) = s0;
    0x000f0378 sw a2, 8(v1)                          |             *((v1 + 2)) = a2;
    0x000f037c move v1, a1                           |             v1 = a1;
                                                     |         }
    0x000f0380 subu v1, v1, a0                       |         __asm ("subu v1, v1, a0");
    0x000f0384 lw a2, -0x7e4c(gp)                    |         a2 = *((gp - 8083));
    0x000f0388 lw ra, 0x24(sp)                       |         ra = *(var_24h);
    0x000f038c lw s2, 0x20(sp)                       |         s2 = *(var_20h);
    0x000f0390 lw s0, 0x18(sp)                       |         s0 = *(var_18h);
    0x000f0394 sra v1, v1, 4                         |         v1 >>= 4;
    0x000f0398 move a0, s1                           |         a0 = s1;
    0x000f039c lw t9, -0x70d8(gp)                    |         t9 = sym.platform_purb_replace;
    0x000f03a0 lw s1, 0x1c(sp)                       |         s1 = *(var_1ch);
    0x000f03a4 sw v1, 8(v0)                          |         *((v0 + 2)) = v1;
    0x000f03a8 move a3, v0                           |         a3 = v0;
    0x000f03ac addiu a2, a2, -0x6680                 |         a2 += -0x6680;
    0x000f03b0 addiu a1, zero, -1                    |         a1 = -1;
    0x000f03b4 addiu sp, sp, 0x28                    |         
    0x000f03b8 b 0xe9934                             |         void (*0xe9934)() ();
                                                     | label_16:
    0x000f03bc move v1, a0                           |         v1 = a0;
    0x000f03c0 b 0xf0344                             |         
                                                     |     } while (1);
                                                     | label_15:
    0x000f03c4 lw a2, -0x7da8(gp)                    |     a2 = *(gp);
    0x000f03c8 lw t9, -0x7f7c(gp)                    |     t9 = sym.debug_output;
                                                     |     /* str.Couldnt_get_a_free_purb_n */
    0x000f03cc addiu a2, a2, 0x1180                  |     a2 += 0x1180;
    0x000f03d0 move a1, zero                         |     a1 = 0;
    0x000f03d4 addiu a0, zero, 4                     |     a0 = 4;
    0x000f03d8 bal 0xf7988                           |     sym_debug_output ();
    0x000f03dc lw ra, 0x24(sp)                       |     ra = *(var_24h);
    0x000f03e0 lw s2, 0x20(sp)                       |     s2 = *(var_20h);
    0x000f03e4 lw s1, 0x1c(sp)                       |     s1 = *(var_1ch);
    0x000f03e8 lw s0, 0x18(sp)                       |     s0 = *(var_18h);
    0x000f03ec addiu v0, zero, -4                    |     v0 = -4;
    0x000f03f0 addiu sp, sp, 0x28                    |     
    0x000f03f4 jr ra                                 |     return v0;
                                                     | }
    ; assembly                                                   | /* r2dec pseudo code output */
                                                                 | /* /logs/firmware/unblob_extracted/firmware_extract/4325012-58052244.squashfs_v4_le_extract/usr/bin/image2d @ 0xe8ac0 */
                                                                 | #include <stdint.h>
                                                                 |  
    ; (fcn) sym.platform_start_streaming_for_stream ()           | void platform_start_streaming_for_stream () {
    0x000e8ac0 lui gp, 0x16                                      |     
    0x000e8ac4 addiu gp, gp, 0x6810                              |     
    0x000e8ac8 addu gp, gp, t9                                   |     gp += t9;
    0x000e8acc slti v0, a1, 0                                    |     v0 = (a1 < 0) ? 1 : 0;
                                                                 |     if (v0 == 0) {
    0x000e8ad0 movn a1, zero, v0                                 |         a1 = 0;
                                                                 |     }
    0x000e8ad4 ext v0, a1, 8, 8                                  |     __asm ("ext v0, a1, 8, 8");
    0x000e8ad8 addiu a1, zero, 0x12c                             |     a1 = aav.0x0000012c;
    0x000e8adc mul v1, v0, a1                                    |     __asm ("mul v1, v0, a1");
    0x000e8ae0 addu a1, v1, a0                                   |     a1 = v1 + a0;
    0x000e8ae4 lw v1, 0x198(a1)                                  |     v1 = *(a1);
    0x000e8ae8 addiu v1, v1, -1                                  |     v1 += -1;
    0x000e8aec sw v1, 0x198(a1)                                  |     *(a1) = v1;
                                                                 |     if (v1 != 0) {
    0x000e8af0 beqz v1, 0xe8afc                                  |         
    0x000e8af4 addiu v0, zero, -0xff                             |         v0 = -0xff;
    0x000e8af8 jr ra                                             |         return v0;
                                                                 |     }
    0x000e8afc sll v1, v0, 1                                     |     v1 = v0 << 1;
    0x000e8b00 addiu sp, sp, -0x20                               |     
    0x000e8b04 lw a1, 0x3c(a0)                                   |     a1 = *((a0 + 15));
    0x000e8b08 addu v0, v1, v0                                   |     v0 = v1 + v0;
    0x000e8b0c sll v0, v0, 2                                     |     v0 <<= 2;
    0x000e8b10 lw t9, 0x14(a0)                                   |     t9 = *((a0 + 5));
    0x000e8b14 sw gp, 0x10(sp)                                   |     *(var_10h) = gp;
    0x000e8b18 sw ra, 0x1c(sp)                                   |     *(var_1ch) = ra;
    0x000e8b1c lwx v0, v0(a1)                                    |     __asm ("lwx v0, v0(a1)");
                                                                 |     if (t9 == 0) {
    0x000e8b20 beqz t9, 0xe8b94                                  |         goto label_1;
                                                                 |     }
    0x000e8b24 lui a2, 0x8004                                    |     a2 = 0x80040000;
    0x000e8b28 addiu a3, zero, 1                                 |     a3 = 1;
    0x000e8b2c addiu a2, a2, 0x2a02                              |     a2 += 0x2a02;
    0x000e8b30 move a1, v0                                       |     a1 = v0;
    0x000e8b34 jalr t9                                           |     t9 ();
    0x000e8b38 lw gp, 0x10(sp)                                   |     gp = *(var_10h);
                                                                 | label_0:
    0x000e8b3c lw t9, -0x5b94(gp)                                |     t9 = sym.imp.__errno_location;
                                                                 |     if (v0 != 0) {
    0x000e8b40 bnez v0, 0xe8b54                                  |         goto label_2;
                                                                 |     }
    0x000e8b44 addiu v0, zero, -0xff                             |     v0 = -0xff;
                                                                 |     do {
    0x000e8b48 lw ra, 0x1c(sp)                                   |         ra = *(var_1ch);
    0x000e8b4c addiu sp, sp, 0x20                                |         
    0x000e8b50 jr ra                                             |         return v0;
                                                                 | label_2:
    0x000e8b54 jalr t9                                           |         t9 ();
    0x000e8b58 nop                                               |         
    0x000e8b5c lw gp, 0x10(sp)                                   |         gp = *(var_10h);
    0x000e8b60 lw t9, -0x5bc4(gp)                                |         t9 = sym.imp.strerror;
    0x000e8b64 lw a0, (v0)                                       |         a0 = *(v0);
    0x000e8b68 jalr t9                                           |         t9 ();
    0x000e8b6c lw gp, 0x10(sp)                                   |         gp = *(var_10h);
    0x000e8b70 move a3, v0                                       |         a3 = v0;
    0x000e8b74 move a1, zero                                     |         a1 = 0;
    0x000e8b78 lw a2, -0x7da8(gp)                                |         a2 = *(gp);
    0x000e8b7c lw t9, -0x7f7c(gp)                                |         t9 = sym.debug_output;
                                                                 |         /* str.ioctl_CAM_IOC_STREAM_CONTROL_failed:__s_n */
    0x000e8b80 addiu a2, a2, 0x14c8                              |         a2 += aav.0x000014c8;
    0x000e8b84 addiu a0, zero, 4                                 |         a0 = 4;
    0x000e8b88 bal 0xf7988                                       |         sym_debug_output ();
    0x000e8b8c addiu v0, zero, -4                                |         v0 = -4;
    0x000e8b90 b 0xe8b48                                         |         
                                                                 |     } while (1);
                                                                 | label_1:
    0x000e8b94 lw t9, -0x5e00(gp)                                |     t9 = sym.imp.ioctl;
    0x000e8b98 lui a1, 0x8004                                    |     a1 = 0x80040000;
    0x000e8b9c addiu a2, zero, 1                                 |     a2 = 1;
    0x000e8ba0 addiu a1, a1, 0x2a02                              |     a1 += 0x2a02;
    0x000e8ba4 move a0, v0                                       |     a0 = v0;
    0x000e8ba8 jalr t9                                           |     t9 ();
    0x000e8bac lw gp, 0x10(sp)                                   |     gp = *(var_10h);
    0x000e8bb0 b 0xe8b3c                                         |     goto label_0;
                                                                 | }

[*] Function popen used 1 times image2d