[*] Binary protection state of image2d

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


[*] Function mmap tear down of image2d

    ; assembly                                       | /* r2dec pseudo code output */
                                                     | /* /logs/firmware/unblob_extracted/firmware_extract/4325012-58052244.squashfs_v4_le_extract/usr/bin/image2d @ 0xebb08 */
                                                     | #include <stdint.h>
                                                     |  
    ; (fcn) sym.platform_init_for_stream ()          | void platform_init_for_stream () {
    0x000ebb08 lui gp, 0x16                          |     
    0x000ebb0c addiu gp, gp, 0x37c8                  |     
    0x000ebb10 addu gp, gp, t9                       |     gp += t9;
    0x000ebb14 addiu sp, sp, -0x70                   |     
    0x000ebb18 sw gp, 0x20(sp)                       |     *(var_20h) = gp;
    0x000ebb1c sw ra, 0x6c(sp)                       |     *(var_6ch) = ra;
    0x000ebb20 sw fp, 0x68(sp)                       |     *(var_68h) = fp;
    0x000ebb24 sw s7, 0x64(sp)                       |     *(var_64h) = s7;
    0x000ebb28 sw s6, 0x60(sp)                       |     *(var_60h) = s6;
    0x000ebb2c sw s5, 0x5c(sp)                       |     *(var_5ch) = s5;
    0x000ebb30 sw s4, 0x58(sp)                       |     *(var_58h) = s4;
    0x000ebb34 sw s3, 0x54(sp)                       |     *(var_54h) = s3;
    0x000ebb38 sw s2, 0x50(sp)                       |     *(var_50h) = s2;
    0x000ebb3c sw s1, 0x4c(sp)                       |     *(var_4ch) = s1;
    0x000ebb40 sw s0, 0x48(sp)                       |     *(var_48h) = s0;
    0x000ebb44 lw t9, -0x6048(gp)                    |     t9 = sym.imp.g_malloc0;
                                                     |     if (a1 == 0) {
    0x000ebb48 beqz a1, 0xec800                      |         goto label_15;
                                                     |     }
    0x000ebb4c lw v0, (a1)                           |     v0 = *(a1);
    0x000ebb50 sw a3, 0x44(sp)                       |     *(var_44h) = a3;
    0x000ebb54 addiu a0, zero, 0x10e4                |     a0 = 0x10e4;
    0x000ebb58 sw v0, 0x40(sp)                       |     *(var_40h) = v0;
    0x000ebb5c move s0, a2                           |     s0 = a2;
    0x000ebb60 jalr t9                               |     t9 ();
    0x000ebb64 lw gp, 0x20(sp)                       |     gp = *(var_20h);
    0x000ebb68 move a0, v0                           |     a0 = v0;
    0x000ebb6c sw v0, 0x3c(sp)                       |     *(var_3ch) = v0;
    0x000ebb70 lw t9, -0x703c(gp)                    |     t9 = sym.platform_common_init;
    0x000ebb74 move fp, v0                           |     fp = v0;
    0x000ebb78 bal 0x10b188                          |     sym_platform_common_init ();
    0x000ebb7c addiu a0, zero, -0xff                 |     a0 = -0xff;
    0x000ebb80 lw gp, 0x20(sp)                       |     gp = *(var_20h);
                                                     |     if (v0 != a0) {
    0x000ebb84 bne v0, a0, 0xebff4                   |         goto label_16;
                                                     |     }
    0x000ebb88 lw t9, -0x6048(gp)                    |     t9 = sym.imp.g_malloc0;
    0x000ebb8c addiu a0, zero, 0x48                  |     a0 = 0x48;
    0x000ebb90 jalr t9                               |     t9 ();
    0x000ebb94 sw v0, 0x3c(fp)                       |     *(arg_3ch) = v0;
    0x000ebb98 lw gp, 0x20(sp)                       |     gp = *(var_20h);
    0x000ebb9c sw s0, 0xb4(fp)                       |     *(arg_b4h) = s0;
                                                     |     if (s0 <= 0) {
    0x000ebba0 blez s0, 0xebd40                      |         goto label_17;
                                                     |     }
    0x000ebba4 lw v0, -0x7054(gp)                    |     v0 = *(gp);
    0x000ebba8 lw s4, -0x7054(gp)                    |     s4 = *(gp);
    0x000ebbac sw v0, 0x2c(sp)                       |     *(var_2ch) = v0;
    0x000ebbb0 lw v0, -0x7da8(gp)                    |     v0 = *(gp);
    0x000ebbb4 lw s7, -0x7038(gp)                    |     s7 = sym.platform_get_stat;
    0x000ebbb8 addiu v0, v0, -0x77c                  |     v0 += -aav.0x0000077c;
    0x000ebbbc sw v0, 0x30(sp)                       |     *(var_30h) = v0;
    0x000ebbc0 lw v0, -0x7da8(gp)                    |     v0 = *(gp);
    0x000ebbc4 lw s6, 0x40(sp)                       |     s6 = *(var_40h);
                                                     |     /* str._s_dev_cam_d */
    0x000ebbc8 addiu v0, v0, 0x1900                  |     v0 += 0x1900;
    0x000ebbcc sw v0, 0x34(sp)                       |     *(var_34h) = v0;
    0x000ebbd0 lw v0, -0x7da8(gp)                    |     v0 = *(gp);
    0x000ebbd4 move s2, zero                         |     s2 = 0;
                                                     |     /* str.stat_fd_d */
    0x000ebbd8 addiu v0, v0, 0x1910                  |     v0 += 0x1910;
    0x000ebbdc move s5, zero                         |     s5 = 0;
    0x000ebbe0 addiu s4, s4, -0x7d44                 |     s4 += -aav.0x00007d44;
    0x000ebbe4 addiu s3, zero, 0x12c                 |     s3 = aav.0x0000012c;
    0x000ebbe8 sw v0, 0x38(sp)                       |     *(var_38h) = v0;
                                                     | label_0:
    0x000ebbec sll v0, s5, 8                         |     v0 = s5 << 8;
    0x000ebbf0 slti a0, v0, 0                        |     a0 = (v0 < 0) ? 1 : 0;
                                                     |     if (a0 == 0) {
    0x000ebbf4 movn v0, zero, a0                     |         v0 = 0;
                                                     |     }
    0x000ebbf8 ext a1, v0, 8, 8                      |     __asm ("ext a1, v0, 8, 8");
    0x000ebbfc mul v1, a1, s3                        |     __asm ("mul v1, a1, s3");
    0x000ebc00 move a0, s6                           |     a0 = s6;
    0x000ebc04 addiu t4, s6, 0x50                    |     t4 = s6 + 0x50;
    0x000ebc08 addu v0, v1, fp                       |     v0 = v1 + fp;
    0x000ebc0c addiu v0, v0, 0xbc                    |     v0 += 0xbc;
                                                     |     do {
    0x000ebc10 lw t3, (a0)                           |         t3 = *(a0);
    0x000ebc14 lw t2, 4(a0)                          |         t2 = *((a0 + 1));
    0x000ebc18 lw a3, 8(a0)                          |         a3 = *((a0 + 2));
    0x000ebc1c lw a2, 0xc(a0)                        |         a2 = *((a0 + 3));
    0x000ebc20 addiu a0, a0, 0x10                    |         a0 += 0x10;
    0x000ebc24 sw t3, (v0)                           |         *(v0) = t3;
    0x000ebc28 sw t2, 4(v0)                          |         *(var_4h) = t2;
    0x000ebc2c sw a3, 8(v0)                          |         *(var_8h) = a3;
    0x000ebc30 sw a2, 0xc(v0)                        |         *(var_ch) = a2;
    0x000ebc34 addiu v0, v0, 0x10                    |         v0 += 0x10;
    0x000ebc38 bne a0, t4, 0xebc10                   |         
                                                     |     } while (a0 != t4);
    0x000ebc3c mul v1, a1, s3                        |     __asm ("mul v1, a1, s3");
    0x000ebc40 lw t3, (a0)                           |     t3 = *(a0);
    0x000ebc44 lw t2, 4(a0)                          |     t2 = *((a0 + 1));
    0x000ebc48 lw a0, 8(a0)                          |     a0 = *((a0 + 2));
    0x000ebc4c lw t9, -0x5dc4(gp)                    |     t9 = *(gp);
    0x000ebc50 addu a3, v1, fp                       |     a3 = v1 + fp;
    0x000ebc54 sw t3, (v0)                           |     *(v0) = t3;
    0x000ebc58 sw t2, 4(v0)                          |     *(var_4h_2) = t2;
    0x000ebc5c sw a0, 8(v0)                          |     *(var_8h_2) = a0;
    0x000ebc60 lw a1, 0x30(sp)                       |     a1 = *(var_30h);
    0x000ebc64 lw a0, 0x34(sp)                       |     a0 = *(var_34h);
    0x000ebc68 addiu v0, zero, 0x10                  |     v0 = 0x10;
    0x000ebc6c move a2, s5                           |     a2 = s5;
    0x000ebc70 sw v0, 0xd8(a3)                       |     *(var_d8h) = v0;
    0x000ebc74 jalr t9                               |     t9 ();
    0x000ebc78 lw gp, 0x20(sp)                       |     gp = *(var_20h);
    0x000ebc7c lw a0, 0x38(sp)                       |     a0 = *(var_38h);
    0x000ebc80 move a1, s5                           |     a1 = s5;
    0x000ebc84 lw t9, -0x5dc4(gp)                    |     t9 = *(gp);
    0x000ebc88 move s1, v0                           |     s1 = v0;
    0x000ebc8c jalr t9                               |     t9 ();
    0x000ebc90 lw gp, 0x20(sp)                       |     gp = *(var_20h);
    0x000ebc94 move s0, v0                           |     s0 = v0;
    0x000ebc98 lw v0, 0x2c(sp)                       |     v0 = *(var_2ch);
    0x000ebc9c lw t9, -0x7034(gp)                    |     t9 = sym.platform_create_input_source;
    0x000ebca0 addiu a3, v0, -0x7ce0                 |     a3 = v0 + -aav.0x00007ce0;
    0x000ebca4 move a2, zero                         |     a2 = 0;
    0x000ebca8 move a1, s0                           |     a1 = s0;
    0x000ebcac move a0, fp                           |     a0 = fp;
    0x000ebcb0 sw s1, 0x1c(sp)                       |     *(var_1ch) = s1;
    0x000ebcb4 sw zero, 0x18(sp)                     |     *(var_18h) = 0;
    0x000ebcb8 sw s7, 0x14(sp)                       |     *(var_14h) = s7;
    0x000ebcbc sw s4, 0x10(sp)                       |     *(var_10h) = s4;
    0x000ebcc0 bal 0x10b8a4                          |     sym_platform_create_input_source ();
    0x000ebcc4 lw gp, 0x20(sp)                       |     gp = *(var_20h);
    0x000ebcc8 sw v0, 0x28(sp)                       |     *(var_28h) = v0;
    0x000ebccc lw t9, -0x5b98(gp)                    |     t9 = *((gp - 5862));
    0x000ebcd0 move a0, s1                           |     a0 = s1;
    0x000ebcd4 jalr t9                               |     t9 ();
    0x000ebcd8 lw v0, 0x28(sp)                       |     v0 = *(var_28h);
    0x000ebcdc lw gp, 0x20(sp)                       |     gp = *(var_20h);
                                                     |     if (v0 == 0) {
    0x000ebce0 beqz v0, 0xebfe0                      |         goto label_18;
                                                     |     }
    0x000ebce4 lw t9, -0x7030(gp)                    |     t9 = sym.platform_attach_input_source;
    0x000ebce8 move a1, v0                           |     a1 = v0;
    0x000ebcec move a0, fp                           |     a0 = fp;
    0x000ebcf0 bal 0x10b974                          |     sym_platform_attach_input_source ();
    0x000ebcf4 lw gp, 0x20(sp)                       |     gp = *(var_20h);
    0x000ebcf8 move a1, s0                           |     a1 = s0;
    0x000ebcfc move a0, fp                           |     a0 = fp;
    0x000ebd00 lw t9, -0x702c(gp)                    |     t9 = sym.platform_get_fd_from_input_source;
    0x000ebd04 lw s1, 0x3c(fp)                       |     s1 = *(arg_3ch);
    0x000ebd08 bal 0x10bad8                          |     sym_platform_get_fd_from_input_source ();
    0x000ebd0c lw gp, 0x20(sp)                       |     gp = *(var_20h);
    0x000ebd10 addu s1, s1, s2                       |     s1 += s2;
    0x000ebd14 move a0, s0                           |     a0 = s0;
    0x000ebd18 lw t9, -0x5b98(gp)                    |     t9 = *((gp - 5862));
    0x000ebd1c sw v0, (s1)                           |     *(s1) = v0;
    0x000ebd20 jalr t9                               |     t9 ();
    0x000ebd24 lw v0, 0xb4(fp)                       |     v0 = *(arg_b4h);
    0x000ebd28 addiu s5, s5, 1                       |     s5++;
    0x000ebd2c slt v0, s5, v0                        |     v0 = (s5 < v0) ? 1 : 0;
    0x000ebd30 lw gp, 0x20(sp)                       |     gp = *(var_20h);
    0x000ebd34 addiu s6, s6, 0x5c                    |     s6 += 0x5c;
    0x000ebd38 addiu s2, s2, 0xc                     |     s2 += 0xc;
                                                     |     if (v0 != 0) {
    0x000ebd3c bnez v0, 0xebbec                      |         goto label_0;
                                                     |     }
                                                     | label_17:
    0x000ebd40 lw t9, -0x5e14(gp)                    |     t9 = sym.imp.g_hash_table_new;
    0x000ebd44 move a1, zero                         |     a1 = 0;
    0x000ebd48 move a0, zero                         |     a0 = 0;
    0x000ebd4c jalr t9                               |     t9 ();
    0x000ebd50 lw gp, 0x20(sp)                       |     gp = *(var_20h);
    0x000ebd54 move a1, zero                         |     a1 = 0;
    0x000ebd58 move a0, zero                         |     a0 = 0;
    0x000ebd5c lw t9, -0x5e14(gp)                    |     t9 = sym.imp.g_hash_table_new;
    0x000ebd60 sw v0, 0xf30(fp)                      |     *(arg_f30h) = v0;
    0x000ebd64 jalr t9                               |     t9 ();
    0x000ebd68 lw gp, 0x20(sp)                       |     gp = *(var_20h);
    0x000ebd6c move a1, zero                         |     a1 = 0;
    0x000ebd70 move a0, zero                         |     a0 = 0;
    0x000ebd74 lw t9, -0x5e14(gp)                    |     t9 = sym.imp.g_hash_table_new;
    0x000ebd78 sw v0, 0xf34(fp)                      |     *(arg_f34h) = v0;
    0x000ebd7c jalr t9                               |     t9 ();
    0x000ebd80 lw gp, 0x20(sp)                       |     gp = *(var_20h);
    0x000ebd84 move a1, zero                         |     a1 = 0;
    0x000ebd88 move a0, zero                         |     a0 = 0;
    0x000ebd8c lw t9, -0x5e14(gp)                    |     t9 = sym.imp.g_hash_table_new;
    0x000ebd90 sw v0, 0xf38(fp)                      |     *(arg_f38h) = v0;
    0x000ebd94 jalr t9                               |     t9 ();
    0x000ebd98 lw gp, 0x20(sp)                       |     gp = *(var_20h);
    0x000ebd9c move a1, zero                         |     a1 = 0;
    0x000ebda0 move a0, zero                         |     a0 = 0;
    0x000ebda4 lw t9, -0x5e14(gp)                    |     t9 = sym.imp.g_hash_table_new;
    0x000ebda8 sw v0, 0xf3c(fp)                      |     *(arg_f3ch) = v0;
    0x000ebdac jalr t9                               |     t9 ();
    0x000ebdb0 lw gp, 0x20(sp)                       |     gp = *(var_20h);
    0x000ebdb4 move a1, zero                         |     a1 = 0;
    0x000ebdb8 move a0, zero                         |     a0 = 0;
    0x000ebdbc lw t9, -0x5e14(gp)                    |     t9 = sym.imp.g_hash_table_new;
    0x000ebdc0 sw v0, 0xf40(fp)                      |     *(arg_f40h) = v0;
    0x000ebdc4 jalr t9                               |     t9 ();
    0x000ebdc8 lw gp, 0x20(sp)                       |     gp = *(var_20h);
    0x000ebdcc sw v0, 0xf44(fp)                      |     *(arg_f44h) = v0;
    0x000ebdd0 move a0, fp                           |     a0 = fp;
    0x000ebdd4 lw v0, -0x7028(gp)                    |     v0 = sym.platform_get_data;
    0x000ebdd8 lw t9, -0x7024(gp)                    |     t9 = sym.ipp_properties_init;
    0x000ebddc sw v0, 0x2c(fp)                       |     *(arg_2ch) = v0;
    0x000ebde0 lw v0, -0x7020(gp)                    |     v0 = sym.platform_check_data;
    0x000ebde4 sw zero, 0xf2c(fp)                    |     *(arg_f2ch) = 0;
    0x000ebde8 sw v0, 0x30(fp)                       |     *(arg_30h) = v0;
    0x000ebdec lw v0, -0x701c(gp)                    |     v0 = sym.platform_add_stat;
    0x000ebdf0 sw zero, 0xf24(fp)                    |     *(arg_f24h) = 0;
    0x000ebdf4 sw v0, 0xa1c(fp)                      |     *(arg_a1ch) = v0;
    0x000ebdf8 sw zero, 0xf28(fp)                    |     *(arg_f28h) = 0;
    0x000ebdfc bal 0xf0d28                           |     sym_ipp_properties_init ();
    0x000ebe00 lw gp, 0x20(sp)                       |     gp = *(var_20h);
    0x000ebe04 move a2, zero                         |     a2 = 0;
    0x000ebe08 move a1, zero                         |     a1 = 0;
    0x000ebe0c lw a3, -0x7018(gp)                    |     a3 = sym.s_pair_destroy;
    0x000ebe10 lw t9, -0x5e20(gp)                    |     t9 = sym.imp.g_hash_table_new_full;
    0x000ebe14 move a0, zero                         |     a0 = 0;
    0x000ebe18 jalr t9                               |     t9 ();
    0x000ebe1c lw gp, 0x20(sp)                       |     gp = *(var_20h);
    0x000ebe20 sw v0, 0xa20(fp)                      |     *(arg_a20h) = v0;
    0x000ebe24 lw t9, -0x6048(gp)                    |     t9 = sym.imp.g_malloc0;
    0x000ebe28 addiu a0, zero, 0x7f8                 |     a0 = aav.0x000007f8;
    0x000ebe2c jalr t9                               |     t9 ();
    0x000ebe30 lw a3, 0xb4(fp)                       |     a3 = *(arg_b4h);
    0x000ebe34 lw gp, 0x20(sp)                       |     gp = *(var_20h);
    0x000ebe38 sw v0, 0x8c(fp)                       |     *(arg_8ch) = v0;
                                                     |     if (a3 <= 0) {
    0x000ebe3c blez a3, 0xebea4                      |         goto label_19;
                                                     |     }
    0x000ebe40 lw v0, 0x40(sp)                       |     v0 = *(var_40h);
    0x000ebe44 move a1, zero                         |     a1 = 0;
    0x000ebe48 addiu a0, v0, 0x18                    |     a0 = v0 + 0x18;
    0x000ebe4c addiu v0, zero, 0x5c                  |     v0 = 0x5c;
    0x000ebe50 mul v1, a3, v0                        |     __asm ("mul v1, a3, v0");
    0x000ebe54 addiu t2, zero, 0x12c                 |     t2 = aav.0x0000012c;
    0x000ebe58 addiu t1, zero, -1                    |     t1 = -1;
    0x000ebe5c addiu t0, zero, 0xc                   |     t0 = 0xc;
    0x000ebe60 addu a3, v1, a0                       |     a3 = v1 + a0;
                                                     |     do {
    0x000ebe64 slti v0, a1, 0                        |         v0 = (a1 < 0) ? 1 : 0;
    0x000ebe68 move v1, a1                           |         v1 = a1;
                                                     |         if (v0 == 0) {
    0x000ebe6c movn v1, zero, v0                     |             v1 = 0;
                                                     |         }
    0x000ebe70 ext v0, v1, 8, 8                      |         __asm ("ext v0, v1, 8, 8");
    0x000ebe74 mul v1, v0, t2                        |         __asm ("mul v1, v0, t2");
    0x000ebe78 lw a2, (a0)                           |         a2 = *(a0);
    0x000ebe7c addiu a0, a0, 0x5c                    |         a0 += 0x5c;
    0x000ebe80 addiu a1, a1, 0x100                   |         a1 += aav.0x00000100;
    0x000ebe84 addu v0, v1, fp                       |         v0 = v1 + fp;
    0x000ebe88 sw a2, 0xbc(v0)                       |         *((v0 + 47)) = a2;
    0x000ebe8c lw a2, -0x5c(a0)                      |         a2 = *((a0 - 23));
    0x000ebe90 sw t1, 0x154(v0)                      |         *(v0) = t1;
    0x000ebe94 sw a2, 0xc0(v0)                       |         *((v0 + 48)) = a2;
    0x000ebe98 sw zero, 0x158(v0)                    |         *(v0) = 0;
    0x000ebe9c sw t0, 0x150(v0)                      |         *(v0) = t0;
    0x000ebea0 bne a3, a0, 0xebe64                   |         
                                                     |     } while (a3 != a0);
                                                     | label_19:
    0x000ebea4 lw t9, -0x60cc(gp)                    |     t9 = sym.imp.g_list_first;
    0x000ebea8 lw a0, 0x44(sp)                       |     a0 = *(var_44h);
    0x000ebeac jalr t9                               |     t9 ();
    0x000ebeb0 lw gp, 0x20(sp)                       |     gp = *(var_20h);
    0x000ebeb4 move s2, v0                           |     s2 = v0;
    0x000ebeb8 lw s0, -0x7048(gp)                    |     s0 = sym.a5_platform_stream_config_get;
                                                     |     if (v0 == 0) {
    0x000ebebc beqz v0, 0xec054                      |         goto label_20;
                                                     |     }
    0x000ebec0 lui s1, 0x81dc                        |     s1 = 0x81dc0000;
    0x000ebec4 addiu s1, s1, 0x2a08                  |     
    0x000ebec8 b 0xebed4                             |     
                                                     |     if (s2 == 0) {
                                                     |         while (v0 == 0) {
    0x000ebecc beql s2, zero, 0xec058                |             goto label_21;
                                                     |         }
    0x000ebed0 lw v0, 0xb4(fp)                       |         v0 = *(arg_b4h);
    0x000ebed4 lw a1, (s2)                           |         a1 = *(s2);
    0x000ebed8 move t9, s0                           |         t9 = s0;
    0x000ebedc move a0, fp                           |         a0 = fp;
    0x000ebee0 bal 0xeb8a4                           |         sym_a5_platform_stream_config_get ();
    0x000ebee4 lw a1, 4(v0)                          |         a1 = *((v0 + 1));
    0x000ebee8 lw a0, 0x3c(fp)                       |         a0 = *(arg_3ch);
    0x000ebeec slti t0, a1, 0                        |         t0 = (a1 < 0) ? 1 : 0;
                                                     |         if (t0 == 0) {
    0x000ebef0 movn a1, zero, t0                     |             a1 = 0;
                                                     |         }
    0x000ebef4 ext t0, a1, 8, 8                      |         __asm ("ext t0, a1, 8, 8");
    0x000ebef8 sll t1, t0, 1                         |         t1 = t0 << 1;
    0x000ebefc addu t0, t1, t0                       |         t0 = t1 + t0;
    0x000ebf00 sll t0, t0, 2                         |         t0 <<= 2;
    0x000ebf04 lw t9, 0x14(fp)                       |         t9 = *(arg_14h);
    0x000ebf08 lw gp, 0x20(sp)                       |         gp = *(var_20h);
    0x000ebf0c addiu a3, v0, 4                       |         a3 = v0 + 4;
    0x000ebf10 lwx a0, t0(a0)                        |         __asm ("lwx a0, t0(a0)");
                                                     |         if (t9 == 0) {
    0x000ebf14 beqz t9, 0xebfc8                      |             goto label_22;
                                                     |         }
    0x000ebf18 move a1, a0                           |         a1 = a0;
    0x000ebf1c move a2, s1                           |         a2 = s1;
    0x000ebf20 move a0, fp                           |         a0 = fp;
    0x000ebf24 jalr t9                               |         t9 ();
    0x000ebf28 lw gp, 0x20(sp)                       |         gp = *(var_20h);
                                                     | label_1:
    0x000ebf2c beql v0, zero, 0xebecc                |         
                                                     |     }
    0x000ebf30 lw s2, 4(s2)                          |     s2 = *((s2 + 1));
    0x000ebf34 lw t9, -0x5b94(gp)                    |     t9 = sym.imp.__errno_location;
    0x000ebf38 jalr t9                               |     t9 ();
    0x000ebf3c nop                                   |     
    0x000ebf40 lw gp, 0x20(sp)                       |     gp = *(var_20h);
    0x000ebf44 lw t9, -0x5bc4(gp)                    |     t9 = sym.imp.strerror;
    0x000ebf48 lw a0, (v0)                           |     a0 = *(v0);
    0x000ebf4c jalr t9                               |     t9 ();
    0x000ebf50 lw gp, 0x20(sp)                       |     gp = *(var_20h);
    0x000ebf54 move a3, v0                           |     a3 = v0;
    0x000ebf58 move a1, zero                         |     a1 = 0;
    0x000ebf5c lw a2, -0x7da8(gp)                    |     a2 = *(gp);
    0x000ebf60 lw t9, -0x7f7c(gp)                    |     t9 = sym.debug_output;
                                                     |     /* str.ioctl_CAM_IOC_STREAM_ADD_failed:__s_n */
    0x000ebf64 addiu a2, a2, 0x191c                  |     a2 += 0x191c;
    0x000ebf68 addiu a0, zero, 4                     |     a0 = 4;
    0x000ebf6c bal 0xf7988                           |     sym_debug_output ();
    0x000ebf70 lw gp, 0x20(sp)                       |     gp = *(var_20h);
                                                     |     do {
    0x000ebf74 lw t9, -0x5b98(gp)                    |         t9 = *((gp - 5862));
    0x000ebf78 lw a0, 0x3c(fp)                       |         a0 = *(arg_3ch);
    0x000ebf7c sw zero, 0x3c(sp)                     |         *(var_3ch) = 0;
    0x000ebf80 jalr t9                               |         t9 ();
    0x000ebf84 lw gp, 0x20(sp)                       |         gp = *(var_20h);
    0x000ebf88 lw t9, -0x5b98(gp)                    |         t9 = *((gp - 5862));
    0x000ebf8c move a0, fp                           |         a0 = fp;
    0x000ebf90 jalr t9                               |         t9 ();
    0x000ebf94 lw ra, 0x6c(sp)                       |         ra = *(var_6ch);
    0x000ebf98 lw v0, 0x3c(sp)                       |         v0 = *(var_3ch);
    0x000ebf9c lw fp, 0x68(sp)                       |         fp = *(var_68h);
    0x000ebfa0 lw s7, 0x64(sp)                       |         s7 = *(var_64h);
    0x000ebfa4 lw s6, 0x60(sp)                       |         s6 = *(var_60h);
    0x000ebfa8 lw s5, 0x5c(sp)                       |         s5 = *(var_5ch);
    0x000ebfac lw s4, 0x58(sp)                       |         s4 = *(var_58h);
    0x000ebfb0 lw s3, 0x54(sp)                       |         s3 = *(var_54h);
    0x000ebfb4 lw s2, 0x50(sp)                       |         s2 = *(var_50h);
    0x000ebfb8 lw s1, 0x4c(sp)                       |         s1 = *(var_4ch);
    0x000ebfbc lw s0, 0x48(sp)                       |         s0 = *(var_48h);
    0x000ebfc0 addiu sp, sp, 0x70                    |         
    0x000ebfc4 jr ra                                 |         return v0;
                                                     | label_22:
    0x000ebfc8 lw t9, -0x5e00(gp)                    |         t9 = sym.imp.ioctl;
    0x000ebfcc move a2, a3                           |         a2 = a3;
    0x000ebfd0 move a1, s1                           |         a1 = s1;
    0x000ebfd4 jalr t9                               |         t9 ();
    0x000ebfd8 lw gp, 0x20(sp)                       |         gp = *(var_20h);
    0x000ebfdc b 0xebf2c                             |         goto label_1;
                                                     | label_18:
    0x000ebfe0 lw t9, -0x5b98(gp)                    |         t9 = *((gp - 5862));
    0x000ebfe4 move a0, s0                           |         a0 = s0;
    0x000ebfe8 jalr t9                               |         t9 ();
    0x000ebfec lw gp, 0x20(sp)                       |         gp = *(var_20h);
    0x000ebff0 b 0xebf74                             |         
                                                     |     } while (1);
                                                     | label_16:
    0x000ebff4 lw a2, -0x7da8(gp)                    |     a2 = *(gp);
    0x000ebff8 lw t9, -0x7f7c(gp)                    |     t9 = sym.debug_output;
                                                     |     /* str.ARTPEC_5__init_ops__failed._n */
    0x000ebffc addiu a2, a2, 0x18e0                  |     a2 += aav.0x000018e0;
    0x000ec000 move a1, zero                         |     a1 = 0;
    0x000ec004 addiu a0, zero, 4                     |     a0 = 4;
    0x000ec008 bal 0xf7988                           |     sym_debug_output ();
    0x000ec00c lw gp, 0x20(sp)                       |     gp = *(var_20h);
    0x000ec010 lw t9, -0x5b98(gp)                    |     t9 = *((gp - 5862));
    0x000ec014 lw a0, 0x3c(sp)                       |     a0 = *(var_3ch);
    0x000ec018 jalr t9                               |     t9 ();
    0x000ec01c lw ra, 0x6c(sp)                       |     ra = *(var_6ch);
    0x000ec020 sw zero, 0x3c(sp)                     |     *(var_3ch) = 0;
    0x000ec024 lw v0, 0x3c(sp)                       |     v0 = *(var_3ch);
    0x000ec028 lw fp, 0x68(sp)                       |     fp = *(var_68h);
    0x000ec02c lw s7, 0x64(sp)                       |     s7 = *(var_64h);
    0x000ec030 lw s6, 0x60(sp)                       |     s6 = *(var_60h);
    0x000ec034 lw s5, 0x5c(sp)                       |     s5 = *(var_5ch);
    0x000ec038 lw s4, 0x58(sp)                       |     s4 = *(var_58h);
    0x000ec03c lw s3, 0x54(sp)                       |     s3 = *(var_54h);
    0x000ec040 lw s2, 0x50(sp)                       |     s2 = *(var_50h);
    0x000ec044 lw s1, 0x4c(sp)                       |     s1 = *(var_4ch);
    0x000ec048 lw s0, 0x48(sp)                       |     s0 = *(var_48h);
    0x000ec04c addiu sp, sp, 0x70                    |     
    0x000ec050 jr ra                                 |     return v0;
                                                     | label_20:
    0x000ec054 lw v0, 0xb4(fp)                       |     v0 = *(arg_b4h);
                                                     | label_21:
    0x000ec058 move s5, zero                         |     s5 = 0;
                                                     |     if (v0 <= 0) {
    0x000ec05c blez v0, 0xec688                      |         goto label_23;
                                                     |     }
    0x000ec060 lui s7, 0x8004                        |     s7 = 0x80040000;
    0x000ec064 addiu v0, s7, 0x2a0e                  |     v0 = s7 + 0x2a0e;
    0x000ec068 sw v0, 0x28(sp)                       |     *(var_28h) = v0;
    0x000ec06c lw v0, -0x7054(gp)                    |     v0 = *(gp);
    0x000ec070 addiu v0, v0, -0x45fc                 |     v0 += -0x45fc;
    0x000ec074 sw v0, 0x34(sp)                       |     *(var_34h) = v0;
    0x000ec078 sll s6, s5, 8                         |     s6 = s5 << 8;
                                                     | label_12:
    0x000ec07c slti s3, s6, 0                        |     s3 = (s6 < 0) ? 1 : 0;
    0x000ec080 move v0, s6                           |     v0 = s6;
                                                     |     if (s3 == 0) {
    0x000ec084 movn v0, zero, s3                     |         v0 = 0;
                                                     |     }
    0x000ec088 ext s3, v0, 8, 8                      |     __asm ("ext s3, v0, 8, 8");
    0x000ec08c addiu v0, zero, 0x12c                 |     v0 = aav.0x0000012c;
    0x000ec090 mul v1, s3, v0                        |     __asm ("mul v1, s3, v0");
    0x000ec094 sll s1, s3, 1                         |     s1 = s3 << 1;
    0x000ec098 addu s1, s1, s3                       |     s1 += s3;
    0x000ec09c sll s1, s1, 2                         |     s1 <<= 2;
    0x000ec0a0 addiu s4, zero, 0xc                   |     s4 = 0xc;
    0x000ec0a4 addu s0, v1, fp                       |     s0 = v1 + fp;
    0x000ec0a8 lw t0, 0xc8(s0)                       |     t0 = *((s0 + 50));
    0x000ec0ac lw a1, 0xcc(s0)                       |     a1 = *((s0 + 51));
    0x000ec0b0 lw a2, 0xd0(s0)                       |     a2 = *((s0 + 52));
    0x000ec0b4 lw a3, 0xc4(s0)                       |     a3 = *((s0 + 49));
    0x000ec0b8 lw a0, 0xd8(s0)                       |     a0 = *((s0 + 54));
    0x000ec0bc subu v0, a1, a2                       |     __asm ("subu v0, a1, a2");
    0x000ec0c0 subu s2, a3, t0                       |     __asm ("subu s2, a3, t0");
    0x000ec0c4 addiu v0, v0, 1                       |     v0++;
    0x000ec0c8 addiu s2, s2, 1                       |     s2++;
    0x000ec0cc mul s2, v0, s2                        |     __asm ("mul s2, v0, s2");
    0x000ec0d0 mul v0, a0, a0                        |     __asm ("mul v0, a0, a0");
    0x000ec0d4 sw t0, 0x140(s0)                      |     *(s0) = t0;
    0x000ec0d8 sw a3, 0x148(s0)                      |     *(s0) = a3;
    0x000ec0dc sw a2, 0x144(s0)                      |     *(s0) = a2;
    0x000ec0e0 sw a1, 0x14c(s0)                      |     *(s0) = a1;
    0x000ec0e4 div zero, s2, v0                      |     __asm ("div zero, s2, v0");
    0x000ec0e8 teq v0, zero, 7                       |     __asm ("teq v0, zero, 7");
    0x000ec0ec mflo s2                               |     __asm ("mflo s2");
    0x000ec0f0 sll v0, s2, 2                         |     v0 = s2 << 2;
    0x000ec0f4 addu s2, v0, s2                       |     s2 = v0 + s2;
    0x000ec0f8 sll s2, s2, 2                         |     s2 <<= 2;
    0x000ec0fc b 0xec110                             |     
                                                     |     while (a3 <= 0) {
    0x000ec100 addiu v0, v0, 1                       |         v0++;
    0x000ec104 addiu s4, s4, -1                      |         s4 += -1;
    0x000ec108 sw v0, 0xf48(fp)                      |         *(arg_f48h) = v0;
                                                     |         if (s4 == 0) {
    0x000ec10c beqz s4, 0xec218                      |             goto label_24;
                                                     |         }
                                                     | label_2:
    0x000ec110 lw a0, 0x3c(fp)                       |         a0 = *(arg_3ch);
    0x000ec114 lw t9, 0x14(fp)                       |         t9 = *(arg_14h);
    0x000ec118 lwx a0, s1(a0)                        |         __asm ("lwx a0, s1(a0)");
                                                     |         if (t9 == 0) {
    0x000ec11c beqz t9, 0xec344                      |             goto label_25;
                                                     |         }
    0x000ec120 lw a2, 0x28(sp)                       |         a2 = *(var_28h);
    0x000ec124 move a1, a0                           |         a1 = a0;
    0x000ec128 move a3, s2                           |         a3 = s2;
    0x000ec12c move a0, fp                           |         a0 = fp;
    0x000ec130 jalr t9                               |         t9 ();
    0x000ec134 lw gp, 0x20(sp)                       |         gp = *(var_20h);
                                                     |         if (v0 <= 0) {
    0x000ec138 blez v0, 0xec35c                      |             goto label_26;
                                                     |         }
                                                     | label_3:
    0x000ec13c lw a0, 0x3c(fp)                       |         a0 = *(arg_3ch);
    0x000ec140 lw t9, 0x18(fp)                       |         t9 = *(arg_18h);
    0x000ec144 addiu a1, s2, 0x1d60                  |         a1 = s2 + 0x1d60;
    0x000ec148 lwx a0, s1(a0)                        |         __asm ("lwx a0, s1(a0)");
                                                     |         if (t9 == 0) {
    0x000ec14c beqz t9, 0xec3a0                      |             goto label_27;
                                                     |         }
    0x000ec150 sw a0, 0x10(sp)                       |         *(var_10h) = a0;
    0x000ec154 sw v0, 0x14(sp)                       |         *(var_14h) = v0;
    0x000ec158 addiu a3, zero, 1                     |         a3 = 1;
    0x000ec15c addiu a2, zero, 3                     |         a2 = 3;
    0x000ec160 move a0, zero                         |         a0 = 0;
    0x000ec164 jalr t9                               |         t9 ();
    0x000ec168 move s7, v0                           |         s7 = v0;
    0x000ec16c addiu v0, zero, -1                    |         v0 = -1;
    0x000ec170 lw gp, 0x20(sp)                       |         gp = *(var_20h);
                                                     |         if (s7 == v0) {
    0x000ec174 beq s7, v0, 0xec3cc                   |             goto label_28;
                                                     |         }
                                                     | label_5:
    0x000ec178 lw v0, 0xf48(fp)                      |         v0 = *(arg_f48h);
    0x000ec17c lw a3, 0x110(s0)                      |         a3 = *(s0);
    0x000ec180 addiu a0, v0, 0x3d2                   |         a0 = v0 + 0x3d2;
    0x000ec184 sll a0, a0, 2                         |         a0 <<= 2;
    0x000ec188 addu a0, fp, a0                       |         a0 = fp + a0;
    0x000ec18c sw s7, 4(a0)                          |         *((a0 + 1)) = s7;
    0x000ec190 blez a3, 0xec100                      |         
                                                     |     }
    0x000ec194 lw a0, 0x3c(fp)                       |     a0 = *(arg_3ch);
    0x000ec198 lw t9, 0x14(fp)                       |     t9 = *(arg_14h);
    0x000ec19c lwx a0, s1(a0)                        |     __asm ("lwx a0, s1(a0)");
                                                     |     if (t9 == 0) {
    0x000ec1a0 beqz t9, 0xec450                      |         goto label_29;
                                                     |     }
    0x000ec1a4 lui a2, 0x2000                        |     a2 = imp.g_str_equal;
    0x000ec1a8 move a1, a0                           |     a1 = a0;
    0x000ec1ac addiu a2, a2, 0x2a90                  |     a2 += 0x2a90;
    0x000ec1b0 move a0, fp                           |     a0 = fp;
    0x000ec1b4 jalr t9                               |     t9 ();
    0x000ec1b8 lw gp, 0x20(sp)                       |     gp = *(var_20h);
                                                     |     if (v0 <= 0) {
    0x000ec1bc blez v0, 0xec46c                      |         goto label_30;
                                                     |     }
                                                     | label_9:
    0x000ec1c0 lw a0, 0x3c(fp)                       |     a0 = *(arg_3ch);
    0x000ec1c4 lw a1, 0x110(s0)                      |     a1 = *(s0);
    0x000ec1c8 lw t9, 0x18(fp)                       |     t9 = *(arg_18h);
    0x000ec1cc lwx a0, s1(a0)                        |     __asm ("lwx a0, s1(a0)");
    0x000ec1d0 sw a1, 0xe68(s7)                      |     *((s7 + 922)) = a1;
    0x000ec1d4 sw v0, 0xe6c(s7)                      |     *((s7 + 923)) = v0;
                                                     |     if (t9 == 0) {
    0x000ec1d8 beqz t9, 0xec4d0                      |         goto label_31;
                                                     |     }
    0x000ec1dc sw a0, 0x10(sp)                       |     *(var_10h) = a0;
    0x000ec1e0 sw v0, 0x14(sp)                       |     *(var_14h) = v0;
    0x000ec1e4 move a0, zero                         |     a0 = 0;
    0x000ec1e8 addiu a3, zero, 1                     |     a3 = 1;
    0x000ec1ec addiu a2, zero, 3                     |     a2 = 3;
    0x000ec1f0 jalr t9                               |     t9 ();
    0x000ec1f4 addiu a0, zero, -1                    |     a0 = -1;
    0x000ec1f8 lw gp, 0x20(sp)                       |     gp = *(var_20h);
    0x000ec1fc sw v0, 0xe70(s7)                      |     *((s7 + 924)) = v0;
                                                     |     if (v0 == a0) {
    0x000ec200 beq v0, a0, 0xec4fc                   |         goto label_32;
                                                     |     }
                                                     | label_11:
    0x000ec204 lw v0, 0xf48(fp)                      |     v0 = *(arg_f48h);
    0x000ec208 addiu s4, s4, -1                      |     s4 += -1;
    0x000ec20c addiu v0, v0, 1                       |     v0++;
    0x000ec210 sw v0, 0xf48(fp)                      |     *(arg_f48h) = v0;
                                                     |     if (s4 != 0) {
    0x000ec214 bnez s4, 0xec110                      |         goto label_2;
                                                     |     }
                                                     | label_24:
    0x000ec218 addiu v0, zero, 0x12c                 |     v0 = aav.0x0000012c;
    0x000ec21c mul v1, s3, v0                        |     __asm ("mul v1, s3, v0");
    0x000ec220 addu s3, v1, fp                       |     s3 = v1 + fp;
    0x000ec224 lw s1, 0xfc(s3)                       |     s1 = *((s3 + 63));
                                                     |     if (fp != 0) {
    0x000ec228 beqz fp, 0xec338                      |         
    0x000ec22c lw s0, -0x7048(gp)                    |         s0 = sym.a5_platform_stream_config_get;
    0x000ec230 move a1, s6                           |         a1 = s6;
    0x000ec234 move t9, s0                           |         t9 = s0;
    0x000ec238 move a0, fp                           |         a0 = fp;
    0x000ec23c bal 0xeb8a4                           |         sym_a5_platform_stream_config_get ();
    0x000ec240 lw gp, 0x20(sp)                       |         gp = *(var_20h);
    0x000ec244 addiu s4, v0, 4                       |         s4 = v0 + 4;
    0x000ec248 move s3, v0                           |         s3 = v0;
    0x000ec24c lw s2, -0x7044(gp)                    |         s2 = *(gp);
    0x000ec250 move a1, s4                           |         a1 = s4;
    0x000ec254 move t9, s2                           |         t9 = s2;
    0x000ec258 move a0, fp                           |         a0 = fp;
    0x000ec25c bal 0xeb500                           |         sym_artpec5_platform_stream_config_get ();
    0x000ec260 addiu a1, zero, 4                     |         a1 = 4;
    0x000ec264 move a0, a1                           |         a0 = a1;
    0x000ec268 lw v0, 0x1e0(s3)                      |         v0 = *(s3);
                                                     |         if (s1 == 0) {
    0x000ec26c movn a0, zero, s1                     |             a0 = 0;
                                                     |         }
    0x000ec270 addiu a2, zero, 0x40                  |         a2 = 0x40;
    0x000ec274 lw gp, 0x20(sp)                       |         gp = *(var_20h);
    0x000ec278 sw a0, 0x2c(s3)                       |         *((s3 + 11)) = a0;
    0x000ec27c sw a0, 0x30(s3)                       |         *((s3 + 12)) = a0;
    0x000ec280 sw a0, 0x34(s3)                       |         *((s3 + 13)) = a0;
                                                     |         if (v0 == a2) {
    0x000ec284 beq v0, a2, 0xec70c                   |             goto label_33;
                                                     |         }
    0x000ec288 slti a0, v0, 0x41                     |         a0 = (v0 < 0x41) ? 1 : 0;
    0x000ec28c addiu a0, zero, 0x80                  |         a0 = 0x80;
                                                     |         if (a0 == 0) {
    0x000ec290 beqz a0, 0xec410                      |             goto label_34;
                                                     |         }
    0x000ec294 addiu a0, zero, 0x10                  |         a0 = 0x10;
    0x000ec298 addiu a0, zero, 0x20                  |         a0 = 0x20;
                                                     |         if (v0 == a0) {
    0x000ec29c beq v0, a0, 0xec738                   |             goto label_35;
                                                     |         }
    0x000ec2a0 addiu v0, zero, 1                     |         v0 = 1;
                                                     |         if (v0 != a0) {
    0x000ec2a4 bne v0, a0, 0xec718                   |             goto label_36;
                                                     |         }
    0x000ec2a8 sw v0, 0x38(s3)                       |         *((s3 + 14)) = v0;
                                                     | label_13:
    0x000ec2ac lw v0, 0x1ec(s3)                      |         v0 = *(s3);
    0x000ec2b0 addiu a0, zero, 0x40                  |         a0 = 0x40;
                                                     |         if (v0 == a0) {
    0x000ec2b4 beql v0, a0, 0xec430                  |             goto label_37;
                                                     |         }
    0x000ec2b8 addiu v0, zero, 2                     |         v0 = 2;
                                                     | label_6:
    0x000ec2bc slti a0, v0, 0x41                     |         a0 = (v0 < 0x41) ? 1 : 0;
    0x000ec2c0 addiu a0, zero, 0x80                  |         a0 = 0x80;
                                                     |         if (a0 == 0) {
    0x000ec2c4 beqz a0, 0xec4b8                      |             goto label_38;
                                                     |         }
    0x000ec2c8 addiu a0, zero, 0x10                  |         a0 = 0x10;
    0x000ec2cc addiu a0, zero, 0x20                  |         a0 = 0x20;
                                                     |         if (v0 == a0) {
    0x000ec2d0 beq v0, a0, 0xec76c                   |             goto label_39;
                                                     |         }
    0x000ec2d4 addiu v0, zero, 1                     |         v0 = 1;
                                                     |         if (v0 != a0) {
    0x000ec2d8 bne v0, a0, 0xec74c                   |             goto label_40;
                                                     |         }
    0x000ec2dc sw v0, 0x3c(s3)                       |         *((s3 + 15)) = v0;
                                                     | label_10:
    0x000ec2e0 lw v0, 0x1f8(s3)                      |         v0 = *(s3);
    0x000ec2e4 addiu a0, zero, 0x40                  |         a0 = 0x40;
                                                     |         if (v0 == a0) {
    0x000ec2e8 beql v0, a0, 0xec448                  |             goto label_41;
                                                     |         }
    0x000ec2ec addiu v0, zero, 2                     |         v0 = 2;
    0x000ec2f0 slti a0, v0, 0x41                     |         a0 = (v0 < 0x41) ? 1 : 0;
                                                     | label_7:
    0x000ec2f4 addiu a0, zero, 0x80                  |         a0 = 0x80;
                                                     |         if (a0 == 0) {
    0x000ec2f8 beqz a0, 0xec540                      |             goto label_42;
                                                     |         }
    0x000ec2fc addiu a0, zero, 0x10                  |         a0 = 0x10;
    0x000ec300 addiu a0, zero, 0x20                  |         a0 = 0x20;
                                                     |         if (v0 == a0) {
    0x000ec304 beq v0, a0, 0xec7a0                   |             goto label_43;
                                                     |         }
    0x000ec308 addiu v0, zero, 1                     |         v0 = 1;
                                                     |         if (v0 != a0) {
    0x000ec30c bne v0, a0, 0xec780                   |             goto label_44;
                                                     |         }
    0x000ec310 sw v0, 0x40(s3)                       |         *((s3 + 16)) = v0;
                                                     | label_8:
    0x000ec314 lw s3, -0x7040(gp)                    |         s3 = sym.artpec5_platform_stream_config_set;
    0x000ec318 move a1, s4                           |         a1 = s4;
    0x000ec31c move t9, s3                           |         t9 = s3;
    0x000ec320 move a0, fp                           |         a0 = fp;
    0x000ec324 bal 0xeb5dc                           |         sym_artpec5_platform_stream_config_set ();
    0x000ec328 move s6, v0                           |         s6 = v0;
    0x000ec32c addiu v0, zero, -0xff                 |         v0 = -0xff;
    0x000ec330 lw gp, 0x20(sp)                       |         gp = *(var_20h);
                                                     |         if (s6 == v0) {
    0x000ec334 beq s6, v0, 0xec558                   |             goto label_45;
                                                     |         }
                                                     |     }
                                                     | label_4:
    0x000ec338 lw t9, -0x61c4(gp)                    |     t9 = sym.imp.exit;
    0x000ec33c addiu a0, zero, 1                     |     a0 = 1;
    0x000ec340 jalr t9                               |     t9 ();
                                                     | label_25:
    0x000ec344 lw t9, -0x5e00(gp)                    |     t9 = sym.imp.ioctl;
    0x000ec348 lw a1, 0x28(sp)                       |     a1 = *(var_28h);
    0x000ec34c move a2, s2                           |     a2 = s2;
    0x000ec350 jalr t9                               |     t9 ();
    0x000ec354 lw gp, 0x20(sp)                       |     gp = *(var_20h);
                                                     |     if (v0 > 0) {
    0x000ec358 bgtz v0, 0xec13c                      |         goto label_3;
                                                     |     }
                                                     | label_26:
    0x000ec35c lw t9, -0x5b94(gp)                    |     t9 = sym.imp.__errno_location;
    0x000ec360 jalr t9                               |     t9 ();
    0x000ec364 nop                                   |     
    0x000ec368 lw gp, 0x20(sp)                       |     gp = *(var_20h);
    0x000ec36c lw t9, -0x5bc4(gp)                    |     t9 = sym.imp.strerror;
    0x000ec370 lw a0, (v0)                           |     a0 = *(v0);
    0x000ec374 jalr t9                               |     t9 ();
    0x000ec378 lw gp, 0x20(sp)                       |     gp = *(var_20h);
    0x000ec37c move a3, v0                           |     a3 = v0;
    0x000ec380 move a1, zero                         |     a1 = 0;
    0x000ec384 lw a2, -0x7da8(gp)                    |     a2 = *(gp);
    0x000ec388 lw t9, -0x7f7c(gp)                    |     t9 = sym.debug_output;
                                                     |     /* str.ioctl_CAM_IOC_STATBUF_ADD__s_n */
    0x000ec38c addiu a2, a2, 0x1944                  |     a2 += 0x1944;
    0x000ec390 addiu a0, zero, 4                     |     a0 = 4;
    0x000ec394 bal 0xf7988                           |     sym_debug_output ();
    0x000ec398 lw gp, 0x20(sp)                       |     gp = *(var_20h);
    0x000ec39c b 0xec338                             |     goto label_4;
                                                     | label_27:
    0x000ec3a0 lw t9, -0x5bac(gp)                    |     t9 = sym.imp.mmap
    0x000ec3a4 sw a0, 0x10(sp)                       |     *(var_10h) = a0;
    0x000ec3a8 sw v0, 0x14(sp)                       |     *(var_14h) = v0;
    0x000ec3ac addiu a3, zero, 1                     |     a3 = 1;
    0x000ec3b0 addiu a2, zero, 3                     |     a2 = 3;
    0x000ec3b4 move a0, zero                         |     a0 = 0;
    0x000ec3b8 jalr t9                               |     t9 ();
    0x000ec3bc move s7, v0                           |     s7 = v0;
    0x000ec3c0 addiu v0, zero, -1                    |     v0 = -1;
    0x000ec3c4 lw gp, 0x20(sp)                       |     gp = *(var_20h);
                                                     |     if (s7 != v0) {
    0x000ec3c8 bne s7, v0, 0xec178                   |         goto label_5;
                                                     |     }
                                                     | label_28:
    0x000ec3cc lw t9, -0x5b94(gp)                    |     t9 = sym.imp.__errno_location;
    0x000ec3d0 jalr t9                               |     t9 ();
    0x000ec3d4 nop                                   |     
    0x000ec3d8 lw gp, 0x20(sp)                       |     gp = *(var_20h);
    0x000ec3dc lw t9, -0x5bc4(gp)                    |     t9 = sym.imp.strerror;
    0x000ec3e0 lw a0, (v0)                           |     a0 = *(v0);
    0x000ec3e4 jalr t9                               |     t9 ();
    0x000ec3e8 lw gp, 0x20(sp)                       |     gp = *(var_20h);
    0x000ec3ec move a3, v0                           |     a3 = v0;
    0x000ec3f0 move a1, zero                         |     a1 = 0;
    0x000ec3f4 lw a2, -0x7da8(gp)                    |     a2 = *(gp);
    0x000ec3f8 lw t9, -0x7f7c(gp)                    |     t9 = sym.debug_output;
                                                     |     /* str.mmap___failed_for_statistics__s_n */
    0x000ec3fc addiu a2, a2, 0x1964                  |     a2 += 0x1964;
    0x000ec400 addiu a0, zero, 4                     |     a0 = 4;
    0x000ec404 bal 0xf7988                           |     sym_debug_output ();
    0x000ec408 lw gp, 0x20(sp)                       |     gp = *(var_20h);
    0x000ec40c b 0xec338                             |     goto label_4;
                                                     | label_34:
    0x000ec410 addiu a0, zero, 0x100                 |     a0 = aav.0x00000100;
                                                     |     if (v0 == a0) {
    0x000ec414 beq v0, a0, 0xec740                   |         goto label_46;
                                                     |     }
    0x000ec418 addiu a0, zero, 0x40                  |     a0 = 0x40;
                                                     |     if (v0 != a0) {
    0x000ec41c bne v0, a0, 0xec718                   |         goto label_36;
                                                     |     }
    0x000ec420 lw v0, 0x1ec(s3)                      |     v0 = *(s3);
    0x000ec424 sw a1, 0x38(s3)                       |     *((s3 + 14)) = a1;
                                                     |     if (v0 != a0) {
    0x000ec428 bne v0, a0, 0xec2bc                   |         goto label_6;
                                                     |     }
    0x000ec42c addiu v0, zero, 2                     |     v0 = 2;
                                                     | label_37:
    0x000ec430 sw v0, 0x3c(s3)                       |     *((s3 + 15)) = v0;
    0x000ec434 lw v0, 0x1f8(s3)                      |     v0 = *(s3);
    0x000ec438 addiu a0, zero, 0x40                  |     a0 = 0x40;
    0x000ec43c slti a0, v0, 0x41                     |     a0 = (v0 < 0x41) ? 1 : 0;
                                                     |     if (v0 != a0) {
    0x000ec440 bne v0, a0, 0xec2f4                   |         goto label_7;
                                                     |     }
    0x000ec444 addiu v0, zero, 2                     |     v0 = 2;
                                                     | label_41:
    0x000ec448 sw v0, 0x40(s3)                       |     *((s3 + 16)) = v0;
    0x000ec44c b 0xec314                             |     goto label_8;
                                                     | label_29:
    0x000ec450 lw t9, -0x5e00(gp)                    |     t9 = sym.imp.ioctl;
    0x000ec454 lui a1, 0x2000                        |     a1 = imp.g_str_equal;
    0x000ec458 move a2, a3                           |     a2 = a3;
    0x000ec45c addiu a1, a1, 0x2a90                  |     a1 += 0x2a90;
    0x000ec460 jalr t9                               |     t9 ();
    0x000ec464 lw gp, 0x20(sp)                       |     gp = *(var_20h);
                                                     |     if (v0 > 0) {
    0x000ec468 bgtz v0, 0xec1c0                      |         goto label_9;
                                                     |     }
                                                     | label_30:
    0x000ec46c lw t9, -0x5b94(gp)                    |     t9 = sym.imp.__errno_location;
    0x000ec470 jalr t9                               |     t9 ();
    0x000ec474 nop                                   |     
    0x000ec478 lw gp, 0x20(sp)                       |     gp = *(var_20h);
    0x000ec47c lw t9, -0x5bc4(gp)                    |     t9 = sym.imp.strerror;
    0x000ec480 lw a0, (v0)                           |     a0 = *(v0);
    0x000ec484 jalr t9                               |     t9 ();
    0x000ec488 lw gp, 0x20(sp)                       |     gp = *(var_20h);
    0x000ec48c sw v0, 0x10(sp)                       |     *(var_10h) = v0;
    0x000ec490 move a1, zero                         |     a1 = 0;
    0x000ec494 lw a3, -0x7da8(gp)                    |     a3 = *(gp);
    0x000ec498 lw a2, -0x7da8(gp)                    |     a2 = *(gp);
    0x000ec49c lw t9, -0x7f7c(gp)                    |     t9 = sym.debug_output;
                                                     |     /* str.platform_init_stat */
    0x000ec4a0 addiu a3, a3, 0x2144                  |     a3 += 0x2144;
                                                     |     /* str._s:_ioctl_CAM_IOC_ADD_VMEM_BUFFER__s_n */
    0x000ec4a4 addiu a2, a2, 0x1988                  |     a2 += 0x1988;
    0x000ec4a8 addiu a0, zero, 4                     |     a0 = 4;
    0x000ec4ac bal 0xf7988                           |     sym_debug_output ();
    0x000ec4b0 lw gp, 0x20(sp)                       |     gp = *(var_20h);
    0x000ec4b4 b 0xec338                             |     goto label_4;
                                                     | label_38:
    0x000ec4b8 addiu a0, zero, 0x100                 |     a0 = aav.0x00000100;
                                                     |     if (v0 == a0) {
    0x000ec4bc beq v0, a0, 0xec774                   |         goto label_47;
                                                     |     }
    0x000ec4c0 addiu v0, zero, 4                     |     v0 = 4;
                                                     |     if (v0 != a0) {
    0x000ec4c4 bne v0, a0, 0xec74c                   |         goto label_40;
                                                     |     }
    0x000ec4c8 sw v0, 0x3c(s3)                       |     *((s3 + 15)) = v0;
    0x000ec4cc b 0xec2e0                             |     goto label_10;
                                                     | label_31:
    0x000ec4d0 lw t9, -0x5bac(gp)                    |     t9 = sym.imp.mmap
    0x000ec4d4 sw a0, 0x10(sp)                       |     *(var_10h) = a0;
    0x000ec4d8 sw v0, 0x14(sp)                       |     *(var_14h) = v0;
    0x000ec4dc move a0, zero                         |     a0 = 0;
    0x000ec4e0 addiu a3, zero, 1                     |     a3 = 1;
    0x000ec4e4 addiu a2, zero, 3                     |     a2 = 3;
    0x000ec4e8 jalr t9                               |     t9 ();
    0x000ec4ec addiu a0, zero, -1                    |     a0 = -1;
    0x000ec4f0 lw gp, 0x20(sp)                       |     gp = *(var_20h);
    0x000ec4f4 sw v0, 0xe70(s7)                      |     *((s7 + 924)) = v0;
                                                     |     if (v0 != a0) {
    0x000ec4f8 bne v0, a0, 0xec204                   |         goto label_11;
                                                     |     }
                                                     | label_32:
    0x000ec4fc lw t9, -0x5b94(gp)                    |     t9 = sym.imp.__errno_location;
    0x000ec500 jalr t9                               |     t9 ();
    0x000ec504 nop                                   |     
    0x000ec508 lw gp, 0x20(sp)                       |     gp = *(var_20h);
    0x000ec50c lw t9, -0x5bc4(gp)                    |     t9 = sym.imp.strerror;
    0x000ec510 lw a0, (v0)                           |     a0 = *(v0);
    0x000ec514 jalr t9                               |     t9 ();
    0x000ec518 lw gp, 0x20(sp)                       |     gp = *(var_20h);
    0x000ec51c move a3, v0                           |     a3 = v0;
    0x000ec520 move a1, zero                         |     a1 = 0;
    0x000ec524 lw a2, -0x7da8(gp)                    |     a2 = *(gp);
    0x000ec528 lw t9, -0x7f7c(gp)                    |     t9 = sym.debug_output;
                                                     |     /* str.mmap___failed_for_AF_statistics__s_n */
    0x000ec52c addiu a2, a2, 0x19b0                  |     a2 += aav.0x000019b0;
    0x000ec530 addiu a0, zero, 4                     |     a0 = 4;
    0x000ec534 bal 0xf7988                           |     sym_debug_output ();
    0x000ec538 lw gp, 0x20(sp)                       |     gp = *(var_20h);
    0x000ec53c b 0xec338                             |     goto label_4;
                                                     | label_42:
    0x000ec540 addiu a0, zero, 0x100                 |     a0 = aav.0x00000100;
                                                     |     if (v0 == a0) {
    0x000ec544 beq v0, a0, 0xec7a8                   |         goto label_48;
                                                     |     }
    0x000ec548 addiu v0, zero, 4                     |     v0 = 4;
                                                     |     if (v0 != a0) {
    0x000ec54c bne v0, a0, 0xec780                   |         goto label_44;
                                                     |     }
    0x000ec550 sw v0, 0x40(s3)                       |     *((s3 + 16)) = v0;
    0x000ec554 b 0xec314                             |     goto label_8;
                                                     | label_45:
    0x000ec558 move a1, zero                         |     a1 = 0;
    0x000ec55c move t9, s0                           |     t9 = s0;
    0x000ec560 move a0, fp                           |     a0 = fp;
    0x000ec564 bal 0xeb8a4                           |     sym_a5_platform_stream_config_get ();
    0x000ec568 addiu a3, v0, 4                       |     a3 = v0 + 4;
    0x000ec56c move a1, a3                           |     a1 = a3;
    0x000ec570 sw a3, 0x2c(sp)                       |     *(var_2ch) = a3;
    0x000ec574 sw v0, 0x30(sp)                       |     *(var_30h) = v0;
    0x000ec578 move t9, s2                           |     t9 = s2;
    0x000ec57c move a0, fp                           |     a0 = fp;
    0x000ec580 bal 0xeb500                           |     sym_artpec5_platform_stream_config_get ();
    0x000ec584 lw a2, 0x30(sp)                       |     a2 = *(var_30h);
    0x000ec588 sltiu s4, s1, 1                       |     s4 = (s1 < 1) ? 1 : 0;
    0x000ec58c lw a3, 0x2c(sp)                       |     a3 = *(var_2ch);
    0x000ec590 sw s4, 0x4c(a2)                       |     *((a2 + 19)) = s4;
                                                     |     if (s1 != 0) {
    0x000ec594 bnez s1, 0xec7b4                      |         goto label_49;
                                                     |     }
    0x000ec598 addiu v0, zero, 1                     |     v0 = 1;
    0x000ec59c sw v0, 0x19c(a2)                      |     *(a2) = v0;
    0x000ec5a0 move a1, a3                           |     a1 = a3;
    0x000ec5a4 move t9, s3                           |     t9 = s3;
    0x000ec5a8 move a0, fp                           |     a0 = fp;
    0x000ec5ac bal 0xeb5dc                           |     sym_artpec5_platform_stream_config_set ();
    0x000ec5b0 lw gp, 0x20(sp)                       |     gp = *(var_20h);
                                                     |     if (v0 != s6) {
    0x000ec5b4 bne v0, s6, 0xec338                   |         goto label_4;
                                                     |     }
    0x000ec5b8 move a1, zero                         |     a1 = 0;
    0x000ec5bc move t9, s0                           |     t9 = s0;
    0x000ec5c0 move a0, fp                           |     a0 = fp;
    0x000ec5c4 bal 0xeb8a4                           |     sym_a5_platform_stream_config_get ();
    0x000ec5c8 addiu s6, v0, 4                       |     s6 = v0 + 4;
    0x000ec5cc sw v0, 0x2c(sp)                       |     *(var_2ch) = v0;
    0x000ec5d0 move a1, s6                           |     a1 = s6;
    0x000ec5d4 move t9, s2                           |     t9 = s2;
    0x000ec5d8 move a0, fp                           |     a0 = fp;
    0x000ec5dc bal 0xeb500                           |     sym_artpec5_platform_stream_config_get ();
    0x000ec5e0 lw a2, 0x2c(sp)                       |     a2 = *(var_2ch);
    0x000ec5e4 addiu v0, zero, 3                     |     v0 = 3;
                                                     | label_14:
    0x000ec5e8 move a1, s6                           |     a1 = s6;
    0x000ec5ec sw v0, 0xa8(a2)                       |     *((a2 + 42)) = v0;
    0x000ec5f0 move t9, s3                           |     t9 = s3;
    0x000ec5f4 move a0, fp                           |     a0 = fp;
    0x000ec5f8 bal 0xeb5dc                           |     sym_artpec5_platform_stream_config_set ();
    0x000ec5fc move s6, v0                           |     s6 = v0;
    0x000ec600 addiu v0, zero, -0xff                 |     v0 = -0xff;
    0x000ec604 lw gp, 0x20(sp)                       |     gp = *(var_20h);
                                                     |     if (s6 != v0) {
    0x000ec608 bne s6, v0, 0xec338                   |         goto label_4;
                                                     |     }
    0x000ec60c lw t9, 0x34(sp)                       |     t9 = *(var_34h);
    0x000ec610 move a1, s4                           |     a1 = s4;
    0x000ec614 move a0, fp                           |     a0 = fp;
    0x000ec618 jalr t9                               |     t9 ();
    0x000ec61c move s4, v0                           |     s4 = v0;
    0x000ec620 lw gp, 0x20(sp)                       |     gp = *(var_20h);
                                                     |     if (v0 != s6) {
    0x000ec624 bne v0, s6, 0xec338                   |         goto label_4;
                                                     |     }
    0x000ec628 move t9, s0                           |     t9 = s0;
    0x000ec62c move a1, zero                         |     a1 = 0;
    0x000ec630 move a0, fp                           |     a0 = fp;
    0x000ec634 bal 0xeb8a4                           |     sym_a5_platform_stream_config_get ();
    0x000ec638 addiu s0, v0, 4                       |     s0 = v0 + 4;
    0x000ec63c move a1, s0                           |     a1 = s0;
    0x000ec640 move a0, fp                           |     a0 = fp;
    0x000ec644 move t9, s2                           |     t9 = s2;
    0x000ec648 move s6, v0                           |     s6 = v0;
    0x000ec64c bal 0xeb500                           |     sym_artpec5_platform_stream_config_get ();
    0x000ec650 addiu v0, zero, 4                     |     v0 = 4;
                                                     |     if (s1 == 0) {
    0x000ec654 movn v0, zero, s1                     |         v0 = 0;
                                                     |     }
    0x000ec658 sw v0, 0x104(s6)                      |     *(s6) = v0;
    0x000ec65c move a1, s0                           |     a1 = s0;
    0x000ec660 move t9, s3                           |     t9 = s3;
    0x000ec664 move a0, fp                           |     a0 = fp;
    0x000ec668 bal 0xeb5dc                           |     sym_artpec5_platform_stream_config_set ();
    0x000ec66c lw gp, 0x20(sp)                       |     gp = *(var_20h);
                                                     |     if (v0 != s4) {
    0x000ec670 bne v0, s4, 0xec338                   |         goto label_4;
                                                     |     }
    0x000ec674 lw v0, 0xb4(fp)                       |     v0 = *(arg_b4h);
    0x000ec678 addiu s5, s5, 1                       |     s5++;
    0x000ec67c slt v0, s5, v0                        |     v0 = (s5 < v0) ? 1 : 0;
    0x000ec680 sll s6, s5, 8                         |     s6 = s5 << 8;
                                                     |     if (v0 != 0) {
    0x000ec684 bnez v0, 0xec07c                      |         goto label_12;
                                                     |     }
                                                     | label_23:
    0x000ec688 lw t9, -0x7014(gp)                    |     t9 = sym.purb_setup;
    0x000ec68c move a2, zero                         |     a2 = 0;
    0x000ec690 addiu a1, zero, 0xa0                  |     a1 = 0xa0;
    0x000ec694 move a0, fp                           |     a0 = fp;
    0x000ec698 bal 0xf57c8                           |     sym_purb_setup ();
    0x000ec69c lw gp, 0x20(sp)                       |     gp = *(var_20h);
                                                     |     if (v0 != 0) {
    0x000ec6a0 bnez v0, 0xec838                      |         goto label_50;
                                                     |     }
    0x000ec6a4 lw v0, -0x7da4(gp)                    |     v0 = *((gp - 8041));
    0x000ec6a8 lw ra, 0x6c(sp)                       |     ra = *(var_6ch);
    0x000ec6ac addiu v0, v0, 0x7eb0                  |     v0 += 0x7eb0;
    0x000ec6b0 sw v0, 0x10d0(fp)                     |     *(arg_10d0h) = v0;
    0x000ec6b4 lw v0, -0x7da4(gp)                    |     v0 = *((gp - 8041));
    0x000ec6b8 lw s7, 0x64(sp)                       |     s7 = *(var_64h);
                                                     |     /* esilref: 'Y&' */
    0x000ec6bc addiu v0, v0, 0x76b0                  |     v0 += 0x76b0;
    0x000ec6c0 sw v0, 0x10d4(fp)                     |     *(arg_10d4h) = v0;
    0x000ec6c4 addiu v0, zero, 0x2487                |     v0 = 0x2487;
    0x000ec6c8 sw v0, 0x10c8(fp)                     |     *(arg_10c8h) = v0;
    0x000ec6cc lui v0, 0xffff                        |     v0 = 0xffff00eb;
    0x000ec6d0 addiu v0, v0, 0xeb                    |     
    0x000ec6d4 sw v0, 0x10cc(fp)                     |     *(arg_10cch) = v0;
    0x000ec6d8 addiu v0, zero, 0x12                  |     v0 = 0x12;
    0x000ec6dc sw v0, 0x10c4(fp)                     |     *(arg_10c4h) = v0;
    0x000ec6e0 lw s6, 0x60(sp)                       |     s6 = *(var_60h);
    0x000ec6e4 lw v0, 0x3c(sp)                       |     v0 = *(var_3ch);
    0x000ec6e8 lw fp, 0x68(sp)                       |     fp = *(var_68h);
    0x000ec6ec lw s5, 0x5c(sp)                       |     s5 = *(var_5ch);
    0x000ec6f0 lw s4, 0x58(sp)                       |     s4 = *(var_58h);
    0x000ec6f4 lw s3, 0x54(sp)                       |     s3 = *(var_54h);
    0x000ec6f8 lw s2, 0x50(sp)                       |     s2 = *(var_50h);
    0x000ec6fc lw s1, 0x4c(sp)                       |     s1 = *(var_4ch);
    0x000ec700 lw s0, 0x48(sp)                       |     s0 = *(var_48h);
    0x000ec704 addiu sp, sp, 0x70                    |     
    0x000ec708 jr ra                                 |     return v0;
                                                     | label_33:
    0x000ec70c addiu v0, zero, 2                     |     v0 = 2;
    0x000ec710 sw v0, 0x38(s3)                       |     *((s3 + 14)) = v0;
    0x000ec714 b 0xec2ac                             |     goto label_13;
                                                     | label_36:
    0x000ec718 lw a2, -0x7da8(gp)                    |     a2 = *(gp);
    0x000ec71c lw t9, -0x7f7c(gp)                    |     t9 = sym.debug_output;
                                                     |     /* str.Unsupported_block_size */
    0x000ec720 addiu a2, a2, 0x19d4                  |     a2 += 0x19d4;
    0x000ec724 move a1, zero                         |     a1 = 0;
    0x000ec728 addiu a0, zero, 4                     |     a0 = 4;
    0x000ec72c bal 0xf7988                           |     sym_debug_output ();
    0x000ec730 lw gp, 0x20(sp)                       |     gp = *(var_20h);
    0x000ec734 b 0xec338                             |     goto label_4;
                                                     | label_35:
    0x000ec738 sw zero, 0x38(s3)                     |     *((s3 + 14)) = 0;
    0x000ec73c b 0xec2ac                             |     goto label_13;
                                                     | label_46:
    0x000ec740 addiu v0, zero, 3                     |     v0 = 3;
    0x000ec744 sw v0, 0x38(s3)                       |     *((s3 + 14)) = v0;
    0x000ec748 b 0xec2ac                             |     goto label_13;
                                                     | label_40:
    0x000ec74c lw a2, -0x7da8(gp)                    |     a2 = *(gp);
    0x000ec750 lw t9, -0x7f7c(gp)                    |     t9 = sym.debug_output;
                                                     |     /* str.BS2:_Unsupported_block_size */
    0x000ec754 addiu a2, a2, 0x19ec                  |     a2 += 0x19ec;
    0x000ec758 move a1, zero                         |     a1 = 0;
    0x000ec75c addiu a0, zero, 4                     |     a0 = 4;
    0x000ec760 bal 0xf7988                           |     sym_debug_output ();
    0x000ec764 lw gp, 0x20(sp)                       |     gp = *(var_20h);
    0x000ec768 b 0xec338                             |     goto label_4;
                                                     | label_39:
    0x000ec76c sw zero, 0x3c(s3)                     |     *((s3 + 15)) = 0;
    0x000ec770 b 0xec2e0                             |     goto label_10;
                                                     | label_47:
    0x000ec774 addiu v0, zero, 3                     |     v0 = 3;
    0x000ec778 sw v0, 0x3c(s3)                       |     *((s3 + 15)) = v0;
    0x000ec77c b 0xec2e0                             |     goto label_10;
                                                     | label_44:
    0x000ec780 lw a2, -0x7da8(gp)                    |     a2 = *(gp);
    0x000ec784 lw t9, -0x7f7c(gp)                    |     t9 = sym.debug_output;
                                                     |     /* str.BS3:_Unsupported_block_size */
    0x000ec788 addiu a2, a2, 0x1a08                  |     a2 += 0x1a08;
    0x000ec78c move a1, zero                         |     a1 = 0;
    0x000ec790 addiu a0, zero, 4                     |     a0 = 4;
    0x000ec794 bal 0xf7988                           |     sym_debug_output ();
    0x000ec798 lw gp, 0x20(sp)                       |     gp = *(var_20h);
    0x000ec79c b 0xec338                             |     goto label_4;
                                                     | label_43:
    0x000ec7a0 sw zero, 0x40(s3)                     |     *((s3 + 16)) = 0;
    0x000ec7a4 b 0xec314                             |     goto label_8;
                                                     | label_48:
    0x000ec7a8 addiu v0, zero, 3                     |     v0 = 3;
    0x000ec7ac sw v0, 0x40(s3)                       |     *((s3 + 16)) = v0;
    0x000ec7b0 b 0xec314                             |     goto label_8;
                                                     | label_49:
    0x000ec7b4 move a1, a3                           |     a1 = a3;
    0x000ec7b8 move t9, s3                           |     t9 = s3;
    0x000ec7bc move a0, fp                           |     a0 = fp;
    0x000ec7c0 bal 0xeb5dc                           |     sym_artpec5_platform_stream_config_set ();
    0x000ec7c4 lw gp, 0x20(sp)                       |     gp = *(var_20h);
                                                     |     if (v0 != s6) {
    0x000ec7c8 bne v0, s6, 0xec338                   |         goto label_4;
                                                     |     }
    0x000ec7cc move a1, zero                         |     a1 = 0;
    0x000ec7d0 move t9, s0                           |     t9 = s0;
    0x000ec7d4 move a0, fp                           |     a0 = fp;
    0x000ec7d8 bal 0xeb8a4                           |     sym_a5_platform_stream_config_get ();
    0x000ec7dc addiu s6, v0, 4                       |     s6 = v0 + 4;
    0x000ec7e0 sw v0, 0x2c(sp)                       |     *(var_2ch) = v0;
    0x000ec7e4 move a1, s6                           |     a1 = s6;
    0x000ec7e8 move t9, s2                           |     t9 = s2;
    0x000ec7ec move a0, fp                           |     a0 = fp;
    0x000ec7f0 bal 0xeb500                           |     sym_artpec5_platform_stream_config_get ();
    0x000ec7f4 move v0, zero                         |     v0 = 0;
    0x000ec7f8 lw a2, 0x2c(sp)                       |     a2 = *(var_2ch);
    0x000ec7fc b 0xec5e8                             |     goto label_14;
                                                     | label_15:
    0x000ec800 lw ra, 0x6c(sp)                       |     ra = *(var_6ch);
    0x000ec804 sw zero, 0x3c(sp)                     |     *(var_3ch) = 0;
    0x000ec808 lw v0, 0x3c(sp)                       |     v0 = *(var_3ch);
    0x000ec80c lw fp, 0x68(sp)                       |     fp = *(var_68h);
    0x000ec810 lw s7, 0x64(sp)                       |     s7 = *(var_64h);
    0x000ec814 lw s6, 0x60(sp)                       |     s6 = *(var_60h);
    0x000ec818 lw s5, 0x5c(sp)                       |     s5 = *(var_5ch);
    0x000ec81c lw s4, 0x58(sp)                       |     s4 = *(var_58h);
    0x000ec820 lw s3, 0x54(sp)                       |     s3 = *(var_54h);
    0x000ec824 lw s2, 0x50(sp)                       |     s2 = *(var_50h);
    0x000ec828 lw s1, 0x4c(sp)                       |     s1 = *(var_4ch);
    0x000ec82c lw s0, 0x48(sp)                       |     s0 = *(var_48h);
    0x000ec830 addiu sp, sp, 0x70                    |     
    0x000ec834 jr ra                                 |     return v0;
                                                     | label_50:
    0x000ec838 lw a2, -0x7da8(gp)                    |     a2 = *(gp);
    0x000ec83c lw t9, -0x7f7c(gp)                    |     t9 = sym.debug_output;
    0x000ec840 addiu a0, zero, 4                     |     a0 = 4;
                                                     |     /* str.Could_not_allocate_purbs__n */
    0x000ec844 addiu a2, a2, 0x1a24                  |     a2 += 0x1a24;
    0x000ec848 move a1, zero                         |     a1 = 0;
    0x000ec84c bal 0xf7988                           |     sym_debug_output ();
    0x000ec850 lw gp, 0x20(sp)                       |     gp = *(var_20h);
    0x000ec854 b 0xec338                             |     goto label_4;
                                                     | }
    ; assembly                               | /* r2dec pseudo code output */
                                             | /* /logs/firmware/unblob_extracted/firmware_extract/4325012-58052244.squashfs_v4_le_extract/usr/bin/image2d @ 0xf57c8 */
                                             | #include <stdint.h>
                                             |  
    ; (fcn) sym.purb_setup ()                | void purb_setup () {
    0x000f57c8 lui gp, 0x16                  |     
    0x000f57cc addiu gp, gp, -0x64f8         |     
    0x000f57d0 addu gp, gp, t9               |     gp += t9;
                                             |     if (a1 <= 0) {
    0x000f57d4 blez a1, 0xf5990              |         goto label_3;
                                             |     }
    0x000f57d8 nop                           |     
    0x000f57dc slti v0, a2, 0                |     v0 = (a2 < 0) ? 1 : 0;
    0x000f57e0 addiu sp, sp, -0x40           |     
                                             |     if (v0 == 0) {
    0x000f57e4 movn a2, zero, v0             |         a2 = 0;
                                             |     }
    0x000f57e8 ext v0, a2, 8, 8              |     __asm ("ext v0, a2, 8, 8");
    0x000f57ec sw s3, 0x2c(sp)               |     *(var_2ch) = s3;
    0x000f57f0 sll s3, v0, 1                 |     s3 = v0 << 1;
    0x000f57f4 sw s4, 0x30(sp)               |     *(var_30h) = s4;
    0x000f57f8 sw gp, 0x18(sp)               |     *(var_18h) = gp;
    0x000f57fc addu s3, s3, v0               |     s3 += v0;
    0x000f5800 lui s4, 0x4004                |     s4 = imp.g_str_equal;
    0x000f5804 sw s6, 0x38(sp)               |     *(var_38h) = s6;
    0x000f5808 sw s5, 0x34(sp)               |     *(var_34h) = s5;
    0x000f580c sw s2, 0x28(sp)               |     *(var_28h) = s2;
    0x000f5810 sw s1, 0x24(sp)               |     *(var_24h) = s1;
    0x000f5814 sw s0, 0x20(sp)               |     *(var_20h) = s0;
    0x000f5818 sw ra, 0x3c(sp)               |     *(var_3ch) = ra;
    0x000f581c move s0, a0                   |     s0 = a0;
    0x000f5820 move s5, a1                   |     s5 = a1;
    0x000f5824 sll s3, s3, 2                 |     s3 <<= 2;
    0x000f5828 addiu s1, a0, 0xa24           |     s1 = a0 + 0xa24;
    0x000f582c move s2, zero                 |     s2 = 0;
    0x000f5830 addiu s4, s4, 0x2a83          |     s4 += 0x2a83;
    0x000f5834 addiu s6, zero, -1            |     s6 = -1;
    0x000f5838 b 0xf5898                     |     
                                             |     while (t9 != 0) {
    0x000f583c move a1, v0                   |         a1 = v0;
    0x000f5840 jalr t9                       |         t9 ();
    0x000f5844 lw gp, 0x18(sp)               |         gp = *(var_18h);
    0x000f5848 addiu a3, zero, 1             |         a3 = 1;
    0x000f584c addiu a2, zero, 3             |         a2 = 3;
    0x000f5850 addiu a1, zero, 0x14          |         a1 = 0x14;
    0x000f5854 move a0, zero                 |         a0 = 0;
                                             |         if (v0 <= 0) {
    0x000f5858 blez v0, 0xf58e0              |             goto label_4;
                                             |         }
                                             | label_0:
    0x000f585c lw v1, 0x3c(s0)               |         v1 = *((s0 + 15));
    0x000f5860 lw t9, 0x18(s0)               |         t9 = *((s0 + 6));
    0x000f5864 lwx v1, s3(v1)                |         __asm ("lwx v1, s3(v1)");
                                             |         if (t9 == 0) {
    0x000f5868 beqz t9, 0xf5924              |             goto label_5;
                                             |         }
    0x000f586c sw v0, 0x14(sp)               |         *(var_14h) = v0;
    0x000f5870 sw v1, 0x10(sp)               |         *(var_10h) = v1;
    0x000f5874 jalr t9                       |         t9 ();
    0x000f5878 addiu s2, s2, 1               |         s2++;
    0x000f587c lw gp, 0x18(sp)               |         gp = *(var_18h);
    0x000f5880 sw v0, (s1)                   |         *(s1) = v0;
                                             |         if (v0 == s6) {
    0x000f5884 beq v0, s6, 0xf5954           |             goto label_6;
                                             |         }
                                             | label_1:
    0x000f5888 addiu v0, zero, 1             |         v0 = 1;
    0x000f588c sw v0, 4(s1)                  |         *((s1 + 1)) = v0;
    0x000f5890 addiu s1, s1, 8               |         s1 += 8;
                                             |         if (s5 == s2) {
    0x000f5894 beq s5, s2, 0xf5964           |             goto label_7;
                                             |         }
    0x000f5898 lw a1, 0x3c(s0)               |         a1 = *((s0 + 15));
    0x000f589c lw t9, 0x14(s0)               |         t9 = *((s0 + 5));
    0x000f58a0 addiu a3, zero, 0x96          |         a3 = 0x96;
    0x000f58a4 move a2, s4                   |         a2 = s4;
    0x000f58a8 move a0, s0                   |         a0 = s0;
    0x000f58ac lwx v0, s3(a1)                |         __asm ("lwx v0, s3(a1)");
    0x000f58b0 bnez t9, 0xf583c              |         
                                             |     }
    0x000f58b4 lw t9, -0x5e00(gp)            |     t9 = sym.imp.ioctl;
    0x000f58b8 move a1, s4                   |     a1 = s4;
    0x000f58bc move a0, v0                   |     a0 = v0;
    0x000f58c0 addiu a2, zero, 0x96          |     a2 = 0x96;
    0x000f58c4 jalr t9                       |     t9 ();
    0x000f58c8 lw gp, 0x18(sp)               |     gp = *(var_18h);
    0x000f58cc addiu a3, zero, 1             |     a3 = 1;
    0x000f58d0 addiu a2, zero, 3             |     a2 = 3;
    0x000f58d4 addiu a1, zero, 0x14          |     a1 = 0x14;
    0x000f58d8 move a0, zero                 |     a0 = 0;
                                             |     if (v0 > 0) {
    0x000f58dc bgtz v0, 0xf585c              |         goto label_0;
                                             |     }
                                             | label_4:
    0x000f58e0 lw a2, -0x7da8(gp)            |     a2 = *(gp);
    0x000f58e4 lw t9, -0x7f7c(gp)            |     t9 = sym.debug_output;
                                             |     /* str.ioctl_CAM_IOC_PURB_ADD_failed */
    0x000f58e8 addiu a2, a2, 0x28cc          |     a2 += 0x28cc;
                                             | label_2:
    0x000f58ec move a1, zero                 |     a1 = 0;
    0x000f58f0 addiu a0, zero, 4             |     a0 = 4;
    0x000f58f4 bal 0xf7988                   |     sym_debug_output ();
    0x000f58f8 lw ra, 0x3c(sp)               |     ra = *(var_3ch);
    0x000f58fc lw s6, 0x38(sp)               |     s6 = *(var_38h);
    0x000f5900 lw s5, 0x34(sp)               |     s5 = *(var_34h);
    0x000f5904 lw s4, 0x30(sp)               |     s4 = *(var_30h);
    0x000f5908 lw s3, 0x2c(sp)               |     s3 = *(var_2ch);
    0x000f590c lw s2, 0x28(sp)               |     s2 = *(var_28h);
    0x000f5910 lw s1, 0x24(sp)               |     s1 = *(var_24h);
    0x000f5914 lw s0, 0x20(sp)               |     s0 = *(var_20h);
    0x000f5918 addiu v0, zero, -1            |     v0 = -1;
    0x000f591c addiu sp, sp, 0x40            |     
    0x000f5920 jr ra                         |     return v0;
                                             | label_5:
    0x000f5924 lw t9, -0x5bac(gp)            |     t9 = sym.imp.mmap
    0x000f5928 sw v0, 0x14(sp)               |     *(var_14h) = v0;
    0x000f592c sw v1, 0x10(sp)               |     *(var_10h) = v1;
    0x000f5930 addiu a3, zero, 1             |     a3 = 1;
    0x000f5934 addiu a2, zero, 3             |     a2 = 3;
    0x000f5938 addiu a1, zero, 0x14          |     a1 = 0x14;
    0x000f593c move a0, zero                 |     a0 = 0;
    0x000f5940 jalr t9                       |     t9 ();
    0x000f5944 addiu s2, s2, 1               |     s2++;
    0x000f5948 lw gp, 0x18(sp)               |     gp = *(var_18h);
    0x000f594c sw v0, (s1)                   |     *(s1) = v0;
                                             |     if (v0 != s6) {
    0x000f5950 bne v0, s6, 0xf5888           |         goto label_1;
                                             |     }
                                             | label_6:
    0x000f5954 lw a2, -0x7da8(gp)            |     a2 = *(gp);
    0x000f5958 lw t9, -0x7f7c(gp)            |     t9 = sym.debug_output;
                                             |     /* str.mmap___failed_for_purbs_n */
    0x000f595c addiu a2, a2, 0x28ec          |     a2 += 0x28ec;
    0x000f5960 b 0xf58ec                     |     goto label_2;
                                             | label_7:
    0x000f5964 lw ra, 0x3c(sp)               |     ra = *(var_3ch);
    0x000f5968 lw s6, 0x38(sp)               |     s6 = *(var_38h);
    0x000f596c lw s5, 0x34(sp)               |     s5 = *(var_34h);
    0x000f5970 lw s4, 0x30(sp)               |     s4 = *(var_30h);
    0x000f5974 lw s3, 0x2c(sp)               |     s3 = *(var_2ch);
    0x000f5978 lw s2, 0x28(sp)               |     s2 = *(var_28h);
    0x000f597c lw s1, 0x24(sp)               |     s1 = *(var_24h);
    0x000f5980 lw s0, 0x20(sp)               |     s0 = *(var_20h);
    0x000f5984 move v0, zero                 |     v0 = 0;
    0x000f5988 addiu sp, sp, 0x40            |     
    0x000f598c jr ra                         |     return v0;
                                             | label_3:
    0x000f5990 move v0, zero                 |     v0 = 0;
    0x000f5994 jr ra                         |     return v0;
                                             | }

[*] Function mmap used 7 times image2d