[*] Binary protection state of indexer

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


[*] Function printf tear down of indexer

    ; assembly                               | /* r2dec pseudo code output */
                                             | /* /logs/firmware/unblob_extracted/firmware_extract/4325012-58052244.squashfs_v4_le_extract/usr/bin/indexer @ 0x1cb90 */
                                             | #include <stdint.h>
                                             |  
    ; (fcn) fcn.0001cb90 ()                  | void fcn_0001cb90 () {
    0x0001cb90 lui gp, 7                     |     
    0x0001cb94 addiu gp, gp, -0x6a90         |     
    0x0001cb98 addu gp, gp, t9               |     gp += t9;
    0x0001cb9c addiu sp, sp, -0x40           |     
    0x0001cba0 sw gp, 0x18(sp)               |     *(var_18h) = gp;
    0x0001cba4 sw ra, 0x3c(sp)               |     *(var_3ch) = ra;
    0x0001cba8 sw s5, 0x38(sp)               |     *(var_38h) = s5;
    0x0001cbac sw s4, 0x34(sp)               |     *(var_34h) = s4;
    0x0001cbb0 sw s3, 0x30(sp)               |     *(var_30h) = s3;
    0x0001cbb4 sw s2, 0x2c(sp)               |     *(var_2ch) = s2;
    0x0001cbb8 sw s1, 0x28(sp)               |     *(var_28h) = s1;
    0x0001cbbc sw s0, 0x24(sp)               |     *(var_24h) = s0;
    0x0001cbc0 move v0, a1                   |     v0 = a1;
                                             |     if (a0 == 0) {
    0x0001cbc4 beqz a0, 0x1cce8              |         goto label_1;
                                             |     }
    0x0001cbc8 lw a1, -0x7fd8(gp)            |     a1 = *(gp);
    0x0001cbcc lw t9, -0x7380(gp)            |     t9 = sym.imp.g_strsplit;
    0x0001cbd0 move s0, a0                   |     s0 = a0;
    0x0001cbd4 addiu a2, zero, -1            |     a2 = -1;
    0x0001cbd8 move a0, v0                   |     a0 = v0;
                                             |     /* esilref: '' */
    0x0001cbdc addiu a1, a1, -0x2d24         |     a1 += -aav.0x00002d24;
    0x0001cbe0 jalr t9                       |     t9 ();
    0x0001cbe4 lw a0, (v0)                   |     a0 = *(v0);
    0x0001cbe8 lw gp, 0x18(sp)               |     gp = *(var_18h);
    0x0001cbec move s4, v0                   |     s4 = v0;
                                             |     if (a0 == 0) {
    0x0001cbf0 beqz a0, 0x1cc98              |         goto label_2;
                                             |     }
    0x0001cbf4 lw t9, -0x7edc(gp)            |     t9 = sym.sql_sanitize_string;
    0x0001cbf8 move s1, s4                   |     s1 = s4;
    0x0001cbfc bal 0x3a184                   |     sym_sql_sanitize_string ();
    0x0001cc00 lw gp, 0x18(sp)               |     gp = *(var_18h);
    0x0001cc04 move s2, v0                   |     s2 = v0;
    0x0001cc08 addiu s5, zero, 0x2c          |     s5 = 0x2c;
    0x0001cc0c lw s3, -0x7f50(gp)            |     s3 = *((gp - 8148));
                                             |     /* esilref: ''&s'' */
    0x0001cc10 addiu s3, s3, -0x4cd0         |     s3 += -0x4cd0;
                                             |     do {
                                             | label_0:
    0x0001cc14 lw t9, -0x772c(gp)            |         t9 = sym.imp.g_string_append_printf
    0x0001cc18 lw a2, (s2)                   |         a2 = *(s2);
    0x0001cc1c move a1, s3                   |         a1 = s3;
    0x0001cc20 move a0, s0                   |         a0 = s0;
    0x0001cc24 jalr t9                       |         t9 ();
    0x0001cc28 lw gp, 0x18(sp)               |         gp = *(var_18h);
    0x0001cc2c addiu s1, s1, 4               |         s1 += 4;
    0x0001cc30 move a0, s2                   |         a0 = s2;
    0x0001cc34 lw t9, -0x75a8(gp)            |         t9 = sym.imp.g_string_free;
    0x0001cc38 addiu a1, zero, 1             |         a1 = 1;
    0x0001cc3c jalr t9                       |         t9 ();
    0x0001cc40 lw a0, (s1)                   |         a0 = *(s1);
    0x0001cc44 lw gp, 0x18(sp)               |         gp = *(var_18h);
                                             |         if (a0 == 0) {
    0x0001cc48 beqz a0, 0x1cc98              |             goto label_2;
                                             |         }
    0x0001cc4c lw t9, -0x7edc(gp)            |         t9 = sym.sql_sanitize_string;
    0x0001cc50 bal 0x3a184                   |         sym_sql_sanitize_string ();
    0x0001cc54 nop                           |         
    0x0001cc58 lw a0, 4(s0)                  |         a0 = *((s0 + 1));
    0x0001cc5c lw v1, 8(s0)                  |         v1 = *((s0 + 2));
    0x0001cc60 addiu a1, a0, 1               |         a1 = a0 + 1;
    0x0001cc64 sltu v1, a1, v1               |         v1 = (a1 < v1) ? 1 : 0;
    0x0001cc68 lw gp, 0x18(sp)               |         gp = *(var_18h);
    0x0001cc6c move s2, v0                   |         s2 = v0;
                                             |         if (v1 == 0) {
    0x0001cc70 beqz v1, 0x1cccc              |             goto label_3;
                                             |         }
    0x0001cc74 lw v0, (s0)                   |         v0 = *(s0);
    0x0001cc78 sw a1, 4(s0)                  |         *((s0 + 1)) = a1;
    0x0001cc7c addu a0, v0, a0               |         a0 = v0 + a0;
    0x0001cc80 sb s5, (a0)                   |         *(a0) = s5;
    0x0001cc84 lw v0, (s0)                   |         v0 = *(s0);
    0x0001cc88 lw v1, 4(s0)                  |         v1 = *((s0 + 1));
    0x0001cc8c addu v0, v0, v1               |         v0 += v1;
    0x0001cc90 sb zero, (v0)                 |         *(v0) = 0;
    0x0001cc94 b 0x1cc14                     |         
                                             |     } while (1);
                                             | label_2:
    0x0001cc98 lw t9, -0x7468(gp)            |     t9 = *(gp);
    0x0001cc9c move a0, s4                   |     a0 = s4;
    0x0001cca0 jalr t9                       |     t9 ();
    0x0001cca4 lw ra, 0x3c(sp)               |     ra = *(var_3ch);
    0x0001cca8 move v0, s0                   |     v0 = s0;
    0x0001ccac lw s5, 0x38(sp)               |     s5 = *(var_38h);
    0x0001ccb0 lw s4, 0x34(sp)               |     s4 = *(var_34h);
    0x0001ccb4 lw s3, 0x30(sp)               |     s3 = *(var_30h);
    0x0001ccb8 lw s2, 0x2c(sp)               |     s2 = *(var_2ch);
    0x0001ccbc lw s1, 0x28(sp)               |     s1 = *(var_28h);
    0x0001ccc0 lw s0, 0x24(sp)               |     s0 = *(var_24h);
    0x0001ccc4 addiu sp, sp, 0x40            |     
    0x0001ccc8 jr ra                         |     return v0;
                                             | label_3:
    0x0001cccc lw t9, -0x739c(gp)            |     t9 = sym.imp.g_string_insert_c;
    0x0001ccd0 addiu a2, zero, 0x2c          |     a2 = 0x2c;
    0x0001ccd4 addiu a1, zero, -1            |     a1 = -1;
    0x0001ccd8 move a0, s0                   |     a0 = s0;
    0x0001ccdc jalr t9                       |     t9 ();
    0x0001cce0 lw gp, 0x18(sp)               |     gp = *(var_18h);
    0x0001cce4 b 0x1cc14                     |     goto label_0;
                                             | label_1:
    0x0001cce8 lw v0, -0x7fd8(gp)            |     v0 = *(gp);
    0x0001ccec lw a3, -0x7fd8(gp)            |     a3 = *(gp);
    0x0001ccf0 lw a1, -0x7fd8(gp)            |     a1 = *(gp);
                                             |     /* str.splitted_ids */
    0x0001ccf4 addiu v0, v0, 0xca8           |     v0 += 0xca8;
    0x0001ccf8 lw t9, -0x76c0(gp)            |     t9 = sym.imp.g_assertion_message_expr;
    0x0001ccfc sw v0, 0x10(sp)               |     *(var_10h) = v0;
                                             |     /* str.split_sanitize_recording_ids */
    0x0001cd00 addiu a3, a3, 0x2f18          |     a3 += 0x2f18;
    0x0001cd04 addiu a2, zero, 0xa89         |     a2 = 0xa89;
                                             |     /* str.database_sql_interface.c */
    0x0001cd08 addiu a1, a1, 0x820           |     a1 += 0x820;
    0x0001cd0c jalr t9                       |     return t9 ();
                                             | }
    ; assembly                               | /* r2dec pseudo code output */
                                             | /* /logs/firmware/unblob_extracted/firmware_extract/4325012-58052244.squashfs_v4_le_extract/usr/bin/indexer @ 0x3a9a0 */
                                             | #include <stdint.h>
                                             |  
    ; (fcn) fcn.0003a9a0 ()                  | void fcn_0003a9a0 () {
    0x0003a9a0 lui gp, 5                     |     
    0x0003a9a4 addiu gp, gp, -0x48a0         |     
    0x0003a9a8 addu gp, gp, t9               |     gp += t9;
    0x0003a9ac addiu sp, sp, -0x28           |     
    0x0003a9b0 lw t9, -0x7c5c(gp)            |     t9 = sym.sanitize_quote;
    0x0003a9b4 sw ra, 0x24(sp)               |     *(var_24h) = ra;
    0x0003a9b8 sw s1, 0x20(sp)               |     *(var_20h) = s1;
    0x0003a9bc sw s0, 0x1c(sp)               |     *(var_1ch) = s0;
    0x0003a9c0 sw gp, 0x10(sp)               |     *(var_10h) = gp;
    0x0003a9c4 move s1, a0                   |     s1 = a0;
    0x0003a9c8 move a0, a1                   |     a0 = a1;
    0x0003a9cc bal 0x3a2f0                   |     sym_sanitize_quote ();
    0x0003a9d0 lw gp, 0x10(sp)               |     gp = *(var_10h);
    0x0003a9d4 lw a2, (v0)                   |     a2 = *(v0);
    0x0003a9d8 move a0, s1                   |     a0 = s1;
    0x0003a9dc lw a1, -0x7fd8(gp)            |     a1 = *(gp);
    0x0003a9e0 lw t9, -0x772c(gp)            |     t9 = sym.imp.g_string_append_printf
                                             |     /* str.____s_ */
    0x0003a9e4 addiu a1, a1, 0x5f10          |     a1 += 0x5f10;
    0x0003a9e8 move s0, v0                   |     s0 = v0;
    0x0003a9ec jalr t9                       |     t9 ();
    0x0003a9f0 lw gp, 0x10(sp)               |     gp = *(var_10h);
    0x0003a9f4 lw ra, 0x24(sp)               |     ra = *(var_24h);
    0x0003a9f8 lw s1, 0x20(sp)               |     s1 = *(var_20h);
    0x0003a9fc move a0, s0                   |     a0 = s0;
    0x0003aa00 lw t9, -0x75a8(gp)            |     t9 = sym.imp.g_string_free;
    0x0003aa04 lw s0, 0x1c(sp)               |     s0 = *(var_1ch);
    0x0003aa08 addiu a1, zero, 1             |     a1 = 1;
    0x0003aa0c addiu sp, sp, 0x28            |     
    0x0003aa10 jr t9                         |     return t9 ();
                                             | }
    ; assembly                               | /* r2dec pseudo code output */
                                             | /* /logs/firmware/unblob_extracted/firmware_extract/4325012-58052244.squashfs_v4_le_extract/usr/bin/indexer @ 0x3aa14 */
                                             | #include <stdint.h>
                                             |  
    ; (fcn) fcn.0003aa14 ()                  | void fcn_0003aa14 () {
    0x0003aa14 lui gp, 5                     |     
    0x0003aa18 addiu gp, gp, -0x4914         |     
    0x0003aa1c addu gp, gp, t9               |     gp += t9;
    0x0003aa20 addiu sp, sp, -0x48           |     
    0x0003aa24 lw t9, -0x71b4(gp)            |     t9 = sym.imp.g_string_new;
    0x0003aa28 sw s4, 0x3c(sp)               |     *(var_3ch) = s4;
    0x0003aa2c lw s4, -0x71a0(gp)            |     s4 = *((gp - 7272));
    0x0003aa30 sw s0, 0x2c(sp)               |     *(var_2ch) = s0;
    0x0003aa34 lw s0, -0x7fd8(gp)            |     s0 = *(gp);
    0x0003aa38 lw v0, (s4)                   |     v0 = *(s4);
    0x0003aa3c sw ra, 0x44(sp)               |     *(var_44h) = ra;
    0x0003aa40 sw gp, 0x10(sp)               |     *(var_10h) = gp;
    0x0003aa44 sw a2, 0x50(sp)               |     *(arg_50h) = a2;
    0x0003aa48 sw a3, 0x54(sp)               |     *(arg_54h) = a3;
    0x0003aa4c sw a1, 0x1c(sp)               |     *(var_1ch) = a1;
    0x0003aa50 sw s5, 0x40(sp)               |     *(var_40h) = s5;
    0x0003aa54 sw s3, 0x38(sp)               |     *(var_38h) = s3;
    0x0003aa58 sw s2, 0x34(sp)               |     *(var_34h) = s2;
    0x0003aa5c sw s1, 0x30(sp)               |     *(var_30h) = s1;
    0x0003aa60 move s2, a0                   |     s2 = a0;
    0x0003aa64 sw v0, 0x24(sp)               |     *(var_24h) = v0;
    0x0003aa68 addiu a0, s0, 0x403c          |     a0 = s0 + 0x403c;
    0x0003aa6c jalr t9                       |     t9 ();
    0x0003aa70 lw gp, 0x10(sp)               |     gp = *(var_10h);
    0x0003aa74 addiu a0, s0, 0x403c          |     a0 = s0 + 0x403c;
    0x0003aa78 move s1, v0                   |     s1 = v0;
    0x0003aa7c lw t9, -0x71b4(gp)            |     t9 = sym.imp.g_string_new;
    0x0003aa80 addiu s0, sp, 0x54            |     s0 = sp + 0x54;
    0x0003aa84 jalr t9                       |     t9 ();
    0x0003aa88 lw gp, 0x10(sp)               |     gp = *(var_10h);
    0x0003aa8c lw a1, 0x1c(sp)               |     a1 = *(var_1ch);
    0x0003aa90 move a0, s2                   |     a0 = s2;
    0x0003aa94 lw t9, -0x7cec(gp)            |     t9 = sym.sql_table_with_storage_name;
    0x0003aa98 move s3, v0                   |     s3 = v0;
    0x0003aa9c bal 0x39fd0                   |     sym_sql_table_with_storage_name ();
    0x0003aaa0 lw gp, 0x10(sp)               |     gp = *(var_10h);
    0x0003aaa4 move s5, v0                   |     s5 = v0;
    0x0003aaa8 lw s2, -0x7fd8(gp)            |     s2 = *(gp);
                                             |     /* str._s__ */
    0x0003aaac addiu s2, s2, 0x5f18          |     s2 += 0x5f18;
    0x0003aab0 b 0x3aac4                     |     
                                             |     while (a2 != 0) {
    0x0003aab4 move a1, s2                   |         a1 = s2;
    0x0003aab8 move a0, s1                   |         a0 = s1;
    0x0003aabc jalr t9                       |         t9 ();
    0x0003aac0 lw gp, 0x10(sp)               |         gp = *(var_10h);
    0x0003aac4 sw s0, 0x20(sp)               |         *(var_20h) = s0;
    0x0003aac8 addiu s0, s0, 4               |         s0 += 4;
    0x0003aacc lw a2, -8(s0)                 |         a2 = *((s0 - 2));
    0x0003aad0 lw t9, -0x772c(gp)            |         t9 = sym.imp.g_string_append_printf
    0x0003aad4 bnez a2, 0x3aab4              |         
                                             |     }
    0x0003aad8 lw a1, 4(s1)                  |     a1 = *((s1 + 1));
    0x0003aadc lw t9, -0x7194(gp)            |     t9 = sym.imp.g_string_truncate;
    0x0003aae0 addiu a1, a1, -2              |     a1 += -2;
    0x0003aae4 move a0, s1                   |     a0 = s1;
    0x0003aae8 jalr t9                       |     t9 ();
    0x0003aaec lw gp, 0x10(sp)               |     gp = *(var_10h);
    0x0003aaf0 lw a2, (v0)                   |     a2 = *(v0);
    0x0003aaf4 move a3, s5                   |     a3 = s5;
    0x0003aaf8 lw a1, -0x7fd8(gp)            |     a1 = *(gp);
    0x0003aafc lw t9, -0x772c(gp)            |     t9 = sym.imp.g_string_append_printf
                                             |     /* str.SELECT__s_FROM__s */
    0x0003ab00 addiu a1, a1, 0x5f20          |     a1 += 0x5f20;
    0x0003ab04 move a0, s3                   |     a0 = s3;
    0x0003ab08 move s0, v0                   |     s0 = v0;
    0x0003ab0c jalr t9                       |     t9 ();
    0x0003ab10 lw gp, 0x10(sp)               |     gp = *(var_10h);
    0x0003ab14 lw t9, -0x74c8(gp)            |     t9 = *((gp - 7474));
    0x0003ab18 move a0, s5                   |     a0 = s5;
    0x0003ab1c jalr t9                       |     t9 ();
    0x0003ab20 lw gp, 0x10(sp)               |     gp = *(var_10h);
    0x0003ab24 move a0, s0                   |     a0 = s0;
    0x0003ab28 lw t9, -0x75a8(gp)            |     t9 = sym.imp.g_string_free;
    0x0003ab2c addiu a1, zero, 1             |     a1 = 1;
    0x0003ab30 jalr t9                       |     t9 ();
    0x0003ab34 lw a0, 0x24(sp)               |     a0 = *(var_24h);
    0x0003ab38 lw v1, (s4)                   |     v1 = *(s4);
    0x0003ab3c lw gp, 0x10(sp)               |     gp = *(var_10h);
    0x0003ab40 move v0, s3                   |     v0 = s3;
                                             |     if (a0 == v1) {
    0x0003ab44 bne a0, v1, 0x3ab6c           |         
    0x0003ab48 lw ra, 0x44(sp)               |         ra = *(var_44h);
    0x0003ab4c lw s5, 0x40(sp)               |         s5 = *(var_40h);
    0x0003ab50 lw s4, 0x3c(sp)               |         s4 = *(var_3ch);
    0x0003ab54 lw s3, 0x38(sp)               |         s3 = *(var_38h);
    0x0003ab58 lw s2, 0x34(sp)               |         s2 = *(var_34h);
    0x0003ab5c lw s1, 0x30(sp)               |         s1 = *(var_30h);
    0x0003ab60 lw s0, 0x2c(sp)               |         s0 = *(var_2ch);
    0x0003ab64 addiu sp, sp, 0x48            |         
    0x0003ab68 jr ra                         |         return v0;
                                             |     }
    0x0003ab6c lw t9, -0x7494(gp)            |     t9 = sym.imp.__stack_chk_fail;
    0x0003ab70 jalr t9                       |     t9 ();
    0x0003ab74 nop                           |     
                                             | }
    ; assembly                               | /* r2dec pseudo code output */
                                             | /* /logs/firmware/unblob_extracted/firmware_extract/4325012-58052244.squashfs_v4_le_extract/usr/bin/indexer @ 0x3ab78 */
                                             | #include <stdint.h>
                                             |  
    ; (fcn) fcn.0003ab78 ()                  | void fcn_0003ab78 () {
    0x0003ab78 lui gp, 5                     |     
    0x0003ab7c addiu gp, gp, -0x4a78         |     
    0x0003ab80 addu gp, gp, t9               |     gp += t9;
    0x0003ab84 addiu sp, sp, -0x50           |     
    0x0003ab88 lw t9, -0x71b4(gp)            |     t9 = sym.imp.g_string_new;
    0x0003ab8c sw s4, 0x40(sp)               |     *(var_40h_2) = s4;
    0x0003ab90 lw s4, -0x71a0(gp)            |     s4 = *((gp - 7272));
    0x0003ab94 sw s0, 0x30(sp)               |     *(var_30h_2) = s0;
    0x0003ab98 lw s0, -0x7fd8(gp)            |     s0 = *(gp);
    0x0003ab9c lw v0, (s4)                   |     v0 = *(s4);
    0x0003aba0 sw ra, 0x4c(sp)               |     *(var_4ch) = ra;
    0x0003aba4 sw gp, 0x18(sp)               |     *(var_18h) = gp;
    0x0003aba8 sw a3, 0x5c(sp)               |     *(var_5ch) = a3;
    0x0003abac sw a1, 0x24(sp)               |     *(var_24h_2) = a1;
    0x0003abb0 sw s6, 0x48(sp)               |     *(var_48h) = s6;
    0x0003abb4 sw s5, 0x44(sp)               |     *(var_44h_2) = s5;
    0x0003abb8 sw s3, 0x3c(sp)               |     *(var_3ch_2) = s3;
    0x0003abbc sw s2, 0x38(sp)               |     *(var_38h_2) = s2;
    0x0003abc0 sw s1, 0x34(sp)               |     *(var_34h_2) = s1;
    0x0003abc4 move s2, a0                   |     s2 = a0;
    0x0003abc8 sw v0, 0x2c(sp)               |     *(var_2ch_2) = v0;
    0x0003abcc addiu a0, s0, 0x403c          |     a0 = s0 + 0x403c;
    0x0003abd0 move s6, a2                   |     s6 = a2;
    0x0003abd4 jalr t9                       |     t9 ();
    0x0003abd8 lw gp, 0x18(sp)               |     gp = *(var_18h);
    0x0003abdc addiu a0, s0, 0x403c          |     a0 = s0 + 0x403c;
    0x0003abe0 move s1, v0                   |     s1 = v0;
    0x0003abe4 lw t9, -0x71b4(gp)            |     t9 = sym.imp.g_string_new;
    0x0003abe8 addiu s0, sp, 0x60            |     s0 = sp + 0x60;
    0x0003abec jalr t9                       |     t9 ();
    0x0003abf0 lw gp, 0x18(sp)               |     gp = *(var_18h);
    0x0003abf4 lw a1, 0x24(sp)               |     a1 = *(var_24h_2);
    0x0003abf8 move a0, s2                   |     a0 = s2;
    0x0003abfc lw t9, -0x7cec(gp)            |     t9 = sym.sql_table_with_storage_name;
    0x0003ac00 move s3, v0                   |     s3 = v0;
    0x0003ac04 bal 0x39fd0                   |     sym_sql_table_with_storage_name ();
    0x0003ac08 lw gp, 0x18(sp)               |     gp = *(var_18h);
    0x0003ac0c move s5, v0                   |     s5 = v0;
    0x0003ac10 lw s2, -0x7fd8(gp)            |     s2 = *(gp);
                                             |     /* str._s__ */
    0x0003ac14 addiu s2, s2, 0x5f18          |     s2 += 0x5f18;
    0x0003ac18 b 0x3ac2c                     |     
                                             |     while (a2 != 0) {
    0x0003ac1c move a1, s2                   |         a1 = s2;
    0x0003ac20 move a0, s1                   |         a0 = s1;
    0x0003ac24 jalr t9                       |         t9 ();
    0x0003ac28 lw gp, 0x18(sp)               |         gp = *(var_18h);
    0x0003ac2c sw s0, 0x28(sp)               |         *(var_28h) = s0;
    0x0003ac30 addiu s0, s0, 4               |         s0 += 4;
    0x0003ac34 lw a2, -8(s0)                 |         a2 = *((s0 - 2));
    0x0003ac38 lw t9, -0x772c(gp)            |         t9 = sym.imp.g_string_append_printf
    0x0003ac3c bnez a2, 0x3ac1c              |         
                                             |     }
    0x0003ac40 lw a1, 4(s1)                  |     a1 = *((s1 + 1));
    0x0003ac44 lw t9, -0x7194(gp)            |     t9 = sym.imp.g_string_truncate;
    0x0003ac48 addiu a1, a1, -2              |     a1 += -2;
    0x0003ac4c move a0, s1                   |     a0 = s1;
    0x0003ac50 jalr t9                       |     t9 ();
    0x0003ac54 lw gp, 0x18(sp)               |     gp = *(var_18h);
    0x0003ac58 lw a3, (v0)                   |     a3 = *(v0);
    0x0003ac5c move a2, s5                   |     a2 = s5;
    0x0003ac60 lw a1, -0x7fd8(gp)            |     a1 = *(gp);
    0x0003ac64 lw t9, -0x772c(gp)            |     t9 = sym.imp.g_string_append_printf
                                             |     /* str.INSERT_OR_IGNORE_INTO__s___s___s_ */
    0x0003ac68 addiu a1, a1, 0x5f34          |     a1 += 0x5f34;
    0x0003ac6c move a0, s3                   |     a0 = s3;
    0x0003ac70 sw s6, 0x10(sp)               |     *(var_10h_2) = s6;
    0x0003ac74 move s0, v0                   |     s0 = v0;
    0x0003ac78 jalr t9                       |     t9 ();
    0x0003ac7c lw gp, 0x18(sp)               |     gp = *(var_18h);
    0x0003ac80 lw t9, -0x74c8(gp)            |     t9 = *((gp - 7474));
    0x0003ac84 move a0, s5                   |     a0 = s5;
    0x0003ac88 jalr t9                       |     t9 ();
    0x0003ac8c lw gp, 0x18(sp)               |     gp = *(var_18h);
    0x0003ac90 move a0, s0                   |     a0 = s0;
    0x0003ac94 lw t9, -0x75a8(gp)            |     t9 = sym.imp.g_string_free;
    0x0003ac98 addiu a1, zero, 1             |     a1 = 1;
    0x0003ac9c jalr t9                       |     t9 ();
    0x0003aca0 lw a0, 0x2c(sp)               |     a0 = *(var_2ch_2);
    0x0003aca4 lw v1, (s4)                   |     v1 = *(s4);
    0x0003aca8 lw gp, 0x18(sp)               |     gp = *(var_18h);
    0x0003acac move v0, s3                   |     v0 = s3;
                                             |     if (a0 == v1) {
    0x0003acb0 bne a0, v1, 0x3acdc           |         
    0x0003acb4 lw ra, 0x4c(sp)               |         ra = *(var_4ch);
    0x0003acb8 lw s6, 0x48(sp)               |         s6 = *(var_48h);
    0x0003acbc lw s5, 0x44(sp)               |         s5 = *(var_44h_2);
    0x0003acc0 lw s4, 0x40(sp)               |         s4 = *(var_40h_2);
    0x0003acc4 lw s3, 0x3c(sp)               |         s3 = *(var_3ch_2);
    0x0003acc8 lw s2, 0x38(sp)               |         s2 = *(var_38h_2);
    0x0003accc lw s1, 0x34(sp)               |         s1 = *(var_34h_2);
    0x0003acd0 lw s0, 0x30(sp)               |         s0 = *(var_30h_2);
    0x0003acd4 addiu sp, sp, 0x50            |         
    0x0003acd8 jr ra                         |         return v0;
                                             |     }
    0x0003acdc lw t9, -0x7494(gp)            |     t9 = sym.imp.__stack_chk_fail;
    0x0003ace0 jalr t9                       |     t9 ();
    0x0003ace4 nop                           |     
                                             | }
    ; assembly                               | /* r2dec pseudo code output */
                                             | /* /logs/firmware/unblob_extracted/firmware_extract/4325012-58052244.squashfs_v4_le_extract/usr/bin/indexer @ 0x3d540 */
                                             | #include <stdint.h>
                                             |  
    ; (fcn) fcn.0003d540 ()                  | void fcn_0003d540 () {
    0x0003d540 lui gp, 5                     |     
    0x0003d544 addiu gp, gp, -0x7440         |     
    0x0003d548 addu gp, gp, t9               |     gp += t9;
    0x0003d54c addiu sp, sp, -0x58           |     
    0x0003d550 lw t9, -0x71b4(gp)            |     t9 = sym.imp.g_string_new;
    0x0003d554 sw fp, 0x50(sp)               |     *(var_50h) = fp;
    0x0003d558 lw fp, -0x71a0(gp)            |     fp = *((gp - 7272));
    0x0003d55c sw s0, 0x30(sp)               |     *(var_30h) = s0;
    0x0003d560 move s0, a0                   |     s0 = a0;
    0x0003d564 lw v0, (fp)                   |     v0 = *(fp);
    0x0003d568 lw a0, -0x7fd8(gp)            |     a0 = *(gp);
    0x0003d56c sw ra, 0x54(sp)               |     *(var_54h) = ra;
    0x0003d570 sw gp, 0x18(sp)               |     *(var_18h) = gp;
    0x0003d574 sw a1, 0x24(sp)               |     *(var_24h) = a1;
    0x0003d578 sw s7, 0x4c(sp)               |     *(var_4ch) = s7;
    0x0003d57c sw s6, 0x48(sp)               |     *(var_48h) = s6;
    0x0003d580 sw s5, 0x44(sp)               |     *(var_44h) = s5;
    0x0003d584 sw s4, 0x40(sp)               |     *(var_40h) = s4;
    0x0003d588 sw s3, 0x3c(sp)               |     *(var_3ch) = s3;
                                             |     /* str.SELECT */
    0x0003d58c addiu a0, a0, 0x6e6c          |     a0 += 0x6e6c;
    0x0003d590 sw s2, 0x38(sp)               |     *(var_38h) = s2;
    0x0003d594 sw s1, 0x34(sp)               |     *(var_34h) = s1;
    0x0003d598 sw v0, 0x2c(sp)               |     *(var_2ch) = v0;
    0x0003d59c jalr t9                       |     t9 ();
    0x0003d5a0 nop                           |     
    0x0003d5a4 lw gp, 0x18(sp)               |     gp = *(var_18h);
    0x0003d5a8 move s7, v0                   |     s7 = v0;
    0x0003d5ac lw a0, -0x7fd8(gp)            |     a0 = *(gp);
    0x0003d5b0 lw t9, -0x71b4(gp)            |     t9 = sym.imp.g_string_new;
                                             |     /* str._WHERE_ */
    0x0003d5b4 addiu a0, a0, 0x6e74          |     a0 += 0x6e74;
    0x0003d5b8 jalr t9                       |     t9 ();
    0x0003d5bc lw gp, 0x18(sp)               |     gp = *(var_18h);
    0x0003d5c0 lw a1, 0x24(sp)               |     a1 = *(var_24h);
    0x0003d5c4 move a0, s0                   |     a0 = s0;
    0x0003d5c8 lw t9, -0x7cec(gp)            |     t9 = sym.sql_table_with_storage_name;
    0x0003d5cc move s3, v0                   |     s3 = v0;
    0x0003d5d0 bal 0x39fd0                   |     sym_sql_table_with_storage_name ();
    0x0003d5d4 lw gp, 0x18(sp)               |     gp = *(var_18h);
    0x0003d5d8 move a3, v0                   |     a3 = v0;
    0x0003d5dc move a0, s7                   |     a0 = s7;
    0x0003d5e0 lw a2, -0x7fd8(gp)            |     a2 = *(gp);
    0x0003d5e4 lw a1, -0x7fd8(gp)            |     a1 = *(gp);
    0x0003d5e8 lw t9, -0x772c(gp)            |     t9 = sym.imp.g_string_append_printf
                                             |     /* esilref: ' ' */
    0x0003d5ec addiu a2, a2, 0x19a0          |     a2 += 0x19a0;
                                             |     /* str.__s_FROM__s */
    0x0003d5f0 addiu a1, a1, 0x6e7c          |     a1 += 0x6e7c;
    0x0003d5f4 move s0, v0                   |     s0 = v0;
    0x0003d5f8 jalr t9                       |     t9 ();
    0x0003d5fc lw gp, 0x18(sp)               |     gp = *(var_18h);
    0x0003d600 move a0, s0                   |     a0 = s0;
    0x0003d604 lw t9, -0x74c8(gp)            |     t9 = *((gp - 7474));
    0x0003d608 addiu s0, sp, 0x6c            |     s0 = sp + 0x6c;
    0x0003d60c jalr t9                       |     t9 ();
    0x0003d610 lw gp, 0x18(sp)               |     gp = *(var_18h);
    0x0003d614 move v1, zero                 |     v1 = 0;
    0x0003d618 lw s6, -0x7fd8(gp)            |     s6 = *(gp);
    0x0003d61c lw s5, -0x7fd8(gp)            |     s5 = *(gp);
                                             |     /* esilref: 'AND' */
    0x0003d620 addiu s6, s6, 0x6e88          |     s6 += 0x6e88;
                                             |     /* esilref: ' &s ' */
    0x0003d624 addiu s5, s5, 0x1220          |     s5 += 0x1220;
    0x0003d628 lw s4, -0x7fd8(gp)            |     s4 = *(gp);
    0x0003d62c b 0x3d6ac                     |     
                                             |     while (s2 != 0) {
    0x0003d630 lw t9, -0x772c(gp)            |         t9 = sym.imp.g_string_append_printf
                                             |         if (v1 != 0) {
    0x0003d634 bnez v1, 0x3d6f4              |             goto label_1;
                                             |         }
                                             | label_0:
    0x0003d638 lw t9, -0x7edc(gp)            |         t9 = sym.sql_sanitize_string;
    0x0003d63c move a0, s1                   |         a0 = s1;
    0x0003d640 bal 0x3a184                   |         sym_sql_sanitize_string ();
    0x0003d644 lw gp, 0x18(sp)               |         gp = *(var_18h);
    0x0003d648 move a0, s2                   |         a0 = s2;
    0x0003d64c move s2, v0                   |         s2 = v0;
    0x0003d650 lw t9, -0x7c5c(gp)            |         t9 = sym.sanitize_quote;
    0x0003d654 addiu s0, s0, 8               |         s0 += 8;
    0x0003d658 bal 0x3a2f0                   |         sym_sanitize_quote ();
    0x0003d65c lw gp, 0x18(sp)               |         gp = *(var_18h);
    0x0003d660 lw a2, (s2)                   |         a2 = *(s2);
    0x0003d664 lw a3, (v0)                   |         a3 = *(v0);
    0x0003d668 lw t9, -0x772c(gp)            |         t9 = sym.imp.g_string_append_printf
                                             |         /* str.__s_s_ */
    0x0003d66c addiu a1, s4, 0x6e8c          |         a1 = s4 + 0x6e8c;
    0x0003d670 move a0, s3                   |         a0 = s3;
    0x0003d674 move s1, v0                   |         s1 = v0;
    0x0003d678 jalr t9                       |         t9 ();
    0x0003d67c lw gp, 0x18(sp)               |         gp = *(var_18h);
    0x0003d680 addiu a1, zero, 1             |         a1 = 1;
    0x0003d684 lw t9, -0x75a8(gp)            |         t9 = sym.imp.g_string_free;
    0x0003d688 move a0, s2                   |         a0 = s2;
    0x0003d68c jalr t9                       |         t9 ();
    0x0003d690 lw gp, 0x18(sp)               |         gp = *(var_18h);
    0x0003d694 addiu a1, zero, 1             |         a1 = 1;
    0x0003d698 lw t9, -0x75a8(gp)            |         t9 = sym.imp.g_string_free;
    0x0003d69c move a0, s1                   |         a0 = s1;
    0x0003d6a0 jalr t9                       |         t9 ();
    0x0003d6a4 lw gp, 0x18(sp)               |         gp = *(var_18h);
    0x0003d6a8 addiu v1, zero, 1             |         v1 = 1;
    0x0003d6ac lw s1, -4(s0)                 |         s1 = *((s0 - 1));
    0x0003d6b0 sw s0, 0x28(sp)               |         *(var_28h) = s0;
                                             |         if (s1 == 0) {
    0x0003d6b4 beqz s1, 0x3d70c              |             goto label_2;
                                             |         }
    0x0003d6b8 lw s2, (s0)                   |         s2 = *(s0);
    0x0003d6bc addiu v0, s0, 4               |         v0 = s0 + 4;
    0x0003d6c0 sw v0, 0x28(sp)               |         *(var_28h) = v0;
    0x0003d6c4 bnez s2, 0x3d630              |         
                                             |     }
    0x0003d6c8 lw v0, -0x7fd8(gp)            |     v0 = *(gp);
    0x0003d6cc lw a3, -0x7fd8(gp)            |     a3 = *(gp);
    0x0003d6d0 lw a1, -0x7fd8(gp)            |     a1 = *(gp);
                                             |     /* str.value */
    0x0003d6d4 addiu v0, v0, 0x67a4          |     v0 += 0x67a4;
    0x0003d6d8 lw t9, -0x76c0(gp)            |     t9 = sym.imp.g_assertion_message_expr;
    0x0003d6dc sw v0, 0x10(sp)               |     *(var_10h) = v0;
                                             |     /* str.sql_select_from_where */
    0x0003d6e0 addiu a3, a3, 0x7f74          |     a3 += 0x7f74;
    0x0003d6e4 addiu a2, zero, 0x3e          |     a2 = 0x3e;
                                             |     /* str.sql_read.c */
    0x0003d6e8 addiu a1, a1, 0x6bd4          |     a1 += 0x6bd4;
    0x0003d6ec move a0, zero                 |     a0 = 0;
    0x0003d6f0 jalr t9                       |     t9 ();
                                             | label_1:
    0x0003d6f4 move a2, s6                   |     a2 = s6;
    0x0003d6f8 move a1, s5                   |     a1 = s5;
    0x0003d6fc move a0, s3                   |     a0 = s3;
    0x0003d700 jalr t9                       |     t9 ();
    0x0003d704 lw gp, 0x18(sp)               |     gp = *(var_18h);
    0x0003d708 b 0x3d638                     |     goto label_0;
                                             | label_2:
    0x0003d70c lw t9, -0x7d1c(gp)            |     t9 = sym.string_merge_g_strings;
    0x0003d710 move a0, s7                   |     a0 = s7;
    0x0003d714 move a1, s3                   |     a1 = s3;
    0x0003d718 bal 0x414e4                   |     sym_string_merge_g_strings ();
    0x0003d71c lw a0, 0x2c(sp)               |     a0 = *(var_2ch);
    0x0003d720 lw v1, (fp)                   |     v1 = *(fp);
    0x0003d724 lw gp, 0x18(sp)               |     gp = *(var_18h);
    0x0003d728 move v0, s7                   |     v0 = s7;
                                             |     if (a0 == v1) {
    0x0003d72c bne a0, v1, 0x3d760           |         
    0x0003d730 lw ra, 0x54(sp)               |         ra = *(var_54h);
    0x0003d734 lw fp, 0x50(sp)               |         fp = *(var_50h);
    0x0003d738 lw s7, 0x4c(sp)               |         s7 = *(var_4ch);
    0x0003d73c lw s6, 0x48(sp)               |         s6 = *(var_48h);
    0x0003d740 lw s5, 0x44(sp)               |         s5 = *(var_44h);
    0x0003d744 lw s4, 0x40(sp)               |         s4 = *(var_40h);
    0x0003d748 lw s3, 0x3c(sp)               |         s3 = *(var_3ch);
    0x0003d74c lw s2, 0x38(sp)               |         s2 = *(var_38h);
    0x0003d750 lw s1, 0x34(sp)               |         s1 = *(var_34h);
    0x0003d754 lw s0, 0x30(sp)               |         s0 = *(var_30h);
    0x0003d758 addiu sp, sp, 0x58            |         
    0x0003d75c jr ra                         |         return v0;
                                             |     }
    0x0003d760 lw t9, -0x7494(gp)            |     t9 = sym.imp.__stack_chk_fail;
    0x0003d764 jalr t9                       |     t9 ();
    0x0003d768 nop                           |     
                                             | }
    ; assembly                               | /* r2dec pseudo code output */
                                             | /* /logs/firmware/unblob_extracted/firmware_extract/4325012-58052244.squashfs_v4_le_extract/usr/bin/indexer @ 0x4bb60 */
                                             | #include <stdint.h>
                                             |  
    ; (fcn) fcn.0004bb60 ()                  | void fcn_0004bb60 () {
    0x0004bb60 lui gp, 4                     |     
    0x0004bb64 addiu gp, gp, -0x5a60         |     
    0x0004bb68 addu gp, gp, t9               |     gp += t9;
    0x0004bb6c addiu sp, sp, -0x28           |     
    0x0004bb70 negu a2, a2                   |     __asm ("negu a2, a2");
    0x0004bb74 sltu v0, zero, a2             |     v0 = (0 < a2) ? 1 : 0;
    0x0004bb78 lw t9, -0x7128(gp)            |     t9 = sym.imp.g_date_time_add;
    0x0004bb7c negu a3, a3                   |     __asm ("negu a3, a3");
    0x0004bb80 sw ra, 0x24(sp)               |     *(var_24h) = ra;
    0x0004bb84 sw gp, 0x10(sp)               |     *(var_10h) = gp;
    0x0004bb88 sw s1, 0x20(sp)               |     *(var_20h_2) = s1;
    0x0004bb8c sw s0, 0x1c(sp)               |     *(var_1ch) = s0;
    0x0004bb90 subu a3, a3, v0               |     __asm ("subu a3, a3, v0");
    0x0004bb94 jalr t9                       |     t9 ();
    0x0004bb98 lw gp, 0x10(sp)               |     gp = *(var_10h);
    0x0004bb9c move a0, v0                   |     a0 = v0;
    0x0004bba0 move s1, v0                   |     s1 = v0;
    0x0004bba4 lw a1, -0x7f50(gp)            |     a1 = *((gp - 8148));
    0x0004bba8 lw t9, -0x723c(gp)            |     t9 = sym.imp.g_date_time_format;
                                             |     /* str._Y__m__dT_H:_M:_S */
    0x0004bbac addiu a1, a1, -0x7a74         |     a1 += -0x7a74;
    0x0004bbb0 jalr t9                       |     t9 ();
    0x0004bbb4 lw gp, 0x10(sp)               |     gp = *(var_10h);
    0x0004bbb8 move a0, v0                   |     a0 = v0;
    0x0004bbbc lw t9, -0x71b4(gp)            |     t9 = sym.imp.g_string_new;
    0x0004bbc0 move s0, v0                   |     s0 = v0;
    0x0004bbc4 jalr t9                       |     t9 ();
    0x0004bbc8 lw gp, 0x10(sp)               |     gp = *(var_10h);
    0x0004bbcc move a0, s0                   |     a0 = s0;
    0x0004bbd0 lw t9, -0x74c8(gp)            |     t9 = *((gp - 7474));
    0x0004bbd4 move s0, v0                   |     s0 = v0;
    0x0004bbd8 jalr t9                       |     t9 ();
    0x0004bbdc lw gp, 0x10(sp)               |     gp = *(var_10h);
    0x0004bbe0 lw t9, -0x7204(gp)            |     t9 = sym.imp.g_date_time_get_microsecond;
    0x0004bbe4 move a0, s1                   |     a0 = s1;
    0x0004bbe8 jalr t9                       |     t9 ();
    0x0004bbec lw gp, 0x10(sp)               |     gp = *(var_10h);
                                             |     if (v0 != 0) {
    0x0004bbf0 bnez v0, 0x4bc60              |         goto label_1;
                                             |     }
    0x0004bbf4 lw a0, 4(s0)                  |     a0 = *((s0 + 1));
    0x0004bbf8 lw v0, 8(s0)                  |     v0 = *((s0 + 2));
    0x0004bbfc addiu v1, a0, 1               |     v1 = a0 + 1;
    0x0004bc00 sltu v0, v1, v0               |     v0 = (v1 < v0) ? 1 : 0;
    0x0004bc04 lw t9, -0x739c(gp)            |     t9 = sym.imp.g_string_insert_c;
                                             |     if (v0 == 0) {
    0x0004bc08 beqz v0, 0x4bca4              |         goto label_2;
                                             |     }
                                             |     do {
    0x0004bc0c lw v0, (s0)                   |         v0 = *(s0);
    0x0004bc10 sw v1, 4(s0)                  |         *((s0 + 1)) = v1;
    0x0004bc14 addu v0, v0, a0               |         v0 += a0;
    0x0004bc18 addiu v1, zero, 0x5a          |         v1 = 0x5a;
    0x0004bc1c sb v1, (v0)                   |         *(v0) = v1;
    0x0004bc20 lw v0, (s0)                   |         v0 = *(s0);
    0x0004bc24 lw v1, 4(s0)                  |         v1 = *((s0 + 1));
    0x0004bc28 addu v0, v0, v1               |         v0 += v1;
    0x0004bc2c sb zero, (v0)                 |         *(v0) = 0;
                                             | label_0:
    0x0004bc30 lw t9, -0x75f0(gp)            |         t9 = sym.imp.g_date_time_unref;
    0x0004bc34 move a0, s1                   |         a0 = s1;
    0x0004bc38 jalr t9                       |         t9 ();
    0x0004bc3c lw gp, 0x10(sp)               |         gp = *(var_10h);
    0x0004bc40 lw ra, 0x24(sp)               |         ra = *(var_24h);
    0x0004bc44 lw s1, 0x20(sp)               |         s1 = *(var_20h_2);
    0x0004bc48 move a0, s0                   |         a0 = s0;
    0x0004bc4c lw t9, -0x75a8(gp)            |         t9 = sym.imp.g_string_free;
    0x0004bc50 lw s0, 0x1c(sp)               |         s0 = *(var_1ch);
    0x0004bc54 move a1, zero                 |         a1 = 0;
    0x0004bc58 addiu sp, sp, 0x28            |         
    0x0004bc5c jr t9                         |         t9 ();
                                             | label_1:
    0x0004bc60 lw t9, -0x7204(gp)            |         t9 = sym.imp.g_date_time_get_microsecond;
    0x0004bc64 move a0, s1                   |         a0 = s1;
    0x0004bc68 jalr t9                       |         t9 ();
    0x0004bc6c lw gp, 0x10(sp)               |         gp = *(var_10h);
    0x0004bc70 move a2, v0                   |         a2 = v0;
    0x0004bc74 move a0, s0                   |         a0 = s0;
    0x0004bc78 lw a1, -0x7f50(gp)            |         a1 = *((gp - 8148));
    0x0004bc7c lw t9, -0x772c(gp)            |         t9 = sym.imp.g_string_append_printf
                                             |         /* str.._06d */
    0x0004bc80 addiu a1, a1, -0x63f0         |         a1 += -0x63f0;
    0x0004bc84 jalr t9                       |         t9 ();
    0x0004bc88 lw a0, 4(s0)                  |         a0 = *((s0 + 1));
    0x0004bc8c lw v0, 8(s0)                  |         v0 = *((s0 + 2));
    0x0004bc90 addiu v1, a0, 1               |         v1 = a0 + 1;
    0x0004bc94 sltu v0, v1, v0               |         v0 = (v1 < v0) ? 1 : 0;
    0x0004bc98 lw gp, 0x10(sp)               |         gp = *(var_10h);
    0x0004bc9c bnez v0, 0x4bc0c              |         
                                             |     } while (v0 != 0);
    0x0004bca0 lw t9, -0x739c(gp)            |     t9 = sym.imp.g_string_insert_c;
                                             | label_2:
    0x0004bca4 addiu a2, zero, 0x5a          |     a2 = 0x5a;
    0x0004bca8 addiu a1, zero, -1            |     a1 = -1;
    0x0004bcac move a0, s0                   |     a0 = s0;
    0x0004bcb0 jalr t9                       |     t9 ();
    0x0004bcb4 lw gp, 0x10(sp)               |     gp = *(var_10h);
    0x0004bcb8 b 0x4bc30                     |     goto label_0;
                                             | }
    ; assembly                                                               | /* r2dec pseudo code output */
                                                                             | /* /logs/firmware/unblob_extracted/firmware_extract/4325012-58052244.squashfs_v4_le_extract/usr/bin/indexer @ 0xf7ac */
                                                                             | #include <stdint.h>
                                                                             |  
    ; (fcn) sym.database_action_delete_recording_blocks_handler ()           | void database_action_delete_recording_blocks_handler () {
    0x0000f7ac lui gp, 7                                                     |     
    0x0000f7b0 addiu gp, gp, 0x6954                                          |     
    0x0000f7b4 addu gp, gp, t9                                               |     gp += t9;
    0x0000f7b8 addiu sp, sp, -0x48                                           |     
    0x0000f7bc lw t9, -0x747c(gp)                                            |     t9 = sym.imp.g_string_sized_new;
    0x0000f7c0 sw s3, 0x34(sp)                                               |     *(var_34h) = s3;
    0x0000f7c4 lw s3, -0x71a0(gp)                                            |     s3 = *((gp - 7272));
    0x0000f7c8 sw s6, 0x40(sp)                                               |     *(var_40h) = s6;
    0x0000f7cc move v1, zero                                                 |     v1 = 0;
    0x0000f7d0 lw v0, (s3)                                                   |     v0 = *(s3);
    0x0000f7d4 move s6, a0                                                   |     s6 = a0;
    0x0000f7d8 sw v0, 0x24(sp)                                               |     *(var_24h) = v0;
    0x0000f7dc move v0, zero                                                 |     v0 = 0;
    0x0000f7e0 sw gp, 0x10(sp)                                               |     *(var_10h) = gp;
    0x0000f7e4 sw s1, 0x2c(sp)                                               |     *(var_2ch) = s1;
    0x0000f7e8 sw s0, 0x28(sp)                                               |     *(var_28h) = s0;
    0x0000f7ec sw ra, 0x44(sp)                                               |     *(var_44h) = ra;
    0x0000f7f0 sw s5, 0x3c(sp)                                               |     *(var_3ch) = s5;
    0x0000f7f4 sw s4, 0x38(sp)                                               |     *(var_38h) = s4;
    0x0000f7f8 sw s2, 0x30(sp)                                               |     *(var_30h) = s2;
    0x0000f7fc sw v0, 0x18(sp)                                               |     *(var_18h) = v0;
    0x0000f800 sw v1, 0x1c(sp)                                               |     *(var_1ch) = v1;
    0x0000f804 addiu a0, zero, 0x800                                         |     a0 = 0x800;
    0x0000f808 jalr t9                                                       |     t9 ();
    0x0000f80c lw s0, 0x58(s6)                                               |     s0 = *((s6 + 22));
    0x0000f810 lw gp, 0x10(sp)                                               |     gp = *(var_10h);
    0x0000f814 move s1, v0                                                   |     s1 = v0;
                                                                             |     if (s0 == 0) {
    0x0000f818 beqz s0, 0xf874                                               |         goto label_2;
                                                                             |     }
    0x0000f81c lw s4, -0x7fd8(gp)                                            |     s4 = *(gp);
    0x0000f820 lw s5, -0x7fd8(gp)                                            |     s5 = *(gp);
                                                                             |     /* esilref: '&d' */
    0x0000f824 addiu s4, s4, 0x3648                                          |     s4 += 0x3648;
                                                                             |     /* esilref: '' */
    0x0000f828 addiu s5, s5, -0x2d24                                         |     s5 += -aav.0x00002d24;
    0x0000f82c b 0xf850                                                      |     
                                                                             |     while (v0 == 0) {
                                                                             | label_0:
    0x0000f830 lw t9, -0x772c(gp)                                            |         t9 = sym.imp.g_string_append_printf
    0x0000f834 lw a2, 0x20(s2)                                               |         a2 = *((s2 + 8));
    0x0000f838 move a1, s4                                                   |         a1 = s4;
    0x0000f83c move a0, s1                                                   |         a0 = s1;
    0x0000f840 jalr t9                                                       |         t9 ();
    0x0000f844 lw s0, 4(s0)                                                  |         s0 = *((s0 + 1));
    0x0000f848 lw gp, 0x10(sp)                                               |         gp = *(var_10h);
                                                                             |         if (s0 == 0) {
    0x0000f84c beqz s0, 0xf874                                               |             goto label_2;
                                                                             |         }
    0x0000f850 lw v0, 4(s1)                                                  |         v0 = *((s1 + 1));
    0x0000f854 lw s2, (s0)                                                   |         s2 = *(s0);
    0x0000f858 beqz v0, 0xf830                                               |         
                                                                             |     }
    0x0000f85c lw t9, -0x76d0(gp)                                            |     t9 = sym.imp.g_string_append;
    0x0000f860 move a1, s5                                                   |     a1 = s5;
    0x0000f864 move a0, s1                                                   |     a0 = s1;
    0x0000f868 jalr t9                                                       |     t9 ();
    0x0000f86c lw gp, 0x10(sp)                                               |     gp = *(var_10h);
    0x0000f870 b 0xf830                                                      |     goto label_0;
                                                                             | label_2:
    0x0000f874 lw t9, -0x7f00(gp)                                            |     t9 = sym.database_compute_filesize_of_remove_blocks;
    0x0000f878 lw a1, (s1)                                                   |     a1 = *(s1);
    0x0000f87c lw a0, 0x1c(s6)                                               |     a0 = *((s6 + 7));
    0x0000f880 move a3, zero                                                 |     a3 = 0;
    0x0000f884 addiu a2, sp, 0x18                                            |     a2 = sp + 0x18;
    0x0000f888 bal 0x274f8                                                   |     sym_database_compute_filesize_of_remove_blocks ();
    0x0000f88c lw gp, 0x10(sp)                                               |     gp = *(var_10h);
    0x0000f890 lw a1, 0x1c(s6)                                               |     a1 = *((s6 + 7));
    0x0000f894 lw a0, (s1)                                                   |     a0 = *(s1);
    0x0000f898 lw t9, -0x7efc(gp)                                            |     t9 = sym.database_delete_recording_blocks;
    0x0000f89c move a2, zero                                                 |     a2 = 0;
    0x0000f8a0 move s0, v0                                                   |     s0 = v0;
    0x0000f8a4 bal 0x23be4                                                   |     sym_database_delete_recording_blocks ();
    0x0000f8a8 lw gp, 0x10(sp)                                               |     gp = *(var_10h);
                                                                             |     if (v0 != 0) {
    0x0000f8ac beqz v0, 0xf8b8                                               |         
    0x0000f8b0 lw t9, -0x7f78(gp)                                            |         t9 = *(gp);
                                                                             |         if (s0 != 0) {
    0x0000f8b4 bnez s0, 0xf928                                               |             goto label_3;
                                                                             |         }
                                                                             |     }
                                                                             | label_1:
    0x0000f8b8 lw s0, 0x58(s6)                                               |     s0 = *((s6 + 22));
    0x0000f8bc lw t9, -0x75a8(gp)                                            |     t9 = sym.imp.g_string_free;
                                                                             |     if (s0 == 0) {
    0x0000f8c0 beqz s0, 0xf8e4                                               |         goto label_4;
                                                                             |     }
                                                                             |     do {
    0x0000f8c4 lw v0, (s0)                                                   |         v0 = *(s0);
    0x0000f8c8 lw t9, -0x7ef8(gp)                                            |         t9 = sym.maintainer_block_deleted;
    0x0000f8cc lw a0, (v0)                                                   |         a0 = *(v0);
    0x0000f8d0 jalr t9                                                       |         t9 ();
    0x0000f8d4 lw s0, 4(s0)                                                  |         s0 = *((s0 + 1));
    0x0000f8d8 lw gp, 0x10(sp)                                               |         gp = *(var_10h);
    0x0000f8dc bnez s0, 0xf8c4                                               |         
                                                                             |     } while (s0 != 0);
    0x0000f8e0 lw t9, -0x75a8(gp)                                            |     t9 = sym.imp.g_string_free;
                                                                             | label_4:
    0x0000f8e4 addiu a1, zero, 1                                             |     a1 = 1;
    0x0000f8e8 move a0, s1                                                   |     a0 = s1;
    0x0000f8ec jalr t9                                                       |     t9 ();
    0x0000f8f0 lw v1, 0x24(sp)                                               |     v1 = *(var_24h);
    0x0000f8f4 lw v0, (s3)                                                   |     v0 = *(s3);
    0x0000f8f8 lw gp, 0x10(sp)                                               |     gp = *(var_10h);
                                                                             |     if (v1 == v0) {
    0x0000f8fc bne v1, v0, 0xf944                                            |         
    0x0000f900 lw ra, 0x44(sp)                                               |         ra = *(var_44h);
    0x0000f904 lw s6, 0x40(sp)                                               |         s6 = *(var_40h);
    0x0000f908 lw s5, 0x3c(sp)                                               |         s5 = *(var_3ch);
    0x0000f90c lw s4, 0x38(sp)                                               |         s4 = *(var_38h);
    0x0000f910 lw s3, 0x34(sp)                                               |         s3 = *(var_34h);
    0x0000f914 lw s2, 0x30(sp)                                               |         s2 = *(var_30h);
    0x0000f918 lw s1, 0x2c(sp)                                               |         s1 = *(var_2ch);
    0x0000f91c lw s0, 0x28(sp)                                               |         s0 = *(var_28h);
    0x0000f920 addiu sp, sp, 0x48                                            |         
    0x0000f924 jr ra                                                         |         return v1;
                                                                             | label_3:
    0x0000f928 lw a2, 0x18(sp)                                               |         a2 = *(var_18h);
    0x0000f92c lw a3, 0x1c(sp)                                               |         a3 = *(var_1ch);
    0x0000f930 addiu t9, t9, -0x930                                          |         t9 += -0x930;
    0x0000f934 lw a0, 0x1c(s6)                                               |         a0 = *((s6 + 7));
    0x0000f938 bal 0xf6d0                                                    |         fcn_0000f6d0 ();
    0x0000f93c lw gp, 0x10(sp)                                               |         gp = *(var_10h);
    0x0000f940 b 0xf8b8                                                      |         goto label_1;
                                                                             |     }
    0x0000f944 lw t9, -0x7494(gp)                                            |     t9 = sym.imp.__stack_chk_fail;
    0x0000f948 jalr t9                                                       |     t9 ();
    0x0000f94c nop                                                           |     
                                                                             | }
    ; assembly                                                       | /* r2dec pseudo code output */
                                                                     | /* /logs/firmware/unblob_extracted/firmware_extract/4325012-58052244.squashfs_v4_le_extract/usr/bin/indexer @ 0xfc1c */
                                                                     | #include <stdint.h>
                                                                     |  
    ; (fcn) sym.database_action_delete_recordings_handler ()         | void database_action_delete_recordings_handler () {
    0x0000fc1c lui gp, 7                                             |     
    0x0000fc20 addiu gp, gp, 0x64e4                                  |     
    0x0000fc24 addu gp, gp, t9                                       |     gp += t9;
    0x0000fc28 addiu sp, sp, -0x48                                   |     
    0x0000fc2c lw t9, -0x747c(gp)                                    |     t9 = sym.imp.g_string_sized_new;
    0x0000fc30 sw s4, 0x38(sp)                                       |     *(var_38h) = s4;
    0x0000fc34 lw s4, -0x71a0(gp)                                    |     s4 = *((gp - 7272));
    0x0000fc38 sw s3, 0x34(sp)                                       |     *(var_34h) = s3;
    0x0000fc3c move v1, zero                                         |     v1 = 0;
    0x0000fc40 lw v0, (s4)                                           |     v0 = *(s4);
    0x0000fc44 move s3, a0                                           |     s3 = a0;
    0x0000fc48 sw v0, 0x24(sp)                                       |     *(var_24h) = v0;
    0x0000fc4c move v0, zero                                         |     v0 = 0;
    0x0000fc50 sw gp, 0x10(sp)                                       |     *(var_10h) = gp;
    0x0000fc54 sw s1, 0x2c(sp)                                       |     *(var_2ch) = s1;
    0x0000fc58 sw s0, 0x28(sp)                                       |     *(var_28h) = s0;
    0x0000fc5c sw ra, 0x44(sp)                                       |     *(var_44h) = ra;
    0x0000fc60 sw s6, 0x40(sp)                                       |     *(var_40h) = s6;
    0x0000fc64 sw s5, 0x3c(sp)                                       |     *(var_3ch) = s5;
    0x0000fc68 sw s2, 0x30(sp)                                       |     *(var_30h) = s2;
    0x0000fc6c sw v0, 0x18(sp)                                       |     *(var_18h) = v0;
    0x0000fc70 sw v1, 0x1c(sp)                                       |     *(var_1ch) = v1;
    0x0000fc74 addiu a0, zero, 0x1000                                |     a0 = 0x1000;
    0x0000fc78 jalr t9                                               |     t9 ();
    0x0000fc7c lw s0, 0x58(s3)                                       |     s0 = *((s3 + 22));
    0x0000fc80 lw gp, 0x10(sp)                                       |     gp = *(var_10h);
    0x0000fc84 move s1, v0                                           |     s1 = v0;
                                                                     |     if (s0 == 0) {
    0x0000fc88 beqz s0, 0xfd28                                       |         goto label_2;
                                                                     |     }
    0x0000fc8c lw s5, -0x7f50(gp)                                    |     s5 = *((gp - 8148));
    0x0000fc90 addiu s6, zero, 0x2c                                  |     s6 = 0x2c;
                                                                     |     /* esilref: ''&s'' */
    0x0000fc94 addiu s5, s5, -0x4cd0                                 |     s5 += -0x4cd0;
    0x0000fc98 b 0xfce4                                              |     
                                                                     |     while (v0 == 0) {
                                                                     | label_0:
    0x0000fc9c lw t9, -0x7edc(gp)                                    |         t9 = sym.sql_sanitize_string;
    0x0000fca0 lw a0, 0x1c(s2)                                       |         a0 = *((s2 + 7));
    0x0000fca4 jalr t9                                               |         t9 ();
    0x0000fca8 lw gp, 0x10(sp)                                       |         gp = *(var_10h);
    0x0000fcac lw a2, (v0)                                           |         a2 = *(v0);
    0x0000fcb0 move a1, s5                                           |         a1 = s5;
    0x0000fcb4 lw t9, -0x772c(gp)                                    |         t9 = sym.imp.g_string_append_printf
    0x0000fcb8 move a0, s1                                           |         a0 = s1;
    0x0000fcbc move s2, v0                                           |         s2 = v0;
    0x0000fcc0 jalr t9                                               |         t9 ();
    0x0000fcc4 lw gp, 0x10(sp)                                       |         gp = *(var_10h);
    0x0000fcc8 addiu a1, zero, 1                                     |         a1 = 1;
    0x0000fccc lw t9, -0x75a8(gp)                                    |         t9 = sym.imp.g_string_free;
    0x0000fcd0 move a0, s2                                           |         a0 = s2;
    0x0000fcd4 jalr t9                                               |         t9 ();
    0x0000fcd8 lw s0, 4(s0)                                          |         s0 = *((s0 + 1));
    0x0000fcdc lw gp, 0x10(sp)                                       |         gp = *(var_10h);
                                                                     |         if (s0 == 0) {
    0x0000fce0 beqz s0, 0xfd28                                       |             goto label_2;
                                                                     |         }
    0x0000fce4 lw v0, 4(s1)                                          |         v0 = *((s1 + 1));
    0x0000fce8 lw s2, (s0)                                           |         s2 = *(s0);
    0x0000fcec beqz v0, 0xfc9c                                       |         
                                                                     |     }
    0x0000fcf0 lw v1, 8(s1)                                          |     v1 = *((s1 + 2));
    0x0000fcf4 addiu a0, v0, 1                                       |     a0 = v0 + 1;
    0x0000fcf8 sltu v1, a0, v1                                       |     v1 = (a0 < v1) ? 1 : 0;
    0x0000fcfc lw t9, -0x739c(gp)                                    |     t9 = sym.imp.g_string_insert_c;
                                                                     |     if (v1 == 0) {
    0x0000fd00 beqz v1, 0xfdf0                                       |         goto label_3;
                                                                     |     }
    0x0000fd04 lw v1, (s1)                                           |     v1 = *(s1);
    0x0000fd08 sw a0, 4(s1)                                          |     *((s1 + 1)) = a0;
    0x0000fd0c addu v0, v1, v0                                       |     v0 = v1 + v0;
    0x0000fd10 sb s6, (v0)                                           |     *(v0) = s6;
    0x0000fd14 lw v0, (s1)                                           |     v0 = *(s1);
    0x0000fd18 lw v1, 4(s1)                                          |     v1 = *((s1 + 1));
    0x0000fd1c addu v0, v0, v1                                       |     v0 += v1;
    0x0000fd20 sb zero, (v0)                                         |     *(v0) = 0;
    0x0000fd24 b 0xfc9c                                              |     goto label_0;
                                                                     | label_2:
    0x0000fd28 lw t9, -0x7ed8(gp)                                    |     t9 = sym.database_compute_filesize_of_remove_recordings;
    0x0000fd2c lw a1, (s1)                                           |     a1 = *(s1);
    0x0000fd30 lw a0, 0x1c(s3)                                       |     a0 = *((s3 + 7));
    0x0000fd34 move a3, zero                                         |     a3 = 0;
    0x0000fd38 addiu a2, sp, 0x18                                    |     a2 = sp + 0x18;
    0x0000fd3c bal 0x27590                                           |     sym_database_compute_filesize_of_remove_recordings ();
    0x0000fd40 lw gp, 0x10(sp)                                       |     gp = *(var_10h);
    0x0000fd44 lw a1, 0x1c(s3)                                       |     a1 = *((s3 + 7));
    0x0000fd48 lw a0, (s1)                                           |     a0 = *(s1);
    0x0000fd4c lw t9, -0x7ed4(gp)                                    |     t9 = sym.database_delete_recordings;
    0x0000fd50 move a2, zero                                         |     a2 = 0;
    0x0000fd54 move s0, v0                                           |     s0 = v0;
    0x0000fd58 bal 0x2375c                                           |     sym_database_delete_recordings ();
    0x0000fd5c lw gp, 0x10(sp)                                       |     gp = *(var_10h);
                                                                     |     if (v0 != 0) {
    0x0000fd60 beqz v0, 0xfd6c                                       |         
    0x0000fd64 lw t9, -0x7f78(gp)                                    |         t9 = *(gp);
                                                                     |         if (s0 != 0) {
    0x0000fd68 bnez s0, 0xfe08                                       |             goto label_4;
                                                                     |         }
                                                                     |     }
                                                                     | label_1:
    0x0000fd6c lw s0, 0x58(s3)                                       |     s0 = *((s3 + 22));
    0x0000fd70 lw t9, -0x75a8(gp)                                    |     t9 = sym.imp.g_string_free;
                                                                     |     if (s0 == 0) {
    0x0000fd74 beqz s0, 0xfdac                                       |         goto label_5;
                                                                     |     }
                                                                     |     do {
    0x0000fd78 lw s2, (s0)                                           |         s2 = *(s0);
    0x0000fd7c lw t9, -0x7ed0(gp)                                    |         t9 = sym.rse_recording_stopped;
    0x0000fd80 lw a0, 0x1c(s3)                                       |         a0 = *((s3 + 7));
    0x0000fd84 lw a1, 0x1c(s2)                                       |         a1 = *((s2 + 7));
    0x0000fd88 jalr t9                                               |         t9 ();
    0x0000fd8c lw gp, 0x10(sp)                                       |         gp = *(var_10h);
    0x0000fd90 lw t9, -0x7ecc(gp)                                    |         t9 = sym.maintainer_recording_deleted;
    0x0000fd94 lw a0, 0x1c(s2)                                       |         a0 = *((s2 + 7));
    0x0000fd98 jalr t9                                               |         t9 ();
    0x0000fd9c lw s0, 4(s0)                                          |         s0 = *((s0 + 1));
    0x0000fda0 lw gp, 0x10(sp)                                       |         gp = *(var_10h);
    0x0000fda4 bnez s0, 0xfd78                                       |         
                                                                     |     } while (s0 != 0);
    0x0000fda8 lw t9, -0x75a8(gp)                                    |     t9 = sym.imp.g_string_free;
                                                                     | label_5:
    0x0000fdac addiu a1, zero, 1                                     |     a1 = 1;
    0x0000fdb0 move a0, s1                                           |     a0 = s1;
    0x0000fdb4 jalr t9                                               |     t9 ();
    0x0000fdb8 lw v1, 0x24(sp)                                       |     v1 = *(var_24h);
    0x0000fdbc lw v0, (s4)                                           |     v0 = *(s4);
    0x0000fdc0 lw gp, 0x10(sp)                                       |     gp = *(var_10h);
                                                                     |     if (v1 == v0) {
    0x0000fdc4 bne v1, v0, 0xfe24                                    |         
    0x0000fdc8 lw ra, 0x44(sp)                                       |         ra = *(var_44h);
    0x0000fdcc lw s6, 0x40(sp)                                       |         s6 = *(var_40h);
    0x0000fdd0 lw s5, 0x3c(sp)                                       |         s5 = *(var_3ch);
    0x0000fdd4 lw s4, 0x38(sp)                                       |         s4 = *(var_38h);
    0x0000fdd8 lw s3, 0x34(sp)                                       |         s3 = *(var_34h);
    0x0000fddc lw s2, 0x30(sp)                                       |         s2 = *(var_30h);
    0x0000fde0 lw s1, 0x2c(sp)                                       |         s1 = *(var_2ch);
    0x0000fde4 lw s0, 0x28(sp)                                       |         s0 = *(var_28h);
    0x0000fde8 addiu sp, sp, 0x48                                    |         
    0x0000fdec jr ra                                                 |         return v1;
                                                                     | label_3:
    0x0000fdf0 addiu a2, zero, 0x2c                                  |         a2 = 0x2c;
    0x0000fdf4 addiu a1, zero, -1                                    |         a1 = -1;
    0x0000fdf8 move a0, s1                                           |         a0 = s1;
    0x0000fdfc jalr t9                                               |         t9 ();
    0x0000fe00 lw gp, 0x10(sp)                                       |         gp = *(var_10h);
    0x0000fe04 b 0xfc9c                                              |         goto label_0;
                                                                     | label_4:
    0x0000fe08 lw a2, 0x18(sp)                                       |         a2 = *(var_18h);
    0x0000fe0c lw a3, 0x1c(sp)                                       |         a3 = *(var_1ch);
    0x0000fe10 addiu t9, t9, -0x930                                  |         t9 += -0x930;
    0x0000fe14 lw a0, 0x1c(s3)                                       |         a0 = *((s3 + 7));
    0x0000fe18 bal 0xf6d0                                            |         fcn_0000f6d0 ();
    0x0000fe1c lw gp, 0x10(sp)                                       |         gp = *(var_10h);
    0x0000fe20 b 0xfd6c                                              |         goto label_1;
                                                                     |     }
    0x0000fe24 lw t9, -0x7494(gp)                                    |     t9 = sym.imp.__stack_chk_fail;
    0x0000fe28 jalr t9                                               |     t9 ();
    0x0000fe2c nop                                                   |     
                                                                     | }
    ; assembly                                                   | /* r2dec pseudo code output */
                                                                 | /* /logs/firmware/unblob_extracted/firmware_extract/4325012-58052244.squashfs_v4_le_extract/usr/bin/indexer @ 0x21294 */
                                                                 | #include <stdint.h>
                                                                 |  
    ; (fcn) sym.database_count_recordings_by_recording_id ()     | void database_count_recordings_by_recording_id () {
    0x00021294 lui gp, 6                                         |     
    0x00021298 addiu gp, gp, 0x4e6c                              |     
    0x0002129c addu gp, gp, t9                                   |     gp += t9;
    0x000212a0 addiu sp, sp, -0x60                               |     
    0x000212a4 sw s5, 0x4c(sp)                                   |     *(var_4ch_3) = s5;
    0x000212a8 sw s1, 0x3c(sp)                                   |     *(var_3ch_3) = s1;
    0x000212ac lw s5, -0x71a0(gp)                                |     s5 = *((gp - 7272));
    0x000212b0 lw s1, -0x7fd4(gp)                                |     s1 = *((gp - 8181));
    0x000212b4 sw gp, 0x28(sp)                                   |     *(var_28h_2) = gp;
    0x000212b8 lw v1, (s5)                                       |     v1 = *(s5);
    0x000212bc lw v0, -0xf48(s1)                                 |     v0 = *((s1 - 978));
    0x000212c0 sw ra, 0x5c(sp)                                   |     *(var_5ch_3) = ra;
    0x000212c4 sw fp, 0x58(sp)                                   |     *(var_58h_2) = fp;
    0x000212c8 sw s7, 0x54(sp)                                   |     *(var_54h_2) = s7;
    0x000212cc sw s6, 0x50(sp)                                   |     *(var_50h_3) = s6;
    0x000212d0 sw s4, 0x48(sp)                                   |     *(var_48h_3) = s4;
    0x000212d4 sw s3, 0x44(sp)                                   |     *(var_44h_2) = s3;
    0x000212d8 sw s2, 0x40(sp)                                   |     *(var_40h_3) = s2;
    0x000212dc sw s0, 0x38(sp)                                   |     *(var_38h) = s0;
    0x000212e0 sw v1, 0x34(sp)                                   |     *(var_34h) = v1;
    0x000212e4 lw t9, -0x7d24(gp)                                |     t9 = sym.sql_valid_storage_name;
                                                                 |     if (v0 == 0) {
    0x000212e8 beqz v0, 0x2149c                                  |         goto label_4;
                                                                 |     }
    0x000212ec move s0, a1                                       |     s0 = a1;
    0x000212f0 move s7, a0                                       |     s7 = a0;
    0x000212f4 move a1, a2                                       |     a1 = a2;
    0x000212f8 move a0, s0                                       |     a0 = s0;
    0x000212fc move s4, a2                                       |     s4 = a2;
    0x00021300 bal 0x3a5d4                                       |     sym_sql_valid_storage_name ();
    0x00021304 lw gp, 0x28(sp)                                   |     gp = *(var_28h_2);
                                                                 |     if (v0 == 0) {
    0x00021308 beqz v0, 0x2166c                                  |         goto label_5;
                                                                 |     }
    0x0002130c lw s6, -0x7fd4(gp)                                |     s6 = *((gp - 8181));
    0x00021310 lw t9, -0x7688(gp)                                |     t9 = sym.imp.g_rec_mutex_lock;
    0x00021314 addiu a0, s6, -0xf58                              |     a0 = s6 + -0xf58;
    0x00021318 jalr t9                                           |     t9 ();
    0x0002131c lw v0, -0xf48(s1)                                 |     v0 = *((s1 - 978));
    0x00021320 lw gp, 0x28(sp)                                   |     gp = *(var_28h_2);
    0x00021324 sw zero, 0x30(sp)                                 |     *(var_30h_3) = 0;
                                                                 |     if (v0 == 0) {
    0x00021328 beqz v0, 0x214d0                                  |         goto label_6;
                                                                 |     }
    0x0002132c lw t9, -0x7d24(gp)                                |     t9 = sym.sql_valid_storage_name;
    0x00021330 move a1, s4                                       |     a1 = s4;
    0x00021334 move a0, s0                                       |     a0 = s0;
    0x00021338 bal 0x3a5d4                                       |     sym_sql_valid_storage_name ();
    0x0002133c lw gp, 0x28(sp)                                   |     gp = *(var_28h_2);
                                                                 |     if (v0 == 0) {
    0x00021340 beqz v0, 0x214c8                                  |         goto label_7;
                                                                 |     }
    0x00021344 lw v0, -0x7fd4(gp)                                |     v0 = *((gp - 8181));
    0x00021348 lw a0, -0xf4c(v0)                                 |     a0 = *((v0 - 979));
                                                                 |     if (s0 == 0) {
    0x0002134c beqz s0, 0x214fc                                  |         goto label_8;
                                                                 |     }
    0x00021350 lw a2, -0x7d2c(gp)                                |     a2 = *(gp);
    0x00021354 lw t9, -0x7528(gp)                                |     t9 = sym.imp.g_list_find_custom;
    0x00021358 addiu a2, a2, -0x6540                             |     a2 += -0x6540;
    0x0002135c move a1, s0                                       |     a1 = s0;
    0x00021360 jalr t9                                           |     t9 ();
    0x00021364 move s2, v0                                       |     s2 = v0;
    0x00021368 lw gp, 0x28(sp)                                   |     gp = *(var_28h_2);
                                                                 |     if (v0 == 0) {
    0x0002136c beqz v0, 0x21628                                  |         goto label_9;
                                                                 |     }
    0x00021370 lw a0, -0x7fd8(gp)                                |     a0 = *(gp);
    0x00021374 lw t9, -0x71b4(gp)                                |     t9 = sym.imp.g_string_new;
                                                                 |     /* str.SELECT_ */
    0x00021378 addiu a0, a0, 0xfd0                               |     a0 += aav.0x00000fd0;
    0x0002137c jalr t9                                           |     t9 ();
    0x00021380 lw v1, (s2)                                       |     v1 = *(s2);
    0x00021384 lw gp, 0x28(sp)                                   |     gp = *(var_28h_2);
    0x00021388 move a3, zero                                     |     a3 = 0;
    0x0002138c lw a0, 4(v1)                                      |     a0 = *((v1 + 1));
    0x00021390 lw t9, -0x7c70(gp)                                |     t9 = sym.sql_count_recordings;
    0x00021394 move a2, zero                                     |     a2 = 0;
    0x00021398 move a1, s7                                       |     a1 = s7;
    0x0002139c sw zero, 0x20(sp)                                 |     *(var_20h_4) = 0;
    0x000213a0 sw zero, 0x1c(sp)                                 |     *(var_1ch_5) = 0;
    0x000213a4 sw zero, 0x18(sp)                                 |     *(var_18h_5) = 0;
    0x000213a8 sw zero, 0x14(sp)                                 |     *(var_7ch_2) = 0;
    0x000213ac sw zero, 0x10(sp)                                 |     *(var_10h_3) = 0;
    0x000213b0 move s2, v0                                       |     s2 = v0;
    0x000213b4 bal 0x3e3c0                                       |     sym_sql_count_recordings ();
    0x000213b8 lw gp, 0x28(sp)                                   |     gp = *(var_28h_2);
    0x000213bc lw a2, (v0)                                       |     a2 = *(v0);
    0x000213c0 move a0, s2                                       |     a0 = s2;
    0x000213c4 lw a1, -0x7fd8(gp)                                |     a1 = *(gp);
    0x000213c8 lw t9, -0x772c(gp)                                |     t9 = sym.imp.g_string_append_printf
                                                                 |     /* str.____s____ */
    0x000213cc addiu a1, a1, 0xfd8                               |     a1 += 0xfd8;
    0x000213d0 move s0, v0                                       |     s0 = v0;
    0x000213d4 jalr t9                                           |     t9 ();
    0x000213d8 lw gp, 0x28(sp)                                   |     gp = *(var_28h_2);
    0x000213dc addiu a1, zero, 1                                 |     a1 = 1;
    0x000213e0 lw t9, -0x75a8(gp)                                |     t9 = sym.imp.g_string_free;
    0x000213e4 move a0, s0                                       |     a0 = s0;
    0x000213e8 jalr t9                                           |     t9 ();
    0x000213ec lw gp, 0x28(sp)                                   |     gp = *(var_28h_2);
                                                                 | label_0:
    0x000213f0 lw a1, -0x7fd8(gp)                                |     a1 = *(gp);
                                                                 | label_1:
    0x000213f4 lw t9, -0x76d0(gp)                                |     t9 = sym.imp.g_string_append;
                                                                 |     /* str.__0__ */
    0x000213f8 addiu a1, a1, 0xfe4                               |     a1 += 0xfe4;
    0x000213fc move a0, s2                                       |     a0 = s2;
    0x00021400 jalr t9                                           |     t9 ();
    0x00021404 lw gp, 0x28(sp)                                   |     gp = *(var_28h_2);
    0x00021408 lw a1, (s2)                                       |     a1 = *(s2);
    0x0002140c addiu a3, sp, 0x30                                |     a3 = sp + 0x30;
    0x00021410 lw a2, -0x7d2c(gp)                                |     a2 = *(gp);
    0x00021414 lw t9, -0x7d2c(gp)                                |     t9 = *(gp);
    0x00021418 addiu a2, a2, -0x3e10                             |     a2 += -0x3e10;
                                                                 |     /* fcn.00019f9c */
    0x0002141c addiu t9, t9, -0x6064                             |     t9 += -0x6064;
    0x00021420 move a0, zero                                     |     a0 = 0;
    0x00021424 bal 0x19f9c                                       |     fcn_00019f9c ();
    0x00021428 lw gp, 0x28(sp)                                   |     gp = *(var_28h_2);
    0x0002142c move s0, v0                                       |     s0 = v0;
    0x00021430 addiu a1, zero, 1                                 |     a1 = 1;
    0x00021434 lw t9, -0x75a8(gp)                                |     t9 = sym.imp.g_string_free;
    0x00021438 move a0, s2                                       |     a0 = s2;
    0x0002143c jalr t9                                           |     t9 ();
    0x00021440 lw gp, 0x28(sp)                                   |     gp = *(var_28h_2);
                                                                 |     if (s0 != 0) {
    0x00021444 bnez s0, 0x215a8                                  |         goto label_10;
                                                                 |     }
    0x00021448 lw s0, 0x30(sp)                                   |     s0 = *(var_30h_3);
                                                                 |     do {
                                                                 | label_2:
    0x0002144c lw t9, -0x76cc(gp)                                |         t9 = sym.imp.g_rec_mutex_unlock;
    0x00021450 addiu a0, s6, -0xf58                              |         a0 = s6 + -0xf58;
    0x00021454 jalr t9                                           |         t9 ();
    0x00021458 lw gp, 0x28(sp)                                   |         gp = *(var_28h_2);
                                                                 | label_3:
    0x0002145c lw a0, 0x34(sp)                                   |         a0 = *(var_34h);
    0x00021460 lw v1, (s5)                                       |         v1 = *(s5);
    0x00021464 move v0, s0                                       |         v0 = s0;
                                                                 |         if (a0 != v1) {
    0x00021468 bne a0, v1, 0x21674                               |             goto label_11;
                                                                 |         }
    0x0002146c lw ra, 0x5c(sp)                                   |         ra = *(var_5ch_3);
    0x00021470 lw fp, 0x58(sp)                                   |         fp = *(var_58h_2);
    0x00021474 lw s7, 0x54(sp)                                   |         s7 = *(var_54h_2);
    0x00021478 lw s6, 0x50(sp)                                   |         s6 = *(var_50h_3);
    0x0002147c lw s5, 0x4c(sp)                                   |         s5 = *(var_4ch_3);
    0x00021480 lw s4, 0x48(sp)                                   |         s4 = *(var_48h_3);
    0x00021484 lw s3, 0x44(sp)                                   |         s3 = *(var_44h_2);
    0x00021488 lw s2, 0x40(sp)                                   |         s2 = *(var_40h_3);
    0x0002148c lw s1, 0x3c(sp)                                   |         s1 = *(var_3ch_3);
    0x00021490 lw s0, 0x38(sp)                                   |         s0 = *(var_38h);
    0x00021494 addiu sp, sp, 0x60                                |         
    0x00021498 jr ra                                             |         return v0;
                                                                 | label_4:
    0x0002149c lw v0, -0x7fd8(gp)                                |         v0 = *(gp);
    0x000214a0 lw a3, -0x7fd8(gp)                                |         a3 = *(gp);
    0x000214a4 lw a1, -0x7fd8(gp)                                |         a1 = *(gp);
                                                                 |         /* str.main_database */
    0x000214a8 addiu v0, v0, 0x894                               |         v0 += 0x894;
    0x000214ac lw t9, -0x76c0(gp)                                |         t9 = sym.imp.g_assertion_message_expr;
    0x000214b0 sw v0, 0x10(sp)                                   |         *(var_10h_3) = v0;
                                                                 |         /* str.database_count_recordings_by_recording_id */
    0x000214b4 addiu a3, a3, 0x2bdc                              |         a3 += 0x2bdc;
    0x000214b8 addiu a2, zero, 0xe30                             |         a2 = 0xe30;
                                                                 |         /* str.database_sql_interface.c */
    0x000214bc addiu a1, a1, 0x820                               |         a1 += 0x820;
    0x000214c0 move a0, zero                                     |         a0 = 0;
    0x000214c4 jalr t9                                           |         t9 ();
                                                                 | label_7:
    0x000214c8 move s0, zero                                     |         s0 = 0;
    0x000214cc b 0x2144c                                         |         
                                                                 |     } while (1);
                                                                 | label_6:
    0x000214d0 lw v0, -0x7fd8(gp)                                |     v0 = *(gp);
    0x000214d4 lw a3, -0x7fd8(gp)                                |     a3 = *(gp);
    0x000214d8 lw a1, -0x7fd8(gp)                                |     a1 = *(gp);
                                                                 |     /* str.main_database */
    0x000214dc addiu v0, v0, 0x894                               |     v0 += 0x894;
    0x000214e0 lw t9, -0x76c0(gp)                                |     t9 = sym.imp.g_assertion_message_expr;
    0x000214e4 sw v0, 0x10(sp)                                   |     *(var_10h_3) = v0;
                                                                 |     /* str.database_count_recordings_by_recording_id_internal */
    0x000214e8 addiu a3, a3, 0x2ba8                              |     a3 += 0x2ba8;
    0x000214ec addiu a2, zero, 0xe02                             |     a2 = 0xe02;
                                                                 |     /* str.database_sql_interface.c */
    0x000214f0 addiu a1, a1, 0x820                               |     a1 += 0x820;
    0x000214f4 move a0, zero                                     |     a0 = 0;
    0x000214f8 jalr t9                                           |     t9 ();
                                                                 | label_8:
    0x000214fc lw t9, -0x72c0(gp)                                |     t9 = sym.imp.g_list_first;
    0x00021500 jalr t9                                           |     t9 ();
    0x00021504 nop                                               |     
    0x00021508 lw gp, 0x28(sp)                                   |     gp = *(var_28h_2);
    0x0002150c move s0, v0                                       |     s0 = v0;
    0x00021510 lw a0, -0x7fd8(gp)                                |     a0 = *(gp);
    0x00021514 lw t9, -0x71b4(gp)                                |     t9 = sym.imp.g_string_new;
                                                                 |     /* str.SELECT_ */
    0x00021518 addiu a0, a0, 0xfd0                               |     a0 += aav.0x00000fd0;
    0x0002151c jalr t9                                           |     t9 ();
    0x00021520 move s2, v0                                       |     s2 = v0;
    0x00021524 lw gp, 0x28(sp)                                   |     gp = *(var_28h_2);
                                                                 |     if (s0 == 0) {
    0x00021528 beqz s0, 0x213f0                                  |         goto label_0;
                                                                 |     }
    0x0002152c lw fp, -0x7fd8(gp)                                |     fp = *(gp);
                                                                 |     /* str.____s____ */
    0x00021530 addiu fp, fp, 0xfd8                               |     fp += 0xfd8;
                                                                 |     do {
    0x00021534 lw v0, (s0)                                       |         v0 = *(s0);
    0x00021538 lw t9, -0x7c70(gp)                                |         t9 = sym.sql_count_recordings;
    0x0002153c move a3, zero                                     |         a3 = 0;
    0x00021540 lw a0, 4(v0)                                      |         a0 = *((v0 + 1));
    0x00021544 move a2, zero                                     |         a2 = 0;
    0x00021548 move a1, s7                                       |         a1 = s7;
    0x0002154c sw zero, 0x20(sp)                                 |         *(var_20h_4) = 0;
    0x00021550 sw zero, 0x1c(sp)                                 |         *(var_1ch_5) = 0;
    0x00021554 sw zero, 0x18(sp)                                 |         *(var_18h_5) = 0;
    0x00021558 sw zero, 0x14(sp)                                 |         *(var_7ch_2) = 0;
    0x0002155c sw zero, 0x10(sp)                                 |         *(var_10h_3) = 0;
    0x00021560 bal 0x3e3c0                                       |         sym_sql_count_recordings ();
    0x00021564 lw gp, 0x28(sp)                                   |         gp = *(var_28h_2);
    0x00021568 lw a2, (v0)                                       |         a2 = *(v0);
    0x0002156c move a1, fp                                       |         a1 = fp;
    0x00021570 lw t9, -0x772c(gp)                                |         t9 = sym.imp.g_string_append_printf
    0x00021574 move a0, s2                                       |         a0 = s2;
    0x00021578 move s3, v0                                       |         s3 = v0;
    0x0002157c jalr t9                                           |         t9 ();
    0x00021580 lw gp, 0x28(sp)                                   |         gp = *(var_28h_2);
    0x00021584 addiu a1, zero, 1                                 |         a1 = 1;
    0x00021588 lw t9, -0x75a8(gp)                                |         t9 = sym.imp.g_string_free;
    0x0002158c move a0, s3                                       |         a0 = s3;
    0x00021590 jalr t9                                           |         t9 ();
    0x00021594 lw s0, 4(s0)                                      |         s0 = *((s0 + 1));
    0x00021598 lw gp, 0x28(sp)                                   |         gp = *(var_28h_2);
    0x0002159c bnez s0, 0x21534                                  |         
                                                                 |     } while (s0 != 0);
    0x000215a0 lw a1, -0x7fd8(gp)                                |     a1 = *(gp);
    0x000215a4 b 0x213f4                                         |     goto label_1;
                                                                 | label_10:
    0x000215a8 lw t9, -0x7268(gp)                                |     t9 = sym.imp.sqlite3_errcode;
    0x000215ac lw a0, -0xf48(s1)                                 |     a0 = *((s1 - 978));
    0x000215b0 addiu s0, zero, -1                                |     s0 = -1;
    0x000215b4 jalr t9                                           |     t9 ();
    0x000215b8 lw gp, 0x28(sp)                                   |     gp = *(var_28h_2);
    0x000215bc lw a0, -0xf48(s1)                                 |     a0 = *((s1 - 978));
    0x000215c0 lw t9, -0x7268(gp)                                |     t9 = sym.imp.sqlite3_errcode;
    0x000215c4 move s2, v0                                       |     s2 = v0;
    0x000215c8 jalr t9                                           |     t9 ();
    0x000215cc lw gp, 0x28(sp)                                   |     gp = *(var_28h_2);
    0x000215d0 lw a0, -0xf48(s1)                                 |     a0 = *((s1 - 978));
    0x000215d4 lw t9, -0x73f8(gp)                                |     t9 = sym.imp.sqlite3_errmsg;
    0x000215d8 move s1, v0                                       |     s1 = v0;
    0x000215dc jalr t9                                           |     t9 ();
    0x000215e0 lw gp, 0x28(sp)                                   |     gp = *(var_28h_2);
    0x000215e4 sw v0, 0x1c(sp)                                   |     *(var_1ch_5) = v0;
    0x000215e8 sw s1, 0x18(sp)                                   |     *(var_18h_5) = s1;
    0x000215ec lw v0, -0x7fd8(gp)                                |     v0 = *(gp);
    0x000215f0 lw a1, -0x7fd8(gp)                                |     a1 = *(gp);
                                                                 |     /* str.SQLite_error:___d___s */
    0x000215f4 addiu v0, v0, 0x908                               |     v0 += 0x908;
    0x000215f8 sw v0, 0x14(sp)                                   |     *(var_7ch_2) = v0;
    0x000215fc lw v0, -0x7fd8(gp)                                |     v0 = *(gp);
    0x00021600 lw t9, -0x7df8(gp)                                |     t9 = sym.set_error;
                                                                 |     /* str.DatabaseError */
    0x00021604 addiu v0, v0, -0x2648                             |     v0 += -0x2648;
    0x00021608 sw v0, 0x10(sp)                                   |     *(var_10h_3) = v0;
    0x0002160c move a3, s2                                       |     a3 = s2;
    0x00021610 addiu a2, zero, 0xe22                             |     a2 = 0xe22;
                                                                 |     /* esilref: 'database_count_recordings_by_recording_id_internal' */
    0x00021614 addiu a1, a1, 0x2b74                              |     a1 += 0x2b74;
    0x00021618 move a0, s4                                       |     a0 = s4;
    0x0002161c jalr t9                                           |     t9 ();
    0x00021620 lw gp, 0x28(sp)                                   |     gp = *(var_28h_2);
    0x00021624 b 0x2144c                                         |     goto label_2;
                                                                 | label_9:
    0x00021628 lw v0, -0x7fd8(gp)                                |     v0 = *(gp);
    0x0002162c lw a1, -0x7fd8(gp)                                |     a1 = *(gp);
                                                                 |     /* str.Database__s_does_not_exist */
    0x00021630 addiu v0, v0, 0xb4c                               |     v0 += 0xb4c;
    0x00021634 sw v0, 0x14(sp)                                   |     *(var_7ch_2) = v0;
    0x00021638 lw v0, -0x7fd8(gp)                                |     v0 = *(gp);
    0x0002163c lw t9, -0x7df8(gp)                                |     t9 = sym.set_error;
                                                                 |     /* str.DatabaseError */
    0x00021640 addiu v0, v0, -0x2648                             |     v0 += -0x2648;
    0x00021644 sw s0, 0x18(sp)                                   |     *(var_18h_5) = s0;
    0x00021648 sw v0, 0x10(sp)                                   |     *(var_10h_3) = v0;
    0x0002164c move a3, zero                                     |     a3 = 0;
    0x00021650 addiu a2, zero, 0xe0a                             |     a2 = 0xe0a;
                                                                 |     /* esilref: 'database_count_recordings_by_recording_id_internal' */
    0x00021654 addiu a1, a1, 0x2b74                              |     a1 += 0x2b74;
    0x00021658 move a0, s4                                       |     a0 = s4;
    0x0002165c jalr t9                                           |     t9 ();
    0x00021660 addiu s0, zero, -1                                |     s0 = -1;
    0x00021664 lw gp, 0x28(sp)                                   |     gp = *(var_28h_2);
    0x00021668 b 0x2144c                                         |     goto label_2;
                                                                 | label_5:
    0x0002166c addiu s0, zero, -1                                |     s0 = -1;
    0x00021670 b 0x2145c                                         |     goto label_3;
                                                                 | label_11:
    0x00021674 lw t9, -0x7494(gp)                                |     t9 = sym.imp.__stack_chk_fail;
    0x00021678 jalr t9                                           |     t9 ();
    0x0002167c nop                                               |     
                                                                 | }
    ; assembly                                                   | /* r2dec pseudo code output */
                                                                 | /* /logs/firmware/unblob_extracted/firmware_extract/4325012-58052244.squashfs_v4_le_extract/usr/bin/indexer @ 0x248a4 */
                                                                 | #include <stdint.h>
                                                                 |  
    ; (fcn) sym.database_count_recordings_by_time_iso8601 ()     | void database_count_recordings_by_time_iso8601 () {
    0x000248a4 lui gp, 6                                         |     
    0x000248a8 addiu gp, gp, 0x185c                              |     
    0x000248ac addu gp, gp, t9                                   |     gp += t9;
    0x000248b0 lw v0, -0x71a0(gp)                                |     v0 = *((gp - 7272));
    0x000248b4 lw t0, -0x7fd4(gp)                                |     t0 = *((gp - 8181));
    0x000248b8 addiu sp, sp, -0x78                               |     
    0x000248bc lw v1, (v0)                                       |     v1 = *(v0);
    0x000248c0 sw s4, 0x60(sp)                                   |     *(var_60h) = s4;
    0x000248c4 sw v0, 0x3c(sp)                                   |     *(var_3ch) = v0;
    0x000248c8 move s4, a3                                       |     s4 = a3;
    0x000248cc lw v0, -0xf48(t0)                                 |     v0 = *((t0 - 978));
    0x000248d0 lw a3, 0x98(sp)                                   |     a3 = *(arg_98h);
    0x000248d4 sw gp, 0x28(sp)                                   |     *(var_28h) = gp;
    0x000248d8 sw s6, 0x68(sp)                                   |     *(var_68h) = s6;
    0x000248dc sw s5, 0x64(sp)                                   |     *(var_64h) = s5;
    0x000248e0 sw s3, 0x5c(sp)                                   |     *(var_5ch) = s3;
    0x000248e4 sw ra, 0x74(sp)                                   |     *(var_74h) = ra;
    0x000248e8 sw fp, 0x70(sp)                                   |     *(var_70h) = fp;
    0x000248ec sw s7, 0x6c(sp)                                   |     *(var_6ch) = s7;
    0x000248f0 sw s2, 0x58(sp)                                   |     *(var_58h) = s2;
    0x000248f4 sw s1, 0x54(sp)                                   |     *(var_54h) = s1;
    0x000248f8 sw s0, 0x50(sp)                                   |     *(var_50h) = s0;
    0x000248fc sw t0, 0x40(sp)                                   |     *(var_40h) = t0;
    0x00024900 lw s5, 0x88(sp)                                   |     s5 = *(arg_88h);
    0x00024904 lw s6, 0x8c(sp)                                   |     s6 = *(arg_8ch);
    0x00024908 lw s3, 0x90(sp)                                   |     s3 = *(arg_90h);
    0x0002490c sw a3, 0x38(sp)                                   |     *(var_38h) = a3;
    0x00024910 sw v1, 0x4c(sp)                                   |     *(var_4ch) = v1;
    0x00024914 lw t9, -0x7ca4(gp)                                |     t9 = sym.validate_iso8601_times;
                                                                 |     if (v0 == 0) {
    0x00024918 beqz v0, 0x24adc                                  |         goto label_4;
                                                                 |     }
    0x0002491c move s0, a1                                       |     s0 = a1;
    0x00024920 move s1, a2                                       |     s1 = a2;
    0x00024924 move s2, a0                                       |     s2 = a0;
    0x00024928 addiu a2, zero, 1                                 |     a2 = 1;
    0x0002492c move a1, s1                                       |     a1 = s1;
    0x00024930 move a0, s0                                       |     a0 = s0;
    0x00024934 bal 0x42124                                       |     sym_validate_iso8601_times ();
    0x00024938 lw gp, 0x28(sp)                                   |     gp = *(var_28h);
                                                                 |     if (v0 == 0) {
    0x0002493c beqz v0, 0x24c90                                  |         goto label_5;
                                                                 |     }
    0x00024940 lw t9, -0x7d24(gp)                                |     t9 = sym.sql_valid_storage_name;
    0x00024944 lw a1, 0x38(sp)                                   |     a1 = *(var_38h);
    0x00024948 move a0, s2                                       |     a0 = s2;
    0x0002494c bal 0x3a5d4                                       |     sym_sql_valid_storage_name ();
    0x00024950 lw gp, 0x28(sp)                                   |     gp = *(var_28h);
                                                                 |     if (v0 != 0) {
    0x00024954 bnez v0, 0x2499c                                  |         goto label_6;
                                                                 |     }
    0x00024958 move v0, zero                                     |     v0 = 0;
                                                                 |     do {
                                                                 | label_3:
    0x0002495c lw v1, 0x3c(sp)                                   |         v1 = *(var_3ch);
    0x00024960 lw a0, 0x4c(sp)                                   |         a0 = *(var_4ch);
    0x00024964 lw v1, (v1)                                       |         v1 = *(v1);
    0x00024968 lw ra, 0x74(sp)                                   |         ra = *(var_74h);
                                                                 |         if (a0 != v1) {
    0x0002496c bne a0, v1, 0x24c98                               |             goto label_7;
                                                                 |         }
    0x00024970 lw fp, 0x70(sp)                                   |         fp = *(var_70h);
    0x00024974 lw s7, 0x6c(sp)                                   |         s7 = *(var_6ch);
    0x00024978 lw s6, 0x68(sp)                                   |         s6 = *(var_68h);
    0x0002497c lw s5, 0x64(sp)                                   |         s5 = *(var_64h);
    0x00024980 lw s4, 0x60(sp)                                   |         s4 = *(var_60h);
    0x00024984 lw s3, 0x5c(sp)                                   |         s3 = *(var_5ch);
    0x00024988 lw s2, 0x58(sp)                                   |         s2 = *(var_58h);
    0x0002498c lw s1, 0x54(sp)                                   |         s1 = *(var_54h);
    0x00024990 lw s0, 0x50(sp)                                   |         s0 = *(var_50h);
    0x00024994 addiu sp, sp, 0x78                                |         
    0x00024998 jr ra                                             |         return v0;
                                                                 | label_6:
    0x0002499c lw v0, -0x7fd4(gp)                                |         v0 = *((gp - 8181));
    0x000249a0 lw t9, -0x7688(gp)                                |         t9 = sym.imp.g_rec_mutex_lock;
    0x000249a4 sw v0, 0x44(sp)                                   |         *(var_44h) = v0;
    0x000249a8 addiu a0, v0, -0xf58                              |         a0 = v0 + -0xf58;
    0x000249ac jalr t9                                           |         t9 ();
    0x000249b0 lw gp, 0x28(sp)                                   |         gp = *(var_28h);
                                                                 |         if (s2 == 0) {
    0x000249b4 beqz s2, 0x24b90                                  |             goto label_8;
                                                                 |         }
    0x000249b8 lw v0, -0x7fd4(gp)                                |         v0 = *((gp - 8181));
    0x000249bc lw a2, -0x7d2c(gp)                                |         a2 = *(gp);
    0x000249c0 lw t9, -0x7528(gp)                                |         t9 = sym.imp.g_list_find_custom;
    0x000249c4 lw a0, -0xf4c(v0)                                 |         a0 = *((v0 - 979));
    0x000249c8 addiu a2, a2, -0x6540                             |         a2 += -0x6540;
    0x000249cc move a1, s2                                       |         a1 = s2;
    0x000249d0 jalr t9                                           |         t9 ();
    0x000249d4 move s7, v0                                       |         s7 = v0;
    0x000249d8 lw gp, 0x28(sp)                                   |         gp = *(var_28h);
                                                                 |         if (v0 == 0) {
    0x000249dc beqz v0, 0x24c48                                  |             goto label_9;
                                                                 |         }
    0x000249e0 lw a0, -0x7fd8(gp)                                |         a0 = *(gp);
    0x000249e4 lw t9, -0x71b4(gp)                                |         t9 = sym.imp.g_string_new;
                                                                 |         /* str.SELECT_ */
    0x000249e8 addiu a0, a0, 0xfd0                               |         a0 += aav.0x00000fd0;
    0x000249ec jalr t9                                           |         t9 ();
    0x000249f0 lw v1, (s7)                                       |         v1 = *(s7);
    0x000249f4 lw gp, 0x28(sp)                                   |         gp = *(var_28h);
    0x000249f8 move a3, s1                                       |         a3 = s1;
    0x000249fc lw a0, 4(v1)                                      |         a0 = *((v1 + 1));
    0x00024a00 lw v1, 0x94(sp)                                   |         v1 = *(arg_94h);
    0x00024a04 lw t9, -0x7c70(gp)                                |         t9 = sym.sql_count_recordings;
    0x00024a08 move a2, s0                                       |         a2 = s0;
    0x00024a0c sw v1, 0x20(sp)                                   |         *(var_20h_2) = v1;
    0x00024a10 move a1, zero                                     |         a1 = 0;
    0x00024a14 sw s6, 0x1c(sp)                                   |         *(var_1ch) = s6;
    0x00024a18 sw s5, 0x18(sp)                                   |         *(var_18h) = s5;
    0x00024a1c sw s4, 0x14(sp)                                   |         *(var_14h) = s4;
    0x00024a20 sw s3, 0x10(sp)                                   |         *(var_10h) = s3;
    0x00024a24 move s2, v0                                       |         s2 = v0;
    0x00024a28 bal 0x3e3c0                                       |         sym_sql_count_recordings ();
    0x00024a2c lw gp, 0x28(sp)                                   |         gp = *(var_28h);
    0x00024a30 lw a2, (v0)                                       |         a2 = *(v0);
    0x00024a34 move a0, s2                                       |         a0 = s2;
    0x00024a38 lw a1, -0x7fd8(gp)                                |         a1 = *(gp);
    0x00024a3c lw t9, -0x772c(gp)                                |         t9 = sym.imp.g_string_append_printf
                                                                 |         /* str.___s____ */
    0x00024a40 addiu a1, a1, 0x1168                              |         a1 += 0x1168;
    0x00024a44 move s0, v0                                       |         s0 = v0;
    0x00024a48 jalr t9                                           |         t9 ();
    0x00024a4c lw gp, 0x28(sp)                                   |         gp = *(var_28h);
    0x00024a50 addiu a1, zero, 1                                 |         a1 = 1;
    0x00024a54 lw t9, -0x75a8(gp)                                |         t9 = sym.imp.g_string_free;
    0x00024a58 move a0, s0                                       |         a0 = s0;
    0x00024a5c jalr t9                                           |         t9 ();
    0x00024a60 lw gp, 0x28(sp)                                   |         gp = *(var_28h);
                                                                 | label_1:
    0x00024a64 lw a1, -0x7fd8(gp)                                |         a1 = *(gp);
                                                                 | label_2:
    0x00024a68 lw t9, -0x76d0(gp)                                |         t9 = sym.imp.g_string_append;
                                                                 |         /* str.__0__ */
    0x00024a6c addiu a1, a1, 0xfe4                               |         a1 += 0xfe4;
    0x00024a70 move a0, s2                                       |         a0 = s2;
    0x00024a74 jalr t9                                           |         t9 ();
    0x00024a78 lw gp, 0x28(sp)                                   |         gp = *(var_28h);
    0x00024a7c lw a1, (s2)                                       |         a1 = *(s2);
    0x00024a80 addiu a3, sp, 0x48                                |         a3 = sp + 0x48;
    0x00024a84 lw a2, -0x7d2c(gp)                                |         a2 = *(gp);
    0x00024a88 lw t9, -0x7d2c(gp)                                |         t9 = *(gp);
    0x00024a8c addiu a2, a2, -0x3e10                             |         a2 += -0x3e10;
    0x00024a90 move a0, zero                                     |         a0 = 0;
                                                                 |         /* fcn.00019f9c */
    0x00024a94 addiu t9, t9, -0x6064                             |         t9 += -0x6064;
    0x00024a98 sw zero, 0x48(sp)                                 |         *(var_48h) = 0;
    0x00024a9c bal 0x19f9c                                       |         fcn_00019f9c ();
    0x00024aa0 lw gp, 0x28(sp)                                   |         gp = *(var_28h);
    0x00024aa4 move s0, v0                                       |         s0 = v0;
    0x00024aa8 addiu a1, zero, 1                                 |         a1 = 1;
    0x00024aac lw t9, -0x75a8(gp)                                |         t9 = sym.imp.g_string_free;
    0x00024ab0 move a0, s2                                       |         a0 = s2;
    0x00024ab4 jalr t9                                           |         t9 ();
    0x00024ab8 lw gp, 0x28(sp)                                   |         gp = *(var_28h);
                                                                 |         if (s0 != 0) {
    0x00024abc bnez s0, 0x24b08                                  |             goto label_10;
                                                                 |         }
                                                                 | label_0:
    0x00024ac0 lw v0, 0x44(sp)                                   |         v0 = *(var_44h);
    0x00024ac4 lw t9, -0x76cc(gp)                                |         t9 = sym.imp.g_rec_mutex_unlock;
    0x00024ac8 addiu a0, v0, -0xf58                              |         a0 = v0 + -0xf58;
    0x00024acc jalr t9                                           |         t9 ();
    0x00024ad0 lw gp, 0x28(sp)                                   |         gp = *(var_28h);
    0x00024ad4 lw v0, 0x48(sp)                                   |         v0 = *(var_48h);
    0x00024ad8 b 0x2495c                                         |         
                                                                 |     } while (1);
                                                                 | label_4:
    0x00024adc lw v0, -0x7fd8(gp)                                |     v0 = *(gp);
    0x00024ae0 lw a3, -0x7fd8(gp)                                |     a3 = *(gp);
    0x00024ae4 lw a1, -0x7fd8(gp)                                |     a1 = *(gp);
                                                                 |     /* str.main_database */
    0x00024ae8 addiu v0, v0, 0x894                               |     v0 += 0x894;
    0x00024aec lw t9, -0x76c0(gp)                                |     t9 = sym.imp.g_assertion_message_expr;
    0x00024af0 sw v0, 0x10(sp)                                   |     *(var_10h) = v0;
                                                                 |     /* str.database_count_recordings_by_time_iso8601 */
    0x00024af4 addiu a3, a3, 0x2578                              |     a3 += 0x2578;
    0x00024af8 addiu a2, zero, 0x132e                            |     a2 = 0x132e;
                                                                 |     /* str.database_sql_interface.c */
    0x00024afc addiu a1, a1, 0x820                               |     a1 += 0x820;
    0x00024b00 move a0, zero                                     |     a0 = 0;
    0x00024b04 jalr t9                                           |     t9 ();
                                                                 | label_10:
    0x00024b08 lw s1, 0x40(sp)                                   |     s1 = *(var_40h);
    0x00024b0c lw t9, -0x7268(gp)                                |     t9 = sym.imp.sqlite3_errcode;
    0x00024b10 lw a0, -0xf48(s1)                                 |     a0 = *((s1 - 978));
    0x00024b14 jalr t9                                           |     t9 ();
    0x00024b18 lw gp, 0x28(sp)                                   |     gp = *(var_28h);
    0x00024b1c lw a0, -0xf48(s1)                                 |     a0 = *((s1 - 978));
    0x00024b20 lw t9, -0x7268(gp)                                |     t9 = sym.imp.sqlite3_errcode;
    0x00024b24 move s0, v0                                       |     s0 = v0;
    0x00024b28 jalr t9                                           |     t9 ();
    0x00024b2c lw gp, 0x28(sp)                                   |     gp = *(var_28h);
    0x00024b30 lw a0, -0xf48(s1)                                 |     a0 = *((s1 - 978));
    0x00024b34 lw t9, -0x73f8(gp)                                |     t9 = sym.imp.sqlite3_errmsg;
    0x00024b38 move s1, v0                                       |     s1 = v0;
    0x00024b3c jalr t9                                           |     t9 ();
    0x00024b40 lw gp, 0x28(sp)                                   |     gp = *(var_28h);
    0x00024b44 sw v0, 0x1c(sp)                                   |     *(var_1ch) = v0;
    0x00024b48 lw a0, 0x38(sp)                                   |     a0 = *(var_38h);
    0x00024b4c lw v0, -0x7fd8(gp)                                |     v0 = *(gp);
    0x00024b50 lw a1, -0x7fd8(gp)                                |     a1 = *(gp);
                                                                 |     /* str.SQLite_error:___d___s */
    0x00024b54 addiu v0, v0, 0x908                               |     v0 += 0x908;
    0x00024b58 sw v0, 0x14(sp)                                   |     *(var_14h) = v0;
    0x00024b5c lw v0, -0x7fd8(gp)                                |     v0 = *(gp);
    0x00024b60 lw t9, -0x7df8(gp)                                |     t9 = sym.set_error;
                                                                 |     /* str.DatabaseError */
    0x00024b64 addiu v0, v0, -0x2648                             |     v0 += -0x2648;
    0x00024b68 sw v0, 0x10(sp)                                   |     *(var_10h) = v0;
    0x00024b6c sw s1, 0x18(sp)                                   |     *(var_18h) = s1;
    0x00024b70 move a3, s0                                       |     a3 = s0;
    0x00024b74 addiu a2, zero, 0x1359                            |     a2 = 0x1359;
                                                                 |     /* esilref: 'database_count_recordings_by_time_iso8601' */
    0x00024b78 addiu a1, a1, 0x254c                              |     a1 += 0x254c;
    0x00024b7c bal 0x422c0                                       |     sym_set_error ();
    0x00024b80 addiu v0, zero, -1                                |     v0 = -1;
    0x00024b84 lw gp, 0x28(sp)                                   |     gp = *(var_28h);
    0x00024b88 sw v0, 0x48(sp)                                   |     *(var_48h) = v0;
    0x00024b8c b 0x24ac0                                         |     goto label_0;
                                                                 | label_8:
    0x00024b90 lw v0, -0x7fd4(gp)                                |     v0 = *((gp - 8181));
    0x00024b94 lw t9, -0x72c0(gp)                                |     t9 = sym.imp.g_list_first;
    0x00024b98 lw a0, -0xf4c(v0)                                 |     a0 = *((v0 - 979));
    0x00024b9c jalr t9                                           |     t9 ();
    0x00024ba0 lw gp, 0x28(sp)                                   |     gp = *(var_28h);
    0x00024ba4 move fp, v0                                       |     fp = v0;
    0x00024ba8 lw a0, -0x7fd8(gp)                                |     a0 = *(gp);
    0x00024bac lw t9, -0x71b4(gp)                                |     t9 = sym.imp.g_string_new;
                                                                 |     /* str.SELECT_ */
    0x00024bb0 addiu a0, a0, 0xfd0                               |     a0 += aav.0x00000fd0;
    0x00024bb4 jalr t9                                           |     t9 ();
    0x00024bb8 move s2, v0                                       |     s2 = v0;
    0x00024bbc lw gp, 0x28(sp)                                   |     gp = *(var_28h);
                                                                 |     if (fp == 0) {
    0x00024bc0 beqz fp, 0x24a64                                  |         goto label_1;
                                                                 |     }
    0x00024bc4 lw s7, -0x7fd8(gp)                                |     s7 = *(gp);
                                                                 |     /* str.___s____ */
    0x00024bc8 addiu s7, s7, 0x1168                              |     s7 += 0x1168;
                                                                 |     do {
    0x00024bcc lw v0, (fp)                                       |         v0 = *(fp);
    0x00024bd0 lw t9, -0x7c70(gp)                                |         t9 = sym.sql_count_recordings;
    0x00024bd4 move a3, s1                                       |         a3 = s1;
    0x00024bd8 lw a0, 4(v0)                                      |         a0 = *((v0 + 1));
    0x00024bdc lw v0, 0x94(sp)                                   |         v0 = *(arg_94h);
    0x00024be0 move a2, s0                                       |         a2 = s0;
    0x00024be4 move a1, zero                                     |         a1 = 0;
    0x00024be8 sw v0, 0x20(sp)                                   |         *(var_20h_2) = v0;
    0x00024bec sw s6, 0x1c(sp)                                   |         *(var_1ch) = s6;
    0x00024bf0 sw s5, 0x18(sp)                                   |         *(var_18h) = s5;
    0x00024bf4 sw s4, 0x14(sp)                                   |         *(var_14h) = s4;
    0x00024bf8 sw s3, 0x10(sp)                                   |         *(var_10h) = s3;
    0x00024bfc bal 0x3e3c0                                       |         sym_sql_count_recordings ();
    0x00024c00 lw gp, 0x28(sp)                                   |         gp = *(var_28h);
    0x00024c04 lw a2, (v0)                                       |         a2 = *(v0);
    0x00024c08 sw v0, 0x34(sp)                                   |         *(var_34h_2) = v0;
    0x00024c0c lw t9, -0x772c(gp)                                |         t9 = sym.imp.g_string_append_printf
    0x00024c10 move a1, s7                                       |         a1 = s7;
    0x00024c14 move a0, s2                                       |         a0 = s2;
    0x00024c18 jalr t9                                           |         t9 ();
    0x00024c1c lw gp, 0x28(sp)                                   |         gp = *(var_28h);
    0x00024c20 lw v0, 0x34(sp)                                   |         v0 = *(var_34h_2);
    0x00024c24 addiu a1, zero, 1                                 |         a1 = 1;
    0x00024c28 lw t9, -0x75a8(gp)                                |         t9 = sym.imp.g_string_free;
    0x00024c2c move a0, v0                                       |         a0 = v0;
    0x00024c30 jalr t9                                           |         t9 ();
    0x00024c34 lw fp, 4(fp)                                      |         fp = *(arg_4h);
    0x00024c38 lw gp, 0x28(sp)                                   |         gp = *(var_28h);
    0x00024c3c bnez fp, 0x24bcc                                  |         
                                                                 |     } while (fp != 0);
    0x00024c40 lw a1, -0x7fd8(gp)                                |     a1 = *(gp);
    0x00024c44 b 0x24a68                                         |     goto label_2;
                                                                 | label_9:
    0x00024c48 lw v0, -0x7fd8(gp)                                |     v0 = *(gp);
    0x00024c4c lw a1, -0x7fd8(gp)                                |     a1 = *(gp);
                                                                 |     /* str.Database__s_does_not_exist */
    0x00024c50 addiu v0, v0, 0xb4c                               |     v0 += 0xb4c;
    0x00024c54 sw v0, 0x14(sp)                                   |     *(var_14h) = v0;
    0x00024c58 lw v0, -0x7fd8(gp)                                |     v0 = *(gp);
    0x00024c5c lw t9, -0x7df8(gp)                                |     t9 = sym.set_error;
                                                                 |     /* str.DatabaseError */
    0x00024c60 addiu v0, v0, -0x2648                             |     v0 += -0x2648;
    0x00024c64 lw a0, 0x38(sp)                                   |     a0 = *(var_38h);
    0x00024c68 sw v0, 0x10(sp)                                   |     *(var_10h) = v0;
    0x00024c6c sw s2, 0x18(sp)                                   |     *(var_18h) = s2;
    0x00024c70 move a3, zero                                     |     a3 = 0;
    0x00024c74 addiu a2, zero, 0x133c                            |     a2 = 0x133c;
                                                                 |     /* esilref: 'database_count_recordings_by_time_iso8601' */
    0x00024c78 addiu a1, a1, 0x254c                              |     a1 += 0x254c;
    0x00024c7c bal 0x422c0                                       |     sym_set_error ();
    0x00024c80 addiu v0, zero, -1                                |     v0 = -1;
    0x00024c84 lw gp, 0x28(sp)                                   |     gp = *(var_28h);
    0x00024c88 sw v0, 0x48(sp)                                   |     *(var_48h) = v0;
    0x00024c8c b 0x24ac0                                         |     goto label_0;
                                                                 | label_5:
    0x00024c90 addiu v0, zero, -1                                |     v0 = -1;
    0x00024c94 b 0x2495c                                         |     goto label_3;
                                                                 | label_7:
    0x00024c98 lw t9, -0x7494(gp)                                |     t9 = sym.imp.__stack_chk_fail;
    0x00024c9c jalr t9                                           |     t9 ();
    0x00024ca0 nop                                               |     
                                                                 | }
    ; assembly                                                                   | /* r2dec pseudo code output */
                                                                                 | /* /logs/firmware/unblob_extracted/firmware_extract/4325012-58052244.squashfs_v4_le_extract/usr/bin/indexer @ 0x2aa7c */
                                                                                 | #include <stdint.h>
                                                                                 |  
    ; (fcn) sym.database_find_times_in_groups_between_times_iso8601 ()           | void database_find_times_in_groups_between_times_iso8601 () {
    0x0002aa7c lui gp, 6                                                         |     
    0x0002aa80 addiu gp, gp, -0x497c                                             |     
    0x0002aa84 addu gp, gp, t9                                                   |     gp += t9;
    0x0002aa88 lw v0, -0x71a0(gp)                                                |     v0 = *((gp - 7272));
    0x0002aa8c addiu sp, sp, -0xa8                                               |     
    0x0002aa90 lw v1, -0x7fd4(gp)                                                |     v1 = *((gp - 8181));
    0x0002aa94 sw s2, 0x88(sp)                                                   |     *(var_88h) = s2;
    0x0002aa98 sw v0, 0x68(sp)                                                   |     *(var_68h) = v0;
    0x0002aa9c sw v1, 0x64(sp)                                                   |     *(var_64h) = v1;
    0x0002aaa0 lw v0, (v0)                                                       |     v0 = *(v0);
    0x0002aaa4 move s2, a0                                                       |     s2 = a0;
    0x0002aaa8 addiu a0, v1, -0xf58                                              |     a0 = v1 + -0xf58;
    0x0002aaac lw v1, 0xc8(sp)                                                   |     v1 = *(arg_c8h);
    0x0002aab0 lw t9, -0x7688(gp)                                                |     t9 = sym.imp.g_rec_mutex_lock;
    0x0002aab4 sw ra, 0xa4(sp)                                                   |     *(var_a4h) = ra;
    0x0002aab8 sw a3, 0xb4(sp)                                                   |     *(arg_b4h) = a3;
    0x0002aabc sw v1, 0x6c(sp)                                                   |     *(var_6ch) = v1;
    0x0002aac0 sw gp, 0x28(sp)                                                   |     *(var_28h) = gp;
    0x0002aac4 sw s7, 0x9c(sp)                                                   |     *(var_9ch) = s7;
    0x0002aac8 sw s6, 0x98(sp)                                                   |     *(var_98h) = s6;
    0x0002aacc sw s5, 0x94(sp)                                                   |     *(var_94h) = s5;
    0x0002aad0 sw s4, 0x90(sp)                                                   |     *(var_90h) = s4;
    0x0002aad4 sw s3, 0x8c(sp)                                                   |     *(var_8ch) = s3;
    0x0002aad8 sw s1, 0x84(sp)                                                   |     *(var_84h) = s1;
    0x0002aadc sw s0, 0x80(sp)                                                   |     *(var_80h) = s0;
    0x0002aae0 sw v0, 0x7c(sp)                                                   |     *(var_7ch) = v0;
    0x0002aae4 sw fp, 0xa0(sp)                                                   |     *(var_a0h) = fp;
    0x0002aae8 move s4, a1                                                       |     s4 = a1;
    0x0002aaec move s5, a2                                                       |     s5 = a2;
    0x0002aaf0 lw s1, 0xc4(sp)                                                   |     s1 = *(arg_c4h);
    0x0002aaf4 lw s3, 0xc0(sp)                                                   |     s3 = *(arg_c0h);
    0x0002aaf8 jalr t9                                                           |     t9 ();
    0x0002aafc lw gp, 0x28(sp)                                                   |     gp = *(var_28h);
    0x0002ab00 lw v0, -0x7fd4(gp)                                                |     v0 = *((gp - 8181));
    0x0002ab04 lw t9, -0x72c0(gp)                                                |     t9 = sym.imp.g_list_first;
    0x0002ab08 lw s0, -0x7fd8(gp)                                                |     s0 = *(gp);
    0x0002ab0c lw a0, -0xf4c(v0)                                                 |     a0 = *((v0 - 979));
    0x0002ab10 jalr t9                                                           |     t9 ();
    0x0002ab14 lw gp, 0x28(sp)                                                   |     gp = *(var_28h);
    0x0002ab18 addiu a0, s0, 0x403c                                              |     a0 = s0 + 0x403c;
    0x0002ab1c sw s1, 0x78(sp)                                                   |     *(var_78h) = s1;
    0x0002ab20 lw t9, -0x71b4(gp)                                                |     t9 = sym.imp.g_string_new;
    0x0002ab24 sw s3, 0x74(sp)                                                   |     *(var_74h) = s3;
    0x0002ab28 sw zero, 0x70(sp)                                                 |     *(var_70h) = 0;
    0x0002ab2c move s7, v0                                                       |     s7 = v0;
    0x0002ab30 jalr t9                                                           |     t9 ();
    0x0002ab34 lw gp, 0x28(sp)                                                   |     gp = *(var_28h);
    0x0002ab38 addiu a0, s0, 0x403c                                              |     a0 = s0 + 0x403c;
    0x0002ab3c lw t9, -0x71b4(gp)                                                |     t9 = sym.imp.g_string_new;
    0x0002ab40 move s1, v0                                                       |     s1 = v0;
    0x0002ab44 jalr t9                                                           |     t9 ();
    0x0002ab48 lw gp, 0x28(sp)                                                   |     gp = *(var_28h);
    0x0002ab4c move a2, s2                                                       |     a2 = s2;
    0x0002ab50 move a0, v0                                                       |     a0 = v0;
    0x0002ab54 lw a1, -0x7fd8(gp)                                                |     a1 = *(gp);
    0x0002ab58 lw t9, -0x7bbc(gp)                                                |     t9 = sym.sql_create_where_equals_string;
                                                                                 |     /* esilref: 'recording_group_id' */
    0x0002ab5c addiu a1, a1, 0x80c                                               |     a1 += 0x80c;
    0x0002ab60 move s6, v0                                                       |     s6 = v0;
    0x0002ab64 bal 0x3a8c8                                                       |     sym_sql_create_where_equals_string ();
    0x0002ab68 lw gp, 0x28(sp)                                                   |     gp = *(var_28h);
                                                                                 |     if (s7 == 0) {
    0x0002ab6c beqz s7, 0x2ad8c                                                  |         goto label_0;
                                                                                 |     }
    0x0002ab70 lw v0, -0x7fd8(gp)                                                |     v0 = *(gp);
    0x0002ab74 lw s3, -0x7fd8(gp)                                                |     s3 = *(gp);
    0x0002ab78 sw v0, 0x48(sp)                                                   |     *(var_48h_2) = v0;
    0x0002ab7c lw v0, -0x7fd8(gp)                                                |     v0 = *(gp);
                                                                                 |     /* esilref: 'recordings' */
    0x0002ab80 addiu s3, s3, -0x21e8                                             |     s3 += -0x21e8;
    0x0002ab84 sw v0, 0x44(sp)                                                   |     *(var_44h_2) = v0;
    0x0002ab88 lw v0, -0x7fd8(gp)                                                |     v0 = *(gp);
    0x0002ab8c sw v0, 0x3c(sp)                                                   |     *(var_3ch_2) = v0;
    0x0002ab90 lw v0, -0x7fd8(gp)                                                |     v0 = *(gp);
    0x0002ab94 sw v0, 0x4c(sp)                                                   |     *(var_4ch_2) = v0;
    0x0002ab98 lw v0, -0x7fd8(gp)                                                |     v0 = *(gp);
    0x0002ab9c sw v0, 0x50(sp)                                                   |     *(var_50h_2) = v0;
    0x0002aba0 lw v0, -0x7fd8(gp)                                                |     v0 = *(gp);
    0x0002aba4 sw v0, 0x40(sp)                                                   |     *(var_40h_2) = v0;
    0x0002aba8 lw v0, -0x7fd8(gp)                                                |     v0 = *(gp);
    0x0002abac sw v0, 0x54(sp)                                                   |     *(var_54h_2) = v0;
    0x0002abb0 lw v0, -0x7fd8(gp)                                                |     v0 = *(gp);
    0x0002abb4 sw v0, 0x58(sp)                                                   |     *(var_58h_2) = v0;
    0x0002abb8 lw v0, -0x7fd8(gp)                                                |     v0 = *(gp);
                                                                                 |     /* str.recording_groups */
    0x0002abbc addiu v0, v0, 0xa24                                               |     v0 += 0xa24;
    0x0002abc0 sw v0, 0x5c(sp)                                                   |     *(var_5ch_2) = v0;
    0x0002abc4 lw v0, -0x7fd8(gp)                                                |     v0 = *(gp);
                                                                                 |     /* str._UNION_ */
    0x0002abc8 addiu v0, v0, 0xca0                                               |     v0 += 0xca0;
    0x0002abcc sw v0, 0x60(sp)                                                   |     *(var_60h_2) = v0;
                                                                                 |     do {
    0x0002abd0 lw v0, (s7)                                                       |         v0 = *(s7);
    0x0002abd4 lw t9, -0x7cec(gp)                                                |         t9 = sym.sql_table_with_storage_name;
    0x0002abd8 move a1, s3                                                       |         a1 = s3;
    0x0002abdc lw s0, 4(v0)                                                      |         s0 = *((v0 + 1));
    0x0002abe0 move a0, s0                                                       |         a0 = s0;
    0x0002abe4 bal 0x39fd0                                                       |         sym_sql_table_with_storage_name ();
    0x0002abe8 lw gp, 0x28(sp)                                                   |         gp = *(var_28h);
    0x0002abec lw a1, 0x5c(sp)                                                   |         a1 = *(var_5ch_2);
    0x0002abf0 move a0, s0                                                       |         a0 = s0;
    0x0002abf4 lw t9, -0x7cec(gp)                                                |         t9 = sym.sql_table_with_storage_name;
    0x0002abf8 sw v0, 0x38(sp)                                                   |         *(var_38h) = v0;
    0x0002abfc bal 0x39fd0                                                       |         sym_sql_table_with_storage_name ();
    0x0002ac00 lw gp, 0x28(sp)                                                   |         gp = *(var_28h);
    0x0002ac04 addiu v1, zero, 1                                                 |         v1 = 1;
    0x0002ac08 move a3, s4                                                       |         a3 = s4;
    0x0002ac0c lw t9, -0x7cf4(gp)                                                |         t9 = sym.sql_where_stmt;
    0x0002ac10 move a2, zero                                                     |         a2 = 0;
    0x0002ac14 move a0, s0                                                       |         a0 = s0;
    0x0002ac18 move a1, s3                                                       |         a1 = s3;
    0x0002ac1c sw v1, 0x24(sp)                                                   |         *(var_24h) = v1;
    0x0002ac20 sw zero, 0x20(sp)                                                 |         *(var_20h_2) = 0;
    0x0002ac24 sw zero, 0x1c(sp)                                                 |         *(var_1ch) = 0;
    0x0002ac28 sw zero, 0x18(sp)                                                 |         *(var_18h) = 0;
    0x0002ac2c sw zero, 0x14(sp)                                                 |         *(var_14h) = 0;
    0x0002ac30 sw s5, 0x10(sp)                                                   |         *(var_10h) = s5;
    0x0002ac34 move s2, v0                                                       |         s2 = v0;
    0x0002ac38 bal 0x3ddd8                                                       |         sym_sql_where_stmt ();
    0x0002ac3c lw gp, 0x28(sp)                                                   |         gp = *(var_28h);
    0x0002ac40 lw v1, 0x48(sp)                                                   |         v1 = *(var_48h_2);
    0x0002ac44 move a0, s1                                                       |         a0 = s1;
    0x0002ac48 lw t9, -0x76d0(gp)                                                |         t9 = sym.imp.g_string_append;
    0x0002ac4c addiu a1, v1, 0x1b84                                              |         a1 = v1 + aav.0x00001b84;
    0x0002ac50 move fp, v0                                                       |         fp = v0;
    0x0002ac54 jalr t9                                                           |         t9 ();
    0x0002ac58 lw gp, 0x28(sp)                                                   |         gp = *(var_28h);
    0x0002ac5c lw v0, 0x44(sp)                                                   |         v0 = *(var_44h_2);
    0x0002ac60 move a0, s0                                                       |         a0 = s0;
    0x0002ac64 addiu a2, v0, 0x8d0                                               |         a2 = v0 + 0x8d0;
    0x0002ac68 lw v0, 0x3c(sp)                                                   |         v0 = *(var_3ch_2);
    0x0002ac6c lw t9, -0x7bb8(gp)                                                |         t9 = sym.sql_get_recording_time_query;
    0x0002ac70 addiu a1, v0, 0x7a8                                               |         a1 = v0 + 0x7a8;
    0x0002ac74 bal 0x3fdb8                                                       |         sym_sql_get_recording_time_query ();
    0x0002ac78 lw gp, 0x28(sp)                                                   |         gp = *(var_28h);
    0x0002ac7c move a2, v0                                                       |         a2 = v0;
    0x0002ac80 sw v0, 0x34(sp)                                                   |         *(var_34h) = v0;
    0x0002ac84 lw v0, 0x4c(sp)                                                   |         v0 = *(var_4ch_2);
    0x0002ac88 lw a3, (fp)                                                       |         a3 = *(fp);
    0x0002ac8c lw t9, -0x772c(gp)                                                |         t9 = sym.imp.g_string_append_printf
    0x0002ac90 addiu a1, v0, 0x1be8                                              |         a1 = v0 + 0x1be8;
    0x0002ac94 move a0, s1                                                       |         a0 = s1;
    0x0002ac98 jalr t9                                                           |         t9 ();
    0x0002ac9c lw gp, 0x28(sp)                                                   |         gp = *(var_28h);
    0x0002aca0 lw v0, 0x34(sp)                                                   |         v0 = *(var_34h);
    0x0002aca4 lw t9, -0x74c8(gp)                                                |         t9 = *((gp - 7474));
    0x0002aca8 move a0, v0                                                       |         a0 = v0;
    0x0002acac jalr t9                                                           |         t9 ();
    0x0002acb0 lw gp, 0x28(sp)                                                   |         gp = *(var_28h);
    0x0002acb4 lw v0, 0x50(sp)                                                   |         v0 = *(var_50h_2);
    0x0002acb8 move a0, s0                                                       |         a0 = s0;
    0x0002acbc addiu a2, v0, 0x47d4                                              |         a2 = v0 + 0x47d4;
    0x0002acc0 lw v0, 0x40(sp)                                                   |         v0 = *(var_40h_2);
    0x0002acc4 lw t9, -0x7bb8(gp)                                                |         t9 = sym.sql_get_recording_time_query;
    0x0002acc8 addiu a1, v0, 0x7b4                                               |         a1 = v0 + 0x7b4;
    0x0002accc bal 0x3fdb8                                                       |         sym_sql_get_recording_time_query ();
    0x0002acd0 lw gp, 0x28(sp)                                                   |         gp = *(var_28h);
    0x0002acd4 move a2, v0                                                       |         a2 = v0;
    0x0002acd8 move s0, v0                                                       |         s0 = v0;
    0x0002acdc lw v0, 0x54(sp)                                                   |         v0 = *(var_54h_2);
    0x0002ace0 lw t9, -0x772c(gp)                                                |         t9 = sym.imp.g_string_append_printf
    0x0002ace4 addiu a1, v0, 0x1c04                                              |         a1 = v0 + 0x1c04;
    0x0002ace8 move a3, s5                                                       |         a3 = s5;
    0x0002acec move a0, s1                                                       |         a0 = s1;
    0x0002acf0 sw s4, 0x10(sp)                                                   |         *(var_10h) = s4;
    0x0002acf4 jalr t9                                                           |         t9 ();
    0x0002acf8 lw gp, 0x28(sp)                                                   |         gp = *(var_28h);
    0x0002acfc lw t9, -0x74c8(gp)                                                |         t9 = *((gp - 7474));
    0x0002ad00 move a0, s0                                                       |         a0 = s0;
    0x0002ad04 jalr t9                                                           |         t9 ();
    0x0002ad08 lw gp, 0x28(sp)                                                   |         gp = *(var_28h);
    0x0002ad0c lw v0, (s6)                                                       |         v0 = *(s6);
    0x0002ad10 lw v1, 0x58(sp)                                                   |         v1 = *(var_58h_2);
    0x0002ad14 lw t9, -0x772c(gp)                                                |         t9 = sym.imp.g_string_append_printf
    0x0002ad18 addiu a1, v1, 0x1c34                                              |         a1 = v1 + 0x1c34;
    0x0002ad1c move a3, s2                                                       |         a3 = s2;
    0x0002ad20 move a2, s2                                                       |         a2 = s2;
    0x0002ad24 sw v0, 0x10(sp)                                                   |         *(var_10h) = v0;
    0x0002ad28 move a0, s1                                                       |         a0 = s1;
    0x0002ad2c jalr t9                                                           |         t9 ();
    0x0002ad30 lw gp, 0x28(sp)                                                   |         gp = *(var_28h);
    0x0002ad34 lw v1, 0x38(sp)                                                   |         v1 = *(var_38h);
    0x0002ad38 lw t9, -0x74c8(gp)                                                |         t9 = *((gp - 7474));
    0x0002ad3c move a0, v1                                                       |         a0 = v1;
    0x0002ad40 jalr t9                                                           |         t9 ();
    0x0002ad44 lw gp, 0x28(sp)                                                   |         gp = *(var_28h);
    0x0002ad48 lw t9, -0x74c8(gp)                                                |         t9 = *((gp - 7474));
    0x0002ad4c move a0, s2                                                       |         a0 = s2;
    0x0002ad50 jalr t9                                                           |         t9 ();
    0x0002ad54 lw gp, 0x28(sp)                                                   |         gp = *(var_28h);
    0x0002ad58 addiu a1, zero, 1                                                 |         a1 = 1;
    0x0002ad5c lw t9, -0x75a8(gp)                                                |         t9 = sym.imp.g_string_free;
    0x0002ad60 move a0, fp                                                       |         a0 = fp;
    0x0002ad64 jalr t9                                                           |         t9 ();
    0x0002ad68 lw s7, 4(s7)                                                      |         s7 = *((s7 + 1));
    0x0002ad6c lw gp, 0x28(sp)                                                   |         gp = *(var_28h);
                                                                                 |         if (s7 == 0) {
    0x0002ad70 beqz s7, 0x2ad8c                                                  |             goto label_0;
                                                                                 |         }
    0x0002ad74 lw t9, -0x772c(gp)                                                |         t9 = sym.imp.g_string_append_printf
    0x0002ad78 lw a1, 0x60(sp)                                                   |         a1 = *(var_60h_2);
    0x0002ad7c move a0, s1                                                       |         a0 = s1;
    0x0002ad80 jalr t9                                                           |         t9 ();
    0x0002ad84 lw gp, 0x28(sp)                                                   |         gp = *(var_28h);
    0x0002ad88 b 0x2abd0                                                         |         
                                                                                 |     } while (1);
                                                                                 | label_0:
    0x0002ad8c lw a1, -0x7fd8(gp)                                                |     a1 = *(gp);
    0x0002ad90 lw v0, 0xbc(sp)                                                   |     v0 = *(arg_bch);
    0x0002ad94 lw a3, 0xb4(sp)                                                   |     a3 = *(arg_b4h);
    0x0002ad98 lw t9, -0x7cac(gp)                                                |     t9 = sym.sql_order_limit;
    0x0002ad9c lw a2, 0xb8(sp)                                                   |     a2 = *(arg_b8h);
                                                                                 |     /* esilref: 'time' */
    0x0002ada0 addiu a1, a1, 0x7b8                                               |     a1 += 0x7b8;
    0x0002ada4 move a0, zero                                                     |     a0 = 0;
    0x0002ada8 sw v0, 0x10(sp)                                                   |     *(var_10h) = v0;
    0x0002adac bal 0x3a680                                                       |     sym_sql_order_limit ();
    0x0002adb0 lw gp, 0x28(sp)                                                   |     gp = *(var_28h);
    0x0002adb4 lw a2, (v0)                                                       |     a2 = *(v0);
    0x0002adb8 move a0, s1                                                       |     a0 = s1;
    0x0002adbc lw a1, -0x7fd8(gp)                                                |     a1 = *(gp);
    0x0002adc0 lw t9, -0x772c(gp)                                                |     t9 = sym.imp.g_string_append_printf
                                                                                 |     /* str.___s */
    0x0002adc4 addiu a1, a1, 0x1c58                                              |     a1 += 0x1c58;
    0x0002adc8 move s0, v0                                                       |     s0 = v0;
    0x0002adcc jalr t9                                                           |     t9 ();
    0x0002add0 lw gp, 0x28(sp)                                                   |     gp = *(var_28h);
    0x0002add4 move a0, s0                                                       |     a0 = s0;
    0x0002add8 lw t9, -0x75a8(gp)                                                |     t9 = sym.imp.g_string_free;
    0x0002addc addiu a1, zero, 1                                                 |     a1 = 1;
    0x0002ade0 jalr t9                                                           |     t9 ();
    0x0002ade4 lw gp, 0x28(sp)                                                   |     gp = *(var_28h);
    0x0002ade8 addiu a1, zero, 1                                                 |     a1 = 1;
    0x0002adec lw t9, -0x75a8(gp)                                                |     t9 = sym.imp.g_string_free;
    0x0002adf0 move a0, s6                                                       |     a0 = s6;
    0x0002adf4 jalr t9                                                           |     t9 ();
    0x0002adf8 lw gp, 0x28(sp)                                                   |     gp = *(var_28h);
    0x0002adfc move a0, s1                                                       |     a0 = s1;
    0x0002ae00 lw t9, -0x75a8(gp)                                                |     t9 = sym.imp.g_string_free;
    0x0002ae04 move a1, zero                                                     |     a1 = 0;
    0x0002ae08 jalr t9                                                           |     t9 ();
    0x0002ae0c lw gp, 0x28(sp)                                                   |     gp = *(var_28h);
    0x0002ae10 addiu a3, sp, 0x70                                                |     a3 = sp + 0x70;
    0x0002ae14 move a1, v0                                                       |     a1 = v0;
    0x0002ae18 lw a2, -0x7d2c(gp)                                                |     a2 = *(gp);
    0x0002ae1c lw t9, -0x7d2c(gp)                                                |     t9 = *(gp);
    0x0002ae20 addiu a2, a2, -0x6384                                             |     a2 += -0x6384;
    0x0002ae24 move a0, zero                                                     |     a0 = 0;
                                                                                 |     /* fcn.00019f9c */
    0x0002ae28 addiu t9, t9, -0x6064                                             |     t9 += -0x6064;
    0x0002ae2c move s1, v0                                                       |     s1 = v0;
    0x0002ae30 bal 0x19f9c                                                       |     fcn_00019f9c ();
    0x0002ae34 lw gp, 0x28(sp)                                                   |     gp = *(var_28h);
    0x0002ae38 move s0, v0                                                       |     s0 = v0;
    0x0002ae3c move a0, s1                                                       |     a0 = s1;
    0x0002ae40 lw t9, -0x74c8(gp)                                                |     t9 = *((gp - 7474));
    0x0002ae44 sltiu s1, s0, 1                                                   |     s1 = (s0 < 1) ? 1 : 0;
    0x0002ae48 jalr t9                                                           |     t9 ();
    0x0002ae4c lw gp, 0x28(sp)                                                   |     gp = *(var_28h);
    0x0002ae50 bnez s0, 0x2aeac                                                  |     
                                                                                 |     while (1) {
    0x0002ae54 lw v0, 0x64(sp)                                                   |         v0 = *(var_64h);
    0x0002ae58 lw t9, -0x76cc(gp)                                                |         t9 = sym.imp.g_rec_mutex_unlock;
    0x0002ae5c addiu a0, v0, -0xf58                                              |         a0 = v0 + -0xf58;
    0x0002ae60 jalr t9                                                           |         t9 ();
    0x0002ae64 lw v0, 0x68(sp)                                                   |         v0 = *(var_68h);
    0x0002ae68 lw a0, 0x7c(sp)                                                   |         a0 = *(var_7ch);
    0x0002ae6c lw gp, 0x28(sp)                                                   |         gp = *(var_28h);
    0x0002ae70 lw v1, (v0)                                                       |         v1 = *(v0);
    0x0002ae74 move v0, s1                                                       |         v0 = s1;
                                                                                 |         if (a0 != v1) {
    0x0002ae78 bne a0, v1, 0x2af2c                                               |             goto label_1;
                                                                                 |         }
    0x0002ae7c lw ra, 0xa4(sp)                                                   |         ra = *(var_a4h);
    0x0002ae80 lw fp, 0xa0(sp)                                                   |         fp = *(var_a0h);
    0x0002ae84 lw s7, 0x9c(sp)                                                   |         s7 = *(var_9ch);
    0x0002ae88 lw s6, 0x98(sp)                                                   |         s6 = *(var_98h);
    0x0002ae8c lw s5, 0x94(sp)                                                   |         s5 = *(var_94h);
    0x0002ae90 lw s4, 0x90(sp)                                                   |         s4 = *(var_90h);
    0x0002ae94 lw s3, 0x8c(sp)                                                   |         s3 = *(var_8ch);
    0x0002ae98 lw s2, 0x88(sp)                                                   |         s2 = *(var_88h);
    0x0002ae9c lw s1, 0x84(sp)                                                   |         s1 = *(var_84h);
    0x0002aea0 lw s0, 0x80(sp)                                                   |         s0 = *(var_80h);
    0x0002aea4 addiu sp, sp, 0xa8                                                |         
    0x0002aea8 jr ra                                                             |         return v0;
    0x0002aeac lw s0, -0x7fd4(gp)                                                |         s0 = *((gp - 8181));
    0x0002aeb0 lw t9, -0x7268(gp)                                                |         t9 = sym.imp.sqlite3_errcode;
    0x0002aeb4 lw a0, -0xf48(s0)                                                 |         a0 = *((s0 - 978));
    0x0002aeb8 jalr t9                                                           |         t9 ();
    0x0002aebc lw gp, 0x28(sp)                                                   |         gp = *(var_28h);
    0x0002aec0 lw a0, -0xf48(s0)                                                 |         a0 = *((s0 - 978));
    0x0002aec4 lw t9, -0x7268(gp)                                                |         t9 = sym.imp.sqlite3_errcode;
    0x0002aec8 move s2, v0                                                       |         s2 = v0;
    0x0002aecc jalr t9                                                           |         t9 ();
    0x0002aed0 lw gp, 0x28(sp)                                                   |         gp = *(var_28h);
    0x0002aed4 lw a0, -0xf48(s0)                                                 |         a0 = *((s0 - 978));
    0x0002aed8 lw t9, -0x73f8(gp)                                                |         t9 = sym.imp.sqlite3_errmsg;
    0x0002aedc move s0, v0                                                       |         s0 = v0;
    0x0002aee0 jalr t9                                                           |         t9 ();
    0x0002aee4 lw gp, 0x28(sp)                                                   |         gp = *(var_28h);
    0x0002aee8 sw v0, 0x1c(sp)                                                   |         *(var_1ch) = v0;
    0x0002aeec lw a0, 0x6c(sp)                                                   |         a0 = *(var_6ch);
    0x0002aef0 lw v0, -0x7fd8(gp)                                                |         v0 = *(gp);
    0x0002aef4 lw a1, -0x7fd8(gp)                                                |         a1 = *(gp);
                                                                                 |         /* str.SQLite_error:___d___s */
    0x0002aef8 addiu v0, v0, 0x908                                               |         v0 += 0x908;
    0x0002aefc sw v0, 0x14(sp)                                                   |         *(var_14h) = v0;
    0x0002af00 lw v0, -0x7fd8(gp)                                                |         v0 = *(gp);
    0x0002af04 lw t9, -0x7df8(gp)                                                |         t9 = sym.set_error;
                                                                                 |         /* str.DatabaseError */
    0x0002af08 addiu v0, v0, -0x2648                                             |         v0 += -0x2648;
    0x0002af0c sw s0, 0x18(sp)                                                   |         *(var_18h) = s0;
    0x0002af10 sw v0, 0x10(sp)                                                   |         *(var_10h) = v0;
    0x0002af14 move a3, s2                                                       |         a3 = s2;
    0x0002af18 addiu a2, zero, 0x186c                                            |         a2 = 0x186c;
                                                                                 |         /* str.database_find_times_in_groups_between_times_iso8601 */
    0x0002af1c addiu a1, a1, 0x1f44                                              |         a1 += 0x1f44;
    0x0002af20 bal 0x422c0                                                       |         sym_set_error ();
    0x0002af24 lw gp, 0x28(sp)                                                   |         gp = *(var_28h);
    0x0002af28 b 0x2ae54                                                         |         
                                                                                 |     }
                                                                                 | label_1:
    0x0002af2c lw t9, -0x7494(gp)                                                |     t9 = sym.imp.__stack_chk_fail;
    0x0002af30 jalr t9                                                           |     t9 ();
    0x0002af34 nop                                                               |     
                                                                                 | }
    ; assembly                                                           | /* r2dec pseudo code output */
                                                                         | /* /logs/firmware/unblob_extracted/firmware_extract/4325012-58052244.squashfs_v4_le_extract/usr/bin/indexer @ 0x2af38 */
                                                                         | #include <stdint.h>
                                                                         |  
    ; (fcn) sym.database_get_groups_with_times_and_attributes ()         | void database_get_groups_with_times_and_attributes () {
    0x0002af38 lui gp, 6                                                 |     
    0x0002af3c addiu gp, gp, -0x4e38                                     |     
    0x0002af40 addu gp, gp, t9                                           |     gp += t9;
    0x0002af44 addiu sp, sp, -0x68                                       |     
    0x0002af48 lw t9, -0x7688(gp)                                        |     t9 = sym.imp.g_rec_mutex_lock;
    0x0002af4c sw s2, 0x48(sp)                                           |     *(var_48h) = s2;
    0x0002af50 lw s2, -0x71a0(gp)                                        |     s2 = *((gp - 7272));
    0x0002af54 sw s1, 0x44(sp)                                           |     *(var_44h) = s1;
    0x0002af58 lw s1, -0x7fd4(gp)                                        |     s1 = *((gp - 8181));
    0x0002af5c lw v0, (s2)                                               |     v0 = *(s2);
    0x0002af60 sw gp, 0x20(sp)                                           |     *(var_20h) = gp;
    0x0002af64 sw s7, 0x5c(sp)                                           |     *(var_5ch) = s7;
    0x0002af68 sw s6, 0x58(sp)                                           |     *(var_58h) = s6;
    0x0002af6c sw s5, 0x54(sp)                                           |     *(var_54h) = s5;
    0x0002af70 sw s4, 0x50(sp)                                           |     *(var_50h) = s4;
    0x0002af74 sw s3, 0x4c(sp)                                           |     *(var_4ch) = s3;
    0x0002af78 sw s0, 0x40(sp)                                           |     *(var_40h) = s0;
    0x0002af7c sw ra, 0x64(sp)                                           |     *(var_64h) = ra;
    0x0002af80 sw fp, 0x60(sp)                                           |     *(var_60h) = fp;
    0x0002af84 move s0, a0                                               |     s0 = a0;
    0x0002af88 sw v0, 0x3c(sp)                                           |     *(var_3ch) = v0;
    0x0002af8c addiu a0, s1, -0xf58                                      |     a0 = s1 + -0xf58;
    0x0002af90 move s5, a1                                               |     s5 = a1;
    0x0002af94 move s6, a2                                               |     s6 = a2;
    0x0002af98 move s7, a3                                               |     s7 = a3;
    0x0002af9c lw s4, 0x78(sp)                                           |     s4 = *(arg_78h);
    0x0002afa0 lw s3, 0x7c(sp)                                           |     s3 = *(arg_7ch);
    0x0002afa4 jalr t9                                                   |     t9 ();
    0x0002afa8 lw gp, 0x20(sp)                                           |     gp = *(var_20h);
                                                                         |     if (s0 == 0) {
    0x0002afac beqz s0, 0x2b238                                          |         goto label_2;
                                                                         |     }
    0x0002afb0 lw t9, -0x7d24(gp)                                        |     t9 = sym.sql_valid_storage_name;
    0x0002afb4 move a1, s3                                               |     a1 = s3;
    0x0002afb8 move a0, s0                                               |     a0 = s0;
    0x0002afbc bal 0x3a5d4                                               |     sym_sql_valid_storage_name ();
    0x0002afc0 lw gp, 0x20(sp)                                           |     gp = *(var_20h);
                                                                         |     if (v0 != 0) {
    0x0002afc4 bnez v0, 0x2b01c                                          |         goto label_3;
                                                                         |     }
    0x0002afc8 move s0, zero                                             |     s0 = 0;
                                                                         |     do {
                                                                         | label_0:
    0x0002afcc lw t9, -0x76cc(gp)                                        |         t9 = sym.imp.g_rec_mutex_unlock;
    0x0002afd0 addiu a0, s1, -0xf58                                      |         a0 = s1 + -0xf58;
    0x0002afd4 jalr t9                                                   |         t9 ();
    0x0002afd8 lw a0, 0x3c(sp)                                           |         a0 = *(var_3ch);
    0x0002afdc lw v1, (s2)                                               |         v1 = *(s2);
    0x0002afe0 lw gp, 0x20(sp)                                           |         gp = *(var_20h);
    0x0002afe4 move v0, s0                                               |         v0 = s0;
                                                                         |         if (a0 != v1) {
    0x0002afe8 bne a0, v1, 0x2b3a4                                       |             goto label_4;
                                                                         |         }
    0x0002afec lw ra, 0x64(sp)                                           |         ra = *(var_64h);
    0x0002aff0 lw fp, 0x60(sp)                                           |         fp = *(var_60h);
    0x0002aff4 lw s7, 0x5c(sp)                                           |         s7 = *(var_5ch);
    0x0002aff8 lw s6, 0x58(sp)                                           |         s6 = *(var_58h);
    0x0002affc lw s5, 0x54(sp)                                           |         s5 = *(var_54h);
    0x0002b000 lw s4, 0x50(sp)                                           |         s4 = *(var_50h);
    0x0002b004 lw s3, 0x4c(sp)                                           |         s3 = *(var_4ch);
    0x0002b008 lw s2, 0x48(sp)                                           |         s2 = *(var_48h);
    0x0002b00c lw s1, 0x44(sp)                                           |         s1 = *(var_44h);
    0x0002b010 lw s0, 0x40(sp)                                           |         s0 = *(var_40h);
    0x0002b014 addiu sp, sp, 0x68                                        |         
    0x0002b018 jr ra                                                     |         return v0;
                                                                         | label_3:
    0x0002b01c lw v0, -0x7fd4(gp)                                        |         v0 = *((gp - 8181));
    0x0002b020 lw a2, -0x7d2c(gp)                                        |         a2 = *(gp);
    0x0002b024 lw t9, -0x7528(gp)                                        |         t9 = sym.imp.g_list_find_custom;
    0x0002b028 lw a0, -0xf4c(v0)                                         |         a0 = *((v0 - 979));
    0x0002b02c addiu a2, a2, -0x6540                                     |         a2 += -0x6540;
    0x0002b030 move a1, s0                                               |         a1 = s0;
    0x0002b034 jalr t9                                                   |         t9 ();
    0x0002b038 lw gp, 0x20(sp)                                           |         gp = *(var_20h);
                                                                         |         if (v0 == 0) {
    0x0002b03c beqz v0, 0x2b360                                          |             goto label_5;
                                                                         |         }
    0x0002b040 lw a1, -0x7fd8(gp)                                        |         a1 = *(gp);
    0x0002b044 lw t9, -0x7cec(gp)                                        |         t9 = sym.sql_table_with_storage_name;
                                                                         |         /* esilref: 'recordings' */
    0x0002b048 addiu a1, a1, -0x21e8                                     |         a1 += -0x21e8;
    0x0002b04c move a0, s0                                               |         a0 = s0;
    0x0002b050 sw s7, 0x34(sp)                                           |         *(var_34h_2) = s7;
    0x0002b054 sw s4, 0x38(sp)                                           |         *(var_38h_2) = s4;
    0x0002b058 sw zero, 0x30(sp)                                         |         *(var_30h_2) = 0;
    0x0002b05c bal 0x39fd0                                               |         sym_sql_table_with_storage_name ();
    0x0002b060 lw gp, 0x20(sp)                                           |         gp = *(var_20h);
    0x0002b064 move a0, s0                                               |         a0 = s0;
    0x0002b068 move s7, v0                                               |         s7 = v0;
    0x0002b06c lw a1, -0x7fd8(gp)                                        |         a1 = *(gp);
    0x0002b070 lw t9, -0x7cec(gp)                                        |         t9 = sym.sql_table_with_storage_name;
                                                                         |         /* str.recording_groups */
    0x0002b074 addiu a1, a1, 0xa24                                       |         a1 += 0xa24;
    0x0002b078 bal 0x39fd0                                               |         sym_sql_table_with_storage_name ();
    0x0002b07c lw gp, 0x20(sp)                                           |         gp = *(var_20h);
    0x0002b080 move fp, v0                                               |         fp = v0;
    0x0002b084 lw a0, -0x7fd8(gp)                                        |         a0 = *(gp);
    0x0002b088 lw t9, -0x71b4(gp)                                        |         t9 = sym.imp.g_string_new;
    0x0002b08c addiu a0, a0, 0x403c                                      |         a0 += 0x403c;
    0x0002b090 jalr t9                                                   |         t9 ();
    0x0002b094 lw gp, 0x20(sp)                                           |         gp = *(var_20h);
    0x0002b098 move a0, v0                                               |         a0 = v0;
    0x0002b09c move s4, v0                                               |         s4 = v0;
    0x0002b0a0 lw a1, -0x7fd8(gp)                                        |         a1 = *(gp);
    0x0002b0a4 lw t9, -0x76d0(gp)                                        |         t9 = sym.imp.g_string_append;
                                                                         |         /* str.SELECT_recording_group_id___starttime___stoptime___video_id___audio_id */
    0x0002b0a8 addiu a1, a1, 0x1c7c                                      |         a1 += 0x1c7c;
    0x0002b0ac jalr t9                                                   |         t9 ();
    0x0002b0b0 lw gp, 0x20(sp)                                           |         gp = *(var_20h);
                                                                         |         if (s6 != 0) {
    0x0002b0b4 bnez s6, 0x2b274                                          |             goto label_6;
                                                                         |         }
    0x0002b0b8 lw a3, -0x7fd8(gp)                                        |         a3 = *(gp);
    0x0002b0bc lw a2, -0x7f50(gp)                                        |         a2 = *((gp - 8148));
    0x0002b0c0 lw t9, -0x7bb4(gp)                                        |         t9 = sym.sql_from_join_clause;
                                                                         |         /* esilref: 'recording_id' */
    0x0002b0c4 addiu a3, a3, 0x78c8                                      |         a3 += 0x78c8;
                                                                         |         /* esilref: 'id' */
    0x0002b0c8 addiu a2, a2, -0x6dbc                                     |         a2 += -0x6dbc;
    0x0002b0cc move a1, fp                                               |         a1 = fp;
    0x0002b0d0 move a0, s7                                               |         a0 = s7;
    0x0002b0d4 bal 0x3fbf8                                               |         sym_sql_from_join_clause ();
    0x0002b0d8 lw gp, 0x20(sp)                                           |         gp = *(var_20h);
    0x0002b0dc move a2, v0                                               |         a2 = v0;
    0x0002b0e0 move a0, s4                                               |         a0 = s4;
    0x0002b0e4 lw a1, -0x7fd8(gp)                                        |         a1 = *(gp);
    0x0002b0e8 lw t9, -0x772c(gp)                                        |         t9 = sym.imp.g_string_append_printf
                                                                         |         /* esilref: ' &s' */
    0x0002b0ec addiu a1, a1, 0x1ab4                                      |         a1 += 0x1ab4;
    0x0002b0f0 move s6, v0                                               |         s6 = v0;
    0x0002b0f4 jalr t9                                                   |         t9 ();
    0x0002b0f8 lw gp, 0x20(sp)                                           |         gp = *(var_20h);
                                                                         | label_1:
    0x0002b0fc lw a1, -0x7fd8(gp)                                        |         a1 = *(gp);
    0x0002b100 lw t9, -0x7bbc(gp)                                        |         t9 = sym.sql_create_where_equals_string;
    0x0002b104 move a2, s5                                               |         a2 = s5;
    0x0002b108 move a0, s4                                               |         a0 = s4;
                                                                         |         /* esilref: 'recording_group_id' */
    0x0002b10c addiu a1, a1, 0x80c                                       |         a1 += 0x80c;
    0x0002b110 bal 0x3a8c8                                               |         sym_sql_create_where_equals_string ();
    0x0002b114 lw gp, 0x20(sp)                                           |         gp = *(var_20h);
    0x0002b118 move a0, s4                                               |         a0 = s4;
    0x0002b11c lw a1, -0x7fd8(gp)                                        |         a1 = *(gp);
    0x0002b120 lw t9, -0x772c(gp)                                        |         t9 = sym.imp.g_string_append_printf
                                                                         |         /* str._ORDER_BY_recording_group_id_ASC___starttime_ASC */
    0x0002b124 addiu a1, a1, 0x1d5c                                      |         a1 += 0x1d5c;
    0x0002b128 jalr t9                                                   |         t9 ();
    0x0002b12c lw gp, 0x20(sp)                                           |         gp = *(var_20h);
    0x0002b130 lw t9, -0x74c8(gp)                                        |         t9 = *((gp - 7474));
    0x0002b134 move a0, s7                                               |         a0 = s7;
    0x0002b138 jalr t9                                                   |         t9 ();
    0x0002b13c lw gp, 0x20(sp)                                           |         gp = *(var_20h);
    0x0002b140 lw t9, -0x74c8(gp)                                        |         t9 = *((gp - 7474));
    0x0002b144 move a0, fp                                               |         a0 = fp;
    0x0002b148 jalr t9                                                   |         t9 ();
    0x0002b14c lw gp, 0x20(sp)                                           |         gp = *(var_20h);
    0x0002b150 lw t9, -0x74c8(gp)                                        |         t9 = *((gp - 7474));
    0x0002b154 move a0, s6                                               |         a0 = s6;
    0x0002b158 jalr t9                                                   |         t9 ();
    0x0002b15c lw gp, 0x20(sp)                                           |         gp = *(var_20h);
    0x0002b160 move a0, s4                                               |         a0 = s4;
    0x0002b164 lw t9, -0x75a8(gp)                                        |         t9 = sym.imp.g_string_free;
    0x0002b168 move a1, zero                                             |         a1 = 0;
    0x0002b16c jalr t9                                                   |         t9 ();
    0x0002b170 lw gp, 0x20(sp)                                           |         gp = *(var_20h);
    0x0002b174 addiu a3, sp, 0x30                                        |         a3 = sp + 0x30;
    0x0002b178 move a1, v0                                               |         a1 = v0;
    0x0002b17c lw a2, -0x7d2c(gp)                                        |         a2 = *(gp);
    0x0002b180 lw t9, -0x7d2c(gp)                                        |         t9 = *(gp);
    0x0002b184 addiu a2, a2, -0x320c                                     |         a2 += -0x320c;
    0x0002b188 move a0, zero                                             |         a0 = 0;
                                                                         |         /* fcn.00019f9c */
    0x0002b18c addiu t9, t9, -0x6064                                     |         t9 += -0x6064;
    0x0002b190 move s0, v0                                               |         s0 = v0;
    0x0002b194 bal 0x19f9c                                               |         fcn_00019f9c ();
    0x0002b198 lw gp, 0x20(sp)                                           |         gp = *(var_20h);
    0x0002b19c move s4, v0                                               |         s4 = v0;
    0x0002b1a0 move a0, s0                                               |         a0 = s0;
    0x0002b1a4 lw t9, -0x74c8(gp)                                        |         t9 = *((gp - 7474));
    0x0002b1a8 sltiu s0, s4, 1                                           |         s0 = (s4 < 1) ? 1 : 0;
    0x0002b1ac jalr t9                                                   |         t9 ();
    0x0002b1b0 lw gp, 0x20(sp)                                           |         gp = *(var_20h);
    0x0002b1b4 beqz s4, 0x2afcc                                          |         
                                                                         |     } while (s4 == 0);
    0x0002b1b8 lw s4, -0x7fd4(gp)                                        |     s4 = *((gp - 8181));
    0x0002b1bc lw t9, -0x7268(gp)                                        |     t9 = sym.imp.sqlite3_errcode;
    0x0002b1c0 lw a0, -0xf48(s4)                                         |     a0 = *((s4 - 978));
    0x0002b1c4 jalr t9                                                   |     t9 ();
    0x0002b1c8 lw gp, 0x20(sp)                                           |     gp = *(var_20h);
    0x0002b1cc lw a0, -0xf48(s4)                                         |     a0 = *((s4 - 978));
    0x0002b1d0 lw t9, -0x7268(gp)                                        |     t9 = sym.imp.sqlite3_errcode;
    0x0002b1d4 move s5, v0                                               |     s5 = v0;
    0x0002b1d8 jalr t9                                                   |     t9 ();
    0x0002b1dc lw gp, 0x20(sp)                                           |     gp = *(var_20h);
    0x0002b1e0 lw a0, -0xf48(s4)                                         |     a0 = *((s4 - 978));
    0x0002b1e4 lw t9, -0x73f8(gp)                                        |     t9 = sym.imp.sqlite3_errmsg;
    0x0002b1e8 move s4, v0                                               |     s4 = v0;
    0x0002b1ec jalr t9                                                   |     t9 ();
    0x0002b1f0 lw gp, 0x20(sp)                                           |     gp = *(var_20h);
    0x0002b1f4 sw v0, 0x1c(sp)                                           |     *(var_1ch) = v0;
    0x0002b1f8 sw s4, 0x18(sp)                                           |     *(var_18h_2) = s4;
    0x0002b1fc lw v0, -0x7fd8(gp)                                        |     v0 = *(gp);
    0x0002b200 lw a1, -0x7fd8(gp)                                        |     a1 = *(gp);
                                                                         |     /* str.SQLite_error:___d___s */
    0x0002b204 addiu v0, v0, 0x908                                       |     v0 += 0x908;
    0x0002b208 sw v0, 0x14(sp)                                           |     *(var_14h) = v0;
    0x0002b20c lw v0, -0x7fd8(gp)                                        |     v0 = *(gp);
    0x0002b210 lw t9, -0x7df8(gp)                                        |     t9 = sym.set_error;
                                                                         |     /* str.DatabaseError */
    0x0002b214 addiu v0, v0, -0x2648                                     |     v0 += -0x2648;
    0x0002b218 sw v0, 0x10(sp)                                           |     *(var_10h) = v0;
    0x0002b21c move a3, s5                                               |     a3 = s5;
    0x0002b220 addiu a2, zero, 0x18d0                                    |     a2 = 0x18d0;
                                                                         |     /* str.database_get_groups_with_times_and_attributes */
    0x0002b224 addiu a1, a1, 0x1f14                                      |     a1 += 0x1f14;
    0x0002b228 move a0, s3                                               |     a0 = s3;
    0x0002b22c bal 0x422c0                                               |     sym_set_error ();
    0x0002b230 lw gp, 0x20(sp)                                           |     gp = *(var_20h);
    0x0002b234 b 0x2afcc                                                 |     goto label_0;
                                                                         | label_2:
    0x0002b238 lw v0, -0x7fd8(gp)                                        |     v0 = *(gp);
    0x0002b23c lw a1, -0x7fd8(gp)                                        |     a1 = *(gp);
                                                                         |     /* str.No_storage_id_is_supplied */
    0x0002b240 addiu v0, v0, 0x1c60                                      |     v0 += 0x1c60;
    0x0002b244 sw v0, 0x14(sp)                                           |     *(var_14h) = v0;
    0x0002b248 lw v0, -0x7fd8(gp)                                        |     v0 = *(gp);
    0x0002b24c lw t9, -0x7df8(gp)                                        |     t9 = sym.set_error;
                                                                         |     /* str.DatabaseError */
    0x0002b250 addiu v0, v0, -0x2648                                     |     v0 += -0x2648;
    0x0002b254 sw v0, 0x10(sp)                                           |     *(var_10h) = v0;
    0x0002b258 move a3, zero                                             |     a3 = 0;
    0x0002b25c addiu a2, zero, 0x1889                                    |     a2 = 0x1889;
                                                                         |     /* str.database_get_groups_with_times_and_attributes */
    0x0002b260 addiu a1, a1, 0x1f14                                      |     a1 += 0x1f14;
    0x0002b264 move a0, s3                                               |     a0 = s3;
    0x0002b268 bal 0x422c0                                               |     sym_set_error ();
    0x0002b26c lw gp, 0x20(sp)                                           |     gp = *(var_20h);
    0x0002b270 b 0x2afcc                                                 |     goto label_0;
                                                                         | label_6:
    0x0002b274 lw a1, -0x7fd8(gp)                                        |     a1 = *(gp);
    0x0002b278 lw t9, -0x76d0(gp)                                        |     t9 = sym.imp.g_string_append;
                                                                         |     /* str.___videos_type___videos_properties___audios_type___audios_properties */
    0x0002b27c addiu a1, a1, 0x1cc4                                      |     a1 += 0x1cc4;
    0x0002b280 move a0, s4                                               |     a0 = s4;
    0x0002b284 jalr t9                                                   |     t9 ();
    0x0002b288 lw gp, 0x20(sp)                                           |     gp = *(var_20h);
    0x0002b28c move a1, fp                                               |     a1 = fp;
    0x0002b290 move a0, s7                                               |     a0 = s7;
    0x0002b294 lw a3, -0x7fd8(gp)                                        |     a3 = *(gp);
    0x0002b298 lw a2, -0x7f50(gp)                                        |     a2 = *((gp - 8148));
    0x0002b29c lw t9, -0x7bb4(gp)                                        |     t9 = sym.sql_from_join_clause;
                                                                         |     /* esilref: 'recording_id' */
    0x0002b2a0 addiu a3, a3, 0x78c8                                      |     a3 += 0x78c8;
                                                                         |     /* esilref: 'id' */
    0x0002b2a4 addiu a2, a2, -0x6dbc                                     |     a2 += -0x6dbc;
    0x0002b2a8 bal 0x3fbf8                                               |     sym_sql_from_join_clause ();
    0x0002b2ac lw gp, 0x20(sp)                                           |     gp = *(var_20h);
    0x0002b2b0 move a2, v0                                               |     a2 = v0;
    0x0002b2b4 move a0, s4                                               |     a0 = s4;
    0x0002b2b8 lw a1, -0x7fd8(gp)                                        |     a1 = *(gp);
    0x0002b2bc lw t9, -0x772c(gp)                                        |     t9 = sym.imp.g_string_append_printf
                                                                         |     /* esilref: ' &s' */
    0x0002b2c0 addiu a1, a1, 0x1ab4                                      |     a1 += 0x1ab4;
    0x0002b2c4 move s6, v0                                               |     s6 = v0;
    0x0002b2c8 jalr t9                                                   |     t9 ();
    0x0002b2cc lw gp, 0x20(sp)                                           |     gp = *(var_20h);
    0x0002b2d0 move a0, s0                                               |     a0 = s0;
    0x0002b2d4 lw a1, -0x7fd8(gp)                                        |     a1 = *(gp);
    0x0002b2d8 lw t9, -0x7cec(gp)                                        |     t9 = sym.sql_table_with_storage_name;
                                                                         |     /* str.audios */
    0x0002b2dc addiu a1, a1, 0xa08                                       |     a1 += 0xa08;
    0x0002b2e0 bal 0x39fd0                                               |     sym_sql_table_with_storage_name ();
    0x0002b2e4 lw gp, 0x20(sp)                                           |     gp = *(var_20h);
    0x0002b2e8 move a0, s0                                               |     a0 = s0;
    0x0002b2ec sw v0, 0x2c(sp)                                           |     *(var_2ch_2) = v0;
    0x0002b2f0 lw a1, -0x7fd8(gp)                                        |     a1 = *(gp);
    0x0002b2f4 lw t9, -0x7cec(gp)                                        |     t9 = sym.sql_table_with_storage_name;
                                                                         |     /* str.videos */
    0x0002b2f8 addiu a1, a1, 0xa10                                       |     a1 += 0xa10;
    0x0002b2fc bal 0x39fd0                                               |     sym_sql_table_with_storage_name ();
    0x0002b300 lw gp, 0x20(sp)                                           |     gp = *(var_20h);
    0x0002b304 lw v1, 0x2c(sp)                                           |     v1 = *(var_2ch_2);
    0x0002b308 sw v0, 0x14(sp)                                           |     *(var_14h) = v0;
    0x0002b30c lw a1, -0x7fd8(gp)                                        |     a1 = *(gp);
    0x0002b310 lw t9, -0x772c(gp)                                        |     t9 = sym.imp.g_string_append_printf
    0x0002b314 move a3, v1                                               |     a3 = v1;
    0x0002b318 move a2, v1                                               |     a2 = v1;
                                                                         |     /* str._LEFT_JOIN__s_ON__s.idrecordings.audio_id_LEFT_JOIN__s_ON__s.id_s.video_id_ */
    0x0002b31c addiu a1, a1, 0x1d0c                                      |     a1 += 0x1d0c;
    0x0002b320 sw v0, 0x10(sp)                                           |     *(var_10h) = v0;
    0x0002b324 move a0, s4                                               |     a0 = s4;
    0x0002b328 sw s7, 0x18(sp)                                           |     *(var_18h_2) = s7;
    0x0002b32c move s0, v0                                               |     s0 = v0;
    0x0002b330 jalr t9                                                   |     t9 ();
    0x0002b334 lw gp, 0x20(sp)                                           |     gp = *(var_20h);
    0x0002b338 lw v1, 0x2c(sp)                                           |     v1 = *(var_2ch_2);
    0x0002b33c lw t9, -0x74c8(gp)                                        |     t9 = *((gp - 7474));
    0x0002b340 move a0, v1                                               |     a0 = v1;
    0x0002b344 jalr t9                                                   |     t9 ();
    0x0002b348 lw gp, 0x20(sp)                                           |     gp = *(var_20h);
    0x0002b34c lw t9, -0x74c8(gp)                                        |     t9 = *((gp - 7474));
    0x0002b350 move a0, s0                                               |     a0 = s0;
    0x0002b354 jalr t9                                                   |     t9 ();
    0x0002b358 lw gp, 0x20(sp)                                           |     gp = *(var_20h);
    0x0002b35c b 0x2b0fc                                                 |     goto label_1;
                                                                         | label_5:
    0x0002b360 lw v0, -0x7fd8(gp)                                        |     v0 = *(gp);
    0x0002b364 lw a1, -0x7fd8(gp)                                        |     a1 = *(gp);
                                                                         |     /* str.Database__s_does_not_exist */
    0x0002b368 addiu v0, v0, 0xb4c                                       |     v0 += 0xb4c;
    0x0002b36c sw v0, 0x14(sp)                                           |     *(var_14h) = v0;
    0x0002b370 lw v0, -0x7fd8(gp)                                        |     v0 = *(gp);
    0x0002b374 lw t9, -0x7df8(gp)                                        |     t9 = sym.set_error;
                                                                         |     /* str.DatabaseError */
    0x0002b378 addiu v0, v0, -0x2648                                     |     v0 += -0x2648;
    0x0002b37c sw s0, 0x18(sp)                                           |     *(var_18h_2) = s0;
    0x0002b380 sw v0, 0x10(sp)                                           |     *(var_10h) = v0;
    0x0002b384 move a3, zero                                             |     a3 = 0;
    0x0002b388 addiu a2, zero, 0x1892                                    |     a2 = 0x1892;
                                                                         |     /* str.database_get_groups_with_times_and_attributes */
    0x0002b38c addiu a1, a1, 0x1f14                                      |     a1 += 0x1f14;
    0x0002b390 move a0, s3                                               |     a0 = s3;
    0x0002b394 bal 0x422c0                                               |     sym_set_error ();
    0x0002b398 move s0, zero                                             |     s0 = 0;
    0x0002b39c lw gp, 0x20(sp)                                           |     gp = *(var_20h);
    0x0002b3a0 b 0x2afcc                                                 |     goto label_0;
                                                                         | label_4:
    0x0002b3a4 lw t9, -0x7494(gp)                                        |     t9 = sym.imp.__stack_chk_fail;
    0x0002b3a8 jalr t9                                                   |     t9 ();
    0x0002b3ac nop                                                       |     
                                                                         | }
    ; assembly                                               | /* r2dec pseudo code output */
                                                             | /* /logs/firmware/unblob_extracted/firmware_extract/4325012-58052244.squashfs_v4_le_extract/usr/bin/indexer @ 0x2532c */
                                                             | #include <stdint.h>
                                                             |  
    ; (fcn) sym.database_get_oldest_recording_blocks ()      | void database_get_oldest_recording_blocks () {
    0x0002532c lui gp, 6                                     |     
    0x00025330 addiu gp, gp, 0xdd4                           |     
    0x00025334 addu gp, gp, t9                               |     gp += t9;
    0x00025338 addiu sp, sp, -0x60                           |     
    0x0002533c lw t9, -0x71b4(gp)                            |     t9 = sym.imp.g_string_new;
    0x00025340 sw s5, 0x4c(sp)                               |     *(var_4ch) = s5;
    0x00025344 sw s2, 0x40(sp)                               |     *(var_40h) = s2;
    0x00025348 move s5, a0                                   |     s5 = a0;
    0x0002534c lw s2, -0x7fd4(gp)                            |     s2 = *((gp - 8181));
    0x00025350 lw a0, -0x7fd8(gp)                            |     a0 = *(gp);
    0x00025354 sw gp, 0x28(sp)                               |     *(var_28h) = gp;
    0x00025358 sw s6, 0x50(sp)                               |     *(var_50h) = s6;
    0x0002535c sw s4, 0x48(sp)                               |     *(var_48h) = s4;
    0x00025360 sw s0, 0x38(sp)                               |     *(var_38h) = s0;
    0x00025364 sw ra, 0x5c(sp)                               |     *(var_5ch) = ra;
    0x00025368 sw fp, 0x58(sp)                               |     *(var_58h) = fp;
    0x0002536c sw s7, 0x54(sp)                               |     *(var_54h) = s7;
    0x00025370 sw s3, 0x44(sp)                               |     *(var_44h) = s3;
    0x00025374 sw s1, 0x3c(sp)                               |     *(var_3ch) = s1;
    0x00025378 addiu a0, a0, 0x403c                          |     a0 += 0x403c;
    0x0002537c move s0, a1                                   |     s0 = a1;
    0x00025380 move s6, a2                                   |     s6 = a2;
    0x00025384 move s4, a3                                   |     s4 = a3;
    0x00025388 jalr t9                                       |     t9 ();
    0x0002538c lw v1, -0xf48(s2)                             |     v1 = *((s2 - 978));
    0x00025390 lw gp, 0x28(sp)                               |     gp = *(var_28h);
                                                             |     if (v1 == 0) {
    0x00025394 beqz v1, 0x255c4                              |         goto label_1;
                                                             |     }
    0x00025398 lw t9, -0x7d24(gp)                            |     t9 = sym.sql_valid_storage_name;
                                                             |     if (s0 == 0) {
    0x0002539c beqz s0, 0x2568c                              |         goto label_2;
                                                             |     }
    0x000253a0 lw a1, 0x74(sp)                               |     a1 = *(arg_74h);
    0x000253a4 move a0, s0                                   |     a0 = s0;
    0x000253a8 move s3, v0                                   |     s3 = v0;
    0x000253ac bal 0x3a5d4                                   |     sym_sql_valid_storage_name ();
    0x000253b0 move s1, v0                                   |     s1 = v0;
    0x000253b4 lw gp, 0x28(sp)                               |     gp = *(var_28h);
                                                             |     if (v0 == 0) {
    0x000253b8 bnez v0, 0x253f0                              |         
    0x000253bc lw ra, 0x5c(sp)                               |         ra = *(var_5ch);
    0x000253c0 move v0, s1                                   |         v0 = s1;
    0x000253c4 lw fp, 0x58(sp)                               |         fp = *(var_58h);
    0x000253c8 lw s7, 0x54(sp)                               |         s7 = *(var_54h);
    0x000253cc lw s6, 0x50(sp)                               |         s6 = *(var_50h);
    0x000253d0 lw s5, 0x4c(sp)                               |         s5 = *(var_4ch);
    0x000253d4 lw s4, 0x48(sp)                               |         s4 = *(var_48h);
    0x000253d8 lw s3, 0x44(sp)                               |         s3 = *(var_44h);
    0x000253dc lw s2, 0x40(sp)                               |         s2 = *(var_40h);
    0x000253e0 lw s1, 0x3c(sp)                               |         s1 = *(var_3ch);
    0x000253e4 lw s0, 0x38(sp)                               |         s0 = *(var_38h);
    0x000253e8 addiu sp, sp, 0x60                            |         
    0x000253ec jr ra                                         |         return v0;
                                                             |     }
    0x000253f0 lw s7, -0x7fd4(gp)                            |     s7 = *((gp - 8181));
    0x000253f4 lw t9, -0x7688(gp)                            |     t9 = sym.imp.g_rec_mutex_lock;
    0x000253f8 addiu a0, s7, -0xf58                          |     a0 = s7 + -0xf58;
    0x000253fc jalr t9                                       |     t9 ();
    0x00025400 lw gp, 0x28(sp)                               |     gp = *(var_28h);
    0x00025404 lw a1, 0x74(sp)                               |     a1 = *(arg_74h);
    0x00025408 lw t9, -0x7d2c(gp)                            |     t9 = *(gp);
                                                             |     /* fcn.0001b5ac */
    0x0002540c addiu t9, t9, -0x4a54                         |     t9 += -0x4a54;
    0x00025410 move a0, s0                                   |     a0 = s0;
    0x00025414 bal 0x1b5ac                                   |     fcn_0001b5ac ();
    0x00025418 move fp, v0                                   |     fp = v0;
    0x0002541c lw gp, 0x28(sp)                               |     gp = *(var_28h);
                                                             |     if (v0 == 0) {
    0x00025420 beqz v0, 0x256f8                              |         goto label_3;
                                                             |     }
    0x00025424 lw s1, -0x7fd8(gp)                            |     s1 = *(gp);
    0x00025428 lw t9, -0x7cf4(gp)                            |     t9 = sym.sql_where_stmt;
    0x0002542c move a2, s5                                   |     a2 = s5;
    0x00025430 move a3, zero                                 |     a3 = 0;
                                                             |     /* esilref: 'blocks' */
    0x00025434 addiu a1, s1, 0x7124                          |     a1 = s1 + 0x7124;
    0x00025438 move a0, s0                                   |     a0 = s0;
    0x0002543c sw zero, 0x24(sp)                             |     *(var_24h) = 0;
    0x00025440 sw zero, 0x20(sp)                             |     *(var_20h) = 0;
    0x00025444 sw zero, 0x1c(sp)                             |     *(var_1ch) = 0;
    0x00025448 sw zero, 0x18(sp)                             |     *(var_18h) = 0;
    0x0002544c sw zero, 0x14(sp)                             |     *(var_14h) = 0;
    0x00025450 sw zero, 0x10(sp)                             |     *(var_10h) = 0;
    0x00025454 bal 0x3ddd8                                   |     sym_sql_where_stmt ();
    0x00025458 lw gp, 0x28(sp)                               |     gp = *(var_28h);
    0x0002545c move a3, s6                                   |     a3 = s6;
    0x00025460 addiu a2, zero, 1                             |     a2 = 1;
    0x00025464 lw a1, -0x7fd8(gp)                            |     a1 = *(gp);
    0x00025468 lw t9, -0x7cac(gp)                            |     t9 = sym.sql_order_limit;
                                                             |     /* str.starttime */
    0x0002546c addiu a1, a1, 0x7a8                           |     a1 += 0x7a8;
                                                             |     /* esilref: 'blocks' */
    0x00025470 addiu a0, s1, 0x7124                          |     a0 = s1 + 0x7124;
    0x00025474 sw zero, 0x10(sp)                             |     *(var_10h) = 0;
    0x00025478 sw v0, 0x34(sp)                               |     *(var_34h) = v0;
    0x0002547c bal 0x3a680                                   |     sym_sql_order_limit ();
    0x00025480 lw gp, 0x28(sp)                               |     gp = *(var_28h);
    0x00025484 lw a1, (v0)                                   |     a1 = *(v0);
    0x00025488 move s5, v0                                   |     s5 = v0;
    0x0002548c lw a0, -0x7fd8(gp)                            |     a0 = *(gp);
    0x00025490 lw t9, -0x7328(gp)                            |     t9 = sym.imp.g_strdup_printf
                                                             |     /* str._blocks.stoptime_IS_NOT_NULL_OR_recordings.stoptime_IS_NOT_NULL___s_ */
    0x00025494 addiu a0, a0, 0x11e0                          |     a0 += 0x11e0;
    0x00025498 jalr t9                                       |     t9 ();
    0x0002549c lw v1, 0x34(sp)                               |     v1 = *(var_34h);
    0x000254a0 lw gp, 0x28(sp)                               |     gp = *(var_28h);
    0x000254a4 lw a2, 4(v1)                                  |     a2 = *((v1 + 1));
    0x000254a8 move s6, v0                                   |     s6 = v0;
    0x000254ac bnez a2, 0x255f0                              |     
                                                             |     while (1) {
    0x000254b0 lw t9, -0x75a8(gp)                            |         t9 = sym.imp.g_string_free;
    0x000254b4 move a0, v1                                   |         a0 = v1;
    0x000254b8 addiu a1, zero, 1                             |         a1 = 1;
    0x000254bc jalr t9                                       |         t9 ();
    0x000254c0 lw gp, 0x28(sp)                               |         gp = *(var_28h);
    0x000254c4 move a2, s6                                   |         a2 = s6;
    0x000254c8 move a0, s3                                   |         a0 = s3;
    0x000254cc lw a1, -0x7fd8(gp)                            |         a1 = *(gp);
    0x000254d0 lw t9, -0x772c(gp)                            |         t9 = sym.imp.g_string_append_printf
                                                             |         /* esilref: ' &s ' */
    0x000254d4 addiu a1, a1, 0x1220                          |         a1 += 0x1220;
    0x000254d8 jalr t9                                       |         t9 ();
    0x000254dc lw gp, 0x28(sp)                               |         gp = *(var_28h);
    0x000254e0 lw a3, (s3)                                   |         a3 = *(s3);
    0x000254e4 addiu v0, zero, 1                             |         v0 = 1;
    0x000254e8 lw a1, -0x7fd8(gp)                            |         a1 = *(gp);
    0x000254ec lw t9, -0x7c4c(gp)                            |         t9 = sym.sql_get_recording_blocks;
    0x000254f0 addiu a2, s1, 0x7124                          |         a2 = s1 + 0x7124;
    0x000254f4 move a0, s0                                   |         a0 = s0;
                                                             |         /* esilref: 'recordings' */
    0x000254f8 addiu a1, a1, -0x21e8                         |         a1 += -0x21e8;
    0x000254fc sw v0, 0x10(sp)                               |         *(var_10h) = v0;
    0x00025500 bal 0x3f304                                   |         sym_sql_get_recording_blocks ();
    0x00025504 lw gp, 0x28(sp)                               |         gp = *(var_28h);
    0x00025508 lw a3, 0x70(sp)                               |         a3 = *(arg_70h);
    0x0002550c lw a1, (v0)                                   |         a1 = *(v0);
    0x00025510 lw t9, -0x7d2c(gp)                            |         t9 = *(gp);
    0x00025514 move a2, s4                                   |         a2 = s4;
    0x00025518 move a0, fp                                   |         a0 = fp;
                                                             |         /* fcn.00019f9c */
    0x0002551c addiu t9, t9, -0x6064                         |         t9 += -0x6064;
    0x00025520 move s0, v0                                   |         s0 = v0;
    0x00025524 bal 0x19f9c                                   |         fcn_00019f9c ();
    0x00025528 lw gp, 0x28(sp)                               |         gp = *(var_28h);
    0x0002552c move a0, s6                                   |         a0 = s6;
    0x00025530 lw t9, -0x74c8(gp)                            |         t9 = *((gp - 7474));
    0x00025534 move s1, v0                                   |         s1 = v0;
    0x00025538 jalr t9                                       |         t9 ();
    0x0002553c lw gp, 0x28(sp)                               |         gp = *(var_28h);
    0x00025540 addiu a1, zero, 1                             |         a1 = 1;
    0x00025544 lw t9, -0x75a8(gp)                            |         t9 = sym.imp.g_string_free;
    0x00025548 move a0, s0                                   |         a0 = s0;
    0x0002554c jalr t9                                       |         t9 ();
    0x00025550 lw gp, 0x28(sp)                               |         gp = *(var_28h);
    0x00025554 addiu a1, zero, 1                             |         a1 = 1;
    0x00025558 lw t9, -0x75a8(gp)                            |         t9 = sym.imp.g_string_free;
    0x0002555c move a0, s5                                   |         a0 = s5;
    0x00025560 jalr t9                                       |         t9 ();
    0x00025564 lw gp, 0x28(sp)                               |         gp = *(var_28h);
    0x00025568 addiu a1, zero, 1                             |         a1 = 1;
    0x0002556c lw t9, -0x75a8(gp)                            |         t9 = sym.imp.g_string_free;
    0x00025570 move a0, s3                                   |         a0 = s3;
    0x00025574 jalr t9                                       |         t9 ();
    0x00025578 lw gp, 0x28(sp)                               |         gp = *(var_28h);
                                                             |         if (s1 != 0) {
    0x0002557c bnez s1, 0x2560c                              |             goto label_4;
                                                             |         }
    0x00025580 addiu s1, zero, 1                             |         s1 = 1;
                                                             | label_0:
    0x00025584 lw t9, -0x76cc(gp)                            |         t9 = sym.imp.g_rec_mutex_unlock;
    0x00025588 addiu a0, s7, -0xf58                          |         a0 = s7 + -0xf58;
    0x0002558c jalr t9                                       |         t9 ();
    0x00025590 lw ra, 0x5c(sp)                               |         ra = *(var_5ch);
    0x00025594 move v0, s1                                   |         v0 = s1;
    0x00025598 lw fp, 0x58(sp)                               |         fp = *(var_58h);
    0x0002559c lw s7, 0x54(sp)                               |         s7 = *(var_54h);
    0x000255a0 lw s6, 0x50(sp)                               |         s6 = *(var_50h);
    0x000255a4 lw s5, 0x4c(sp)                               |         s5 = *(var_4ch);
    0x000255a8 lw s4, 0x48(sp)                               |         s4 = *(var_48h);
    0x000255ac lw s3, 0x44(sp)                               |         s3 = *(var_44h);
    0x000255b0 lw s2, 0x40(sp)                               |         s2 = *(var_40h);
    0x000255b4 lw s1, 0x3c(sp)                               |         s1 = *(var_3ch);
    0x000255b8 lw s0, 0x38(sp)                               |         s0 = *(var_38h);
    0x000255bc addiu sp, sp, 0x60                            |         
    0x000255c0 jr ra                                         |         return v0;
                                                             | label_1:
    0x000255c4 lw v0, -0x7fd8(gp)                            |         v0 = *(gp);
    0x000255c8 lw a3, -0x7fd8(gp)                            |         a3 = *(gp);
    0x000255cc lw a1, -0x7fd8(gp)                            |         a1 = *(gp);
                                                             |         /* str.main_database */
    0x000255d0 addiu v0, v0, 0x894                           |         v0 += 0x894;
    0x000255d4 lw t9, -0x76c0(gp)                            |         t9 = sym.imp.g_assertion_message_expr;
    0x000255d8 sw v0, 0x10(sp)                               |         *(var_10h) = v0;
                                                             |         /* str.database_get_oldest_recording_blocks */
    0x000255dc addiu a3, a3, 0x2454                          |         a3 += 0x2454;
    0x000255e0 addiu a2, zero, 0x1404                        |         a2 = 0x1404;
                                                             |         /* str.database_sql_interface.c */
    0x000255e4 addiu a1, a1, 0x820                           |         a1 += 0x820;
    0x000255e8 move a0, zero                                 |         a0 = 0;
    0x000255ec jalr t9                                       |         t9 ();
    0x000255f0 lw t9, -0x7208(gp)                            |         t9 = sym.imp.g_string_append_len;
    0x000255f4 lw a1, (v1)                                   |         a1 = *(v1);
    0x000255f8 move a0, s3                                   |         a0 = s3;
    0x000255fc jalr t9                                       |         t9 ();
    0x00025600 lw gp, 0x28(sp)                               |         gp = *(var_28h);
    0x00025604 lw v1, 0x34(sp)                               |         v1 = *(var_34h);
    0x00025608 b 0x254b0                                     |         
                                                             |     }
                                                             | label_4:
    0x0002560c lw t9, -0x7268(gp)                            |     t9 = sym.imp.sqlite3_errcode;
    0x00025610 lw a0, -0xf48(s2)                             |     a0 = *((s2 - 978));
    0x00025614 move s1, zero                                 |     s1 = 0;
    0x00025618 jalr t9                                       |     t9 ();
    0x0002561c lw gp, 0x28(sp)                               |     gp = *(var_28h);
    0x00025620 lw a0, -0xf48(s2)                             |     a0 = *((s2 - 978));
    0x00025624 lw t9, -0x7268(gp)                            |     t9 = sym.imp.sqlite3_errcode;
    0x00025628 move s0, v0                                   |     s0 = v0;
    0x0002562c jalr t9                                       |     t9 ();
    0x00025630 lw gp, 0x28(sp)                               |     gp = *(var_28h);
    0x00025634 lw a0, -0xf48(s2)                             |     a0 = *((s2 - 978));
    0x00025638 lw t9, -0x73f8(gp)                            |     t9 = sym.imp.sqlite3_errmsg;
    0x0002563c move s2, v0                                   |     s2 = v0;
    0x00025640 jalr t9                                       |     t9 ();
    0x00025644 lw gp, 0x28(sp)                               |     gp = *(var_28h);
    0x00025648 sw v0, 0x1c(sp)                               |     *(var_1ch) = v0;
    0x0002564c lw a0, 0x74(sp)                               |     a0 = *(arg_74h);
    0x00025650 lw v0, -0x7fd8(gp)                            |     v0 = *(gp);
    0x00025654 lw a1, -0x7fd8(gp)                            |     a1 = *(gp);
                                                             |     /* str.SQLite_error:___d___s */
    0x00025658 addiu v0, v0, 0x908                           |     v0 += 0x908;
    0x0002565c sw v0, 0x14(sp)                               |     *(var_14h) = v0;
    0x00025660 lw v0, -0x7fd8(gp)                            |     v0 = *(gp);
    0x00025664 lw t9, -0x7df8(gp)                            |     t9 = sym.set_error;
                                                             |     /* str.DatabaseError */
    0x00025668 addiu v0, v0, -0x2648                         |     v0 += -0x2648;
    0x0002566c sw s2, 0x18(sp)                               |     *(var_18h) = s2;
    0x00025670 sw v0, 0x10(sp)                               |     *(var_10h) = v0;
    0x00025674 move a3, s0                                   |     a3 = s0;
    0x00025678 addiu a2, zero, 0x142e                        |     a2 = 0x142e;
                                                             |     /* esilref: 'database_get_oldest_recording_blocks' */
    0x0002567c addiu a1, a1, 0x242c                          |     a1 += 0x242c;
    0x00025680 bal 0x422c0                                   |     sym_set_error ();
    0x00025684 lw gp, 0x28(sp)                               |     gp = *(var_28h);
    0x00025688 b 0x25584                                     |     goto label_0;
                                                             | label_2:
    0x0002568c lw v0, -0x7fd8(gp)                            |     v0 = *(gp);
    0x00025690 lw a1, -0x7fd8(gp)                            |     a1 = *(gp);
                                                             |     /* str.Storage_id_must_be_supplied */
    0x00025694 addiu v0, v0, -0x261c                         |     v0 += -0x261c;
    0x00025698 sw v0, 0x14(sp)                               |     *(var_14h) = v0;
    0x0002569c lw v0, -0x7fd8(gp)                            |     v0 = *(gp);
    0x000256a0 lw t9, -0x7df8(gp)                            |     t9 = sym.set_error;
                                                             |     /* str.DatabaseError */
    0x000256a4 addiu v0, v0, -0x2648                         |     v0 += -0x2648;
    0x000256a8 lw a0, 0x74(sp)                               |     a0 = *(arg_74h);
    0x000256ac sw v0, 0x10(sp)                               |     *(var_10h) = v0;
    0x000256b0 move a3, zero                                 |     a3 = 0;
    0x000256b4 addiu a2, zero, 0x1407                        |     a2 = 0x1407;
                                                             |     /* esilref: 'database_get_oldest_recording_blocks' */
    0x000256b8 addiu a1, a1, 0x242c                          |     a1 += 0x242c;
    0x000256bc bal 0x422c0                                   |     sym_set_error ();
    0x000256c0 lw ra, 0x5c(sp)                               |     ra = *(var_5ch);
    0x000256c4 move s1, zero                                 |     s1 = 0;
    0x000256c8 move v0, s1                                   |     v0 = s1;
    0x000256cc lw fp, 0x58(sp)                               |     fp = *(var_58h);
    0x000256d0 lw s7, 0x54(sp)                               |     s7 = *(var_54h);
    0x000256d4 lw s6, 0x50(sp)                               |     s6 = *(var_50h);
    0x000256d8 lw s5, 0x4c(sp)                               |     s5 = *(var_4ch);
    0x000256dc lw s4, 0x48(sp)                               |     s4 = *(var_48h);
    0x000256e0 lw s3, 0x44(sp)                               |     s3 = *(var_44h);
    0x000256e4 lw s2, 0x40(sp)                               |     s2 = *(var_40h);
    0x000256e8 lw s1, 0x3c(sp)                               |     s1 = *(var_3ch);
    0x000256ec lw s0, 0x38(sp)                               |     s0 = *(var_38h);
    0x000256f0 addiu sp, sp, 0x60                            |     
    0x000256f4 jr ra                                         |     return v0;
                                                             | label_3:
    0x000256f8 move s1, zero                                 |     s1 = 0;
    0x000256fc b 0x25584                                     |     goto label_0;
                                                             | }
    ; assembly                                                   | /* r2dec pseudo code output */
                                                                 | /* /logs/firmware/unblob_extracted/firmware_extract/4325012-58052244.squashfs_v4_le_extract/usr/bin/indexer @ 0x209e8 */
                                                                 | #include <stdint.h>
                                                                 |  
    ; (fcn) sym.database_get_recording_group_information ()      | void database_get_recording_group_information () {
    0x000209e8 lui gp, 6                                         |     
    0x000209ec addiu gp, gp, 0x5718                              |     
    0x000209f0 addu gp, gp, t9                                   |     gp += t9;
    0x000209f4 lw v0, -0x71a0(gp)                                |     v0 = *((gp - 7272));
    0x000209f8 lw t0, -0x7fd4(gp)                                |     t0 = *((gp - 8181));
    0x000209fc addiu sp, sp, -0x88                               |     
    0x00020a00 lw v1, (v0)                                       |     v1 = *(v0);
    0x00020a04 sw s2, 0x68(sp)                                   |     *(var_68h) = s2;
    0x00020a08 sw v0, 0x40(sp)                                   |     *(var_40h) = v0;
    0x00020a0c move s2, a1                                       |     s2 = a1;
    0x00020a10 lw v0, -0xf48(t0)                                 |     v0 = *((t0 - 978));
    0x00020a14 lw a1, 0x98(sp)                                   |     a1 = *(arg_98h);
    0x00020a18 sw gp, 0x20(sp)                                   |     *(var_20h) = gp;
    0x00020a1c sw ra, 0x84(sp)                                   |     *(var_84h) = ra;
    0x00020a20 sw fp, 0x80(sp)                                   |     *(var_80h) = fp;
    0x00020a24 sw s7, 0x7c(sp)                                   |     *(var_7ch) = s7;
    0x00020a28 sw s6, 0x78(sp)                                   |     *(var_78h) = s6;
    0x00020a2c sw s5, 0x74(sp)                                   |     *(var_74h) = s5;
    0x00020a30 sw s4, 0x70(sp)                                   |     *(var_70h) = s4;
    0x00020a34 sw s3, 0x6c(sp)                                   |     *(var_6ch) = s3;
    0x00020a38 sw s1, 0x64(sp)                                   |     *(var_64h) = s1;
    0x00020a3c sw s0, 0x60(sp)                                   |     *(var_60h) = s0;
    0x00020a40 sw t0, 0x48(sp)                                   |     *(var_48h) = t0;
    0x00020a44 sw a1, 0x3c(sp)                                   |     *(var_3ch) = a1;
    0x00020a48 sw v1, 0x5c(sp)                                   |     *(var_5ch) = v1;
    0x00020a4c lw v0, -0x7fd8(gp)                                |     v0 = *(gp);
                                                                 |     if (v0 == 0) {
    0x00020a50 beqz v0, 0x20cb0                                  |         goto label_3;
                                                                 |     }
    0x00020a54 move s1, a0                                       |     s1 = a0;
                                                                 |     if (a0 == 0) {
    0x00020a58 beqz a0, 0x20cd8                                  |         goto label_4;
                                                                 |     }
    0x00020a5c lw t9, -0x7d24(gp)                                |     t9 = sym.sql_valid_storage_name;
    0x00020a60 lw a1, 0x3c(sp)                                   |     a1 = *(var_3ch);
    0x00020a64 move a0, s2                                       |     a0 = s2;
    0x00020a68 move s4, a2                                       |     s4 = a2;
    0x00020a6c move s3, a3                                       |     s3 = a3;
    0x00020a70 bal 0x3a5d4                                       |     sym_sql_valid_storage_name ();
    0x00020a74 move s0, v0                                       |     s0 = v0;
    0x00020a78 lw gp, 0x20(sp)                                   |     gp = *(var_20h);
    0x00020a7c bnez v0, 0x20ac4                                  |     
                                                                 |     while (1) {
    0x00020a80 lw v0, 0x40(sp)                                   |         v0 = *(var_40h);
    0x00020a84 lw a0, 0x5c(sp)                                   |         a0 = *(var_5ch);
    0x00020a88 lw v1, (v0)                                       |         v1 = *(v0);
    0x00020a8c move v0, s0                                       |         v0 = s0;
                                                                 |         if (a0 != v1) {
    0x00020a90 bne a0, v1, 0x20f24                               |             goto label_5;
                                                                 |         }
    0x00020a94 lw ra, 0x84(sp)                                   |         ra = *(var_84h);
    0x00020a98 lw fp, 0x80(sp)                                   |         fp = *(var_80h);
    0x00020a9c lw s7, 0x7c(sp)                                   |         s7 = *(var_7ch);
    0x00020aa0 lw s6, 0x78(sp)                                   |         s6 = *(var_78h);
    0x00020aa4 lw s5, 0x74(sp)                                   |         s5 = *(var_74h);
    0x00020aa8 lw s4, 0x70(sp)                                   |         s4 = *(var_70h);
    0x00020aac lw s3, 0x6c(sp)                                   |         s3 = *(var_6ch);
    0x00020ab0 lw s2, 0x68(sp)                                   |         s2 = *(var_68h);
    0x00020ab4 lw s1, 0x64(sp)                                   |         s1 = *(var_64h);
    0x00020ab8 lw s0, 0x60(sp)                                   |         s0 = *(var_60h);
    0x00020abc addiu sp, sp, 0x88                                |         
    0x00020ac0 jr ra                                             |         return v0;
    0x00020ac4 lw v0, -0x7fd4(gp)                                |         v0 = *((gp - 8181));
    0x00020ac8 lw t9, -0x7688(gp)                                |         t9 = sym.imp.g_rec_mutex_lock;
    0x00020acc sw v0, 0x4c(sp)                                   |         *(var_4ch) = v0;
    0x00020ad0 addiu a0, v0, -0xf58                              |         a0 = v0 + -0xf58;
    0x00020ad4 jalr t9                                           |         t9 ();
    0x00020ad8 lw gp, 0x20(sp)                                   |         gp = *(var_20h);
    0x00020adc sw s4, 0x54(sp)                                   |         *(var_54h_4) = s4;
    0x00020ae0 sw s3, 0x58(sp)                                   |         *(var_58h_4) = s3;
    0x00020ae4 sw zero, 0x50(sp)                                 |         *(var_50h) = 0;
                                                                 |         if (s2 == 0) {
    0x00020ae8 beqz s2, 0x20d00                                  |             goto label_6;
                                                                 |         }
    0x00020aec lw v0, -0x7fd4(gp)                                |         v0 = *((gp - 8181));
    0x00020af0 lw a2, -0x7d2c(gp)                                |         a2 = *(gp);
    0x00020af4 lw t9, -0x7528(gp)                                |         t9 = sym.imp.g_list_find_custom;
    0x00020af8 lw a0, -0xf4c(v0)                                 |         a0 = *((v0 - 979));
    0x00020afc addiu a2, a2, -0x6540                             |         a2 += -0x6540;
    0x00020b00 move a1, s2                                       |         a1 = s2;
    0x00020b04 jalr t9                                           |         t9 ();
    0x00020b08 move s3, v0                                       |         s3 = v0;
    0x00020b0c lw gp, 0x20(sp)                                   |         gp = *(var_20h);
                                                                 |         if (v0 == 0) {
    0x00020b10 beqz v0, 0x20ed8                                  |             goto label_7;
                                                                 |         }
    0x00020b14 lw a0, -0x7fd8(gp)                                |         a0 = *(gp);
    0x00020b18 lw t9, -0x71b4(gp)                                |         t9 = sym.imp.g_string_new;
    0x00020b1c addiu a0, a0, 0x403c                              |         a0 += 0x403c;
    0x00020b20 jalr t9                                           |         t9 ();
    0x00020b24 lw gp, 0x20(sp)                                   |         gp = *(var_20h);
    0x00020b28 lw v1, (s3)                                       |         v1 = *(s3);
    0x00020b2c move s0, v0                                       |         s0 = v0;
    0x00020b30 lw a3, -0x7fd8(gp)                                |         a3 = *(gp);
    0x00020b34 lw a0, 4(v1)                                      |         a0 = *((v1 + 1));
    0x00020b38 lw v1, -0x7fd8(gp)                                |         v1 = *(gp);
    0x00020b3c lw a2, -0x7fd8(gp)                                |         a2 = *(gp);
    0x00020b40 lw a1, -0x7fd8(gp)                                |         a1 = *(gp);
    0x00020b44 lw t9, -0x7ce0(gp)                                |         t9 = sym.sql_select_column_from_table;
    0x00020b48 addiu v1, v1, 0xf80                               |         v1 += 0xf80;
    0x00020b4c sw v1, 0x14(sp)                                   |         *(var_14h) = v1;
                                                                 |         /* esilref: 'recording_group_id' */
    0x00020b50 addiu a3, a3, 0x80c                               |         a3 += 0x80c;
                                                                 |         /* esilref: 'recording_id' */
    0x00020b54 addiu a2, a2, 0x78c8                              |         a2 += 0x78c8;
                                                                 |         /* str.recording_groups */
    0x00020b58 addiu a1, a1, 0xa24                               |         a1 += 0xa24;
    0x00020b5c sw s1, 0x10(sp)                                   |         *(var_10h) = s1;
    0x00020b60 sw zero, 0x18(sp)                                 |         *(var_18h) = 0;
    0x00020b64 bal 0x3d954                                       |         sym_sql_select_column_from_table ();
    0x00020b68 lw gp, 0x20(sp)                                   |         gp = *(var_20h);
    0x00020b6c move s1, v0                                       |         s1 = v0;
    0x00020b70 lw v0, (v0)                                       |         v0 = *(v0);
    0x00020b74 lw s2, -0x7fd8(gp)                                |         s2 = *(gp);
    0x00020b78 lw a3, -0x7fd8(gp)                                |         a3 = *(gp);
    0x00020b7c lw a2, -0x7f50(gp)                                |         a2 = *((gp - 8148));
    0x00020b80 lw a0, -0x7fd8(gp)                                |         a0 = *(gp);
    0x00020b84 lw t9, -0x7328(gp)                                |         t9 = sym.imp.g_strdup_printf
                                                                 |         /* esilref: 'IN' */
    0x00020b88 addiu a3, a3, 0xbb8                               |         a3 += 0xbb8;
                                                                 |         /* esilref: 'id' */
    0x00020b8c addiu a2, a2, -0x6dbc                             |         a2 += -0x6dbc;
                                                                 |         /* esilref: 'recordings' */
    0x00020b90 addiu a1, s2, -0x21e8                             |         a1 = s2 + -0x21e8;
                                                                 |         /* str._s._s__s___s_ */
    0x00020b94 addiu a0, a0, 0xfc0                               |         a0 += 0xfc0;
    0x00020b98 sw v0, 0x10(sp)                                   |         *(var_10h) = v0;
    0x00020b9c jalr t9                                           |         t9 ();
    0x00020ba0 lw v1, (s3)                                       |         v1 = *(s3);
    0x00020ba4 lw gp, 0x20(sp)                                   |         gp = *(var_20h);
    0x00020ba8 move a2, zero                                     |         a2 = 0;
    0x00020bac lw a0, 4(v1)                                      |         a0 = *((v1 + 1));
    0x00020bb0 lw t9, -0x7ca8(gp)                                |         t9 = sym.sql_recordings_select_all;
    0x00020bb4 move a1, v0                                       |         a1 = v0;
    0x00020bb8 move s3, v0                                       |         s3 = v0;
    0x00020bbc bal 0x3e68c                                       |         sym_sql_recordings_select_all ();
    0x00020bc0 lw gp, 0x20(sp)                                   |         gp = *(var_20h);
    0x00020bc4 move a1, v0                                       |         a1 = v0;
    0x00020bc8 lw t9, -0x7d1c(gp)                                |         t9 = sym.string_merge_g_strings;
    0x00020bcc move a0, s0                                       |         a0 = s0;
    0x00020bd0 jalr t9                                           |         t9 ();
    0x00020bd4 lw gp, 0x20(sp)                                   |         gp = *(var_20h);
    0x00020bd8 lw t9, -0x74c8(gp)                                |         t9 = *((gp - 7474));
    0x00020bdc move a0, s3                                       |         a0 = s3;
    0x00020be0 jalr t9                                           |         t9 ();
    0x00020be4 lw gp, 0x20(sp)                                   |         gp = *(var_20h);
    0x00020be8 addiu a1, zero, 1                                 |         a1 = 1;
    0x00020bec lw t9, -0x75a8(gp)                                |         t9 = sym.imp.g_string_free;
    0x00020bf0 move a0, s1                                       |         a0 = s1;
    0x00020bf4 jalr t9                                           |         t9 ();
    0x00020bf8 lw gp, 0x20(sp)                                   |         gp = *(var_20h);
                                                                 | label_0:
    0x00020bfc lw a1, -0x7fd8(gp)                                |         a1 = *(gp);
    0x00020c00 lw t9, -0x7cac(gp)                                |         t9 = sym.sql_order_limit;
    0x00020c04 addiu a3, zero, 1                                 |         a3 = 1;
    0x00020c08 addiu a2, zero, 1                                 |         a2 = 1;
                                                                 |         /* str.starttime */
    0x00020c0c addiu a1, a1, 0x7a8                               |         a1 += 0x7a8;
                                                                 |         /* esilref: 'recordings' */
    0x00020c10 addiu a0, s2, -0x21e8                             |         a0 = s2 + -0x21e8;
    0x00020c14 sw zero, 0x10(sp)                                 |         *(var_10h) = 0;
    0x00020c18 bal 0x3a680                                       |         sym_sql_order_limit ();
    0x00020c1c lw gp, 0x20(sp)                                   |         gp = *(var_20h);
    0x00020c20 lw a2, (v0)                                       |         a2 = *(v0);
    0x00020c24 move a0, s0                                       |         a0 = s0;
    0x00020c28 lw a1, -0x7fd8(gp)                                |         a1 = *(gp);
    0x00020c2c lw t9, -0x772c(gp)                                |         t9 = sym.imp.g_string_append_printf
                                                                 |         /* esilref: ' &s;' */
    0x00020c30 addiu a1, a1, 0xfb8                               |         a1 += 0xfb8;
    0x00020c34 move s1, v0                                       |         s1 = v0;
    0x00020c38 jalr t9                                           |         t9 ();
    0x00020c3c lw gp, 0x20(sp)                                   |         gp = *(var_20h);
    0x00020c40 lw a1, (s0)                                       |         a1 = *(s0);
    0x00020c44 addiu a3, sp, 0x50                                |         a3 = sp + 0x50;
    0x00020c48 lw a2, -0x7d2c(gp)                                |         a2 = *(gp);
    0x00020c4c lw t9, -0x7d2c(gp)                                |         t9 = *(gp);
    0x00020c50 addiu a2, a2, -0x320c                             |         a2 += -0x320c;
                                                                 |         /* fcn.00019f9c */
    0x00020c54 addiu t9, t9, -0x6064                             |         t9 += -0x6064;
    0x00020c58 move a0, zero                                     |         a0 = 0;
    0x00020c5c bal 0x19f9c                                       |         fcn_00019f9c ();
    0x00020c60 lw gp, 0x20(sp)                                   |         gp = *(var_20h);
    0x00020c64 move a0, s1                                       |         a0 = s1;
    0x00020c68 addiu a1, zero, 1                                 |         a1 = 1;
    0x00020c6c lw t9, -0x75a8(gp)                                |         t9 = sym.imp.g_string_free;
    0x00020c70 move s1, v0                                       |         s1 = v0;
    0x00020c74 jalr t9                                           |         t9 ();
    0x00020c78 lw gp, 0x20(sp)                                   |         gp = *(var_20h);
    0x00020c7c move a0, s0                                       |         a0 = s0;
    0x00020c80 addiu a1, zero, 1                                 |         a1 = 1;
    0x00020c84 lw t9, -0x75a8(gp)                                |         t9 = sym.imp.g_string_free;
    0x00020c88 sltiu s0, s1, 1                                   |         s0 = (s1 < 1) ? 1 : 0;
    0x00020c8c jalr t9                                           |         t9 ();
    0x00020c90 lw gp, 0x20(sp)                                   |         gp = *(var_20h);
                                                                 |         if (s1 != 0) {
    0x00020c94 bnez s1, 0x20e58                                  |             goto label_8;
                                                                 |         }
                                                                 | label_2:
    0x00020c98 lw v0, 0x4c(sp)                                   |         v0 = *(var_4ch);
    0x00020c9c lw t9, -0x76cc(gp)                                |         t9 = sym.imp.g_rec_mutex_unlock;
    0x00020ca0 addiu a0, v0, -0xf58                              |         a0 = v0 + -0xf58;
    0x00020ca4 jalr t9                                           |         t9 ();
    0x00020ca8 lw gp, 0x20(sp)                                   |         gp = *(var_20h);
    0x00020cac b 0x20a80                                         |         
                                                                 |     }
                                                                 | label_3:
    0x00020cb0 lw a3, -0x7fd8(gp)                                |     a3 = *(gp);
    0x00020cb4 lw a1, -0x7fd8(gp)                                |     a1 = *(gp);
                                                                 |     /* str.main_database */
    0x00020cb8 addiu v0, v0, 0x894                               |     v0 += 0x894;
    0x00020cbc lw t9, -0x76c0(gp)                                |     t9 = sym.imp.g_assertion_message_expr;
    0x00020cc0 sw v0, 0x10(sp)                                   |     *(var_10h) = v0;
                                                                 |     /* str.database_get_recording_group_information */
    0x00020cc4 addiu a3, a3, 0x2c84                              |     a3 += 0x2c84;
    0x00020cc8 addiu a2, zero, 0xd9d                             |     a2 = 0xd9d;
                                                                 |     /* str.database_sql_interface.c */
    0x00020ccc addiu a1, a1, 0x820                               |     a1 += 0x820;
    0x00020cd0 move a0, zero                                     |     a0 = 0;
    0x00020cd4 jalr t9                                           |     t9 ();
                                                                 | label_4:
    0x00020cd8 lw v0, -0x7fd8(gp)                                |     v0 = *(gp);
    0x00020cdc lw a3, -0x7fd8(gp)                                |     a3 = *(gp);
    0x00020ce0 lw a1, -0x7fd8(gp)                                |     a1 = *(gp);
                                                                 |     /* esilref: 'recording_group_id' */
    0x00020ce4 addiu v0, v0, 0x80c                               |     v0 += 0x80c;
    0x00020ce8 lw t9, -0x76c0(gp)                                |     t9 = sym.imp.g_assertion_message_expr;
    0x00020cec sw v0, 0x10(sp)                                   |     *(var_10h) = v0;
                                                                 |     /* str.database_get_recording_group_information */
    0x00020cf0 addiu a3, a3, 0x2c84                              |     a3 += 0x2c84;
    0x00020cf4 addiu a2, zero, 0xd9e                             |     a2 = 0xd9e;
                                                                 |     /* str.database_sql_interface.c */
    0x00020cf8 addiu a1, a1, 0x820                               |     a1 += 0x820;
    0x00020cfc jalr t9                                           |     t9 ();
                                                                 | label_6:
    0x00020d00 lw v0, -0x7fd4(gp)                                |     v0 = *((gp - 8181));
    0x00020d04 lw t9, -0x72c0(gp)                                |     t9 = sym.imp.g_list_first;
    0x00020d08 lw a0, -0xf4c(v0)                                 |     a0 = *((v0 - 979));
    0x00020d0c jalr t9                                           |     t9 ();
    0x00020d10 lw gp, 0x20(sp)                                   |     gp = *(var_20h);
    0x00020d14 move s6, v0                                       |     s6 = v0;
    0x00020d18 lw a0, -0x7fd8(gp)                                |     a0 = *(gp);
    0x00020d1c lw t9, -0x71b4(gp)                                |     t9 = sym.imp.g_string_new;
    0x00020d20 addiu a0, a0, 0x403c                              |     a0 += 0x403c;
    0x00020d24 jalr t9                                           |     t9 ();
    0x00020d28 move s0, v0                                       |     s0 = v0;
    0x00020d2c lw gp, 0x20(sp)                                   |     gp = *(var_20h);
                                                                 |     if (s6 == 0) {
    0x00020d30 beqz s6, 0x20f1c                                  |         goto label_9;
                                                                 |     }
    0x00020d34 lw v0, -0x7fd8(gp)                                |     v0 = *(gp);
    0x00020d38 lw s5, -0x7fd8(gp)                                |     s5 = *(gp);
    0x00020d3c sw v0, 0x30(sp)                                   |     *(var_30h_5) = v0;
    0x00020d40 lw v0, -0x7f50(gp)                                |     v0 = *((gp - 8148));
    0x00020d44 lw s4, -0x7fd8(gp)                                |     s4 = *(gp);
    0x00020d48 sw v0, 0x2c(sp)                                   |     *(var_2ch_3) = v0;
    0x00020d4c lw v0, -0x7fd8(gp)                                |     v0 = *(gp);
    0x00020d50 lw s3, -0x7fd8(gp)                                |     s3 = *(gp);
    0x00020d54 sw v0, 0x34(sp)                                   |     *(var_34h_5) = v0;
    0x00020d58 lw v0, -0x7fd8(gp)                                |     v0 = *(gp);
    0x00020d5c lw s2, -0x7fd8(gp)                                |     s2 = *(gp);
                                                                 |     /* str.recording_groups */
    0x00020d60 addiu v0, v0, 0xa24                               |     v0 += 0xa24;
    0x00020d64 sw v0, 0x38(sp)                                   |     *(var_38h_5) = v0;
    0x00020d68 lw v0, -0x7fd8(gp)                                |     v0 = *(gp);
    0x00020d6c addiu s5, s5, 0xf80                               |     s5 += 0xf80;
                                                                 |     /* str._UNION_ */
    0x00020d70 addiu v0, v0, 0xca0                               |     v0 += 0xca0;
                                                                 |     /* esilref: 'recording_group_id' */
    0x00020d74 addiu s4, s4, 0x80c                               |     s4 += 0x80c;
                                                                 |     /* esilref: 'recording_id' */
    0x00020d78 addiu s3, s3, 0x78c8                              |     s3 += 0x78c8;
    0x00020d7c sw v0, 0x44(sp)                                   |     *(var_44h_5) = v0;
                                                                 | label_1:
    0x00020d80 lw v0, (s6)                                       |     v0 = *(s6);
    0x00020d84 lw t9, -0x7ce0(gp)                                |     t9 = sym.sql_select_column_from_table;
    0x00020d88 lw a1, 0x38(sp)                                   |     a1 = *(var_38h_5);
    0x00020d8c lw a0, 4(v0)                                      |     a0 = *((v0 + 1));
    0x00020d90 move a3, s4                                       |     a3 = s4;
    0x00020d94 move a2, s3                                       |     a2 = s3;
    0x00020d98 sw zero, 0x18(sp)                                 |     *(var_18h) = 0;
    0x00020d9c sw s5, 0x14(sp)                                   |     *(var_14h) = s5;
    0x00020da0 sw s1, 0x10(sp)                                   |     *(var_10h) = s1;
    0x00020da4 bal 0x3d954                                       |     sym_sql_select_column_from_table ();
    0x00020da8 lw v1, 0x30(sp)                                   |     v1 = *(var_30h_5);
    0x00020dac lw gp, 0x20(sp)                                   |     gp = *(var_20h);
    0x00020db0 addiu a3, v1, 0xbb8                               |     a3 = v1 + 0xbb8;
    0x00020db4 lw v1, 0x2c(sp)                                   |     v1 = *(var_2ch_3);
    0x00020db8 move s7, v0                                       |     s7 = v0;
    0x00020dbc addiu a2, v1, -0x6dbc                             |     a2 = v1 + -0x6dbc;
    0x00020dc0 lw v0, (v0)                                       |     v0 = *(v0);
    0x00020dc4 lw v1, 0x34(sp)                                   |     v1 = *(var_34h_5);
    0x00020dc8 lw t9, -0x7328(gp)                                |     t9 = sym.imp.g_strdup_printf
    0x00020dcc addiu a0, v1, 0xfc0                               |     a0 = v1 + 0xfc0;
                                                                 |     /* esilref: 'recordings' */
    0x00020dd0 addiu a1, s2, -0x21e8                             |     a1 = s2 + -0x21e8;
    0x00020dd4 sw v0, 0x10(sp)                                   |     *(var_10h) = v0;
    0x00020dd8 jalr t9                                           |     t9 ();
    0x00020ddc lw gp, 0x20(sp)                                   |     gp = *(var_20h);
    0x00020de0 lw a0, (s6)                                       |     a0 = *(s6);
    0x00020de4 move a2, zero                                     |     a2 = 0;
    0x00020de8 lw t9, -0x7ca8(gp)                                |     t9 = sym.sql_recordings_select_all;
    0x00020dec lw a0, 4(a0)                                      |     a0 = *((a0 + 1));
    0x00020df0 move a1, v0                                       |     a1 = v0;
    0x00020df4 move fp, v0                                       |     fp = v0;
    0x00020df8 bal 0x3e68c                                       |     sym_sql_recordings_select_all ();
    0x00020dfc lw gp, 0x20(sp)                                   |     gp = *(var_20h);
    0x00020e00 move a1, v0                                       |     a1 = v0;
    0x00020e04 lw t9, -0x7d1c(gp)                                |     t9 = sym.string_merge_g_strings;
    0x00020e08 move a0, s0                                       |     a0 = s0;
    0x00020e0c jalr t9                                           |     t9 ();
    0x00020e10 lw gp, 0x20(sp)                                   |     gp = *(var_20h);
    0x00020e14 lw t9, -0x74c8(gp)                                |     t9 = *((gp - 7474));
    0x00020e18 move a0, fp                                       |     a0 = fp;
    0x00020e1c jalr t9                                           |     t9 ();
    0x00020e20 lw gp, 0x20(sp)                                   |     gp = *(var_20h);
    0x00020e24 addiu a1, zero, 1                                 |     a1 = 1;
    0x00020e28 lw t9, -0x75a8(gp)                                |     t9 = sym.imp.g_string_free;
    0x00020e2c move a0, s7                                       |     a0 = s7;
    0x00020e30 jalr t9                                           |     t9 ();
    0x00020e34 lw s6, 4(s6)                                      |     s6 = *((s6 + 1));
    0x00020e38 lw gp, 0x20(sp)                                   |     gp = *(var_20h);
                                                                 |     if (s6 == 0) {
    0x00020e3c beqz s6, 0x20bfc                                  |         goto label_0;
                                                                 |     }
    0x00020e40 lw t9, -0x772c(gp)                                |     t9 = sym.imp.g_string_append_printf
    0x00020e44 lw a1, 0x44(sp)                                   |     a1 = *(var_44h_5);
    0x00020e48 move a0, s0                                       |     a0 = s0;
    0x00020e4c jalr t9                                           |     t9 ();
    0x00020e50 lw gp, 0x20(sp)                                   |     gp = *(var_20h);
    0x00020e54 b 0x20d80                                         |     goto label_1;
                                                                 | label_8:
    0x00020e58 lw s2, 0x48(sp)                                   |     s2 = *(var_48h);
    0x00020e5c lw t9, -0x7268(gp)                                |     t9 = sym.imp.sqlite3_errcode;
    0x00020e60 lw a0, -0xf48(s2)                                 |     a0 = *((s2 - 978));
    0x00020e64 jalr t9                                           |     t9 ();
    0x00020e68 lw gp, 0x20(sp)                                   |     gp = *(var_20h);
    0x00020e6c lw a0, -0xf48(s2)                                 |     a0 = *((s2 - 978));
    0x00020e70 lw t9, -0x7268(gp)                                |     t9 = sym.imp.sqlite3_errcode;
    0x00020e74 move s1, v0                                       |     s1 = v0;
    0x00020e78 jalr t9                                           |     t9 ();
    0x00020e7c lw gp, 0x20(sp)                                   |     gp = *(var_20h);
    0x00020e80 lw a0, -0xf48(s2)                                 |     a0 = *((s2 - 978));
    0x00020e84 lw t9, -0x73f8(gp)                                |     t9 = sym.imp.sqlite3_errmsg;
    0x00020e88 move s2, v0                                       |     s2 = v0;
    0x00020e8c jalr t9                                           |     t9 ();
    0x00020e90 lw gp, 0x20(sp)                                   |     gp = *(var_20h);
    0x00020e94 sw v0, 0x1c(sp)                                   |     *(var_1ch) = v0;
    0x00020e98 lw a0, 0x3c(sp)                                   |     a0 = *(var_3ch);
    0x00020e9c lw v0, -0x7fd8(gp)                                |     v0 = *(gp);
    0x00020ea0 lw a1, -0x7fd8(gp)                                |     a1 = *(gp);
                                                                 |     /* str.SQLite_error:___d___s */
    0x00020ea4 addiu v0, v0, 0x908                               |     v0 += 0x908;
    0x00020ea8 sw v0, 0x14(sp)                                   |     *(var_14h) = v0;
    0x00020eac lw v0, -0x7fd8(gp)                                |     v0 = *(gp);
    0x00020eb0 lw t9, -0x7df8(gp)                                |     t9 = sym.set_error;
                                                                 |     /* str.DatabaseError */
    0x00020eb4 addiu v0, v0, -0x2648                             |     v0 += -0x2648;
    0x00020eb8 sw s2, 0x18(sp)                                   |     *(var_18h) = s2;
    0x00020ebc sw v0, 0x10(sp)                                   |     *(var_10h) = v0;
    0x00020ec0 move a3, s1                                       |     a3 = s1;
    0x00020ec4 addiu a2, zero, 0xdd8                             |     a2 = 0xdd8;
                                                                 |     /* esilref: 'database_get_recording_group_information' */
    0x00020ec8 addiu a1, a1, 0x2c58                              |     a1 += 0x2c58;
    0x00020ecc jalr t9                                           |     t9 ();
    0x00020ed0 lw gp, 0x20(sp)                                   |     gp = *(var_20h);
    0x00020ed4 b 0x20c98                                         |     goto label_2;
                                                                 | label_7:
    0x00020ed8 lw v0, -0x7fd8(gp)                                |     v0 = *(gp);
    0x00020edc lw a1, -0x7fd8(gp)                                |     a1 = *(gp);
                                                                 |     /* str.Database__s_does_not_exist */
    0x00020ee0 addiu v0, v0, 0xb4c                               |     v0 += 0xb4c;
    0x00020ee4 sw v0, 0x14(sp)                                   |     *(var_14h) = v0;
    0x00020ee8 lw v0, -0x7fd8(gp)                                |     v0 = *(gp);
    0x00020eec lw t9, -0x7df8(gp)                                |     t9 = sym.set_error;
                                                                 |     /* str.DatabaseError */
    0x00020ef0 addiu v0, v0, -0x2648                             |     v0 += -0x2648;
    0x00020ef4 lw a0, 0x3c(sp)                                   |     a0 = *(var_3ch);
    0x00020ef8 sw s2, 0x18(sp)                                   |     *(var_18h) = s2;
    0x00020efc sw v0, 0x10(sp)                                   |     *(var_10h) = v0;
    0x00020f00 move a3, zero                                     |     a3 = 0;
    0x00020f04 addiu a2, zero, 0xdab                             |     a2 = 0xdab;
                                                                 |     /* esilref: 'database_get_recording_group_information' */
    0x00020f08 addiu a1, a1, 0x2c58                              |     a1 += 0x2c58;
    0x00020f0c jalr t9                                           |     t9 ();
    0x00020f10 move s0, zero                                     |     s0 = 0;
    0x00020f14 lw gp, 0x20(sp)                                   |     gp = *(var_20h);
    0x00020f18 b 0x20c98                                         |     goto label_2;
                                                                 | label_9:
    0x00020f1c lw s2, -0x7fd8(gp)                                |     s2 = *(gp);
    0x00020f20 b 0x20bfc                                         |     goto label_0;
                                                                 | label_5:
    0x00020f24 lw t9, -0x7494(gp)                                |     t9 = sym.imp.__stack_chk_fail;
    0x00020f28 jalr t9                                           |     t9 ();
    0x00020f2c nop                                               |     
                                                                 | }
    ; assembly                                               | /* r2dec pseudo code output */
                                                             | /* /logs/firmware/unblob_extracted/firmware_extract/4325012-58052244.squashfs_v4_le_extract/usr/bin/indexer @ 0x204a8 */
                                                             | #include <stdint.h>
                                                             |  
    ; (fcn) sym.database_get_recording_group_stoptime ()     | void database_get_recording_group_stoptime () {
    0x000204a8 lui gp, 6                                     |     
    0x000204ac addiu gp, gp, 0x5c58                          |     
    0x000204b0 addu gp, gp, t9                               |     gp += t9;
    0x000204b4 lw v0, -0x7fd4(gp)                            |     v0 = *((gp - 8181));
    0x000204b8 addiu sp, sp, -0x70                           |     
    0x000204bc sw v0, 0x3c(sp)                               |     *(var_3ch) = v0;
    0x000204c0 lw v0, -0xf48(v0)                             |     v0 = *((v0 - 978));
    0x000204c4 sw gp, 0x20(sp)                               |     *(var_20h) = gp;
    0x000204c8 sw ra, 0x6c(sp)                               |     *(var_6ch) = ra;
    0x000204cc sw fp, 0x68(sp)                               |     *(var_68h) = fp;
    0x000204d0 sw s7, 0x64(sp)                               |     *(var_64h) = s7;
    0x000204d4 sw s6, 0x60(sp)                               |     *(var_60h) = s6;
    0x000204d8 sw s5, 0x5c(sp)                               |     *(var_5ch) = s5;
    0x000204dc sw s4, 0x58(sp)                               |     *(var_58h) = s4;
    0x000204e0 sw s3, 0x54(sp)                               |     *(var_54h) = s3;
    0x000204e4 sw s2, 0x50(sp)                               |     *(var_50h) = s2;
    0x000204e8 sw s1, 0x4c(sp)                               |     *(var_4ch) = s1;
    0x000204ec sw s0, 0x48(sp)                               |     *(var_48h) = s0;
    0x000204f0 sw a2, 0x78(sp)                               |     *(arg_78h) = a2;
    0x000204f4 sw a3, 0x7c(sp)                               |     *(arg_7ch) = a3;
                                                             |     if (v0 == 0) {
    0x000204f8 beqz v0, 0x20764                              |         goto label_3;
                                                             |     }
    0x000204fc lw t9, -0x7d24(gp)                            |     t9 = sym.sql_valid_storage_name;
                                                             |     if (a2 == 0) {
    0x00020500 beqz a2, 0x20790                              |         goto label_4;
                                                             |     }
    0x00020504 move s1, a1                                   |     s1 = a1;
    0x00020508 lw a1, 0x7c(sp)                               |     a1 = *(arg_7ch);
    0x0002050c move s2, a0                                   |     s2 = a0;
    0x00020510 move a0, s1                                   |     a0 = s1;
    0x00020514 bal 0x3a5d4                                   |     sym_sql_valid_storage_name ();
    0x00020518 move s0, v0                                   |     s0 = v0;
    0x0002051c lw gp, 0x20(sp)                               |     gp = *(var_20h);
                                                             |     if (v0 == 0) {
    0x00020520 bnez v0, 0x20558                              |         
    0x00020524 lw ra, 0x6c(sp)                               |         ra = *(var_6ch);
    0x00020528 move v0, s0                                   |         v0 = s0;
    0x0002052c lw fp, 0x68(sp)                               |         fp = *(var_68h);
    0x00020530 lw s7, 0x64(sp)                               |         s7 = *(var_64h);
    0x00020534 lw s6, 0x60(sp)                               |         s6 = *(var_60h);
    0x00020538 lw s5, 0x5c(sp)                               |         s5 = *(var_5ch);
    0x0002053c lw s4, 0x58(sp)                               |         s4 = *(var_58h);
    0x00020540 lw s3, 0x54(sp)                               |         s3 = *(var_54h);
    0x00020544 lw s2, 0x50(sp)                               |         s2 = *(var_50h);
    0x00020548 lw s1, 0x4c(sp)                               |         s1 = *(var_4ch);
    0x0002054c lw s0, 0x48(sp)                               |         s0 = *(var_48h);
    0x00020550 addiu sp, sp, 0x70                            |         
    0x00020554 jr ra                                         |         return v0;
                                                             |     }
    0x00020558 lw v1, 0x78(sp)                               |     v1 = *(arg_78h);
    0x0002055c lw v0, -0x7fd4(gp)                            |     v0 = *((gp - 8181));
    0x00020560 lw t9, -0x7688(gp)                            |     t9 = sym.imp.g_rec_mutex_lock;
    0x00020564 sw v0, 0x40(sp)                               |     *(var_40h) = v0;
    0x00020568 sw zero, (v1)                                 |     *(v1) = 0;
    0x0002056c addiu a0, v0, -0xf58                          |     a0 = v0 + -0xf58;
    0x00020570 jalr t9                                       |     t9 ();
    0x00020574 lw gp, 0x20(sp)                               |     gp = *(var_20h);
                                                             |     if (s1 == 0) {
    0x00020578 beqz s1, 0x207bc                              |         goto label_5;
                                                             |     }
    0x0002057c lw v0, -0x7fd4(gp)                            |     v0 = *((gp - 8181));
    0x00020580 lw a2, -0x7d2c(gp)                            |     a2 = *(gp);
    0x00020584 lw t9, -0x7528(gp)                            |     t9 = sym.imp.g_list_find_custom;
    0x00020588 lw a0, -0xf4c(v0)                             |     a0 = *((v0 - 979));
    0x0002058c addiu a2, a2, -0x6540                         |     a2 += -0x6540;
    0x00020590 move a1, s1                                   |     a1 = s1;
    0x00020594 jalr t9                                       |     t9 ();
    0x00020598 move s0, v0                                   |     s0 = v0;
    0x0002059c lw gp, 0x20(sp)                               |     gp = *(var_20h);
                                                             |     if (v0 == 0) {
    0x000205a0 beqz v0, 0x209a8                              |         goto label_6;
                                                             |     }
    0x000205a4 lw s3, -0x7fd8(gp)                            |     s3 = *(gp);
    0x000205a8 lw a1, -0x7fd8(gp)                            |     a1 = *(gp);
    0x000205ac lw t9, -0x7cac(gp)                            |     t9 = sym.sql_order_limit;
    0x000205b0 addiu a3, zero, 1                             |     a3 = 1;
    0x000205b4 addiu a2, zero, 2                             |     a2 = 2;
                                                             |     /* str.starttime */
    0x000205b8 addiu a1, a1, 0x7a8                           |     a1 += 0x7a8;
                                                             |     /* esilref: 'recordings' */
    0x000205bc addiu a0, s3, -0x21e8                         |     a0 = s3 + -0x21e8;
    0x000205c0 sw zero, 0x10(sp)                             |     *(var_10h) = 0;
    0x000205c4 bal 0x3a680                                   |     sym_sql_order_limit ();
    0x000205c8 lw gp, 0x20(sp)                               |     gp = *(var_20h);
    0x000205cc sw v0, 0x44(sp)                               |     *(var_44h) = v0;
    0x000205d0 lw a0, -0x7fd8(gp)                            |     a0 = *(gp);
    0x000205d4 lw t9, -0x71b4(gp)                            |     t9 = sym.imp.g_string_new;
    0x000205d8 addiu a0, a0, 0x403c                          |     a0 += 0x403c;
    0x000205dc jalr t9                                       |     t9 ();
    0x000205e0 lw gp, 0x20(sp)                               |     gp = *(var_20h);
    0x000205e4 lw v1, (s0)                                   |     v1 = *(s0);
    0x000205e8 move s1, v0                                   |     s1 = v0;
    0x000205ec lw a3, -0x7fd8(gp)                            |     a3 = *(gp);
    0x000205f0 lw a0, 4(v1)                                  |     a0 = *((v1 + 1));
    0x000205f4 lw v1, -0x7fd8(gp)                            |     v1 = *(gp);
    0x000205f8 lw a2, -0x7fd8(gp)                            |     a2 = *(gp);
    0x000205fc lw a1, -0x7fd8(gp)                            |     a1 = *(gp);
    0x00020600 lw t9, -0x7ce0(gp)                            |     t9 = sym.sql_select_column_from_table;
    0x00020604 addiu v1, v1, 0xf80                           |     v1 += 0xf80;
                                                             |     /* esilref: 'recording_group_id' */
    0x00020608 addiu a3, a3, 0x80c                           |     a3 += 0x80c;
                                                             |     /* esilref: 'recording_id' */
    0x0002060c addiu a2, a2, 0x78c8                          |     a2 += 0x78c8;
                                                             |     /* str.recording_groups */
    0x00020610 addiu a1, a1, 0xa24                           |     a1 += 0xa24;
    0x00020614 sw v1, 0x14(sp)                               |     *(var_14h) = v1;
    0x00020618 sw s2, 0x10(sp)                               |     *(var_10h) = s2;
    0x0002061c sw zero, 0x18(sp)                             |     *(var_18h) = 0;
    0x00020620 bal 0x3d954                                   |     sym_sql_select_column_from_table ();
    0x00020624 lw gp, 0x20(sp)                               |     gp = *(var_20h);
    0x00020628 lw v1, (s0)                                   |     v1 = *(s0);
    0x0002062c move a3, zero                                 |     a3 = 0;
    0x00020630 lw a2, -0x7fd8(gp)                            |     a2 = *(gp);
    0x00020634 lw a0, 4(v1)                                  |     a0 = *((v1 + 1));
    0x00020638 lw t9, -0x7ce0(gp)                            |     t9 = sym.sql_select_column_from_table;
                                                             |     /* str.stoptime__starttime */
    0x0002063c addiu a2, a2, 0xf84                           |     a2 += 0xf84;
                                                             |     /* esilref: 'recordings' */
    0x00020640 addiu a1, s3, -0x21e8                         |     a1 = s3 + -0x21e8;
    0x00020644 sw zero, 0x18(sp)                             |     *(var_18h) = 0;
    0x00020648 sw zero, 0x14(sp)                             |     *(var_14h) = 0;
    0x0002064c sw zero, 0x10(sp)                             |     *(var_10h) = 0;
    0x00020650 move s2, v0                                   |     s2 = v0;
    0x00020654 bal 0x3d954                                   |     sym_sql_select_column_from_table ();
    0x00020658 lw gp, 0x20(sp)                               |     gp = *(var_20h);
    0x0002065c lw a3, (s2)                                   |     a3 = *(s2);
    0x00020660 lw a2, (v0)                                   |     a2 = *(v0);
    0x00020664 lw a1, -0x7fd8(gp)                            |     a1 = *(gp);
    0x00020668 lw t9, -0x772c(gp)                            |     t9 = sym.imp.g_string_append_printf
                                                             |     /* str._s_WHERE_recordings.id_IN___s_ */
    0x0002066c addiu a1, a1, 0xf98                           |     a1 += 0xf98;
    0x00020670 move a0, s1                                   |     a0 = s1;
    0x00020674 move s0, v0                                   |     s0 = v0;
    0x00020678 jalr t9                                       |     t9 ();
    0x0002067c lw gp, 0x20(sp)                               |     gp = *(var_20h);
    0x00020680 addiu a1, zero, 1                             |     a1 = 1;
    0x00020684 lw t9, -0x75a8(gp)                            |     t9 = sym.imp.g_string_free;
    0x00020688 move a0, s2                                   |     a0 = s2;
    0x0002068c jalr t9                                       |     t9 ();
    0x00020690 lw gp, 0x20(sp)                               |     gp = *(var_20h);
    0x00020694 addiu a1, zero, 1                             |     a1 = 1;
    0x00020698 lw t9, -0x75a8(gp)                            |     t9 = sym.imp.g_string_free;
    0x0002069c move a0, s0                                   |     a0 = s0;
    0x000206a0 jalr t9                                       |     t9 ();
    0x000206a4 lw gp, 0x20(sp)                               |     gp = *(var_20h);
                                                             |     do {
                                                             | label_0:
    0x000206a8 lw s0, 0x44(sp)                               |         s0 = *(var_44h);
    0x000206ac lw a1, -0x7fd8(gp)                            |         a1 = *(gp);
    0x000206b0 lw t9, -0x772c(gp)                            |         t9 = sym.imp.g_string_append_printf
    0x000206b4 lw a2, (s0)                                   |         a2 = *(s0);
                                                             |         /* esilref: ' &s;' */
    0x000206b8 addiu a1, a1, 0xfb8                           |         a1 += 0xfb8;
    0x000206bc move a0, s1                                   |         a0 = s1;
    0x000206c0 jalr t9                                       |         t9 ();
    0x000206c4 lw gp, 0x20(sp)                               |         gp = *(var_20h);
    0x000206c8 lw a3, 0x78(sp)                               |         a3 = *(arg_78h);
    0x000206cc lw a1, (s1)                                   |         a1 = *(s1);
    0x000206d0 lw a2, -0x7d2c(gp)                            |         a2 = *(gp);
    0x000206d4 lw t9, -0x7d2c(gp)                            |         t9 = *(gp);
    0x000206d8 addiu a2, a2, -0x51c4                         |         a2 += -0x51c4;
                                                             |         /* fcn.00019f9c */
    0x000206dc addiu t9, t9, -0x6064                         |         t9 += -0x6064;
    0x000206e0 move a0, zero                                 |         a0 = 0;
    0x000206e4 bal 0x19f9c                                   |         fcn_00019f9c ();
    0x000206e8 lw gp, 0x20(sp)                               |         gp = *(var_20h);
    0x000206ec move a0, s0                                   |         a0 = s0;
    0x000206f0 addiu a1, zero, 1                             |         a1 = 1;
    0x000206f4 lw t9, -0x75a8(gp)                            |         t9 = sym.imp.g_string_free;
    0x000206f8 move s2, v0                                   |         s2 = v0;
    0x000206fc jalr t9                                       |         t9 ();
    0x00020700 lw gp, 0x20(sp)                               |         gp = *(var_20h);
    0x00020704 addiu a1, zero, 1                             |         a1 = 1;
    0x00020708 move a0, s1                                   |         a0 = s1;
    0x0002070c lw t9, -0x75a8(gp)                            |         t9 = sym.imp.g_string_free;
    0x00020710 sltiu s0, s2, 1                               |         s0 = (s2 < 1) ? 1 : 0;
    0x00020714 jalr t9                                       |         t9 ();
    0x00020718 lw gp, 0x20(sp)                               |         gp = *(var_20h);
                                                             |         if (s2 != 0) {
    0x0002071c bnez s2, 0x20928                              |             goto label_7;
                                                             |         }
                                                             | label_2:
    0x00020720 lw v0, 0x40(sp)                               |         v0 = *(var_40h);
    0x00020724 lw t9, -0x76cc(gp)                            |         t9 = sym.imp.g_rec_mutex_unlock;
    0x00020728 addiu a0, v0, -0xf58                          |         a0 = v0 + -0xf58;
    0x0002072c jalr t9                                       |         t9 ();
    0x00020730 lw ra, 0x6c(sp)                               |         ra = *(var_6ch);
    0x00020734 move v0, s0                                   |         v0 = s0;
    0x00020738 lw fp, 0x68(sp)                               |         fp = *(var_68h);
    0x0002073c lw s7, 0x64(sp)                               |         s7 = *(var_64h);
    0x00020740 lw s6, 0x60(sp)                               |         s6 = *(var_60h);
    0x00020744 lw s5, 0x5c(sp)                               |         s5 = *(var_5ch);
    0x00020748 lw s4, 0x58(sp)                               |         s4 = *(var_58h);
    0x0002074c lw s3, 0x54(sp)                               |         s3 = *(var_54h);
    0x00020750 lw s2, 0x50(sp)                               |         s2 = *(var_50h);
    0x00020754 lw s1, 0x4c(sp)                               |         s1 = *(var_4ch);
    0x00020758 lw s0, 0x48(sp)                               |         s0 = *(var_48h);
    0x0002075c addiu sp, sp, 0x70                            |         
    0x00020760 jr ra                                         |         return v0;
                                                             | label_3:
    0x00020764 lw v0, -0x7fd8(gp)                            |         v0 = *(gp);
    0x00020768 lw a3, -0x7fd8(gp)                            |         a3 = *(gp);
    0x0002076c lw a1, -0x7fd8(gp)                            |         a1 = *(gp);
                                                             |         /* str.main_database */
    0x00020770 addiu v0, v0, 0x894                           |         v0 += 0x894;
    0x00020774 lw t9, -0x76c0(gp)                            |         t9 = sym.imp.g_assertion_message_expr;
    0x00020778 sw v0, 0x10(sp)                               |         *(var_10h) = v0;
                                                             |         /* str.database_get_recording_group_stoptime */
    0x0002077c addiu a3, a3, 0x2cf0                          |         a3 += 0x2cf0;
    0x00020780 addiu a2, zero, 0xd49                         |         a2 = 0xd49;
                                                             |         /* str.database_sql_interface.c */
    0x00020784 addiu a1, a1, 0x820                           |         a1 += 0x820;
    0x00020788 move a0, zero                                 |         a0 = 0;
    0x0002078c jalr t9                                       |         t9 ();
                                                             | label_4:
    0x00020790 lw v0, -0x7fd8(gp)                            |         v0 = *(gp);
    0x00020794 lw a3, -0x7fd8(gp)                            |         a3 = *(gp);
    0x00020798 lw a1, -0x7fd8(gp)                            |         a1 = *(gp);
                                                             |         /* str.stoptime */
    0x0002079c addiu v0, v0, 0x7b4                           |         v0 += 0x7b4;
    0x000207a0 lw t9, -0x76c0(gp)                            |         t9 = sym.imp.g_assertion_message_expr;
    0x000207a4 sw v0, 0x10(sp)                               |         *(var_10h) = v0;
                                                             |         /* str.database_get_recording_group_stoptime */
    0x000207a8 addiu a3, a3, 0x2cf0                          |         a3 += 0x2cf0;
    0x000207ac addiu a2, zero, 0xd4a                         |         a2 = 0xd4a;
                                                             |         /* str.database_sql_interface.c */
    0x000207b0 addiu a1, a1, 0x820                           |         a1 += 0x820;
    0x000207b4 move a0, zero                                 |         a0 = 0;
    0x000207b8 jalr t9                                       |         t9 ();
                                                             | label_5:
    0x000207bc lw v0, -0x7fd4(gp)                            |         v0 = *((gp - 8181));
    0x000207c0 lw t9, -0x72c0(gp)                            |         t9 = sym.imp.g_list_first;
    0x000207c4 lw s5, -0x7fd8(gp)                            |         s5 = *(gp);
    0x000207c8 lw a0, -0xf4c(v0)                             |         a0 = *((v0 - 979));
    0x000207cc jalr t9                                       |         t9 ();
    0x000207d0 lw gp, 0x20(sp)                               |         gp = *(var_20h);
    0x000207d4 addiu a3, zero, 1                             |         a3 = 1;
    0x000207d8 addiu a2, zero, 2                             |         a2 = 2;
    0x000207dc lw a1, -0x7fd8(gp)                            |         a1 = *(gp);
    0x000207e0 lw t9, -0x7cac(gp)                            |         t9 = sym.sql_order_limit;
                                                             |         /* str.starttime */
    0x000207e4 addiu a1, a1, 0x7a8                           |         a1 += 0x7a8;
                                                             |         /* esilref: 'recordings' */
    0x000207e8 addiu a0, s5, -0x21e8                         |         a0 = s5 + -0x21e8;
    0x000207ec sw zero, 0x10(sp)                             |         *(var_10h) = 0;
    0x000207f0 move s6, v0                                   |         s6 = v0;
    0x000207f4 bal 0x3a680                                   |         sym_sql_order_limit ();
    0x000207f8 lw gp, 0x20(sp)                               |         gp = *(var_20h);
    0x000207fc sw v0, 0x44(sp)                               |         *(var_44h) = v0;
    0x00020800 lw a0, -0x7fd8(gp)                            |         a0 = *(gp);
    0x00020804 lw t9, -0x71b4(gp)                            |         t9 = sym.imp.g_string_new;
    0x00020808 addiu a0, a0, 0x403c                          |         a0 += 0x403c;
    0x0002080c jalr t9                                       |         t9 ();
    0x00020810 move s1, v0                                   |         s1 = v0;
    0x00020814 lw gp, 0x20(sp)                               |         gp = *(var_20h);
    0x00020818 beqz s6, 0x206a8                              |         
                                                             |     } while (s6 == 0);
    0x0002081c lw v0, -0x7fd8(gp)                            |     v0 = *(gp);
    0x00020820 lw s4, -0x7fd8(gp)                            |     s4 = *(gp);
    0x00020824 sw v0, 0x2c(sp)                               |     *(var_2ch) = v0;
    0x00020828 lw v0, -0x7fd8(gp)                            |     v0 = *(gp);
    0x0002082c lw s3, -0x7fd8(gp)                            |     s3 = *(gp);
    0x00020830 sw v0, 0x30(sp)                               |     *(var_30h) = v0;
    0x00020834 lw v0, -0x7fd8(gp)                            |     v0 = *(gp);
    0x00020838 addiu s4, s4, 0xf80                           |     s4 += 0xf80;
                                                             |     /* esilref: 'recording_id' */
    0x0002083c addiu v0, v0, 0x78c8                          |     v0 += 0x78c8;
    0x00020840 sw v0, 0x34(sp)                               |     *(var_34h) = v0;
    0x00020844 lw v0, -0x7fd8(gp)                            |     v0 = *(gp);
                                                             |     /* esilref: 'recording_group_id' */
    0x00020848 addiu s3, s3, 0x80c                           |     s3 += 0x80c;
                                                             |     /* str.recording_groups */
    0x0002084c addiu fp, v0, 0xa24                           |     fp = v0 + 0xa24;
    0x00020850 lw v0, -0x7fd8(gp)                            |     v0 = *(gp);
                                                             |     /* str._UNION_ */
    0x00020854 addiu v0, v0, 0xca0                           |     v0 += 0xca0;
    0x00020858 sw v0, 0x38(sp)                               |     *(var_38h) = v0;
                                                             | label_1:
    0x0002085c lw v0, (s6)                                   |     v0 = *(s6);
    0x00020860 lw t9, -0x7ce0(gp)                            |     t9 = sym.sql_select_column_from_table;
    0x00020864 lw a2, 0x34(sp)                               |     a2 = *(var_34h);
    0x00020868 lw a0, 4(v0)                                  |     a0 = *((v0 + 1));
    0x0002086c move a3, s3                                   |     a3 = s3;
    0x00020870 move a1, fp                                   |     a1 = fp;
    0x00020874 sw zero, 0x18(sp)                             |     *(var_18h) = 0;
    0x00020878 sw s4, 0x14(sp)                               |     *(var_14h) = s4;
    0x0002087c sw s2, 0x10(sp)                               |     *(var_10h) = s2;
    0x00020880 bal 0x3d954                                   |     sym_sql_select_column_from_table ();
    0x00020884 lw a0, (s6)                                   |     a0 = *(s6);
    0x00020888 lw gp, 0x20(sp)                               |     gp = *(var_20h);
    0x0002088c lw v1, 0x2c(sp)                               |     v1 = *(var_2ch);
    0x00020890 lw a0, 4(a0)                                  |     a0 = *((a0 + 1));
    0x00020894 lw t9, -0x7ce0(gp)                            |     t9 = sym.sql_select_column_from_table;
    0x00020898 addiu a2, v1, 0xf84                           |     a2 = v1 + 0xf84;
    0x0002089c move a3, zero                                 |     a3 = 0;
                                                             |     /* esilref: 'recordings' */
    0x000208a0 addiu a1, s5, -0x21e8                         |     a1 = s5 + -0x21e8;
    0x000208a4 sw zero, 0x18(sp)                             |     *(var_18h) = 0;
    0x000208a8 sw zero, 0x14(sp)                             |     *(var_14h) = 0;
    0x000208ac sw zero, 0x10(sp)                             |     *(var_10h) = 0;
    0x000208b0 move s0, v0                                   |     s0 = v0;
    0x000208b4 bal 0x3d954                                   |     sym_sql_select_column_from_table ();
    0x000208b8 lw gp, 0x20(sp)                               |     gp = *(var_20h);
    0x000208bc lw a2, (v0)                                   |     a2 = *(v0);
    0x000208c0 move s7, v0                                   |     s7 = v0;
    0x000208c4 lw v0, 0x30(sp)                               |     v0 = *(var_30h);
    0x000208c8 lw a3, (s0)                                   |     a3 = *(s0);
    0x000208cc lw t9, -0x772c(gp)                            |     t9 = sym.imp.g_string_append_printf
    0x000208d0 addiu a1, v0, 0xf98                           |     a1 = v0 + 0xf98;
    0x000208d4 move a0, s1                                   |     a0 = s1;
    0x000208d8 jalr t9                                       |     t9 ();
    0x000208dc lw gp, 0x20(sp)                               |     gp = *(var_20h);
    0x000208e0 addiu a1, zero, 1                             |     a1 = 1;
    0x000208e4 lw t9, -0x75a8(gp)                            |     t9 = sym.imp.g_string_free;
    0x000208e8 move a0, s0                                   |     a0 = s0;
    0x000208ec jalr t9                                       |     t9 ();
    0x000208f0 lw gp, 0x20(sp)                               |     gp = *(var_20h);
    0x000208f4 addiu a1, zero, 1                             |     a1 = 1;
    0x000208f8 lw t9, -0x75a8(gp)                            |     t9 = sym.imp.g_string_free;
    0x000208fc move a0, s7                                   |     a0 = s7;
    0x00020900 jalr t9                                       |     t9 ();
    0x00020904 lw s6, 4(s6)                                  |     s6 = *((s6 + 1));
    0x00020908 lw gp, 0x20(sp)                               |     gp = *(var_20h);
                                                             |     if (s6 == 0) {
    0x0002090c beqz s6, 0x206a8                              |         goto label_0;
                                                             |     }
    0x00020910 lw t9, -0x772c(gp)                            |     t9 = sym.imp.g_string_append_printf
    0x00020914 lw a1, 0x38(sp)                               |     a1 = *(var_38h);
    0x00020918 move a0, s1                                   |     a0 = s1;
    0x0002091c jalr t9                                       |     t9 ();
    0x00020920 lw gp, 0x20(sp)                               |     gp = *(var_20h);
    0x00020924 b 0x2085c                                     |     goto label_1;
                                                             | label_7:
    0x00020928 lw s2, 0x3c(sp)                               |     s2 = *(var_3ch);
    0x0002092c lw t9, -0x7268(gp)                            |     t9 = sym.imp.sqlite3_errcode;
    0x00020930 lw a0, -0xf48(s2)                             |     a0 = *((s2 - 978));
    0x00020934 jalr t9                                       |     t9 ();
    0x00020938 lw gp, 0x20(sp)                               |     gp = *(var_20h);
    0x0002093c lw a0, -0xf48(s2)                             |     a0 = *((s2 - 978));
    0x00020940 lw t9, -0x7268(gp)                            |     t9 = sym.imp.sqlite3_errcode;
    0x00020944 move s1, v0                                   |     s1 = v0;
    0x00020948 jalr t9                                       |     t9 ();
    0x0002094c lw gp, 0x20(sp)                               |     gp = *(var_20h);
    0x00020950 lw a0, -0xf48(s2)                             |     a0 = *((s2 - 978));
    0x00020954 lw t9, -0x73f8(gp)                            |     t9 = sym.imp.sqlite3_errmsg;
    0x00020958 move s2, v0                                   |     s2 = v0;
    0x0002095c jalr t9                                       |     t9 ();
    0x00020960 lw gp, 0x20(sp)                               |     gp = *(var_20h);
    0x00020964 sw v0, 0x1c(sp)                               |     *(var_1ch) = v0;
    0x00020968 lw a0, 0x7c(sp)                               |     a0 = *(arg_7ch);
    0x0002096c lw v0, -0x7fd8(gp)                            |     v0 = *(gp);
    0x00020970 lw a1, -0x7fd8(gp)                            |     a1 = *(gp);
                                                             |     /* str.SQLite_error:___d___s */
    0x00020974 addiu v0, v0, 0x908                           |     v0 += 0x908;
    0x00020978 sw v0, 0x14(sp)                               |     *(var_14h) = v0;
    0x0002097c lw v0, -0x7fd8(gp)                            |     v0 = *(gp);
    0x00020980 lw t9, -0x7df8(gp)                            |     t9 = sym.set_error;
                                                             |     /* str.DatabaseError */
    0x00020984 addiu v0, v0, -0x2648                         |     v0 += -0x2648;
    0x00020988 sw s2, 0x18(sp)                               |     *(var_18h) = s2;
    0x0002098c sw v0, 0x10(sp)                               |     *(var_10h) = v0;
    0x00020990 move a3, s1                                   |     a3 = s1;
    0x00020994 addiu a2, zero, 0xd88                         |     a2 = 0xd88;
                                                             |     /* esilref: 'database_get_recording_group_stoptime' */
    0x00020998 addiu a1, a1, 0x2cc8                          |     a1 += 0x2cc8;
    0x0002099c jalr t9                                       |     t9 ();
    0x000209a0 lw gp, 0x20(sp)                               |     gp = *(var_20h);
    0x000209a4 b 0x20720                                     |     goto label_2;
                                                             | label_6:
    0x000209a8 lw v0, -0x7fd8(gp)                            |     v0 = *(gp);
    0x000209ac lw a1, -0x7fd8(gp)                            |     a1 = *(gp);
                                                             |     /* str.Database__s_does_not_exist */
    0x000209b0 addiu v0, v0, 0xb4c                           |     v0 += 0xb4c;
    0x000209b4 sw v0, 0x14(sp)                               |     *(var_14h) = v0;
    0x000209b8 lw v0, -0x7fd8(gp)                            |     v0 = *(gp);
    0x000209bc lw t9, -0x7df8(gp)                            |     t9 = sym.set_error;
                                                             |     /* str.DatabaseError */
    0x000209c0 addiu v0, v0, -0x2648                         |     v0 += -0x2648;
    0x000209c4 lw a0, 0x7c(sp)                               |     a0 = *(arg_7ch);
    0x000209c8 sw s1, 0x18(sp)                               |     *(var_18h) = s1;
    0x000209cc sw v0, 0x10(sp)                               |     *(var_10h) = v0;
    0x000209d0 move a3, zero                                 |     a3 = 0;
    0x000209d4 addiu a2, zero, 0xd56                         |     a2 = 0xd56;
                                                             |     /* esilref: 'database_get_recording_group_stoptime' */
    0x000209d8 addiu a1, a1, 0x2cc8                          |     a1 += 0x2cc8;
    0x000209dc jalr t9                                       |     t9 ();
    0x000209e0 lw gp, 0x20(sp)                               |     gp = *(var_20h);
    0x000209e4 b 0x20720                                     |     goto label_2;
                                                             | }
    ; assembly                                                       | /* r2dec pseudo code output */
                                                                     | /* /logs/firmware/unblob_extracted/firmware_extract/4325012-58052244.squashfs_v4_le_extract/usr/bin/indexer @ 0x21c14 */
                                                                     | #include <stdint.h>
                                                                     |  
    ; (fcn) sym.database_get_recording_recording_block_info ()       | void database_get_recording_recording_block_info () {
    0x00021c14 lui gp, 6                                             |     
    0x00021c18 addiu gp, gp, 0x44ec                                  |     
    0x00021c1c addu gp, gp, t9                                       |     gp += t9;
    0x00021c20 addiu sp, sp, -0x68                                   |     
    0x00021c24 sw s4, 0x50(sp)                                       |     *(var_50h) = s4;
    0x00021c28 lw s4, -0x7fd4(gp)                                    |     s4 = *((gp - 8181));
    0x00021c2c sw gp, 0x20(sp)                                       |     *(var_20h) = gp;
    0x00021c30 sw ra, 0x64(sp)                                       |     *(var_64h) = ra;
    0x00021c34 lw v0, -0xf48(s4)                                     |     v0 = *((s4 - 978));
    0x00021c38 sw fp, 0x60(sp)                                       |     *(var_60h) = fp;
    0x00021c3c sw s7, 0x5c(sp)                                       |     *(var_5ch) = s7;
    0x00021c40 sw s6, 0x58(sp)                                       |     *(var_58h) = s6;
    0x00021c44 sw s5, 0x54(sp)                                       |     *(var_54h) = s5;
    0x00021c48 sw s3, 0x4c(sp)                                       |     *(var_4ch) = s3;
    0x00021c4c sw s2, 0x48(sp)                                       |     *(var_48h) = s2;
    0x00021c50 sw s1, 0x44(sp)                                       |     *(var_44h) = s1;
    0x00021c54 sw s0, 0x40(sp)                                       |     *(var_40h) = s0;
    0x00021c58 lw v0, 0x7c(sp)                                       |     v0 = *(arg_7ch);
                                                                     |     if (v0 == 0) {
    0x00021c5c beqz v0, 0x21e78                                      |         goto label_4;
                                                                     |     }
    0x00021c60 lw v0, -0x7fd8(gp)                                    |     v0 = *(gp);
                                                                     |     if (v0 == 0) {
    0x00021c64 beqz v0, 0x21ea4                                      |         goto label_5;
                                                                     |     }
    0x00021c68 move s2, a2                                           |     s2 = a2;
                                                                     |     if (a2 == 0) {
    0x00021c6c beqz a2, 0x21ecc                                      |         goto label_6;
                                                                     |     }
    0x00021c70 lw v0, 0x7c(sp)                                       |     v0 = *(arg_7ch);
    0x00021c74 lw t9, -0x7d24(gp)                                    |     t9 = sym.sql_valid_storage_name;
    0x00021c78 move s3, a1                                           |     s3 = a1;
    0x00021c7c lw a1, 0x80(sp)                                       |     a1 = *(arg_80h);
    0x00021c80 sw zero, (v0)                                         |     *(v0) = 0;
    0x00021c84 move s0, a0                                           |     s0 = a0;
    0x00021c88 sw zero, (a2)                                         |     *(a2) = 0;
    0x00021c8c move a0, s3                                           |     a0 = s3;
    0x00021c90 move s6, a3                                           |     s6 = a3;
    0x00021c94 bal 0x3a5d4                                           |     sym_sql_valid_storage_name ();
    0x00021c98 move s7, v0                                           |     s7 = v0;
    0x00021c9c lw gp, 0x20(sp)                                       |     gp = *(var_20h);
                                                                     |     if (v0 == 0) {
    0x00021ca0 bnez v0, 0x21cd8                                      |         
    0x00021ca4 lw ra, 0x64(sp)                                       |         ra = *(var_64h);
    0x00021ca8 move v0, s7                                           |         v0 = s7;
    0x00021cac lw fp, 0x60(sp)                                       |         fp = *(var_60h);
    0x00021cb0 lw s7, 0x5c(sp)                                       |         s7 = *(var_5ch);
    0x00021cb4 lw s6, 0x58(sp)                                       |         s6 = *(var_58h);
    0x00021cb8 lw s5, 0x54(sp)                                       |         s5 = *(var_54h);
    0x00021cbc lw s4, 0x50(sp)                                       |         s4 = *(var_50h);
    0x00021cc0 lw s3, 0x4c(sp)                                       |         s3 = *(var_4ch);
    0x00021cc4 lw s2, 0x48(sp)                                       |         s2 = *(var_48h);
    0x00021cc8 lw s1, 0x44(sp)                                       |         s1 = *(var_44h);
    0x00021ccc lw s0, 0x40(sp)                                       |         s0 = *(var_40h);
    0x00021cd0 addiu sp, sp, 0x68                                    |         
    0x00021cd4 jr ra                                                 |         return v0;
                                                                     |     }
    0x00021cd8 lw fp, -0x7fd4(gp)                                    |     fp = *((gp - 8181));
    0x00021cdc lw t9, -0x7688(gp)                                    |     t9 = sym.imp.g_rec_mutex_lock;
    0x00021ce0 addiu a0, fp, -0xf58                                  |     a0 = fp + -0xf58;
    0x00021ce4 jalr t9                                               |     t9 ();
    0x00021ce8 lw gp, 0x20(sp)                                       |     gp = *(var_20h);
    0x00021cec lw a0, -0x7fd8(gp)                                    |     a0 = *(gp);
    0x00021cf0 lw t9, -0x71b4(gp)                                    |     t9 = sym.imp.g_string_new;
                                                                     |     /* str.SELECT_ */
    0x00021cf4 addiu a0, a0, 0xfd0                                   |     a0 += aav.0x00000fd0;
    0x00021cf8 jalr t9                                               |     t9 ();
    0x00021cfc move s5, v0                                           |     s5 = v0;
    0x00021d00 lw gp, 0x20(sp)                                       |     gp = *(var_20h);
                                                                     |     if (s3 == 0) {
    0x00021d04 beqz s3, 0x21fe4                                      |         goto label_7;
                                                                     |     }
    0x00021d08 lw v0, -0x7fd4(gp)                                    |     v0 = *((gp - 8181));
    0x00021d0c lw a2, -0x7d2c(gp)                                    |     a2 = *(gp);
    0x00021d10 lw t9, -0x7528(gp)                                    |     t9 = sym.imp.g_list_find_custom;
    0x00021d14 lw a0, -0xf4c(v0)                                     |     a0 = *((v0 - 979));
    0x00021d18 addiu a2, a2, -0x6540                                 |     a2 += -0x6540;
    0x00021d1c move a1, s3                                           |     a1 = s3;
    0x00021d20 jalr t9                                               |     t9 ();
    0x00021d24 lw gp, 0x20(sp)                                       |     gp = *(var_20h);
                                                                     |     if (v0 == 0) {
    0x00021d28 beqz v0, 0x21f94                                      |         goto label_8;
                                                                     |     }
    0x00021d2c lw a3, -0x7fd8(gp)                                    |     a3 = *(gp);
    0x00021d30 lw a2, -0x7fd8(gp)                                    |     a2 = *(gp);
    0x00021d34 lw t9, -0x7c68(gp)                                    |     t9 = sym.sql_block_min_max_start_stop_time;
    0x00021d38 move a1, s0                                           |     a1 = s0;
    0x00021d3c move a0, s3                                           |     a0 = s3;
                                                                     |     /* esilref: 'MIN' */
    0x00021d40 addiu a3, a3, 0x1010                                  |     a3 += aav.0x00001010;
                                                                     |     /* str.starttime */
    0x00021d44 addiu a2, a2, 0x7a8                                   |     a2 += 0x7a8;
    0x00021d48 bal 0x3f6f4                                           |     sym_sql_block_min_max_start_stop_time ();
    0x00021d4c lw gp, 0x20(sp)                                       |     gp = *(var_20h);
    0x00021d50 lw a3, 0x78(sp)                                       |     a3 = *(arg_78h);
    0x00021d54 move a1, s0                                           |     a1 = s0;
    0x00021d58 lw t9, -0x7c64(gp)                                    |     t9 = sym.sql_count_blocks;
    0x00021d5c move a0, s3                                           |     a0 = s3;
    0x00021d60 move a2, s6                                           |     a2 = s6;
    0x00021d64 sw zero, 0x10(sp)                                     |     *(var_10h) = 0;
    0x00021d68 move s3, v0                                           |     s3 = v0;
    0x00021d6c bal 0x3e500                                           |     sym_sql_count_blocks ();
    0x00021d70 lw gp, 0x20(sp)                                       |     gp = *(var_20h);
    0x00021d74 lw a2, (v0)                                           |     a2 = *(v0);
    0x00021d78 move a0, s5                                           |     a0 = s5;
    0x00021d7c lw a1, -0x7fd8(gp)                                    |     a1 = *(gp);
    0x00021d80 lw t9, -0x772c(gp)                                    |     t9 = sym.imp.g_string_append_printf
                                                                     |     /* str.___s___ */
    0x00021d84 addiu a1, a1, 0x1014                                  |     a1 += 0x1014;
    0x00021d88 move s0, v0                                           |     s0 = v0;
    0x00021d8c jalr t9                                               |     t9 ();
    0x00021d90 lw gp, 0x20(sp)                                       |     gp = *(var_20h);
    0x00021d94 addiu a1, zero, 1                                     |     a1 = 1;
    0x00021d98 lw t9, -0x75a8(gp)                                    |     t9 = sym.imp.g_string_free;
    0x00021d9c move a0, s0                                           |     a0 = s0;
    0x00021da0 jalr t9                                               |     t9 ();
    0x00021da4 lw gp, 0x20(sp)                                       |     gp = *(var_20h);
                                                                     | label_2:
    0x00021da8 lw a1, -0x7fd8(gp)                                    |     a1 = *(gp);
    0x00021dac lw t9, -0x772c(gp)                                    |     t9 = sym.imp.g_string_append_printf
                                                                     |     /* str.__0__ */
    0x00021db0 addiu a1, a1, 0xfe4                                   |     a1 += 0xfe4;
    0x00021db4 move a0, s5                                           |     a0 = s5;
    0x00021db8 jalr t9                                               |     t9 ();
    0x00021dbc lw gp, 0x20(sp)                                       |     gp = *(var_20h);
    0x00021dc0 lw a1, (s5)                                           |     a1 = *(s5);
    0x00021dc4 move a3, s2                                           |     a3 = s2;
    0x00021dc8 lw s0, -0x7d2c(gp)                                    |     s0 = *(gp);
    0x00021dcc lw a2, -0x7d2c(gp)                                    |     a2 = *(gp);
                                                                     |     /* fcn.00019f9c */
    0x00021dd0 addiu s0, s0, -0x6064                                 |     s0 += -0x6064;
    0x00021dd4 addiu a2, a2, -0x3e10                                 |     a2 += -0x3e10;
    0x00021dd8 move t9, s0                                           |     t9 = s0;
    0x00021ddc move a0, zero                                         |     a0 = 0;
    0x00021de0 bal 0x19f9c                                           |     fcn_00019f9c ();
    0x00021de4 lw gp, 0x20(sp)                                       |     gp = *(var_20h);
                                                                     |     if (v0 != 0) {
    0x00021de8 bnez v0, 0x22108                                      |         goto label_9;
                                                                     |     }
    0x00021dec lw a2, -0x7d2c(gp)                                    |     a2 = *(gp);
    0x00021df0 lw a3, 0x7c(sp)                                       |     a3 = *(arg_7ch);
    0x00021df4 addiu a2, a2, -0x51c4                                 |     a2 += -0x51c4;
    0x00021df8 move a1, s3                                           |     a1 = s3;
    0x00021dfc move t9, s0                                           |     t9 = s0;
    0x00021e00 move a0, zero                                         |     a0 = 0;
    0x00021e04 bal 0x19f9c                                           |     fcn_00019f9c ();
    0x00021e08 lw gp, 0x20(sp)                                       |     gp = *(var_20h);
                                                                     |     if (v0 != 0) {
    0x00021e0c bnez v0, 0x21ef8                                      |         goto label_10;
                                                                     |     }
    0x00021e10 addiu s7, zero, 1                                     |     s7 = 1;
                                                                     |     do {
                                                                     | label_3:
    0x00021e14 lw t9, -0x75a8(gp)                                    |         t9 = sym.imp.g_string_free;
                                                                     | label_1:
    0x00021e18 addiu a1, zero, 1                                     |         a1 = 1;
    0x00021e1c move a0, s5                                           |         a0 = s5;
    0x00021e20 jalr t9                                               |         t9 ();
    0x00021e24 lw gp, 0x20(sp)                                       |         gp = *(var_20h);
                                                                     | label_0:
    0x00021e28 lw t9, -0x74c8(gp)                                    |         t9 = *((gp - 7474));
    0x00021e2c move a0, s3                                           |         a0 = s3;
    0x00021e30 jalr t9                                               |         t9 ();
    0x00021e34 lw gp, 0x20(sp)                                       |         gp = *(var_20h);
    0x00021e38 lw t9, -0x76cc(gp)                                    |         t9 = sym.imp.g_rec_mutex_unlock;
    0x00021e3c addiu a0, fp, -0xf58                                  |         a0 = fp + -0xf58;
    0x00021e40 jalr t9                                               |         t9 ();
    0x00021e44 lw ra, 0x64(sp)                                       |         ra = *(var_64h);
    0x00021e48 move v0, s7                                           |         v0 = s7;
    0x00021e4c lw fp, 0x60(sp)                                       |         fp = *(var_60h);
    0x00021e50 lw s7, 0x5c(sp)                                       |         s7 = *(var_5ch);
    0x00021e54 lw s6, 0x58(sp)                                       |         s6 = *(var_58h);
    0x00021e58 lw s5, 0x54(sp)                                       |         s5 = *(var_54h);
    0x00021e5c lw s4, 0x50(sp)                                       |         s4 = *(var_50h);
    0x00021e60 lw s3, 0x4c(sp)                                       |         s3 = *(var_4ch);
    0x00021e64 lw s2, 0x48(sp)                                       |         s2 = *(var_48h);
    0x00021e68 lw s1, 0x44(sp)                                       |         s1 = *(var_44h);
    0x00021e6c lw s0, 0x40(sp)                                       |         s0 = *(var_40h);
    0x00021e70 addiu sp, sp, 0x68                                    |         
    0x00021e74 jr ra                                                 |         return v0;
                                                                     | label_4:
    0x00021e78 lw v0, -0x7fd8(gp)                                    |         v0 = *(gp);
    0x00021e7c lw a3, -0x7fd8(gp)                                    |         a3 = *(gp);
    0x00021e80 lw a1, -0x7fd8(gp)                                    |         a1 = *(gp);
                                                                     |         /* str.main_database */
    0x00021e84 addiu v0, v0, 0x894                                   |         v0 += 0x894;
    0x00021e88 lw t9, -0x76c0(gp)                                    |         t9 = sym.imp.g_assertion_message_expr;
    0x00021e8c sw v0, 0x10(sp)                                       |         *(var_10h) = v0;
                                                                     |         /* str.database_get_recording_recording_block_info */
    0x00021e90 addiu a3, a3, 0x2a70                                  |         a3 += 0x2a70;
    0x00021e94 addiu a2, zero, 0xeb8                                 |         a2 = 0xeb8;
                                                                     |         /* str.database_sql_interface.c */
    0x00021e98 addiu a1, a1, 0x820                                   |         a1 += 0x820;
    0x00021e9c move a0, zero                                         |         a0 = 0;
    0x00021ea0 jalr t9                                               |         t9 ();
                                                                     | label_5:
    0x00021ea4 lw a3, -0x7fd8(gp)                                    |         a3 = *(gp);
    0x00021ea8 lw a1, -0x7fd8(gp)                                    |         a1 = *(gp);
    0x00021eac addiu v0, v0, 0xfec                                   |         v0 += 0xfec;
    0x00021eb0 lw t9, -0x76c0(gp)                                    |         t9 = sym.imp.g_assertion_message_expr;
    0x00021eb4 sw v0, 0x10(sp)                                       |         *(var_10h) = v0;
                                                                     |         /* str.database_get_recording_recording_block_info */
    0x00021eb8 addiu a3, a3, 0x2a70                                  |         a3 += 0x2a70;
    0x00021ebc addiu a2, zero, 0xeb9                                 |         a2 = 0xeb9;
                                                                     |         /* str.database_sql_interface.c */
    0x00021ec0 addiu a1, a1, 0x820                                   |         a1 += 0x820;
    0x00021ec4 move a0, zero                                         |         a0 = 0;
    0x00021ec8 jalr t9                                               |         t9 ();
                                                                     | label_6:
    0x00021ecc lw v0, -0x7fd8(gp)                                    |         v0 = *(gp);
    0x00021ed0 lw a3, -0x7fd8(gp)                                    |         a3 = *(gp);
    0x00021ed4 lw a1, -0x7fd8(gp)                                    |         a1 = *(gp);
                                                                     |         /* str.number_of_blocks */
    0x00021ed8 addiu v0, v0, 0xffc                                   |         v0 += 0xffc;
    0x00021edc lw t9, -0x76c0(gp)                                    |         t9 = sym.imp.g_assertion_message_expr;
    0x00021ee0 sw v0, 0x10(sp)                                       |         *(var_10h) = v0;
                                                                     |         /* str.database_get_recording_recording_block_info */
    0x00021ee4 addiu a3, a3, 0x2a70                                  |         a3 += 0x2a70;
    0x00021ee8 addiu a2, zero, 0xeba                                 |         a2 = 0xeba;
                                                                     |         /* str.database_sql_interface.c */
    0x00021eec addiu a1, a1, 0x820                                   |         a1 += 0x820;
    0x00021ef0 move a0, zero                                         |         a0 = 0;
    0x00021ef4 jalr t9                                               |         t9 ();
                                                                     | label_10:
    0x00021ef8 lw t9, -0x7268(gp)                                    |         t9 = sym.imp.sqlite3_errcode;
    0x00021efc lw a0, -0xf48(s4)                                     |         a0 = *((s4 - 978));
    0x00021f00 addiu s7, zero, 1                                     |         s7 = 1;
    0x00021f04 jalr t9                                               |         t9 ();
    0x00021f08 lw gp, 0x20(sp)                                       |         gp = *(var_20h);
    0x00021f0c lw a0, -0xf48(s4)                                     |         a0 = *((s4 - 978));
    0x00021f10 lw t9, -0x7268(gp)                                    |         t9 = sym.imp.sqlite3_errcode;
    0x00021f14 move s2, v0                                           |         s2 = v0;
    0x00021f18 jalr t9                                               |         t9 ();
    0x00021f1c lw gp, 0x20(sp)                                       |         gp = *(var_20h);
    0x00021f20 lw a0, -0xf48(s4)                                     |         a0 = *((s4 - 978));
    0x00021f24 lw t9, -0x73f8(gp)                                    |         t9 = sym.imp.sqlite3_errmsg;
    0x00021f28 move s0, v0                                           |         s0 = v0;
    0x00021f2c jalr t9                                               |         t9 ();
    0x00021f30 lw gp, 0x20(sp)                                       |         gp = *(var_20h);
    0x00021f34 sw v0, 0x1c(sp)                                       |         *(var_1ch) = v0;
    0x00021f38 lw a0, 0x80(sp)                                       |         a0 = *(arg_80h);
    0x00021f3c lw v0, -0x7fd8(gp)                                    |         v0 = *(gp);
    0x00021f40 lw a1, -0x7fd8(gp)                                    |         a1 = *(gp);
                                                                     |         /* str.SQLite_error:___d___s */
    0x00021f44 addiu v0, v0, 0x908                                   |         v0 += 0x908;
    0x00021f48 sw v0, 0x14(sp)                                       |         *(var_14h) = v0;
    0x00021f4c lw v0, -0x7fd8(gp)                                    |         v0 = *(gp);
    0x00021f50 lw t9, -0x7df8(gp)                                    |         t9 = sym.set_error;
                                                                     |         /* str.DatabaseError */
    0x00021f54 addiu v0, v0, -0x2648                                 |         v0 += -0x2648;
    0x00021f58 move a3, s2                                           |         a3 = s2;
    0x00021f5c addiu a2, zero, 0xef4                                 |         a2 = 0xef4;
                                                                     |         /* esilref: 'database_get_recording_recording_block_info' */
    0x00021f60 addiu a1, a1, 0x2a44                                  |         a1 += 0x2a44;
    0x00021f64 sw v0, 0x10(sp)                                       |         *(var_10h) = v0;
    0x00021f68 sw s0, 0x18(sp)                                       |         *(var_18h) = s0;
    0x00021f6c jalr t9                                               |         t9 ();
    0x00021f70 lw gp, 0x20(sp)                                       |         gp = *(var_20h);
    0x00021f74 lw v0, 0x7c(sp)                                       |         v0 = *(arg_7ch);
    0x00021f78 lw t9, -0x74c8(gp)                                    |         t9 = *((gp - 7474));
    0x00021f7c lw a0, (v0)                                           |         a0 = *(v0);
    0x00021f80 jalr t9                                               |         t9 ();
    0x00021f84 lw v0, 0x7c(sp)                                       |         v0 = *(arg_7ch);
    0x00021f88 lw gp, 0x20(sp)                                       |         gp = *(var_20h);
    0x00021f8c sw zero, (v0)                                         |         *(v0) = 0;
    0x00021f90 b 0x21e14                                             |         
                                                                     |     } while (1);
                                                                     | label_8:
    0x00021f94 lw v0, -0x7fd8(gp)                                    |     v0 = *(gp);
    0x00021f98 lw a1, -0x7fd8(gp)                                    |     a1 = *(gp);
                                                                     |     /* str.Database__s_does_not_exist */
    0x00021f9c addiu v0, v0, 0xb4c                                   |     v0 += 0xb4c;
    0x00021fa0 sw v0, 0x14(sp)                                       |     *(var_14h) = v0;
    0x00021fa4 lw v0, -0x7fd8(gp)                                    |     v0 = *(gp);
    0x00021fa8 lw t9, -0x7df8(gp)                                    |     t9 = sym.set_error;
                                                                     |     /* str.DatabaseError */
    0x00021fac addiu v0, v0, -0x2648                                 |     v0 += -0x2648;
    0x00021fb0 lw a0, 0x80(sp)                                       |     a0 = *(arg_80h);
    0x00021fb4 sw s3, 0x18(sp)                                       |     *(var_18h) = s3;
    0x00021fb8 sw v0, 0x10(sp)                                       |     *(var_10h) = v0;
    0x00021fbc move a3, zero                                         |     a3 = 0;
    0x00021fc0 addiu a2, zero, 0xec9                                 |     a2 = 0xec9;
                                                                     |     /* esilref: 'database_get_recording_recording_block_info' */
    0x00021fc4 addiu a1, a1, 0x2a44                                  |     a1 += 0x2a44;
    0x00021fc8 jalr t9                                               |     t9 ();
    0x00021fcc move s7, zero                                         |     s7 = 0;
    0x00021fd0 lw gp, 0x20(sp)                                       |     gp = *(var_20h);
    0x00021fd4 move s3, zero                                         |     s3 = 0;
                                                                     |     if (s5 == 0) {
    0x00021fd8 beqz s5, 0x21e28                                      |         goto label_0;
                                                                     |     }
    0x00021fdc lw t9, -0x75a8(gp)                                    |     t9 = sym.imp.g_string_free;
    0x00021fe0 b 0x21e18                                             |     goto label_1;
                                                                     | label_7:
    0x00021fe4 lw t9, -0x7d2c(gp)                                    |     t9 = *(gp);
                                                                     |     /* fcn.00019ec0 */
    0x00021fe8 addiu t9, t9, -0x6140                                 |     t9 += -0x6140;
    0x00021fec move a0, zero                                         |     a0 = 0;
    0x00021ff0 bal 0x19ec0                                           |     fcn_00019ec0 ();
    0x00021ff4 lw gp, 0x20(sp)                                       |     gp = *(var_20h);
    0x00021ff8 sw v0, 0x3c(sp)                                       |     *(var_3ch) = v0;
    0x00021ffc move s3, v0                                           |     s3 = v0;
    0x00022000 lw v0, -0x7fd4(gp)                                    |     v0 = *((gp - 8181));
    0x00022004 lw t9, -0x72c0(gp)                                    |     t9 = sym.imp.g_list_first;
    0x00022008 lw a0, -0xf4c(v0)                                     |     a0 = *((v0 - 979));
    0x0002200c jalr t9                                               |     t9 ();
    0x00022010 move s1, v0                                           |     s1 = v0;
    0x00022014 lw gp, 0x20(sp)                                       |     gp = *(var_20h);
                                                                     |     if (v0 == 0) {
    0x00022018 beqz v0, 0x221a0                                      |         goto label_11;
                                                                     |     }
    0x0002201c lw s7, -0x7fd8(gp)                                    |     s7 = *(gp);
                                                                     |     /* esilref: 'MIN' */
    0x00022020 addiu v0, s7, 0x1010                                  |     v0 = s7 + aav.0x00001010;
    0x00022024 sw v0, 0x30(sp)                                       |     *(var_30h) = v0;
    0x00022028 lw v0, -0x7fd8(gp)                                    |     v0 = *(gp);
                                                                     |     /* str.starttime */
    0x0002202c addiu v0, v0, 0x7a8                                   |     v0 += 0x7a8;
    0x00022030 sw v0, 0x34(sp)                                       |     *(var_34h) = v0;
    0x00022034 lw v0, -0x7fd8(gp)                                    |     v0 = *(gp);
                                                                     |     /* str.___s___ */
    0x00022038 addiu v0, v0, 0x1014                                  |     v0 += 0x1014;
    0x0002203c sw v0, 0x38(sp)                                       |     *(var_38h) = v0;
                                                                     |     do {
    0x00022040 lw v0, (s1)                                           |         v0 = *(s1);
    0x00022044 lw t9, -0x7c68(gp)                                    |         t9 = sym.sql_block_min_max_start_stop_time;
    0x00022048 lw a3, 0x30(sp)                                       |         a3 = *(var_30h);
    0x0002204c lw s7, 4(v0)                                          |         s7 = *((v0 + 1));
    0x00022050 lw a2, 0x34(sp)                                       |         a2 = *(var_34h);
    0x00022054 move a1, s0                                           |         a1 = s0;
    0x00022058 move a0, s7                                           |         a0 = s7;
    0x0002205c bal 0x3f6f4                                           |         sym_sql_block_min_max_start_stop_time ();
    0x00022060 lw gp, 0x20(sp)                                       |         gp = *(var_20h);
    0x00022064 addiu s3, s3, 4                                       |         s3 += 4;
    0x00022068 lw a3, 0x78(sp)                                       |         a3 = *(arg_78h);
    0x0002206c lw t9, -0x7c64(gp)                                    |         t9 = sym.sql_count_blocks;
    0x00022070 move a2, s6                                           |         a2 = s6;
    0x00022074 move a1, s0                                           |         a1 = s0;
    0x00022078 move a0, s7                                           |         a0 = s7;
    0x0002207c sw v0, -4(s3)                                         |         *((s3 - 1)) = v0;
    0x00022080 sw zero, 0x10(sp)                                     |         *(var_10h) = 0;
    0x00022084 bal 0x3e500                                           |         sym_sql_count_blocks ();
    0x00022088 lw gp, 0x20(sp)                                       |         gp = *(var_20h);
    0x0002208c lw a2, (v0)                                           |         a2 = *(v0);
    0x00022090 lw a1, 0x38(sp)                                       |         a1 = *(var_38h);
    0x00022094 lw t9, -0x772c(gp)                                    |         t9 = sym.imp.g_string_append_printf
    0x00022098 sw v0, 0x2c(sp)                                       |         *(var_2ch) = v0;
    0x0002209c move a0, s5                                           |         a0 = s5;
    0x000220a0 jalr t9                                               |         t9 ();
    0x000220a4 lw gp, 0x20(sp)                                       |         gp = *(var_20h);
    0x000220a8 lw v0, 0x2c(sp)                                       |         v0 = *(var_2ch);
    0x000220ac addiu a1, zero, 1                                     |         a1 = 1;
    0x000220b0 lw t9, -0x75a8(gp)                                    |         t9 = sym.imp.g_string_free;
    0x000220b4 move a0, v0                                           |         a0 = v0;
    0x000220b8 jalr t9                                               |         t9 ();
    0x000220bc lw s1, 4(s1)                                          |         s1 = *((s1 + 1));
    0x000220c0 lw gp, 0x20(sp)                                       |         gp = *(var_20h);
    0x000220c4 bnez s1, 0x22040                                      |         
                                                                     |     } while (s1 != 0);
                                                                     |     do {
    0x000220c8 lw s0, 0x3c(sp)                                       |         s0 = *(var_3ch);
    0x000220cc sw zero, (s3)                                         |         *(s3) = 0;
    0x000220d0 lw s3, (s0)                                           |         s3 = *(s0);
    0x000220d4 lw a0, -0x7fd8(gp)                                    |         a0 = *(gp);
                                                                     |         if (s3 != 0) {
    0x000220d8 beqz s3, 0x2218c                                      |             
    0x000220dc lw t9, -0x7708(gp)                                    |             t9 = sym.imp.g_strjoinv;
    0x000220e0 move a1, s0                                           |             a1 = s0;
                                                                     |             /* str._UNION_ */
    0x000220e4 addiu a0, a0, 0xca0                                   |             a0 += 0xca0;
    0x000220e8 jalr t9                                               |             t9 ();
    0x000220ec lw gp, 0x20(sp)                                       |             gp = *(var_20h);
    0x000220f0 move a0, s0                                           |             a0 = s0;
    0x000220f4 lw t9, -0x7468(gp)                                    |             t9 = *(gp);
    0x000220f8 move s3, v0                                           |             s3 = v0;
    0x000220fc jalr t9                                               |             t9 ();
    0x00022100 lw gp, 0x20(sp)                                       |             gp = *(var_20h);
    0x00022104 b 0x21da8                                             |             goto label_2;
                                                                     | label_9:
    0x00022108 lw t9, -0x7268(gp)                                    |             t9 = sym.imp.sqlite3_errcode;
    0x0002210c lw a0, -0xf48(s4)                                     |             a0 = *((s4 - 978));
    0x00022110 move s7, zero                                         |             s7 = 0;
    0x00022114 jalr t9                                               |             t9 ();
    0x00022118 lw gp, 0x20(sp)                                       |             gp = *(var_20h);
    0x0002211c lw a0, -0xf48(s4)                                     |             a0 = *((s4 - 978));
    0x00022120 lw t9, -0x7268(gp)                                    |             t9 = sym.imp.sqlite3_errcode;
    0x00022124 move s0, v0                                           |             s0 = v0;
    0x00022128 jalr t9                                               |             t9 ();
    0x0002212c lw gp, 0x20(sp)                                       |             gp = *(var_20h);
    0x00022130 lw a0, -0xf48(s4)                                     |             a0 = *((s4 - 978));
    0x00022134 lw t9, -0x73f8(gp)                                    |             t9 = sym.imp.sqlite3_errmsg;
    0x00022138 move s1, v0                                           |             s1 = v0;
    0x0002213c jalr t9                                               |             t9 ();
    0x00022140 lw gp, 0x20(sp)                                       |             gp = *(var_20h);
    0x00022144 sw v0, 0x1c(sp)                                       |             *(var_1ch) = v0;
    0x00022148 lw a0, 0x80(sp)                                       |             a0 = *(arg_80h);
    0x0002214c lw v0, -0x7fd8(gp)                                    |             v0 = *(gp);
    0x00022150 lw a1, -0x7fd8(gp)                                    |             a1 = *(gp);
                                                                     |             /* str.SQLite_error:___d___s */
    0x00022154 addiu v0, v0, 0x908                                   |             v0 += 0x908;
    0x00022158 sw v0, 0x14(sp)                                       |             *(var_14h) = v0;
    0x0002215c lw v0, -0x7fd8(gp)                                    |             v0 = *(gp);
    0x00022160 lw t9, -0x7df8(gp)                                    |             t9 = sym.set_error;
                                                                     |             /* str.DatabaseError */
    0x00022164 addiu v0, v0, -0x2648                                 |             v0 += -0x2648;
    0x00022168 sw s1, 0x18(sp)                                       |             *(var_18h) = s1;
    0x0002216c sw v0, 0x10(sp)                                       |             *(var_10h) = v0;
    0x00022170 move a3, s0                                           |             a3 = s0;
    0x00022174 addiu a2, zero, 0xeed                                 |             a2 = 0xeed;
                                                                     |             /* esilref: 'database_get_recording_recording_block_info' */
    0x00022178 addiu a1, a1, 0x2a44                                  |             a1 += 0x2a44;
    0x0002217c jalr t9                                               |             t9 ();
    0x00022180 lw gp, 0x20(sp)                                       |             gp = *(var_20h);
    0x00022184 sw zero, (s2)                                         |             *(s2) = 0;
    0x00022188 b 0x21e14                                             |             goto label_3;
                                                                     |         }
    0x0002218c lw t9, -0x74c8(gp)                                    |         t9 = *((gp - 7474));
    0x00022190 lw a0, 0x3c(sp)                                       |         a0 = *(var_3ch);
    0x00022194 jalr t9                                               |         t9 ();
    0x00022198 lw gp, 0x20(sp)                                       |         gp = *(var_20h);
    0x0002219c b 0x21da8                                             |         goto label_2;
                                                                     | label_11:
    0x000221a0 lw s3, 0x3c(sp)                                       |         s3 = *(var_3ch);
    0x000221a4 b 0x220c8                                             |         
                                                                     |     } while (1);
                                                                     | }
    ; assembly                                                   | /* r2dec pseudo code output */
                                                                 | /* /logs/firmware/unblob_extracted/firmware_extract/4325012-58052244.squashfs_v4_le_extract/usr/bin/indexer @ 0x22c30 */
                                                                 | #include <stdint.h>
                                                                 |  
    ; (fcn) sym.database_get_recordings_by_ids_and_times ()      | void database_get_recordings_by_ids_and_times () {
    0x00022c30 lui gp, 6                                         |     
    0x00022c34 addiu gp, gp, 0x34d0                              |     
    0x00022c38 addu gp, gp, t9                                   |     gp += t9;
    0x00022c3c addiu sp, sp, -0x78                               |     
    0x00022c40 sw s7, 0x6c(sp)                                   |     *(var_6ch) = s7;
    0x00022c44 move s7, a0                                       |     s7 = a0;
    0x00022c48 lw a0, 0x8c(sp)                                   |     a0 = *(var_8ch);
    0x00022c4c sw s1, 0x54(sp)                                   |     *(var_54h_2) = s1;
    0x00022c50 sw s0, 0x50(sp)                                   |     *(var_50h_2) = s0;
    0x00022c54 lw s1, -0x7fd4(gp)                                |     s1 = *((gp - 8181));
    0x00022c58 lw s0, -0x71a0(gp)                                |     s0 = *((gp - 7272));
    0x00022c5c sw a0, 0x30(sp)                                   |     *(var_30h) = a0;
    0x00022c60 lw a0, 0x98(sp)                                   |     a0 = *(var_98h);
    0x00022c64 lw v1, (s0)                                       |     v1 = *(s0);
    0x00022c68 sw a0, 0x34(sp)                                   |     *(var_34h) = a0;
    0x00022c6c lw v0, -0xf48(s1)                                 |     v0 = *((s1 - 978));
    0x00022c70 lw a0, 0x9c(sp)                                   |     a0 = *(var_9ch);
    0x00022c74 sw gp, 0x28(sp)                                   |     *(var_28h) = gp;
    0x00022c78 sw s4, 0x60(sp)                                   |     *(var_60h) = s4;
    0x00022c7c sw s2, 0x58(sp)                                   |     *(var_58h) = s2;
    0x00022c80 sw ra, 0x74(sp)                                   |     *(var_74h) = ra;
    0x00022c84 sw fp, 0x70(sp)                                   |     *(var_70h) = fp;
    0x00022c88 sw s6, 0x68(sp)                                   |     *(var_68h) = s6;
    0x00022c8c sw s5, 0x64(sp)                                   |     *(var_64h) = s5;
    0x00022c90 sw s3, 0x5c(sp)                                   |     *(var_5ch) = s3;
    0x00022c94 lw s2, 0x88(sp)                                   |     s2 = *(var_10h);
    0x00022c98 sw a0, 0x38(sp)                                   |     *(var_38h_2) = a0;
    0x00022c9c lw s4, 0xa0(sp)                                   |     s4 = *(var_a0h);
    0x00022ca0 sw v1, 0x4c(sp)                                   |     *(var_4ch_2) = v1;
    0x00022ca4 lw t9, -0x7ca4(gp)                                |     t9 = sym.validate_iso8601_times;
                                                                 |     if (v0 == 0) {
    0x00022ca8 beqz v0, 0x22ed0                                  |         goto label_2;
                                                                 |     }
    0x00022cac move s3, a3                                       |     s3 = a3;
    0x00022cb0 move fp, a1                                       |     fp = a1;
    0x00022cb4 move s6, a2                                       |     s6 = a2;
    0x00022cb8 move a3, s4                                       |     a3 = s4;
    0x00022cbc addiu a2, zero, 1                                 |     a2 = 1;
    0x00022cc0 move a1, s2                                       |     a1 = s2;
    0x00022cc4 move a0, s3                                       |     a0 = s3;
    0x00022cc8 bal 0x42124                                       |     sym_validate_iso8601_times ();
    0x00022ccc move s5, v0                                       |     s5 = v0;
    0x00022cd0 lw gp, 0x28(sp)                                   |     gp = *(var_28h);
    0x00022cd4 bnez v0, 0x22d18                                  |     
                                                                 |     while (1) {
    0x00022cd8 lw a0, 0x4c(sp)                                   |         a0 = *(var_4ch_2);
    0x00022cdc lw v1, (s0)                                       |         v1 = *(s0);
    0x00022ce0 move v0, s5                                       |         v0 = s5;
                                                                 |         if (a0 != v1) {
    0x00022ce4 bne a0, v1, 0x22fd4                               |             goto label_3;
                                                                 |         }
    0x00022ce8 lw ra, 0x74(sp)                                   |         ra = *(var_74h);
    0x00022cec lw fp, 0x70(sp)                                   |         fp = *(var_70h);
    0x00022cf0 lw s7, 0x6c(sp)                                   |         s7 = *(var_6ch);
    0x00022cf4 lw s6, 0x68(sp)                                   |         s6 = *(var_68h);
    0x00022cf8 lw s5, 0x64(sp)                                   |         s5 = *(var_64h);
    0x00022cfc lw s4, 0x60(sp)                                   |         s4 = *(var_60h);
    0x00022d00 lw s3, 0x5c(sp)                                   |         s3 = *(var_5ch);
    0x00022d04 lw s2, 0x58(sp)                                   |         s2 = *(var_58h);
    0x00022d08 lw s1, 0x54(sp)                                   |         s1 = *(var_54h_2);
    0x00022d0c lw s0, 0x50(sp)                                   |         s0 = *(var_50h_2);
    0x00022d10 addiu sp, sp, 0x78                                |         
    0x00022d14 jr ra                                             |         return v0;
    0x00022d18 lw v0, -0x7fd4(gp)                                |         v0 = *((gp - 8181));
    0x00022d1c lw t9, -0x7688(gp)                                |         t9 = sym.imp.g_rec_mutex_lock;
    0x00022d20 addiu a0, v0, -0xf58                              |         a0 = v0 + -0xf58;
    0x00022d24 sw v0, 0x3c(sp)                                   |         *(var_3ch) = v0;
    0x00022d28 jalr t9                                           |         t9 ();
    0x00022d2c lw gp, 0x28(sp)                                   |         gp = *(var_28h);
    0x00022d30 move a1, s7                                       |         a1 = s7;
    0x00022d34 lw v0, -0x7fd4(gp)                                |         v0 = *((gp - 8181));
    0x00022d38 lw a2, -0x7d2c(gp)                                |         a2 = *(gp);
    0x00022d3c lw t9, -0x7528(gp)                                |         t9 = sym.imp.g_list_find_custom;
    0x00022d40 lw a0, -0xf4c(v0)                                 |         a0 = *((v0 - 979));
    0x00022d44 addiu a2, a2, -0x6540                             |         a2 += -0x6540;
    0x00022d48 jalr t9                                           |         t9 ();
    0x00022d4c move s5, v0                                       |         s5 = v0;
    0x00022d50 lw gp, 0x28(sp)                                   |         gp = *(var_28h);
                                                                 |         if (v0 == 0) {
    0x00022d54 beqz v0, 0x22f78                                  |             goto label_4;
                                                                 |         }
    0x00022d58 lw v0, 0x94(sp)                                   |         v0 = *(var_94h_2);
    0x00022d5c lw s7, -0x7fd8(gp)                                |         s7 = *(gp);
    0x00022d60 sw v0, 0x10(sp)                                   |         *(var_10h_2) = v0;
    0x00022d64 lw v0, 0x34(sp)                                   |         v0 = *(var_34h);
    0x00022d68 lw a1, -0x7fd8(gp)                                |         a1 = *(gp);
    0x00022d6c sw v0, 0x44(sp)                                   |         *(var_44h_5) = v0;
    0x00022d70 lw v0, 0x38(sp)                                   |         v0 = *(var_38h_2);
    0x00022d74 lw t9, -0x7cac(gp)                                |         t9 = sym.sql_order_limit;
    0x00022d78 lw a3, 0x90(sp)                                   |         a3 = *(var_90h_3);
                                                                 |         /* esilref: 'recordings' */
    0x00022d7c addiu a0, s7, -0x21e8                             |         a0 = s7 + -0x21e8;
    0x00022d80 addiu a2, zero, 1                                 |         a2 = 1;
                                                                 |         /* str.starttime */
    0x00022d84 addiu a1, a1, 0x7a8                               |         a1 += 0x7a8;
    0x00022d88 sw v0, 0x48(sp)                                   |         *(var_48h_5) = v0;
    0x00022d8c sw zero, 0x40(sp)                                 |         *(var_40h_5) = 0;
    0x00022d90 bal 0x3a680                                       |         sym_sql_order_limit ();
    0x00022d94 lw v1, (s5)                                       |         v1 = *(s5);
    0x00022d98 lw gp, 0x28(sp)                                   |         gp = *(var_28h);
                                                                 |         /* esilref: 'recordings' */
    0x00022d9c addiu a1, s7, -0x21e8                             |         a1 = s7 + -0x21e8;
    0x00022da0 lw a0, 4(v1)                                      |         a0 = *((v1 + 1));
    0x00022da4 lw v1, 0x30(sp)                                   |         v1 = *(var_30h);
    0x00022da8 lw t9, -0x7cf4(gp)                                |         t9 = sym.sql_where_stmt;
    0x00022dac sw s2, 0x10(sp)                                   |         *(var_10h_2) = s2;
    0x00022db0 move a3, s3                                       |         a3 = s3;
    0x00022db4 move a2, fp                                       |         a2 = fp;
    0x00022db8 sw zero, 0x24(sp)                                 |         *(var_24h_2) = 0;
    0x00022dbc sw zero, 0x20(sp)                                 |         *(var_90h) = 0;
    0x00022dc0 sw v1, 0x1c(sp)                                   |         *(var_1ch) = v1;
    0x00022dc4 sw zero, 0x18(sp)                                 |         *(var_18h) = 0;
    0x00022dc8 sw zero, 0x14(sp)                                 |         *(var_14h) = 0;
    0x00022dcc move s7, v0                                       |         s7 = v0;
    0x00022dd0 bal 0x3ddd8                                       |         sym_sql_where_stmt ();
    0x00022dd4 move s2, v0                                       |         s2 = v0;
    0x00022dd8 lw gp, 0x28(sp)                                   |         gp = *(var_28h);
                                                                 |         if (s6 != 0) {
    0x00022ddc beqz s6, 0x22e2c                                  |             
    0x00022de0 lw t9, -0x7c5c(gp)                                |             t9 = sym.sanitize_quote;
    0x00022de4 move a0, s6                                       |             a0 = s6;
    0x00022de8 bal 0x3a2f0                                       |             sym_sanitize_quote ();
    0x00022dec lw v1, 4(s2)                                      |             v1 = *((s2 + 1));
    0x00022df0 lw gp, 0x28(sp)                                   |             gp = *(var_28h);
    0x00022df4 move s3, v0                                       |             s3 = v0;
                                                                 |             if (v1 != 0) {
    0x00022df8 bnez v1, 0x22fb8                                  |                 goto label_5;
                                                                 |             }
                                                                 | label_1:
    0x00022dfc lw a1, -0x7fd8(gp)                                |             a1 = *(gp);
    0x00022e00 lw t9, -0x772c(gp)                                |             t9 = sym.imp.g_string_append_printf
    0x00022e04 lw a2, (s3)                                       |             a2 = *(s3);
                                                                 |             /* str.__recording_groups.recording_group_id_s_ */
    0x00022e08 addiu a1, a1, 0x105c                              |             a1 += 0x105c;
    0x00022e0c move a0, s2                                       |             a0 = s2;
    0x00022e10 jalr t9                                           |             t9 ();
    0x00022e14 lw gp, 0x28(sp)                                   |             gp = *(var_28h);
    0x00022e18 addiu a1, zero, 1                                 |             a1 = 1;
    0x00022e1c lw t9, -0x75a8(gp)                                |             t9 = sym.imp.g_string_free;
    0x00022e20 move a0, s3                                       |             a0 = s3;
    0x00022e24 jalr t9                                           |             t9 ();
    0x00022e28 lw gp, 0x28(sp)                                   |             gp = *(var_28h);
                                                                 |         }
    0x00022e2c lw v0, (s5)                                       |         v0 = *(s5);
    0x00022e30 lw a2, (s7)                                       |         a2 = *(s7);
    0x00022e34 lw t9, -0x7c58(gp)                                |         t9 = sym.sql_recordings_select_all_with_groups;
    0x00022e38 lw a1, (s2)                                       |         a1 = *(s2);
    0x00022e3c lw a0, 4(v0)                                      |         a0 = *((v0 + 1));
    0x00022e40 bal 0x3e6a8                                       |         sym_sql_recordings_select_all_with_groups ();
    0x00022e44 lw gp, 0x28(sp)                                   |         gp = *(var_28h);
    0x00022e48 move a0, s2                                       |         a0 = s2;
    0x00022e4c addiu a1, zero, 1                                 |         a1 = 1;
    0x00022e50 lw t9, -0x75a8(gp)                                |         t9 = sym.imp.g_string_free;
    0x00022e54 move s3, v0                                       |         s3 = v0;
    0x00022e58 jalr t9                                           |         t9 ();
    0x00022e5c lw gp, 0x28(sp)                                   |         gp = *(var_28h);
    0x00022e60 addiu a1, zero, 1                                 |         a1 = 1;
    0x00022e64 lw t9, -0x75a8(gp)                                |         t9 = sym.imp.g_string_free;
    0x00022e68 move a0, s7                                       |         a0 = s7;
    0x00022e6c jalr t9                                           |         t9 ();
    0x00022e70 lw gp, 0x28(sp)                                   |         gp = *(var_28h);
    0x00022e74 lw a1, (s3)                                       |         a1 = *(s3);
    0x00022e78 addiu a3, sp, 0x40                                |         a3 = sp + 0x40;
    0x00022e7c lw a2, -0x7d2c(gp)                                |         a2 = *(gp);
    0x00022e80 lw t9, -0x7d2c(gp)                                |         t9 = *(gp);
    0x00022e84 addiu a2, a2, -0x320c                             |         a2 += -0x320c;
                                                                 |         /* fcn.00019f9c */
    0x00022e88 addiu t9, t9, -0x6064                             |         t9 += -0x6064;
    0x00022e8c move a0, zero                                     |         a0 = 0;
    0x00022e90 bal 0x19f9c                                       |         fcn_00019f9c ();
    0x00022e94 lw gp, 0x28(sp)                                   |         gp = *(var_28h);
    0x00022e98 move s2, v0                                       |         s2 = v0;
    0x00022e9c addiu a1, zero, 1                                 |         a1 = 1;
    0x00022ea0 lw t9, -0x75a8(gp)                                |         t9 = sym.imp.g_string_free;
    0x00022ea4 move a0, s3                                       |         a0 = s3;
    0x00022ea8 jalr t9                                           |         t9 ();
    0x00022eac sltiu s5, s2, 1                                   |         s5 = (s2 < 1) ? 1 : 0;
    0x00022eb0 lw gp, 0x28(sp)                                   |         gp = *(var_28h);
                                                                 |         if (s2 != 0) {
    0x00022eb4 bnez s2, 0x22efc                                  |             goto label_6;
                                                                 |         }
                                                                 | label_0:
    0x00022eb8 lw v0, 0x3c(sp)                                   |         v0 = *(var_3ch);
    0x00022ebc lw t9, -0x76cc(gp)                                |         t9 = sym.imp.g_rec_mutex_unlock;
    0x00022ec0 addiu a0, v0, -0xf58                              |         a0 = v0 + -0xf58;
    0x00022ec4 jalr t9                                           |         t9 ();
    0x00022ec8 lw gp, 0x28(sp)                                   |         gp = *(var_28h);
    0x00022ecc b 0x22cd8                                         |         
                                                                 |     }
                                                                 | label_2:
    0x00022ed0 lw v0, -0x7fd8(gp)                                |     v0 = *(gp);
    0x00022ed4 lw a3, -0x7fd8(gp)                                |     a3 = *(gp);
    0x00022ed8 lw a1, -0x7fd8(gp)                                |     a1 = *(gp);
                                                                 |     /* str.main_database */
    0x00022edc addiu v0, v0, 0x894                               |     v0 += 0x894;
    0x00022ee0 lw t9, -0x76c0(gp)                                |     t9 = sym.imp.g_assertion_message_expr;
    0x00022ee4 sw v0, 0x10(sp)                                   |     *(var_10h_2) = v0;
                                                                 |     /* str.database_get_recordings_by_ids_and_times */
    0x00022ee8 addiu a3, a3, 0x28a0                              |     a3 += 0x28a0;
    0x00022eec addiu a2, zero, 0x1047                            |     a2 = 0x1047;
                                                                 |     /* str.database_sql_interface.c */
    0x00022ef0 addiu a1, a1, 0x820                               |     a1 += 0x820;
    0x00022ef4 move a0, zero                                     |     a0 = 0;
    0x00022ef8 jalr t9                                           |     t9 ();
                                                                 | label_6:
    0x00022efc lw t9, -0x7268(gp)                                |     t9 = sym.imp.sqlite3_errcode;
    0x00022f00 lw a0, -0xf48(s1)                                 |     a0 = *((s1 - 978));
    0x00022f04 jalr t9                                           |     t9 ();
    0x00022f08 lw gp, 0x28(sp)                                   |     gp = *(var_28h);
    0x00022f0c lw a0, -0xf48(s1)                                 |     a0 = *((s1 - 978));
    0x00022f10 lw t9, -0x7268(gp)                                |     t9 = sym.imp.sqlite3_errcode;
    0x00022f14 move s2, v0                                       |     s2 = v0;
    0x00022f18 jalr t9                                           |     t9 ();
    0x00022f1c lw gp, 0x28(sp)                                   |     gp = *(var_28h);
    0x00022f20 lw a0, -0xf48(s1)                                 |     a0 = *((s1 - 978));
    0x00022f24 lw t9, -0x73f8(gp)                                |     t9 = sym.imp.sqlite3_errmsg;
    0x00022f28 move s1, v0                                       |     s1 = v0;
    0x00022f2c jalr t9                                           |     t9 ();
    0x00022f30 lw gp, 0x28(sp)                                   |     gp = *(var_28h);
    0x00022f34 sw v0, 0x1c(sp)                                   |     *(var_1ch) = v0;
    0x00022f38 sw s1, 0x18(sp)                                   |     *(var_18h) = s1;
    0x00022f3c lw v0, -0x7fd8(gp)                                |     v0 = *(gp);
    0x00022f40 lw a1, -0x7fd8(gp)                                |     a1 = *(gp);
                                                                 |     /* str.SQLite_error:___d___s */
    0x00022f44 addiu v0, v0, 0x908                               |     v0 += 0x908;
    0x00022f48 sw v0, 0x14(sp)                                   |     *(var_14h) = v0;
    0x00022f4c lw v0, -0x7fd8(gp)                                |     v0 = *(gp);
    0x00022f50 lw t9, -0x7df8(gp)                                |     t9 = sym.set_error;
                                                                 |     /* str.DatabaseError */
    0x00022f54 addiu v0, v0, -0x2648                             |     v0 += -0x2648;
    0x00022f58 sw v0, 0x10(sp)                                   |     *(var_10h_2) = v0;
    0x00022f5c move a3, s2                                       |     a3 = s2;
    0x00022f60 addiu a2, zero, 0x1072                            |     a2 = 0x1072;
                                                                 |     /* esilref: 'database_get_recordings_by_ids_and_times' */
    0x00022f64 addiu a1, a1, 0x2874                              |     a1 += 0x2874;
    0x00022f68 move a0, s4                                       |     a0 = s4;
    0x00022f6c bal 0x422c0                                       |     sym_set_error ();
    0x00022f70 lw gp, 0x28(sp)                                   |     gp = *(var_28h);
    0x00022f74 b 0x22eb8                                         |     goto label_0;
                                                                 | label_4:
    0x00022f78 lw v0, -0x7fd8(gp)                                |     v0 = *(gp);
    0x00022f7c lw a1, -0x7fd8(gp)                                |     a1 = *(gp);
                                                                 |     /* str.Storage_id__s_does_not_exist. */
    0x00022f80 addiu v0, v0, 0x8e8                               |     v0 += 0x8e8;
    0x00022f84 sw v0, 0x14(sp)                                   |     *(var_14h) = v0;
    0x00022f88 lw v0, -0x7fd8(gp)                                |     v0 = *(gp);
    0x00022f8c lw t9, -0x7df8(gp)                                |     t9 = sym.set_error;
                                                                 |     /* str.DatabaseError */
    0x00022f90 addiu v0, v0, -0x2648                             |     v0 += -0x2648;
    0x00022f94 sw s7, 0x18(sp)                                   |     *(var_18h) = s7;
    0x00022f98 sw v0, 0x10(sp)                                   |     *(var_10h_2) = v0;
    0x00022f9c move a3, zero                                     |     a3 = 0;
    0x00022fa0 addiu a2, zero, 0x104f                            |     a2 = 0x104f;
                                                                 |     /* esilref: 'database_get_recordings_by_ids_and_times' */
    0x00022fa4 addiu a1, a1, 0x2874                              |     a1 += 0x2874;
    0x00022fa8 move a0, s4                                       |     a0 = s4;
    0x00022fac bal 0x422c0                                       |     sym_set_error ();
    0x00022fb0 lw gp, 0x28(sp)                                   |     gp = *(var_28h);
    0x00022fb4 b 0x22eb8                                         |     goto label_0;
                                                                 | label_5:
    0x00022fb8 lw a1, -0x7fd8(gp)                                |     a1 = *(gp);
    0x00022fbc lw t9, -0x772c(gp)                                |     t9 = sym.imp.g_string_append_printf
                                                                 |     /* str._AND */
    0x00022fc0 addiu a1, a1, 0x1054                              |     a1 += 0x1054;
    0x00022fc4 move a0, s2                                       |     a0 = s2;
    0x00022fc8 jalr t9                                           |     t9 ();
    0x00022fcc lw gp, 0x28(sp)                                   |     gp = *(var_28h);
    0x00022fd0 b 0x22dfc                                         |     goto label_1;
                                                                 | label_3:
    0x00022fd4 lw t9, -0x7494(gp)                                |     t9 = sym.imp.__stack_chk_fail;
    0x00022fd8 jalr t9                                           |     t9 ();
    0x00022fdc nop                                               |     
                                                                 | }
    ; assembly                                                   | /* r2dec pseudo code output */
                                                                 | /* /logs/firmware/unblob_extracted/firmware_extract/4325012-58052244.squashfs_v4_le_extract/usr/bin/indexer @ 0x20f30 */
                                                                 | #include <stdint.h>
                                                                 |  
    ; (fcn) sym.database_get_recordings_by_recording_id ()       | void database_get_recordings_by_recording_id () {
    0x00020f30 lui gp, 6                                         |     
    0x00020f34 addiu gp, gp, 0x51d0                              |     
    0x00020f38 addu gp, gp, t9                                   |     gp += t9;
    0x00020f3c addiu sp, sp, -0x68                               |     
    0x00020f40 sw s3, 0x4c(sp)                                   |     *(var_4ch_2) = s3;
    0x00020f44 sw s2, 0x48(sp)                                   |     *(var_48h_2) = s2;
    0x00020f48 lw s3, -0x7fd4(gp)                                |     s3 = *((gp - 8181));
    0x00020f4c lw s2, -0x71a0(gp)                                |     s2 = *((gp - 7272));
    0x00020f50 sw gp, 0x28(sp)                                   |     *(var_28h) = gp;
    0x00020f54 lw v0, -0xf48(s3)                                 |     v0 = *((s3 - 978));
    0x00020f58 lw v1, (s2)                                       |     v1 = *(s2);
    0x00020f5c sw s4, 0x50(sp)                                   |     *(var_50h_2) = s4;
    0x00020f60 sw ra, 0x64(sp)                                   |     *(var_64h_2) = ra;
    0x00020f64 sw fp, 0x60(sp)                                   |     *(var_60h_2) = fp;
    0x00020f68 sw s7, 0x5c(sp)                                   |     *(var_5ch_2) = s7;
    0x00020f6c sw s6, 0x58(sp)                                   |     *(var_58h) = s6;
    0x00020f70 sw s5, 0x54(sp)                                   |     *(var_54h) = s5;
    0x00020f74 sw s1, 0x44(sp)                                   |     *(var_44h) = s1;
    0x00020f78 sw s0, 0x40(sp)                                   |     *(var_40h_2) = s0;
    0x00020f7c lw s4, 0x78(sp)                                   |     s4 = *(var_10h);
    0x00020f80 sw v1, 0x3c(sp)                                   |     *(var_3ch_2) = v1;
    0x00020f84 lw t9, -0x7d24(gp)                                |     t9 = sym.sql_valid_storage_name;
                                                                 |     if (v0 == 0) {
    0x00020f88 beqz v0, 0x21168                                  |         goto label_4;
                                                                 |     }
    0x00020f8c move s6, a1                                       |     s6 = a1;
    0x00020f90 move s1, a0                                       |     s1 = a0;
    0x00020f94 move a1, s4                                       |     a1 = s4;
    0x00020f98 move a0, s6                                       |     a0 = s6;
    0x00020f9c move fp, a2                                       |     fp = a2;
    0x00020fa0 move s7, a3                                       |     s7 = a3;
    0x00020fa4 bal 0x3a5d4                                       |     sym_sql_valid_storage_name ();
    0x00020fa8 move s0, v0                                       |     s0 = v0;
    0x00020fac lw gp, 0x28(sp)                                   |     gp = *(var_28h);
                                                                 |     if (v0 == 0) {
    0x00020fb0 bnez v0, 0x20ff4                                  |         
                                                                 | label_0:
    0x00020fb4 lw a0, 0x3c(sp)                                   |         a0 = *(var_3ch_2);
    0x00020fb8 lw v1, (s2)                                       |         v1 = *(s2);
    0x00020fbc move v0, s0                                       |         v0 = s0;
                                                                 |         if (a0 != v1) {
    0x00020fc0 bne a0, v1, 0x21288                               |             goto label_5;
                                                                 |         }
    0x00020fc4 lw ra, 0x64(sp)                                   |         ra = *(var_64h_2);
    0x00020fc8 lw fp, 0x60(sp)                                   |         fp = *(var_60h_2);
    0x00020fcc lw s7, 0x5c(sp)                                   |         s7 = *(var_5ch_2);
    0x00020fd0 lw s6, 0x58(sp)                                   |         s6 = *(var_58h);
    0x00020fd4 lw s5, 0x54(sp)                                   |         s5 = *(var_54h);
    0x00020fd8 lw s4, 0x50(sp)                                   |         s4 = *(var_50h_2);
    0x00020fdc lw s3, 0x4c(sp)                                   |         s3 = *(var_4ch_2);
    0x00020fe0 lw s2, 0x48(sp)                                   |         s2 = *(var_48h_2);
    0x00020fe4 lw s1, 0x44(sp)                                   |         s1 = *(var_44h);
    0x00020fe8 lw s0, 0x40(sp)                                   |         s0 = *(var_40h_2);
    0x00020fec addiu sp, sp, 0x68                                |         
    0x00020ff0 jr ra                                             |         return v0;
                                                                 |     }
    0x00020ff4 lw s5, -0x7fd4(gp)                                |     s5 = *((gp - 8181));
    0x00020ff8 lw t9, -0x7688(gp)                                |     t9 = sym.imp.g_rec_mutex_lock;
    0x00020ffc addiu a0, s5, -0xf58                              |     a0 = s5 + -0xf58;
    0x00021000 sw fp, 0x34(sp)                                   |     *(var_34h_4) = fp;
    0x00021004 sw s7, 0x38(sp)                                   |     *(var_38h_4) = s7;
    0x00021008 sw zero, 0x30(sp)                                 |     *(var_30h_4) = 0;
    0x0002100c jalr t9                                           |     t9 ();
    0x00021010 lw gp, 0x28(sp)                                   |     gp = *(var_28h);
                                                                 |     if (s6 == 0) {
    0x00021014 beqz s6, 0x21210                                  |         goto label_6;
                                                                 |     }
    0x00021018 lw v0, -0x7fd4(gp)                                |     v0 = *((gp - 8181));
    0x0002101c lw a2, -0x7d2c(gp)                                |     a2 = *(gp);
    0x00021020 lw t9, -0x7528(gp)                                |     t9 = sym.imp.g_list_find_custom;
    0x00021024 lw a0, -0xf4c(v0)                                 |     a0 = *((v0 - 979));
    0x00021028 addiu a2, a2, -0x6540                             |     a2 += -0x6540;
    0x0002102c move a1, s6                                       |     a1 = s6;
    0x00021030 jalr t9                                           |     t9 ();
    0x00021034 move s0, v0                                       |     s0 = v0;
    0x00021038 lw gp, 0x28(sp)                                   |     gp = *(var_28h);
                                                                 |     if (v0 == 0) {
    0x0002103c beqz v0, 0x21248                                  |         goto label_7;
                                                                 |     }
                                                                 |     if (s1 == 0) {
    0x00021040 beql s1, zero, 0x21230                            |         goto label_8;
                                                                 |     }
    0x00021044 lw s1, -0x7fd8(gp)                                |     s1 = *(gp);
                                                                 | label_1:
    0x00021048 lw a1, -0x7fd8(gp)                                |     a1 = *(gp);
    0x0002104c lw t9, -0x7cf4(gp)                                |     t9 = sym.sql_where_stmt;
    0x00021050 move a2, s1                                       |     a2 = s1;
    0x00021054 sw zero, 0x24(sp)                                 |     *(var_24h) = 0;
    0x00021058 sw zero, 0x20(sp)                                 |     *(var_20h_5) = 0;
    0x0002105c sw zero, 0x1c(sp)                                 |     *(var_1ch_2) = 0;
    0x00021060 sw zero, 0x18(sp)                                 |     *(var_18h_2) = 0;
    0x00021064 sw zero, 0x14(sp)                                 |     *(var_14h_2) = 0;
    0x00021068 sw zero, 0x10(sp)                                 |     *(var_10h_2) = 0;
    0x0002106c move a3, zero                                     |     a3 = 0;
                                                                 |     /* esilref: 'recordings' */
    0x00021070 addiu a1, a1, -0x21e8                             |     a1 += -0x21e8;
    0x00021074 move a0, zero                                     |     a0 = 0;
    0x00021078 bal 0x3ddd8                                       |     sym_sql_where_stmt ();
    0x0002107c lw gp, 0x28(sp)                                   |     gp = *(var_28h);
    0x00021080 move s7, v0                                       |     s7 = v0;
    0x00021084 lw s1, -0x7fd8(gp)                                |     s1 = *(gp);
                                                                 | label_2:
    0x00021088 lw t9, -0x71b4(gp)                                |     t9 = sym.imp.g_string_new;
    0x0002108c addiu a0, s1, 0x403c                              |     a0 = s1 + 0x403c;
    0x00021090 jalr t9                                           |     t9 ();
    0x00021094 move s1, v0                                       |     s1 = v0;
    0x00021098 lw gp, 0x28(sp)                                   |     gp = *(var_28h);
                                                                 |     if (s0 == 0) {
    0x0002109c beqz s0, 0x210fc                                  |         goto label_9;
                                                                 |     }
    0x000210a0 lw fp, -0x7fd8(gp)                                |     fp = *(gp);
                                                                 |     /* str._UNION_ */
    0x000210a4 addiu fp, fp, 0xca0                               |     fp += 0xca0;
                                                                 |     do {
    0x000210a8 lw v0, (s0)                                       |         v0 = *(s0);
    0x000210ac lw t9, -0x7ca8(gp)                                |         t9 = sym.sql_recordings_select_all;
    0x000210b0 lw a1, (s7)                                       |         a1 = *(s7);
    0x000210b4 lw a0, 4(v0)                                      |         a0 = *((v0 + 1));
    0x000210b8 move a2, zero                                     |         a2 = 0;
    0x000210bc bal 0x3e68c                                       |         sym_sql_recordings_select_all ();
    0x000210c0 lw gp, 0x28(sp)                                   |         gp = *(var_28h);
    0x000210c4 move a1, v0                                       |         a1 = v0;
    0x000210c8 lw t9, -0x7d1c(gp)                                |         t9 = sym.string_merge_g_strings;
    0x000210cc move a0, s1                                       |         a0 = s1;
    0x000210d0 jalr t9                                           |         t9 ();
    0x000210d4 lw gp, 0x28(sp)                                   |         gp = *(var_28h);
                                                                 |         if (s6 != 0) {
    0x000210d8 bnez s6, 0x210fc                                  |             goto label_9;
                                                                 |         }
    0x000210dc lw s0, 4(s0)                                      |         s0 = *((s0 + 1));
    0x000210e0 lw t9, -0x772c(gp)                                |         t9 = sym.imp.g_string_append_printf
                                                                 |         if (s0 == 0) {
    0x000210e4 beqz s0, 0x210fc                                  |             goto label_9;
                                                                 |         }
    0x000210e8 move a1, fp                                       |         a1 = fp;
    0x000210ec move a0, s1                                       |         a0 = s1;
    0x000210f0 jalr t9                                           |         t9 ();
    0x000210f4 lw gp, 0x28(sp)                                   |         gp = *(var_28h);
    0x000210f8 b 0x210a8                                         |         
                                                                 |     } while (1);
                                                                 | label_9:
    0x000210fc lw t9, -0x75a8(gp)                                |     t9 = sym.imp.g_string_free;
    0x00021100 addiu a1, zero, 1                                 |     a1 = 1;
    0x00021104 move a0, s7                                       |     a0 = s7;
    0x00021108 jalr t9                                           |     t9 ();
    0x0002110c lw gp, 0x28(sp)                                   |     gp = *(var_28h);
    0x00021110 lw a1, (s1)                                       |     a1 = *(s1);
    0x00021114 addiu a3, sp, 0x30                                |     a3 = sp + 0x30;
    0x00021118 lw a2, -0x7d2c(gp)                                |     a2 = *(gp);
    0x0002111c lw t9, -0x7d2c(gp)                                |     t9 = *(gp);
    0x00021120 addiu a2, a2, -0x320c                             |     a2 += -0x320c;
                                                                 |     /* fcn.00019f9c */
    0x00021124 addiu t9, t9, -0x6064                             |     t9 += -0x6064;
    0x00021128 move a0, zero                                     |     a0 = 0;
    0x0002112c bal 0x19f9c                                       |     fcn_00019f9c ();
    0x00021130 lw gp, 0x28(sp)                                   |     gp = *(var_28h);
    0x00021134 move s6, v0                                       |     s6 = v0;
    0x00021138 addiu a1, zero, 1                                 |     a1 = 1;
    0x0002113c lw t9, -0x75a8(gp)                                |     t9 = sym.imp.g_string_free;
    0x00021140 move a0, s1                                       |     a0 = s1;
    0x00021144 jalr t9                                           |     t9 ();
    0x00021148 sltiu s0, s6, 1                                   |     s0 = (s6 < 1) ? 1 : 0;
    0x0002114c lw gp, 0x28(sp)                                   |     gp = *(var_28h);
    0x00021150 bnez s6, 0x21194                                  |     
                                                                 |     while (1) {
                                                                 | label_3:
    0x00021154 lw t9, -0x76cc(gp)                                |         t9 = sym.imp.g_rec_mutex_unlock;
    0x00021158 addiu a0, s5, -0xf58                              |         a0 = s5 + -0xf58;
    0x0002115c jalr t9                                           |         t9 ();
    0x00021160 lw gp, 0x28(sp)                                   |         gp = *(var_28h);
    0x00021164 b 0x20fb4                                         |         goto label_0;
                                                                 | label_4:
    0x00021168 lw v0, -0x7fd8(gp)                                |         v0 = *(gp);
    0x0002116c lw a3, -0x7fd8(gp)                                |         a3 = *(gp);
    0x00021170 lw a1, -0x7fd8(gp)                                |         a1 = *(gp);
                                                                 |         /* str.main_database */
    0x00021174 addiu v0, v0, 0x894                               |         v0 += 0x894;
    0x00021178 lw t9, -0x76c0(gp)                                |         t9 = sym.imp.g_assertion_message_expr;
    0x0002117c sw v0, 0x10(sp)                                   |         *(var_10h_2) = v0;
                                                                 |         /* str.database_get_recordings_by_recording_id */
    0x00021180 addiu a3, a3, 0x2c30                              |         a3 += 0x2c30;
    0x00021184 addiu a2, zero, 0xdeb                             |         a2 = 0xdeb;
                                                                 |         /* str.database_sql_interface.c */
    0x00021188 addiu a1, a1, 0x820                               |         a1 += 0x820;
    0x0002118c move a0, zero                                     |         a0 = 0;
    0x00021190 jalr t9                                           |         t9 ();
    0x00021194 lw t9, -0x7268(gp)                                |         t9 = sym.imp.sqlite3_errcode;
    0x00021198 lw a0, -0xf48(s3)                                 |         a0 = *((s3 - 978));
    0x0002119c jalr t9                                           |         t9 ();
    0x000211a0 lw gp, 0x28(sp)                                   |         gp = *(var_28h);
    0x000211a4 lw a0, -0xf48(s3)                                 |         a0 = *((s3 - 978));
    0x000211a8 lw t9, -0x7268(gp)                                |         t9 = sym.imp.sqlite3_errcode;
    0x000211ac move s1, v0                                       |         s1 = v0;
    0x000211b0 jalr t9                                           |         t9 ();
    0x000211b4 lw gp, 0x28(sp)                                   |         gp = *(var_28h);
    0x000211b8 lw a0, -0xf48(s3)                                 |         a0 = *((s3 - 978));
    0x000211bc lw t9, -0x73f8(gp)                                |         t9 = sym.imp.sqlite3_errmsg;
    0x000211c0 move s3, v0                                       |         s3 = v0;
    0x000211c4 jalr t9                                           |         t9 ();
    0x000211c8 lw gp, 0x28(sp)                                   |         gp = *(var_28h);
    0x000211cc sw v0, 0x1c(sp)                                   |         *(var_1ch_2) = v0;
    0x000211d0 sw s3, 0x18(sp)                                   |         *(var_18h_2) = s3;
    0x000211d4 lw v0, -0x7fd8(gp)                                |         v0 = *(gp);
    0x000211d8 lw a1, -0x7fd8(gp)                                |         a1 = *(gp);
                                                                 |         /* str.SQLite_error:___d___s */
    0x000211dc addiu v0, v0, 0x908                               |         v0 += 0x908;
    0x000211e0 sw v0, 0x14(sp)                                   |         *(var_14h_2) = v0;
    0x000211e4 lw v0, -0x7fd8(gp)                                |         v0 = *(gp);
    0x000211e8 lw t9, -0x7df8(gp)                                |         t9 = sym.set_error;
                                                                 |         /* str.DatabaseError */
    0x000211ec addiu v0, v0, -0x2648                             |         v0 += -0x2648;
    0x000211f0 sw v0, 0x10(sp)                                   |         *(var_10h_2) = v0;
    0x000211f4 move a3, s1                                       |         a3 = s1;
    0x000211f8 addiu a2, zero, 0xd37                             |         a2 = 0xd37;
                                                                 |         /* str.database_get_recordings_by_id_internal */
    0x000211fc addiu a1, a1, 0x2c08                              |         a1 += 0x2c08;
    0x00021200 move a0, s4                                       |         a0 = s4;
    0x00021204 jalr t9                                           |         t9 ();
    0x00021208 lw gp, 0x28(sp)                                   |         gp = *(var_28h);
    0x0002120c b 0x21154                                         |         
                                                                 |     }
                                                                 | label_6:
    0x00021210 lw v0, -0x7fd4(gp)                                |     v0 = *((gp - 8181));
    0x00021214 lw t9, -0x72c0(gp)                                |     t9 = sym.imp.g_list_first;
    0x00021218 lw a0, -0xf4c(v0)                                 |     a0 = *((v0 - 979));
    0x0002121c jalr t9                                           |     t9 ();
    0x00021220 move s0, v0                                       |     s0 = v0;
    0x00021224 lw gp, 0x28(sp)                                   |     gp = *(var_28h);
                                                                 |     if (s1 != 0) {
    0x00021228 bnez s1, 0x21048                                  |         goto label_1;
                                                                 |     }
    0x0002122c lw s1, -0x7fd8(gp)                                |     s1 = *(gp);
                                                                 | label_8:
    0x00021230 lw t9, -0x71b4(gp)                                |     t9 = sym.imp.g_string_new;
    0x00021234 addiu a0, s1, 0x403c                              |     a0 = s1 + 0x403c;
    0x00021238 jalr t9                                           |     t9 ();
    0x0002123c move s7, v0                                       |     s7 = v0;
    0x00021240 lw gp, 0x28(sp)                                   |     gp = *(var_28h);
    0x00021244 b 0x21088                                         |     goto label_2;
                                                                 | label_7:
    0x00021248 lw v0, -0x7fd8(gp)                                |     v0 = *(gp);
    0x0002124c lw a1, -0x7fd8(gp)                                |     a1 = *(gp);
                                                                 |     /* str.Database__s_does_not_exist */
    0x00021250 addiu v0, v0, 0xb4c                               |     v0 += 0xb4c;
    0x00021254 sw v0, 0x14(sp)                                   |     *(var_14h_2) = v0;
    0x00021258 lw v0, -0x7fd8(gp)                                |     v0 = *(gp);
    0x0002125c lw t9, -0x7df8(gp)                                |     t9 = sym.set_error;
                                                                 |     /* str.DatabaseError */
    0x00021260 addiu v0, v0, -0x2648                             |     v0 += -0x2648;
    0x00021264 sw s6, 0x18(sp)                                   |     *(var_18h_2) = s6;
    0x00021268 sw v0, 0x10(sp)                                   |     *(var_10h_2) = v0;
    0x0002126c move a3, zero                                     |     a3 = 0;
    0x00021270 addiu a2, zero, 0xd12                             |     a2 = 0xd12;
                                                                 |     /* str.database_get_recordings_by_id_internal */
    0x00021274 addiu a1, a1, 0x2c08                              |     a1 += 0x2c08;
    0x00021278 move a0, s4                                       |     a0 = s4;
    0x0002127c jalr t9                                           |     t9 ();
    0x00021280 lw gp, 0x28(sp)                                   |     gp = *(var_28h);
    0x00021284 b 0x21154                                         |     goto label_3;
                                                                 | label_5:
    0x00021288 lw t9, -0x7494(gp)                                |     t9 = sym.imp.__stack_chk_fail;
    0x0002128c jalr t9                                           |     t9 ();
    0x00021290 nop                                               |     
                                                                 | }
    ; assembly                                                           | /* r2dec pseudo code output */
                                                                         | /* /logs/firmware/unblob_extracted/firmware_extract/4325012-58052244.squashfs_v4_le_extract/usr/bin/indexer @ 0x24104 */
                                                                         | #include <stdint.h>
                                                                         |  
    ; (fcn) sym.database_remove_recording_blocks_by_time_iso8601 ()      | void database_remove_recording_blocks_by_time_iso8601 () {
    0x00024104 lui gp, 6                                                 |     
    0x00024108 addiu gp, gp, 0x1ffc                                      |     
    0x0002410c addu gp, gp, t9                                           |     gp += t9;
    0x00024110 lw v0, -0x7fd4(gp)                                        |     v0 = *((gp - 8181));
    0x00024114 addiu sp, sp, -0x80                                       |     
    0x00024118 sw v0, 0x50(sp)                                           |     *(var_50h) = v0;
    0x0002411c lw v0, -0xf48(v0)                                         |     v0 = *((v0 - 978));
    0x00024120 sw gp, 0x28(sp)                                           |     *(var_28h) = gp;
    0x00024124 sw ra, 0x7c(sp)                                           |     *(var_7ch) = ra;
    0x00024128 sw fp, 0x78(sp)                                           |     *(var_78h) = fp;
    0x0002412c sw s7, 0x74(sp)                                           |     *(var_74h) = s7;
    0x00024130 sw s6, 0x70(sp)                                           |     *(var_70h) = s6;
    0x00024134 sw s5, 0x6c(sp)                                           |     *(var_6ch) = s5;
    0x00024138 sw s4, 0x68(sp)                                           |     *(var_68h) = s4;
    0x0002413c sw s3, 0x64(sp)                                           |     *(var_64h) = s3;
    0x00024140 sw s2, 0x60(sp)                                           |     *(var_60h) = s2;
    0x00024144 sw s1, 0x5c(sp)                                           |     *(var_5ch) = s1;
    0x00024148 sw s0, 0x58(sp)                                           |     *(var_58h) = s0;
    0x0002414c sw a3, 0x8c(sp)                                           |     *(arg_8ch) = a3;
                                                                         |     if (v0 == 0) {
    0x00024150 beqz v0, 0x243d0                                          |         goto label_4;
                                                                         |     }
    0x00024154 lw t9, -0x7ca4(gp)                                        |     t9 = sym.validate_iso8601_times;
    0x00024158 move s3, a1                                               |     s3 = a1;
    0x0002415c move s4, a2                                               |     s4 = a2;
    0x00024160 move s7, a0                                               |     s7 = a0;
    0x00024164 addiu a2, zero, 1                                         |     a2 = 1;
    0x00024168 move a1, s4                                               |     a1 = s4;
    0x0002416c move a0, s3                                               |     a0 = s3;
    0x00024170 bal 0x42124                                               |     sym_validate_iso8601_times ();
    0x00024174 lw gp, 0x28(sp)                                           |     gp = *(var_28h);
    0x00024178 bnez v0, 0x241b4                                          |     
                                                                         |     while (v0 == 0) {
    0x0002417c lw ra, 0x7c(sp)                                           |         ra = *(var_7ch);
    0x00024180 move s1, zero                                             |         s1 = 0;
    0x00024184 move v0, s1                                               |         v0 = s1;
    0x00024188 lw fp, 0x78(sp)                                           |         fp = *(var_78h);
    0x0002418c lw s7, 0x74(sp)                                           |         s7 = *(var_74h);
    0x00024190 lw s6, 0x70(sp)                                           |         s6 = *(var_70h);
    0x00024194 lw s5, 0x6c(sp)                                           |         s5 = *(var_6ch);
    0x00024198 lw s4, 0x68(sp)                                           |         s4 = *(var_68h);
    0x0002419c lw s3, 0x64(sp)                                           |         s3 = *(var_64h);
    0x000241a0 lw s2, 0x60(sp)                                           |         s2 = *(var_60h);
    0x000241a4 lw s1, 0x5c(sp)                                           |         s1 = *(var_5ch);
    0x000241a8 lw s0, 0x58(sp)                                           |         s0 = *(var_58h);
    0x000241ac addiu sp, sp, 0x80                                        |         
    0x000241b0 jr ra                                                     |         return v0;
    0x000241b4 lw t9, -0x7d24(gp)                                        |         t9 = sym.sql_valid_storage_name;
    0x000241b8 lw a1, 0x8c(sp)                                           |         a1 = *(arg_8ch);
    0x000241bc move a0, s7                                               |         a0 = s7;
    0x000241c0 bal 0x3a5d4                                               |         sym_sql_valid_storage_name ();
    0x000241c4 lw gp, 0x28(sp)                                           |         gp = *(var_28h);
    0x000241c8 beqz v0, 0x2417c                                          |         
                                                                         |     }
    0x000241cc lw v0, -0x7fd4(gp)                                        |     v0 = *((gp - 8181));
    0x000241d0 lw t9, -0x7688(gp)                                        |     t9 = sym.imp.g_rec_mutex_lock;
    0x000241d4 addiu a0, v0, -0xf58                                      |     a0 = v0 + -0xf58;
    0x000241d8 sw v0, 0x54(sp)                                           |     *(var_54h) = v0;
    0x000241dc jalr t9                                                   |     t9 ();
    0x000241e0 lw gp, 0x28(sp)                                           |     gp = *(var_28h);
    0x000241e4 lw a1, 0x8c(sp)                                           |     a1 = *(arg_8ch);
    0x000241e8 lw t9, -0x7d2c(gp)                                        |     t9 = *(gp);
                                                                         |     /* fcn.0001b5ac */
    0x000241ec addiu t9, t9, -0x4a54                                     |     t9 += -0x4a54;
    0x000241f0 move a0, s7                                               |     a0 = s7;
    0x000241f4 bal 0x1b5ac                                               |     fcn_0001b5ac ();
    0x000241f8 move fp, v0                                               |     fp = v0;
    0x000241fc lw gp, 0x28(sp)                                           |     gp = *(var_28h);
                                                                         |     if (v0 == 0) {
    0x00024200 beqz v0, 0x243fc                                          |         goto label_5;
                                                                         |     }
    0x00024204 lw a0, -0x7fd8(gp)                                        |     a0 = *(gp);
    0x00024208 lw t9, -0x71b4(gp)                                        |     t9 = sym.imp.g_string_new;
    0x0002420c addiu a0, a0, 0x403c                                      |     a0 += 0x403c;
    0x00024210 jalr t9                                                   |     t9 ();
    0x00024214 lw gp, 0x28(sp)                                           |     gp = *(var_28h);
    0x00024218 move s1, v0                                               |     s1 = v0;
    0x0002421c lw v0, -0x7d2c(gp)                                        |     v0 = *(gp);
    0x00024220 lw s5, -0x7fd8(gp)                                        |     s5 = *(gp);
                                                                         |     /* fcn.0001bcd8 */
    0x00024224 addiu v0, v0, -0x4328                                     |     v0 += -0x4328;
    0x00024228 sw v0, 0x3c(sp)                                           |     *(var_3ch) = v0;
    0x0002422c lw v0, -0x7d2c(gp)                                        |     v0 = *(gp);
    0x00024230 lw v1, -0x7fd8(gp)                                        |     v1 = *(gp);
                                                                         |     /* fcn.00019f9c */
    0x00024234 addiu v0, v0, -0x6064                                     |     v0 += -0x6064;
    0x00024238 sw v0, 0x38(sp)                                           |     *(var_38h) = v0;
                                                                         |     /* esilref: 'recording_id' */
    0x0002423c addiu v0, s5, 0x78c8                                      |     v0 = s5 + 0x78c8;
    0x00024240 sw v0, 0x44(sp)                                           |     *(var_44h) = v0;
    0x00024244 lw v0, -0x7fd8(gp)                                        |     v0 = *(gp);
    0x00024248 lw s6, -0x7fd8(gp)                                        |     s6 = *(gp);
                                                                         |     /* str.recording_groups */
    0x0002424c addiu v0, v0, 0xa24                                       |     v0 += 0xa24;
    0x00024250 sw v0, 0x48(sp)                                           |     *(var_48h) = v0;
    0x00024254 lw v0, -0x7fd8(gp)                                        |     v0 = *(gp);
    0x00024258 sw v1, 0x40(sp)                                           |     *(var_40h) = v1;
                                                                         |     /* str.NOT_IN */
    0x0002425c addiu v0, v0, 0xbb4                                       |     v0 += 0xbb4;
                                                                         |     /* esilref: 'blocks' */
    0x00024260 addiu s6, s6, 0x7124                                      |     s6 += 0x7124;
    0x00024264 sw v0, 0x4c(sp)                                           |     *(var_4ch) = v0;
    0x00024268 lw v0, (fp)                                               |     v0 = *(fp);
                                                                         | label_0:
    0x0002426c lw t9, -0x7cf4(gp)                                        |     t9 = sym.sql_where_stmt;
    0x00024270 move a3, s3                                               |     a3 = s3;
    0x00024274 lw s5, 4(v0)                                              |     s5 = *((v0 + 1));
    0x00024278 addiu v0, zero, 1                                         |     v0 = 1;
    0x0002427c move a2, zero                                             |     a2 = 0;
    0x00024280 move a1, s6                                               |     a1 = s6;
    0x00024284 move a0, s5                                               |     a0 = s5;
    0x00024288 sw v0, 0x24(sp)                                           |     *(var_24h) = v0;
    0x0002428c sw zero, 0x20(sp)                                         |     *(var_20h) = 0;
    0x00024290 sw zero, 0x1c(sp)                                         |     *(var_1ch) = 0;
    0x00024294 sw zero, 0x18(sp)                                         |     *(var_18h) = 0;
    0x00024298 sw zero, 0x14(sp)                                         |     *(var_14h) = 0;
    0x0002429c sw s4, 0x10(sp)                                           |     *(var_10h) = s4;
    0x000242a0 bal 0x3ddd8                                               |     sym_sql_where_stmt ();
    0x000242a4 lw gp, 0x28(sp)                                           |     gp = *(var_28h);
    0x000242a8 lw s2, 0x44(sp)                                           |     s2 = *(var_44h);
    0x000242ac lw a1, 0x48(sp)                                           |     a1 = *(var_48h);
    0x000242b0 lw t9, -0x7cc8(gp)                                        |     t9 = sym.sql_select_column_from_table_condition;
    0x000242b4 move a2, s2                                               |     a2 = s2;
    0x000242b8 move a3, zero                                             |     a3 = 0;
    0x000242bc move a0, s5                                               |     a0 = s5;
    0x000242c0 move s0, v0                                               |     s0 = v0;
    0x000242c4 bal 0x3d9a0                                               |     sym_sql_select_column_from_table_condition ();
    0x000242c8 lw gp, 0x28(sp)                                           |     gp = *(var_28h);
    0x000242cc lw a3, 0x4c(sp)                                           |     a3 = *(var_4ch);
    0x000242d0 lw a2, (v0)                                               |     a2 = *(v0);
    0x000242d4 lw t9, -0x7cb8(gp)                                        |     t9 = sym.sql_get_column_in_condition;
    0x000242d8 move a1, s2                                               |     a1 = s2;
    0x000242dc move a0, s6                                               |     a0 = s6;
    0x000242e0 sw v0, 0x34(sp)                                           |     *(var_34h) = v0;
    0x000242e4 bal 0x3f468                                               |     sym_sql_get_column_in_condition ();
    0x000242e8 lw gp, 0x28(sp)                                           |     gp = *(var_28h);
    0x000242ec lw t1, 0x34(sp)                                           |     t1 = *(var_34h);
    0x000242f0 addiu a1, zero, 1                                         |     a1 = 1;
    0x000242f4 lw t9, -0x75a8(gp)                                        |     t9 = sym.imp.g_string_free;
    0x000242f8 move a0, t1                                               |     a0 = t1;
    0x000242fc move s2, v0                                               |     s2 = v0;
    0x00024300 jalr t9                                                   |     t9 ();
    0x00024304 lw gp, 0x28(sp)                                           |     gp = *(var_28h);
    0x00024308 lw v0, 0x40(sp)                                           |     v0 = *(var_40h);
    0x0002430c lw a2, (s2)                                               |     a2 = *(s2);
    0x00024310 lw t9, -0x772c(gp)                                        |     t9 = sym.imp.g_string_append_printf
    0x00024314 addiu a1, v0, 0x10c8                                      |     a1 = v0 + 0x10c8;
    0x00024318 move a0, s0                                               |     a0 = s0;
    0x0002431c jalr t9                                                   |     t9 ();
    0x00024320 lw gp, 0x28(sp)                                           |     gp = *(var_28h);
    0x00024324 addiu a1, zero, 1                                         |     a1 = 1;
    0x00024328 lw t9, -0x75a8(gp)                                        |     t9 = sym.imp.g_string_free;
    0x0002432c move a0, s2                                               |     a0 = s2;
    0x00024330 jalr t9                                                   |     t9 ();
    0x00024334 lw a2, (s0)                                               |     a2 = *(s0);
    0x00024338 lw t9, 0x3c(sp)                                           |     t9 = *(var_3ch);
    0x0002433c move a1, s5                                               |     a1 = s5;
    0x00024340 move a0, s1                                               |     a0 = s1;
    0x00024344 jalr t9                                                   |     t9 ();
    0x00024348 lw a1, (s1)                                               |     a1 = *(s1);
    0x0002434c lw t9, 0x38(sp)                                           |     t9 = *(var_38h);
    0x00024350 move a3, zero                                             |     a3 = 0;
    0x00024354 move a2, zero                                             |     a2 = 0;
    0x00024358 move a0, fp                                               |     a0 = fp;
    0x0002435c jalr t9                                                   |     t9 ();
    0x00024360 lw gp, 0x28(sp)                                           |     gp = *(var_28h);
    0x00024364 move a0, s0                                               |     a0 = s0;
    0x00024368 addiu a1, zero, 1                                         |     a1 = 1;
    0x0002436c lw t9, -0x75a8(gp)                                        |     t9 = sym.imp.g_string_free;
    0x00024370 move s0, v0                                               |     s0 = v0;
    0x00024374 jalr t9                                                   |     t9 ();
    0x00024378 lw gp, 0x28(sp)                                           |     gp = *(var_28h);
    0x0002437c move a1, zero                                             |     a1 = 0;
    0x00024380 lw t9, -0x70d8(gp)                                        |     t9 = sym.imp.g_string_set_size;
    0x00024384 move a0, s1                                               |     a0 = s1;
    0x00024388 jalr t9                                                   |     t9 ();
    0x0002438c lw gp, 0x28(sp)                                           |     gp = *(var_28h);
                                                                         |     if (s7 != 0) {
    0x00024390 bnez s7, 0x24504                                          |         goto label_6;
                                                                         |     }
    0x00024394 lw fp, 4(fp)                                              |     fp = *(arg_4h);
    0x00024398 lw v0, (fp)                                               |     v0 = *(fp);
                                                                         |     if (fp == 0) {
    0x0002439c bnel fp, zero, 0x243b4                                    |         goto label_7;
                                                                         |     }
    0x000243a0 b 0x244e4                                                 |     goto label_8;
    0x000243a4 nop                                                       |     
                                                                         |     if (fp == 0) {
                                                                         |         do {
    0x000243a8 beqz fp, 0x24444                                          |             goto label_9;
                                                                         |         }
    0x000243ac nop                                                       |         
    0x000243b0 lw v0, (fp)                                               |         v0 = *(fp);
                                                                         | label_7:
    0x000243b4 lw v0, 8(v0)                                              |         v0 = *((v0 + 2));
    0x000243b8 lw fp, 4(fp)                                              |         fp = *(arg_4h);
    0x000243bc bnel v0, zero, 0x243a8                                    |         
                                                                         |     } while (v0 == 0);
                                                                         |     if (s0 == 0) {
    0x000243c0 beql s0, zero, 0x2426c                                    |         goto label_0;
                                                                         |     }
    0x000243c4 lw v0, (fp)                                               |     v0 = *(fp);
    0x000243c8 lw t9, -0x75a8(gp)                                        |     t9 = sym.imp.g_string_free;
    0x000243cc b 0x24450                                                 |     goto label_10;
                                                                         | label_4:
    0x000243d0 lw v0, -0x7fd8(gp)                                        |     v0 = *(gp);
    0x000243d4 lw a3, -0x7fd8(gp)                                        |     a3 = *(gp);
    0x000243d8 lw a1, -0x7fd8(gp)                                        |     a1 = *(gp);
                                                                         |     /* str.main_database */
    0x000243dc addiu v0, v0, 0x894                                       |     v0 += 0x894;
    0x000243e0 lw t9, -0x76c0(gp)                                        |     t9 = sym.imp.g_assertion_message_expr;
    0x000243e4 sw v0, 0x10(sp)                                           |     *(var_10h) = v0;
                                                                         |     /* str.database_remove_recording_blocks_by_time_iso8601 */
    0x000243e8 addiu a3, a3, 0x2650                                      |     a3 += aav.0x00002650;
    0x000243ec addiu a2, zero, 0x12a6                                    |     a2 = 0x12a6;
                                                                         |     /* str.database_sql_interface.c */
    0x000243f0 addiu a1, a1, 0x820                                       |     a1 += 0x820;
    0x000243f4 move a0, zero                                             |     a0 = 0;
    0x000243f8 jalr t9                                                   |     t9 ();
                                                                         | label_5:
    0x000243fc move s1, zero                                             |     s1 = 0;
                                                                         |     do {
                                                                         | label_2:
    0x00024400 lw v0, 0x54(sp)                                           |         v0 = *(var_54h);
    0x00024404 lw t9, -0x76cc(gp)                                        |         t9 = sym.imp.g_rec_mutex_unlock;
    0x00024408 addiu a0, v0, -0xf58                                      |         a0 = v0 + -0xf58;
    0x0002440c jalr t9                                                   |         t9 ();
    0x00024410 lw ra, 0x7c(sp)                                           |         ra = *(var_7ch);
    0x00024414 move v0, s1                                               |         v0 = s1;
    0x00024418 lw fp, 0x78(sp)                                           |         fp = *(var_78h);
    0x0002441c lw s7, 0x74(sp)                                           |         s7 = *(var_74h);
    0x00024420 lw s6, 0x70(sp)                                           |         s6 = *(var_70h);
    0x00024424 lw s5, 0x6c(sp)                                           |         s5 = *(var_6ch);
    0x00024428 lw s4, 0x68(sp)                                           |         s4 = *(var_68h);
    0x0002442c lw s3, 0x64(sp)                                           |         s3 = *(var_64h);
    0x00024430 lw s2, 0x60(sp)                                           |         s2 = *(var_60h);
    0x00024434 lw s1, 0x5c(sp)                                           |         s1 = *(var_5ch);
    0x00024438 lw s0, 0x58(sp)                                           |         s0 = *(var_58h);
    0x0002443c addiu sp, sp, 0x80                                        |         
    0x00024440 jr ra                                                     |         return v0;
                                                                         | label_9:
    0x00024444 lw t9, -0x75a8(gp)                                        |         t9 = sym.imp.g_string_free;
                                                                         |         if (s0 == 0) {
    0x00024448 beqz s0, 0x244ec                                          |             goto label_11;
                                                                         |         }
                                                                         | label_1:
    0x0002444c lw t9, -0x75a8(gp)                                        |         t9 = sym.imp.g_string_free;
                                                                         | label_10:
    0x00024450 addiu a1, zero, 1                                         |         a1 = 1;
    0x00024454 move a0, s1                                               |         a0 = s1;
    0x00024458 jalr t9                                                   |         t9 ();
    0x0002445c lw gp, 0x28(sp)                                           |         gp = *(var_28h);
    0x00024460 lw s2, 0x50(sp)                                           |         s2 = *(var_50h);
                                                                         | label_3:
    0x00024464 lw t9, -0x7268(gp)                                        |         t9 = sym.imp.sqlite3_errcode;
    0x00024468 move s1, zero                                             |         s1 = 0;
    0x0002446c lw a0, -0xf48(s2)                                         |         a0 = *((s2 - 978));
    0x00024470 jalr t9                                                   |         t9 ();
    0x00024474 lw gp, 0x28(sp)                                           |         gp = *(var_28h);
    0x00024478 lw a0, -0xf48(s2)                                         |         a0 = *((s2 - 978));
    0x0002447c lw t9, -0x7268(gp)                                        |         t9 = sym.imp.sqlite3_errcode;
    0x00024480 move s0, v0                                               |         s0 = v0;
    0x00024484 jalr t9                                                   |         t9 ();
    0x00024488 lw gp, 0x28(sp)                                           |         gp = *(var_28h);
    0x0002448c lw a0, -0xf48(s2)                                         |         a0 = *((s2 - 978));
    0x00024490 lw t9, -0x73f8(gp)                                        |         t9 = sym.imp.sqlite3_errmsg;
    0x00024494 move s2, v0                                               |         s2 = v0;
    0x00024498 jalr t9                                                   |         t9 ();
    0x0002449c lw gp, 0x28(sp)                                           |         gp = *(var_28h);
    0x000244a0 sw v0, 0x1c(sp)                                           |         *(var_1ch) = v0;
    0x000244a4 lw a0, 0x8c(sp)                                           |         a0 = *(arg_8ch);
    0x000244a8 lw v0, -0x7fd8(gp)                                        |         v0 = *(gp);
    0x000244ac lw a1, -0x7fd8(gp)                                        |         a1 = *(gp);
                                                                         |         /* str.SQLite_error:___d___s */
    0x000244b0 addiu v0, v0, 0x908                                       |         v0 += 0x908;
    0x000244b4 sw v0, 0x14(sp)                                           |         *(var_14h) = v0;
    0x000244b8 lw v0, -0x7fd8(gp)                                        |         v0 = *(gp);
    0x000244bc lw t9, -0x7df8(gp)                                        |         t9 = sym.set_error;
                                                                         |         /* str.DatabaseError */
    0x000244c0 addiu v0, v0, -0x2648                                     |         v0 += -0x2648;
    0x000244c4 sw s2, 0x18(sp)                                           |         *(var_18h) = s2;
    0x000244c8 sw v0, 0x10(sp)                                           |         *(var_10h) = v0;
    0x000244cc move a3, s0                                               |         a3 = s0;
    0x000244d0 addiu a2, zero, 0x12d8                                    |         a2 = 0x12d8;
                                                                         |         /* esilref: 'database_remove_recording_blocks_by_time_iso8601' */
    0x000244d4 addiu a1, a1, 0x261c                                      |         a1 += 0x261c;
    0x000244d8 bal 0x422c0                                               |         sym_set_error ();
    0x000244dc lw gp, 0x28(sp)                                           |         gp = *(var_28h);
    0x000244e0 b 0x24400                                                 |         
                                                                         |     } while (1);
                                                                         | label_8:
    0x000244e4 lw t9, -0x75a8(gp)                                        |     t9 = sym.imp.g_string_free;
                                                                         |     if (s0 != 0) {
    0x000244e8 bnez s0, 0x2444c                                          |         goto label_1;
                                                                         |     }
                                                                         | label_11:
    0x000244ec move a0, s1                                               |     a0 = s1;
    0x000244f0 addiu a1, zero, 1                                         |     a1 = 1;
    0x000244f4 jalr t9                                                   |     t9 ();
    0x000244f8 addiu s1, zero, 1                                         |     s1 = 1;
    0x000244fc lw gp, 0x28(sp)                                           |     gp = *(var_28h);
    0x00024500 b 0x24400                                                 |     goto label_2;
                                                                         | label_6:
    0x00024504 lw t9, -0x75a8(gp)                                        |     t9 = sym.imp.g_string_free;
    0x00024508 move a0, s1                                               |     a0 = s1;
    0x0002450c addiu a1, zero, 1                                         |     a1 = 1;
    0x00024510 jalr t9                                                   |     t9 ();
    0x00024514 addiu s1, zero, 1                                         |     s1 = 1;
    0x00024518 lw gp, 0x28(sp)                                           |     gp = *(var_28h);
                                                                         |     if (s0 == 0) {
    0x0002451c beqz s0, 0x24400                                          |         goto label_2;
                                                                         |     }
    0x00024520 lw s2, 0x50(sp)                                           |     s2 = *(var_50h);
    0x00024524 b 0x24464                                                 |     goto label_3;
                                                                         | }
    ; assembly                                                                       | /* r2dec pseudo code output */
                                                                                     | /* /logs/firmware/unblob_extracted/firmware_extract/4325012-58052244.squashfs_v4_le_extract/usr/bin/indexer @ 0x24528 */
                                                                                     | #include <stdint.h>
                                                                                     |  
    ; (fcn) sym.database_remove_recording_group_blocks_before_time_iso8601 ()        | void database_remove_recording_group_blocks_before_time_iso8601 () {
    0x00024528 lui gp, 6                                                             |     
    0x0002452c addiu gp, gp, 0x1bd8                                                  |     
    0x00024530 addu gp, gp, t9                                                       |     gp += t9;
    0x00024534 addiu sp, sp, -0x50                                                   |     
    0x00024538 sw s1, 0x2c(sp)                                                       |     *(var_2ch) = s1;
    0x0002453c lw s1, -0x7fd4(gp)                                                    |     s1 = *((gp - 8181));
    0x00024540 sw gp, 0x20(sp)                                                       |     *(var_20h) = gp;
    0x00024544 sw ra, 0x4c(sp)                                                       |     *(var_4ch) = ra;
    0x00024548 lw v0, -0xf48(s1)                                                     |     v0 = *((s1 - 978));
    0x0002454c sw fp, 0x48(sp)                                                       |     *(var_48h) = fp;
    0x00024550 sw s7, 0x44(sp)                                                       |     *(var_44h) = s7;
    0x00024554 sw s6, 0x40(sp)                                                       |     *(var_40h) = s6;
    0x00024558 sw s5, 0x3c(sp)                                                       |     *(var_3ch) = s5;
    0x0002455c sw s4, 0x38(sp)                                                       |     *(var_38h) = s4;
    0x00024560 sw s3, 0x34(sp)                                                       |     *(var_34h) = s3;
    0x00024564 sw s2, 0x30(sp)                                                       |     *(var_30h) = s2;
    0x00024568 sw s0, 0x28(sp)                                                       |     *(var_28h) = s0;
                                                                                     |     if (v0 == 0) {
    0x0002456c beql v0, zero, 0x24798                                                |         goto label_1;
                                                                                     |     }
    0x00024570 lw v0, -0x7fd8(gp)                                                    |     v0 = *(gp);
    0x00024574 move s3, a1                                                           |     s3 = a1;
                                                                                     |     if (a1 == 0) {
    0x00024578 beqz a1, 0x247c0                                                      |         goto label_2;
                                                                                     |     }
    0x0002457c move s2, a0                                                           |     s2 = a0;
                                                                                     |     if (a0 == 0) {
    0x00024580 beqz a0, 0x247ec                                                      |         goto label_3;
                                                                                     |     }
    0x00024584 lw t9, -0x7ca4(gp)                                                    |     t9 = sym.validate_iso8601_times;
    0x00024588 move s4, a2                                                           |     s4 = a2;
    0x0002458c move a1, s4                                                           |     a1 = s4;
    0x00024590 move a2, zero                                                         |     a2 = 0;
    0x00024594 move a0, zero                                                         |     a0 = 0;
    0x00024598 move s5, a3                                                           |     s5 = a3;
    0x0002459c bal 0x42124                                                           |     sym_validate_iso8601_times ();
    0x000245a0 move s0, v0                                                           |     s0 = v0;
    0x000245a4 lw gp, 0x20(sp)                                                       |     gp = *(var_20h);
                                                                                     |     if (v0 == 0) {
    0x000245a8 bnez v0, 0x245e0                                                      |         
    0x000245ac lw ra, 0x4c(sp)                                                       |         ra = *(var_4ch);
    0x000245b0 move v0, s0                                                           |         v0 = s0;
    0x000245b4 lw fp, 0x48(sp)                                                       |         fp = *(var_48h);
    0x000245b8 lw s7, 0x44(sp)                                                       |         s7 = *(var_44h);
    0x000245bc lw s6, 0x40(sp)                                                       |         s6 = *(var_40h);
    0x000245c0 lw s5, 0x3c(sp)                                                       |         s5 = *(var_3ch);
    0x000245c4 lw s4, 0x38(sp)                                                       |         s4 = *(var_38h);
    0x000245c8 lw s3, 0x34(sp)                                                       |         s3 = *(var_34h);
    0x000245cc lw s2, 0x30(sp)                                                       |         s2 = *(var_30h);
    0x000245d0 lw s1, 0x2c(sp)                                                       |         s1 = *(var_2ch);
    0x000245d4 lw s0, 0x28(sp)                                                       |         s0 = *(var_28h);
    0x000245d8 addiu sp, sp, 0x50                                                    |         
    0x000245dc jr ra                                                                 |         return v0;
                                                                                     |     }
    0x000245e0 lw s6, -0x7fd4(gp)                                                    |     s6 = *((gp - 8181));
    0x000245e4 lw t9, -0x7688(gp)                                                    |     t9 = sym.imp.g_rec_mutex_lock;
    0x000245e8 addiu a0, s6, -0xf58                                                  |     a0 = s6 + -0xf58;
    0x000245ec jalr t9                                                               |     t9 ();
    0x000245f0 lw gp, 0x20(sp)                                                       |     gp = *(var_20h);
    0x000245f4 move a0, s2                                                           |     a0 = s2;
    0x000245f8 lw t9, -0x7d2c(gp)                                                    |     t9 = *(gp);
                                                                                     |     /* fcn.0001b5ac */
    0x000245fc addiu t9, t9, -0x4a54                                                 |     t9 += -0x4a54;
    0x00024600 move a1, s5                                                           |     a1 = s5;
    0x00024604 bal 0x1b5ac                                                           |     fcn_0001b5ac ();
    0x00024608 move s2, v0                                                           |     s2 = v0;
    0x0002460c lw gp, 0x20(sp)                                                       |     gp = *(var_20h);
                                                                                     |     if (v0 == 0) {
    0x00024610 beqz v0, 0x24890                                                      |         goto label_4;
                                                                                     |     }
    0x00024614 lw s0, -0x7fd8(gp)                                                    |     s0 = *(gp);
    0x00024618 lw t9, -0x71b4(gp)                                                    |     t9 = sym.imp.g_string_new;
    0x0002461c addiu a0, s0, 0x403c                                                  |     a0 = s0 + 0x403c;
    0x00024620 jalr t9                                                               |     t9 ();
    0x00024624 lw gp, 0x20(sp)                                                       |     gp = *(var_20h);
    0x00024628 addiu a0, s0, 0x403c                                                  |     a0 = s0 + 0x403c;
    0x0002462c lw t9, -0x71b4(gp)                                                    |     t9 = sym.imp.g_string_new;
    0x00024630 move s7, v0                                                           |     s7 = v0;
    0x00024634 jalr t9                                                               |     t9 ();
    0x00024638 lw gp, 0x20(sp)                                                       |     gp = *(var_20h);
    0x0002463c lw v1, (s2)                                                           |     v1 = *(s2);
    0x00024640 move a2, s4                                                           |     a2 = s4;
    0x00024644 lw a1, -0x7fd8(gp)                                                    |     a1 = *(gp);
    0x00024648 lw t9, -0x772c(gp)                                                    |     t9 = sym.imp.g_string_append_printf
    0x0002464c move a0, v0                                                           |     a0 = v0;
                                                                                     |     /* str.blocks.starttime____s_AND_blocks.stoptime_IS_NOT_NULL_AND_blocks.recording_id_IN__ */
    0x00024650 addiu a1, a1, 0x10f0                                                  |     a1 += 0x10f0;
    0x00024654 lw s4, 4(v1)                                                          |     s4 = *((v1 + 1));
    0x00024658 move s0, v0                                                           |     s0 = v0;
    0x0002465c jalr t9                                                               |     t9 ();
    0x00024660 lw gp, 0x20(sp)                                                       |     gp = *(var_20h);
    0x00024664 move a1, s3                                                           |     a1 = s3;
    0x00024668 lw a0, -0x7fd8(gp)                                                    |     a0 = *(gp);
    0x0002466c lw t9, -0x7328(gp)                                                    |     t9 = sym.imp.g_strdup_printf
                                                                                     |     /* str.recording_group_id_s */
    0x00024670 addiu a0, a0, 0x1148                                                  |     a0 += 0x1148;
    0x00024674 jalr t9                                                               |     t9 ();
    0x00024678 lw gp, 0x20(sp)                                                       |     gp = *(var_20h);
    0x0002467c move a3, v0                                                           |     a3 = v0;
    0x00024680 move a0, s4                                                           |     a0 = s4;
    0x00024684 lw a2, -0x7fd8(gp)                                                    |     a2 = *(gp);
    0x00024688 lw a1, -0x7fd8(gp)                                                    |     a1 = *(gp);
    0x0002468c lw t9, -0x7cc8(gp)                                                    |     t9 = sym.sql_select_column_from_table_condition;
                                                                                     |     /* esilref: 'recording_id' */
    0x00024690 addiu a2, a2, 0x78c8                                                  |     a2 += 0x78c8;
                                                                                     |     /* str.recording_groups */
    0x00024694 addiu a1, a1, 0xa24                                                   |     a1 += 0xa24;
    0x00024698 move fp, v0                                                           |     fp = v0;
    0x0002469c bal 0x3d9a0                                                           |     sym_sql_select_column_from_table_condition ();
    0x000246a0 lw gp, 0x20(sp)                                                       |     gp = *(var_20h);
    0x000246a4 move a0, fp                                                           |     a0 = fp;
    0x000246a8 lw t9, -0x74c8(gp)                                                    |     t9 = *((gp - 7474));
    0x000246ac move s3, v0                                                           |     s3 = v0;
    0x000246b0 jalr t9                                                               |     t9 ();
    0x000246b4 lw gp, 0x20(sp)                                                       |     gp = *(var_20h);
    0x000246b8 lw a2, (s3)                                                           |     a2 = *(s3);
    0x000246bc move a0, s0                                                           |     a0 = s0;
    0x000246c0 lw a1, -0x7fd8(gp)                                                    |     a1 = *(gp);
    0x000246c4 lw t9, -0x772c(gp)                                                    |     t9 = sym.imp.g_string_append_printf
                                                                                     |     /* str.__s_ */
    0x000246c8 addiu a1, a1, 0x1160                                                  |     a1 += 0x1160;
    0x000246cc jalr t9                                                               |     t9 ();
    0x000246d0 lw gp, 0x20(sp)                                                       |     gp = *(var_20h);
    0x000246d4 addiu a1, zero, 1                                                     |     a1 = 1;
    0x000246d8 lw t9, -0x75a8(gp)                                                    |     t9 = sym.imp.g_string_free;
    0x000246dc move a0, s3                                                           |     a0 = s3;
    0x000246e0 jalr t9                                                               |     t9 ();
    0x000246e4 lw gp, 0x20(sp)                                                       |     gp = *(var_20h);
    0x000246e8 lw a2, (s0)                                                           |     a2 = *(s0);
    0x000246ec move a1, s4                                                           |     a1 = s4;
    0x000246f0 lw t9, -0x7d2c(gp)                                                    |     t9 = *(gp);
                                                                                     |     /* fcn.0001bcd8 */
    0x000246f4 addiu t9, t9, -0x4328                                                 |     t9 += -0x4328;
    0x000246f8 move a0, s7                                                           |     a0 = s7;
    0x000246fc bal 0x1bcd8                                                           |     fcn_0001bcd8 ();
    0x00024700 lw gp, 0x20(sp)                                                       |     gp = *(var_20h);
    0x00024704 lw a1, (s7)                                                           |     a1 = *(s7);
    0x00024708 move a3, zero                                                         |     a3 = 0;
    0x0002470c lw t9, -0x7d2c(gp)                                                    |     t9 = *(gp);
    0x00024710 move a2, zero                                                         |     a2 = 0;
                                                                                     |     /* fcn.00019f9c */
    0x00024714 addiu t9, t9, -0x6064                                                 |     t9 += -0x6064;
    0x00024718 move a0, s2                                                           |     a0 = s2;
    0x0002471c bal 0x19f9c                                                           |     fcn_00019f9c ();
    0x00024720 lw gp, 0x20(sp)                                                       |     gp = *(var_20h);
    0x00024724 move a0, s0                                                           |     a0 = s0;
    0x00024728 addiu a1, zero, 1                                                     |     a1 = 1;
    0x0002472c lw t9, -0x75a8(gp)                                                    |     t9 = sym.imp.g_string_free;
    0x00024730 move s2, v0                                                           |     s2 = v0;
    0x00024734 jalr t9                                                               |     t9 ();
    0x00024738 lw gp, 0x20(sp)                                                       |     gp = *(var_20h);
    0x0002473c addiu a1, zero, 1                                                     |     a1 = 1;
    0x00024740 move a0, s7                                                           |     a0 = s7;
    0x00024744 lw t9, -0x75a8(gp)                                                    |     t9 = sym.imp.g_string_free;
    0x00024748 sltiu s0, s2, 1                                                       |     s0 = (s2 < 1) ? 1 : 0;
    0x0002474c jalr t9                                                               |     t9 ();
    0x00024750 lw gp, 0x20(sp)                                                       |     gp = *(var_20h);
    0x00024754 bnez s2, 0x24814                                                      |     
                                                                                     |     while (1) {
    0x00024758 lw t9, -0x76cc(gp)                                                    |         t9 = sym.imp.g_rec_mutex_unlock;
    0x0002475c addiu a0, s6, -0xf58                                                  |         a0 = s6 + -0xf58;
    0x00024760 jalr t9                                                               |         t9 ();
                                                                                     | label_0:
    0x00024764 lw ra, 0x4c(sp)                                                       |         ra = *(var_4ch);
    0x00024768 move v0, s0                                                           |         v0 = s0;
    0x0002476c lw fp, 0x48(sp)                                                       |         fp = *(var_48h);
    0x00024770 lw s7, 0x44(sp)                                                       |         s7 = *(var_44h);
    0x00024774 lw s6, 0x40(sp)                                                       |         s6 = *(var_40h);
    0x00024778 lw s5, 0x3c(sp)                                                       |         s5 = *(var_3ch);
    0x0002477c lw s4, 0x38(sp)                                                       |         s4 = *(var_38h);
    0x00024780 lw s3, 0x34(sp)                                                       |         s3 = *(var_34h);
    0x00024784 lw s2, 0x30(sp)                                                       |         s2 = *(var_30h);
    0x00024788 lw s1, 0x2c(sp)                                                       |         s1 = *(var_2ch);
    0x0002478c lw s0, 0x28(sp)                                                       |         s0 = *(var_28h);
    0x00024790 addiu sp, sp, 0x50                                                    |         
    0x00024794 jr ra                                                                 |         return v0;
                                                                                     | label_1:
    0x00024798 lw a3, -0x7fd8(gp)                                                    |         a3 = *(gp);
    0x0002479c lw a1, -0x7fd8(gp)                                                    |         a1 = *(gp);
                                                                                     |         /* str.main_database */
    0x000247a0 addiu v0, v0, 0x894                                                   |         v0 += 0x894;
    0x000247a4 lw t9, -0x76c0(gp)                                                    |         t9 = sym.imp.g_assertion_message_expr;
    0x000247a8 sw v0, 0x10(sp)                                                       |         *(var_10h) = v0;
                                                                                     |         /* str.database_remove_recording_group_blocks_before_time_iso8601 */
    0x000247ac addiu a3, a3, 0x25e0                                                  |         a3 += 0x25e0;
    0x000247b0 addiu a2, zero, 0x12ec                                                |         a2 = 0x12ec;
                                                                                     |         /* str.database_sql_interface.c */
    0x000247b4 addiu a1, a1, 0x820                                                   |         a1 += 0x820;
    0x000247b8 move a0, zero                                                         |         a0 = 0;
    0x000247bc jalr t9                                                               |         t9 ();
                                                                                     | label_2:
    0x000247c0 lw v0, -0x7fd8(gp)                                                    |         v0 = *(gp);
    0x000247c4 lw a3, -0x7fd8(gp)                                                    |         a3 = *(gp);
    0x000247c8 lw a1, -0x7fd8(gp)                                                    |         a1 = *(gp);
                                                                                     |         /* esilref: 'recording_group_id' */
    0x000247cc addiu v0, v0, 0x80c                                                   |         v0 += 0x80c;
    0x000247d0 lw t9, -0x76c0(gp)                                                    |         t9 = sym.imp.g_assertion_message_expr;
    0x000247d4 sw v0, 0x10(sp)                                                       |         *(var_10h) = v0;
                                                                                     |         /* str.database_remove_recording_group_blocks_before_time_iso8601 */
    0x000247d8 addiu a3, a3, 0x25e0                                                  |         a3 += 0x25e0;
    0x000247dc addiu a2, zero, 0x12ed                                                |         a2 = 0x12ed;
                                                                                     |         /* str.database_sql_interface.c */
    0x000247e0 addiu a1, a1, 0x820                                                   |         a1 += 0x820;
    0x000247e4 move a0, zero                                                         |         a0 = 0;
    0x000247e8 jalr t9                                                               |         t9 ();
                                                                                     | label_3:
    0x000247ec lw v0, -0x7fd8(gp)                                                    |         v0 = *(gp);
    0x000247f0 lw a3, -0x7fd8(gp)                                                    |         a3 = *(gp);
    0x000247f4 lw a1, -0x7fd8(gp)                                                    |         a1 = *(gp);
                                                                                     |         /* str.storage_id */
    0x000247f8 addiu v0, v0, -0x3264                                                 |         v0 += -0x3264;
    0x000247fc lw t9, -0x76c0(gp)                                                    |         t9 = sym.imp.g_assertion_message_expr;
    0x00024800 sw v0, 0x10(sp)                                                       |         *(var_10h) = v0;
                                                                                     |         /* str.database_remove_recording_group_blocks_before_time_iso8601 */
    0x00024804 addiu a3, a3, 0x25e0                                                  |         a3 += 0x25e0;
    0x00024808 addiu a2, zero, 0x12ee                                                |         a2 = 0x12ee;
                                                                                     |         /* str.database_sql_interface.c */
    0x0002480c addiu a1, a1, 0x820                                                   |         a1 += 0x820;
    0x00024810 jalr t9                                                               |         t9 ();
    0x00024814 lw t9, -0x7268(gp)                                                    |         t9 = sym.imp.sqlite3_errcode;
    0x00024818 lw a0, -0xf48(s1)                                                     |         a0 = *((s1 - 978));
    0x0002481c jalr t9                                                               |         t9 ();
    0x00024820 lw gp, 0x20(sp)                                                       |         gp = *(var_20h);
    0x00024824 lw a0, -0xf48(s1)                                                     |         a0 = *((s1 - 978));
    0x00024828 lw t9, -0x7268(gp)                                                    |         t9 = sym.imp.sqlite3_errcode;
    0x0002482c move s2, v0                                                           |         s2 = v0;
    0x00024830 jalr t9                                                               |         t9 ();
    0x00024834 lw gp, 0x20(sp)                                                       |         gp = *(var_20h);
    0x00024838 lw a0, -0xf48(s1)                                                     |         a0 = *((s1 - 978));
    0x0002483c lw t9, -0x73f8(gp)                                                    |         t9 = sym.imp.sqlite3_errmsg;
    0x00024840 move s1, v0                                                           |         s1 = v0;
    0x00024844 jalr t9                                                               |         t9 ();
    0x00024848 lw gp, 0x20(sp)                                                       |         gp = *(var_20h);
    0x0002484c sw v0, 0x1c(sp)                                                       |         *(var_1ch) = v0;
    0x00024850 sw s1, 0x18(sp)                                                       |         *(var_18h) = s1;
    0x00024854 lw v0, -0x7fd8(gp)                                                    |         v0 = *(gp);
    0x00024858 lw a1, -0x7fd8(gp)                                                    |         a1 = *(gp);
                                                                                     |         /* str.SQLite_error:___d___s */
    0x0002485c addiu v0, v0, 0x908                                                   |         v0 += 0x908;
    0x00024860 sw v0, 0x14(sp)                                                       |         *(var_14h) = v0;
    0x00024864 lw v0, -0x7fd8(gp)                                                    |         v0 = *(gp);
    0x00024868 lw t9, -0x7df8(gp)                                                    |         t9 = sym.set_error;
                                                                                     |         /* str.DatabaseError */
    0x0002486c addiu v0, v0, -0x2648                                                 |         v0 += -0x2648;
    0x00024870 sw v0, 0x10(sp)                                                       |         *(var_10h) = v0;
    0x00024874 move a3, s2                                                           |         a3 = s2;
    0x00024878 addiu a2, zero, 0x1316                                                |         a2 = 0x1316;
                                                                                     |         /* esilref: 'database_remove_recording_group_blocks_before_time_iso8601' */
    0x0002487c addiu a1, a1, 0x25a4                                                  |         a1 += 0x25a4;
    0x00024880 move a0, s5                                                           |         a0 = s5;
    0x00024884 bal 0x422c0                                                           |         sym_set_error ();
    0x00024888 lw gp, 0x20(sp)                                                       |         gp = *(var_20h);
    0x0002488c b 0x24758                                                             |         
                                                                                     |     }
                                                                                     | label_4:
    0x00024890 lw t9, -0x76cc(gp)                                                    |     t9 = sym.imp.g_rec_mutex_unlock;
    0x00024894 addiu a0, s6, -0xf58                                                  |     a0 = s6 + -0xf58;
    0x00024898 jalr t9                                                               |     t9 ();
    0x0002489c move s0, zero                                                         |     s0 = 0;
    0x000248a0 b 0x24764                                                             |     goto label_0;
                                                                                     | }
    ; assembly                                       | /* r2dec pseudo code output */
                                                     | /* /logs/firmware/unblob_extracted/firmware_extract/4325012-58052244.squashfs_v4_le_extract/usr/bin/indexer @ 0x1e7f0 */
                                                     | #include <stdint.h>
                                                     |  
    ; (fcn) sym.database_remove_recordings ()        | void database_remove_recordings () {
    0x0001e7f0 lui gp, 6                             |     
    0x0001e7f4 addiu gp, gp, 0x7910                  |     
    0x0001e7f8 addu gp, gp, t9                       |     gp += t9;
    0x0001e7fc addiu sp, sp, -0x80                   |     
    0x0001e800 lw t9, -0x747c(gp)                    |     t9 = sym.imp.g_string_sized_new;
    0x0001e804 sw s1, 0x5c(sp)                       |     *(var_5ch) = s1;
    0x0001e808 lw s1, -0x7fd4(gp)                    |     s1 = *((gp - 8181));
    0x0001e80c sw gp, 0x20(sp)                       |     *(var_20h) = gp;
    0x0001e810 sw ra, 0x7c(sp)                       |     *(var_7ch) = ra;
    0x0001e814 sw s3, 0x64(sp)                       |     *(var_64h) = s3;
    0x0001e818 sw s2, 0x60(sp)                       |     *(var_60h) = s2;
    0x0001e81c sw s0, 0x58(sp)                       |     *(var_58h) = s0;
    0x0001e820 sw a2, 0x88(sp)                       |     *(arg_88h) = a2;
    0x0001e824 sw fp, 0x78(sp)                       |     *(var_78h) = fp;
    0x0001e828 sw s7, 0x74(sp)                       |     *(var_74h) = s7;
    0x0001e82c sw s6, 0x70(sp)                       |     *(var_70h) = s6;
    0x0001e830 sw s5, 0x6c(sp)                       |     *(var_6ch) = s5;
    0x0001e834 sw s4, 0x68(sp)                       |     *(var_68h) = s4;
    0x0001e838 move s2, a0                           |     s2 = a0;
    0x0001e83c sw s1, 0x54(sp)                       |     *(var_54h) = s1;
    0x0001e840 addiu a0, zero, 0x898                 |     a0 = 0x898;
    0x0001e844 move s0, a1                           |     s0 = a1;
    0x0001e848 jalr t9                               |     t9 ();
    0x0001e84c lw gp, 0x20(sp)                       |     gp = *(var_20h);
    0x0001e850 addiu a0, zero, 0x2198                |     a0 = 0x2198;
    0x0001e854 lw t9, -0x747c(gp)                    |     t9 = sym.imp.g_string_sized_new;
    0x0001e858 move s3, v0                           |     s3 = v0;
    0x0001e85c jalr t9                               |     t9 ();
    0x0001e860 lw v1, -0xf48(s1)                     |     v1 = *((s1 - 978));
    0x0001e864 lw gp, 0x20(sp)                       |     gp = *(var_20h);
                                                     |     if (v1 == 0) {
    0x0001e868 beqz v1, 0x1ec28                      |         goto label_2;
                                                     |     }
    0x0001e86c lw t9, -0x7d24(gp)                    |     t9 = sym.sql_valid_storage_name;
    0x0001e870 lw a1, 0x88(sp)                       |     a1 = *(arg_88h);
    0x0001e874 move a0, s0                           |     a0 = s0;
    0x0001e878 move s1, v0                           |     s1 = v0;
    0x0001e87c bal 0x3a5d4                           |     sym_sql_valid_storage_name ();
    0x0001e880 lw gp, 0x20(sp)                       |     gp = *(var_20h);
                                                     |     if (v0 != 0) {
    0x0001e884 bnez v0, 0x1e900                      |         goto label_3;
                                                     |     }
    0x0001e888 lw v0, -0x7fd4(gp)                    |     v0 = *((gp - 8181));
    0x0001e88c sw v0, 0x50(sp)                       |     *(var_50h) = v0;
                                                     |     do {
    0x0001e890 move s0, zero                         |         s0 = 0;
                                                     | label_1:
    0x0001e894 lw t9, -0x75a8(gp)                    |         t9 = sym.imp.g_string_free;
    0x0001e898 move a0, s1                           |         a0 = s1;
    0x0001e89c addiu a1, zero, 1                     |         a1 = 1;
    0x0001e8a0 jalr t9                               |         t9 ();
    0x0001e8a4 lw gp, 0x20(sp)                       |         gp = *(var_20h);
    0x0001e8a8 addiu a1, zero, 1                     |         a1 = 1;
    0x0001e8ac lw t9, -0x75a8(gp)                    |         t9 = sym.imp.g_string_free;
    0x0001e8b0 move a0, s3                           |         a0 = s3;
    0x0001e8b4 jalr t9                               |         t9 ();
    0x0001e8b8 lw gp, 0x20(sp)                       |         gp = *(var_20h);
    0x0001e8bc lw v0, 0x50(sp)                       |         v0 = *(var_50h);
    0x0001e8c0 lw t9, -0x76cc(gp)                    |         t9 = sym.imp.g_rec_mutex_unlock;
    0x0001e8c4 addiu a0, v0, -0xf58                  |         a0 = v0 + -0xf58;
    0x0001e8c8 jalr t9                               |         t9 ();
    0x0001e8cc lw ra, 0x7c(sp)                       |         ra = *(var_7ch);
    0x0001e8d0 move v0, s0                           |         v0 = s0;
    0x0001e8d4 lw fp, 0x78(sp)                       |         fp = *(var_78h);
    0x0001e8d8 lw s7, 0x74(sp)                       |         s7 = *(var_74h);
    0x0001e8dc lw s6, 0x70(sp)                       |         s6 = *(var_70h);
    0x0001e8e0 lw s5, 0x6c(sp)                       |         s5 = *(var_6ch);
    0x0001e8e4 lw s4, 0x68(sp)                       |         s4 = *(var_68h);
    0x0001e8e8 lw s3, 0x64(sp)                       |         s3 = *(var_64h);
    0x0001e8ec lw s2, 0x60(sp)                       |         s2 = *(var_60h);
    0x0001e8f0 lw s1, 0x5c(sp)                       |         s1 = *(var_5ch);
    0x0001e8f4 lw s0, 0x58(sp)                       |         s0 = *(var_58h);
    0x0001e8f8 addiu sp, sp, 0x80                    |         
    0x0001e8fc jr ra                                 |         return v0;
                                                     | label_3:
    0x0001e900 lw v0, -0x7fd4(gp)                    |         v0 = *((gp - 8181));
    0x0001e904 lw t9, -0x7688(gp)                    |         t9 = sym.imp.g_rec_mutex_lock;
    0x0001e908 addiu a0, v0, -0xf58                  |         a0 = v0 + -0xf58;
    0x0001e90c sw v0, 0x50(sp)                       |         *(var_50h) = v0;
    0x0001e910 jalr t9                               |         t9 ();
    0x0001e914 lw gp, 0x20(sp)                       |         gp = *(var_20h);
    0x0001e918 lw a1, 0x88(sp)                       |         a1 = *(arg_88h);
    0x0001e91c lw t9, -0x7d2c(gp)                    |         t9 = *(gp);
                                                     |         /* fcn.0001b5ac */
    0x0001e920 addiu t9, t9, -0x4a54                 |         t9 += -0x4a54;
    0x0001e924 move a0, s0                           |         a0 = s0;
    0x0001e928 bal 0x1b5ac                           |         fcn_0001b5ac ();
    0x0001e92c move fp, v0                           |         fp = v0;
    0x0001e930 lw gp, 0x20(sp)                       |         gp = *(var_20h);
    0x0001e934 beqz v0, 0x1e890                      |         
                                                     |     } while (v0 == 0);
    0x0001e938 lw t9, -0x7d2c(gp)                    |     t9 = *(gp);
    0x0001e93c move a1, s2                           |     a1 = s2;
                                                     |     /* fcn.0001cb90 */
    0x0001e940 addiu t9, t9, -0x3470                 |     t9 += -0x3470;
    0x0001e944 move a0, s3                           |     a0 = s3;
    0x0001e948 bal 0x1cb90                           |     fcn_0001cb90 ();
    0x0001e94c lw gp, 0x20(sp)                       |     gp = *(var_20h);
    0x0001e950 lw v0, -0x7fd8(gp)                    |     v0 = *(gp);
    0x0001e954 lw s7, -0x7fd8(gp)                    |     s7 = *(gp);
    0x0001e958 sw v0, 0x40(sp)                       |     *(var_40h) = v0;
    0x0001e95c lw v0, -0x7fd8(gp)                    |     v0 = *(gp);
    0x0001e960 lw s2, -0x7fd8(gp)                    |     s2 = *(gp);
    0x0001e964 sw v0, 0x3c(sp)                       |     *(var_3ch) = v0;
    0x0001e968 lw v0, -0x7fd8(gp)                    |     v0 = *(gp);
    0x0001e96c lw s6, -0x7fd8(gp)                    |     s6 = *(gp);
    0x0001e970 sw v0, 0x38(sp)                       |     *(var_38h) = v0;
    0x0001e974 lw v0, -0x7fd8(gp)                    |     v0 = *(gp);
    0x0001e978 lw s5, -0x7fd8(gp)                    |     s5 = *(gp);
    0x0001e97c sw v0, 0x44(sp)                       |     *(var_44h) = v0;
    0x0001e980 lw v0, -0x7d2c(gp)                    |     v0 = *(gp);
    0x0001e984 lw s4, -0x7f50(gp)                    |     s4 = *((gp - 8148));
                                                     |     /* fcn.0001b860 */
    0x0001e988 addiu v0, v0, -0x47a0                 |     v0 += -0x47a0;
    0x0001e98c sw v0, 0x48(sp)                       |     *(var_48h) = v0;
    0x0001e990 lw v0, -0x7d2c(gp)                    |     v0 = *(gp);
                                                     |     /* esilref: 'IN' */
    0x0001e994 addiu s2, s2, 0xbb8                   |     s2 += 0xbb8;
                                                     |     /* fcn.00019f9c */
    0x0001e998 addiu v0, v0, -0x6064                 |     v0 += -0x6064;
    0x0001e99c sw v0, 0x4c(sp)                       |     *(var_4ch) = v0;
                                                     |     /* str.filename */
    0x0001e9a0 addiu v0, s7, 0x7dc                   |     v0 = s7 + 0x7dc;
                                                     |     /* esilref: 'recordings' */
    0x0001e9a4 addiu s6, s6, -0x21e8                 |     s6 += -0x21e8;
                                                     |     /* esilref: 'blocks' */
    0x0001e9a8 addiu s5, s5, 0x7124                  |     s5 += 0x7124;
    0x0001e9ac sw v0, 0x28(sp)                       |     *(var_28h) = v0;
                                                     |     /* esilref: 'id' */
    0x0001e9b0 addiu s4, s4, -0x6dbc                 |     s4 += -0x6dbc;
    0x0001e9b4 lw v0, (fp)                           |     v0 = *(fp);
                                                     |     do {
    0x0001e9b8 lw t9, -0x747c(gp)                    |         t9 = sym.imp.g_string_sized_new;
    0x0001e9bc addiu a0, zero, 0x8fc                 |         a0 = 0x8fc;
    0x0001e9c0 lw s0, 4(v0)                          |         s0 = *((v0 + 1));
    0x0001e9c4 jalr t9                               |         t9 ();
    0x0001e9c8 lw gp, 0x20(sp)                       |         gp = *(var_20h);
    0x0001e9cc move s7, v0                           |         s7 = v0;
    0x0001e9d0 lw v0, 0x40(sp)                       |         v0 = *(var_40h);
    0x0001e9d4 lw a2, (s3)                           |         a2 = *(s3);
    0x0001e9d8 lw t9, -0x772c(gp)                    |         t9 = sym.imp.g_string_append_printf
    0x0001e9dc addiu a1, v0, 0xdd8                   |         a1 = v0 + 0xdd8;
    0x0001e9e0 move a0, s7                           |         a0 = s7;
    0x0001e9e4 jalr t9                               |         t9 ();
    0x0001e9e8 lw gp, 0x20(sp)                       |         gp = *(var_20h);
    0x0001e9ec lw v0, 0x3c(sp)                       |         v0 = *(var_3ch);
    0x0001e9f0 lw a3, (s7)                           |         a3 = *(s7);
    0x0001e9f4 lw t9, -0x7cd0(gp)                    |         t9 = sym.sql_copy_recordings;
    0x0001e9f8 move a2, s6                           |         a2 = s6;
    0x0001e9fc move a0, s0                           |         a0 = s0;
    0x0001ea00 addiu a1, v0, 0x944                   |         a1 = v0 + 0x944;
    0x0001ea04 bal 0x3c57c                           |         sym_sql_copy_recordings ();
    0x0001ea08 lw gp, 0x20(sp)                       |         gp = *(var_20h);
    0x0001ea0c move a1, v0                           |         a1 = v0;
    0x0001ea10 lw t9, -0x7d1c(gp)                    |         t9 = sym.string_merge_g_strings;
    0x0001ea14 move a0, s1                           |         a0 = s1;
    0x0001ea18 jalr t9                               |         t9 ();
    0x0001ea1c lw gp, 0x20(sp)                       |         gp = *(var_20h);
    0x0001ea20 lw v0, 0x38(sp)                       |         v0 = *(var_38h);
    0x0001ea24 lw a3, (s7)                           |         a3 = *(s7);
    0x0001ea28 addiu a1, v0, 0x958                   |         a1 = v0 + 0x958;
    0x0001ea2c lw t9, -0x7ccc(gp)                    |         t9 = sym.sql_copy_blocks;
    0x0001ea30 addiu v0, zero, 1                     |         v0 = 1;
    0x0001ea34 move a2, s5                           |         a2 = s5;
    0x0001ea38 move a0, s0                           |         a0 = s0;
    0x0001ea3c sw v0, 0x10(sp)                       |         *(var_10h) = v0;
    0x0001ea40 bal 0x3c718                           |         sym_sql_copy_blocks ();
    0x0001ea44 lw gp, 0x20(sp)                       |         gp = *(var_20h);
    0x0001ea48 move a1, v0                           |         a1 = v0;
    0x0001ea4c lw t9, -0x7d1c(gp)                    |         t9 = sym.string_merge_g_strings;
    0x0001ea50 move a0, s1                           |         a0 = s1;
    0x0001ea54 jalr t9                               |         t9 ();
    0x0001ea58 lw gp, 0x20(sp)                       |         gp = *(var_20h);
    0x0001ea5c sw zero, 0x18(sp)                     |         *(var_18h) = 0;
    0x0001ea60 sw s2, 0x14(sp)                       |         *(var_14h) = s2;
    0x0001ea64 lw v0, (s3)                           |         v0 = *(s3);
    0x0001ea68 lw a3, 0x28(sp)                       |         a3 = *(var_28h);
    0x0001ea6c lw t9, -0x7ce0(gp)                    |         t9 = sym.sql_select_column_from_table;
    0x0001ea70 move a0, s0                           |         a0 = s0;
    0x0001ea74 move a2, s4                           |         a2 = s4;
    0x0001ea78 move a1, s6                           |         a1 = s6;
    0x0001ea7c sw v0, 0x10(sp)                       |         *(var_10h) = v0;
    0x0001ea80 bal 0x3d954                           |         sym_sql_select_column_from_table ();
    0x0001ea84 lw gp, 0x20(sp)                       |         gp = *(var_20h);
    0x0001ea88 move v1, v0                           |         v1 = v0;
    0x0001ea8c sw zero, 0x18(sp)                     |         *(var_18h) = 0;
    0x0001ea90 sw s2, 0x14(sp)                       |         *(var_14h) = s2;
    0x0001ea94 lw v0, (v0)                           |         v0 = *(v0);
    0x0001ea98 sw v1, 0x34(sp)                       |         *(var_34h) = v1;
    0x0001ea9c lw v1, 0x44(sp)                       |         v1 = *(var_44h);
    0x0001eaa0 lw t9, -0x7ce0(gp)                    |         t9 = sym.sql_select_column_from_table;
    0x0001eaa4 addiu a3, v1, 0x78c8                  |         a3 = v1 + 0x78c8;
    0x0001eaa8 move a2, s4                           |         a2 = s4;
    0x0001eaac move a1, s5                           |         a1 = s5;
    0x0001eab0 move a0, s0                           |         a0 = s0;
    0x0001eab4 sw v0, 0x10(sp)                       |         *(var_10h) = v0;
    0x0001eab8 bal 0x3d954                           |         sym_sql_select_column_from_table ();
    0x0001eabc lw gp, 0x20(sp)                       |         gp = *(var_20h);
    0x0001eac0 lw a0, (v0)                           |         a0 = *(v0);
    0x0001eac4 lw t9, -0x7cdc(gp)                    |         t9 = sym.string_parenthesize;
    0x0001eac8 sw v0, 0x30(sp)                       |         *(var_30h) = v0;
    0x0001eacc jalr t9                               |         t9 ();
    0x0001ead0 lw gp, 0x20(sp)                       |         gp = *(var_20h);
    0x0001ead4 move a3, v0                           |         a3 = v0;
    0x0001ead8 move a2, s4                           |         a2 = s4;
    0x0001eadc lw t9, -0x7cd8(gp)                    |         t9 = sym.sql_delete_from_table;
    0x0001eae0 move a0, s0                           |         a0 = s0;
    0x0001eae4 move a1, s5                           |         a1 = s5;
    0x0001eae8 sw v0, 0x2c(sp)                       |         *(var_2ch) = v0;
    0x0001eaec sw s2, 0x10(sp)                       |         *(var_10h) = s2;
    0x0001eaf0 bal 0x3cfc0                           |         sym_sql_delete_from_table ();
    0x0001eaf4 lw gp, 0x20(sp)                       |         gp = *(var_20h);
    0x0001eaf8 move a1, v0                           |         a1 = v0;
    0x0001eafc lw t9, -0x7d1c(gp)                    |         t9 = sym.string_merge_g_strings;
    0x0001eb00 move a0, s1                           |         a0 = s1;
    0x0001eb04 jalr t9                               |         t9 ();
    0x0001eb08 lw gp, 0x20(sp)                       |         gp = *(var_20h);
    0x0001eb0c lw t1, 0x2c(sp)                       |         t1 = *(var_2ch);
    0x0001eb10 lw t9, -0x74c8(gp)                    |         t9 = *((gp - 7474));
    0x0001eb14 move a0, t1                           |         a0 = t1;
    0x0001eb18 jalr t9                               |         t9 ();
    0x0001eb1c lw gp, 0x20(sp)                       |         gp = *(var_20h);
    0x0001eb20 lw t0, 0x30(sp)                       |         t0 = *(var_30h);
    0x0001eb24 addiu a1, zero, 1                     |         a1 = 1;
    0x0001eb28 lw t9, -0x75a8(gp)                    |         t9 = sym.imp.g_string_free;
    0x0001eb2c move a0, t0                           |         a0 = t0;
    0x0001eb30 jalr t9                               |         t9 ();
    0x0001eb34 lw gp, 0x20(sp)                       |         gp = *(var_20h);
    0x0001eb38 lw v1, 0x34(sp)                       |         v1 = *(var_34h);
    0x0001eb3c addiu a1, zero, 1                     |         a1 = 1;
    0x0001eb40 lw t9, -0x75a8(gp)                    |         t9 = sym.imp.g_string_free;
    0x0001eb44 move a0, v1                           |         a0 = v1;
    0x0001eb48 jalr t9                               |         t9 ();
    0x0001eb4c lw gp, 0x20(sp)                       |         gp = *(var_20h);
    0x0001eb50 lw t9, -0x7cdc(gp)                    |         t9 = sym.string_parenthesize;
    0x0001eb54 lw a0, (s3)                           |         a0 = *(s3);
    0x0001eb58 jalr t9                               |         t9 ();
    0x0001eb5c lw gp, 0x20(sp)                       |         gp = *(var_20h);
    0x0001eb60 lw a2, 0x28(sp)                       |         a2 = *(var_28h);
    0x0001eb64 move a3, v0                           |         a3 = v0;
    0x0001eb68 lw t9, -0x7cd8(gp)                    |         t9 = sym.sql_delete_from_table;
    0x0001eb6c move a0, s0                           |         a0 = s0;
    0x0001eb70 move a1, s6                           |         a1 = s6;
    0x0001eb74 sw v0, 0x2c(sp)                       |         *(var_2ch) = v0;
    0x0001eb78 sw s2, 0x10(sp)                       |         *(var_10h) = s2;
    0x0001eb7c bal 0x3cfc0                           |         sym_sql_delete_from_table ();
    0x0001eb80 lw gp, 0x20(sp)                       |         gp = *(var_20h);
    0x0001eb84 move a1, v0                           |         a1 = v0;
    0x0001eb88 lw t9, -0x7d1c(gp)                    |         t9 = sym.string_merge_g_strings;
    0x0001eb8c move a0, s1                           |         a0 = s1;
    0x0001eb90 jalr t9                               |         t9 ();
    0x0001eb94 lw gp, 0x20(sp)                       |         gp = *(var_20h);
    0x0001eb98 lw v1, 0x2c(sp)                       |         v1 = *(var_2ch);
    0x0001eb9c lw t9, -0x74c8(gp)                    |         t9 = *((gp - 7474));
    0x0001eba0 move a0, v1                           |         a0 = v1;
    0x0001eba4 jalr t9                               |         t9 ();
    0x0001eba8 lw t9, 0x48(sp)                       |         t9 = *(var_48h);
    0x0001ebac move a0, s0                           |         a0 = s0;
    0x0001ebb0 jalr t9                               |         t9 ();
    0x0001ebb4 lw gp, 0x20(sp)                       |         gp = *(var_20h);
    0x0001ebb8 move a1, v0                           |         a1 = v0;
    0x0001ebbc lw t9, -0x7d1c(gp)                    |         t9 = sym.string_merge_g_strings;
    0x0001ebc0 move a0, s1                           |         a0 = s1;
    0x0001ebc4 jalr t9                               |         t9 ();
    0x0001ebc8 lw a1, (s1)                           |         a1 = *(s1);
    0x0001ebcc lw t9, 0x4c(sp)                       |         t9 = *(var_4ch);
    0x0001ebd0 move a3, zero                         |         a3 = 0;
    0x0001ebd4 move a2, zero                         |         a2 = 0;
    0x0001ebd8 move a0, fp                           |         a0 = fp;
    0x0001ebdc jalr t9                               |         t9 ();
    0x0001ebe0 lw gp, 0x20(sp)                       |         gp = *(var_20h);
    0x0001ebe4 move s0, v0                           |         s0 = v0;
    0x0001ebe8 addiu a1, zero, 1                     |         a1 = 1;
    0x0001ebec lw t9, -0x75a8(gp)                    |         t9 = sym.imp.g_string_free;
    0x0001ebf0 move a0, s7                           |         a0 = s7;
    0x0001ebf4 jalr t9                               |         t9 ();
    0x0001ebf8 lw gp, 0x20(sp)                       |         gp = *(var_20h);
                                                     |         if (s0 == 0) {
    0x0001ebfc beqz s0, 0x1ec14                      |             goto label_4;
                                                     |         }
    0x0001ec00 lw v0, 0x54(sp)                       |         v0 = *(var_54h);
    0x0001ec04 b 0x1ec54                             |         goto label_5;
                                                     | label_0:
    0x0001ec08 lw v0, 8(v0)                          |         v0 = *((v0 + 2));
    0x0001ec0c beql v0, zero, 0x1e9b8                |         
                                                     |     } while (v0 == 0);
    0x0001ec10 lw v0, (fp)                           |     v0 = *(fp);
                                                     | label_4:
    0x0001ec14 lw fp, 4(fp)                          |     fp = *(arg_4h);
    0x0001ec18 lw v0, (fp)                           |     v0 = *(fp);
                                                     |     if (fp == 0) {
    0x0001ec1c bnel fp, zero, 0x1ec08                |         goto label_0;
                                                     |     }
    0x0001ec20 addiu s0, zero, 1                     |     s0 = 1;
    0x0001ec24 b 0x1e894                             |     goto label_1;
                                                     | label_2:
    0x0001ec28 lw v0, -0x7fd8(gp)                    |     v0 = *(gp);
    0x0001ec2c lw a3, -0x7fd8(gp)                    |     a3 = *(gp);
    0x0001ec30 lw a1, -0x7fd8(gp)                    |     a1 = *(gp);
                                                     |     /* str.main_database */
    0x0001ec34 addiu v0, v0, 0x894                   |     v0 += 0x894;
    0x0001ec38 lw t9, -0x76c0(gp)                    |     t9 = sym.imp.g_assertion_message_expr;
    0x0001ec3c sw v0, 0x10(sp)                       |     *(var_10h) = v0;
                                                     |     /* str.database_remove_recordings */
    0x0001ec40 addiu a3, a3, 0x2f54                  |     a3 += 0x2f54;
    0x0001ec44 addiu a2, zero, 0xaca                 |     a2 = 0xaca;
                                                     |     /* str.database_sql_interface.c */
    0x0001ec48 addiu a1, a1, 0x820                   |     a1 += 0x820;
    0x0001ec4c move a0, zero                         |     a0 = 0;
    0x0001ec50 jalr t9                               |     t9 ();
                                                     | label_5:
    0x0001ec54 lw t9, -0x73f8(gp)                    |     t9 = sym.imp.sqlite3_errmsg;
    0x0001ec58 move s0, zero                         |     s0 = 0;
    0x0001ec5c lw a0, -0xf48(v0)                     |     a0 = *((v0 - 978));
    0x0001ec60 jalr t9                               |     t9 ();
    0x0001ec64 lw gp, 0x20(sp)                       |     gp = *(var_20h);
    0x0001ec68 sw v0, 0x18(sp)                       |     *(var_18h) = v0;
    0x0001ec6c lw a0, 0x88(sp)                       |     a0 = *(arg_88h);
    0x0001ec70 lw v0, -0x7fd8(gp)                    |     v0 = *(gp);
    0x0001ec74 lw a1, -0x7fd8(gp)                    |     a1 = *(gp);
                                                     |     /* str.Failed_to_remove_recordings:___s_ */
    0x0001ec78 addiu v0, v0, 0xdec                   |     v0 += 0xdec;
    0x0001ec7c sw v0, 0x14(sp)                       |     *(var_14h) = v0;
    0x0001ec80 lw v0, -0x7fd8(gp)                    |     v0 = *(gp);
    0x0001ec84 lw t9, -0x7df8(gp)                    |     t9 = sym.set_error;
                                                     |     /* str.DatabaseError */
    0x0001ec88 addiu v0, v0, -0x2648                 |     v0 += -0x2648;
    0x0001ec8c sw v0, 0x10(sp)                       |     *(var_10h) = v0;
    0x0001ec90 move a3, zero                         |     a3 = 0;
    0x0001ec94 addiu a2, zero, 0xb0c                 |     a2 = 0xb0c;
                                                     |     /* esilref: 'database_remove_recordings' */
    0x0001ec98 addiu a1, a1, 0x2f38                  |     a1 += 0x2f38;
    0x0001ec9c jalr t9                               |     t9 ();
    0x0001eca0 lw gp, 0x20(sp)                       |     gp = *(var_20h);
    0x0001eca4 b 0x1e894                             |     goto label_1;
                                                     | }
    ; assembly                                                       | /* r2dec pseudo code output */
                                                                     | /* /logs/firmware/unblob_extracted/firmware_extract/4325012-58052244.squashfs_v4_le_extract/usr/bin/indexer @ 0x23f2c */
                                                                     | #include <stdint.h>
                                                                     |  
    ; (fcn) sym.database_remove_recordings_by_time_iso8601 ()        | void database_remove_recordings_by_time_iso8601 () {
    0x00023f2c lui gp, 6                                             |     
    0x00023f30 addiu gp, gp, 0x21d4                                  |     
    0x00023f34 addu gp, gp, t9                                       |     gp += t9;
    0x00023f38 lw v0, -0x7fd4(gp)                                    |     v0 = *((gp - 8181));
    0x00023f3c addiu sp, sp, -0x40                                   |     
    0x00023f40 lw v0, -0xf48(v0)                                     |     v0 = *((v0 - 978));
    0x00023f44 sw gp, 0x20(sp)                                       |     *(var_20h) = gp;
    0x00023f48 sw ra, 0x3c(sp)                                       |     *(var_3ch) = ra;
    0x00023f4c sw s3, 0x38(sp)                                       |     *(var_38h) = s3;
    0x00023f50 sw s2, 0x34(sp)                                       |     *(var_34h) = s2;
    0x00023f54 sw s1, 0x30(sp)                                       |     *(var_30h) = s1;
    0x00023f58 sw s0, 0x2c(sp)                                       |     *(var_2ch) = s0;
    0x00023f5c lw t9, -0x7d24(gp)                                    |     t9 = sym.sql_valid_storage_name;
                                                                     |     if (v0 != 0) {
    0x00023f60 beqz v0, 0x23fec                                      |         
    0x00023f64 move s1, a1                                           |         s1 = a1;
    0x00023f68 lw a1, 0x54(sp)                                       |         a1 = *(arg_54h);
    0x00023f6c move s0, a0                                           |         s0 = a0;
    0x00023f70 move s2, a2                                           |         s2 = a2;
    0x00023f74 move s3, a3                                           |         s3 = a3;
    0x00023f78 bal 0x3a5d4                                           |         sym_sql_valid_storage_name ();
    0x00023f7c lw gp, 0x20(sp)                                       |         gp = *(var_20h);
                                                                     |         if (v0 == 0) {
    0x00023f80 bnez v0, 0x23fa0                                      |             
    0x00023f84 lw ra, 0x3c(sp)                                       |             ra = *(var_3ch);
    0x00023f88 lw s3, 0x38(sp)                                       |             s3 = *(var_38h);
    0x00023f8c lw s2, 0x34(sp)                                       |             s2 = *(var_34h);
    0x00023f90 lw s1, 0x30(sp)                                       |             s1 = *(var_30h);
    0x00023f94 lw s0, 0x2c(sp)                                       |             s0 = *(var_2ch);
    0x00023f98 addiu sp, sp, 0x40                                    |             
    0x00023f9c jr ra                                                 |             return v0;
                                                                     |         }
    0x00023fa0 lw v0, 0x54(sp)                                       |         v0 = *(arg_54h);
    0x00023fa4 lw t9, -0x7d2c(gp)                                    |         t9 = *(gp);
    0x00023fa8 sw v0, 0x18(sp)                                       |         *(var_18h_2) = v0;
    0x00023fac lw v0, 0x50(sp)                                       |         v0 = *(arg_50h);
    0x00023fb0 sw s3, 0x10(sp)                                       |         *(var_10h) = s3;
    0x00023fb4 move a3, s2                                           |         a3 = s2;
    0x00023fb8 move a2, s1                                           |         a2 = s1;
    0x00023fbc move a0, s0                                           |         a0 = s0;
    0x00023fc0 sw v0, 0x14(sp)                                       |         *(var_54h) = v0;
                                                                     |         /* fcn.0001c768 */
    0x00023fc4 addiu t9, t9, -0x3898                                 |         t9 += -0x3898;
    0x00023fc8 move a1, zero                                         |         a1 = 0;
    0x00023fcc bal 0x1c768                                           |         fcn_0001c768 ();
    0x00023fd0 lw ra, 0x3c(sp)                                       |         ra = *(var_3ch);
    0x00023fd4 lw s3, 0x38(sp)                                       |         s3 = *(var_38h);
    0x00023fd8 lw s2, 0x34(sp)                                       |         s2 = *(var_34h);
    0x00023fdc lw s1, 0x30(sp)                                       |         s1 = *(var_30h);
    0x00023fe0 lw s0, 0x2c(sp)                                       |         s0 = *(var_2ch);
    0x00023fe4 addiu sp, sp, 0x40                                    |         
    0x00023fe8 jr ra                                                 |         return v0;
                                                                     |     }
    0x00023fec lw v0, -0x7fd8(gp)                                    |     v0 = *(gp);
    0x00023ff0 lw a3, -0x7fd8(gp)                                    |     a3 = *(gp);
    0x00023ff4 lw a1, -0x7fd8(gp)                                    |     a1 = *(gp);
                                                                     |     /* str.main_database */
    0x00023ff8 addiu v0, v0, 0x894                                   |     v0 += 0x894;
    0x00023ffc lw t9, -0x76c0(gp)                                    |     t9 = sym.imp.g_assertion_message_expr;
    0x00024000 sw v0, 0x10(sp)                                       |     *(var_10h) = v0;
                                                                     |     /* str.database_remove_recordings_by_time_iso8601 */
    0x00024004 addiu a3, a3, 0x2710                                  |     a3 += 0x2710;
    0x00024008 addiu a2, zero, 0x127b                                |     a2 = 0x127b;
                                                                     |     /* str.database_sql_interface.c */
    0x0002400c addiu a1, a1, 0x820                                   |     a1 += 0x820;
    0x00024010 move a0, zero                                         |     a0 = 0;
    0x00024014 jalr t9                                               |     return t9 ();
                                                                     | }
    ; assembly                                                           | /* r2dec pseudo code output */
                                                                         | /* /logs/firmware/unblob_extracted/firmware_extract/4325012-58052244.squashfs_v4_le_extract/usr/bin/indexer @ 0x24018 */
                                                                         | #include <stdint.h>
                                                                         |  
    ; (fcn) sym.database_remove_recordings_by_start_time_iso8601 ()      | void database_remove_recordings_by_start_time_iso8601 () {
    0x00024018 lui gp, 6                                                 |     
    0x0002401c addiu gp, gp, 0x20e8                                      |     
    0x00024020 addu gp, gp, t9                                           |     gp += t9;
    0x00024024 lw v0, -0x7fd4(gp)                                        |     v0 = *((gp - 8181));
    0x00024028 addiu sp, sp, -0x40                                       |     
    0x0002402c lw v0, -0xf48(v0)                                         |     v0 = *((v0 - 978));
    0x00024030 sw gp, 0x20(sp)                                           |     *(var_20h_2) = gp;
    0x00024034 sw ra, 0x3c(sp)                                           |     *(var_3ch_2) = ra;
    0x00024038 sw s3, 0x38(sp)                                           |     *(var_38h_2) = s3;
    0x0002403c sw s2, 0x34(sp)                                           |     *(var_34h_2) = s2;
    0x00024040 sw s1, 0x30(sp)                                           |     *(var_30h_2) = s1;
    0x00024044 sw s0, 0x2c(sp)                                           |     *(var_2ch_2) = s0;
    0x00024048 lw t9, -0x7d24(gp)                                        |     t9 = sym.sql_valid_storage_name;
                                                                         |     if (v0 != 0) {
    0x0002404c beqz v0, 0x240d8                                          |         
    0x00024050 move s1, a1                                               |         s1 = a1;
    0x00024054 lw a1, 0x54(sp)                                           |         a1 = *(var_54h);
    0x00024058 move s0, a0                                               |         s0 = a0;
    0x0002405c move s2, a2                                               |         s2 = a2;
    0x00024060 move s3, a3                                               |         s3 = a3;
    0x00024064 bal 0x3a5d4                                               |         sym_sql_valid_storage_name ();
    0x00024068 lw gp, 0x20(sp)                                           |         gp = *(var_20h_2);
                                                                         |         if (v0 == 0) {
    0x0002406c bnez v0, 0x2408c                                          |             
    0x00024070 lw ra, 0x3c(sp)                                           |             ra = *(var_3ch_2);
    0x00024074 lw s3, 0x38(sp)                                           |             s3 = *(var_38h_2);
    0x00024078 lw s2, 0x34(sp)                                           |             s2 = *(var_34h_2);
    0x0002407c lw s1, 0x30(sp)                                           |             s1 = *(var_30h_2);
    0x00024080 lw s0, 0x2c(sp)                                           |             s0 = *(var_2ch_2);
    0x00024084 addiu sp, sp, 0x40                                        |             
    0x00024088 jr ra                                                     |             return v0;
                                                                         |         }
    0x0002408c lw v0, 0x54(sp)                                           |         v0 = *(var_54h);
    0x00024090 lw t9, -0x7d2c(gp)                                        |         t9 = *(gp);
    0x00024094 sw v0, 0x18(sp)                                           |         *(var_18h) = v0;
    0x00024098 lw v0, 0x50(sp)                                           |         v0 = *(var_10h);
    0x0002409c sw s3, 0x10(sp)                                           |         *(var_10h_2) = s3;
    0x000240a0 move a3, s2                                               |         a3 = s2;
    0x000240a4 move a2, s1                                               |         a2 = s1;
    0x000240a8 move a0, s0                                               |         a0 = s0;
    0x000240ac sw v0, 0x14(sp)                                           |         *(var_14h) = v0;
                                                                         |         /* fcn.0001c768 */
    0x000240b0 addiu t9, t9, -0x3898                                     |         t9 += -0x3898;
    0x000240b4 addiu a1, zero, 1                                         |         a1 = 1;
    0x000240b8 bal 0x1c768                                               |         fcn_0001c768 ();
    0x000240bc lw ra, 0x3c(sp)                                           |         ra = *(var_3ch_2);
    0x000240c0 lw s3, 0x38(sp)                                           |         s3 = *(var_38h_2);
    0x000240c4 lw s2, 0x34(sp)                                           |         s2 = *(var_34h_2);
    0x000240c8 lw s1, 0x30(sp)                                           |         s1 = *(var_30h_2);
    0x000240cc lw s0, 0x2c(sp)                                           |         s0 = *(var_2ch_2);
    0x000240d0 addiu sp, sp, 0x40                                        |         
    0x000240d4 jr ra                                                     |         return v0;
                                                                         |     }
    0x000240d8 lw v0, -0x7fd8(gp)                                        |     v0 = *(gp);
    0x000240dc lw a3, -0x7fd8(gp)                                        |     a3 = *(gp);
    0x000240e0 lw a1, -0x7fd8(gp)                                        |     a1 = *(gp);
                                                                         |     /* str.main_database */
    0x000240e4 addiu v0, v0, 0x894                                       |     v0 += 0x894;
    0x000240e8 lw t9, -0x76c0(gp)                                        |     t9 = sym.imp.g_assertion_message_expr;
    0x000240ec sw v0, 0x10(sp)                                           |     *(var_10h_2) = v0;
                                                                         |     /* str.database_remove_recordings_by_start_time_iso8601 */
    0x000240f0 addiu a3, a3, 0x2684                                      |     a3 += 0x2684;
    0x000240f4 addiu a2, zero, 0x1290                                    |     a2 = 0x1290;
                                                                         |     /* str.database_sql_interface.c */
    0x000240f8 addiu a1, a1, 0x820                                       |     a1 += 0x820;
    0x000240fc move a0, zero                                             |     a0 = 0;
    0x00024100 jalr t9                                                   |     return t9 ();
                                                                         | }
    ; assembly                                                   | /* r2dec pseudo code output */
                                                                 | /* /logs/firmware/unblob_extracted/firmware_extract/4325012-58052244.squashfs_v4_le_extract/usr/bin/indexer @ 0x26c90 */
                                                                 | #include <stdint.h>
                                                                 |  
    ; (fcn) sym.database_set_recording_blocks_for_removal ()     | void database_set_recording_blocks_for_removal () {
    0x00026c90 lui gp, 6                                         |     
    0x00026c94 addiu gp, gp, -0xb90                              |     
    0x00026c98 addu gp, gp, t9                                   |     gp += t9;
    0x00026c9c addiu sp, sp, -0x58                               |     
    0x00026ca0 sw s3, 0x3c(sp)                                   |     *(var_3ch) = s3;
    0x00026ca4 lw s3, -0x7fd4(gp)                                |     s3 = *((gp - 8181));
    0x00026ca8 sw gp, 0x20(sp)                                   |     *(var_20h) = gp;
    0x00026cac sw ra, 0x54(sp)                                   |     *(var_54h) = ra;
    0x00026cb0 lw v0, -0xf48(s3)                                 |     v0 = *((s3 - 978));
    0x00026cb4 sw fp, 0x50(sp)                                   |     *(var_50h) = fp;
    0x00026cb8 sw s7, 0x4c(sp)                                   |     *(var_4ch) = s7;
    0x00026cbc sw s6, 0x48(sp)                                   |     *(var_48h) = s6;
    0x00026cc0 sw s5, 0x44(sp)                                   |     *(var_44h) = s5;
    0x00026cc4 sw s4, 0x40(sp)                                   |     *(var_40h) = s4;
    0x00026cc8 sw s2, 0x38(sp)                                   |     *(var_38h) = s2;
    0x00026ccc sw s1, 0x34(sp)                                   |     *(var_34h) = s1;
    0x00026cd0 sw s0, 0x30(sp)                                   |     *(var_30h) = s0;
    0x00026cd4 lw t9, -0x7d24(gp)                                |     t9 = sym.sql_valid_storage_name;
                                                                 |     if (v0 == 0) {
    0x00026cd8 beqz v0, 0x26f44                                  |         goto label_2;
                                                                 |     }
    0x00026cdc move fp, a1                                       |     fp = a1;
    0x00026ce0 move a1, a2                                       |     a1 = a2;
    0x00026ce4 move s4, a0                                       |     s4 = a0;
    0x00026ce8 move s2, a2                                       |     s2 = a2;
    0x00026cec bal 0x3a5d4                                       |     sym_sql_valid_storage_name ();
    0x00026cf0 move s0, v0                                       |     s0 = v0;
    0x00026cf4 lw gp, 0x20(sp)                                   |     gp = *(var_20h);
                                                                 |     if (v0 == 0) {
    0x00026cf8 bnez v0, 0x26d30                                  |         
    0x00026cfc lw ra, 0x54(sp)                                   |         ra = *(var_54h);
    0x00026d00 move v0, s0                                       |         v0 = s0;
    0x00026d04 lw fp, 0x50(sp)                                   |         fp = *(var_50h);
    0x00026d08 lw s7, 0x4c(sp)                                   |         s7 = *(var_4ch);
    0x00026d0c lw s6, 0x48(sp)                                   |         s6 = *(var_48h);
    0x00026d10 lw s5, 0x44(sp)                                   |         s5 = *(var_44h);
    0x00026d14 lw s4, 0x40(sp)                                   |         s4 = *(var_40h);
    0x00026d18 lw s3, 0x3c(sp)                                   |         s3 = *(var_3ch);
    0x00026d1c lw s2, 0x38(sp)                                   |         s2 = *(var_38h);
    0x00026d20 lw s1, 0x34(sp)                                   |         s1 = *(var_34h);
    0x00026d24 lw s0, 0x30(sp)                                   |         s0 = *(var_30h);
    0x00026d28 addiu sp, sp, 0x58                                |         
    0x00026d2c jr ra                                             |         return v0;
                                                                 |     }
    0x00026d30 lw s6, -0x7fd4(gp)                                |     s6 = *((gp - 8181));
    0x00026d34 lw t9, -0x7688(gp)                                |     t9 = sym.imp.g_rec_mutex_lock;
    0x00026d38 addiu a0, s6, -0xf58                              |     a0 = s6 + -0xf58;
    0x00026d3c jalr t9                                           |     t9 ();
    0x00026d40 lw gp, 0x20(sp)                                   |     gp = *(var_20h);
    0x00026d44 move a1, s2                                       |     a1 = s2;
    0x00026d48 lw t9, -0x7d2c(gp)                                |     t9 = *(gp);
                                                                 |     /* fcn.0001b5ac */
    0x00026d4c addiu t9, t9, -0x4a54                             |     t9 += -0x4a54;
    0x00026d50 move a0, s4                                       |     a0 = s4;
    0x00026d54 bal 0x1b5ac                                       |     fcn_0001b5ac ();
    0x00026d58 lw gp, 0x20(sp)                                   |     gp = *(var_20h);
                                                                 |     if (v0 == 0) {
    0x00026d5c beqz v0, 0x26f90                                  |         goto label_3;
                                                                 |     }
    0x00026d60 lw s7, -0x7fd8(gp)                                |     s7 = *(gp);
    0x00026d64 lw t9, -0x71b4(gp)                                |     t9 = sym.imp.g_string_new;
    0x00026d68 addiu a0, s7, 0x403c                              |     a0 = s7 + 0x403c;
    0x00026d6c jalr t9                                           |     t9 ();
    0x00026d70 lw v1, 4(fp)                                      |     v1 = *(arg_4h);
    0x00026d74 lw gp, 0x20(sp)                                   |     gp = *(var_20h);
    0x00026d78 move s0, v0                                       |     s0 = v0;
                                                                 |     if (v1 == 0) {
    0x00026d7c beqz v1, 0x26e0c                                  |         goto label_4;
                                                                 |     }
    0x00026d80 lw v0, (fp)                                       |     v0 = *(fp);
    0x00026d84 lw s5, -0x7fd8(gp)                                |     s5 = *(gp);
    0x00026d88 move s1, zero                                     |     s1 = 0;
    0x00026d8c lw v1, (v0)                                       |     v1 = *(v0);
                                                                 |     /* esilref: '&d' */
    0x00026d90 addiu s5, s5, 0x3648                              |     s5 += 0x3648;
                                                                 |     do {
                                                                 | label_0:
    0x00026d94 lw t9, -0x772c(gp)                                |         t9 = sym.imp.g_string_append_printf
    0x00026d98 lw a2, 0x20(v1)                                   |         a2 = *((v1 + 8));
    0x00026d9c move a1, s5                                       |         a1 = s5;
    0x00026da0 move a0, s0                                       |         a0 = s0;
    0x00026da4 jalr t9                                           |         t9 ();
    0x00026da8 lw v0, 4(fp)                                      |         v0 = *(arg_4h);
    0x00026dac addiu s1, s1, 1                                   |         s1++;
    0x00026db0 sltu v0, s1, v0                                   |         v0 = (s1 < v0) ? 1 : 0;
    0x00026db4 lw gp, 0x20(sp)                                   |         gp = *(var_20h);
                                                                 |         if (v0 == 0) {
    0x00026db8 beqz v0, 0x26e0c                                  |             goto label_4;
                                                                 |         }
    0x00026dbc lw v1, (fp)                                       |         v1 = *(fp);
    0x00026dc0 sll v0, s1, 2                                     |         v0 = s1 << 2;
    0x00026dc4 lwx v1, v0(v1)                                    |         __asm ("lwx v1, v0(v1)");
    0x00026dc8 beqz s1, 0x26d94                                  |         
                                                                 |     } while (s1 == 0);
    0x00026dcc lw a0, 4(s0)                                      |     a0 = *((s0 + 1));
    0x00026dd0 lw v0, 8(s0)                                      |     v0 = *((s0 + 2));
    0x00026dd4 addiu a1, a0, 1                                   |     a1 = a0 + 1;
    0x00026dd8 sltu v0, a1, v0                                   |     v0 = (a1 < v0) ? 1 : 0;
    0x00026ddc lw t9, -0x739c(gp)                                |     t9 = sym.imp.g_string_insert_c;
                                                                 |     if (v0 == 0) {
    0x00026de0 beqz v0, 0x26f70                                  |         goto label_5;
                                                                 |     }
    0x00026de4 lw v0, (s0)                                       |     v0 = *(s0);
    0x00026de8 sw a1, 4(s0)                                      |     *((s0 + 1)) = a1;
    0x00026dec addu v0, v0, a0                                   |     v0 += a0;
    0x00026df0 addiu a0, zero, 0x2c                              |     a0 = 0x2c;
    0x00026df4 sb a0, (v0)                                       |     *(v0) = a0;
    0x00026df8 lw v0, (s0)                                       |     v0 = *(s0);
    0x00026dfc lw a0, 4(s0)                                      |     a0 = *((s0 + 1));
    0x00026e00 addu v0, v0, a0                                   |     v0 += a0;
    0x00026e04 sb zero, (v0)                                     |     *(v0) = 0;
    0x00026e08 b 0x26d94                                         |     goto label_0;
                                                                 | label_4:
    0x00026e0c lw t9, -0x75a8(gp)                                |     t9 = sym.imp.g_string_free;
    0x00026e10 move a0, s0                                       |     a0 = s0;
    0x00026e14 move a1, zero                                     |     a1 = 0;
    0x00026e18 jalr t9                                           |     t9 ();
    0x00026e1c lw gp, 0x20(sp)                                   |     gp = *(var_20h);
    0x00026e20 move a2, v0                                       |     a2 = v0;
    0x00026e24 move s5, v0                                       |     s5 = v0;
    0x00026e28 lw a3, -0x7fd8(gp)                                |     a3 = *(gp);
    0x00026e2c lw a1, -0x7f50(gp)                                |     a1 = *((gp - 8148));
    0x00026e30 lw a0, -0x7fd8(gp)                                |     a0 = *(gp);
    0x00026e34 lw t9, -0x7cb8(gp)                                |     t9 = sym.sql_get_column_in_condition;
                                                                 |     /* esilref: 'IN' */
    0x00026e38 addiu a3, a3, 0xbb8                               |     a3 += 0xbb8;
                                                                 |     /* esilref: 'id' */
    0x00026e3c addiu a1, a1, -0x6dbc                             |     a1 += -0x6dbc;
                                                                 |     /* esilref: 'blocks' */
    0x00026e40 addiu a0, a0, 0x7124                              |     a0 += 0x7124;
    0x00026e44 bal 0x3f468                                       |     sym_sql_get_column_in_condition ();
    0x00026e48 lw gp, 0x20(sp)                                   |     gp = *(var_20h);
    0x00026e4c addiu a0, s7, 0x403c                              |     a0 = s7 + 0x403c;
    0x00026e50 lw t9, -0x71b4(gp)                                |     t9 = sym.imp.g_string_new;
    0x00026e54 move s1, v0                                       |     s1 = v0;
    0x00026e58 jalr t9                                           |     t9 ();
    0x00026e5c lw gp, 0x20(sp)                                   |     gp = *(var_20h);
    0x00026e60 lw a2, (s1)                                       |     a2 = *(s1);
    0x00026e64 move a1, s4                                       |     a1 = s4;
    0x00026e68 lw t9, -0x7d2c(gp)                                |     t9 = *(gp);
    0x00026e6c move a0, v0                                       |     a0 = v0;
                                                                 |     /* fcn.0001bcd8 */
    0x00026e70 addiu t9, t9, -0x4328                             |     t9 += -0x4328;
    0x00026e74 move s0, v0                                       |     s0 = v0;
    0x00026e78 bal 0x1bcd8                                       |     fcn_0001bcd8 ();
    0x00026e7c lw gp, 0x20(sp)                                   |     gp = *(var_20h);
    0x00026e80 move a1, s4                                       |     a1 = s4;
    0x00026e84 lw v0, -0x7fd4(gp)                                |     v0 = *((gp - 8181));
    0x00026e88 lw a2, -0x7d2c(gp)                                |     a2 = *(gp);
    0x00026e8c lw t9, -0x7528(gp)                                |     t9 = sym.imp.g_list_find_custom;
    0x00026e90 lw a0, -0xf4c(v0)                                 |     a0 = *((v0 - 979));
    0x00026e94 addiu a2, a2, -0x6540                             |     a2 += -0x6540;
    0x00026e98 jalr t9                                           |     t9 ();
    0x00026e9c lw gp, 0x20(sp)                                   |     gp = *(var_20h);
    0x00026ea0 lw a1, (s0)                                       |     a1 = *(s0);
    0x00026ea4 move a3, zero                                     |     a3 = 0;
    0x00026ea8 lw t9, -0x7d2c(gp)                                |     t9 = *(gp);
    0x00026eac move a2, zero                                     |     a2 = 0;
                                                                 |     /* fcn.00019f9c */
    0x00026eb0 addiu t9, t9, -0x6064                             |     t9 += -0x6064;
    0x00026eb4 move a0, v0                                       |     a0 = v0;
    0x00026eb8 bal 0x19f9c                                       |     fcn_00019f9c ();
    0x00026ebc lw gp, 0x20(sp)                                   |     gp = *(var_20h);
    0x00026ec0 move a0, s0                                       |     a0 = s0;
    0x00026ec4 addiu a1, zero, 1                                 |     a1 = 1;
    0x00026ec8 lw t9, -0x75a8(gp)                                |     t9 = sym.imp.g_string_free;
    0x00026ecc move s4, v0                                       |     s4 = v0;
    0x00026ed0 jalr t9                                           |     t9 ();
    0x00026ed4 lw gp, 0x20(sp)                                   |     gp = *(var_20h);
    0x00026ed8 addiu a1, zero, 1                                 |     a1 = 1;
    0x00026edc move a0, s1                                       |     a0 = s1;
    0x00026ee0 lw t9, -0x75a8(gp)                                |     t9 = sym.imp.g_string_free;
    0x00026ee4 sltiu s0, s4, 1                                   |     s0 = (s4 < 1) ? 1 : 0;
    0x00026ee8 jalr t9                                           |     t9 ();
    0x00026eec lw gp, 0x20(sp)                                   |     gp = *(var_20h);
    0x00026ef0 lw t9, -0x74c8(gp)                                |     t9 = *((gp - 7474));
    0x00026ef4 move a0, s5                                       |     a0 = s5;
    0x00026ef8 jalr t9                                           |     t9 ();
    0x00026efc lw gp, 0x20(sp)                                   |     gp = *(var_20h);
                                                                 |     if (s4 != 0) {
    0x00026f00 bnez s4, 0x26f98                                  |         goto label_6;
                                                                 |     }
                                                                 |     do {
                                                                 | label_1:
    0x00026f04 lw t9, -0x76cc(gp)                                |         t9 = sym.imp.g_rec_mutex_unlock;
    0x00026f08 addiu a0, s6, -0xf58                              |         a0 = s6 + -0xf58;
    0x00026f0c jalr t9                                           |         t9 ();
    0x00026f10 lw ra, 0x54(sp)                                   |         ra = *(var_54h);
    0x00026f14 move v0, s0                                       |         v0 = s0;
    0x00026f18 lw fp, 0x50(sp)                                   |         fp = *(var_50h);
    0x00026f1c lw s7, 0x4c(sp)                                   |         s7 = *(var_4ch);
    0x00026f20 lw s6, 0x48(sp)                                   |         s6 = *(var_48h);
    0x00026f24 lw s5, 0x44(sp)                                   |         s5 = *(var_44h);
    0x00026f28 lw s4, 0x40(sp)                                   |         s4 = *(var_40h);
    0x00026f2c lw s3, 0x3c(sp)                                   |         s3 = *(var_3ch);
    0x00026f30 lw s2, 0x38(sp)                                   |         s2 = *(var_38h);
    0x00026f34 lw s1, 0x34(sp)                                   |         s1 = *(var_34h);
    0x00026f38 lw s0, 0x30(sp)                                   |         s0 = *(var_30h);
    0x00026f3c addiu sp, sp, 0x58                                |         
    0x00026f40 jr ra                                             |         return v0;
                                                                 | label_2:
    0x00026f44 lw v0, -0x7fd8(gp)                                |         v0 = *(gp);
    0x00026f48 lw a3, -0x7fd8(gp)                                |         a3 = *(gp);
    0x00026f4c lw a1, -0x7fd8(gp)                                |         a1 = *(gp);
                                                                 |         /* str.main_database */
    0x00026f50 addiu v0, v0, 0x894                               |         v0 += 0x894;
    0x00026f54 lw t9, -0x76c0(gp)                                |         t9 = sym.imp.g_assertion_message_expr;
    0x00026f58 sw v0, 0x10(sp)                                   |         *(var_10h) = v0;
                                                                 |         /* str.database_set_recording_blocks_for_removal */
    0x00026f5c addiu a3, a3, 0x219c                              |         a3 += 0x219c;
    0x00026f60 addiu a2, zero, 0x163a                            |         a2 = 0x163a;
                                                                 |         /* str.database_sql_interface.c */
    0x00026f64 addiu a1, a1, 0x820                               |         a1 += 0x820;
    0x00026f68 move a0, zero                                     |         a0 = 0;
    0x00026f6c jalr t9                                           |         t9 ();
                                                                 | label_5:
    0x00026f70 sw v1, 0x2c(sp)                                   |         *(var_2ch) = v1;
    0x00026f74 addiu a2, zero, 0x2c                              |         a2 = 0x2c;
    0x00026f78 addiu a1, zero, -1                                |         a1 = -1;
    0x00026f7c move a0, s0                                       |         a0 = s0;
    0x00026f80 jalr t9                                           |         t9 ();
    0x00026f84 lw gp, 0x20(sp)                                   |         gp = *(var_20h);
    0x00026f88 lw v1, 0x2c(sp)                                   |         v1 = *(var_2ch);
    0x00026f8c b 0x26d94                                         |         goto label_0;
                                                                 | label_3:
    0x00026f90 move s0, zero                                     |         s0 = 0;
    0x00026f94 b 0x26f04                                         |         
                                                                 |     } while (1);
                                                                 | label_6:
    0x00026f98 lw t9, -0x7268(gp)                                |     t9 = sym.imp.sqlite3_errcode;
    0x00026f9c lw a0, -0xf48(s3)                                 |     a0 = *((s3 - 978));
    0x00026fa0 jalr t9                                           |     t9 ();
    0x00026fa4 lw gp, 0x20(sp)                                   |     gp = *(var_20h);
    0x00026fa8 lw a0, -0xf48(s3)                                 |     a0 = *((s3 - 978));
    0x00026fac lw t9, -0x7268(gp)                                |     t9 = sym.imp.sqlite3_errcode;
    0x00026fb0 move s1, v0                                       |     s1 = v0;
    0x00026fb4 jalr t9                                           |     t9 ();
    0x00026fb8 lw gp, 0x20(sp)                                   |     gp = *(var_20h);
    0x00026fbc lw a0, -0xf48(s3)                                 |     a0 = *((s3 - 978));
    0x00026fc0 lw t9, -0x73f8(gp)                                |     t9 = sym.imp.sqlite3_errmsg;
    0x00026fc4 move s3, v0                                       |     s3 = v0;
    0x00026fc8 jalr t9                                           |     t9 ();
    0x00026fcc lw gp, 0x20(sp)                                   |     gp = *(var_20h);
    0x00026fd0 sw v0, 0x1c(sp)                                   |     *(var_1ch) = v0;
    0x00026fd4 sw s3, 0x18(sp)                                   |     *(var_18h) = s3;
    0x00026fd8 lw v0, -0x7fd8(gp)                                |     v0 = *(gp);
    0x00026fdc lw a1, -0x7fd8(gp)                                |     a1 = *(gp);
                                                                 |     /* str.SQLite_error:___d___s */
    0x00026fe0 addiu v0, v0, 0x908                               |     v0 += 0x908;
    0x00026fe4 sw v0, 0x14(sp)                                   |     *(var_14h) = v0;
    0x00026fe8 lw v0, -0x7fd8(gp)                                |     v0 = *(gp);
    0x00026fec lw t9, -0x7df8(gp)                                |     t9 = sym.set_error;
                                                                 |     /* str.DatabaseError */
    0x00026ff0 addiu v0, v0, -0x2648                             |     v0 += -0x2648;
    0x00026ff4 sw v0, 0x10(sp)                                   |     *(var_10h) = v0;
    0x00026ff8 move a3, s1                                       |     a3 = s1;
    0x00026ffc addiu a2, zero, 0x1656                            |     a2 = 0x1656;
                                                                 |     /* esilref: 'database_set_recording_blocks_for_removal' */
    0x00027000 addiu a1, a1, 0x2170                              |     a1 += 0x2170;
    0x00027004 move a0, s2                                       |     a0 = s2;
    0x00027008 bal 0x422c0                                       |     sym_set_error ();
    0x0002700c lw gp, 0x20(sp)                                   |     gp = *(var_20h);
    0x00027010 b 0x26f04                                         |     goto label_1;
                                                                 | }
    ; assembly                                                               | /* r2dec pseudo code output */
                                                                             | /* /logs/firmware/unblob_extracted/firmware_extract/4325012-58052244.squashfs_v4_le_extract/usr/bin/indexer @ 0x1f240 */
                                                                             | #include <stdint.h>
                                                                             |  
    ; (fcn) sym.database_update_recording_start_stop_times_iso8601 ()        | void database_update_recording_start_stop_times_iso8601 () {
    0x0001f240 lui gp, 6                                                     |     
    0x0001f244 addiu gp, gp, 0x6ec0                                          |     
    0x0001f248 addu gp, gp, t9                                               |     gp += t9;
    0x0001f24c addiu sp, sp, -0x50                                           |     
    0x0001f250 sw s0, 0x2c(sp)                                               |     *(var_2ch_3) = s0;
    0x0001f254 lw s0, -0x7fd4(gp)                                            |     s0 = *((gp - 8181));
    0x0001f258 sw gp, 0x20(sp)                                               |     *(var_20h_3) = gp;
    0x0001f25c sw ra, 0x4c(sp)                                               |     *(var_4ch_3) = ra;
    0x0001f260 lw v0, -0xf48(s0)                                             |     v0 = *((s0 - 978));
    0x0001f264 sw s7, 0x48(sp)                                               |     *(var_48h_3) = s7;
    0x0001f268 sw s6, 0x44(sp)                                               |     *(var_44h_3) = s6;
    0x0001f26c sw s5, 0x40(sp)                                               |     *(var_40h_3) = s5;
    0x0001f270 sw s4, 0x3c(sp)                                               |     *(var_3ch_4) = s4;
    0x0001f274 sw s3, 0x38(sp)                                               |     *(var_38h_4) = s3;
    0x0001f278 sw s2, 0x34(sp)                                               |     *(var_34h_3) = s2;
    0x0001f27c sw s1, 0x30(sp)                                               |     *(var_30h_3) = s1;
    0x0001f280 lw t9, -0x7d24(gp)                                            |     t9 = sym.sql_valid_storage_name;
                                                                             |     if (v0 == 0) {
    0x0001f284 beqz v0, 0x1f494                                              |         goto label_1;
                                                                             |     }
    0x0001f288 move s4, a1                                                   |     s4 = a1;
    0x0001f28c lw a1, 0x60(sp)                                               |     a1 = *(var_10h_3);
    0x0001f290 move s3, a0                                                   |     s3 = a0;
    0x0001f294 move s2, a2                                                   |     s2 = a2;
    0x0001f298 move s1, a3                                                   |     s1 = a3;
    0x0001f29c bal 0x3a5d4                                                   |     sym_sql_valid_storage_name ();
    0x0001f2a0 lw gp, 0x20(sp)                                               |     gp = *(var_20h_3);
    0x0001f2a4 bnez v0, 0x1f2dc                                              |     
                                                                             |     while (v0 == 0) {
    0x0001f2a8 lw ra, 0x4c(sp)                                               |         ra = *(var_4ch_3);
    0x0001f2ac move s1, zero                                                 |         s1 = 0;
    0x0001f2b0 move v0, s1                                                   |         v0 = s1;
    0x0001f2b4 lw s7, 0x48(sp)                                               |         s7 = *(var_48h_3);
    0x0001f2b8 lw s6, 0x44(sp)                                               |         s6 = *(var_44h_3);
    0x0001f2bc lw s5, 0x40(sp)                                               |         s5 = *(var_40h_3);
    0x0001f2c0 lw s4, 0x3c(sp)                                               |         s4 = *(var_3ch_4);
    0x0001f2c4 lw s3, 0x38(sp)                                               |         s3 = *(var_38h_4);
    0x0001f2c8 lw s2, 0x34(sp)                                               |         s2 = *(var_34h_3);
    0x0001f2cc lw s1, 0x30(sp)                                               |         s1 = *(var_30h_3);
    0x0001f2d0 lw s0, 0x2c(sp)                                               |         s0 = *(var_2ch_3);
    0x0001f2d4 addiu sp, sp, 0x50                                            |         
    0x0001f2d8 jr ra                                                         |         return v0;
    0x0001f2dc lw t9, -0x7ca4(gp)                                            |         t9 = sym.validate_iso8601_times;
    0x0001f2e0 lw a3, 0x60(sp)                                               |         a3 = *(var_10h_3);
    0x0001f2e4 move a2, zero                                                 |         a2 = 0;
    0x0001f2e8 move a1, s1                                                   |         a1 = s1;
    0x0001f2ec move a0, s2                                                   |         a0 = s2;
    0x0001f2f0 jalr t9                                                       |         t9 ();
    0x0001f2f4 lw gp, 0x20(sp)                                               |         gp = *(var_20h_3);
    0x0001f2f8 beqz v0, 0x1f2a8                                              |         
                                                                             |     }
    0x0001f2fc lw s6, -0x7fd4(gp)                                            |     s6 = *((gp - 8181));
    0x0001f300 lw t9, -0x7688(gp)                                            |     t9 = sym.imp.g_rec_mutex_lock;
    0x0001f304 addiu a0, s6, -0xf58                                          |     a0 = s6 + -0xf58;
    0x0001f308 jalr t9                                                       |     t9 ();
    0x0001f30c lw gp, 0x20(sp)                                               |     gp = *(var_20h_3);
    0x0001f310 move a1, s3                                                   |     a1 = s3;
    0x0001f314 lw v0, -0x7fd4(gp)                                            |     v0 = *((gp - 8181));
    0x0001f318 lw a2, -0x7d2c(gp)                                            |     a2 = *(gp);
    0x0001f31c lw t9, -0x7528(gp)                                            |     t9 = sym.imp.g_list_find_custom;
    0x0001f320 lw a0, -0xf4c(v0)                                             |     a0 = *((v0 - 979));
    0x0001f324 addiu a2, a2, -0x6540                                         |     a2 += -0x6540;
    0x0001f328 jalr t9                                                       |     t9 ();
    0x0001f32c move s5, v0                                                   |     s5 = v0;
    0x0001f330 lw gp, 0x20(sp)                                               |     gp = *(var_20h_3);
                                                                             |     if (v0 == 0) {
    0x0001f334 beqz v0, 0x1f53c                                              |         goto label_2;
                                                                             |     }
    0x0001f338 lw a0, -0x7fd8(gp)                                            |     a0 = *(gp);
    0x0001f33c lw t9, -0x71b4(gp)                                            |     t9 = sym.imp.g_string_new;
    0x0001f340 addiu a0, a0, 0x403c                                          |     a0 += 0x403c;
    0x0001f344 lw s7, (v0)                                                   |     s7 = *(v0);
    0x0001f348 jalr t9                                                       |     t9 ();
    0x0001f34c move s3, v0                                                   |     s3 = v0;
    0x0001f350 lw gp, 0x20(sp)                                               |     gp = *(var_20h_3);
                                                                             |     if (s2 != 0) {
    0x0001f354 beqz s2, 0x1f3ac                                              |         
    0x0001f358 lw a2, -0x7fd8(gp)                                            |         a2 = *(gp);
    0x0001f35c lw t9, -0x7c94(gp)                                            |         t9 = sym.sql_update_recordings_table_column;
    0x0001f360 lw a0, 4(s7)                                                  |         a0 = *((s7 + 1));
    0x0001f364 move a3, s2                                                   |         a3 = s2;
                                                                             |         /* str.starttime */
    0x0001f368 addiu a2, a2, 0x7a8                                           |         a2 += 0x7a8;
    0x0001f36c move a1, s4                                                   |         a1 = s4;
    0x0001f370 jalr t9                                                       |         t9 ();
    0x0001f374 lw gp, 0x20(sp)                                               |         gp = *(var_20h_3);
    0x0001f378 lw a2, (v0)                                                   |         a2 = *(v0);
    0x0001f37c move a0, s3                                                   |         a0 = s3;
    0x0001f380 lw a1, -0x7fd8(gp)                                            |         a1 = *(gp);
    0x0001f384 lw t9, -0x772c(gp)                                            |         t9 = sym.imp.g_string_append_printf
                                                                             |         /* esilref: ' &s ' */
    0x0001f388 addiu a1, a1, 0x1220                                          |         a1 += 0x1220;
    0x0001f38c move s2, v0                                                   |         s2 = v0;
    0x0001f390 jalr t9                                                       |         t9 ();
    0x0001f394 lw gp, 0x20(sp)                                               |         gp = *(var_20h_3);
    0x0001f398 addiu a1, zero, 1                                             |         a1 = 1;
    0x0001f39c lw t9, -0x75a8(gp)                                            |         t9 = sym.imp.g_string_free;
    0x0001f3a0 move a0, s2                                                   |         a0 = s2;
    0x0001f3a4 jalr t9                                                       |         t9 ();
    0x0001f3a8 lw gp, 0x20(sp)                                               |         gp = *(var_20h_3);
                                                                             |     }
    0x0001f3ac lw a2, -0x7fd8(gp)                                            |     a2 = *(gp);
                                                                             |     if (s1 != 0) {
    0x0001f3b0 beqz s1, 0x1f404                                              |         
    0x0001f3b4 lw t9, -0x7c94(gp)                                            |         t9 = sym.sql_update_recordings_table_column;
    0x0001f3b8 lw a0, 4(s7)                                                  |         a0 = *((s7 + 1));
    0x0001f3bc move a3, s1                                                   |         a3 = s1;
                                                                             |         /* str.stoptime */
    0x0001f3c0 addiu a2, a2, 0x7b4                                           |         a2 += 0x7b4;
    0x0001f3c4 move a1, s4                                                   |         a1 = s4;
    0x0001f3c8 jalr t9                                                       |         t9 ();
    0x0001f3cc lw gp, 0x20(sp)                                               |         gp = *(var_20h_3);
    0x0001f3d0 lw a2, (v0)                                                   |         a2 = *(v0);
    0x0001f3d4 move a0, s3                                                   |         a0 = s3;
    0x0001f3d8 lw a1, -0x7fd8(gp)                                            |         a1 = *(gp);
    0x0001f3dc lw t9, -0x772c(gp)                                            |         t9 = sym.imp.g_string_append_printf
                                                                             |         /* esilref: ' &s ' */
    0x0001f3e0 addiu a1, a1, 0x1220                                          |         a1 += 0x1220;
    0x0001f3e4 move s1, v0                                                   |         s1 = v0;
    0x0001f3e8 jalr t9                                                       |         t9 ();
    0x0001f3ec lw gp, 0x20(sp)                                               |         gp = *(var_20h_3);
    0x0001f3f0 addiu a1, zero, 1                                             |         a1 = 1;
    0x0001f3f4 lw t9, -0x75a8(gp)                                            |         t9 = sym.imp.g_string_free;
    0x0001f3f8 move a0, s1                                                   |         a0 = s1;
    0x0001f3fc jalr t9                                                       |         t9 ();
    0x0001f400 lw gp, 0x20(sp)                                               |         gp = *(var_20h_3);
                                                                             |     }
    0x0001f404 lw t9, -0x7d2c(gp)                                            |     t9 = *(gp);
    0x0001f408 lw a1, (s3)                                                   |     a1 = *(s3);
    0x0001f40c move a3, zero                                                 |     a3 = 0;
    0x0001f410 move a2, zero                                                 |     a2 = 0;
                                                                             |     /* fcn.00019f9c */
    0x0001f414 addiu t9, t9, -0x6064                                         |     t9 += -0x6064;
    0x0001f418 move a0, s5                                                   |     a0 = s5;
    0x0001f41c bal 0x19f9c                                                   |     fcn_00019f9c ();
    0x0001f420 lw gp, 0x20(sp)                                               |     gp = *(var_20h_3);
    0x0001f424 move s2, v0                                                   |     s2 = v0;
    0x0001f428 addiu a1, zero, 1                                             |     a1 = 1;
    0x0001f42c lw t9, -0x75a8(gp)                                            |     t9 = sym.imp.g_string_free;
    0x0001f430 move a0, s3                                                   |     a0 = s3;
    0x0001f434 jalr t9                                                       |     t9 ();
    0x0001f438 sltiu s1, s2, 1                                               |     s1 = (s2 < 1) ? 1 : 0;
    0x0001f43c lw gp, 0x20(sp)                                               |     gp = *(var_20h_3);
                                                                             |     if (s2 != 0) {
    0x0001f440 bnez s2, 0x1f4c0                                              |         goto label_3;
                                                                             |     }
    0x0001f444 lw t9, -0x7450(gp)                                            |     t9 = sym.imp.sqlite3_changes;
    0x0001f448 lw a0, -0xf48(s0)                                             |     a0 = *((s0 - 978));
    0x0001f44c jalr t9                                                       |     t9 ();
    0x0001f450 lw gp, 0x20(sp)                                               |     gp = *(var_20h_3);
                                                                             |     if (v0 == 0) {
    0x0001f454 beqz v0, 0x1f580                                              |         goto label_4;
                                                                             |     }
                                                                             |     do {
                                                                             | label_0:
    0x0001f458 lw t9, -0x76cc(gp)                                            |         t9 = sym.imp.g_rec_mutex_unlock;
    0x0001f45c addiu a0, s6, -0xf58                                          |         a0 = s6 + -0xf58;
    0x0001f460 jalr t9                                                       |         t9 ();
    0x0001f464 lw ra, 0x4c(sp)                                               |         ra = *(var_4ch_3);
    0x0001f468 move v0, s1                                                   |         v0 = s1;
    0x0001f46c lw s7, 0x48(sp)                                               |         s7 = *(var_48h_3);
    0x0001f470 lw s6, 0x44(sp)                                               |         s6 = *(var_44h_3);
    0x0001f474 lw s5, 0x40(sp)                                               |         s5 = *(var_40h_3);
    0x0001f478 lw s4, 0x3c(sp)                                               |         s4 = *(var_3ch_4);
    0x0001f47c lw s3, 0x38(sp)                                               |         s3 = *(var_38h_4);
    0x0001f480 lw s2, 0x34(sp)                                               |         s2 = *(var_34h_3);
    0x0001f484 lw s1, 0x30(sp)                                               |         s1 = *(var_30h_3);
    0x0001f488 lw s0, 0x2c(sp)                                               |         s0 = *(var_2ch_3);
    0x0001f48c addiu sp, sp, 0x50                                            |         
    0x0001f490 jr ra                                                         |         return v0;
                                                                             | label_1:
    0x0001f494 lw v0, -0x7fd8(gp)                                            |         v0 = *(gp);
    0x0001f498 lw a3, -0x7fd8(gp)                                            |         a3 = *(gp);
    0x0001f49c lw a1, -0x7fd8(gp)                                            |         a1 = *(gp);
                                                                             |         /* str.main_database */
    0x0001f4a0 addiu v0, v0, 0x894                                           |         v0 += 0x894;
    0x0001f4a4 lw t9, -0x76c0(gp)                                            |         t9 = sym.imp.g_assertion_message_expr;
    0x0001f4a8 sw v0, 0x10(sp)                                               |         *(var_10h_4) = v0;
                                                                             |         /* str.database_update_recording_start_stop_times_iso8601 */
    0x0001f4ac addiu a3, a3, 0x2e80                                          |         a3 += 0x2e80;
    0x0001f4b0 addiu a2, zero, 0xb81                                         |         a2 = 0xb81;
                                                                             |         /* str.database_sql_interface.c */
    0x0001f4b4 addiu a1, a1, 0x820                                           |         a1 += 0x820;
    0x0001f4b8 move a0, zero                                                 |         a0 = 0;
    0x0001f4bc jalr t9                                                       |         t9 ();
                                                                             | label_3:
    0x0001f4c0 lw t9, -0x7268(gp)                                            |         t9 = sym.imp.sqlite3_errcode;
    0x0001f4c4 lw a0, -0xf48(s0)                                             |         a0 = *((s0 - 978));
    0x0001f4c8 jalr t9                                                       |         t9 ();
    0x0001f4cc lw gp, 0x20(sp)                                               |         gp = *(var_20h_3);
    0x0001f4d0 lw a0, -0xf48(s0)                                             |         a0 = *((s0 - 978));
    0x0001f4d4 lw t9, -0x7268(gp)                                            |         t9 = sym.imp.sqlite3_errcode;
    0x0001f4d8 move s2, v0                                                   |         s2 = v0;
    0x0001f4dc jalr t9                                                       |         t9 ();
    0x0001f4e0 lw gp, 0x20(sp)                                               |         gp = *(var_20h_3);
    0x0001f4e4 lw a0, -0xf48(s0)                                             |         a0 = *((s0 - 978));
    0x0001f4e8 lw t9, -0x73f8(gp)                                            |         t9 = sym.imp.sqlite3_errmsg;
    0x0001f4ec move s0, v0                                                   |         s0 = v0;
    0x0001f4f0 jalr t9                                                       |         t9 ();
    0x0001f4f4 lw gp, 0x20(sp)                                               |         gp = *(var_20h_3);
    0x0001f4f8 sw v0, 0x1c(sp)                                               |         *(var_1ch_2) = v0;
    0x0001f4fc lw a0, 0x60(sp)                                               |         a0 = *(var_10h_3);
    0x0001f500 lw v0, -0x7fd8(gp)                                            |         v0 = *(gp);
    0x0001f504 lw a1, -0x7fd8(gp)                                            |         a1 = *(gp);
                                                                             |         /* str.SQLite_error:___d___s */
    0x0001f508 addiu v0, v0, 0x908                                           |         v0 += 0x908;
    0x0001f50c sw v0, 0x14(sp)                                               |         *(var_14h) = v0;
    0x0001f510 lw v0, -0x7fd8(gp)                                            |         v0 = *(gp);
    0x0001f514 lw t9, -0x7df8(gp)                                            |         t9 = sym.set_error;
                                                                             |         /* str.DatabaseError */
    0x0001f518 addiu v0, v0, -0x2648                                         |         v0 += -0x2648;
    0x0001f51c sw s0, 0x18(sp)                                               |         *(var_18h_2) = s0;
    0x0001f520 sw v0, 0x10(sp)                                               |         *(var_10h_4) = v0;
    0x0001f524 move a3, s2                                                   |         a3 = s2;
    0x0001f528 addiu a2, zero, 0xbae                                         |         a2 = 0xbae;
                                                                             |         /* esilref: 'database_update_recording_start_stop_times_iso8601' */
    0x0001f52c addiu a1, a1, 0x2e4c                                          |         a1 += 0x2e4c;
    0x0001f530 jalr t9                                                       |         t9 ();
    0x0001f534 lw gp, 0x20(sp)                                               |         gp = *(var_20h_3);
    0x0001f538 b 0x1f458                                                     |         
                                                                             |     } while (1);
                                                                             | label_2:
    0x0001f53c lw v0, -0x7fd8(gp)                                            |     v0 = *(gp);
    0x0001f540 lw a1, -0x7fd8(gp)                                            |     a1 = *(gp);
                                                                             |     /* str.Database__s_does_not_exist */
    0x0001f544 addiu v0, v0, 0xb4c                                           |     v0 += 0xb4c;
    0x0001f548 sw v0, 0x14(sp)                                               |     *(var_14h) = v0;
    0x0001f54c lw v0, -0x7fd8(gp)                                            |     v0 = *(gp);
    0x0001f550 lw t9, -0x7df8(gp)                                            |     t9 = sym.set_error;
                                                                             |     /* str.DatabaseError */
    0x0001f554 addiu v0, v0, -0x2648                                         |     v0 += -0x2648;
    0x0001f558 lw a0, 0x60(sp)                                               |     a0 = *(var_10h_3);
    0x0001f55c sw s3, 0x18(sp)                                               |     *(var_18h_2) = s3;
    0x0001f560 sw v0, 0x10(sp)                                               |     *(var_10h_4) = v0;
    0x0001f564 move a3, zero                                                 |     a3 = 0;
    0x0001f568 addiu a2, zero, 0xb94                                         |     a2 = 0xb94;
                                                                             |     /* esilref: 'database_update_recording_start_stop_times_iso8601' */
    0x0001f56c addiu a1, a1, 0x2e4c                                          |     a1 += 0x2e4c;
    0x0001f570 jalr t9                                                       |     t9 ();
    0x0001f574 addiu s1, zero, 1                                             |     s1 = 1;
    0x0001f578 lw gp, 0x20(sp)                                               |     gp = *(var_20h_3);
    0x0001f57c b 0x1f458                                                     |     goto label_0;
                                                                             | label_4:
    0x0001f580 lw v0, -0x7fd8(gp)                                            |     v0 = *(gp);
    0x0001f584 lw a1, -0x7fd8(gp)                                            |     a1 = *(gp);
                                                                             |     /* str.Recording__s_not_found. */
    0x0001f588 addiu v0, v0, 0xe50                                           |     v0 += 0xe50;
    0x0001f58c sw v0, 0x14(sp)                                               |     *(var_14h) = v0;
    0x0001f590 lw v0, -0x7fd8(gp)                                            |     v0 = *(gp);
    0x0001f594 lw t9, -0x7df8(gp)                                            |     t9 = sym.set_error;
                                                                             |     /* str.DatabaseError */
    0x0001f598 addiu v0, v0, -0x2648                                         |     v0 += -0x2648;
    0x0001f59c lw a0, 0x60(sp)                                               |     a0 = *(var_10h_3);
    0x0001f5a0 sw s4, 0x18(sp)                                               |     *(var_18h_2) = s4;
    0x0001f5a4 sw v0, 0x10(sp)                                               |     *(var_10h_4) = v0;
    0x0001f5a8 move a3, zero                                                 |     a3 = 0;
    0x0001f5ac addiu a2, zero, 0xbb3                                         |     a2 = 0xbb3;
                                                                             |     /* esilref: 'database_update_recording_start_stop_times_iso8601' */
    0x0001f5b0 addiu a1, a1, 0x2e4c                                          |     a1 += 0x2e4c;
    0x0001f5b4 jalr t9                                                       |     t9 ();
    0x0001f5b8 move s1, zero                                                 |     s1 = 0;
    0x0001f5bc lw gp, 0x20(sp)                                               |     gp = *(var_20h_3);
    0x0001f5c0 b 0x1f458                                                     |     goto label_0;
                                                                             | }
    ; assembly                               | /* r2dec pseudo code output */
                                             | /* /logs/firmware/unblob_extracted/firmware_extract/4325012-58052244.squashfs_v4_le_extract/usr/bin/indexer @ 0x17d9c */
                                             | #include <stdint.h>
                                             |  
    ; (fcn) sym.handle_recording_xml ()      | void handle_recording_xml () {
    0x00017d9c lui gp, 7                     |     
    0x00017da0 addiu gp, gp, -0x1c9c         |     
    0x00017da4 addu gp, gp, t9               |     gp += t9;
    0x00017da8 addiu sp, sp, -0x100          |     
    0x00017dac lw t9, -0x7314(gp)            |     t9 = sym.imp.xmlRecoverFile;
    0x00017db0 sw gp, 0x30(sp)               |     *(var_30h) = gp;
    0x00017db4 sw s6, 0xf0(sp)               |     *(var_f0h) = s6;
    0x00017db8 sw s0, 0xd8(sp)               |     *(var_d8h) = s0;
    0x00017dbc sw ra, 0xfc(sp)               |     *(var_fch) = ra;
    0x00017dc0 sw fp, 0xf8(sp)               |     *(var_f8h) = fp;
    0x00017dc4 sw s7, 0xf4(sp)               |     *(var_f4h) = s7;
    0x00017dc8 sw s5, 0xec(sp)               |     *(var_ech) = s5;
    0x00017dcc sw s4, 0xe8(sp)               |     *(var_e8h) = s4;
    0x00017dd0 sw s3, 0xe4(sp)               |     *(var_e4h) = s3;
    0x00017dd4 sw s2, 0xe0(sp)               |     *(var_e0h) = s2;
    0x00017dd8 sw s1, 0xdc(sp)               |     *(var_dch) = s1;
    0x00017ddc move s0, a0                   |     s0 = a0;
    0x00017de0 move s6, a1                   |     s6 = a1;
    0x00017de4 jalr t9                       |     t9 ();
    0x00017de8 sw v0, 0x40(sp)               |     *(var_40h) = v0;
    0x00017dec lw gp, 0x30(sp)               |     gp = *(var_30h);
                                             |     if (v0 == 0) {
    0x00017df0 beqz v0, 0x18208              |         goto label_10;
                                             |     }
    0x00017df4 lw t9, -0x7354(gp)            |     t9 = sym.imp.xmlXPathNewContext;
    0x00017df8 lw a0, 0x40(sp)               |     a0 = *(var_40h);
    0x00017dfc jalr t9                       |     t9 ();
    0x00017e00 move s7, v0                   |     s7 = v0;
    0x00017e04 lw gp, 0x30(sp)               |     gp = *(var_30h);
                                             |     if (v0 == 0) {
    0x00017e08 beqz v0, 0x18240              |         goto label_11;
                                             |     }
    0x00017e0c lw a0, -0x7fd8(gp)            |     a0 = *(gp);
    0x00017e10 lw t9, -0x72ec(gp)            |     t9 = sym.imp.xmlXPathEvalExpression;
    0x00017e14 move a1, v0                   |     a1 = v0;
                                             |     /* str._Recording */
    0x00017e18 addiu a0, a0, 0x224           |     a0 += aav.0x00000224;
    0x00017e1c jalr t9                       |     t9 ();
    0x00017e20 sw v0, 0x44(sp)               |     *(var_44h) = v0;
    0x00017e24 lw gp, 0x30(sp)               |     gp = *(var_30h);
                                             |     if (v0 == 0) {
    0x00017e28 beqz v0, 0x182a8              |         goto label_12;
                                             |     }
    0x00017e2c lw v0, 0x44(sp)               |     v0 = *(var_44h);
    0x00017e30 addiu v1, zero, 1             |     v1 = 1;
    0x00017e34 lw v0, 4(v0)                  |     v0 = *((v0 + 1));
    0x00017e38 lw a0, (v0)                   |     a0 = *(v0);
    0x00017e3c sw a0, 0x3c(sp)               |     *(var_3ch) = a0;
                                             |     if (a0 == v1) {
    0x00017e40 beq a0, v1, 0x17ed0           |         goto label_13;
                                             |     }
    0x00017e44 lw a3, -0x7fd8(gp)            |     a3 = *(gp);
    0x00017e48 lw a2, -0x7fd8(gp)            |     a2 = *(gp);
    0x00017e4c lw t9, -0x7220(gp)            |     t9 = sym.imp.g_log;
    0x00017e50 sw s0, 0x10(sp)               |     *(var_10h) = s0;
    0x00017e54 addiu a3, a3, 0x403c          |     a3 += 0x403c;
                                             |     /* str._sNo_recording_data_in__s */
    0x00017e58 addiu a2, a2, 0x4dc           |     a2 += 0x4dc;
    0x00017e5c addiu a1, zero, 0x10          |     a1 = 0x10;
    0x00017e60 move a0, zero                 |     a0 = 0;
    0x00017e64 sw zero, 0x3c(sp)             |     *(var_3ch) = 0;
    0x00017e68 jalr t9                       |     t9 ();
    0x00017e6c lw gp, 0x30(sp)               |     gp = *(var_30h);
                                             |     do {
                                             | label_1:
    0x00017e70 lw t9, -0x7134(gp)            |         t9 = sym.imp.xmlXPathFreeObject;
    0x00017e74 lw a0, 0x44(sp)               |         a0 = *(var_44h);
    0x00017e78 jalr t9                       |         t9 ();
    0x00017e7c lw gp, 0x30(sp)               |         gp = *(var_30h);
    0x00017e80 lw t9, -0x74fc(gp)            |         t9 = sym.imp.xmlXPathFreeContext;
    0x00017e84 move a0, s7                   |         a0 = s7;
    0x00017e88 jalr t9                       |         t9 ();
    0x00017e8c lw gp, 0x30(sp)               |         gp = *(var_30h);
    0x00017e90 lw t9, -0x7728(gp)            |         t9 = sym.imp.xmlFreeDoc;
    0x00017e94 lw a0, 0x40(sp)               |         a0 = *(var_40h);
    0x00017e98 jalr t9                       |         t9 ();
    0x00017e9c lw ra, 0xfc(sp)               |         ra = *(var_fch);
    0x00017ea0 lw v0, 0x3c(sp)               |         v0 = *(var_3ch);
    0x00017ea4 lw fp, 0xf8(sp)               |         fp = *(var_f8h);
    0x00017ea8 lw s7, 0xf4(sp)               |         s7 = *(var_f4h);
    0x00017eac lw s6, 0xf0(sp)               |         s6 = *(var_f0h);
    0x00017eb0 lw s5, 0xec(sp)               |         s5 = *(var_ech);
    0x00017eb4 lw s4, 0xe8(sp)               |         s4 = *(var_e8h);
    0x00017eb8 lw s3, 0xe4(sp)               |         s3 = *(var_e4h);
    0x00017ebc lw s2, 0xe0(sp)               |         s2 = *(var_e0h);
    0x00017ec0 lw s1, 0xdc(sp)               |         s1 = *(var_dch);
    0x00017ec4 lw s0, 0xd8(sp)               |         s0 = *(var_d8h);
    0x00017ec8 addiu sp, sp, 0x100           |         
    0x00017ecc jr ra                         |         return v0;
                                             | label_13:
    0x00017ed0 lw v0, 8(v0)                  |         v0 = *((v0 + 2));
    0x00017ed4 lw a1, -0x7fd8(gp)            |         a1 = *(gp);
    0x00017ed8 lw t9, -0x75ac(gp)            |         t9 = sym.imp.xmlGetProp;
    0x00017edc lw s1, (v0)                   |         s1 = *(v0);
                                             |         /* str.RecordingToken */
    0x00017ee0 addiu a1, a1, 0x258           |         a1 += aav.0x00000258;
    0x00017ee4 move a0, s1                   |         a0 = s1;
    0x00017ee8 jalr t9                       |         t9 ();
    0x00017eec lw gp, 0x30(sp)               |         gp = *(var_30h);
    0x00017ef0 lw a0, (s6)                   |         a0 = *(s6);
    0x00017ef4 sw v0, 0x38(sp)               |         *(var_38h) = v0;
    0x00017ef8 lw t9, -0x7294(gp)            |         t9 = sym.imp.strlen;
    0x00017efc move s2, v0                   |         s2 = v0;
    0x00017f00 jalr t9                       |         t9 ();
    0x00017f04 lw gp, 0x30(sp)               |         gp = *(var_30h);
    0x00017f08 addiu v0, v0, 1               |         v0++;
    0x00017f0c lw t9, -0x75c0(gp)            |         t9 = sym.imp.g_path_get_dirname;
    0x00017f10 addu a0, s0, v0               |         a0 = s0 + v0;
    0x00017f14 jalr t9                       |         t9 ();
    0x00017f18 lw gp, 0x30(sp)               |         gp = *(var_30h);
    0x00017f1c move a0, v0                   |         a0 = v0;
    0x00017f20 sw v0, 0x90(sp)               |         *(var_90h) = v0;
    0x00017f24 lw t9, -0x7680(gp)            |         t9 = sym.imp.g_str_has_suffix;
    0x00017f28 move a1, s2                   |         a1 = s2;
    0x00017f2c jalr t9                       |         t9 ();
    0x00017f30 lw gp, 0x30(sp)               |         gp = *(var_30h);
                                             |         if (v0 != 0) {
    0x00017f34 bnez v0, 0x181dc              |             goto label_14;
                                             |         }
                                             | label_0:
    0x00017f38 lw v0, -0x7f78(gp)            |         v0 = *(gp);
    0x00017f3c lw a1, -0x7fd8(gp)            |         a1 = *(gp);
                                             |         /* fcn.00017bb0 */
    0x00017f40 addiu s5, v0, 0x7bb0          |         s5 = v0 + 0x7bb0;
    0x00017f44 move a0, s1                   |         a0 = s1;
    0x00017f48 move a2, s7                   |         a2 = s7;
    0x00017f4c move t9, s5                   |         t9 = s5;
                                             |         /* str.RecordingGroup */
    0x00017f50 addiu a1, a1, 0x268           |         a1 += aav.0x00000268;
    0x00017f54 bal 0x17bb0                   |         fcn_00017bb0 ();
    0x00017f58 sw v0, 0x98(sp)               |         *(var_98h) = v0;
    0x00017f5c lw gp, 0x30(sp)               |         gp = *(var_30h);
    0x00017f60 move a0, v0                   |         a0 = v0;
                                             |         if (v0 != 0) {
    0x00017f64 beqz v0, 0x17f8c              |             
    0x00017f68 lw t9, -0x7634(gp)            |             t9 = sym.imp.g_strchug;
    0x00017f6c jalr t9                       |             t9 ();
    0x00017f70 nop                           |             
    0x00017f74 lw gp, 0x30(sp)               |             gp = *(var_30h);
    0x00017f78 lw t9, -0x72fc(gp)            |             t9 = sym.imp.g_strchomp;
    0x00017f7c move a0, v0                   |             a0 = v0;
    0x00017f80 jalr t9                       |             t9 ();
    0x00017f84 lw gp, 0x30(sp)               |             gp = *(var_30h);
    0x00017f88 sw v0, 0x98(sp)               |             *(var_98h) = v0;
                                             |         }
    0x00017f8c lw a1, -0x7fd8(gp)            |         a1 = *(gp);
    0x00017f90 move a2, s7                   |         a2 = s7;
                                             |         /* str.SourceToken */
    0x00017f94 addiu a1, a1, 0x278           |         a1 += aav.0x00000278;
    0x00017f98 move t9, s5                   |         t9 = s5;
    0x00017f9c move a0, s1                   |         a0 = s1;
    0x00017fa0 bal 0x17bb0                   |         fcn_00017bb0 ();
    0x00017fa4 lw gp, 0x30(sp)               |         gp = *(var_30h);
    0x00017fa8 move a2, s7                   |         a2 = s7;
    0x00017fac move a0, s1                   |         a0 = s1;
    0x00017fb0 lw a1, -0x7fd8(gp)            |         a1 = *(gp);
    0x00017fb4 move t9, s5                   |         t9 = s5;
                                             |         /* esilref: 'StartTime' */
    0x00017fb8 addiu a1, a1, 0x4a90          |         a1 += 0x4a90;
    0x00017fbc sw v0, 0xac(sp)               |         *(var_ach) = v0;
    0x00017fc0 bal 0x17bb0                   |         fcn_00017bb0 ();
    0x00017fc4 lw gp, 0x30(sp)               |         gp = *(var_30h);
    0x00017fc8 move a2, s7                   |         a2 = s7;
    0x00017fcc move a0, s1                   |         a0 = s1;
    0x00017fd0 lw a1, -0x7fd8(gp)            |         a1 = *(gp);
    0x00017fd4 move t9, s5                   |         t9 = s5;
                                             |         /* str.StopTime */
    0x00017fd8 addiu a1, a1, -0x2a4          |         a1 += -aav.0x000002a4;
    0x00017fdc sw v0, 0xa0(sp)               |         *(var_a0h) = v0;
    0x00017fe0 bal 0x17bb0                   |         fcn_00017bb0 ();
    0x00017fe4 lw gp, 0x30(sp)               |         gp = *(var_30h);
    0x00017fe8 move a2, s7                   |         a2 = s7;
    0x00017fec move a0, s1                   |         a0 = s1;
    0x00017ff0 lw a1, -0x7fd8(gp)            |         a1 = *(gp);
    0x00017ff4 move t9, s5                   |         t9 = s5;
                                             |         /* str.Content */
    0x00017ff8 addiu a1, a1, 0x284           |         a1 += aav.0x00000284;
    0x00017ffc sw v0, 0xb0(sp)               |         *(var_b0h) = v0;
    0x00018000 bal 0x17bb0                   |         fcn_00017bb0 ();
    0x00018004 lw gp, 0x30(sp)               |         gp = *(var_30h);
    0x00018008 move a2, s7                   |         a2 = s7;
    0x0001800c move a0, s1                   |         a0 = s1;
    0x00018010 lw a1, -0x7fd8(gp)            |         a1 = *(gp);
    0x00018014 move t9, s5                   |         t9 = s5;
                                             |         /* str.Application */
    0x00018018 addiu a1, a1, 0x28c           |         a1 += aav.0x0000028c;
    0x0001801c sw v0, 0xc8(sp)               |         *(var_c8h) = v0;
    0x00018020 bal 0x17bb0                   |         fcn_00017bb0 ();
    0x00018024 lw gp, 0x30(sp)               |         gp = *(var_30h);
    0x00018028 move a2, s7                   |         a2 = s7;
    0x0001802c move a0, s1                   |         a0 = s1;
    0x00018030 lw a1, -0x7fd8(gp)            |         a1 = *(gp);
    0x00018034 lw t9, -0x73a0(gp)            |         t9 = sym.imp.xmlXPathNodeEval;
                                             |         /* str.CustomAttributes */
    0x00018038 addiu a1, a1, 0x298           |         a1 += aav.0x00000298;
    0x0001803c sw v0, 0xcc(sp)               |         *(var_cch) = v0;
    0x00018040 jalr t9                       |         t9 ();
    0x00018044 sw v0, 0xd0(sp)               |         *(var_d0h) = v0;
    0x00018048 lw v0, 4(v0)                  |         v0 = *((v0 + 1));
    0x0001804c lw v1, (v0)                   |         v1 = *(v0);
    0x00018050 lw gp, 0x30(sp)               |         gp = *(var_30h);
                                             |         if (v1 <= 0) {
    0x00018054 blez v1, 0x18934              |             goto label_15;
                                             |         }
    0x00018058 lw v0, 8(v0)                  |         v0 = *((v0 + 2));
    0x0001805c lw a1, -0x7fd8(gp)            |         a1 = *(gp);
    0x00018060 move a2, s7                   |         a2 = s7;
    0x00018064 lw s2, (v0)                   |         s2 = *(v0);
                                             |         /* str.TriggerTrigger */
    0x00018068 addiu a1, a1, -0x23c          |         a1 += -aav.0x0000023c;
    0x0001806c move t9, s5                   |         t9 = s5;
    0x00018070 move a0, s2                   |         a0 = s2;
    0x00018074 bal 0x17bb0                   |         fcn_00017bb0 ();
    0x00018078 lw gp, 0x30(sp)               |         gp = *(var_30h);
    0x0001807c move a2, s7                   |         a2 = s7;
    0x00018080 move a0, s2                   |         a0 = s2;
    0x00018084 lw a1, -0x7fd8(gp)            |         a1 = *(gp);
    0x00018088 move t9, s5                   |         t9 = s5;
                                             |         /* str.TriggerName */
    0x0001808c addiu a1, a1, -0x248          |         a1 += -aav.0x00000248;
    0x00018090 sw v0, 0xb4(sp)               |         *(var_b4h) = v0;
    0x00018094 bal 0x17bb0                   |         fcn_00017bb0 ();
    0x00018098 lw gp, 0x30(sp)               |         gp = *(var_30h);
    0x0001809c move a2, s7                   |         a2 = s7;
    0x000180a0 move a0, s2                   |         a0 = s2;
    0x000180a4 lw a1, -0x7fd8(gp)            |         a1 = *(gp);
    0x000180a8 sw v0, 0xb8(sp)               |         *(var_b8h) = v0;
    0x000180ac move t9, s5                   |         t9 = s5;
                                             |         /* str.TriggerType */
    0x000180b0 addiu a1, a1, -0x254          |         a1 += -aav.0x00000254;
    0x000180b4 bal 0x17bb0                   |         fcn_00017bb0 ();
    0x000180b8 lw gp, 0x30(sp)               |         gp = *(var_30h);
    0x000180bc sw v0, 0xbc(sp)               |         *(var_bch) = v0;
                                             | label_8:
    0x000180c0 lw a1, 0x38(sp)               |         a1 = *(var_38h);
    0x000180c4 lw v0, 0xa0(sp)               |         v0 = *(var_a0h);
                                             |         if (a1 == 0) {
    0x000180c8 beqz a1, 0x18274              |             goto label_16;
                                             |         }
    0x000180cc lw t9, -0x7d40(gp)            |         t9 = sym.database_repair_queue_add_recording;
                                             |         if (v0 == 0) {
    0x000180d0 beqz v0, 0x18274              |             goto label_16;
                                             |         }
    0x000180d4 lw a3, 0xc(s6)                |         a3 = *((s6 + 3));
    0x000180d8 lw a0, 0x14(s6)               |         a0 = *((s6 + 5));
    0x000180dc sw v0, 0x24(sp)               |         *(var_24h) = v0;
    0x000180e0 lw v0, 0xac(sp)               |         v0 = *(var_ach);
    0x000180e4 lw v1, 0xb0(sp)               |         v1 = *(var_b0h);
    0x000180e8 sw v0, 0x20(sp)               |         *(var_20h) = v0;
    0x000180ec lw v0, 0xbc(sp)               |         v0 = *(var_bch);
    0x000180f0 sw v0, 0x1c(sp)               |         *(var_1ch) = v0;
    0x000180f4 lw v0, 0xb8(sp)               |         v0 = *(var_b8h);
    0x000180f8 lw a2, 0x98(sp)               |         a2 = *(var_98h);
    0x000180fc sw v0, 0x18(sp)               |         *(var_18h) = v0;
    0x00018100 lw v0, 0xb4(sp)               |         v0 = *(var_b4h);
    0x00018104 sw v1, 0x28(sp)               |         *(var_28h) = v1;
    0x00018108 sw v0, 0x14(sp)               |         *(var_14h) = v0;
    0x0001810c lw v0, 0x90(sp)               |         v0 = *(var_90h);
    0x00018110 sw v0, 0x10(sp)               |         *(var_10h) = v0;
    0x00018114 bal 0x193d4                   |         sym_database_repair_queue_add_recording ();
    0x00018118 lw gp, 0x30(sp)               |         gp = *(var_30h);
    0x0001811c addiu a1, s6, 0x14            |         a1 = s6 + 0x14;
    0x00018120 lw t9, -0x7f78(gp)            |         t9 = *(gp);
                                             |         /* fcn.00017cac */
    0x00018124 addiu t9, t9, 0x7cac          |         t9 += 0x7cac;
    0x00018128 addiu a0, s6, 0x10            |         a0 = s6 + 0x10;
    0x0001812c bal 0x17cac                   |         fcn_00017cac ();
    0x00018130 lw gp, 0x30(sp)               |         gp = *(var_30h);
                                             |         if (v0 != 0) {
    0x00018134 bnez v0, 0x182d8              |             goto label_17;
                                             |         }
    0x00018138 lw fp, -0x75d4(gp)            |         fp = *((gp - 7541));
    0x0001813c sw zero, 0x3c(sp)             |         *(var_3ch) = 0;
                                             | label_2:
    0x00018140 lw t9, -0x7134(gp)            |         t9 = sym.imp.xmlXPathFreeObject;
    0x00018144 lw a0, 0xd0(sp)               |         a0 = *(var_d0h);
    0x00018148 jalr t9                       |         t9 ();
    0x0001814c lw gp, 0x30(sp)               |         gp = *(var_30h);
    0x00018150 lw t9, -0x74c8(gp)            |         t9 = *((gp - 7474));
    0x00018154 lw a0, 0x90(sp)               |         a0 = *(var_90h);
    0x00018158 jalr t9                       |         t9 ();
    0x0001815c lw t9, (fp)                   |         t9 = *(fp);
    0x00018160 lw a0, 0x38(sp)               |         a0 = *(var_38h);
    0x00018164 jalr t9                       |         t9 ();
    0x00018168 lw t9, (fp)                   |         t9 = *(fp);
    0x0001816c lw a0, 0x98(sp)               |         a0 = *(var_98h);
    0x00018170 jalr t9                       |         t9 ();
    0x00018174 lw t9, (fp)                   |         t9 = *(fp);
    0x00018178 lw a0, 0xac(sp)               |         a0 = *(var_ach);
    0x0001817c jalr t9                       |         t9 ();
    0x00018180 lw t9, (fp)                   |         t9 = *(fp);
    0x00018184 lw a0, 0xa0(sp)               |         a0 = *(var_a0h);
    0x00018188 jalr t9                       |         t9 ();
    0x0001818c lw t9, (fp)                   |         t9 = *(fp);
    0x00018190 lw a0, 0xb0(sp)               |         a0 = *(var_b0h);
    0x00018194 jalr t9                       |         t9 ();
    0x00018198 lw t9, (fp)                   |         t9 = *(fp);
    0x0001819c lw a0, 0xc8(sp)               |         a0 = *(var_c8h);
    0x000181a0 jalr t9                       |         t9 ();
    0x000181a4 lw t9, (fp)                   |         t9 = *(fp);
    0x000181a8 lw a0, 0xcc(sp)               |         a0 = *(var_cch);
    0x000181ac jalr t9                       |         t9 ();
    0x000181b0 lw t9, (fp)                   |         t9 = *(fp);
    0x000181b4 lw a0, 0xb4(sp)               |         a0 = *(var_b4h);
    0x000181b8 jalr t9                       |         t9 ();
    0x000181bc lw t9, (fp)                   |         t9 = *(fp);
    0x000181c0 lw a0, 0xb8(sp)               |         a0 = *(var_b8h);
    0x000181c4 jalr t9                       |         t9 ();
    0x000181c8 lw t9, (fp)                   |         t9 = *(fp);
    0x000181cc lw a0, 0xbc(sp)               |         a0 = *(var_bch);
    0x000181d0 jalr t9                       |         t9 ();
    0x000181d4 lw gp, 0x30(sp)               |         gp = *(var_30h);
    0x000181d8 b 0x17e70                     |         
                                             |     } while (1);
                                             | label_14:
    0x000181dc lw s2, 0x90(sp)               |     s2 = *(var_90h);
    0x000181e0 lw t9, -0x75c0(gp)            |     t9 = sym.imp.g_path_get_dirname;
    0x000181e4 move a0, s2                   |     a0 = s2;
    0x000181e8 jalr t9                       |     t9 ();
    0x000181ec lw gp, 0x30(sp)               |     gp = *(var_30h);
    0x000181f0 move a0, s2                   |     a0 = s2;
    0x000181f4 lw t9, -0x74c8(gp)            |     t9 = *((gp - 7474));
    0x000181f8 sw v0, 0x90(sp)               |     *(var_90h) = v0;
    0x000181fc jalr t9                       |     t9 ();
    0x00018200 lw gp, 0x30(sp)               |     gp = *(var_30h);
    0x00018204 b 0x17f38                     |     goto label_0;
                                             | label_10:
    0x00018208 lw a3, -0x7fd8(gp)            |     a3 = *(gp);
    0x0001820c lw a2, -0x7fd8(gp)            |     a2 = *(gp);
    0x00018210 lw t9, -0x7220(gp)            |     t9 = sym.imp.g_log;
    0x00018214 sw s0, 0x10(sp)               |     *(var_10h) = s0;
    0x00018218 addiu a3, a3, 0x403c          |     a3 += 0x403c;
                                             |     /* str._sFailed_to_read_and_parse_recording__s */
    0x0001821c addiu a2, a2, 0x1c4           |     a2 += aav.0x000001c4;
    0x00018220 addiu a1, zero, 0x10          |     a1 = 0x10;
    0x00018224 move a0, zero                 |     a0 = 0;
    0x00018228 jalr t9                       |     t9 ();
    0x0001822c move s7, zero                 |     s7 = 0;
    0x00018230 lw gp, 0x30(sp)               |     gp = *(var_30h);
    0x00018234 sw zero, 0x3c(sp)             |     *(var_3ch) = 0;
    0x00018238 sw zero, 0x44(sp)             |     *(var_44h) = 0;
    0x0001823c b 0x17e70                     |     goto label_1;
                                             | label_11:
    0x00018240 lw a3, -0x7fd8(gp)            |     a3 = *(gp);
    0x00018244 lw a2, -0x7fd8(gp)            |     a2 = *(gp);
    0x00018248 lw t9, -0x7220(gp)            |     t9 = sym.imp.g_log;
    0x0001824c sw s0, 0x10(sp)               |     *(var_10h) = s0;
    0x00018250 addiu a3, a3, 0x403c          |     a3 += 0x403c;
                                             |     /* str._sUnable_to_create_new_XPath_context_for_recording__s */
    0x00018254 addiu a2, a2, 0x1ec           |     a2 += aav.0x000001ec;
    0x00018258 addiu a1, zero, 0x10          |     a1 = 0x10;
    0x0001825c move a0, zero                 |     a0 = 0;
    0x00018260 jalr t9                       |     t9 ();
    0x00018264 lw gp, 0x30(sp)               |     gp = *(var_30h);
    0x00018268 sw zero, 0x3c(sp)             |     *(var_3ch) = 0;
    0x0001826c sw zero, 0x44(sp)             |     *(var_44h) = 0;
    0x00018270 b 0x17e70                     |     goto label_1;
                                             | label_16:
    0x00018274 lw a3, -0x7fd8(gp)            |     a3 = *(gp);
    0x00018278 lw a2, -0x7fd8(gp)            |     a2 = *(gp);
    0x0001827c lw t9, -0x7220(gp)            |     t9 = sym.imp.g_log;
    0x00018280 sw s0, 0x10(sp)               |     *(var_10h) = s0;
    0x00018284 addiu a3, a3, 0x403c          |     a3 += 0x403c;
                                             |     /* str._sRecording_file__s_is_not_complete__not_added_to_database */
    0x00018288 addiu a2, a2, 0x2ac           |     a2 += aav.0x000002ac;
    0x0001828c addiu a1, zero, 0x10          |     a1 = 0x10;
    0x00018290 move a0, zero                 |     a0 = 0;
    0x00018294 jalr t9                       |     t9 ();
    0x00018298 lw gp, 0x30(sp)               |     gp = *(var_30h);
    0x0001829c sw zero, 0x3c(sp)             |     *(var_3ch) = 0;
    0x000182a0 lw fp, -0x75d4(gp)            |     fp = *((gp - 7541));
    0x000182a4 b 0x18140                     |     goto label_2;
                                             | label_12:
    0x000182a8 lw a3, -0x7fd8(gp)            |     a3 = *(gp);
    0x000182ac lw a2, -0x7fd8(gp)            |     a2 = *(gp);
    0x000182b0 lw t9, -0x7220(gp)            |     t9 = sym.imp.g_log;
    0x000182b4 sw s0, 0x10(sp)               |     *(var_10h) = s0;
    0x000182b8 addiu a3, a3, 0x403c          |     a3 += 0x403c;
                                             |     /* str._sUnable_to_find_recording_node_in__s */
    0x000182bc addiu a2, a2, 0x230           |     a2 += aav.0x00000230;
    0x000182c0 addiu a1, zero, 0x10          |     a1 = 0x10;
    0x000182c4 move a0, zero                 |     a0 = 0;
    0x000182c8 jalr t9                       |     t9 ();
    0x000182cc lw gp, 0x30(sp)               |     gp = *(var_30h);
    0x000182d0 sw zero, 0x3c(sp)             |     *(var_3ch) = 0;
    0x000182d4 b 0x17e70                     |     goto label_1;
                                             | label_17:
    0x000182d8 lw a1, -0x7fd8(gp)            |     a1 = *(gp);
    0x000182dc lw t9, -0x73a0(gp)            |     t9 = sym.imp.xmlXPathNodeEval;
    0x000182e0 move a2, s7                   |     a2 = s7;
                                             |     /* str.Track */
    0x000182e4 addiu a1, a1, 0x2ec           |     a1 += aav.0x000002ec;
    0x000182e8 move a0, s1                   |     a0 = s1;
    0x000182ec jalr t9                       |     t9 ();
    0x000182f0 lw v1, 4(v0)                  |     v1 = *((v0 + 1));
    0x000182f4 sw v0, 0x9c(sp)               |     *(var_9ch) = v0;
    0x000182f8 lw v0, (v1)                   |     v0 = *(v1);
    0x000182fc lw gp, 0x30(sp)               |     gp = *(var_30h);
                                             |     if (v0 <= 0) {
    0x00018300 blez v0, 0x1896c              |         goto label_18;
                                             |     }
    0x00018304 lw v0, -0x7fd8(gp)            |     v0 = *(gp);
    0x00018308 lw fp, -0x75d4(gp)            |     fp = *((gp - 7541));
    0x0001830c sw v0, 0xa4(sp)               |     *(var_a4h) = v0;
    0x00018310 lw v0, -0x7fd8(gp)            |     v0 = *(gp);
    0x00018314 sw zero, 0x60(sp)             |     *(var_60h) = 0;
    0x00018318 sw v0, 0xa8(sp)               |     *(var_a8h) = v0;
    0x0001831c lw v0, -0x7fd8(gp)            |     v0 = *(gp);
    0x00018320 sw s6, 0x104(sp)              |     *(arg_104h) = s6;
    0x00018324 sw v0, 0xd4(sp)               |     *(var_d4h) = v0;
    0x00018328 lw v0, -0x7fd8(gp)            |     v0 = *(gp);
    0x0001832c sw v0, 0x5c(sp)               |     *(var_5ch) = v0;
    0x00018330 lw v0, 0x3c(sp)               |     v0 = *(var_3ch);
    0x00018334 sw v0, 0x8c(sp)               |     *(var_8ch) = v0;
    0x00018338 lw v0, -0x7fd8(gp)            |     v0 = *(gp);
                                             |     /* str._samplerate___s_ */
    0x0001833c addiu v0, v0, 0x464           |     v0 += aav.0x00000464;
    0x00018340 sw v0, 0xc0(sp)               |     *(var_c0h) = v0;
    0x00018344 lw v0, -0x7fd8(gp)            |     v0 = *(gp);
                                             |     /* str._bitrate___s__n */
    0x00018348 addiu v0, v0, 0x454           |     v0 += aav.0x00000454;
    0x0001834c sw v0, 0xc4(sp)               |     *(var_c4h) = v0;
    0x00018350 lw v0, -0x7fd8(gp)            |     v0 = *(gp);
                                             |     /* str._sRecording__s__has_missing_video_properties */
    0x00018354 addiu v0, v0, 0x35c           |     v0 += aav.0x0000035c;
    0x00018358 sw v0, 0x70(sp)               |     *(var_70h) = v0;
    0x0001835c lw v0, 8(v1)                  |     v0 = *((v1 + 2));
                                             | label_5:
    0x00018360 lw v1, 0x60(sp)               |     v1 = *(var_60h);
    0x00018364 lw t9, -0x75ac(gp)            |     t9 = sym.imp.xmlGetProp;
    0x00018368 sll s0, v1, 2                 |     s0 = v1 << 2;
    0x0001836c lwx s0, s0(v0)                |     __asm ("lwx s0, s0(v0)");
    0x00018370 lw v0, 0xa4(sp)               |     v0 = *(var_a4h);
    0x00018374 move a0, s0                   |     a0 = s0;
    0x00018378 addiu a1, v0, 0x2f4           |     a1 = v0 + aav.0x000002f4;
    0x0001837c jalr t9                       |     t9 ();
    0x00018380 lw gp, 0x30(sp)               |     gp = *(var_30h);
    0x00018384 addiu a1, zero, -1            |     a1 = -1;
    0x00018388 move a0, v0                   |     a0 = v0;
    0x0001838c lw t9, -0x74b8(gp)            |     t9 = sym.imp.g_ascii_strdown;
    0x00018390 sw v0, 0x88(sp)               |     *(var_88h) = v0;
    0x00018394 jalr t9                       |     t9 ();
    0x00018398 lw gp, 0x30(sp)               |     gp = *(var_30h);
    0x0001839c move s6, v0                   |     s6 = v0;
    0x000183a0 lw v0, 0xa8(sp)               |     v0 = *(var_a8h);
    0x000183a4 lw t9, -0x778c(gp)            |     t9 = sym.imp.g_strcmp0;
    0x000183a8 addiu a1, v0, 0x300           |     a1 = v0 + aav.0x00000300;
    0x000183ac move a0, s6                   |     a0 = s6;
    0x000183b0 jalr t9                       |     t9 ();
    0x000183b4 lw gp, 0x30(sp)               |     gp = *(var_30h);
                                             |     if (v0 != 0) {
    0x000183b8 bnez v0, 0x18654              |         goto label_19;
                                             |     }
    0x000183bc lw a1, -0x7fd8(gp)            |     a1 = *(gp);
    0x000183c0 lw t9, -0x73a0(gp)            |     t9 = sym.imp.xmlXPathNodeEval;
    0x000183c4 move a2, s7                   |     a2 = s7;
                                             |     /* str.VideoAttributes */
    0x000183c8 addiu a1, a1, 0x308           |     a1 += aav.0x00000308;
    0x000183cc move a0, s0                   |     a0 = s0;
    0x000183d0 jalr t9                       |     t9 ();
    0x000183d4 lw v1, 4(v0)                  |     v1 = *((v0 + 1));
    0x000183d8 sw v0, 0x64(sp)               |     *(var_64h) = v0;
    0x000183dc lw v0, (v1)                   |     v0 = *(v1);
    0x000183e0 lw gp, 0x30(sp)               |     gp = *(var_30h);
                                             |     if (v0 <= 0) {
    0x000183e4 blez v0, 0x18944              |         goto label_20;
                                             |     }
    0x000183e8 lw v0, -0x7fd8(gp)            |     v0 = *(gp);
    0x000183ec move s3, zero                 |     s3 = 0;
    0x000183f0 sw v0, 0x74(sp)               |     *(var_74h) = v0;
    0x000183f4 lw v0, -0x7fd8(gp)            |     v0 = *(gp);
    0x000183f8 move s4, s3                   |     s4 = s3;
    0x000183fc sw v0, 0x78(sp)               |     *(var_78h) = v0;
    0x00018400 lw v0, -0x7fd8(gp)            |     v0 = *(gp);
    0x00018404 sw s6, 0x6c(sp)               |     *(var_6ch) = s6;
    0x00018408 sw v0, 0x7c(sp)               |     *(var_7ch) = v0;
    0x0001840c lw v0, -0x7fd8(gp)            |     v0 = *(gp);
    0x00018410 sw v0, 0x80(sp)               |     *(var_80h) = v0;
    0x00018414 lw v0, -0x7fd8(gp)            |     v0 = *(gp);
    0x00018418 sw v0, 0x4c(sp)               |     *(var_4ch) = v0;
    0x0001841c lw v0, -0x7fd8(gp)            |     v0 = *(gp);
    0x00018420 sw v0, 0x50(sp)               |     *(var_50h) = v0;
    0x00018424 lw v0, -0x7fd8(gp)            |     v0 = *(gp);
    0x00018428 sw v0, 0x84(sp)               |     *(var_84h) = v0;
    0x0001842c lw v0, -0x74d0(gp)            |     v0 = *((gp - 7476));
    0x00018430 sw v0, 0x94(sp)               |     *(var_94h) = v0;
    0x00018434 lw v0, 0x3c(sp)               |     v0 = *(var_3ch);
    0x00018438 sw v0, 0x48(sp)               |     *(var_48h) = v0;
    0x0001843c lw v0, 0x5c(sp)               |     v0 = *(var_5ch);
    0x00018440 addiu v0, v0, 0x403c          |     v0 += 0x403c;
    0x00018444 sw v0, 0x68(sp)               |     *(var_68h) = v0;
    0x00018448 b 0x18524                     |     
                                             |     while (s2 != 0) {
    0x0001844c lw v0, 0x38(sp)               |         v0 = *(var_38h);
                                             |         if (s3 == 0) {
    0x00018450 beqz s3, 0x185ec              |             goto label_21;
                                             |         }
    0x00018454 lw t9, -0x7220(gp)            |         t9 = sym.imp.g_log;
                                             |         if (s0 == 0) {
    0x00018458 beqz s0, 0x18618              |             goto label_22;
                                             |         }
                                             | label_3:
    0x0001845c lw v0, 0x84(sp)               |         v0 = *(var_84h);
    0x00018460 lw t9, -0x7328(gp)            |         t9 = sym.imp.g_strdup_printf
    0x00018464 move a3, s3                   |         a3 = s3;
    0x00018468 move a2, s2                   |         a2 = s2;
    0x0001846c move a1, s1                   |         a1 = s1;
    0x00018470 addiu a0, v0, 0x38c           |         a0 = v0 + aav.0x0000038c;
    0x00018474 sw s2, 0x14(sp)               |         *(var_14h) = s2;
    0x00018478 sw s1, 0x10(sp)               |         *(var_10h) = s1;
    0x0001847c jalr t9                       |         t9 ();
    0x00018480 lw v1, 0x104(sp)              |         v1 = *(arg_104h);
    0x00018484 lw gp, 0x30(sp)               |         gp = *(var_30h);
    0x00018488 lw a2, 0x6c(sp)               |         a2 = *(var_6ch);
    0x0001848c lw a0, 0x14(v1)               |         a0 = *((v1 + 5));
    0x00018490 lw a3, 0xc(v1)                |         a3 = *((v1 + 3));
    0x00018494 lw a1, 0x38(sp)               |         a1 = *(var_38h);
    0x00018498 lw t9, -0x7d3c(gp)            |         t9 = sym.database_repair_queue_add_stream;
    0x0001849c sw v0, 0x14(sp)               |         *(var_14h) = v0;
    0x000184a0 sw v0, 0x58(sp)               |         *(var_58h) = v0;
    0x000184a4 sw s0, 0x10(sp)               |         *(var_10h) = s0;
    0x000184a8 bal 0x192ec                   |         sym_database_repair_queue_add_stream ();
    0x000184ac lw t9, (fp)                   |         t9 = *(fp);
    0x000184b0 move a0, s1                   |         a0 = s1;
    0x000184b4 jalr t9                       |         t9 ();
    0x000184b8 lw t9, (fp)                   |         t9 = *(fp);
    0x000184bc move a0, s2                   |         a0 = s2;
    0x000184c0 jalr t9                       |         t9 ();
    0x000184c4 lw t9, (fp)                   |         t9 = *(fp);
    0x000184c8 lw a0, 0x54(sp)               |         a0 = *(var_54h);
    0x000184cc addiu s4, s4, 1               |         s4++;
    0x000184d0 jalr t9                       |         t9 ();
    0x000184d4 lw t9, (fp)                   |         t9 = *(fp);
    0x000184d8 move a0, s3                   |         a0 = s3;
    0x000184dc jalr t9                       |         t9 ();
    0x000184e0 lw t9, (fp)                   |         t9 = *(fp);
    0x000184e4 move a0, s0                   |         a0 = s0;
    0x000184e8 jalr t9                       |         t9 ();
    0x000184ec lw t9, (fp)                   |         t9 = *(fp);
    0x000184f0 move a0, s6                   |         a0 = s6;
    0x000184f4 jalr t9                       |         t9 ();
    0x000184f8 lw gp, 0x30(sp)               |         gp = *(var_30h);
    0x000184fc lw v0, 0x58(sp)               |         v0 = *(var_58h);
    0x00018500 lw t9, -0x74c8(gp)            |         t9 = *((gp - 7474));
    0x00018504 move a0, v0                   |         a0 = v0;
    0x00018508 jalr t9                       |         t9 ();
    0x0001850c lw v0, 0x64(sp)               |         v0 = *(var_64h);
    0x00018510 lw v1, 4(v0)                  |         v1 = *((v0 + 1));
    0x00018514 lw v0, (v1)                   |         v0 = *(v1);
    0x00018518 slt v0, s4, v0                |         v0 = (s4 < v0) ? 1 : 0;
    0x0001851c lw gp, 0x30(sp)               |         gp = *(var_30h);
                                             |         if (v0 == 0) {
    0x00018520 beqz v0, 0x18834              |             goto label_23;
                                             |         }
    0x00018524 lw v0, 8(v1)                  |         v0 = *((v1 + 2));
    0x00018528 sll s0, s4, 2                 |         s0 = s4 << 2;
    0x0001852c move a2, s7                   |         a2 = s7;
    0x00018530 lwx s0, s0(v0)                |         __asm ("lwx s0, s0(v0)");
    0x00018534 lw v0, 0x74(sp)               |         v0 = *(var_74h);
    0x00018538 move a0, s0                   |         a0 = s0;
    0x0001853c move t9, s5                   |         t9 = s5;
    0x00018540 addiu a1, v0, 0x318           |         a1 = v0 + aav.0x00000318;
    0x00018544 bal 0x17bb0                   |         fcn_00017bb0 ();
    0x00018548 lw v1, 0x78(sp)               |         v1 = *(var_78h);
    0x0001854c move a0, s0                   |         a0 = s0;
    0x00018550 addiu a1, v1, 0x320           |         a1 = v1 + aav.0x00000320;
    0x00018554 move a2, s7                   |         a2 = s7;
    0x00018558 move t9, s5                   |         t9 = s5;
    0x0001855c move s1, v0                   |         s1 = v0;
    0x00018560 bal 0x17bb0                   |         fcn_00017bb0 ();
    0x00018564 lw v1, 0x7c(sp)               |         v1 = *(var_7ch);
    0x00018568 move a0, s0                   |         a0 = s0;
    0x0001856c addiu a1, v1, 0x328           |         a1 = v1 + aav.0x00000328;
    0x00018570 move a2, s7                   |         a2 = s7;
    0x00018574 move t9, s5                   |         t9 = s5;
    0x00018578 move s2, v0                   |         s2 = v0;
    0x0001857c bal 0x17bb0                   |         fcn_00017bb0 ();
    0x00018580 lw v1, 0x80(sp)               |         v1 = *(var_80h);
    0x00018584 move a0, s0                   |         a0 = s0;
    0x00018588 addiu a1, v1, 0x334           |         a1 = v1 + aav.0x00000334;
    0x0001858c move a2, s7                   |         a2 = s7;
    0x00018590 move t9, s5                   |         t9 = s5;
    0x00018594 sw v0, 0x54(sp)               |         *(var_54h) = v0;
    0x00018598 bal 0x17bb0                   |         fcn_00017bb0 ();
    0x0001859c lw v1, 0x4c(sp)               |         v1 = *(var_4ch);
    0x000185a0 move a0, s0                   |         a0 = s0;
    0x000185a4 addiu a1, v1, 0x348           |         a1 = v1 + aav.0x00000348;
    0x000185a8 move a2, s7                   |         a2 = s7;
    0x000185ac move t9, s5                   |         t9 = s5;
    0x000185b0 move s3, v0                   |         s3 = v0;
    0x000185b4 bal 0x17bb0                   |         fcn_00017bb0 ();
    0x000185b8 lw v1, 0x50(sp)               |         v1 = *(var_50h);
    0x000185bc move a0, s0                   |         a0 = s0;
    0x000185c0 move a2, s7                   |         a2 = s7;
    0x000185c4 addiu a1, v1, 0x354           |         a1 = v1 + aav.0x00000354;
    0x000185c8 move t9, s5                   |         t9 = s5;
    0x000185cc move s0, v0                   |         s0 = v0;
    0x000185d0 bal 0x17bb0                   |         fcn_00017bb0 ();
    0x000185d4 move s6, v0                   |         s6 = v0;
    0x000185d8 lw gp, 0x30(sp)               |         gp = *(var_30h);
                                             |         if (s1 == 0) {
    0x000185dc beqz s1, 0x185e8              |             goto label_24;
                                             |         }
    0x000185e0 bnez s2, 0x1844c              |         
                                             |     }
    0x000185e4 nop                           |     
                                             | label_24:
    0x000185e8 lw v0, 0x38(sp)               |     v0 = *(var_38h);
                                             | label_21:
    0x000185ec lw t9, -0x7220(gp)            |     t9 = sym.imp.g_log;
    0x000185f0 lw a3, 0x68(sp)               |     a3 = *(var_68h);
    0x000185f4 lw a2, 0x70(sp)               |     a2 = *(var_70h);
    0x000185f8 sw v0, 0x10(sp)               |     *(var_10h) = v0;
    0x000185fc addiu a1, zero, 0x10          |     a1 = 0x10;
    0x00018600 move a0, zero                 |     a0 = 0;
    0x00018604 jalr t9                       |     t9 ();
    0x00018608 lw gp, 0x30(sp)               |     gp = *(var_30h);
                                             |     if (s0 != 0) {
    0x0001860c beqz s0, 0x18630              |         
    0x00018610 sw zero, 0x48(sp)             |         *(var_48h) = 0;
    0x00018614 b 0x1845c                     |         goto label_3;
                                             | label_22:
    0x00018618 lw a3, 0x68(sp)               |         a3 = *(var_68h);
    0x0001861c lw a2, 0x70(sp)               |         a2 = *(var_70h);
    0x00018620 sw v0, 0x10(sp)               |         *(var_10h) = v0;
    0x00018624 addiu a1, zero, 0x10          |         a1 = 0x10;
    0x00018628 move a0, zero                 |         a0 = 0;
    0x0001862c jalr t9                       |         t9 ();
                                             |     }
    0x00018630 lw v0, 0x94(sp)               |     v0 = *(var_94h);
    0x00018634 lw t9, (v0)                   |     t9 = *(v0);
    0x00018638 addiu a0, zero, 1             |     a0 = 1;
    0x0001863c jalr t9                       |     t9 ();
    0x00018640 move s0, v0                   |     s0 = v0;
    0x00018644 lw gp, 0x30(sp)               |     gp = *(var_30h);
    0x00018648 sw zero, 0x48(sp)             |     *(var_48h) = 0;
    0x0001864c sb zero, (v0)                 |     *(v0) = 0;
    0x00018650 b 0x1845c                     |     goto label_3;
                                             | label_19:
    0x00018654 lw v0, 0xd4(sp)               |     v0 = *(var_d4h);
    0x00018658 lw t9, -0x778c(gp)            |     t9 = sym.imp.g_strcmp0;
    0x0001865c addiu a1, v0, 0x3d0           |     a1 = v0 + aav.0x000003d0;
    0x00018660 move a0, s6                   |     a0 = s6;
    0x00018664 jalr t9                       |     t9 ();
    0x00018668 lw gp, 0x30(sp)               |     gp = *(var_30h);
                                             |     if (v0 != 0) {
    0x0001866c bnez v0, 0x188e8              |         goto label_25;
                                             |     }
    0x00018670 lw a1, -0x7fd8(gp)            |     a1 = *(gp);
    0x00018674 lw t9, -0x73a0(gp)            |     t9 = sym.imp.xmlXPathNodeEval;
    0x00018678 move a2, s7                   |     a2 = s7;
                                             |     /* str.AudioAttributes */
    0x0001867c addiu a1, a1, 0x3d8           |     a1 += aav.0x000003d8;
    0x00018680 move a0, s0                   |     a0 = s0;
    0x00018684 jalr t9                       |     t9 ();
    0x00018688 lw v1, 4(v0)                  |     v1 = *((v0 + 1));
    0x0001868c sw v0, 0x54(sp)               |     *(var_54h) = v0;
    0x00018690 lw v0, (v1)                   |     v0 = *(v1);
    0x00018694 lw gp, 0x30(sp)               |     gp = *(var_30h);
                                             |     if (v0 <= 0) {
    0x00018698 blez v0, 0x18958              |         goto label_26;
                                             |     }
    0x0001869c lw v0, -0x7fd8(gp)            |     v0 = *(gp);
    0x000186a0 move s0, zero                 |     s0 = 0;
    0x000186a4 sw v0, 0x4c(sp)               |     *(var_4ch) = v0;
    0x000186a8 lw v0, -0x7fd8(gp)            |     v0 = *(gp);
    0x000186ac sw s6, 0x64(sp)               |     *(var_64h) = s6;
    0x000186b0 sw v0, 0x50(sp)               |     *(var_50h) = v0;
    0x000186b4 lw v0, -0x7fd8(gp)            |     v0 = *(gp);
    0x000186b8 lw s4, 0x104(sp)              |     s4 = *(arg_104h);
    0x000186bc sw v0, 0x58(sp)               |     *(var_58h) = v0;
    0x000186c0 lw v0, -0x7fd8(gp)            |     v0 = *(gp);
    0x000186c4 sw v0, 0x68(sp)               |     *(var_68h) = v0;
    0x000186c8 lw v0, 0x3c(sp)               |     v0 = *(var_3ch);
    0x000186cc sw v0, 0x48(sp)               |     *(var_48h) = v0;
    0x000186d0 b 0x18794                     |     
                                             |     while (s1 != 0) {
    0x000186d4 jalr t9                       |         t9 ();
    0x000186d8 nop                           |         
    0x000186dc lw gp, 0x30(sp)               |         gp = *(var_30h);
    0x000186e0 move s6, v0                   |         s6 = v0;
    0x000186e4 lw t9, -0x772c(gp)            |         t9 = sym.imp.g_string_append_printf
                                             |         if (s3 != 0) {
    0x000186e8 beqz s3, 0x18700              |             
    0x000186ec lw a1, 0xc4(sp)               |             a1 = *(var_c4h);
    0x000186f0 move a2, s3                   |             a2 = s3;
    0x000186f4 move a0, v0                   |             a0 = v0;
    0x000186f8 jalr t9                       |             t9 ();
    0x000186fc lw gp, 0x30(sp)               |             gp = *(var_30h);
                                             |         }
    0x00018700 lw t9, -0x772c(gp)            |         t9 = sym.imp.g_string_append_printf
                                             |         if (s2 != 0) {
    0x00018704 beqz s2, 0x1871c              |             
    0x00018708 lw a1, 0xc0(sp)               |             a1 = *(var_c0h);
    0x0001870c move a2, s2                   |             a2 = s2;
    0x00018710 move a0, s6                   |             a0 = s6;
    0x00018714 jalr t9                       |             t9 ();
    0x00018718 lw gp, 0x30(sp)               |             gp = *(var_30h);
                                             |         }
    0x0001871c lw v1, (s6)                   |         v1 = *(s6);
    0x00018720 lw a3, 0xc(s4)                |         a3 = *((s4 + 3));
    0x00018724 lw a0, 0x14(s4)               |         a0 = *((s4 + 5));
    0x00018728 lw t9, -0x7d3c(gp)            |         t9 = sym.database_repair_queue_add_stream;
    0x0001872c lw a2, 0x64(sp)               |         a2 = *(var_64h);
    0x00018730 lw a1, 0x38(sp)               |         a1 = *(var_38h);
    0x00018734 sw v1, 0x14(sp)               |         *(var_14h) = v1;
    0x00018738 sw s1, 0x10(sp)               |         *(var_10h) = s1;
    0x0001873c bal 0x192ec                   |         sym_database_repair_queue_add_stream ();
    0x00018740 lw gp, 0x30(sp)               |         gp = *(var_30h);
    0x00018744 addiu a1, zero, 1             |         a1 = 1;
    0x00018748 lw t9, -0x75a8(gp)            |         t9 = sym.imp.g_string_free;
    0x0001874c move a0, s6                   |         a0 = s6;
    0x00018750 jalr t9                       |         t9 ();
                                             | label_4:
    0x00018754 lw t9, (fp)                   |         t9 = *(fp);
    0x00018758 move a0, s1                   |         a0 = s1;
    0x0001875c jalr t9                       |         t9 ();
    0x00018760 lw t9, (fp)                   |         t9 = *(fp);
    0x00018764 move a0, s3                   |         a0 = s3;
    0x00018768 jalr t9                       |         t9 ();
    0x0001876c lw t9, (fp)                   |         t9 = *(fp);
    0x00018770 move a0, s2                   |         a0 = s2;
    0x00018774 jalr t9                       |         t9 ();
    0x00018778 lw v0, 0x54(sp)               |         v0 = *(var_54h);
    0x0001877c addiu s0, s0, 1               |         s0++;
    0x00018780 lw v1, 4(v0)                  |         v1 = *((v0 + 1));
    0x00018784 lw v0, (v1)                   |         v0 = *(v1);
    0x00018788 slt v0, s0, v0                |         v0 = (s0 < v0) ? 1 : 0;
    0x0001878c lw gp, 0x30(sp)               |         gp = *(var_30h);
                                             |         if (v0 == 0) {
    0x00018790 beqz v0, 0x1891c              |             goto label_27;
                                             |         }
    0x00018794 lw v0, 8(v1)                  |         v0 = *((v1 + 2));
    0x00018798 sll s2, s0, 2                 |         s2 = s0 << 2;
    0x0001879c move a2, s7                   |         a2 = s7;
    0x000187a0 lwx s2, s2(v0)                |         __asm ("lwx s2, s2(v0)");
    0x000187a4 lw v0, 0x4c(sp)               |         v0 = *(var_4ch);
    0x000187a8 move a0, s2                   |         a0 = s2;
    0x000187ac move t9, s5                   |         t9 = s5;
    0x000187b0 addiu a1, v0, 0x348           |         a1 = v0 + aav.0x00000348;
    0x000187b4 bal 0x17bb0                   |         fcn_00017bb0 ();
    0x000187b8 lw v1, 0x50(sp)               |         v1 = *(var_50h);
    0x000187bc move a0, s2                   |         a0 = s2;
    0x000187c0 addiu a1, v1, 0x354           |         a1 = v1 + aav.0x00000354;
    0x000187c4 move a2, s7                   |         a2 = s7;
    0x000187c8 move t9, s5                   |         t9 = s5;
    0x000187cc move s1, v0                   |         s1 = v0;
    0x000187d0 bal 0x17bb0                   |         fcn_00017bb0 ();
    0x000187d4 lw v1, 0x58(sp)               |         v1 = *(var_58h);
    0x000187d8 move a0, s2                   |         a0 = s2;
    0x000187dc addiu a1, v1, 0x3e8           |         a1 = v1 + aav.0x000003e8;
    0x000187e0 move t9, s5                   |         t9 = s5;
    0x000187e4 move a2, s7                   |         a2 = s7;
    0x000187e8 move s3, v0                   |         s3 = v0;
    0x000187ec bal 0x17bb0                   |         fcn_00017bb0 ();
    0x000187f0 lw gp, 0x30(sp)               |         gp = *(var_30h);
    0x000187f4 lw v1, 0x5c(sp)               |         v1 = *(var_5ch);
    0x000187f8 move s2, v0                   |         s2 = v0;
    0x000187fc addiu a0, v1, 0x403c          |         a0 = v1 + 0x403c;
    0x00018800 lw t9, -0x71b4(gp)            |         t9 = sym.imp.g_string_new;
    0x00018804 bnez s1, 0x186d4              |         
                                             |     }
    0x00018808 lw v0, 0x38(sp)               |     v0 = *(var_38h);
    0x0001880c lw t9, -0x7220(gp)            |     t9 = sym.imp.g_log;
    0x00018810 sw v0, 0x10(sp)               |     *(var_10h) = v0;
    0x00018814 lw v0, 0x68(sp)               |     v0 = *(var_68h);
    0x00018818 move a3, a0                   |     a3 = a0;
    0x0001881c addiu a2, v0, 0x3f4           |     a2 = v0 + 0x3f4;
    0x00018820 addiu a1, zero, 0x10          |     a1 = 0x10;
    0x00018824 move a0, zero                 |     a0 = 0;
    0x00018828 jalr t9                       |     t9 ();
    0x0001882c sw zero, 0x48(sp)             |     *(var_48h) = 0;
    0x00018830 b 0x18754                     |     goto label_4;
                                             | label_23:
    0x00018834 lw t9, -0x7134(gp)            |     t9 = sym.imp.xmlXPathFreeObject;
    0x00018838 lw a0, 0x64(sp)               |     a0 = *(var_64h);
    0x0001883c lw s6, 0x6c(sp)               |     s6 = *(var_6ch);
    0x00018840 jalr t9                       |     t9 ();
    0x00018844 lw v0, 0x8c(sp)               |     v0 = *(var_8ch);
                                             | label_7:
    0x00018848 lw v1, 0x48(sp)               |     v1 = *(var_48h);
                                             |     if (v1 != 0) {
    0x0001884c movz v0, zero, v1             |         v0 = 0;
                                             |     }
    0x00018850 sw v0, 0x8c(sp)               |     *(var_8ch) = v0;
                                             | label_6:
    0x00018854 lw t9, (fp)                   |     t9 = *(fp);
                                             | label_9:
    0x00018858 lw a0, 0x88(sp)               |     a0 = *(var_88h);
    0x0001885c jalr t9                       |     t9 ();
    0x00018860 lw gp, 0x30(sp)               |     gp = *(var_30h);
    0x00018864 lw t9, -0x74c8(gp)            |     t9 = *((gp - 7474));
    0x00018868 move a0, s6                   |     a0 = s6;
    0x0001886c jalr t9                       |     t9 ();
    0x00018870 lw v0, 0x9c(sp)               |     v0 = *(var_9ch);
    0x00018874 lw gp, 0x30(sp)               |     gp = *(var_30h);
    0x00018878 lw v1, 4(v0)                  |     v1 = *((v0 + 1));
    0x0001887c lw v0, 0x60(sp)               |     v0 = *(var_60h);
    0x00018880 addiu v0, v0, 1               |     v0++;
    0x00018884 move a0, v0                   |     a0 = v0;
    0x00018888 sw v0, 0x60(sp)               |     *(var_60h) = v0;
    0x0001888c lw v0, (v1)                   |     v0 = *(v1);
    0x00018890 slt v0, a0, v0                |     v0 = (a0 < v0) ? 1 : 0;
    0x00018894 lw v0, 8(v1)                  |     v0 = *((v1 + 2));
                                             |     if (v0 == 0) {
    0x00018898 bnel v0, zero, 0x18360        |         goto label_5;
                                             |     }
    0x0001889c lw t9, -0x7134(gp)            |     t9 = sym.imp.xmlXPathFreeObject;
    0x000188a0 lw a0, 0x9c(sp)               |     a0 = *(var_9ch);
    0x000188a4 jalr t9                       |     t9 ();
    0x000188a8 lw v0, 0x8c(sp)               |     v0 = *(var_8ch);
    0x000188ac lw gp, 0x30(sp)               |     gp = *(var_30h);
                                             |     if (v0 != 0) {
    0x000188b0 bnez v0, 0x18140              |         goto label_2;
                                             |     }
    0x000188b4 lw a3, -0x7fd8(gp)            |     a3 = *(gp);
    0x000188b8 lw a2, -0x7fd8(gp)            |     a2 = *(gp);
    0x000188bc lw v0, 0x38(sp)               |     v0 = *(var_38h);
    0x000188c0 lw t9, -0x7220(gp)            |     t9 = sym.imp.g_log;
    0x000188c4 sw v0, 0x10(sp)               |     *(var_10h) = v0;
    0x000188c8 addiu a3, a3, 0x403c          |     a3 += 0x403c;
                                             |     /* str._sRecording__s__has_problems_with_its_track_s_ */
    0x000188cc addiu a2, a2, 0x4ac           |     a2 += 0x4ac;
    0x000188d0 addiu a1, zero, 0x10          |     a1 = 0x10;
    0x000188d4 move a0, zero                 |     a0 = 0;
    0x000188d8 jalr t9                       |     t9 ();
    0x000188dc lw gp, 0x30(sp)               |     gp = *(var_30h);
    0x000188e0 sw zero, 0x3c(sp)             |     *(var_3ch) = 0;
    0x000188e4 b 0x18140                     |     goto label_2;
                                             | label_25:
    0x000188e8 lw v0, 0x38(sp)               |     v0 = *(var_38h);
    0x000188ec lw a2, -0x7fd8(gp)            |     a2 = *(gp);
    0x000188f0 sw v0, 0x14(sp)               |     *(var_14h) = v0;
    0x000188f4 lw v0, 0x5c(sp)               |     v0 = *(var_5ch);
    0x000188f8 lw t9, -0x7220(gp)            |     t9 = sym.imp.g_log;
    0x000188fc sw s6, 0x10(sp)               |     *(var_10h) = s6;
    0x00018900 addiu a3, v0, 0x403c          |     a3 = v0 + 0x403c;
                                             |     /* str._sUnknown_track_token__s_in_recording__s_XML_file */
    0x00018904 addiu a2, a2, 0x478           |     a2 += aav.0x00000478;
    0x00018908 addiu a1, zero, 0x10          |     a1 = 0x10;
    0x0001890c move a0, zero                 |     a0 = 0;
    0x00018910 jalr t9                       |     t9 ();
    0x00018914 sw zero, 0x8c(sp)             |     *(var_8ch) = 0;
    0x00018918 b 0x18854                     |     goto label_6;
                                             | label_27:
    0x0001891c lw t9, -0x7134(gp)            |     t9 = sym.imp.xmlXPathFreeObject;
    0x00018920 lw a0, 0x54(sp)               |     a0 = *(var_54h);
    0x00018924 lw s6, 0x64(sp)               |     s6 = *(var_64h);
    0x00018928 jalr t9                       |     t9 ();
    0x0001892c lw v0, 0x8c(sp)               |     v0 = *(var_8ch);
    0x00018930 b 0x18848                     |     goto label_7;
                                             | label_15:
    0x00018934 sw zero, 0xbc(sp)             |     *(var_bch) = 0;
    0x00018938 sw zero, 0xb8(sp)             |     *(var_b8h) = 0;
    0x0001893c sw zero, 0xb4(sp)             |     *(var_b4h) = 0;
    0x00018940 b 0x180c0                     |     goto label_8;
                                             | label_20:
    0x00018944 lw t9, -0x7134(gp)            |     t9 = sym.imp.xmlXPathFreeObject;
    0x00018948 lw a0, 0x64(sp)               |     a0 = *(var_64h);
    0x0001894c jalr t9                       |     t9 ();
    0x00018950 lw t9, (fp)                   |     t9 = *(fp);
    0x00018954 b 0x18858                     |     goto label_9;
                                             | label_26:
    0x00018958 lw t9, -0x7134(gp)            |     t9 = sym.imp.xmlXPathFreeObject;
    0x0001895c lw a0, 0x54(sp)               |     a0 = *(var_54h);
    0x00018960 jalr t9                       |     t9 ();
    0x00018964 lw t9, (fp)                   |     t9 = *(fp);
    0x00018968 b 0x18858                     |     goto label_9;
                                             | label_18:
    0x0001896c lw t9, -0x7134(gp)            |     t9 = sym.imp.xmlXPathFreeObject;
    0x00018970 lw a0, 0x9c(sp)               |     a0 = *(var_9ch);
    0x00018974 jalr t9                       |     t9 ();
    0x00018978 lw gp, 0x30(sp)               |     gp = *(var_30h);
    0x0001897c lw fp, -0x75d4(gp)            |     fp = *((gp - 7541));
    0x00018980 b 0x18140                     |     goto label_2;
                                             | }
    ; assembly                               | /* r2dec pseudo code output */
                                             | /* /logs/firmware/unblob_extracted/firmware_extract/4325012-58052244.squashfs_v4_le_extract/usr/bin/indexer @ 0x3a0e8 */
                                             | #include <stdint.h>
                                             |  
    ; (fcn) sym.quote ()                     | void quote () {
    0x0003a0e8 lui gp, 5                     |     
    0x0003a0ec addiu gp, gp, -0x3fe8         |     
    0x0003a0f0 addu gp, gp, t9               |     gp += t9;
    0x0003a0f4 addiu sp, sp, -0x28           |     
    0x0003a0f8 lw t9, -0x71b4(gp)            |     t9 = sym.imp.g_string_new;
    0x0003a0fc sw s1, 0x20(sp)               |     *(var_20h) = s1;
    0x0003a100 move s1, a0                   |     s1 = a0;
    0x0003a104 lw a0, -0x7fd8(gp)            |     a0 = *(gp);
    0x0003a108 sw gp, 0x10(sp)               |     *(var_10h) = gp;
    0x0003a10c sw s0, 0x1c(sp)               |     *(var_1ch) = s0;
    0x0003a110 sw ra, 0x24(sp)               |     *(var_24h) = ra;
    0x0003a114 addiu a0, a0, 0x403c          |     a0 += 0x403c;
    0x0003a118 jalr t9                       |     t9 ();
    0x0003a11c move s0, v0                   |     s0 = v0;
    0x0003a120 lw gp, 0x10(sp)               |     gp = *(var_10h);
                                             |     if (s1 != 0) {
    0x0003a124 beqz s1, 0x3a158              |         
    0x0003a128 lw a1, -0x7f50(gp)            |         a1 = *((gp - 8148));
    0x0003a12c lw t9, -0x772c(gp)            |         t9 = sym.imp.g_string_append_printf
    0x0003a130 move a2, s1                   |         a2 = s1;
    0x0003a134 move a0, v0                   |         a0 = v0;
                                             |         /* esilref: ''&s'' */
    0x0003a138 addiu a1, a1, -0x4cd0         |         a1 += -0x4cd0;
    0x0003a13c jalr t9                       |         t9 ();
    0x0003a140 lw ra, 0x24(sp)               |         ra = *(var_24h);
    0x0003a144 move v0, s0                   |         v0 = s0;
    0x0003a148 lw s1, 0x20(sp)               |         s1 = *(var_20h);
    0x0003a14c lw s0, 0x1c(sp)               |         s0 = *(var_1ch);
    0x0003a150 addiu sp, sp, 0x28            |         
    0x0003a154 jr ra                         |         return v0;
                                             |     }
    0x0003a158 lw a1, -0x7fd8(gp)            |     a1 = *(gp);
    0x0003a15c lw t9, -0x76d0(gp)            |     t9 = sym.imp.g_string_append;
                                             |     /* esilref: 'NULL' */
    0x0003a160 addiu a1, a1, -0x7dc          |     a1 += -0x7dc;
    0x0003a164 move a0, v0                   |     a0 = v0;
    0x0003a168 jalr t9                       |     t9 ();
    0x0003a16c lw ra, 0x24(sp)               |     ra = *(var_24h);
    0x0003a170 move v0, s0                   |     v0 = s0;
    0x0003a174 lw s1, 0x20(sp)               |     s1 = *(var_20h);
    0x0003a178 lw s0, 0x1c(sp)               |     s0 = *(var_1ch);
    0x0003a17c addiu sp, sp, 0x28            |     
    0x0003a180 jr ra                         |     return v0;
                                             | }
    ; assembly                                               | /* r2dec pseudo code output */
                                                             | /* /logs/firmware/unblob_extracted/firmware_extract/4325012-58052244.squashfs_v4_le_extract/usr/bin/indexer @ 0x3f6f4 */
                                                             | #include <stdint.h>
                                                             |  
    ; (fcn) sym.sql_block_min_max_start_stop_time ()         | void sql_block_min_max_start_stop_time () {
    0x0003f6f4 lui gp, 4                                     |     
    0x0003f6f8 addiu gp, gp, 0x6a0c                          |     
    0x0003f6fc addu gp, gp, t9                               |     gp += t9;
    0x0003f700 addiu sp, sp, -0x40                           |     
    0x0003f704 sw gp, 0x20(sp)                               |     *(var_20h) = gp;
    0x0003f708 sw ra, 0x3c(sp)                               |     *(var_3ch) = ra;
    0x0003f70c sw s4, 0x38(sp)                               |     *(var_38h) = s4;
    0x0003f710 sw s3, 0x34(sp)                               |     *(var_34h) = s3;
    0x0003f714 sw s2, 0x30(sp)                               |     *(var_30h) = s2;
    0x0003f718 sw s1, 0x2c(sp)                               |     *(var_2ch) = s1;
    0x0003f71c sw s0, 0x28(sp)                               |     *(var_28h) = s0;
    0x0003f720 lw v0, -0x7fd8(gp)                            |     v0 = *(gp);
                                                             |     if (a0 != 0) {
    0x0003f724 beqz a0, 0x3f80c                              |         
    0x0003f728 move s1, a1                                   |         s1 = a1;
                                                             |         if (a1 == 0) {
    0x0003f72c beqz a1, 0x3f830                              |             goto label_0;
                                                             |         }
    0x0003f730 move s2, a2                                   |         s2 = a2;
                                                             |         if (a2 == 0) {
    0x0003f734 beqz a2, 0x3f85c                              |             goto label_1;
                                                             |         }
    0x0003f738 move s3, a3                                   |         s3 = a3;
                                                             |         if (a3 == 0) {
    0x0003f73c beqz a3, 0x3f888                              |             goto label_2;
                                                             |         }
    0x0003f740 move s0, a0                                   |         s0 = a0;
    0x0003f744 lw a0, -0x7fd8(gp)                            |         a0 = *(gp);
    0x0003f748 lw t9, -0x71b4(gp)                            |         t9 = sym.imp.g_string_new;
    0x0003f74c addiu a0, a0, 0x403c                          |         a0 += 0x403c;
    0x0003f750 jalr t9                                       |         t9 ();
    0x0003f754 lw gp, 0x20(sp)                               |         gp = *(var_20h);
    0x0003f758 move a0, s0                                   |         a0 = s0;
    0x0003f75c sw s1, 0x10(sp)                               |         *(var_10h) = s1;
    0x0003f760 lw v1, -0x7fd8(gp)                            |         v1 = *(gp);
    0x0003f764 lw a3, -0x7fd8(gp)                            |         a3 = *(gp);
    0x0003f768 lw a2, -0x7f50(gp)                            |         a2 = *((gp - 8148));
    0x0003f76c lw a1, -0x7fd8(gp)                            |         a1 = *(gp);
    0x0003f770 addiu v1, v1, 0xf80                           |         v1 += 0xf80;
    0x0003f774 lw t9, -0x7a74(gp)                            |         t9 = sym.sql_select_column_from_table_full;
    0x0003f778 sw v1, 0x14(sp)                               |         *(var_14h) = v1;
                                                             |         /* str.filename */
    0x0003f77c addiu a3, a3, 0x7dc                           |         a3 += 0x7dc;
                                                             |         /* esilref: 'id' */
    0x0003f780 addiu a2, a2, -0x6dbc                         |         a2 += -0x6dbc;
                                                             |         /* esilref: 'recordings' */
    0x0003f784 addiu a1, a1, -0x21e8                         |         a1 += -0x21e8;
    0x0003f788 sw zero, 0x1c(sp)                             |         *(var_1ch) = 0;
    0x0003f78c sw zero, 0x18(sp)                             |         *(var_18h_2) = 0;
    0x0003f790 move s1, v0                                   |         s1 = v0;
    0x0003f794 bal 0x3d76c                                   |         sym_sql_select_column_from_table_full ();
    0x0003f798 lw gp, 0x20(sp)                               |         gp = *(var_20h);
    0x0003f79c move s4, v0                                   |         s4 = v0;
    0x0003f7a0 lw v0, (v0)                                   |         v0 = *(v0);
    0x0003f7a4 lw a1, -0x7fd8(gp)                            |         a1 = *(gp);
    0x0003f7a8 lw t9, -0x772c(gp)                            |         t9 = sym.imp.g_string_append_printf
    0x0003f7ac move a3, s2                                   |         a3 = s2;
    0x0003f7b0 move a2, s3                                   |         a2 = s3;
    0x0003f7b4 move a0, s1                                   |         a0 = s1;
    0x0003f7b8 sw v0, 0x14(sp)                               |         *(var_14h) = v0;
    0x0003f7bc sw s0, 0x10(sp)                               |         *(var_10h) = s0;
                                                             |         /* str.SELECT__s_blocks._s__FROM__s.blocks_WHERE_recording_id__s_ */
    0x0003f7c0 addiu a1, a1, 0x797c                          |         a1 += 0x797c;
    0x0003f7c4 jalr t9                                       |         t9 ();
    0x0003f7c8 lw gp, 0x20(sp)                               |         gp = *(var_20h);
    0x0003f7cc move a0, s4                                   |         a0 = s4;
    0x0003f7d0 lw t9, -0x75a8(gp)                            |         t9 = sym.imp.g_string_free;
    0x0003f7d4 addiu a1, zero, 1                             |         a1 = 1;
    0x0003f7d8 jalr t9                                       |         t9 ();
    0x0003f7dc lw gp, 0x20(sp)                               |         gp = *(var_20h);
    0x0003f7e0 lw ra, 0x3c(sp)                               |         ra = *(var_3ch);
    0x0003f7e4 lw s4, 0x38(sp)                               |         s4 = *(var_38h);
    0x0003f7e8 lw s3, 0x34(sp)                               |         s3 = *(var_34h);
    0x0003f7ec lw s2, 0x30(sp)                               |         s2 = *(var_30h);
    0x0003f7f0 lw s0, 0x28(sp)                               |         s0 = *(var_28h);
    0x0003f7f4 move a0, s1                                   |         a0 = s1;
    0x0003f7f8 lw t9, -0x75a8(gp)                            |         t9 = sym.imp.g_string_free;
    0x0003f7fc lw s1, 0x2c(sp)                               |         s1 = *(var_2ch);
    0x0003f800 move a1, zero                                 |         a1 = 0;
    0x0003f804 addiu sp, sp, 0x40                            |         
    0x0003f808 jr t9                                         |         t9 ();
                                                             |     }
    0x0003f80c lw a3, -0x7fd8(gp)                            |     a3 = *(gp);
    0x0003f810 lw a1, -0x7fd8(gp)                            |     a1 = *(gp);
                                                             |     /* str.storage_id */
    0x0003f814 addiu v0, v0, -0x3264                         |     v0 += -0x3264;
    0x0003f818 lw t9, -0x76c0(gp)                            |     t9 = sym.imp.g_assertion_message_expr;
    0x0003f81c sw v0, 0x10(sp)                               |     *(var_10h) = v0;
                                                             |     /* str.sql_block_min_max_start_stop_time */
    0x0003f820 addiu a3, a3, 0x7db8                          |     a3 += 0x7db8;
    0x0003f824 addiu a2, zero, 0x352                         |     a2 = 0x352;
                                                             |     /* str.sql_read.c */
    0x0003f828 addiu a1, a1, 0x6bd4                          |     a1 += 0x6bd4;
    0x0003f82c jalr t9                                       |     t9 ();
                                                             | label_0:
    0x0003f830 lw v0, -0x7fd8(gp)                            |     v0 = *(gp);
    0x0003f834 lw a3, -0x7fd8(gp)                            |     a3 = *(gp);
    0x0003f838 lw a1, -0x7fd8(gp)                            |     a1 = *(gp);
                                                             |     /* esilref: 'recording_id' */
    0x0003f83c addiu v0, v0, 0x78c8                          |     v0 += 0x78c8;
    0x0003f840 lw t9, -0x76c0(gp)                            |     t9 = sym.imp.g_assertion_message_expr;
    0x0003f844 sw v0, 0x10(sp)                               |     *(var_10h) = v0;
                                                             |     /* str.sql_block_min_max_start_stop_time */
    0x0003f848 addiu a3, a3, 0x7db8                          |     a3 += 0x7db8;
    0x0003f84c addiu a2, zero, 0x353                         |     a2 = 0x353;
                                                             |     /* str.sql_read.c */
    0x0003f850 addiu a1, a1, 0x6bd4                          |     a1 += 0x6bd4;
    0x0003f854 move a0, zero                                 |     a0 = 0;
    0x0003f858 jalr t9                                       |     t9 ();
                                                             | label_1:
    0x0003f85c lw v0, -0x7fd8(gp)                            |     v0 = *(gp);
    0x0003f860 lw a3, -0x7fd8(gp)                            |     a3 = *(gp);
    0x0003f864 lw a1, -0x7fd8(gp)                            |     a1 = *(gp);
                                                             |     /* esilref: 'column' */
    0x0003f868 addiu v0, v0, 0x65fc                          |     v0 += 0x65fc;
    0x0003f86c lw t9, -0x76c0(gp)                            |     t9 = sym.imp.g_assertion_message_expr;
    0x0003f870 sw v0, 0x10(sp)                               |     *(var_10h) = v0;
                                                             |     /* str.sql_block_min_max_start_stop_time */
    0x0003f874 addiu a3, a3, 0x7db8                          |     a3 += 0x7db8;
    0x0003f878 addiu a2, zero, 0x354                         |     a2 = aav.0x00000354;
                                                             |     /* str.sql_read.c */
    0x0003f87c addiu a1, a1, 0x6bd4                          |     a1 += 0x6bd4;
    0x0003f880 move a0, zero                                 |     a0 = 0;
    0x0003f884 jalr t9                                       |     t9 ();
                                                             | label_2:
    0x0003f888 lw v0, -0x7fd8(gp)                            |     v0 = *(gp);
    0x0003f88c lw a3, -0x7fd8(gp)                            |     a3 = *(gp);
    0x0003f890 lw a1, -0x7fd8(gp)                            |     a1 = *(gp);
                                                             |     /* str.max_min */
    0x0003f894 addiu v0, v0, 0x7974                          |     v0 += aav.0x00007974;
    0x0003f898 lw t9, -0x76c0(gp)                            |     t9 = sym.imp.g_assertion_message_expr;
    0x0003f89c sw v0, 0x10(sp)                               |     *(var_10h) = v0;
                                                             |     /* str.sql_block_min_max_start_stop_time */
    0x0003f8a0 addiu a3, a3, 0x7db8                          |     a3 += 0x7db8;
    0x0003f8a4 addiu a2, zero, 0x355                         |     a2 = 0x355;
                                                             |     /* str.sql_read.c */
    0x0003f8a8 addiu a1, a1, 0x6bd4                          |     a1 += 0x6bd4;
    0x0003f8ac move a0, zero                                 |     a0 = 0;
    0x0003f8b0 jalr t9                                       |     return t9 ();
                                                             | }
    ; assembly                                       | /* r2dec pseudo code output */
                                                     | /* /logs/firmware/unblob_extracted/firmware_extract/4325012-58052244.squashfs_v4_le_extract/usr/bin/indexer @ 0x3dae4 */
                                                     | #include <stdint.h>
                                                     |  
    ; (fcn) sym.sql_blocks_by_recording_id ()        | void sql_blocks_by_recording_id () {
    0x0003dae4 lui gp, 5                             |     
    0x0003dae8 addiu gp, gp, -0x79e4                 |     
    0x0003daec addu gp, gp, t9                       |     gp += t9;
    0x0003daf0 addiu sp, sp, -0x38                   |     
    0x0003daf4 lw t9, -0x71b4(gp)                    |     t9 = sym.imp.g_string_new;
    0x0003daf8 sw s0, 0x28(sp)                       |     *(var_28h) = s0;
    0x0003dafc move s0, a0                           |     s0 = a0;
    0x0003db00 lw a0, -0x7fd8(gp)                    |     a0 = *(gp);
    0x0003db04 sw ra, 0x34(sp)                       |     *(var_34h) = ra;
    0x0003db08 sw s2, 0x30(sp)                       |     *(var_30h) = s2;
    0x0003db0c sw s1, 0x2c(sp)                       |     *(var_2ch) = s1;
    0x0003db10 sw gp, 0x20(sp)                       |     *(var_20h) = gp;
    0x0003db14 addiu a0, a0, 0x403c                  |     a0 += 0x403c;
    0x0003db18 move s2, a1                           |     s2 = a1;
    0x0003db1c jalr t9                               |     t9 ();
    0x0003db20 lw gp, 0x20(sp)                       |     gp = *(var_20h);
    0x0003db24 move a0, s0                           |     a0 = s0;
    0x0003db28 move a3, zero                         |     a3 = 0;
    0x0003db2c lw v1, -0x7fd8(gp)                    |     v1 = *(gp);
    0x0003db30 lw a2, -0x7f50(gp)                    |     a2 = *((gp - 8148));
    0x0003db34 lw a1, -0x7fd8(gp)                    |     a1 = *(gp);
    0x0003db38 addiu v1, v1, 0xf80                   |     v1 += 0xf80;
    0x0003db3c lw t9, -0x7a74(gp)                    |     t9 = sym.sql_select_column_from_table_full;
    0x0003db40 sw v1, 0x14(sp)                       |     *(var_14h) = v1;
                                                     |     /* esilref: 'id' */
    0x0003db44 addiu a2, a2, -0x6dbc                 |     a2 += -0x6dbc;
                                                     |     /* esilref: 'recordings' */
    0x0003db48 addiu a1, a1, -0x21e8                 |     a1 += -0x21e8;
    0x0003db4c sw zero, 0x1c(sp)                     |     *(var_1ch) = 0;
    0x0003db50 sw zero, 0x18(sp)                     |     *(var_18h) = 0;
    0x0003db54 sw zero, 0x10(sp)                     |     *(var_10h) = 0;
    0x0003db58 move s0, v0                           |     s0 = v0;
    0x0003db5c bal 0x3d76c                           |     sym_sql_select_column_from_table_full ();
    0x0003db60 lw gp, 0x20(sp)                       |     gp = *(var_20h);
    0x0003db64 lw a2, (v0)                           |     a2 = *(v0);
    0x0003db68 move a3, s2                           |     a3 = s2;
    0x0003db6c lw a1, -0x7fd8(gp)                    |     a1 = *(gp);
    0x0003db70 lw t9, -0x772c(gp)                    |     t9 = sym.imp.g_string_append_printf
    0x0003db74 move a0, s0                           |     a0 = s0;
                                                     |     /* str.WHERE_blocks.recording_id_IN___s_WHERE__s_ */
    0x0003db78 addiu a1, a1, 0x6ec4                  |     a1 += 0x6ec4;
    0x0003db7c move s1, v0                           |     s1 = v0;
    0x0003db80 jalr t9                               |     t9 ();
    0x0003db84 lw gp, 0x20(sp)                       |     gp = *(var_20h);
    0x0003db88 move a0, s1                           |     a0 = s1;
    0x0003db8c lw t9, -0x75a8(gp)                    |     t9 = sym.imp.g_string_free;
    0x0003db90 addiu a1, zero, 1                     |     a1 = 1;
    0x0003db94 jalr t9                               |     t9 ();
    0x0003db98 lw ra, 0x34(sp)                       |     ra = *(var_34h);
    0x0003db9c move v0, s0                           |     v0 = s0;
    0x0003dba0 lw s2, 0x30(sp)                       |     s2 = *(var_30h);
    0x0003dba4 lw s1, 0x2c(sp)                       |     s1 = *(var_2ch);
    0x0003dba8 lw s0, 0x28(sp)                       |     s0 = *(var_28h);
    0x0003dbac addiu sp, sp, 0x38                    |     
    0x0003dbb0 jr ra                                 |     return v0;
                                                     | }
    ; assembly                               | /* r2dec pseudo code output */
                                             | /* /logs/firmware/unblob_extracted/firmware_extract/4325012-58052244.squashfs_v4_le_extract/usr/bin/indexer @ 0x3e6c4 */
                                             | #include <stdint.h>
                                             |  
    ; (fcn) sym.sql_blocks_select_all ()     | void sql_blocks_select_all () {
    0x0003e6c4 lui gp, 4                     |     
    0x0003e6c8 addiu gp, gp, 0x7a3c          |     
    0x0003e6cc addu gp, gp, t9               |     gp += t9;
    0x0003e6d0 addiu sp, sp, -0x48           |     
    0x0003e6d4 sw gp, 0x20(sp)               |     *(var_20h) = gp;
    0x0003e6d8 sw s5, 0x40(sp)               |     *(var_40h) = s5;
    0x0003e6dc sw ra, 0x44(sp)               |     *(var_44h) = ra;
    0x0003e6e0 sw s4, 0x3c(sp)               |     *(var_3ch) = s4;
    0x0003e6e4 sw s3, 0x38(sp)               |     *(var_38h) = s3;
    0x0003e6e8 sw s2, 0x34(sp)               |     *(var_34h) = s2;
    0x0003e6ec sw s1, 0x30(sp)               |     *(var_30h) = s1;
    0x0003e6f0 sw s0, 0x2c(sp)               |     *(var_2ch) = s0;
    0x0003e6f4 lw s5, 0x58(sp)               |     s5 = *(arg_58h);
                                             |     if (a0 == 0) {
    0x0003e6f8 beqz a0, 0x3e8e0              |         goto label_2;
                                             |     }
    0x0003e6fc move s1, a0                   |     s1 = a0;
    0x0003e700 lw a0, -0x7fd8(gp)            |     a0 = *(gp);
    0x0003e704 lw t9, -0x71b4(gp)            |     t9 = sym.imp.g_string_new;
    0x0003e708 addiu a0, a0, 0x403c          |     a0 += 0x403c;
    0x0003e70c move s3, a1                   |     s3 = a1;
    0x0003e710 move s2, a2                   |     s2 = a2;
    0x0003e714 move s4, a3                   |     s4 = a3;
    0x0003e718 jalr t9                       |     t9 ();
    0x0003e71c lw gp, 0x20(sp)               |     gp = *(var_20h);
    0x0003e720 move a3, s1                   |     a3 = s1;
    0x0003e724 move a2, s1                   |     a2 = s1;
    0x0003e728 lw a1, -0x7fd8(gp)            |     a1 = *(gp);
    0x0003e72c lw t9, -0x772c(gp)            |     t9 = sym.imp.g_string_append_printf
                                             |     /* str.SELECT__s_AS_Storage___FROM__s.blocks */
    0x0003e730 addiu a1, a1, 0x7100          |     a1 += 0x7100;
    0x0003e734 move a0, v0                   |     a0 = v0;
    0x0003e738 move s0, v0                   |     s0 = v0;
    0x0003e73c jalr t9                       |     t9 ();
    0x0003e740 lw gp, 0x20(sp)               |     gp = *(var_20h);
                                             |     if (s3 == 0) {
    0x0003e744 beqz s3, 0x3e8c0              |         goto label_3;
                                             |     }
    0x0003e748 lw a1, -0x7fd8(gp)            |     a1 = *(gp);
    0x0003e74c lw t9, -0x76d0(gp)            |     t9 = sym.imp.g_string_append;
                                             |     /* str._WHERE */
    0x0003e750 addiu a1, a1, 0x712c          |     a1 += 0x712c;
    0x0003e754 move a0, s0                   |     a0 = s0;
    0x0003e758 jalr t9                       |     t9 ();
    0x0003e75c lw gp, 0x20(sp)               |     gp = *(var_20h);
    0x0003e760 move a0, s1                   |     a0 = s1;
    0x0003e764 sw zero, 0x1c(sp)             |     *(var_1ch) = 0;
    0x0003e768 lw v0, -0x7fd8(gp)            |     v0 = *(gp);
    0x0003e76c lw a3, -0x7fd8(gp)            |     a3 = *(gp);
    0x0003e770 lw a2, -0x7f50(gp)            |     a2 = *((gp - 8148));
    0x0003e774 lw a1, -0x7fd8(gp)            |     a1 = *(gp);
    0x0003e778 lw t9, -0x7a74(gp)            |     t9 = sym.sql_select_column_from_table_full;
    0x0003e77c addiu v0, v0, 0xf80           |     v0 += 0xf80;
                                             |     /* str.filename */
    0x0003e780 addiu a3, a3, 0x7dc           |     a3 += 0x7dc;
                                             |     /* esilref: 'id' */
    0x0003e784 addiu a2, a2, -0x6dbc         |     a2 += -0x6dbc;
                                             |     /* esilref: 'recordings' */
    0x0003e788 addiu a1, a1, -0x21e8         |     a1 += -0x21e8;
    0x0003e78c sw zero, 0x18(sp)             |     *(var_18h) = 0;
    0x0003e790 sw v0, 0x14(sp)               |     *(var_14h) = v0;
    0x0003e794 sw s3, 0x10(sp)               |     *(var_10h) = s3;
    0x0003e798 bal 0x3d76c                   |     sym_sql_select_column_from_table_full ();
    0x0003e79c lw gp, 0x20(sp)               |     gp = *(var_20h);
    0x0003e7a0 lw a2, (v0)                   |     a2 = *(v0);
    0x0003e7a4 move a0, s0                   |     a0 = s0;
    0x0003e7a8 lw a1, -0x7fd8(gp)            |     a1 = *(gp);
    0x0003e7ac lw t9, -0x772c(gp)            |     t9 = sym.imp.g_string_append_printf
                                             |     /* str._recording_id____s_ */
    0x0003e7b0 addiu a1, a1, 0x7134          |     a1 += 0x7134;
    0x0003e7b4 move s1, v0                   |     s1 = v0;
    0x0003e7b8 jalr t9                       |     t9 ();
    0x0003e7bc lw gp, 0x20(sp)               |     gp = *(var_20h);
    0x0003e7c0 addiu a1, zero, 1             |     a1 = 1;
    0x0003e7c4 lw t9, -0x75a8(gp)            |     t9 = sym.imp.g_string_free;
    0x0003e7c8 move a0, s1                   |     a0 = s1;
    0x0003e7cc jalr t9                       |     t9 ();
    0x0003e7d0 lw gp, 0x20(sp)               |     gp = *(var_20h);
                                             |     if (s2 == 0) {
    0x0003e7d4 beqz s2, 0x3e834              |         goto label_4;
                                             |     }
    0x0003e7d8 lw a1, -0x7fd8(gp)            |     a1 = *(gp);
    0x0003e7dc lw t9, -0x76d0(gp)            |     t9 = sym.imp.g_string_append;
                                             |     /* str._AND */
    0x0003e7e0 addiu a1, a1, 0x1054          |     a1 += 0x1054;
    0x0003e7e4 move a0, s0                   |     a0 = s0;
    0x0003e7e8 jalr t9                       |     t9 ();
    0x0003e7ec lw gp, 0x20(sp)               |     gp = *(var_20h);
                                             |     do {
    0x0003e7f0 lw t9, -0x7c5c(gp)            |         t9 = sym.sanitize_quote;
    0x0003e7f4 move a0, s2                   |         a0 = s2;
    0x0003e7f8 bal 0x3a2f0                   |         sym_sanitize_quote ();
    0x0003e7fc lw gp, 0x20(sp)               |         gp = *(var_20h);
    0x0003e800 lw a2, (v0)                   |         a2 = *(v0);
    0x0003e804 move a0, s0                   |         a0 = s0;
    0x0003e808 lw a1, -0x7fd8(gp)            |         a1 = *(gp);
    0x0003e80c lw t9, -0x772c(gp)            |         t9 = sym.imp.g_string_append_printf
                                             |         /* str._blocks.filename___s */
    0x0003e810 addiu a1, a1, 0x714c          |         a1 += 0x714c;
    0x0003e814 move s1, v0                   |         s1 = v0;
    0x0003e818 jalr t9                       |         t9 ();
    0x0003e81c lw gp, 0x20(sp)               |         gp = *(var_20h);
    0x0003e820 addiu a1, zero, 1             |         a1 = 1;
    0x0003e824 lw t9, -0x75a8(gp)            |         t9 = sym.imp.g_string_free;
    0x0003e828 move a0, s1                   |         a0 = s1;
    0x0003e82c jalr t9                       |         t9 ();
    0x0003e830 lw gp, 0x20(sp)               |         gp = *(var_20h);
                                             | label_4:
    0x0003e834 lw t9, -0x7e0c(gp)            |         t9 = sym.string_has_content;
    0x0003e838 move a0, s4                   |         a0 = s4;
    0x0003e83c bal 0x415b4                   |         sym_string_has_content ();
    0x0003e840 lw gp, 0x20(sp)               |         gp = *(var_20h);
                                             |         if (v0 != 0) {
    0x0003e844 beqz v0, 0x3e87c              |             
    0x0003e848 lw a1, -0x7fd8(gp)            |             a1 = *(gp);
    0x0003e84c lw t9, -0x76d0(gp)            |             t9 = sym.imp.g_string_append;
                                             |             /* str._AND */
    0x0003e850 addiu a1, a1, 0x1054          |             a1 += 0x1054;
    0x0003e854 move a0, s0                   |             a0 = s0;
    0x0003e858 jalr t9                       |             t9 ();
    0x0003e85c lw gp, 0x20(sp)               |             gp = *(var_20h);
                                             | label_1:
    0x0003e860 lw a1, -0x7fd8(gp)            |             a1 = *(gp);
    0x0003e864 lw t9, -0x772c(gp)            |             t9 = sym.imp.g_string_append_printf
    0x0003e868 move a2, s4                   |             a2 = s4;
                                             |             /* esilref: ' &s' */
    0x0003e86c addiu a1, a1, 0x1ab4          |             a1 += 0x1ab4;
    0x0003e870 move a0, s0                   |             a0 = s0;
    0x0003e874 jalr t9                       |             t9 ();
    0x0003e878 lw gp, 0x20(sp)               |             gp = *(var_20h);
                                             |         }
                                             | label_0:
    0x0003e87c lw t9, -0x7e0c(gp)            |         t9 = sym.string_has_content;
    0x0003e880 move a0, s5                   |         a0 = s5;
    0x0003e884 bal 0x415b4                   |         sym_string_has_content ();
    0x0003e888 lw gp, 0x20(sp)               |         gp = *(var_20h);
                                             |         if (v0 != 0) {
    0x0003e88c bnez v0, 0x3e908              |             goto label_5;
                                             |         }
    0x0003e890 lw ra, 0x44(sp)               |         ra = *(var_44h);
    0x0003e894 lw s5, 0x40(sp)               |         s5 = *(var_40h);
    0x0003e898 lw s4, 0x3c(sp)               |         s4 = *(var_3ch);
    0x0003e89c lw s3, 0x38(sp)               |         s3 = *(var_38h);
    0x0003e8a0 lw s2, 0x34(sp)               |         s2 = *(var_34h);
    0x0003e8a4 lw s1, 0x30(sp)               |         s1 = *(var_30h);
    0x0003e8a8 move a0, s0                   |         a0 = s0;
    0x0003e8ac lw t9, -0x75a8(gp)            |         t9 = sym.imp.g_string_free;
    0x0003e8b0 lw s0, 0x2c(sp)               |         s0 = *(var_2ch);
    0x0003e8b4 move a1, zero                 |         a1 = 0;
    0x0003e8b8 addiu sp, sp, 0x48            |         
    0x0003e8bc jr t9                         |         t9 ();
                                             | label_3:
    0x0003e8c0 lw a1, -0x7fd8(gp)            |         a1 = *(gp);
                                             |         if (s2 == 0) {
    0x0003e8c4 beqz s2, 0x3e954              |             goto label_6;
                                             |         }
    0x0003e8c8 lw t9, -0x76d0(gp)            |         t9 = sym.imp.g_string_append;
                                             |         /* str._WHERE */
    0x0003e8cc addiu a1, a1, 0x712c          |         a1 += 0x712c;
    0x0003e8d0 move a0, s0                   |         a0 = s0;
    0x0003e8d4 jalr t9                       |         t9 ();
    0x0003e8d8 lw gp, 0x20(sp)               |         gp = *(var_20h);
    0x0003e8dc b 0x3e7f0                     |         
                                             |     } while (1);
                                             | label_2:
    0x0003e8e0 lw v0, -0x7fd8(gp)            |     v0 = *(gp);
    0x0003e8e4 lw a3, -0x7fd8(gp)            |     a3 = *(gp);
    0x0003e8e8 lw a1, -0x7fd8(gp)            |     a1 = *(gp);
                                             |     /* str.storage_id */
    0x0003e8ec addiu v0, v0, -0x3264         |     v0 += -0x3264;
    0x0003e8f0 lw t9, -0x76c0(gp)            |     t9 = sym.imp.g_assertion_message_expr;
    0x0003e8f4 sw v0, 0x10(sp)               |     *(var_10h) = v0;
                                             |     /* str.sql_blocks_select_all */
    0x0003e8f8 addiu a3, a3, 0x7f00          |     a3 += 0x7f00;
    0x0003e8fc addiu a2, zero, 0x1ed         |     a2 = 0x1ed;
                                             |     /* str.sql_read.c */
    0x0003e900 addiu a1, a1, 0x6bd4          |     a1 += 0x6bd4;
    0x0003e904 jalr t9                       |     t9 ();
                                             | label_5:
    0x0003e908 lw a1, -0x7fd8(gp)            |     a1 = *(gp);
    0x0003e90c lw t9, -0x772c(gp)            |     t9 = sym.imp.g_string_append_printf
    0x0003e910 move a0, s0                   |     a0 = s0;
    0x0003e914 move a2, s5                   |     a2 = s5;
                                             |     /* esilref: ' &s' */
    0x0003e918 addiu a1, a1, 0x1ab4          |     a1 += 0x1ab4;
    0x0003e91c jalr t9                       |     t9 ();
    0x0003e920 lw gp, 0x20(sp)               |     gp = *(var_20h);
    0x0003e924 lw ra, 0x44(sp)               |     ra = *(var_44h);
    0x0003e928 lw s5, 0x40(sp)               |     s5 = *(var_40h);
    0x0003e92c lw s4, 0x3c(sp)               |     s4 = *(var_3ch);
    0x0003e930 lw s3, 0x38(sp)               |     s3 = *(var_38h);
    0x0003e934 lw s2, 0x34(sp)               |     s2 = *(var_34h);
    0x0003e938 lw s1, 0x30(sp)               |     s1 = *(var_30h);
    0x0003e93c move a0, s0                   |     a0 = s0;
    0x0003e940 lw t9, -0x75a8(gp)            |     t9 = sym.imp.g_string_free;
    0x0003e944 lw s0, 0x2c(sp)               |     s0 = *(var_2ch);
    0x0003e948 move a1, zero                 |     a1 = 0;
    0x0003e94c addiu sp, sp, 0x48            |     
    0x0003e950 jr t9                         |     t9 ();
                                             | label_6:
    0x0003e954 lw t9, -0x7e0c(gp)            |     t9 = sym.string_has_content;
    0x0003e958 move a0, s4                   |     a0 = s4;
    0x0003e95c bal 0x415b4                   |     sym_string_has_content ();
    0x0003e960 lw gp, 0x20(sp)               |     gp = *(var_20h);
                                             |     if (v0 == 0) {
    0x0003e964 beqz v0, 0x3e87c              |         goto label_0;
                                             |     }
    0x0003e968 lw a1, -0x7fd8(gp)            |     a1 = *(gp);
    0x0003e96c lw t9, -0x76d0(gp)            |     t9 = sym.imp.g_string_append;
                                             |     /* str._WHERE */
    0x0003e970 addiu a1, a1, 0x712c          |     a1 += 0x712c;
    0x0003e974 move a0, s0                   |     a0 = s0;
    0x0003e978 jalr t9                       |     t9 ();
    0x0003e97c lw gp, 0x20(sp)               |     gp = *(var_20h);
    0x0003e980 b 0x3e860                     |     goto label_1;
                                             | }
    ; assembly                               | /* r2dec pseudo code output */
                                             | /* /logs/firmware/unblob_extracted/firmware_extract/4325012-58052244.squashfs_v4_le_extract/usr/bin/indexer @ 0x3af90 */
                                             | #include <stdint.h>
                                             |  
    ; (fcn) sym.sql_blocks_table ()          | void sql_blocks_table () {
    0x0003af90 lui gp, 5                     |     
    0x0003af94 addiu gp, gp, -0x4e90         |     
    0x0003af98 addu gp, gp, t9               |     gp += t9;
    0x0003af9c addiu sp, sp, -0x28           |     
    0x0003afa0 lw t9, -0x71b4(gp)            |     t9 = sym.imp.g_string_new;
    0x0003afa4 sw s1, 0x1c(sp)               |     *(var_1ch_2) = s1;
    0x0003afa8 move s1, a0                   |     s1 = a0;
    0x0003afac lw a0, -0x7fd8(gp)            |     a0 = *(gp);
    0x0003afb0 sw ra, 0x24(sp)               |     *(var_24h_3) = ra;
    0x0003afb4 sw s2, 0x20(sp)               |     *(var_20h_2) = s2;
    0x0003afb8 sw s0, 0x18(sp)               |     *(var_18h_2) = s0;
    0x0003afbc sw gp, 0x10(sp)               |     *(var_10h_4) = gp;
    0x0003afc0 addiu a0, a0, 0x403c          |     a0 += 0x403c;
    0x0003afc4 move s2, a1                   |     s2 = a1;
    0x0003afc8 jalr t9                       |     t9 ();
    0x0003afcc lw gp, 0x10(sp)               |     gp = *(var_10h_4);
    0x0003afd0 move s0, v0                   |     s0 = v0;
    0x0003afd4 lw a2, -0x7f50(gp)            |     a2 = *((gp - 8148));
    0x0003afd8 lw a1, -0x7fd8(gp)            |     a1 = *(gp);
    0x0003afdc lw a0, -0x7fd8(gp)            |     a0 = *(gp);
    0x0003afe0 lw t9, -0x7a7c(gp)            |     t9 = sym.sql_generate_foreign_key;
                                             |     /* esilref: 'id' */
    0x0003afe4 addiu a2, a2, -0x6dbc         |     a2 += -0x6dbc;
                                             |     /* esilref: 'recordings' */
    0x0003afe8 addiu a1, a1, -0x21e8         |     a1 += -0x21e8;
                                             |     /* esilref: 'recording_id' */
    0x0003afec addiu a0, a0, 0x78c8          |     a0 += 0x78c8;
    0x0003aff0 bal 0x39ec4                   |     sym_sql_generate_foreign_key ();
    0x0003aff4 lw gp, 0x10(sp)               |     gp = *(var_10h_4);
    0x0003aff8 move a1, s2                   |     a1 = s2;
    0x0003affc move a0, s1                   |     a0 = s1;
    0x0003b000 lw t9, -0x7cec(gp)            |     t9 = sym.sql_table_with_storage_name;
    0x0003b004 move s2, v0                   |     s2 = v0;
    0x0003b008 bal 0x39fd0                   |     sym_sql_table_with_storage_name ();
    0x0003b00c lw gp, 0x10(sp)               |     gp = *(var_10h_4);
    0x0003b010 move a2, v0                   |     a2 = v0;
    0x0003b014 move a0, s0                   |     a0 = s0;
    0x0003b018 lw a1, -0x7fd8(gp)            |     a1 = *(gp);
    0x0003b01c lw t9, -0x772c(gp)            |     t9 = sym.imp.g_string_append_printf
                                             |     /* str.CREATE_TABLE__s__id_INTEGER_PRIMARY_KEY_AUTOINCREMENT_NOT_NULL__filename_VARCHAR_256__UNIQUE_NOT_NULL__path_VARCHAR_256__NOT_NULL__starttime_TIMESTAMP_NOT_NULL__stoptime_TIMESTAMP_NULL__recording_id_INTEGER_NOT_NULL__filesize_INTEGER_DEFAULT_0__ */
    0x0003b020 addiu a1, a1, 0x614c          |     a1 += 0x614c;
    0x0003b024 move s1, v0                   |     s1 = v0;
    0x0003b028 jalr t9                       |     t9 ();
    0x0003b02c lw gp, 0x10(sp)               |     gp = *(var_10h_4);
    0x0003b030 move a2, s2                   |     a2 = s2;
    0x0003b034 move a0, s0                   |     a0 = s0;
    0x0003b038 lw a1, -0x7fd8(gp)            |     a1 = *(gp);
    0x0003b03c lw t9, -0x772c(gp)            |     t9 = sym.imp.g_string_append_printf
                                             |     /* esilref: '&s);' */
    0x0003b040 addiu a1, a1, 0x66e0          |     a1 += 0x66e0;
    0x0003b044 jalr t9                       |     t9 ();
    0x0003b048 lw gp, 0x10(sp)               |     gp = *(var_10h_4);
    0x0003b04c lw t9, -0x74c8(gp)            |     t9 = *((gp - 7474));
    0x0003b050 move a0, s2                   |     a0 = s2;
    0x0003b054 jalr t9                       |     t9 ();
    0x0003b058 lw gp, 0x10(sp)               |     gp = *(var_10h_4);
    0x0003b05c lw t9, -0x74c8(gp)            |     t9 = *((gp - 7474));
    0x0003b060 move a0, s1                   |     a0 = s1;
    0x0003b064 jalr t9                       |     t9 ();
    0x0003b068 lw ra, 0x24(sp)               |     ra = *(var_24h_3);
    0x0003b06c move v0, s0                   |     v0 = s0;
    0x0003b070 lw s2, 0x20(sp)               |     s2 = *(var_20h_2);
    0x0003b074 lw s1, 0x1c(sp)               |     s1 = *(var_1ch_2);
    0x0003b078 lw s0, 0x18(sp)               |     s0 = *(var_18h_2);
    0x0003b07c addiu sp, sp, 0x28            |     
    0x0003b080 jr ra                         |     return v0;
                                             | }
    ; assembly                               | /* r2dec pseudo code output */
                                             | /* /logs/firmware/unblob_extracted/firmware_extract/4325012-58052244.squashfs_v4_le_extract/usr/bin/indexer @ 0x3c718 */
                                             | #include <stdint.h>
                                             |  
    ; (fcn) sym.sql_copy_blocks ()           | void sql_copy_blocks () {
    0x0003c718 lui gp, 5                     |     
    0x0003c71c addiu gp, gp, -0x6618         |     
    0x0003c720 addu gp, gp, t9               |     gp += t9;
    0x0003c724 addiu sp, sp, -0x40           |     
    0x0003c728 sw gp, 0x18(sp)               |     *(var_18h_2) = gp;
    0x0003c72c sw ra, 0x3c(sp)               |     *(var_3ch_2) = ra;
    0x0003c730 sw s5, 0x38(sp)               |     *(var_38h_2) = s5;
    0x0003c734 sw s4, 0x34(sp)               |     *(var_34h_2) = s4;
    0x0003c738 sw s3, 0x30(sp)               |     *(var_30h_2) = s3;
    0x0003c73c sw s2, 0x2c(sp)               |     *(var_2ch_2) = s2;
    0x0003c740 sw s1, 0x28(sp)               |     *(var_28h_2) = s1;
    0x0003c744 sw s0, 0x24(sp)               |     *(var_24h_2) = s0;
    0x0003c748 lw v0, -0x7fd8(gp)            |     v0 = *(gp);
                                             |     if (a0 == 0) {
    0x0003c74c beqz a0, 0x3c84c              |         goto label_0;
                                             |     }
    0x0003c750 move s2, a1                   |     s2 = a1;
                                             |     if (a1 == 0) {
    0x0003c754 beqz a1, 0x3c870              |         goto label_1;
                                             |     }
    0x0003c758 move s3, a2                   |     s3 = a2;
                                             |     if (a2 == 0) {
    0x0003c75c beqz a2, 0x3c89c              |         goto label_2;
                                             |     }
    0x0003c760 lw s1, -0x7fd8(gp)            |     s1 = *(gp);
    0x0003c764 lw t9, -0x71b4(gp)            |     t9 = sym.imp.g_string_new;
    0x0003c768 move s0, a0                   |     s0 = a0;
    0x0003c76c addiu a0, s1, 0x403c          |     a0 = s1 + 0x403c;
    0x0003c770 move s5, a3                   |     s5 = a3;
    0x0003c774 jalr t9                       |     t9 ();
    0x0003c778 lw gp, 0x18(sp)               |     gp = *(var_18h_2);
    0x0003c77c addiu a0, s1, 0x403c          |     a0 = s1 + 0x403c;
    0x0003c780 lw t9, -0x71b4(gp)            |     t9 = sym.imp.g_string_new;
    0x0003c784 move s1, v0                   |     s1 = v0;
    0x0003c788 jalr t9                       |     t9 ();
    0x0003c78c lw gp, 0x18(sp)               |     gp = *(var_18h_2);
    0x0003c790 move a3, s2                   |     a3 = s2;
    0x0003c794 move a2, s0                   |     a2 = s0;
    0x0003c798 lw a1, -0x7fd8(gp)            |     a1 = *(gp);
    0x0003c79c lw t9, -0x772c(gp)            |     t9 = sym.imp.g_string_append_printf
    0x0003c7a0 move a0, v0                   |     a0 = v0;
                                             |     /* str.INSERT_OR_IGNORE_INTO__s._s_SELECT__FROM__s._s_ */
    0x0003c7a4 addiu a1, a1, 0x6800          |     a1 += 0x6800;
    0x0003c7a8 sw s3, 0x14(sp)               |     *(var_14h) = s3;
    0x0003c7ac sw s0, 0x10(sp)               |     *(var_10h_2) = s0;
    0x0003c7b0 move s4, v0                   |     s4 = v0;
    0x0003c7b4 jalr t9                       |     t9 ();
    0x0003c7b8 lw gp, 0x18(sp)               |     gp = *(var_18h_2);
    0x0003c7bc move a1, s4                   |     a1 = s4;
    0x0003c7c0 lw t9, -0x7d1c(gp)            |     t9 = sym.string_merge_g_strings;
    0x0003c7c4 move a0, s1                   |     a0 = s1;
    0x0003c7c8 bal 0x414e4                   |     sym_string_merge_g_strings ();
    0x0003c7cc lw gp, 0x18(sp)               |     gp = *(var_18h_2);
    0x0003c7d0 lw t9, -0x7e0c(gp)            |     t9 = sym.string_has_content;
    0x0003c7d4 move a0, s5                   |     a0 = s5;
    0x0003c7d8 bal 0x415b4                   |     sym_string_has_content ();
    0x0003c7dc lw gp, 0x18(sp)               |     gp = *(var_18h_2);
                                             |     if (v0 == 0) {
    0x0003c7e0 beqz v0, 0x3c818              |         goto label_3;
                                             |     }
    0x0003c7e4 lw v0, 0x50(sp)               |     v0 = *(var_10h);
    0x0003c7e8 lw a1, -0x7fd8(gp)            |     a1 = *(gp);
                                             |     if (v0 == 0) {
    0x0003c7ec beqz v0, 0x3c8c8              |         goto label_4;
                                             |     }
    0x0003c7f0 lw t9, -0x7a68(gp)            |     t9 = sym.sql_blocks_by_recording_id;
    0x0003c7f4 move a1, s5                   |     a1 = s5;
    0x0003c7f8 move a0, s0                   |     a0 = s0;
    0x0003c7fc bal 0x3dae4                   |     sym_sql_blocks_by_recording_id ();
    0x0003c800 lw gp, 0x18(sp)               |     gp = *(var_18h_2);
    0x0003c804 move a1, v0                   |     a1 = v0;
    0x0003c808 lw t9, -0x7d1c(gp)            |     t9 = sym.string_merge_g_strings;
    0x0003c80c move a0, s1                   |     a0 = s1;
    0x0003c810 bal 0x414e4                   |     sym_string_merge_g_strings ();
    0x0003c814 lw gp, 0x18(sp)               |     gp = *(var_18h_2);
                                             |     do {
                                             | label_3:
    0x0003c818 lw t9, -0x7a78(gp)            |         t9 = sym.sql_append_semicolon;
    0x0003c81c move a0, s1                   |         a0 = s1;
    0x0003c820 bal 0x3a054                   |         sym_sql_append_semicolon ();
    0x0003c824 lw ra, 0x3c(sp)               |         ra = *(var_3ch_2);
    0x0003c828 move v0, s1                   |         v0 = s1;
    0x0003c82c lw s5, 0x38(sp)               |         s5 = *(var_38h_2);
    0x0003c830 lw s4, 0x34(sp)               |         s4 = *(var_34h_2);
    0x0003c834 lw s3, 0x30(sp)               |         s3 = *(var_30h_2);
    0x0003c838 lw s2, 0x2c(sp)               |         s2 = *(var_2ch_2);
    0x0003c83c lw s1, 0x28(sp)               |         s1 = *(var_28h_2);
    0x0003c840 lw s0, 0x24(sp)               |         s0 = *(var_24h_2);
    0x0003c844 addiu sp, sp, 0x40            |         
    0x0003c848 jr ra                         |         return v0;
                                             | label_0:
    0x0003c84c lw a3, -0x7fd8(gp)            |         a3 = *(gp);
    0x0003c850 lw a1, -0x7fd8(gp)            |         a1 = *(gp);
                                             |         /* str.storage_id */
    0x0003c854 addiu v0, v0, -0x3264         |         v0 += -0x3264;
    0x0003c858 lw t9, -0x76c0(gp)            |         t9 = sym.imp.g_assertion_message_expr;
    0x0003c85c sw v0, 0x10(sp)               |         *(var_10h_2) = v0;
                                             |         /* str.sql_copy_blocks */
    0x0003c860 addiu a3, a3, 0x6960          |         a3 += 0x6960;
    0x0003c864 addiu a2, zero, 0x261         |         a2 = 0x261;
                                             |         /* str.sql_create.c */
    0x0003c868 addiu a1, a1, 0x6130          |         a1 += 0x6130;
    0x0003c86c jalr t9                       |         t9 ();
                                             | label_1:
    0x0003c870 lw v0, -0x7fd8(gp)            |         v0 = *(gp);
    0x0003c874 lw a3, -0x7fd8(gp)            |         a3 = *(gp);
    0x0003c878 lw a1, -0x7fd8(gp)            |         a1 = *(gp);
                                             |         /* str.to_table */
    0x0003c87c addiu v0, v0, 0x67e8          |         v0 += 0x67e8;
    0x0003c880 lw t9, -0x76c0(gp)            |         t9 = sym.imp.g_assertion_message_expr;
    0x0003c884 sw v0, 0x10(sp)               |         *(var_10h_2) = v0;
                                             |         /* str.sql_copy_blocks */
    0x0003c888 addiu a3, a3, 0x6960          |         a3 += 0x6960;
    0x0003c88c addiu a2, zero, 0x262         |         a2 = 0x262;
                                             |         /* str.sql_create.c */
    0x0003c890 addiu a1, a1, 0x6130          |         a1 += 0x6130;
    0x0003c894 move a0, zero                 |         a0 = 0;
    0x0003c898 jalr t9                       |         t9 ();
                                             | label_2:
    0x0003c89c lw v0, -0x7fd8(gp)            |         v0 = *(gp);
    0x0003c8a0 lw a3, -0x7fd8(gp)            |         a3 = *(gp);
    0x0003c8a4 lw a1, -0x7fd8(gp)            |         a1 = *(gp);
                                             |         /* str.from_table */
    0x0003c8a8 addiu v0, v0, 0x67f4          |         v0 += 0x67f4;
    0x0003c8ac lw t9, -0x76c0(gp)            |         t9 = sym.imp.g_assertion_message_expr;
    0x0003c8b0 sw v0, 0x10(sp)               |         *(var_10h_2) = v0;
                                             |         /* str.sql_copy_blocks */
    0x0003c8b4 addiu a3, a3, 0x6960          |         a3 += 0x6960;
    0x0003c8b8 addiu a2, zero, 0x263         |         a2 = 0x263;
                                             |         /* str.sql_create.c */
    0x0003c8bc addiu a1, a1, 0x6130          |         a1 += 0x6130;
    0x0003c8c0 move a0, zero                 |         a0 = 0;
    0x0003c8c4 jalr t9                       |         t9 ();
                                             | label_4:
    0x0003c8c8 lw t9, -0x772c(gp)            |         t9 = sym.imp.g_string_append_printf
    0x0003c8cc move a2, s5                   |         a2 = s5;
    0x0003c8d0 addiu a1, a1, 0x6844          |         a1 += 0x6844;
    0x0003c8d4 move a0, s1                   |         a0 = s1;
    0x0003c8d8 jalr t9                       |         t9 ();
    0x0003c8dc lw gp, 0x18(sp)               |         gp = *(var_18h_2);
    0x0003c8e0 b 0x3c818                     |         
                                             |     } while (1);
                                             | }
    ; assembly                                   | /* r2dec pseudo code output */
                                                 | /* /logs/firmware/unblob_extracted/firmware_extract/4325012-58052244.squashfs_v4_le_extract/usr/bin/indexer @ 0x3c57c */
                                                 | #include <stdint.h>
                                                 |  
    ; (fcn) sym.sql_copy_recordings ()           | void sql_copy_recordings () {
    0x0003c57c lui gp, 5                         |     
    0x0003c580 addiu gp, gp, -0x647c             |     
    0x0003c584 addu gp, gp, t9                   |     gp += t9;
    0x0003c588 addiu sp, sp, -0x40               |     
    0x0003c58c sw gp, 0x18(sp)                   |     *(var_18h) = gp;
    0x0003c590 sw ra, 0x3c(sp)                   |     *(var_3ch) = ra;
    0x0003c594 sw s5, 0x38(sp)                   |     *(var_38h) = s5;
    0x0003c598 sw s4, 0x34(sp)                   |     *(var_34h) = s4;
    0x0003c59c sw s3, 0x30(sp)                   |     *(var_30h) = s3;
    0x0003c5a0 sw s2, 0x2c(sp)                   |     *(var_2ch) = s2;
    0x0003c5a4 sw s1, 0x28(sp)                   |     *(var_28h) = s1;
    0x0003c5a8 sw s0, 0x24(sp)                   |     *(var_24h) = s0;
    0x0003c5ac lw v0, -0x7fd8(gp)                |     v0 = *(gp);
                                                 |     if (a0 == 0) {
    0x0003c5b0 beqz a0, 0x3c69c                  |         goto label_0;
                                                 |     }
    0x0003c5b4 move s2, a1                       |     s2 = a1;
                                                 |     if (a1 == 0) {
    0x0003c5b8 beqz a1, 0x3c6c0                  |         goto label_1;
                                                 |     }
    0x0003c5bc move s3, a2                       |     s3 = a2;
                                                 |     if (a2 == 0) {
    0x0003c5c0 beqz a2, 0x3c6ec                  |         goto label_2;
                                                 |     }
    0x0003c5c4 lw s1, -0x7fd8(gp)                |     s1 = *(gp);
    0x0003c5c8 lw t9, -0x71b4(gp)                |     t9 = sym.imp.g_string_new;
    0x0003c5cc move s0, a0                       |     s0 = a0;
    0x0003c5d0 addiu a0, s1, 0x403c              |     a0 = s1 + 0x403c;
    0x0003c5d4 move s5, a3                       |     s5 = a3;
    0x0003c5d8 jalr t9                           |     t9 ();
    0x0003c5dc lw gp, 0x18(sp)                   |     gp = *(var_18h);
    0x0003c5e0 addiu a0, s1, 0x403c              |     a0 = s1 + 0x403c;
    0x0003c5e4 lw t9, -0x71b4(gp)                |     t9 = sym.imp.g_string_new;
    0x0003c5e8 move s1, v0                       |     s1 = v0;
    0x0003c5ec jalr t9                           |     t9 ();
    0x0003c5f0 lw gp, 0x18(sp)                   |     gp = *(var_18h);
    0x0003c5f4 move a3, s2                       |     a3 = s2;
    0x0003c5f8 move a2, s0                       |     a2 = s0;
    0x0003c5fc lw a1, -0x7fd8(gp)                |     a1 = *(gp);
    0x0003c600 lw t9, -0x772c(gp)                |     t9 = sym.imp.g_string_append_printf
    0x0003c604 move a0, v0                       |     a0 = v0;
                                                 |     /* str.INSERT_OR_IGNORE_INTO__s._s_SELECT__FROM__s._s_ */
    0x0003c608 addiu a1, a1, 0x6800              |     a1 += 0x6800;
    0x0003c60c sw s3, 0x14(sp)                   |     *(var_14h_2) = s3;
    0x0003c610 sw s0, 0x10(sp)                   |     *(var_10h) = s0;
    0x0003c614 move s4, v0                       |     s4 = v0;
    0x0003c618 jalr t9                           |     t9 ();
    0x0003c61c lw gp, 0x18(sp)                   |     gp = *(var_18h);
    0x0003c620 move a1, s4                       |     a1 = s4;
    0x0003c624 lw t9, -0x7d1c(gp)                |     t9 = sym.string_merge_g_strings;
    0x0003c628 move a0, s1                       |     a0 = s1;
    0x0003c62c bal 0x414e4                       |     sym_string_merge_g_strings ();
    0x0003c630 lw gp, 0x18(sp)                   |     gp = *(var_18h);
    0x0003c634 lw t9, -0x7e0c(gp)                |     t9 = sym.string_has_content;
    0x0003c638 move a0, s5                       |     a0 = s5;
    0x0003c63c bal 0x415b4                       |     sym_string_has_content ();
    0x0003c640 lw gp, 0x18(sp)                   |     gp = *(var_18h);
    0x0003c644 bnez v0, 0x3c67c                  |     
                                                 |     while (1) {
    0x0003c648 lw t9, -0x7a78(gp)                |         t9 = sym.sql_append_semicolon;
    0x0003c64c move a0, s1                       |         a0 = s1;
    0x0003c650 bal 0x3a054                       |         sym_sql_append_semicolon ();
    0x0003c654 lw ra, 0x3c(sp)                   |         ra = *(var_3ch);
    0x0003c658 move v0, s1                       |         v0 = s1;
    0x0003c65c lw s5, 0x38(sp)                   |         s5 = *(var_38h);
    0x0003c660 lw s4, 0x34(sp)                   |         s4 = *(var_34h);
    0x0003c664 lw s3, 0x30(sp)                   |         s3 = *(var_30h);
    0x0003c668 lw s2, 0x2c(sp)                   |         s2 = *(var_2ch);
    0x0003c66c lw s1, 0x28(sp)                   |         s1 = *(var_28h);
    0x0003c670 lw s0, 0x24(sp)                   |         s0 = *(var_24h);
    0x0003c674 addiu sp, sp, 0x40                |         
    0x0003c678 jr ra                             |         return v0;
    0x0003c67c lw a1, -0x7fd8(gp)                |         a1 = *(gp);
    0x0003c680 lw t9, -0x772c(gp)                |         t9 = sym.imp.g_string_append_printf
    0x0003c684 move a2, s5                       |         a2 = s5;
                                                 |         /* str.WHERE__s_ */
    0x0003c688 addiu a1, a1, 0x6838              |         a1 += 0x6838;
    0x0003c68c move a0, s1                       |         a0 = s1;
    0x0003c690 jalr t9                           |         t9 ();
    0x0003c694 lw gp, 0x18(sp)                   |         gp = *(var_18h);
    0x0003c698 b 0x3c648                         |         
                                                 |     }
                                                 | label_0:
    0x0003c69c lw a3, -0x7fd8(gp)                |     a3 = *(gp);
    0x0003c6a0 lw a1, -0x7fd8(gp)                |     a1 = *(gp);
                                                 |     /* str.storage_id */
    0x0003c6a4 addiu v0, v0, -0x3264             |     v0 += -0x3264;
    0x0003c6a8 lw t9, -0x76c0(gp)                |     t9 = sym.imp.g_assertion_message_expr;
    0x0003c6ac sw v0, 0x10(sp)                   |     *(var_10h) = v0;
                                                 |     /* str.sql_copy_recordings */
    0x0003c6b0 addiu a3, a3, 0x6970              |     a3 += aav.0x00006970;
    0x0003c6b4 addiu a2, zero, 0x24e             |     a2 = 0x24e;
                                                 |     /* str.sql_create.c */
    0x0003c6b8 addiu a1, a1, 0x6130              |     a1 += 0x6130;
    0x0003c6bc jalr t9                           |     t9 ();
                                                 | label_1:
    0x0003c6c0 lw v0, -0x7fd8(gp)                |     v0 = *(gp);
    0x0003c6c4 lw a3, -0x7fd8(gp)                |     a3 = *(gp);
    0x0003c6c8 lw a1, -0x7fd8(gp)                |     a1 = *(gp);
                                                 |     /* str.to_table */
    0x0003c6cc addiu v0, v0, 0x67e8              |     v0 += 0x67e8;
    0x0003c6d0 lw t9, -0x76c0(gp)                |     t9 = sym.imp.g_assertion_message_expr;
    0x0003c6d4 sw v0, 0x10(sp)                   |     *(var_10h) = v0;
                                                 |     /* str.sql_copy_recordings */
    0x0003c6d8 addiu a3, a3, 0x6970              |     a3 += aav.0x00006970;
    0x0003c6dc addiu a2, zero, 0x24f             |     a2 = 0x24f;
                                                 |     /* str.sql_create.c */
    0x0003c6e0 addiu a1, a1, 0x6130              |     a1 += 0x6130;
    0x0003c6e4 move a0, zero                     |     a0 = 0;
    0x0003c6e8 jalr t9                           |     t9 ();
                                                 | label_2:
    0x0003c6ec lw v0, -0x7fd8(gp)                |     v0 = *(gp);
    0x0003c6f0 lw a3, -0x7fd8(gp)                |     a3 = *(gp);
    0x0003c6f4 lw a1, -0x7fd8(gp)                |     a1 = *(gp);
                                                 |     /* str.from_table */
    0x0003c6f8 addiu v0, v0, 0x67f4              |     v0 += 0x67f4;
    0x0003c6fc lw t9, -0x76c0(gp)                |     t9 = sym.imp.g_assertion_message_expr;
    0x0003c700 sw v0, 0x10(sp)                   |     *(var_10h) = v0;
                                                 |     /* str.sql_copy_recordings */
    0x0003c704 addiu a3, a3, 0x6970              |     a3 += aav.0x00006970;
    0x0003c708 addiu a2, zero, 0x250             |     a2 = aav.0x00000250;
                                                 |     /* str.sql_create.c */
    0x0003c70c addiu a1, a1, 0x6130              |     a1 += 0x6130;
    0x0003c710 move a0, zero                     |     a0 = 0;
    0x0003c714 jalr t9                           |     return t9 ();
                                                 | }
    ; assembly                           | /* r2dec pseudo code output */
                                         | /* /logs/firmware/unblob_extracted/firmware_extract/4325012-58052244.squashfs_v4_le_extract/usr/bin/indexer @ 0x3e500 */
                                         | #include <stdint.h>
                                         |  
    ; (fcn) sym.sql_count_blocks ()      | void sql_count_blocks () {
    0x0003e500 lui gp, 4                 |     
    0x0003e504 addiu gp, gp, 0x7c00      |     
    0x0003e508 addu gp, gp, t9           |     gp += t9;
    0x0003e50c addiu sp, sp, -0x48       |     
    0x0003e510 sw gp, 0x28(sp)           |     *(var_28h) = gp;
    0x0003e514 sw ra, 0x44(sp)           |     *(var_44h) = ra;
    0x0003e518 sw s3, 0x40(sp)           |     *(var_40h) = s3;
    0x0003e51c sw s2, 0x3c(sp)           |     *(var_3ch) = s2;
    0x0003e520 sw s1, 0x38(sp)           |     *(var_38h) = s1;
    0x0003e524 sw s0, 0x34(sp)           |     *(var_34h) = s0;
    0x0003e528 move s0, a0               |     s0 = a0;
                                         |     if (a0 == 0) {
    0x0003e52c beqz a0, 0x3e644          |         goto label_0;
                                         |     }
    0x0003e530 lw a0, -0x7fd8(gp)        |     a0 = *(gp);
    0x0003e534 lw t9, -0x71b4(gp)        |     t9 = sym.imp.g_string_new;
    0x0003e538 addiu a0, a0, 0x403c      |     a0 += 0x403c;
    0x0003e53c move s2, a1               |     s2 = a1;
    0x0003e540 move s3, a2               |     s3 = a2;
    0x0003e544 move s1, a3               |     s1 = a3;
    0x0003e548 jalr t9                   |     t9 ();
    0x0003e54c lw gp, 0x28(sp)           |     gp = *(var_28h);
    0x0003e550 lw v1, 0x58(sp)           |     v1 = *(arg_58h);
    0x0003e554 move a3, s3               |     a3 = s3;
    0x0003e558 lw a1, -0x7fd8(gp)        |     a1 = *(gp);
    0x0003e55c lw t9, -0x7cf4(gp)        |     t9 = sym.sql_where_stmt;
    0x0003e560 move a2, zero             |     a2 = 0;
                                         |     /* esilref: 'blocks' */
    0x0003e564 addiu a1, a1, 0x7124      |     a1 += 0x7124;
    0x0003e568 move a0, s0               |     a0 = s0;
    0x0003e56c sw v1, 0x24(sp)           |     *(var_24h) = v1;
    0x0003e570 sw s1, 0x10(sp)           |     *(var_10h) = s1;
    0x0003e574 sw zero, 0x20(sp)         |     *(var_20h) = 0;
    0x0003e578 sw zero, 0x1c(sp)         |     *(var_1ch) = 0;
    0x0003e57c sw zero, 0x18(sp)         |     *(var_18h) = 0;
    0x0003e580 sw zero, 0x14(sp)         |     *(var_14h) = 0;
    0x0003e584 move s1, v0               |     s1 = v0;
    0x0003e588 bal 0x3ddd8               |     sym_sql_where_stmt ();
    0x0003e58c lw gp, 0x28(sp)           |     gp = *(var_28h);
    0x0003e590 move a0, s0               |     a0 = s0;
    0x0003e594 sw s2, 0x10(sp)           |     *(var_10h) = s2;
    0x0003e598 lw v1, -0x7fd8(gp)        |     v1 = *(gp);
    0x0003e59c lw a3, -0x7fd8(gp)        |     a3 = *(gp);
    0x0003e5a0 lw a2, -0x7f50(gp)        |     a2 = *((gp - 8148));
    0x0003e5a4 lw a1, -0x7fd8(gp)        |     a1 = *(gp);
    0x0003e5a8 addiu v1, v1, 0xf80       |     v1 += 0xf80;
    0x0003e5ac lw t9, -0x7a74(gp)        |     t9 = sym.sql_select_column_from_table_full;
    0x0003e5b0 sw v1, 0x14(sp)           |     *(var_14h) = v1;
                                         |     /* str.filename */
    0x0003e5b4 addiu a3, a3, 0x7dc       |     a3 += 0x7dc;
                                         |     /* esilref: 'id' */
    0x0003e5b8 addiu a2, a2, -0x6dbc     |     a2 += -0x6dbc;
                                         |     /* esilref: 'recordings' */
    0x0003e5bc addiu a1, a1, -0x21e8     |     a1 += -0x21e8;
    0x0003e5c0 sw zero, 0x1c(sp)         |     *(var_1ch) = 0;
    0x0003e5c4 sw zero, 0x18(sp)         |     *(var_18h) = 0;
    0x0003e5c8 move s2, v0               |     s2 = v0;
    0x0003e5cc bal 0x3d76c               |     sym_sql_select_column_from_table_full ();
    0x0003e5d0 lw gp, 0x28(sp)           |     gp = *(var_28h);
    0x0003e5d4 lw a3, (v0)               |     a3 = *(v0);
    0x0003e5d8 move a2, s0               |     a2 = s0;
    0x0003e5dc lw a1, -0x7fd8(gp)        |     a1 = *(gp);
    0x0003e5e0 lw t9, -0x772c(gp)        |     t9 = sym.imp.g_string_append_printf
                                         |     /* str.SELECT_COUNT___FROM__s.blocks_WHERE_recording_id__s_ */
    0x0003e5e4 addiu a1, a1, 0x70c4      |     a1 += 0x70c4;
    0x0003e5e8 move a0, s1               |     a0 = s1;
    0x0003e5ec move s3, v0               |     s3 = v0;
    0x0003e5f0 jalr t9                   |     t9 ();
    0x0003e5f4 lw gp, 0x28(sp)           |     gp = *(var_28h);
    0x0003e5f8 addiu a1, zero, 1         |     a1 = 1;
    0x0003e5fc lw t9, -0x75a8(gp)        |     t9 = sym.imp.g_string_free;
    0x0003e600 move a0, s3               |     a0 = s3;
    0x0003e604 jalr t9                   |     t9 ();
    0x0003e608 lw v0, 4(s2)              |     v0 = *((s2 + 1));
    0x0003e60c lw gp, 0x28(sp)           |     gp = *(var_28h);
    0x0003e610 bnez v0, 0x3e66c          |     
                                         |     while (1) {
    0x0003e614 lw t9, -0x75a8(gp)        |         t9 = sym.imp.g_string_free;
    0x0003e618 move a0, s2               |         a0 = s2;
    0x0003e61c addiu a1, zero, 1         |         a1 = 1;
    0x0003e620 jalr t9                   |         t9 ();
    0x0003e624 lw ra, 0x44(sp)           |         ra = *(var_44h);
    0x0003e628 move v0, s1               |         v0 = s1;
    0x0003e62c lw s3, 0x40(sp)           |         s3 = *(var_40h);
    0x0003e630 lw s2, 0x3c(sp)           |         s2 = *(var_3ch);
    0x0003e634 lw s1, 0x38(sp)           |         s1 = *(var_38h);
    0x0003e638 lw s0, 0x34(sp)           |         s0 = *(var_34h);
    0x0003e63c addiu sp, sp, 0x48        |         
    0x0003e640 jr ra                     |         return v0;
                                         | label_0:
    0x0003e644 lw v0, -0x7fd8(gp)        |         v0 = *(gp);
    0x0003e648 lw a3, -0x7fd8(gp)        |         a3 = *(gp);
    0x0003e64c lw a1, -0x7fd8(gp)        |         a1 = *(gp);
                                         |         /* str.storage_id */
    0x0003e650 addiu v0, v0, -0x3264     |         v0 += -0x3264;
    0x0003e654 lw t9, -0x76c0(gp)        |         t9 = sym.imp.g_assertion_message_expr;
    0x0003e658 sw v0, 0x10(sp)           |         *(var_10h) = v0;
                                         |         /* str.sql_count_blocks */
    0x0003e65c addiu a3, a3, 0x7f48      |         a3 += 0x7f48;
    0x0003e660 addiu a2, zero, 0xe8      |         a2 = 0xe8;
                                         |         /* str.sql_read.c */
    0x0003e664 addiu a1, a1, 0x6bd4      |         a1 += 0x6bd4;
    0x0003e668 jalr t9                   |         t9 ();
    0x0003e66c lw a1, -0x7fd8(gp)        |         a1 = *(gp);
    0x0003e670 lw t9, -0x772c(gp)        |         t9 = sym.imp.g_string_append_printf
    0x0003e674 lw a2, (s2)               |         a2 = *(s2);
                                         |         /* esilref: ' AND &s' */
    0x0003e678 addiu a1, a1, 0x10e8      |         a1 += 0x10e8;
    0x0003e67c move a0, s1               |         a0 = s1;
    0x0003e680 jalr t9                   |         t9 ();
    0x0003e684 lw gp, 0x28(sp)           |         gp = *(var_28h);
    0x0003e688 b 0x3e614                 |         
                                         |     }
                                         | }
    ; assembly                               | /* r2dec pseudo code output */
                                             | /* /logs/firmware/unblob_extracted/firmware_extract/4325012-58052244.squashfs_v4_le_extract/usr/bin/indexer @ 0x3e3c0 */
                                             | #include <stdint.h>
                                             |  
    ; (fcn) sym.sql_count_recordings ()      | void sql_count_recordings () {
    0x0003e3c0 lui gp, 4                     |     
    0x0003e3c4 addiu gp, gp, 0x7d40          |     
    0x0003e3c8 addu gp, gp, t9               |     gp += t9;
    0x0003e3cc addiu sp, sp, -0x48           |     
    0x0003e3d0 sw gp, 0x28(sp)               |     *(var_28h) = gp;
    0x0003e3d4 sw ra, 0x44(sp)               |     *(var_44h) = ra;
    0x0003e3d8 sw s3, 0x40(sp)               |     *(var_40h) = s3;
    0x0003e3dc sw s2, 0x3c(sp)               |     *(var_3ch) = s2;
    0x0003e3e0 sw s1, 0x38(sp)               |     *(var_38h) = s1;
    0x0003e3e4 sw s0, 0x34(sp)               |     *(var_34h) = s0;
    0x0003e3e8 move s0, a0                   |     s0 = a0;
                                             |     if (a0 == 0) {
    0x0003e3ec beqz a0, 0x3e4b8              |         goto label_0;
                                             |     }
    0x0003e3f0 lw a0, -0x7fd8(gp)            |     a0 = *(gp);
    0x0003e3f4 lw t9, -0x71b4(gp)            |     t9 = sym.imp.g_string_new;
    0x0003e3f8 addiu a0, a0, 0x403c          |     a0 += 0x403c;
    0x0003e3fc move s2, a1                   |     s2 = a1;
    0x0003e400 move s1, a3                   |     s1 = a3;
    0x0003e404 move s3, a2                   |     s3 = a2;
    0x0003e408 jalr t9                       |     t9 ();
    0x0003e40c lw v1, 0x68(sp)               |     v1 = *(arg_68h);
    0x0003e410 lw gp, 0x28(sp)               |     gp = *(var_28h);
    0x0003e414 sw v1, 0x24(sp)               |     *(var_24h) = v1;
    0x0003e418 lw v1, 0x64(sp)               |     v1 = *(arg_64h);
    0x0003e41c lw a1, -0x7fd8(gp)            |     a1 = *(gp);
    0x0003e420 sw v1, 0x20(sp)               |     *(var_20h) = v1;
    0x0003e424 lw v1, 0x60(sp)               |     v1 = *(arg_60h);
    0x0003e428 lw t9, -0x7cf4(gp)            |     t9 = sym.sql_where_stmt;
    0x0003e42c sw v1, 0x1c(sp)               |     *(var_1ch) = v1;
    0x0003e430 lw v1, 0x5c(sp)               |     v1 = *(arg_5ch);
    0x0003e434 move a2, s2                   |     a2 = s2;
    0x0003e438 sw v1, 0x18(sp)               |     *(var_18h) = v1;
    0x0003e43c lw v1, 0x58(sp)               |     v1 = *(arg_58h);
    0x0003e440 move a3, s3                   |     a3 = s3;
                                             |     /* esilref: 'recordings' */
    0x0003e444 addiu a1, a1, -0x21e8         |     a1 += -0x21e8;
    0x0003e448 move a0, s0                   |     a0 = s0;
    0x0003e44c sw v1, 0x14(sp)               |     *(var_14h) = v1;
    0x0003e450 sw s1, 0x10(sp)               |     *(var_10h) = s1;
    0x0003e454 move s1, v0                   |     s1 = v0;
    0x0003e458 bal 0x3ddd8                   |     sym_sql_where_stmt ();
    0x0003e45c lw gp, 0x28(sp)               |     gp = *(var_28h);
    0x0003e460 move s2, v0                   |     s2 = v0;
    0x0003e464 move a2, s0                   |     a2 = s0;
    0x0003e468 lw a1, -0x7fd8(gp)            |     a1 = *(gp);
    0x0003e46c lw t9, -0x772c(gp)            |     t9 = sym.imp.g_string_append_printf
                                             |     /* str.SELECT_COUNT___FROM__s.recordings */
    0x0003e470 addiu a1, a1, 0x7090          |     a1 += 0x7090;
    0x0003e474 move a0, s1                   |     a0 = s1;
    0x0003e478 jalr t9                       |     t9 ();
    0x0003e47c lw v0, 4(s2)                  |     v0 = *((s2 + 1));
    0x0003e480 lw gp, 0x28(sp)               |     gp = *(var_28h);
    0x0003e484 bnez v0, 0x3e4e0              |     
                                             |     while (1) {
    0x0003e488 lw t9, -0x75a8(gp)            |         t9 = sym.imp.g_string_free;
    0x0003e48c move a0, s2                   |         a0 = s2;
    0x0003e490 addiu a1, zero, 1             |         a1 = 1;
    0x0003e494 jalr t9                       |         t9 ();
    0x0003e498 lw ra, 0x44(sp)               |         ra = *(var_44h);
    0x0003e49c move v0, s1                   |         v0 = s1;
    0x0003e4a0 lw s3, 0x40(sp)               |         s3 = *(var_40h);
    0x0003e4a4 lw s2, 0x3c(sp)               |         s2 = *(var_3ch);
    0x0003e4a8 lw s1, 0x38(sp)               |         s1 = *(var_38h);
    0x0003e4ac lw s0, 0x34(sp)               |         s0 = *(var_34h);
    0x0003e4b0 addiu sp, sp, 0x48            |         
    0x0003e4b4 jr ra                         |         return v0;
                                             | label_0:
    0x0003e4b8 lw v0, -0x7fd8(gp)            |         v0 = *(gp);
    0x0003e4bc lw a3, -0x7fd8(gp)            |         a3 = *(gp);
    0x0003e4c0 lw a1, -0x7fd8(gp)            |         a1 = *(gp);
                                             |         /* str.storage_id */
    0x0003e4c4 addiu v0, v0, -0x3264         |         v0 += -0x3264;
    0x0003e4c8 lw t9, -0x76c0(gp)            |         t9 = sym.imp.g_assertion_message_expr;
    0x0003e4cc sw v0, 0x10(sp)               |         *(var_10h) = v0;
                                             |         /* str.sql_count_recordings */
    0x0003e4d0 addiu a3, a3, 0x7f5c          |         a3 += 0x7f5c;
    0x0003e4d4 addiu a2, zero, 0xcd          |         a2 = 0xcd;
                                             |         /* str.sql_read.c */
    0x0003e4d8 addiu a1, a1, 0x6bd4          |         a1 += 0x6bd4;
    0x0003e4dc jalr t9                       |         t9 ();
    0x0003e4e0 lw a1, -0x7fd8(gp)            |         a1 = *(gp);
    0x0003e4e4 lw t9, -0x772c(gp)            |         t9 = sym.imp.g_string_append_printf
    0x0003e4e8 lw a2, (s2)                   |         a2 = *(s2);
                                             |         /* str._WHERE_s */
    0x0003e4ec addiu a1, a1, 0x70b8          |         a1 += 0x70b8;
    0x0003e4f0 move a0, s1                   |         a0 = s1;
    0x0003e4f4 jalr t9                       |         t9 ();
    0x0003e4f8 lw gp, 0x28(sp)               |         gp = *(var_28h);
    0x0003e4fc b 0x3e488                     |         
                                             |     }
                                             | }
    ; assembly                                                       | /* r2dec pseudo code output */
                                                                     | /* /logs/firmware/unblob_extracted/firmware_extract/4325012-58052244.squashfs_v4_le_extract/usr/bin/indexer @ 0x3fca8 */
                                                                     | #include <stdint.h>
                                                                     |  
    ; (fcn) sym.sql_count_recordings_in_recording_group ()           | void sql_count_recordings_in_recording_group () {
    0x0003fca8 lui gp, 4                                             |     
    0x0003fcac addiu gp, gp, 0x6458                                  |     
    0x0003fcb0 addu gp, gp, t9                                       |     gp += t9;
    0x0003fcb4 addiu sp, sp, -0x30                                   |     
    0x0003fcb8 sw gp, 0x18(sp)                                       |     *(var_18h) = gp;
    0x0003fcbc sw ra, 0x2c(sp)                                       |     *(var_2ch) = ra;
    0x0003fcc0 sw s2, 0x28(sp)                                       |     *(var_28h) = s2;
    0x0003fcc4 sw s1, 0x24(sp)                                       |     *(var_24h) = s1;
    0x0003fcc8 sw s0, 0x20(sp)                                       |     *(var_20h) = s0;
    0x0003fccc lw v0, -0x7fd8(gp)                                    |     v0 = *(gp);
                                                                     |     if (a0 != 0) {
    0x0003fcd0 beqz a0, 0x3fd68                                      |         
    0x0003fcd4 move s1, a1                                           |         s1 = a1;
                                                                     |         if (a1 == 0) {
    0x0003fcd8 beqz a1, 0x3fd8c                                      |             goto label_0;
                                                                     |         }
    0x0003fcdc move s0, a0                                           |         s0 = a0;
    0x0003fce0 lw a0, -0x7fd8(gp)                                    |         a0 = *(gp);
    0x0003fce4 lw t9, -0x71b4(gp)                                    |         t9 = sym.imp.g_string_new;
    0x0003fce8 addiu a0, a0, 0x403c                                  |         a0 += 0x403c;
    0x0003fcec jalr t9                                               |         t9 ();
    0x0003fcf0 lw gp, 0x18(sp)                                       |         gp = *(var_18h);
    0x0003fcf4 move a0, s0                                           |         a0 = s0;
    0x0003fcf8 move s0, v0                                           |         s0 = v0;
    0x0003fcfc lw a1, -0x7fd8(gp)                                    |         a1 = *(gp);
    0x0003fd00 lw t9, -0x7cec(gp)                                    |         t9 = sym.sql_table_with_storage_name;
                                                                     |         /* str.recording_groups */
    0x0003fd04 addiu a1, a1, 0xa24                                   |         a1 += 0xa24;
    0x0003fd08 bal 0x39fd0                                           |         sym_sql_table_with_storage_name ();
    0x0003fd0c lw gp, 0x18(sp)                                       |         gp = *(var_18h);
    0x0003fd10 move a3, s1                                           |         a3 = s1;
    0x0003fd14 move a0, s0                                           |         a0 = s0;
    0x0003fd18 lw a1, -0x7fd8(gp)                                    |         a1 = *(gp);
    0x0003fd1c lw t9, -0x772c(gp)                                    |         t9 = sym.imp.g_string_append_printf
                                                                     |         /* str.SELECT_COUNT___FROM__s_WHERE_recording_group_id_s_ */
    0x0003fd20 addiu a1, a1, 0x7a70                                  |         a1 += 0x7a70;
    0x0003fd24 move a2, v0                                           |         a2 = v0;
    0x0003fd28 move s2, v0                                           |         s2 = v0;
    0x0003fd2c jalr t9                                               |         t9 ();
    0x0003fd30 lw gp, 0x18(sp)                                       |         gp = *(var_18h);
    0x0003fd34 lw t9, -0x74c8(gp)                                    |         t9 = *((gp - 7474));
    0x0003fd38 move a0, s2                                           |         a0 = s2;
    0x0003fd3c jalr t9                                               |         t9 ();
    0x0003fd40 lw gp, 0x18(sp)                                       |         gp = *(var_18h);
    0x0003fd44 lw ra, 0x2c(sp)                                       |         ra = *(var_2ch);
    0x0003fd48 lw s2, 0x28(sp)                                       |         s2 = *(var_28h);
    0x0003fd4c lw s1, 0x24(sp)                                       |         s1 = *(var_24h);
    0x0003fd50 move a0, s0                                           |         a0 = s0;
    0x0003fd54 lw t9, -0x75a8(gp)                                    |         t9 = sym.imp.g_string_free;
    0x0003fd58 lw s0, 0x20(sp)                                       |         s0 = *(var_20h);
    0x0003fd5c move a1, zero                                         |         a1 = 0;
    0x0003fd60 addiu sp, sp, 0x30                                    |         
    0x0003fd64 jr t9                                                 |         t9 ();
                                                                     |     }
    0x0003fd68 lw a3, -0x7fd8(gp)                                    |     a3 = *(gp);
    0x0003fd6c lw a1, -0x7fd8(gp)                                    |     a1 = *(gp);
                                                                     |     /* str.storage_id */
    0x0003fd70 addiu v0, v0, -0x3264                                 |     v0 += -0x3264;
    0x0003fd74 lw t9, -0x76c0(gp)                                    |     t9 = sym.imp.g_assertion_message_expr;
    0x0003fd78 sw v0, 0x10(sp)                                       |     *(var_10h) = v0;
                                                                     |     /* str.sql_count_recordings_in_recording_group */
    0x0003fd7c addiu a3, a3, 0x7d4c                                  |     a3 += 0x7d4c;
    0x0003fd80 addiu a2, zero, 0x3bf                                 |     a2 = 0x3bf;
                                                                     |     /* str.sql_read.c */
    0x0003fd84 addiu a1, a1, 0x6bd4                                  |     a1 += 0x6bd4;
    0x0003fd88 jalr t9                                               |     t9 ();
                                                                     | label_0:
    0x0003fd8c lw v0, -0x7fd8(gp)                                    |     v0 = *(gp);
    0x0003fd90 lw a3, -0x7fd8(gp)                                    |     a3 = *(gp);
    0x0003fd94 lw a1, -0x7fd8(gp)                                    |     a1 = *(gp);
                                                                     |     /* esilref: 'recording_group_id' */
    0x0003fd98 addiu v0, v0, 0x80c                                   |     v0 += 0x80c;
    0x0003fd9c lw t9, -0x76c0(gp)                                    |     t9 = sym.imp.g_assertion_message_expr;
    0x0003fda0 sw v0, 0x10(sp)                                       |     *(var_10h) = v0;
                                                                     |     /* str.sql_count_recordings_in_recording_group */
    0x0003fda4 addiu a3, a3, 0x7d4c                                  |     a3 += 0x7d4c;
    0x0003fda8 addiu a2, zero, 0x3c0                                 |     a2 = section..hash;
                                                                     |     /* str.sql_read.c */
    0x0003fdac addiu a1, a1, 0x6bd4                                  |     a1 += 0x6bd4;
    0x0003fdb0 move a0, zero                                         |     a0 = 0;
    0x0003fdb4 jalr t9                                               |     return t9 ();
                                                                     | }
    ; assembly                                                       | /* r2dec pseudo code output */
                                                                     | /* /logs/firmware/unblob_extracted/firmware_extract/4325012-58052244.squashfs_v4_le_extract/usr/bin/indexer @ 0x3fca8 */
                                                                     | #include <stdint.h>
                                                                     |  
    ; (fcn) sym.sql_count_recordings_in_recording_group ()           | void sql_count_recordings_in_recording_group () {
    0x0003fca8 lui gp, 4                                             |     
    0x0003fcac addiu gp, gp, 0x6458                                  |     
    0x0003fcb0 addu gp, gp, t9                                       |     gp += t9;
    0x0003fcb4 addiu sp, sp, -0x30                                   |     
    0x0003fcb8 sw gp, 0x18(sp)                                       |     *(var_18h) = gp;
    0x0003fcbc sw ra, 0x2c(sp)                                       |     *(var_2ch) = ra;
    0x0003fcc0 sw s2, 0x28(sp)                                       |     *(var_28h) = s2;
    0x0003fcc4 sw s1, 0x24(sp)                                       |     *(var_24h) = s1;
    0x0003fcc8 sw s0, 0x20(sp)                                       |     *(var_20h) = s0;
    0x0003fccc lw v0, -0x7fd8(gp)                                    |     v0 = *(gp);
                                                                     |     if (a0 != 0) {
    0x0003fcd0 beqz a0, 0x3fd68                                      |         
    0x0003fcd4 move s1, a1                                           |         s1 = a1;
                                                                     |         if (a1 == 0) {
    0x0003fcd8 beqz a1, 0x3fd8c                                      |             goto label_0;
                                                                     |         }
    0x0003fcdc move s0, a0                                           |         s0 = a0;
    0x0003fce0 lw a0, -0x7fd8(gp)                                    |         a0 = *(gp);
    0x0003fce4 lw t9, -0x71b4(gp)                                    |         t9 = sym.imp.g_string_new;
    0x0003fce8 addiu a0, a0, 0x403c                                  |         a0 += 0x403c;
    0x0003fcec jalr t9                                               |         t9 ();
    0x0003fcf0 lw gp, 0x18(sp)                                       |         gp = *(var_18h);
    0x0003fcf4 move a0, s0                                           |         a0 = s0;
    0x0003fcf8 move s0, v0                                           |         s0 = v0;
    0x0003fcfc lw a1, -0x7fd8(gp)                                    |         a1 = *(gp);
    0x0003fd00 lw t9, -0x7cec(gp)                                    |         t9 = sym.sql_table_with_storage_name;
                                                                     |         /* str.recording_groups */
    0x0003fd04 addiu a1, a1, 0xa24                                   |         a1 += 0xa24;
    0x0003fd08 bal 0x39fd0                                           |         sym_sql_table_with_storage_name ();
    0x0003fd0c lw gp, 0x18(sp)                                       |         gp = *(var_18h);
    0x0003fd10 move a3, s1                                           |         a3 = s1;
    0x0003fd14 move a0, s0                                           |         a0 = s0;
    0x0003fd18 lw a1, -0x7fd8(gp)                                    |         a1 = *(gp);
    0x0003fd1c lw t9, -0x772c(gp)                                    |         t9 = sym.imp.g_string_append_printf
                                                                     |         /* str.SELECT_COUNT___FROM__s_WHERE_recording_group_id_s_ */
    0x0003fd20 addiu a1, a1, 0x7a70                                  |         a1 += 0x7a70;
    0x0003fd24 move a2, v0                                           |         a2 = v0;
    0x0003fd28 move s2, v0                                           |         s2 = v0;
    0x0003fd2c jalr t9                                               |         t9 ();
    0x0003fd30 lw gp, 0x18(sp)                                       |         gp = *(var_18h);
    0x0003fd34 lw t9, -0x74c8(gp)                                    |         t9 = *((gp - 7474));
    0x0003fd38 move a0, s2                                           |         a0 = s2;
    0x0003fd3c jalr t9                                               |         t9 ();
    0x0003fd40 lw gp, 0x18(sp)                                       |         gp = *(var_18h);
    0x0003fd44 lw ra, 0x2c(sp)                                       |         ra = *(var_2ch);
    0x0003fd48 lw s2, 0x28(sp)                                       |         s2 = *(var_28h);
    0x0003fd4c lw s1, 0x24(sp)                                       |         s1 = *(var_24h);
    0x0003fd50 move a0, s0                                           |         a0 = s0;
    0x0003fd54 lw t9, -0x75a8(gp)                                    |         t9 = sym.imp.g_string_free;
    0x0003fd58 lw s0, 0x20(sp)                                       |         s0 = *(var_20h);
    0x0003fd5c move a1, zero                                         |         a1 = 0;
    0x0003fd60 addiu sp, sp, 0x30                                    |         
    0x0003fd64 jr t9                                                 |         t9 ();
                                                                     |     }
    0x0003fd68 lw a3, -0x7fd8(gp)                                    |     a3 = *(gp);
    0x0003fd6c lw a1, -0x7fd8(gp)                                    |     a1 = *(gp);
                                                                     |     /* str.storage_id */
    0x0003fd70 addiu v0, v0, -0x3264                                 |     v0 += -0x3264;
    0x0003fd74 lw t9, -0x76c0(gp)                                    |     t9 = sym.imp.g_assertion_message_expr;
    0x0003fd78 sw v0, 0x10(sp)                                       |     *(var_10h) = v0;
                                                                     |     /* str.sql_count_recordings_in_recording_group */
    0x0003fd7c addiu a3, a3, 0x7d4c                                  |     a3 += 0x7d4c;
    0x0003fd80 addiu a2, zero, 0x3bf                                 |     a2 = 0x3bf;
                                                                     |     /* str.sql_read.c */
    0x0003fd84 addiu a1, a1, 0x6bd4                                  |     a1 += 0x6bd4;
    0x0003fd88 jalr t9                                               |     t9 ();
                                                                     | label_0:
    0x0003fd8c lw v0, -0x7fd8(gp)                                    |     v0 = *(gp);
    0x0003fd90 lw a3, -0x7fd8(gp)                                    |     a3 = *(gp);
    0x0003fd94 lw a1, -0x7fd8(gp)                                    |     a1 = *(gp);
                                                                     |     /* esilref: 'recording_group_id' */
    0x0003fd98 addiu v0, v0, 0x80c                                   |     v0 += 0x80c;
    0x0003fd9c lw t9, -0x76c0(gp)                                    |     t9 = sym.imp.g_assertion_message_expr;
    0x0003fda0 sw v0, 0x10(sp)                                       |     *(var_10h) = v0;
                                                                     |     /* str.sql_count_recordings_in_recording_group */
    0x0003fda4 addiu a3, a3, 0x7d4c                                  |     a3 += 0x7d4c;
    0x0003fda8 addiu a2, zero, 0x3c0                                 |     a2 = section..hash;
                                                                     |     /* str.sql_read.c */
    0x0003fdac addiu a1, a1, 0x6bd4                                  |     a1 += 0x6bd4;
    0x0003fdb0 move a0, zero                                         |     a0 = 0;
    0x0003fdb4 jalr t9                                               |     return t9 ();
                                                                     | }
    ; assembly                               | /* r2dec pseudo code output */
                                             | /* /logs/firmware/unblob_extracted/firmware_extract/4325012-58052244.squashfs_v4_le_extract/usr/bin/indexer @ 0x3b624 */
                                             | #include <stdint.h>
                                             |  
    ; (fcn) sym.sql_create_index ()          | void sql_create_index () {
    0x0003b624 lui gp, 5                     |     
    0x0003b628 addiu gp, gp, -0x5524         |     
    0x0003b62c addu gp, gp, t9               |     gp += t9;
    0x0003b630 addiu sp, sp, -0x38           |     
    0x0003b634 sw gp, 0x18(sp)               |     *(var_18h) = gp;
    0x0003b638 sw ra, 0x34(sp)               |     *(var_34h) = ra;
    0x0003b63c sw s3, 0x30(sp)               |     *(var_30h) = s3;
    0x0003b640 sw s2, 0x2c(sp)               |     *(var_2ch) = s2;
    0x0003b644 sw s1, 0x28(sp)               |     *(var_28h) = s1;
    0x0003b648 sw s0, 0x24(sp)               |     *(var_24h) = s0;
    0x0003b64c lw v0, -0x7fd8(gp)            |     v0 = *(gp);
                                             |     if (a2 != 0) {
    0x0003b650 beqz a2, 0x3b6e8              |         
    0x0003b654 move s1, a3                   |         s1 = a3;
                                             |         if (a3 == 0) {
    0x0003b658 beqz a3, 0x3b710              |             goto label_0;
                                             |         }
    0x0003b65c move s2, a0                   |         s2 = a0;
    0x0003b660 lw a0, -0x7fd8(gp)            |         a0 = *(gp);
    0x0003b664 lw t9, -0x71b4(gp)            |         t9 = sym.imp.g_string_new;
    0x0003b668 sw a1, 0x3c(sp)               |         *(arg_3ch) = a1;
    0x0003b66c addiu a0, a0, 0x403c          |         a0 += 0x403c;
    0x0003b670 move s0, a2                   |         s0 = a2;
    0x0003b674 jalr t9                       |         t9 ();
    0x0003b678 lw gp, 0x18(sp)               |         gp = *(var_18h);
    0x0003b67c lw a1, 0x3c(sp)               |         a1 = *(arg_3ch);
    0x0003b680 move a0, s2                   |         a0 = s2;
    0x0003b684 lw t9, -0x7cec(gp)            |         t9 = sym.sql_table_with_storage_name;
    0x0003b688 move s2, v0                   |         s2 = v0;
    0x0003b68c bal 0x39fd0                   |         sym_sql_table_with_storage_name ();
    0x0003b690 lw gp, 0x18(sp)               |         gp = *(var_18h);
    0x0003b694 move a3, s0                   |         a3 = s0;
    0x0003b698 move a2, v0                   |         a2 = v0;
    0x0003b69c lw a1, -0x7fd8(gp)            |         a1 = *(gp);
    0x0003b6a0 lw t9, -0x772c(gp)            |         t9 = sym.imp.g_string_append_printf
                                             |         /* str.CREATE_INDEX__s_ON__s___s__ */
    0x0003b6a4 addiu a1, a1, 0x6604          |         a1 += 0x6604;
    0x0003b6a8 move a0, s2                   |         a0 = s2;
    0x0003b6ac sw s1, 0x10(sp)               |         *(var_10h) = s1;
    0x0003b6b0 move s3, v0                   |         s3 = v0;
    0x0003b6b4 jalr t9                       |         t9 ();
    0x0003b6b8 lw gp, 0x18(sp)               |         gp = *(var_18h);
    0x0003b6bc lw t9, -0x74c8(gp)            |         t9 = *((gp - 7474));
    0x0003b6c0 move a0, s3                   |         a0 = s3;
    0x0003b6c4 jalr t9                       |         t9 ();
    0x0003b6c8 lw ra, 0x34(sp)               |         ra = *(var_34h);
    0x0003b6cc move v0, s2                   |         v0 = s2;
    0x0003b6d0 lw s3, 0x30(sp)               |         s3 = *(var_30h);
    0x0003b6d4 lw s2, 0x2c(sp)               |         s2 = *(var_2ch);
    0x0003b6d8 lw s1, 0x28(sp)               |         s1 = *(var_28h);
    0x0003b6dc lw s0, 0x24(sp)               |         s0 = *(var_24h);
    0x0003b6e0 addiu sp, sp, 0x38            |         
    0x0003b6e4 jr ra                         |         return v0;
                                             |     }
    0x0003b6e8 lw a3, -0x7fd8(gp)            |     a3 = *(gp);
    0x0003b6ec lw a1, -0x7fd8(gp)            |     a1 = *(gp);
                                             |     /* str.table_name */
    0x0003b6f0 addiu v0, v0, 0x6140          |     v0 += 0x6140;
    0x0003b6f4 lw t9, -0x76c0(gp)            |     t9 = sym.imp.g_assertion_message_expr;
    0x0003b6f8 sw v0, 0x10(sp)               |     *(var_10h) = v0;
                                             |     /* str.sql_create_index */
    0x0003b6fc addiu a3, a3, 0x69d4          |     a3 += 0x69d4;
    0x0003b700 addiu a2, zero, 0x14c         |     a2 = aav.0x0000014c;
                                             |     /* str.sql_create.c */
    0x0003b704 addiu a1, a1, 0x6130          |     a1 += 0x6130;
    0x0003b708 move a0, zero                 |     a0 = 0;
    0x0003b70c jalr t9                       |     t9 ();
                                             | label_0:
    0x0003b710 lw v0, -0x7fd8(gp)            |     v0 = *(gp);
    0x0003b714 lw a3, -0x7fd8(gp)            |     a3 = *(gp);
    0x0003b718 lw a1, -0x7fd8(gp)            |     a1 = *(gp);
                                             |     /* str.indexed_column */
    0x0003b71c addiu v0, v0, 0x65f4          |     v0 += 0x65f4;
    0x0003b720 lw t9, -0x76c0(gp)            |     t9 = sym.imp.g_assertion_message_expr;
    0x0003b724 sw v0, 0x10(sp)               |     *(var_10h) = v0;
                                             |     /* str.sql_create_index */
    0x0003b728 addiu a3, a3, 0x69d4          |     a3 += 0x69d4;
    0x0003b72c addiu a2, zero, 0x14d         |     a2 = 0x14d;
                                             |     /* str.sql_create.c */
    0x0003b730 addiu a1, a1, 0x6130          |     a1 += 0x6130;
    0x0003b734 move a0, zero                 |     a0 = 0;
    0x0003b738 jalr t9                       |     return t9 ();
                                             | }
    ; assembly                                   | /* r2dec pseudo code output */
                                                 | /* /logs/firmware/unblob_extracted/firmware_extract/4325012-58052244.squashfs_v4_le_extract/usr/bin/indexer @ 0x3b42c */
                                                 | #include <stdint.h>
                                                 |  
    ; (fcn) sym.sql_create_temp_table ()         | void sql_create_temp_table () {
    0x0003b42c lui gp, 5                         |     
    0x0003b430 addiu gp, gp, -0x532c             |     
    0x0003b434 addu gp, gp, t9                   |     gp += t9;
    0x0003b438 addiu sp, sp, -0x38               |     
    0x0003b43c sw gp, 0x18(sp)                   |     *(var_18h) = gp;
    0x0003b440 sw ra, 0x34(sp)                   |     *(var_34h) = ra;
    0x0003b444 sw s3, 0x30(sp)                   |     *(var_30h) = s3;
    0x0003b448 sw s2, 0x2c(sp)                   |     *(var_2ch) = s2;
    0x0003b44c sw s1, 0x28(sp)                   |     *(var_28h) = s1;
    0x0003b450 sw s0, 0x24(sp)                   |     *(var_24h) = s0;
    0x0003b454 lw v0, -0x7fd8(gp)                |     v0 = *(gp);
                                                 |     if (a0 == 0) {
    0x0003b458 beqz a0, 0x3b524                  |         goto label_0;
                                                 |     }
    0x0003b45c move s2, a1                       |     s2 = a1;
                                                 |     if (a1 == 0) {
    0x0003b460 beqz a1, 0x3b548                  |         goto label_1;
                                                 |     }
    0x0003b464 move s1, a0                       |     s1 = a0;
    0x0003b468 lw a0, -0x7fd8(gp)                |     a0 = *(gp);
    0x0003b46c lw t9, -0x71b4(gp)                |     t9 = sym.imp.g_string_new;
                                                 |     /* str.CREATE_TEMP_TABLE_IF_NOT_EXISTS_ */
    0x0003b470 addiu a0, a0, 0x653c              |     a0 += 0x653c;
    0x0003b474 move s3, a2                       |     s3 = a2;
    0x0003b478 jalr t9                           |     t9 ();
    0x0003b47c lw gp, 0x18(sp)                   |     gp = *(var_18h);
    0x0003b480 move a3, s2                       |     a3 = s2;
    0x0003b484 move a2, s1                       |     a2 = s1;
    0x0003b488 lw a1, -0x7fd8(gp)                |     a1 = *(gp);
    0x0003b48c lw t9, -0x772c(gp)                |     t9 = sym.imp.g_string_append_printf
                                                 |     /* str._s_AS__s */
    0x0003b490 addiu a1, a1, 0x6560              |     a1 += 0x6560;
    0x0003b494 move a0, v0                       |     a0 = v0;
    0x0003b498 move s0, v0                       |     s0 = v0;
    0x0003b49c jalr t9                           |     t9 ();
    0x0003b4a0 lw gp, 0x18(sp)                   |     gp = *(var_18h);
                                                 |     if (s3 == 0) {
    0x0003b4a4 beqz s3, 0x3b4f8                  |         goto label_2;
                                                 |     }
    0x0003b4a8 lw a0, 4(s0)                      |     a0 = *((s0 + 1));
    0x0003b4ac lw v0, 8(s0)                      |     v0 = *((s0 + 2));
    0x0003b4b0 addiu v1, a0, 1                   |     v1 = a0 + 1;
    0x0003b4b4 sltu v0, v1, v0                   |     v0 = (v1 < v0) ? 1 : 0;
    0x0003b4b8 lw t9, -0x739c(gp)                |     t9 = sym.imp.g_string_insert_c;
                                                 |     if (v0 == 0) {
    0x0003b4bc beqz v0, 0x3b574                  |         goto label_3;
                                                 |     }
    0x0003b4c0 lw v0, (s0)                       |     v0 = *(s0);
    0x0003b4c4 sw v1, 4(s0)                      |     *((s0 + 1)) = v1;
    0x0003b4c8 addu v0, v0, a0                   |     v0 += a0;
    0x0003b4cc addiu v1, zero, 0x20              |     v1 = 0x20;
    0x0003b4d0 sb v1, (v0)                       |     *(v0) = v1;
    0x0003b4d4 lw v0, (s0)                       |     v0 = *(s0);
    0x0003b4d8 lw v1, 4(s0)                      |     v1 = *((s0 + 1));
    0x0003b4dc addu v0, v0, v1                   |     v0 += v1;
    0x0003b4e0 sb zero, (v0)                     |     *(v0) = 0;
                                                 |     do {
    0x0003b4e4 lw t9, -0x76d0(gp)                |         t9 = sym.imp.g_string_append;
    0x0003b4e8 move a1, s3                       |         a1 = s3;
    0x0003b4ec move a0, s0                       |         a0 = s0;
    0x0003b4f0 jalr t9                           |         t9 ();
    0x0003b4f4 lw gp, 0x18(sp)                   |         gp = *(var_18h);
                                                 | label_2:
    0x0003b4f8 lw t9, -0x7a78(gp)                |         t9 = sym.sql_append_semicolon;
    0x0003b4fc move a0, s0                       |         a0 = s0;
    0x0003b500 bal 0x3a054                       |         sym_sql_append_semicolon ();
    0x0003b504 lw ra, 0x34(sp)                   |         ra = *(var_34h);
    0x0003b508 move v0, s0                       |         v0 = s0;
    0x0003b50c lw s3, 0x30(sp)                   |         s3 = *(var_30h);
    0x0003b510 lw s2, 0x2c(sp)                   |         s2 = *(var_2ch);
    0x0003b514 lw s1, 0x28(sp)                   |         s1 = *(var_28h);
    0x0003b518 lw s0, 0x24(sp)                   |         s0 = *(var_24h);
    0x0003b51c addiu sp, sp, 0x38                |         
    0x0003b520 jr ra                             |         return v0;
                                                 | label_0:
    0x0003b524 lw a3, -0x7fd8(gp)                |         a3 = *(gp);
    0x0003b528 lw a1, -0x7fd8(gp)                |         a1 = *(gp);
                                                 |         /* esilref: 'table' */
    0x0003b52c addiu v0, v0, 0x8e0               |         v0 += 0x8e0;
    0x0003b530 lw t9, -0x76c0(gp)                |         t9 = sym.imp.g_assertion_message_expr;
    0x0003b534 sw v0, 0x10(sp)                   |         *(var_10h) = v0;
                                                 |         /* str.sql_create_temp_table */
    0x0003b538 addiu a3, a3, 0x69e8              |         a3 += 0x69e8;
    0x0003b53c addiu a2, zero, 0x129             |         a2 = 0x129;
                                                 |         /* str.sql_create.c */
    0x0003b540 addiu a1, a1, 0x6130              |         a1 += 0x6130;
    0x0003b544 jalr t9                           |         t9 ();
                                                 | label_1:
    0x0003b548 lw v0, -0x7fd8(gp)                |         v0 = *(gp);
    0x0003b54c lw a3, -0x7fd8(gp)                |         a3 = *(gp);
    0x0003b550 lw a1, -0x7fd8(gp)                |         a1 = *(gp);
                                                 |         /* str.sql_stmt */
    0x0003b554 addiu v0, v0, 0x6530              |         v0 += 0x6530;
    0x0003b558 lw t9, -0x76c0(gp)                |         t9 = sym.imp.g_assertion_message_expr;
    0x0003b55c sw v0, 0x10(sp)                   |         *(var_10h) = v0;
                                                 |         /* str.sql_create_temp_table */
    0x0003b560 addiu a3, a3, 0x69e8              |         a3 += 0x69e8;
    0x0003b564 addiu a2, zero, 0x12a             |         a2 = 0x12a;
                                                 |         /* str.sql_create.c */
    0x0003b568 addiu a1, a1, 0x6130              |         a1 += 0x6130;
    0x0003b56c move a0, zero                     |         a0 = 0;
    0x0003b570 jalr t9                           |         t9 ();
                                                 | label_3:
    0x0003b574 addiu a2, zero, 0x20              |         a2 = 0x20;
    0x0003b578 addiu a1, zero, -1                |         a1 = -1;
    0x0003b57c move a0, s0                       |         a0 = s0;
    0x0003b580 jalr t9                           |         t9 ();
    0x0003b584 lw gp, 0x18(sp)                   |         gp = *(var_18h);
    0x0003b588 b 0x3b4e4                         |         
                                                 |     } while (1);
                                                 | }
    ; assembly                                               | /* r2dec pseudo code output */
                                                             | /* /logs/firmware/unblob_extracted/firmware_extract/4325012-58052244.squashfs_v4_le_extract/usr/bin/indexer @ 0x3cd14 */
                                                             | #include <stdint.h>
                                                             |  
    ; (fcn) sym.sql_create_temp_table_stream_ids ()          | void sql_create_temp_table_stream_ids () {
    0x0003cd14 lui gp, 5                                     |     
    0x0003cd18 addiu gp, gp, -0x6c14                         |     
    0x0003cd1c addu gp, gp, t9                               |     gp += t9;
    0x0003cd20 addiu sp, sp, -0x80                           |     
    0x0003cd24 lw t9, -0x7580(gp)                            |     t9 = sym.imp.g_strconcat;
    0x0003cd28 sw s0, 0x64(sp)                               |     *(var_64h) = s0;
    0x0003cd2c move s0, a1                                   |     s0 = a1;
    0x0003cd30 lw a1, -0x7fd8(gp)                            |     a1 = *(gp);
    0x0003cd34 sw ra, 0x7c(sp)                               |     *(var_7ch) = ra;
    0x0003cd38 sw s5, 0x78(sp)                               |     *(var_78h) = s5;
    0x0003cd3c sw s4, 0x74(sp)                               |     *(var_74h) = s4;
    0x0003cd40 sw s3, 0x70(sp)                               |     *(var_70h) = s3;
    0x0003cd44 sw s2, 0x6c(sp)                               |     *(var_6ch) = s2;
    0x0003cd48 sw s1, 0x68(sp)                               |     *(var_68h) = s1;
    0x0003cd4c move s3, a0                                   |     s3 = a0;
    0x0003cd50 move s1, a2                                   |     s1 = a2;
    0x0003cd54 sw a3, 0x8c(sp)                               |     *(arg_8ch) = a3;
    0x0003cd58 sw gp, 0x58(sp)                               |     *(var_58h) = gp;
    0x0003cd5c move a0, s0                                   |     a0 = s0;
    0x0003cd60 move a2, zero                                 |     a2 = 0;
                                                             |     /* str._type */
    0x0003cd64 addiu a1, a1, 0xd14                           |     a1 += 0xd14;
    0x0003cd68 jalr t9                                       |     t9 ();
    0x0003cd6c lw gp, 0x58(sp)                               |     gp = *(var_58h);
    0x0003cd70 move a2, zero                                 |     a2 = 0;
    0x0003cd74 move a0, s0                                   |     a0 = s0;
    0x0003cd78 lw a1, -0x7fd8(gp)                            |     a1 = *(gp);
    0x0003cd7c lw t9, -0x7580(gp)                            |     t9 = sym.imp.g_strconcat;
                                                             |     /* str._properties */
    0x0003cd80 addiu a1, a1, 0xd1c                           |     a1 += 0xd1c;
    0x0003cd84 move s5, v0                                   |     s5 = v0;
    0x0003cd88 jalr t9                                       |     t9 ();
    0x0003cd8c lw gp, 0x58(sp)                               |     gp = *(var_58h);
    0x0003cd90 move s4, v0                                   |     s4 = v0;
    0x0003cd94 lw a0, -0x7fd8(gp)                            |     a0 = *(gp);
    0x0003cd98 lw t9, -0x71b4(gp)                            |     t9 = sym.imp.g_string_new;
    0x0003cd9c addiu a0, a0, 0x403c                          |     a0 += 0x403c;
    0x0003cda0 jalr t9                                       |     t9 ();
    0x0003cda4 lw gp, 0x58(sp)                               |     gp = *(var_58h);
    0x0003cda8 move s2, v0                                   |     s2 = v0;
    0x0003cdac lw a3, 0x8c(sp)                               |     a3 = *(arg_8ch);
    0x0003cdb0 lw v1, -0x7f50(gp)                            |     v1 = *((gp - 8148));
    0x0003cdb4 lw v0, -0x7fd8(gp)                            |     v0 = *(gp);
                                                             |     /* esilref: 'id' */
    0x0003cdb8 addiu v1, v1, -0x6dbc                         |     v1 += -0x6dbc;
    0x0003cdbc sw v1, 0x54(sp)                               |     *(var_54h) = v1;
    0x0003cdc0 lw v1, -0x7fd8(gp)                            |     v1 = *(gp);
    0x0003cdc4 lw a1, -0x7fd8(gp)                            |     a1 = *(gp);
                                                             |     /* str.recordingref */
    0x0003cdc8 addiu v1, v1, 0x6870                          |     v1 += 0x6870;
    0x0003cdcc sw v1, 0x4c(sp)                               |     *(var_4ch) = v1;
    0x0003cdd0 lw v1, -0x7fd8(gp)                            |     v1 = *(gp);
                                                             |     /* esilref: 'recordings' */
    0x0003cdd4 addiu v0, v0, -0x21e8                         |     v0 += -0x21e8;
                                                             |     /* str.properties */
    0x0003cdd8 addiu v1, v1, 0x67dc                          |     v1 += 0x67dc;
    0x0003cddc sw v1, 0x3c(sp)                               |     *(var_3ch) = v1;
    0x0003cde0 lw v1, -0x7fd8(gp)                            |     v1 = *(gp);
    0x0003cde4 lw t9, -0x772c(gp)                            |     t9 = sym.imp.g_string_append_printf
                                                             |     /* esilref: 'mimetype' */
    0x0003cde8 addiu v1, v1, 0x3bc4                          |     v1 += 0x3bc4;
    0x0003cdec sw v1, 0x2c(sp)                               |     *(var_2ch) = v1;
    0x0003cdf0 move a2, s0                                   |     a2 = s0;
    0x0003cdf4 move a0, s2                                   |     a0 = s2;
    0x0003cdf8 sw v0, 0x50(sp)                               |     *(var_50h) = v0;
    0x0003cdfc sw s1, 0x48(sp)                               |     *(var_48h) = s1;
    0x0003ce00 sw s4, 0x44(sp)                               |     *(var_44h) = s4;
    0x0003ce04 sw s0, 0x40(sp)                               |     *(var_40h) = s0;
    0x0003ce08 sw s1, 0x38(sp)                               |     *(var_38h) = s1;
    0x0003ce0c sw s5, 0x34(sp)                               |     *(var_34h) = s5;
    0x0003ce10 sw s0, 0x30(sp)                               |     *(var_30h) = s0;
    0x0003ce14 sw s1, 0x28(sp)                               |     *(var_28h) = s1;
    0x0003ce18 sw v0, 0x24(sp)                               |     *(var_24h) = v0;
    0x0003ce1c sw s3, 0x20(sp)                               |     *(var_20h) = s3;
    0x0003ce20 sw s1, 0x1c(sp)                               |     *(var_1ch) = s1;
    0x0003ce24 sw s3, 0x18(sp)                               |     *(var_18h) = s3;
    0x0003ce28 sw s0, 0x14(sp)                               |     *(var_14h) = s0;
    0x0003ce2c sw s3, 0x10(sp)                               |     *(var_10h) = s3;
                                                             |     /* str.SELECT_recordings.id_AS_recording_id___s.id_AS__s_FROM__s._s___s._s___s._s_WHERE___s._s_s._s_AND__s._s_s._s__AND___s._s_s._s_ */
    0x0003ce30 addiu a1, a1, 0x6880                          |     a1 += 0x6880;
    0x0003ce34 jalr t9                                       |     t9 ();
    0x0003ce38 lw gp, 0x58(sp)                               |     gp = *(var_58h);
    0x0003ce3c lw a1, (s2)                                   |     a1 = *(s2);
    0x0003ce40 move a2, zero                                 |     a2 = 0;
    0x0003ce44 lw a0, -0x7fd8(gp)                            |     a0 = *(gp);
    0x0003ce48 lw t9, -0x7cc0(gp)                            |     t9 = sym.sql_create_temp_table;
                                                             |     /* str.temp_rec_id_table */
    0x0003ce4c addiu a0, a0, 0xc44                           |     a0 += 0xc44;
    0x0003ce50 bal 0x3b42c                                   |     sym_sql_create_temp_table ();
    0x0003ce54 lw gp, 0x58(sp)                               |     gp = *(var_58h);
    0x0003ce58 move a0, s5                                   |     a0 = s5;
    0x0003ce5c lw t9, -0x74c8(gp)                            |     t9 = *((gp - 7474));
    0x0003ce60 move s0, v0                                   |     s0 = v0;
    0x0003ce64 jalr t9                                       |     t9 ();
    0x0003ce68 lw gp, 0x58(sp)                               |     gp = *(var_58h);
    0x0003ce6c lw t9, -0x74c8(gp)                            |     t9 = *((gp - 7474));
    0x0003ce70 move a0, s4                                   |     a0 = s4;
    0x0003ce74 jalr t9                                       |     t9 ();
    0x0003ce78 lw gp, 0x58(sp)                               |     gp = *(var_58h);
    0x0003ce7c move a0, s2                                   |     a0 = s2;
    0x0003ce80 lw t9, -0x75a8(gp)                            |     t9 = sym.imp.g_string_free;
    0x0003ce84 addiu a1, zero, 1                             |     a1 = 1;
    0x0003ce88 jalr t9                                       |     t9 ();
    0x0003ce8c lw ra, 0x7c(sp)                               |     ra = *(var_7ch);
    0x0003ce90 move v0, s0                                   |     v0 = s0;
    0x0003ce94 lw s5, 0x78(sp)                               |     s5 = *(var_78h);
    0x0003ce98 lw s4, 0x74(sp)                               |     s4 = *(var_74h);
    0x0003ce9c lw s3, 0x70(sp)                               |     s3 = *(var_70h);
    0x0003cea0 lw s2, 0x6c(sp)                               |     s2 = *(var_6ch);
    0x0003cea4 lw s1, 0x68(sp)                               |     s1 = *(var_68h);
    0x0003cea8 lw s0, 0x64(sp)                               |     s0 = *(var_64h);
    0x0003ceac addiu sp, sp, 0x80                            |     
    0x0003ceb0 jr ra                                         |     return v0;
                                                             | }
    ; assembly                                               | /* r2dec pseudo code output */
                                                             | /* /logs/firmware/unblob_extracted/firmware_extract/4325012-58052244.squashfs_v4_le_extract/usr/bin/indexer @ 0x3cd14 */
                                                             | #include <stdint.h>
                                                             |  
    ; (fcn) sym.sql_create_temp_table_stream_ids ()          | void sql_create_temp_table_stream_ids () {
    0x0003cd14 lui gp, 5                                     |     
    0x0003cd18 addiu gp, gp, -0x6c14                         |     
    0x0003cd1c addu gp, gp, t9                               |     gp += t9;
    0x0003cd20 addiu sp, sp, -0x80                           |     
    0x0003cd24 lw t9, -0x7580(gp)                            |     t9 = sym.imp.g_strconcat;
    0x0003cd28 sw s0, 0x64(sp)                               |     *(var_64h) = s0;
    0x0003cd2c move s0, a1                                   |     s0 = a1;
    0x0003cd30 lw a1, -0x7fd8(gp)                            |     a1 = *(gp);
    0x0003cd34 sw ra, 0x7c(sp)                               |     *(var_7ch) = ra;
    0x0003cd38 sw s5, 0x78(sp)                               |     *(var_78h) = s5;
    0x0003cd3c sw s4, 0x74(sp)                               |     *(var_74h) = s4;
    0x0003cd40 sw s3, 0x70(sp)                               |     *(var_70h) = s3;
    0x0003cd44 sw s2, 0x6c(sp)                               |     *(var_6ch) = s2;
    0x0003cd48 sw s1, 0x68(sp)                               |     *(var_68h) = s1;
    0x0003cd4c move s3, a0                                   |     s3 = a0;
    0x0003cd50 move s1, a2                                   |     s1 = a2;
    0x0003cd54 sw a3, 0x8c(sp)                               |     *(arg_8ch) = a3;
    0x0003cd58 sw gp, 0x58(sp)                               |     *(var_58h) = gp;
    0x0003cd5c move a0, s0                                   |     a0 = s0;
    0x0003cd60 move a2, zero                                 |     a2 = 0;
                                                             |     /* str._type */
    0x0003cd64 addiu a1, a1, 0xd14                           |     a1 += 0xd14;
    0x0003cd68 jalr t9                                       |     t9 ();
    0x0003cd6c lw gp, 0x58(sp)                               |     gp = *(var_58h);
    0x0003cd70 move a2, zero                                 |     a2 = 0;
    0x0003cd74 move a0, s0                                   |     a0 = s0;
    0x0003cd78 lw a1, -0x7fd8(gp)                            |     a1 = *(gp);
    0x0003cd7c lw t9, -0x7580(gp)                            |     t9 = sym.imp.g_strconcat;
                                                             |     /* str._properties */
    0x0003cd80 addiu a1, a1, 0xd1c                           |     a1 += 0xd1c;
    0x0003cd84 move s5, v0                                   |     s5 = v0;
    0x0003cd88 jalr t9                                       |     t9 ();
    0x0003cd8c lw gp, 0x58(sp)                               |     gp = *(var_58h);
    0x0003cd90 move s4, v0                                   |     s4 = v0;
    0x0003cd94 lw a0, -0x7fd8(gp)                            |     a0 = *(gp);
    0x0003cd98 lw t9, -0x71b4(gp)                            |     t9 = sym.imp.g_string_new;
    0x0003cd9c addiu a0, a0, 0x403c                          |     a0 += 0x403c;
    0x0003cda0 jalr t9                                       |     t9 ();
    0x0003cda4 lw gp, 0x58(sp)                               |     gp = *(var_58h);
    0x0003cda8 move s2, v0                                   |     s2 = v0;
    0x0003cdac lw a3, 0x8c(sp)                               |     a3 = *(arg_8ch);
    0x0003cdb0 lw v1, -0x7f50(gp)                            |     v1 = *((gp - 8148));
    0x0003cdb4 lw v0, -0x7fd8(gp)                            |     v0 = *(gp);
                                                             |     /* esilref: 'id' */
    0x0003cdb8 addiu v1, v1, -0x6dbc                         |     v1 += -0x6dbc;
    0x0003cdbc sw v1, 0x54(sp)                               |     *(var_54h) = v1;
    0x0003cdc0 lw v1, -0x7fd8(gp)                            |     v1 = *(gp);
    0x0003cdc4 lw a1, -0x7fd8(gp)                            |     a1 = *(gp);
                                                             |     /* str.recordingref */
    0x0003cdc8 addiu v1, v1, 0x6870                          |     v1 += 0x6870;
    0x0003cdcc sw v1, 0x4c(sp)                               |     *(var_4ch) = v1;
    0x0003cdd0 lw v1, -0x7fd8(gp)                            |     v1 = *(gp);
                                                             |     /* esilref: 'recordings' */
    0x0003cdd4 addiu v0, v0, -0x21e8                         |     v0 += -0x21e8;
                                                             |     /* str.properties */
    0x0003cdd8 addiu v1, v1, 0x67dc                          |     v1 += 0x67dc;
    0x0003cddc sw v1, 0x3c(sp)                               |     *(var_3ch) = v1;
    0x0003cde0 lw v1, -0x7fd8(gp)                            |     v1 = *(gp);
    0x0003cde4 lw t9, -0x772c(gp)                            |     t9 = sym.imp.g_string_append_printf
                                                             |     /* esilref: 'mimetype' */
    0x0003cde8 addiu v1, v1, 0x3bc4                          |     v1 += 0x3bc4;
    0x0003cdec sw v1, 0x2c(sp)                               |     *(var_2ch) = v1;
    0x0003cdf0 move a2, s0                                   |     a2 = s0;
    0x0003cdf4 move a0, s2                                   |     a0 = s2;
    0x0003cdf8 sw v0, 0x50(sp)                               |     *(var_50h) = v0;
    0x0003cdfc sw s1, 0x48(sp)                               |     *(var_48h) = s1;
    0x0003ce00 sw s4, 0x44(sp)                               |     *(var_44h) = s4;
    0x0003ce04 sw s0, 0x40(sp)                               |     *(var_40h) = s0;
    0x0003ce08 sw s1, 0x38(sp)                               |     *(var_38h) = s1;
    0x0003ce0c sw s5, 0x34(sp)                               |     *(var_34h) = s5;
    0x0003ce10 sw s0, 0x30(sp)                               |     *(var_30h) = s0;
    0x0003ce14 sw s1, 0x28(sp)                               |     *(var_28h) = s1;
    0x0003ce18 sw v0, 0x24(sp)                               |     *(var_24h) = v0;
    0x0003ce1c sw s3, 0x20(sp)                               |     *(var_20h) = s3;
    0x0003ce20 sw s1, 0x1c(sp)                               |     *(var_1ch) = s1;
    0x0003ce24 sw s3, 0x18(sp)                               |     *(var_18h) = s3;
    0x0003ce28 sw s0, 0x14(sp)                               |     *(var_14h) = s0;
    0x0003ce2c sw s3, 0x10(sp)                               |     *(var_10h) = s3;
                                                             |     /* str.SELECT_recordings.id_AS_recording_id___s.id_AS__s_FROM__s._s___s._s___s._s_WHERE___s._s_s._s_AND__s._s_s._s__AND___s._s_s._s_ */
    0x0003ce30 addiu a1, a1, 0x6880                          |     a1 += 0x6880;
    0x0003ce34 jalr t9                                       |     t9 ();
    0x0003ce38 lw gp, 0x58(sp)                               |     gp = *(var_58h);
    0x0003ce3c lw a1, (s2)                                   |     a1 = *(s2);
    0x0003ce40 move a2, zero                                 |     a2 = 0;
    0x0003ce44 lw a0, -0x7fd8(gp)                            |     a0 = *(gp);
    0x0003ce48 lw t9, -0x7cc0(gp)                            |     t9 = sym.sql_create_temp_table;
                                                             |     /* str.temp_rec_id_table */
    0x0003ce4c addiu a0, a0, 0xc44                           |     a0 += 0xc44;
    0x0003ce50 bal 0x3b42c                                   |     sym_sql_create_temp_table ();
    0x0003ce54 lw gp, 0x58(sp)                               |     gp = *(var_58h);
    0x0003ce58 move a0, s5                                   |     a0 = s5;
    0x0003ce5c lw t9, -0x74c8(gp)                            |     t9 = *((gp - 7474));
    0x0003ce60 move s0, v0                                   |     s0 = v0;
    0x0003ce64 jalr t9                                       |     t9 ();
    0x0003ce68 lw gp, 0x58(sp)                               |     gp = *(var_58h);
    0x0003ce6c lw t9, -0x74c8(gp)                            |     t9 = *((gp - 7474));
    0x0003ce70 move a0, s4                                   |     a0 = s4;
    0x0003ce74 jalr t9                                       |     t9 ();
    0x0003ce78 lw gp, 0x58(sp)                               |     gp = *(var_58h);
    0x0003ce7c move a0, s2                                   |     a0 = s2;
    0x0003ce80 lw t9, -0x75a8(gp)                            |     t9 = sym.imp.g_string_free;
    0x0003ce84 addiu a1, zero, 1                             |     a1 = 1;
    0x0003ce88 jalr t9                                       |     t9 ();
    0x0003ce8c lw ra, 0x7c(sp)                               |     ra = *(var_7ch);
    0x0003ce90 move v0, s0                                   |     v0 = s0;
    0x0003ce94 lw s5, 0x78(sp)                               |     s5 = *(var_78h);
    0x0003ce98 lw s4, 0x74(sp)                               |     s4 = *(var_74h);
    0x0003ce9c lw s3, 0x70(sp)                               |     s3 = *(var_70h);
    0x0003cea0 lw s2, 0x6c(sp)                               |     s2 = *(var_6ch);
    0x0003cea4 lw s1, 0x68(sp)                               |     s1 = *(var_68h);
    0x0003cea8 lw s0, 0x64(sp)                               |     s0 = *(var_64h);
    0x0003ceac addiu sp, sp, 0x80                            |     
    0x0003ceb0 jr ra                                         |     return v0;
                                                             | }
    ; assembly                                           | /* r2dec pseudo code output */
                                                         | /* /logs/firmware/unblob_extracted/firmware_extract/4325012-58052244.squashfs_v4_le_extract/usr/bin/indexer @ 0x3a8c8 */
                                                         | #include <stdint.h>
                                                         |  
    ; (fcn) sym.sql_create_where_equals_string ()        | void sql_create_where_equals_string () {
    0x0003a8c8 lui gp, 5                                 |     
    0x0003a8cc addiu gp, gp, -0x47c8                     |     
    0x0003a8d0 addu gp, gp, t9                           |     gp += t9;
                                                         |     if (a2 == 0) {
    0x0003a8d4 beqz a2, 0x3a994                          |         goto label_0;
                                                         |     }
    0x0003a8d8 nop                                       |     
    0x0003a8dc addiu sp, sp, -0x30                       |     
    0x0003a8e0 lw t9, -0x772c(gp)                        |     t9 = sym.imp.g_string_append_printf
    0x0003a8e4 sw s3, 0x24(sp)                           |     *(var_24h) = s3;
    0x0003a8e8 move s3, a1                               |     s3 = a1;
    0x0003a8ec lw a1, -0x7fd8(gp)                        |     a1 = *(gp);
    0x0003a8f0 sw gp, 0x10(sp)                           |     *(var_10h) = gp;
    0x0003a8f4 sw s4, 0x28(sp)                           |     *(var_28h) = s4;
    0x0003a8f8 sw s2, 0x20(sp)                           |     *(var_20h) = s2;
    0x0003a8fc sw s1, 0x1c(sp)                           |     *(var_1ch) = s1;
    0x0003a900 sw s0, 0x18(sp)                           |     *(var_18h) = s0;
    0x0003a904 sw ra, 0x2c(sp)                           |     *(var_2ch) = ra;
                                                         |     /* str._WHERE__ */
    0x0003a908 addiu a1, a1, 0x5e40                      |     a1 += 0x5e40;
    0x0003a90c move s0, a2                               |     s0 = a2;
    0x0003a910 move s1, a0                               |     s1 = a0;
    0x0003a914 jalr t9                                   |     t9 ();
    0x0003a918 lw gp, 0x10(sp)                           |     gp = *(var_10h);
    0x0003a91c lw s2, -0x7fd8(gp)                        |     s2 = *(gp);
    0x0003a920 lw s4, -0x7fd8(gp)                        |     s4 = *(gp);
                                                         |     /* str._s_s */
    0x0003a924 addiu s2, s2, 0x5e54                      |     s2 += 0x5e54;
                                                         |     /* str._OR_ */
    0x0003a928 addiu s4, s4, 0x5e4c                      |     s4 += 0x5e4c;
                                                         |     do {
    0x0003a92c lw t9, -0x772c(gp)                        |         t9 = sym.imp.g_string_append_printf
    0x0003a930 lw a3, (s0)                               |         a3 = *(s0);
    0x0003a934 move a2, s3                               |         a2 = s3;
    0x0003a938 move a1, s2                               |         a1 = s2;
    0x0003a93c move a0, s1                               |         a0 = s1;
    0x0003a940 jalr t9                                   |         t9 ();
    0x0003a944 lw gp, 0x10(sp)                           |         gp = *(var_10h);
    0x0003a948 lw s0, 4(s0)                              |         s0 = *((s0 + 1));
    0x0003a94c lw t9, -0x772c(gp)                        |         t9 = sym.imp.g_string_append_printf
                                                         |         if (s0 == 0) {
    0x0003a950 beqz s0, 0x3a968                          |             goto label_1;
                                                         |         }
    0x0003a954 move a1, s4                               |         a1 = s4;
    0x0003a958 move a0, s1                               |         a0 = s1;
    0x0003a95c jalr t9                                   |         t9 ();
    0x0003a960 lw gp, 0x10(sp)                           |         gp = *(var_10h);
    0x0003a964 b 0x3a92c                                 |         
                                                         |     } while (1);
                                                         | label_1:
    0x0003a968 lw a1, -0x7fd8(gp)                        |     a1 = *(gp);
    0x0003a96c lw ra, 0x2c(sp)                           |     ra = *(var_2ch);
    0x0003a970 lw s4, 0x28(sp)                           |     s4 = *(var_28h);
    0x0003a974 lw s3, 0x24(sp)                           |     s3 = *(var_24h);
    0x0003a978 lw s2, 0x20(sp)                           |     s2 = *(var_20h);
    0x0003a97c lw s0, 0x18(sp)                           |     s0 = *(var_18h);
    0x0003a980 move a0, s1                               |     a0 = s1;
    0x0003a984 lw s1, 0x1c(sp)                           |     s1 = *(var_1ch);
    0x0003a988 addiu a1, a1, 0x3824                      |     a1 += 0x3824;
    0x0003a98c addiu sp, sp, 0x30                        |     
    0x0003a990 jr t9                                     |     t9 ();
                                                         | label_0:
    0x0003a994 jr ra                                     |     return;
    0x0003a998 nop                                       |     
                                                         | }
    ; assembly                               | /* r2dec pseudo code output */
                                             | /* /logs/firmware/unblob_extracted/firmware_extract/4325012-58052244.squashfs_v4_le_extract/usr/bin/indexer @ 0x3d134 */
                                             | #include <stdint.h>
                                             |  
    ; (fcn) sym.sql_delete_blocks ()         | void sql_delete_blocks () {
    0x0003d134 lui gp, 5                     |     
    0x0003d138 addiu gp, gp, -0x7034         |     
    0x0003d13c addu gp, gp, t9               |     gp += t9;
    0x0003d140 addiu sp, sp, -0x40           |     
    0x0003d144 sw gp, 0x18(sp)               |     *(var_18h) = gp;
    0x0003d148 sw ra, 0x3c(sp)               |     *(var_3ch) = ra;
    0x0003d14c sw s5, 0x38(sp)               |     *(var_38h) = s5;
    0x0003d150 sw s4, 0x34(sp)               |     *(var_34h) = s4;
    0x0003d154 sw s3, 0x30(sp)               |     *(var_30h) = s3;
    0x0003d158 sw s2, 0x2c(sp)               |     *(var_2ch) = s2;
    0x0003d15c sw s1, 0x28(sp)               |     *(var_28h) = s1;
    0x0003d160 sw s0, 0x24(sp)               |     *(var_24h) = s0;
    0x0003d164 lw v0, -0x7fd8(gp)            |     v0 = *(gp);
                                             |     if (a0 == 0) {
    0x0003d168 beqz a0, 0x3d258              |         goto label_0;
                                             |     }
    0x0003d16c move s2, a1                   |     s2 = a1;
                                             |     if (a1 == 0) {
    0x0003d170 beqz a1, 0x3d27c              |         goto label_1;
                                             |     }
    0x0003d174 lw s0, -0x7fd8(gp)            |     s0 = *(gp);
    0x0003d178 lw t9, -0x71b4(gp)            |     t9 = sym.imp.g_string_new;
    0x0003d17c move s1, a0                   |     s1 = a0;
    0x0003d180 addiu a0, s0, 0x403c          |     a0 = s0 + 0x403c;
    0x0003d184 move s4, a2                   |     s4 = a2;
    0x0003d188 move s5, a3                   |     s5 = a3;
    0x0003d18c jalr t9                       |     t9 ();
    0x0003d190 lw gp, 0x18(sp)               |     gp = *(var_18h);
    0x0003d194 addiu a0, s0, 0x403c          |     a0 = s0 + 0x403c;
    0x0003d198 lw t9, -0x71b4(gp)            |     t9 = sym.imp.g_string_new;
    0x0003d19c move s0, v0                   |     s0 = v0;
    0x0003d1a0 jalr t9                       |     t9 ();
    0x0003d1a4 lw gp, 0x18(sp)               |     gp = *(var_18h);
    0x0003d1a8 move a3, s2                   |     a3 = s2;
    0x0003d1ac move a2, s1                   |     a2 = s1;
    0x0003d1b0 lw a1, -0x7fd8(gp)            |     a1 = *(gp);
    0x0003d1b4 lw t9, -0x772c(gp)            |     t9 = sym.imp.g_string_append_printf
    0x0003d1b8 move a0, v0                   |     a0 = v0;
                                             |     /* str.DELETE_FROM__s._s_ */
    0x0003d1bc addiu a1, a1, 0x6a30          |     a1 += 0x6a30;
    0x0003d1c0 move s3, v0                   |     s3 = v0;
    0x0003d1c4 jalr t9                       |     t9 ();
    0x0003d1c8 lw gp, 0x18(sp)               |     gp = *(var_18h);
    0x0003d1cc move a1, s3                   |     a1 = s3;
    0x0003d1d0 lw t9, -0x7d1c(gp)            |     t9 = sym.string_merge_g_strings;
    0x0003d1d4 move a0, s0                   |     a0 = s0;
    0x0003d1d8 bal 0x414e4                   |     sym_string_merge_g_strings ();
    0x0003d1dc lw gp, 0x18(sp)               |     gp = *(var_18h);
    0x0003d1e0 lw t9, -0x7e0c(gp)            |     t9 = sym.string_has_content;
    0x0003d1e4 move a0, s4                   |     a0 = s4;
    0x0003d1e8 bal 0x415b4                   |     sym_string_has_content ();
    0x0003d1ec lw gp, 0x18(sp)               |     gp = *(var_18h);
                                             |     if (v0 == 0) {
    0x0003d1f0 beqz v0, 0x3d224              |         goto label_2;
                                             |     }
    0x0003d1f4 lw a1, -0x7fd8(gp)            |     a1 = *(gp);
                                             |     if (s5 == 0) {
    0x0003d1f8 beqz s5, 0x3d2a8              |         goto label_3;
                                             |     }
    0x0003d1fc lw t9, -0x7a68(gp)            |     t9 = sym.sql_blocks_by_recording_id;
    0x0003d200 move a1, s4                   |     a1 = s4;
    0x0003d204 move a0, s1                   |     a0 = s1;
    0x0003d208 bal 0x3dae4                   |     sym_sql_blocks_by_recording_id ();
    0x0003d20c lw gp, 0x18(sp)               |     gp = *(var_18h);
    0x0003d210 move a1, v0                   |     a1 = v0;
    0x0003d214 lw t9, -0x7d1c(gp)            |     t9 = sym.string_merge_g_strings;
    0x0003d218 move a0, s0                   |     a0 = s0;
    0x0003d21c bal 0x414e4                   |     sym_string_merge_g_strings ();
    0x0003d220 lw gp, 0x18(sp)               |     gp = *(var_18h);
                                             |     do {
                                             | label_2:
    0x0003d224 lw t9, -0x7a78(gp)            |         t9 = sym.sql_append_semicolon;
    0x0003d228 move a0, s0                   |         a0 = s0;
    0x0003d22c bal 0x3a054                   |         sym_sql_append_semicolon ();
    0x0003d230 lw ra, 0x3c(sp)               |         ra = *(var_3ch);
    0x0003d234 move v0, s0                   |         v0 = s0;
    0x0003d238 lw s5, 0x38(sp)               |         s5 = *(var_38h);
    0x0003d23c lw s4, 0x34(sp)               |         s4 = *(var_34h);
    0x0003d240 lw s3, 0x30(sp)               |         s3 = *(var_30h);
    0x0003d244 lw s2, 0x2c(sp)               |         s2 = *(var_2ch);
    0x0003d248 lw s1, 0x28(sp)               |         s1 = *(var_28h);
    0x0003d24c lw s0, 0x24(sp)               |         s0 = *(var_24h);
    0x0003d250 addiu sp, sp, 0x40            |         
    0x0003d254 jr ra                         |         return v0;
                                             | label_0:
    0x0003d258 lw a3, -0x7fd8(gp)            |         a3 = *(gp);
    0x0003d25c lw a1, -0x7fd8(gp)            |         a1 = *(gp);
                                             |         /* str.storage_id */
    0x0003d260 addiu v0, v0, -0x3264         |         v0 += -0x3264;
    0x0003d264 lw t9, -0x76c0(gp)            |         t9 = sym.imp.g_assertion_message_expr;
    0x0003d268 sw v0, 0x10(sp)               |         *(var_10h) = v0;
                                             |         /* str.sql_delete_blocks */
    0x0003d26c addiu a3, a3, 0x6a70          |         a3 += 0x6a70;
    0x0003d270 addiu a2, zero, 0x37          |         a2 = 0x37;
                                             |         /* str.sql_delete.c */
    0x0003d274 addiu a1, a1, 0x6a20          |         a1 += 0x6a20;
    0x0003d278 jalr t9                       |         t9 ();
                                             | label_1:
    0x0003d27c lw v0, -0x7fd8(gp)            |         v0 = *(gp);
    0x0003d280 lw a3, -0x7fd8(gp)            |         a3 = *(gp);
    0x0003d284 lw a1, -0x7fd8(gp)            |         a1 = *(gp);
                                             |         /* esilref: 'table' */
    0x0003d288 addiu v0, v0, 0x8e0           |         v0 += 0x8e0;
    0x0003d28c lw t9, -0x76c0(gp)            |         t9 = sym.imp.g_assertion_message_expr;
    0x0003d290 sw v0, 0x10(sp)               |         *(var_10h) = v0;
                                             |         /* str.sql_delete_blocks */
    0x0003d294 addiu a3, a3, 0x6a70          |         a3 += 0x6a70;
    0x0003d298 addiu a2, zero, 0x38          |         a2 = 0x38;
                                             |         /* str.sql_delete.c */
    0x0003d29c addiu a1, a1, 0x6a20          |         a1 += 0x6a20;
    0x0003d2a0 move a0, zero                 |         a0 = 0;
    0x0003d2a4 jalr t9                       |         t9 ();
                                             | label_3:
    0x0003d2a8 lw t9, -0x772c(gp)            |         t9 = sym.imp.g_string_append_printf
    0x0003d2ac move a2, s4                   |         a2 = s4;
    0x0003d2b0 addiu a1, a1, 0x6838          |         a1 += 0x6838;
    0x0003d2b4 move a0, s0                   |         a0 = s0;
    0x0003d2b8 jalr t9                       |         t9 ();
    0x0003d2bc lw gp, 0x18(sp)               |         gp = *(var_18h);
    0x0003d2c0 b 0x3d224                     |         
                                             |     } while (1);
                                             | }
    ; assembly                                   | /* r2dec pseudo code output */
                                                 | /* /logs/firmware/unblob_extracted/firmware_extract/4325012-58052244.squashfs_v4_le_extract/usr/bin/indexer @ 0x3cfc0 */
                                                 | #include <stdint.h>
                                                 |  
    ; (fcn) sym.sql_delete_from_table ()         | void sql_delete_from_table () {
    0x0003cfc0 lui gp, 5                         |     
    0x0003cfc4 addiu gp, gp, -0x6ec0             |     
    0x0003cfc8 addu gp, gp, t9                   |     gp += t9;
    0x0003cfcc addiu sp, sp, -0x40               |     
    0x0003cfd0 sw gp, 0x18(sp)                   |     *(var_18h) = gp;
    0x0003cfd4 sw ra, 0x3c(sp)                   |     *(var_3ch) = ra;
    0x0003cfd8 sw s5, 0x38(sp)                   |     *(var_38h) = s5;
    0x0003cfdc sw s4, 0x34(sp)                   |     *(var_34h) = s4;
    0x0003cfe0 sw s3, 0x30(sp)                   |     *(var_30h) = s3;
    0x0003cfe4 sw s2, 0x2c(sp)                   |     *(var_2ch) = s2;
    0x0003cfe8 sw s1, 0x28(sp)                   |     *(var_28h) = s1;
    0x0003cfec sw s0, 0x24(sp)                   |     *(var_24h) = s0;
    0x0003cff0 lw v0, -0x7fd8(gp)                |     v0 = *(gp);
                                                 |     if (a0 != 0) {
    0x0003cff4 beqz a0, 0x3d0e4                  |         
    0x0003cff8 move s2, a1                       |         s2 = a1;
                                                 |         if (a1 == 0) {
    0x0003cffc beqz a1, 0x3d108                  |             goto label_0;
                                                 |         }
    0x0003d000 lw s0, -0x7fd8(gp)                |         s0 = *(gp);
    0x0003d004 lw t9, -0x71b4(gp)                |         t9 = sym.imp.g_string_new;
    0x0003d008 move s1, a0                       |         s1 = a0;
    0x0003d00c addiu a0, s0, 0x403c              |         a0 = s0 + 0x403c;
    0x0003d010 move s4, a2                       |         s4 = a2;
    0x0003d014 move s5, a3                       |         s5 = a3;
    0x0003d018 jalr t9                           |         t9 ();
    0x0003d01c lw gp, 0x18(sp)                   |         gp = *(var_18h);
    0x0003d020 addiu a0, s0, 0x403c              |         a0 = s0 + 0x403c;
    0x0003d024 lw t9, -0x71b4(gp)                |         t9 = sym.imp.g_string_new;
    0x0003d028 move s0, v0                       |         s0 = v0;
    0x0003d02c jalr t9                           |         t9 ();
    0x0003d030 lw gp, 0x18(sp)                   |         gp = *(var_18h);
    0x0003d034 move a0, v0                       |         a0 = v0;
    0x0003d038 move a3, s2                       |         a3 = s2;
    0x0003d03c lw a1, -0x7fd8(gp)                |         a1 = *(gp);
    0x0003d040 lw t9, -0x772c(gp)                |         t9 = sym.imp.g_string_append_printf
    0x0003d044 move a2, s1                       |         a2 = s1;
                                                 |         /* str.DELETE_FROM__s._s_ */
    0x0003d048 addiu a1, a1, 0x6a30              |         a1 += 0x6a30;
    0x0003d04c move s3, v0                       |         s3 = v0;
    0x0003d050 jalr t9                           |         t9 ();
    0x0003d054 lw gp, 0x18(sp)                   |         gp = *(var_18h);
    0x0003d058 move a1, s3                       |         a1 = s3;
    0x0003d05c lw t9, -0x7d1c(gp)                |         t9 = sym.string_merge_g_strings;
    0x0003d060 move a0, s0                       |         a0 = s0;
    0x0003d064 bal 0x414e4                       |         sym_string_merge_g_strings ();
    0x0003d068 lw gp, 0x18(sp)                   |         gp = *(var_18h);
                                                 |         if (s4 != 0) {
    0x0003d06c beqz s4, 0x3d0b0                  |             
    0x0003d070 lw t9, -0x7e0c(gp)                |             t9 = sym.string_has_content;
    0x0003d074 move a0, s5                       |             a0 = s5;
    0x0003d078 bal 0x415b4                       |             sym_string_has_content ();
    0x0003d07c lw gp, 0x18(sp)                   |             gp = *(var_18h);
                                                 |             if (v0 == 0) {
    0x0003d080 beqz v0, 0x3d0b0                  |                 goto label_1;
                                                 |             }
    0x0003d084 lw v0, 0x50(sp)                   |             v0 = *(arg_50h);
    0x0003d088 lw a1, -0x7fd8(gp)                |             a1 = *(gp);
                                                 |             if (v0 == 0) {
    0x0003d08c beqz v0, 0x3d0b0                  |                 goto label_1;
                                                 |             }
    0x0003d090 lw t9, -0x772c(gp)                |             t9 = sym.imp.g_string_append_printf
    0x0003d094 sw s5, 0x10(sp)                   |             *(var_10h) = s5;
    0x0003d098 move a3, v0                       |             a3 = v0;
    0x0003d09c move a2, s4                       |             a2 = s4;
                                                 |             /* str.WHERE__s__s__s */
    0x0003d0a0 addiu a1, a1, 0x6a48              |             a1 += 0x6a48;
    0x0003d0a4 move a0, s0                       |             a0 = s0;
    0x0003d0a8 jalr t9                           |             t9 ();
    0x0003d0ac lw gp, 0x18(sp)                   |             gp = *(var_18h);
                                                 |         }
                                                 | label_1:
    0x0003d0b0 lw t9, -0x7a78(gp)                |         t9 = sym.sql_append_semicolon;
    0x0003d0b4 move a0, s0                       |         a0 = s0;
    0x0003d0b8 bal 0x3a054                       |         sym_sql_append_semicolon ();
    0x0003d0bc lw ra, 0x3c(sp)                   |         ra = *(var_3ch);
    0x0003d0c0 move v0, s0                       |         v0 = s0;
    0x0003d0c4 lw s5, 0x38(sp)                   |         s5 = *(var_38h);
    0x0003d0c8 lw s4, 0x34(sp)                   |         s4 = *(var_34h);
    0x0003d0cc lw s3, 0x30(sp)                   |         s3 = *(var_30h);
    0x0003d0d0 lw s2, 0x2c(sp)                   |         s2 = *(var_2ch);
    0x0003d0d4 lw s1, 0x28(sp)                   |         s1 = *(var_28h);
    0x0003d0d8 lw s0, 0x24(sp)                   |         s0 = *(var_24h);
    0x0003d0dc addiu sp, sp, 0x40                |         
    0x0003d0e0 jr ra                             |         return v0;
                                                 |     }
    0x0003d0e4 lw a3, -0x7fd8(gp)                |     a3 = *(gp);
    0x0003d0e8 lw a1, -0x7fd8(gp)                |     a1 = *(gp);
                                                 |     /* str.storage_id */
    0x0003d0ec addiu v0, v0, -0x3264             |     v0 += -0x3264;
    0x0003d0f0 lw t9, -0x76c0(gp)                |     t9 = sym.imp.g_assertion_message_expr;
    0x0003d0f4 sw v0, 0x10(sp)                   |     *(var_10h) = v0;
                                                 |     /* str.sql_delete_from_table */
    0x0003d0f8 addiu a3, a3, 0x6a84              |     a3 += 0x6a84;
    0x0003d0fc addiu a2, zero, 0x25              |     a2 = 0x25;
                                                 |     /* str.sql_delete.c */
    0x0003d100 addiu a1, a1, 0x6a20              |     a1 += 0x6a20;
    0x0003d104 jalr t9                           |     t9 ();
                                                 | label_0:
    0x0003d108 lw v0, -0x7fd8(gp)                |     v0 = *(gp);
    0x0003d10c lw a3, -0x7fd8(gp)                |     a3 = *(gp);
    0x0003d110 lw a1, -0x7fd8(gp)                |     a1 = *(gp);
                                                 |     /* esilref: 'table' */
    0x0003d114 addiu v0, v0, 0x8e0               |     v0 += 0x8e0;
    0x0003d118 lw t9, -0x76c0(gp)                |     t9 = sym.imp.g_assertion_message_expr;
    0x0003d11c sw v0, 0x10(sp)                   |     *(var_10h) = v0;
                                                 |     /* str.sql_delete_from_table */
    0x0003d120 addiu a3, a3, 0x6a84              |     a3 += 0x6a84;
    0x0003d124 addiu a2, zero, 0x26              |     a2 = 0x26;
                                                 |     /* str.sql_delete.c */
    0x0003d128 addiu a1, a1, 0x6a20              |     a1 += 0x6a20;
    0x0003d12c move a0, zero                     |     a0 = 0;
    0x0003d130 jalr t9                           |     return t9 ();
                                                 | }
    ; assembly                               | /* r2dec pseudo code output */
                                             | /* /logs/firmware/unblob_extracted/firmware_extract/4325012-58052244.squashfs_v4_le_extract/usr/bin/indexer @ 0x3d2c4 */
                                             | #include <stdint.h>
                                             |  
    ; (fcn) sym.sql_drop_table ()            | void sql_drop_table () {
    0x0003d2c4 lui gp, 5                     |     
    0x0003d2c8 addiu gp, gp, -0x71c4         |     
    0x0003d2cc addu gp, gp, t9               |     gp += t9;
    0x0003d2d0 addiu sp, sp, -0x28           |     
    0x0003d2d4 lw t9, -0x7cec(gp)            |     t9 = sym.sql_table_with_storage_name;
    0x0003d2d8 sw ra, 0x24(sp)               |     *(var_24h) = ra;
    0x0003d2dc sw s0, 0x20(sp)               |     *(var_20h) = s0;
    0x0003d2e0 sw gp, 0x10(sp)               |     *(var_10h) = gp;
    0x0003d2e4 bal 0x39fd0                   |     sym_sql_table_with_storage_name ();
    0x0003d2e8 nop                           |     
    0x0003d2ec lw gp, 0x10(sp)               |     gp = *(var_10h);
    0x0003d2f0 move s0, v0                   |     s0 = v0;
    0x0003d2f4 lw a0, -0x7fd8(gp)            |     a0 = *(gp);
    0x0003d2f8 lw t9, -0x71b4(gp)            |     t9 = sym.imp.g_string_new;
                                             |     /* str.DROP_TABLE */
    0x0003d2fc addiu a0, a0, 0x6a58          |     a0 += 0x6a58;
    0x0003d300 jalr t9                       |     t9 ();
    0x0003d304 lw gp, 0x10(sp)               |     gp = *(var_10h);
    0x0003d308 move a2, s0                   |     a2 = s0;
    0x0003d30c move a0, v0                   |     a0 = v0;
    0x0003d310 lw a1, -0x7fd8(gp)            |     a1 = *(gp);
    0x0003d314 lw t9, -0x772c(gp)            |     t9 = sym.imp.g_string_append_printf
    0x0003d318 sw v0, 0x1c(sp)               |     *(var_1ch) = v0;
                                             |     /* esilref: ' &s;' */
    0x0003d31c addiu a1, a1, 0xfb8           |     a1 += 0xfb8;
    0x0003d320 jalr t9                       |     t9 ();
    0x0003d324 lw gp, 0x10(sp)               |     gp = *(var_10h);
    0x0003d328 lw t9, -0x74c8(gp)            |     t9 = *((gp - 7474));
    0x0003d32c move a0, s0                   |     a0 = s0;
    0x0003d330 jalr t9                       |     t9 ();
    0x0003d334 lw ra, 0x24(sp)               |     ra = *(var_24h);
    0x0003d338 lw v0, 0x1c(sp)               |     v0 = *(var_1ch);
    0x0003d33c lw s0, 0x20(sp)               |     s0 = *(var_20h);
    0x0003d340 addiu sp, sp, 0x28            |     
    0x0003d344 jr ra                         |     return v0;
                                             | }
    ; assembly                                   | /* r2dec pseudo code output */
                                                 | /* /logs/firmware/unblob_extracted/firmware_extract/4325012-58052244.squashfs_v4_le_extract/usr/bin/indexer @ 0x3fbf8 */
                                                 | #include <stdint.h>
                                                 |  
    ; (fcn) sym.sql_from_join_clause ()          | void sql_from_join_clause () {
    0x0003fbf8 lui gp, 4                         |     
    0x0003fbfc addiu gp, gp, 0x6508              |     
    0x0003fc00 addu gp, gp, t9                   |     gp += t9;
    0x0003fc04 addiu sp, sp, -0x40               |     
    0x0003fc08 lw t9, -0x71b4(gp)                |     t9 = sym.imp.g_string_new;
    0x0003fc0c sw s1, 0x2c(sp)                   |     *(var_2ch_2) = s1;
    0x0003fc10 move s1, a0                       |     s1 = a0;
    0x0003fc14 lw a0, -0x7fd8(gp)                |     a0 = *(gp);
    0x0003fc18 sw ra, 0x3c(sp)                   |     *(var_3ch) = ra;
    0x0003fc1c sw s4, 0x38(sp)                   |     *(var_38h) = s4;
    0x0003fc20 sw s3, 0x34(sp)                   |     *(var_34h_2) = s3;
    0x0003fc24 sw s2, 0x30(sp)                   |     *(var_30h_2) = s2;
    0x0003fc28 sw s0, 0x28(sp)                   |     *(var_28h_2) = s0;
    0x0003fc2c sw gp, 0x20(sp)                   |     *(var_20h_2) = gp;
    0x0003fc30 addiu a0, a0, 0x403c              |     a0 += 0x403c;
    0x0003fc34 move s2, a1                       |     s2 = a1;
    0x0003fc38 move s3, a2                       |     s3 = a2;
    0x0003fc3c move s4, a3                       |     s4 = a3;
    0x0003fc40 jalr t9                           |     t9 ();
    0x0003fc44 lw gp, 0x20(sp)                   |     gp = *(var_20h_2);
    0x0003fc48 sw s4, 0x1c(sp)                   |     *(var_1ch) = s4;
    0x0003fc4c sw s2, 0x18(sp)                   |     *(var_18h) = s2;
    0x0003fc50 lw a1, -0x7fd8(gp)                |     a1 = *(gp);
    0x0003fc54 lw t9, -0x772c(gp)                |     t9 = sym.imp.g_string_append_printf
    0x0003fc58 sw s3, 0x14(sp)                   |     *(var_14h) = s3;
    0x0003fc5c sw s1, 0x10(sp)                   |     *(var_10h_2) = s1;
                                                 |     /* str.FROM__s_JOIN__s_ON__s._s___s._s */
    0x0003fc60 addiu a1, a1, 0x7a4c              |     a1 += 0x7a4c;
    0x0003fc64 move a0, v0                       |     a0 = v0;
    0x0003fc68 move a3, s2                       |     a3 = s2;
    0x0003fc6c move a2, s1                       |     a2 = s1;
    0x0003fc70 move s0, v0                       |     s0 = v0;
    0x0003fc74 jalr t9                           |     t9 ();
    0x0003fc78 lw gp, 0x20(sp)                   |     gp = *(var_20h_2);
    0x0003fc7c lw ra, 0x3c(sp)                   |     ra = *(var_3ch);
    0x0003fc80 lw s4, 0x38(sp)                   |     s4 = *(var_38h);
    0x0003fc84 lw s3, 0x34(sp)                   |     s3 = *(var_34h_2);
    0x0003fc88 lw s2, 0x30(sp)                   |     s2 = *(var_30h_2);
    0x0003fc8c lw s1, 0x2c(sp)                   |     s1 = *(var_2ch_2);
    0x0003fc90 move a0, s0                       |     a0 = s0;
    0x0003fc94 lw t9, -0x75a8(gp)                |     t9 = sym.imp.g_string_free;
    0x0003fc98 lw s0, 0x28(sp)                   |     s0 = *(var_28h_2);
    0x0003fc9c move a1, zero                     |     a1 = 0;
    0x0003fca0 addiu sp, sp, 0x40                |     
    0x0003fca4 jr t9                             |     return t9 ();
                                                 | }
    ; assembly                                               | /* r2dec pseudo code output */
                                                             | /* /logs/firmware/unblob_extracted/firmware_extract/4325012-58052244.squashfs_v4_le_extract/usr/bin/indexer @ 0x3f100 */
                                                             | #include <stdint.h>
                                                             |  
    ; (fcn) sym.sql_get_blocks_of_recording_group ()         | void sql_get_blocks_of_recording_group () {
    0x0003f100 lui gp, 4                                     |     
    0x0003f104 addiu gp, gp, 0x7000                          |     
    0x0003f108 addu gp, gp, t9                               |     gp += t9;
    0x0003f10c addiu sp, sp, -0x70                           |     
    0x0003f110 sw gp, 0x48(sp)                               |     *(var_48h) = gp;
    0x0003f114 sw ra, 0x6c(sp)                               |     *(var_6ch) = ra;
    0x0003f118 sw s5, 0x68(sp)                               |     *(var_68h) = s5;
    0x0003f11c sw s4, 0x64(sp)                               |     *(var_64h) = s4;
    0x0003f120 sw s3, 0x60(sp)                               |     *(var_60h) = s3;
    0x0003f124 sw s2, 0x5c(sp)                               |     *(var_5ch) = s2;
    0x0003f128 sw s1, 0x58(sp)                               |     *(var_58h) = s1;
    0x0003f12c sw s0, 0x54(sp)                               |     *(var_54h) = s0;
    0x0003f130 lw v0, -0x7fd8(gp)                            |     v0 = *(gp);
                                                             |     if (a1 != 0) {
    0x0003f134 beqz a1, 0x3f2b4                              |         
    0x0003f138 move s0, a0                                   |         s0 = a0;
                                                             |         if (a0 == 0) {
    0x0003f13c beqz a0, 0x3f2dc                              |             goto label_0;
                                                             |         }
    0x0003f140 lw a0, -0x7fd8(gp)                            |         a0 = *(gp);
    0x0003f144 lw t9, -0x71b4(gp)                            |         t9 = sym.imp.g_string_new;
    0x0003f148 addiu a0, a0, 0x403c                          |         a0 += 0x403c;
    0x0003f14c move s1, a1                                   |         s1 = a1;
    0x0003f150 move s5, a2                                   |         s5 = a2;
    0x0003f154 move s3, a3                                   |         s3 = a3;
    0x0003f158 jalr t9                                       |         t9 ();
    0x0003f15c lw gp, 0x48(sp)                               |         gp = *(var_48h);
    0x0003f160 move a0, s1                                   |         a0 = s1;
    0x0003f164 sw s0, 0x10(sp)                               |         *(var_10h_2) = s0;
    0x0003f168 lw v1, -0x7fd8(gp)                            |         v1 = *(gp);
    0x0003f16c lw a3, -0x7fd8(gp)                            |         a3 = *(gp);
    0x0003f170 lw a2, -0x7fd8(gp)                            |         a2 = *(gp);
    0x0003f174 lw a1, -0x7fd8(gp)                            |         a1 = *(gp);
    0x0003f178 addiu v1, v1, 0xf80                           |         v1 += 0xf80;
    0x0003f17c lw t9, -0x7a74(gp)                            |         t9 = sym.sql_select_column_from_table_full;
                                                             |         /* esilref: 'recording_group_id' */
    0x0003f180 addiu a3, a3, 0x80c                           |         a3 += 0x80c;
                                                             |         /* esilref: 'recording_id' */
    0x0003f184 addiu a2, a2, 0x78c8                          |         a2 += 0x78c8;
                                                             |         /* str.recording_groups */
    0x0003f188 addiu a1, a1, 0xa24                           |         a1 += 0xa24;
    0x0003f18c sw v1, 0x14(sp)                               |         *(var_14h_2) = v1;
    0x0003f190 sw zero, 0x1c(sp)                             |         *(var_1ch_2) = 0;
    0x0003f194 sw zero, 0x18(sp)                             |         *(var_18h_3) = 0;
    0x0003f198 move s2, v0                                   |         s2 = v0;
    0x0003f19c bal 0x3d76c                                   |         sym_sql_select_column_from_table_full ();
    0x0003f1a0 lw gp, 0x48(sp)                               |         gp = *(var_48h);
    0x0003f1a4 move a2, s1                                   |         a2 = s1;
    0x0003f1a8 move a0, s2                                   |         a0 = s2;
    0x0003f1ac lw s0, -0x7fd8(gp)                            |         s0 = *(gp);
    0x0003f1b0 lw v1, -0x7fd8(gp)                            |         v1 = *(gp);
    0x0003f1b4 lw a1, -0x7fd8(gp)                            |         a1 = *(gp);
                                                             |         /* esilref: 'blocks' */
    0x0003f1b8 addiu s0, s0, 0x7124                          |         s0 += 0x7124;
                                                             |         /* esilref: 'recordings' */
    0x0003f1bc addiu v1, v1, -0x21e8                         |         v1 += -0x21e8;
    0x0003f1c0 lw t9, -0x772c(gp)                            |         t9 = sym.imp.g_string_append_printf
    0x0003f1c4 move a3, s0                                   |         a3 = s0;
                                                             |         /* str.SELECT__s_AS_Storage___s.starttime_AS_blocks_starttime___s.stoptime_AS_blocks_stoptime___s.filename_AS_recordings_filename___s.path_AS_recordings_path___s.filename_AS_blocks_filename___s.path_AS_blocks_path___s.id_AS_blocks_id___s.filesize_AS_blocks_filesize_FROM__s._s__s_LEFT_JOIN__s._s_ON__s.id_s.recording_id */
    0x0003f1c8 addiu a1, a1, 0x762c                          |         a1 += 0x762c;
    0x0003f1cc sw v1, 0x40(sp)                               |         *(var_40h_2) = v1;
    0x0003f1d0 sw v1, 0x3c(sp)                               |         *(var_3ch_2) = v1;
    0x0003f1d4 sw v1, 0x18(sp)                               |         *(var_18h_3) = v1;
    0x0003f1d8 sw v1, 0x14(sp)                               |         *(var_14h_2) = v1;
    0x0003f1dc sw s0, 0x44(sp)                               |         *(var_44h_2) = s0;
    0x0003f1e0 sw s1, 0x38(sp)                               |         *(var_38h_2) = s1;
    0x0003f1e4 sw s0, 0x34(sp)                               |         *(var_34h_3) = s0;
    0x0003f1e8 sw s0, 0x30(sp)                               |         *(var_30h_3) = s0;
    0x0003f1ec sw s1, 0x2c(sp)                               |         *(var_2ch_3) = s1;
    0x0003f1f0 sw s0, 0x28(sp)                               |         *(var_28h_3) = s0;
    0x0003f1f4 sw s0, 0x24(sp)                               |         *(var_24h_3) = s0;
    0x0003f1f8 sw s0, 0x20(sp)                               |         *(var_20h_3) = s0;
    0x0003f1fc sw s0, 0x1c(sp)                               |         *(var_1ch_2) = s0;
    0x0003f200 sw s0, 0x10(sp)                               |         *(var_10h_2) = s0;
    0x0003f204 move s4, v0                                   |         s4 = v0;
    0x0003f208 jalr t9                                       |         t9 ();
    0x0003f20c lw gp, 0x48(sp)                               |         gp = *(var_48h);
    0x0003f210 lw a3, (s4)                                   |         a3 = *(s4);
    0x0003f214 move a2, s0                                   |         a2 = s0;
    0x0003f218 lw a1, -0x7fd8(gp)                            |         a1 = *(gp);
    0x0003f21c lw t9, -0x772c(gp)                            |         t9 = sym.imp.g_string_append_printf
                                                             |         /* str._WHERE__s.recording_id_IN___s_ */
    0x0003f220 addiu a1, a1, 0x776c                          |         a1 += 0x776c;
    0x0003f224 move a0, s2                                   |         a0 = s2;
    0x0003f228 jalr t9                                       |         t9 ();
    0x0003f22c lw gp, 0x48(sp)                               |         gp = *(var_48h);
                                                             |         if (s5 != 0) {
    0x0003f230 beqz s5, 0x3f250                              |             
    0x0003f234 lw a1, -0x7fd8(gp)                            |             a1 = *(gp);
    0x0003f238 lw t9, -0x772c(gp)                            |             t9 = sym.imp.g_string_append_printf
    0x0003f23c move a2, s5                                   |             a2 = s5;
                                                             |             /* str._AND__s_ */
    0x0003f240 addiu a1, a1, 0x778c                          |             a1 += 0x778c;
    0x0003f244 move a0, s2                                   |             a0 = s2;
    0x0003f248 jalr t9                                       |             t9 ();
    0x0003f24c lw gp, 0x48(sp)                               |             gp = *(var_48h);
                                                             |         }
    0x0003f250 lw t9, -0x772c(gp)                            |         t9 = sym.imp.g_string_append_printf
                                                             |         if (s3 != 0) {
    0x0003f254 beqz s3, 0x3f270                              |             
    0x0003f258 lw a1, -0x7fd8(gp)                            |             a1 = *(gp);
    0x0003f25c move a2, s3                                   |             a2 = s3;
                                                             |             /* esilref: ' &s ' */
    0x0003f260 addiu a1, a1, 0x1220                          |             a1 += 0x1220;
    0x0003f264 move a0, s2                                   |             a0 = s2;
    0x0003f268 jalr t9                                       |             t9 ();
    0x0003f26c lw gp, 0x48(sp)                               |             gp = *(var_48h);
                                                             |         }
    0x0003f270 lw t9, -0x75a8(gp)                            |         t9 = sym.imp.g_string_free;
    0x0003f274 move a0, s4                                   |         a0 = s4;
    0x0003f278 addiu a1, zero, 1                             |         a1 = 1;
    0x0003f27c jalr t9                                       |         t9 ();
    0x0003f280 lw gp, 0x48(sp)                               |         gp = *(var_48h);
    0x0003f284 lw ra, 0x6c(sp)                               |         ra = *(var_6ch);
    0x0003f288 lw s5, 0x68(sp)                               |         s5 = *(var_68h);
    0x0003f28c lw s4, 0x64(sp)                               |         s4 = *(var_64h);
    0x0003f290 lw s3, 0x60(sp)                               |         s3 = *(var_60h);
    0x0003f294 lw s1, 0x58(sp)                               |         s1 = *(var_58h);
    0x0003f298 lw s0, 0x54(sp)                               |         s0 = *(var_54h);
    0x0003f29c move a0, s2                                   |         a0 = s2;
    0x0003f2a0 lw t9, -0x75a8(gp)                            |         t9 = sym.imp.g_string_free;
    0x0003f2a4 lw s2, 0x5c(sp)                               |         s2 = *(var_5ch);
    0x0003f2a8 move a1, zero                                 |         a1 = 0;
    0x0003f2ac addiu sp, sp, 0x70                            |         
    0x0003f2b0 jr t9                                         |         t9 ();
                                                             |     }
    0x0003f2b4 lw a3, -0x7fd8(gp)                            |     a3 = *(gp);
    0x0003f2b8 lw a1, -0x7fd8(gp)                            |     a1 = *(gp);
                                                             |     /* str.storage_id */
    0x0003f2bc addiu v0, v0, -0x3264                         |     v0 += -0x3264;
    0x0003f2c0 lw t9, -0x76c0(gp)                            |     t9 = sym.imp.g_assertion_message_expr;
    0x0003f2c4 sw v0, 0x10(sp)                               |     *(var_10h_2) = v0;
                                                             |     /* str.sql_get_blocks_of_recording_group */
    0x0003f2c8 addiu a3, a3, 0x7e54                          |     a3 += 0x7e54;
    0x0003f2cc addiu a2, zero, 0x2cf                         |     a2 = 0x2cf;
                                                             |     /* str.sql_read.c */
    0x0003f2d0 addiu a1, a1, 0x6bd4                          |     a1 += 0x6bd4;
    0x0003f2d4 move a0, zero                                 |     a0 = 0;
    0x0003f2d8 jalr t9                                       |     t9 ();
                                                             | label_0:
    0x0003f2dc lw v0, -0x7fd8(gp)                            |     v0 = *(gp);
    0x0003f2e0 lw a3, -0x7fd8(gp)                            |     a3 = *(gp);
    0x0003f2e4 lw a1, -0x7fd8(gp)                            |     a1 = *(gp);
                                                             |     /* esilref: 'recording_group_id' */
    0x0003f2e8 addiu v0, v0, 0x80c                           |     v0 += 0x80c;
    0x0003f2ec lw t9, -0x76c0(gp)                            |     t9 = sym.imp.g_assertion_message_expr;
    0x0003f2f0 sw v0, 0x10(sp)                               |     *(var_10h_2) = v0;
                                                             |     /* str.sql_get_blocks_of_recording_group */
    0x0003f2f4 addiu a3, a3, 0x7e54                          |     a3 += 0x7e54;
    0x0003f2f8 addiu a2, zero, 0x2d0                         |     a2 = aav.0x000002d0;
                                                             |     /* str.sql_read.c */
    0x0003f2fc addiu a1, a1, 0x6bd4                          |     a1 += 0x6bd4;
    0x0003f300 jalr t9                                       |     return t9 ();
                                                             | }
    ; assembly                                           | /* r2dec pseudo code output */
                                                         | /* /logs/firmware/unblob_extracted/firmware_extract/4325012-58052244.squashfs_v4_le_extract/usr/bin/indexer @ 0x3f468 */
                                                         | #include <stdint.h>
                                                         |  
    ; (fcn) sym.sql_get_column_in_condition ()           | void sql_get_column_in_condition () {
    0x0003f468 lui gp, 4                                 |     
    0x0003f46c addiu gp, gp, 0x6c98                      |     
    0x0003f470 addu gp, gp, t9                           |     gp += t9;
    0x0003f474 addiu sp, sp, -0x40                       |     
    0x0003f478 sw gp, 0x18(sp)                           |     *(var_18h) = gp;
    0x0003f47c sw ra, 0x3c(sp)                           |     *(var_3ch) = ra;
    0x0003f480 sw s3, 0x38(sp)                           |     *(var_38h) = s3;
    0x0003f484 sw s2, 0x34(sp)                           |     *(var_34h) = s2;
    0x0003f488 sw s1, 0x30(sp)                           |     *(var_30h) = s1;
    0x0003f48c sw s0, 0x2c(sp)                           |     *(var_2ch) = s0;
    0x0003f490 lw v0, -0x7fd8(gp)                        |     v0 = *(gp);
                                                         |     if (a0 != 0) {
    0x0003f494 beqz a0, 0x3f50c                          |         
    0x0003f498 move s1, a1                               |         s1 = a1;
                                                         |         if (a1 == 0) {
    0x0003f49c beqz a1, 0x3f530                          |             goto label_0;
                                                         |         }
    0x0003f4a0 move s2, a2                               |         s2 = a2;
                                                         |         if (a2 == 0) {
    0x0003f4a4 beqz a2, 0x3f55c                          |             goto label_1;
                                                         |         }
    0x0003f4a8 move s0, a0                               |         s0 = a0;
    0x0003f4ac lw a0, -0x7fd8(gp)                        |         a0 = *(gp);
    0x0003f4b0 lw t9, -0x71b4(gp)                        |         t9 = sym.imp.g_string_new;
    0x0003f4b4 addiu a0, a0, 0x403c                      |         a0 += 0x403c;
    0x0003f4b8 move s3, a3                               |         s3 = a3;
    0x0003f4bc jalr t9                                   |         t9 ();
    0x0003f4c0 lw gp, 0x18(sp)                           |         gp = *(var_18h);
    0x0003f4c4 sw s2, 0x14(sp)                           |         *(var_14h_2) = s2;
    0x0003f4c8 sw s3, 0x10(sp)                           |         *(var_10h) = s3;
    0x0003f4cc lw a1, -0x7fd8(gp)                        |         a1 = *(gp);
    0x0003f4d0 lw t9, -0x772c(gp)                        |         t9 = sym.imp.g_string_append_printf
    0x0003f4d4 move a3, s1                               |         a3 = s1;
    0x0003f4d8 move a2, s0                               |         a2 = s0;
    0x0003f4dc move a0, v0                               |         a0 = v0;
    0x0003f4e0 sw v0, 0x24(sp)                           |         *(var_24h_3) = v0;
                                                         |         /* str._s._s__s___s_ */
    0x0003f4e4 addiu a1, a1, 0xfc0                       |         a1 += 0xfc0;
    0x0003f4e8 jalr t9                                   |         t9 ();
    0x0003f4ec lw ra, 0x3c(sp)                           |         ra = *(var_3ch);
    0x0003f4f0 lw v0, 0x24(sp)                           |         v0 = *(var_24h_3);
    0x0003f4f4 lw s3, 0x38(sp)                           |         s3 = *(var_38h);
    0x0003f4f8 lw s2, 0x34(sp)                           |         s2 = *(var_34h);
    0x0003f4fc lw s1, 0x30(sp)                           |         s1 = *(var_30h);
    0x0003f500 lw s0, 0x2c(sp)                           |         s0 = *(var_2ch);
    0x0003f504 addiu sp, sp, 0x40                        |         
    0x0003f508 jr ra                                     |         return v0;
                                                         |     }
    0x0003f50c lw a3, -0x7fd8(gp)                        |     a3 = *(gp);
    0x0003f510 lw a1, -0x7fd8(gp)                        |     a1 = *(gp);
                                                         |     /* esilref: 'table' */
    0x0003f514 addiu v0, v0, 0x8e0                       |     v0 += 0x8e0;
    0x0003f518 lw t9, -0x76c0(gp)                        |     t9 = sym.imp.g_assertion_message_expr;
    0x0003f51c sw v0, 0x10(sp)                           |     *(var_10h) = v0;
                                                         |     /* str.sql_get_column_in_condition */
    0x0003f520 addiu a3, a3, 0x7e1c                      |     a3 += 0x7e1c;
    0x0003f524 addiu a2, zero, 0x324                     |     a2 = aav.0x00000324;
                                                         |     /* str.sql_read.c */
    0x0003f528 addiu a1, a1, 0x6bd4                      |     a1 += 0x6bd4;
    0x0003f52c jalr t9                                   |     t9 ();
                                                         | label_0:
    0x0003f530 lw v0, -0x7fd8(gp)                        |     v0 = *(gp);
    0x0003f534 lw a3, -0x7fd8(gp)                        |     a3 = *(gp);
    0x0003f538 lw a1, -0x7fd8(gp)                        |     a1 = *(gp);
                                                         |     /* esilref: 'column' */
    0x0003f53c addiu v0, v0, 0x65fc                      |     v0 += 0x65fc;
    0x0003f540 lw t9, -0x76c0(gp)                        |     t9 = sym.imp.g_assertion_message_expr;
    0x0003f544 sw v0, 0x10(sp)                           |     *(var_10h) = v0;
                                                         |     /* str.sql_get_column_in_condition */
    0x0003f548 addiu a3, a3, 0x7e1c                      |     a3 += 0x7e1c;
    0x0003f54c addiu a2, zero, 0x325                     |     a2 = 0x325;
                                                         |     /* str.sql_read.c */
    0x0003f550 addiu a1, a1, 0x6bd4                      |     a1 += 0x6bd4;
    0x0003f554 move a0, zero                             |     a0 = 0;
    0x0003f558 jalr t9                                   |     t9 ();
                                                         | label_1:
    0x0003f55c lw v0, -0x7fd8(gp)                        |     v0 = *(gp);
    0x0003f560 lw a3, -0x7fd8(gp)                        |     a3 = *(gp);
    0x0003f564 lw a1, -0x7fd8(gp)                        |     a1 = *(gp);
                                                         |     /* str.condition */
    0x0003f568 addiu v0, v0, 0x78d8                      |     v0 += 0x78d8;
    0x0003f56c lw t9, -0x76c0(gp)                        |     t9 = sym.imp.g_assertion_message_expr;
    0x0003f570 sw v0, 0x10(sp)                           |     *(var_10h) = v0;
                                                         |     /* str.sql_get_column_in_condition */
    0x0003f574 addiu a3, a3, 0x7e1c                      |     a3 += 0x7e1c;
    0x0003f578 addiu a2, zero, 0x326                     |     a2 = 0x326;
                                                         |     /* str.sql_read.c */
    0x0003f57c addiu a1, a1, 0x6bd4                      |     a1 += 0x6bd4;
    0x0003f580 move a0, zero                             |     a0 = 0;
    0x0003f584 jalr t9                                   |     return t9 ();
                                                         | }
    ; assembly                                       | /* r2dec pseudo code output */
                                                     | /* /logs/firmware/unblob_extracted/firmware_extract/4325012-58052244.squashfs_v4_le_extract/usr/bin/indexer @ 0x3f304 */
                                                     | #include <stdint.h>
                                                     |  
    ; (fcn) sym.sql_get_recording_blocks ()          | void sql_get_recording_blocks () {
    0x0003f304 lui gp, 4                             |     
    0x0003f308 addiu gp, gp, 0x6dfc                  |     
    0x0003f30c addu gp, gp, t9                       |     gp += t9;
    0x0003f310 addiu sp, sp, -0x70                   |     
    0x0003f314 sw gp, 0x50(sp)                       |     *(var_50h) = gp;
    0x0003f318 sw ra, 0x6c(sp)                       |     *(var_6ch_2) = ra;
    0x0003f31c sw s4, 0x68(sp)                       |     *(var_68h_2) = s4;
    0x0003f320 sw s3, 0x64(sp)                       |     *(var_64h_2) = s3;
    0x0003f324 sw s2, 0x60(sp)                       |     *(var_60h_2) = s2;
    0x0003f328 sw s1, 0x5c(sp)                       |     *(var_5ch_2) = s1;
    0x0003f32c sw s0, 0x58(sp)                       |     *(var_58h_2) = s0;
    0x0003f330 move s0, a0                           |     s0 = a0;
                                                     |     if (a0 != 0) {
    0x0003f334 beqz a0, 0x3f410                      |         
    0x0003f338 lw a0, -0x7fd8(gp)                    |         a0 = *(gp);
    0x0003f33c lw t9, -0x71b4(gp)                    |         t9 = sym.imp.g_string_new;
    0x0003f340 addiu a0, a0, 0x403c                  |         a0 += 0x403c;
    0x0003f344 move s3, a1                           |         s3 = a1;
    0x0003f348 move s4, a2                           |         s4 = a2;
    0x0003f34c move s2, a3                           |         s2 = a3;
    0x0003f350 jalr t9                               |         t9 ();
    0x0003f354 lw gp, 0x50(sp)                       |         gp = *(var_50h);
    0x0003f358 sw s4, 0x3c(sp)                       |         *(var_3ch) = s4;
    0x0003f35c sw s0, 0x38(sp)                       |         *(var_38h) = s0;
    0x0003f360 lw a3, -0x7fd8(gp)                    |         a3 = *(gp);
    0x0003f364 lw v1, -0x7fd8(gp)                    |         v1 = *(gp);
    0x0003f368 lw a1, -0x7fd8(gp)                    |         a1 = *(gp);
                                                     |         /* esilref: 'blocks' */
    0x0003f36c addiu a3, a3, 0x7124                  |         a3 += 0x7124;
                                                     |         /* esilref: 'recordings' */
    0x0003f370 addiu v1, v1, -0x21e8                 |         v1 += -0x21e8;
    0x0003f374 lw t9, -0x772c(gp)                    |         t9 = sym.imp.g_string_append_printf
    0x0003f378 sw a3, 0x48(sp)                       |         *(var_48h_2) = a3;
    0x0003f37c sw v1, 0x44(sp)                       |         *(var_44h) = v1;
    0x0003f380 sw a3, 0x40(sp)                       |         *(var_40h) = a3;
    0x0003f384 sw v1, 0x34(sp)                       |         *(var_34h_2) = v1;
    0x0003f388 sw s3, 0x30(sp)                       |         *(var_30h_2) = s3;
    0x0003f38c sw s0, 0x2c(sp)                       |         *(var_2ch_2) = s0;
    0x0003f390 sw a3, 0x28(sp)                       |         *(var_28h_2) = a3;
    0x0003f394 sw a3, 0x24(sp)                       |         *(var_24h_2) = a3;
    0x0003f398 sw a3, 0x20(sp)                       |         *(var_20h_2) = a3;
    0x0003f39c sw a3, 0x1c(sp)                       |         *(var_1ch) = a3;
    0x0003f3a0 sw v1, 0x18(sp)                       |         *(var_18h_2) = v1;
    0x0003f3a4 sw v1, 0x14(sp)                       |         *(var_14h) = v1;
    0x0003f3a8 sw a3, 0x10(sp)                       |         *(var_10h_3) = a3;
    0x0003f3ac move a2, s0                           |         a2 = s0;
                                                     |         /* str.SELECT__s_AS_Storage___s.starttime_AS_blocks_starttime___s.stoptime_AS_blocks_stoptime___s.filename_AS_recordings_filename___s.path_AS_recordings_path___s.filename_AS_blocks_filename___s.path_AS_blocks_path___s.id_AS_blocks_id___s.filesize_AS_blocks_filesize_FROM__s._s__s___s._s__s_WHERE__s.id_s.recording_id */
    0x0003f3b0 addiu a1, a1, 0x7798                  |         a1 += 0x7798;
    0x0003f3b4 move a0, v0                           |         a0 = v0;
    0x0003f3b8 move s1, v0                           |         s1 = v0;
    0x0003f3bc jalr t9                               |         t9 ();
    0x0003f3c0 lw gp, 0x50(sp)                       |         gp = *(var_50h);
                                                     |         if (s2 != 0) {
    0x0003f3c4 beqz s2, 0x3f3e4                      |             
    0x0003f3c8 lw a1, -0x7fd8(gp)                    |             a1 = *(gp);
    0x0003f3cc lw t9, -0x772c(gp)                    |             t9 = sym.imp.g_string_append_printf
    0x0003f3d0 move a2, s2                           |             a2 = s2;
                                                     |             /* esilref: ' AND &s' */
    0x0003f3d4 addiu a1, a1, 0x10e8                  |             a1 += 0x10e8;
    0x0003f3d8 move a0, s1                           |             a0 = s1;
    0x0003f3dc jalr t9                               |             t9 ();
    0x0003f3e0 lw gp, 0x50(sp)                       |             gp = *(var_50h);
                                                     |         }
    0x0003f3e4 lw v0, 0x80(sp)                       |         v0 = *(var_10h_2);
    0x0003f3e8 lw ra, 0x6c(sp)                       |         ra = *(var_6ch_2);
                                                     |         if (v0 != 0) {
    0x0003f3ec bnez v0, 0x3f438                      |             goto label_0;
                                                     |         }
    0x0003f3f0 move v0, s1                           |         v0 = s1;
    0x0003f3f4 lw s4, 0x68(sp)                       |         s4 = *(var_68h_2);
    0x0003f3f8 lw s3, 0x64(sp)                       |         s3 = *(var_64h_2);
    0x0003f3fc lw s2, 0x60(sp)                       |         s2 = *(var_60h_2);
    0x0003f400 lw s1, 0x5c(sp)                       |         s1 = *(var_5ch_2);
    0x0003f404 lw s0, 0x58(sp)                       |         s0 = *(var_58h_2);
    0x0003f408 addiu sp, sp, 0x70                    |         
    0x0003f40c jr ra                                 |         return v0;
                                                     |     }
    0x0003f410 lw v0, -0x7fd8(gp)                    |     v0 = *(gp);
    0x0003f414 lw a3, -0x7fd8(gp)                    |     a3 = *(gp);
    0x0003f418 lw a1, -0x7fd8(gp)                    |     a1 = *(gp);
                                                     |     /* str.storage_id */
    0x0003f41c addiu v0, v0, -0x3264                 |     v0 += -0x3264;
    0x0003f420 lw t9, -0x76c0(gp)                    |     t9 = sym.imp.g_assertion_message_expr;
    0x0003f424 sw v0, 0x10(sp)                       |     *(var_10h_3) = v0;
                                                     |     /* str.sql_get_recording_blocks */
    0x0003f428 addiu a3, a3, 0x7e38                  |     a3 += 0x7e38;
    0x0003f42c addiu a2, zero, 0x300                 |     a2 = aav.0x00000300;
                                                     |     /* str.sql_read.c */
    0x0003f430 addiu a1, a1, 0x6bd4                  |     a1 += 0x6bd4;
    0x0003f434 jalr t9                               |     t9 ();
                                                     | label_0:
    0x0003f438 lw t9, -0x7a78(gp)                    |     t9 = sym.sql_append_semicolon;
    0x0003f43c move a0, s1                           |     a0 = s1;
    0x0003f440 bal 0x3a054                           |     sym_sql_append_semicolon ();
    0x0003f444 lw ra, 0x6c(sp)                       |     ra = *(var_6ch_2);
    0x0003f448 move v0, s1                           |     v0 = s1;
    0x0003f44c lw s4, 0x68(sp)                       |     s4 = *(var_68h_2);
    0x0003f450 lw s3, 0x64(sp)                       |     s3 = *(var_64h_2);
    0x0003f454 lw s2, 0x60(sp)                       |     s2 = *(var_60h_2);
    0x0003f458 lw s1, 0x5c(sp)                       |     s1 = *(var_5ch_2);
    0x0003f45c lw s0, 0x58(sp)                       |     s0 = *(var_58h_2);
    0x0003f460 addiu sp, sp, 0x70                    |     
    0x0003f464 jr ra                                 |     return v0;
                                                     | }
    ; assembly                                               | /* r2dec pseudo code output */
                                                             | /* /logs/firmware/unblob_extracted/firmware_extract/4325012-58052244.squashfs_v4_le_extract/usr/bin/indexer @ 0x3fa14 */
                                                             | #include <stdint.h>
                                                             |  
    ; (fcn) sym.sql_get_start_stop_time_condition ()         | void sql_get_start_stop_time_condition () {
    0x0003fa14 lui gp, 4                                     |     
    0x0003fa18 addiu gp, gp, 0x66ec                          |     
    0x0003fa1c addu gp, gp, t9                               |     gp += t9;
    0x0003fa20 addiu sp, sp, -0x28                           |     
    0x0003fa24 lw t9, -0x7cec(gp)                            |     t9 = sym.sql_table_with_storage_name;
    0x0003fa28 sw ra, 0x24(sp)                               |     *(var_24h) = ra;
    0x0003fa2c sw gp, 0x10(sp)                               |     *(var_10h) = gp;
    0x0003fa30 sw s2, 0x20(sp)                               |     *(var_20h) = s2;
    0x0003fa34 sw s1, 0x1c(sp)                               |     *(var_1ch) = s1;
    0x0003fa38 sw s0, 0x18(sp)                               |     *(var_18h) = s0;
    0x0003fa3c move s2, a2                                   |     s2 = a2;
    0x0003fa40 bal 0x39fd0                                   |     sym_sql_table_with_storage_name ();
    0x0003fa44 lw gp, 0x10(sp)                               |     gp = *(var_10h);
    0x0003fa48 move s1, v0                                   |     s1 = v0;
    0x0003fa4c lw a0, -0x7fd8(gp)                            |     a0 = *(gp);
    0x0003fa50 lw t9, -0x71b4(gp)                            |     t9 = sym.imp.g_string_new;
    0x0003fa54 addiu a0, a0, 0x403c                          |     a0 += 0x403c;
    0x0003fa58 jalr t9                                       |     t9 ();
    0x0003fa5c lw gp, 0x10(sp)                               |     gp = *(var_10h);
    0x0003fa60 move a0, v0                                   |     a0 = v0;
    0x0003fa64 move a2, s1                                   |     a2 = s1;
    0x0003fa68 lw a1, -0x7fd8(gp)                            |     a1 = *(gp);
    0x0003fa6c lw t9, -0x772c(gp)                            |     t9 = sym.imp.g_string_append_printf
                                                             |     /* str.SELECT_starttime__stoptime_FROM__s */
    0x0003fa70 addiu a1, a1, 0x75f8                          |     a1 += 0x75f8;
    0x0003fa74 move s0, v0                                   |     s0 = v0;
    0x0003fa78 jalr t9                                       |     t9 ();
    0x0003fa7c lw gp, 0x10(sp)                               |     gp = *(var_10h);
    0x0003fa80 lw t9, -0x74c8(gp)                            |     t9 = *((gp - 7474));
    0x0003fa84 move a0, s1                                   |     a0 = s1;
    0x0003fa88 jalr t9                                       |     t9 ();
    0x0003fa8c lw gp, 0x10(sp)                               |     gp = *(var_10h);
                                                             |     if (s2 != 0) {
    0x0003fa90 beqz s2, 0x3faac                              |         
    0x0003fa94 lw a1, -0x7fd8(gp)                            |         a1 = *(gp);
    0x0003fa98 lw t9, -0x772c(gp)                            |         t9 = sym.imp.g_string_append_printf
    0x0003fa9c move a2, s2                                   |         a2 = s2;
                                                             |         /* str._WHERE__s */
    0x0003faa0 addiu a1, a1, 0x6e60                          |         a1 += 0x6e60;
    0x0003faa4 move a0, s0                                   |         a0 = s0;
    0x0003faa8 jalr t9                                       |         t9 ();
                                                             |     }
    0x0003faac lw ra, 0x24(sp)                               |     ra = *(var_24h);
    0x0003fab0 move v0, s0                                   |     v0 = s0;
    0x0003fab4 lw s2, 0x20(sp)                               |     s2 = *(var_20h);
    0x0003fab8 lw s1, 0x1c(sp)                               |     s1 = *(var_1ch);
    0x0003fabc lw s0, 0x18(sp)                               |     s0 = *(var_18h);
    0x0003fac0 addiu sp, sp, 0x28                            |     
    0x0003fac4 jr ra                                         |     return v0;
                                                             | }
    ; assembly                                       | /* r2dec pseudo code output */
                                                     | /* /logs/firmware/unblob_extracted/firmware_extract/4325012-58052244.squashfs_v4_le_extract/usr/bin/indexer @ 0x3f8b4 */
                                                     | #include <stdint.h>
                                                     |  
    ; (fcn) sym.sql_get_storage_as_table ()          | void sql_get_storage_as_table () {
    0x0003f8b4 lui gp, 4                             |     
    0x0003f8b8 addiu gp, gp, 0x684c                  |     
    0x0003f8bc addu gp, gp, t9                       |     gp += t9;
    0x0003f8c0 addiu sp, sp, -0x38                   |     
    0x0003f8c4 sw gp, 0x18(sp)                       |     *(var_18h) = gp;
    0x0003f8c8 sw ra, 0x34(sp)                       |     *(var_34h_2) = ra;
    0x0003f8cc sw s4, 0x30(sp)                       |     *(var_30h_2) = s4;
    0x0003f8d0 sw s3, 0x2c(sp)                       |     *(var_2ch_2) = s3;
    0x0003f8d4 sw s2, 0x28(sp)                       |     *(var_28h_2) = s2;
    0x0003f8d8 sw s1, 0x24(sp)                       |     *(var_24h) = s1;
    0x0003f8dc sw s0, 0x20(sp)                       |     *(var_20h_2) = s0;
    0x0003f8e0 lw v0, -0x7fd8(gp)                    |     v0 = *(gp);
                                                     |     if (a0 != 0) {
    0x0003f8e4 beqz a0, 0x3f9a4                      |         
    0x0003f8e8 move s2, a1                           |         s2 = a1;
                                                     |         if (a1 == 0) {
    0x0003f8ec beqz a1, 0x3f9c8                      |             goto label_0;
                                                     |         }
    0x0003f8f0 lw t9, -0x7cec(gp)                    |         t9 = sym.sql_table_with_storage_name;
    0x0003f8f4 move a1, a2                           |         a1 = a2;
    0x0003f8f8 move s1, a0                           |         s1 = a0;
    0x0003f8fc move s4, a3                           |         s4 = a3;
    0x0003f900 bal 0x39fd0                           |         sym_sql_table_with_storage_name ();
    0x0003f904 lw gp, 0x18(sp)                       |         gp = *(var_18h);
    0x0003f908 move s3, v0                           |         s3 = v0;
    0x0003f90c lw a0, -0x7fd8(gp)                    |         a0 = *(gp);
    0x0003f910 lw t9, -0x71b4(gp)                    |         t9 = sym.imp.g_string_new;
    0x0003f914 addiu a0, a0, 0x403c                  |         a0 += 0x403c;
    0x0003f918 jalr t9                               |         t9 ();
    0x0003f91c lw gp, 0x18(sp)                       |         gp = *(var_18h);
    0x0003f920 move a0, v0                           |         a0 = v0;
    0x0003f924 move a3, s2                           |         a3 = s2;
    0x0003f928 lw a1, -0x7fd8(gp)                    |         a1 = *(gp);
    0x0003f92c lw t9, -0x772c(gp)                    |         t9 = sym.imp.g_string_append_printf
    0x0003f930 move a2, s1                           |         a2 = s1;
                                                     |         /* str.SELECT__s_AS__s___FROM__s */
    0x0003f934 addiu a1, a1, 0x79c0                  |         a1 += 0x79c0;
    0x0003f938 sw s3, 0x10(sp)                       |         *(var_10h_2) = s3;
    0x0003f93c move s0, v0                           |         s0 = v0;
    0x0003f940 jalr t9                               |         t9 ();
    0x0003f944 lw gp, 0x18(sp)                       |         gp = *(var_18h);
    0x0003f948 lw t9, -0x74c8(gp)                    |         t9 = *((gp - 7474));
    0x0003f94c move a0, s3                           |         a0 = s3;
    0x0003f950 jalr t9                               |         t9 ();
    0x0003f954 lw gp, 0x18(sp)                       |         gp = *(var_18h);
                                                     |         if (s4 != 0) {
    0x0003f958 beqz s4, 0x3f978                      |             
    0x0003f95c lw a1, -0x7fd8(gp)                    |             a1 = *(gp);
    0x0003f960 lw t9, -0x772c(gp)                    |             t9 = sym.imp.g_string_append_printf
    0x0003f964 move a2, s4                           |             a2 = s4;
                                                     |             /* str._WHERE__s */
    0x0003f968 addiu a1, a1, 0x6e60                  |             a1 += 0x6e60;
    0x0003f96c move a0, s0                           |             a0 = s0;
    0x0003f970 jalr t9                               |             t9 ();
    0x0003f974 lw gp, 0x18(sp)                       |             gp = *(var_18h);
                                                     |         }
    0x0003f978 lw ra, 0x34(sp)                       |         ra = *(var_34h_2);
    0x0003f97c lw s4, 0x30(sp)                       |         s4 = *(var_30h_2);
    0x0003f980 lw s3, 0x2c(sp)                       |         s3 = *(var_2ch_2);
    0x0003f984 lw s2, 0x28(sp)                       |         s2 = *(var_28h_2);
    0x0003f988 lw s1, 0x24(sp)                       |         s1 = *(var_24h);
    0x0003f98c move a0, s0                           |         a0 = s0;
    0x0003f990 lw t9, -0x75a8(gp)                    |         t9 = sym.imp.g_string_free;
    0x0003f994 lw s0, 0x20(sp)                       |         s0 = *(var_20h_2);
    0x0003f998 move a1, zero                         |         a1 = 0;
    0x0003f99c addiu sp, sp, 0x38                    |         
    0x0003f9a0 jr t9                                 |         t9 ();
                                                     |     }
    0x0003f9a4 lw a3, -0x7fd8(gp)                    |     a3 = *(gp);
    0x0003f9a8 lw a1, -0x7fd8(gp)                    |     a1 = *(gp);
                                                     |     /* str.storage_id */
    0x0003f9ac addiu v0, v0, -0x3264                 |     v0 += -0x3264;
    0x0003f9b0 lw t9, -0x76c0(gp)                    |     t9 = sym.imp.g_assertion_message_expr;
    0x0003f9b4 sw v0, 0x10(sp)                       |     *(var_10h_2) = v0;
                                                     |     /* str.sql_get_storage_as_table */
    0x0003f9b8 addiu a3, a3, 0x7d9c                  |     a3 += 0x7d9c;
    0x0003f9bc addiu a2, zero, 0x369                 |     a2 = 0x369;
                                                     |     /* str.sql_read.c */
    0x0003f9c0 addiu a1, a1, 0x6bd4                  |     a1 += 0x6bd4;
    0x0003f9c4 jalr t9                               |     t9 ();
                                                     | label_0:
    0x0003f9c8 lw v0, -0x7fd8(gp)                    |     v0 = *(gp);
    0x0003f9cc lw a3, -0x7fd8(gp)                    |     a3 = *(gp);
    0x0003f9d0 lw a1, -0x7fd8(gp)                    |     a1 = *(gp);
                                                     |     /* esilref: 'as' */
    0x0003f9d4 addiu v0, v0, 0x79bc                  |     v0 += 0x79bc;
    0x0003f9d8 lw t9, -0x76c0(gp)                    |     t9 = sym.imp.g_assertion_message_expr;
    0x0003f9dc sw v0, 0x10(sp)                       |     *(var_10h_2) = v0;
                                                     |     /* str.sql_get_storage_as_table */
    0x0003f9e0 addiu a3, a3, 0x7d9c                  |     a3 += 0x7d9c;
    0x0003f9e4 addiu a2, zero, 0x36a                 |     a2 = 0x36a;
                                                     |     /* str.sql_read.c */
    0x0003f9e8 addiu a1, a1, 0x6bd4                  |     a1 += 0x6bd4;
    0x0003f9ec move a0, zero                         |     a0 = 0;
    0x0003f9f0 jalr t9                               |     return t9 ();
                                                     | }
    ; assembly                               | /* r2dec pseudo code output */
                                             | /* /logs/firmware/unblob_extracted/firmware_extract/4325012-58052244.squashfs_v4_le_extract/usr/bin/indexer @ 0x3bc84 */
                                             | #include <stdint.h>
                                             |  
    ; (fcn) sym.sql_insert_block ()          | void sql_insert_block () {
    0x0003bc84 lui gp, 5                     |     
    0x0003bc88 addiu gp, gp, -0x5b84         |     
    0x0003bc8c addu gp, gp, t9               |     gp += t9;
    0x0003bc90 addiu sp, sp, -0x48           |     
    0x0003bc94 sw gp, 0x20(sp)               |     *(var_20h_2) = gp;
    0x0003bc98 sw ra, 0x44(sp)               |     *(var_44h_2) = ra;
    0x0003bc9c sw s6, 0x40(sp)               |     *(var_40h_2) = s6;
    0x0003bca0 sw s5, 0x3c(sp)               |     *(var_3ch_2) = s5;
    0x0003bca4 sw s4, 0x38(sp)               |     *(var_38h_2) = s4;
    0x0003bca8 sw s3, 0x34(sp)               |     *(var_34h_2) = s3;
    0x0003bcac sw s2, 0x30(sp)               |     *(var_30h_2) = s2;
    0x0003bcb0 sw s1, 0x2c(sp)               |     *(var_2ch_2) = s1;
    0x0003bcb4 sw s0, 0x28(sp)               |     *(var_28h_2) = s0;
    0x0003bcb8 lw v0, -0x7fd8(gp)            |     v0 = *(gp);
                                             |     if (a0 != 0) {
    0x0003bcbc beqz a0, 0x3bf24              |         
    0x0003bcc0 move s6, a1                   |         s6 = a1;
                                             |         if (a1 == 0) {
    0x0003bcc4 beqz a1, 0x3bf48              |             goto label_0;
                                             |         }
    0x0003bcc8 move s3, a2                   |         s3 = a2;
                                             |         if (a2 == 0) {
    0x0003bccc beqz a2, 0x3bf74              |             goto label_1;
                                             |         }
    0x0003bcd0 lw s0, -0x7fd8(gp)            |         s0 = *(gp);
    0x0003bcd4 lw t9, -0x71b4(gp)            |         t9 = sym.imp.g_string_new;
    0x0003bcd8 move s2, a0                   |         s2 = a0;
    0x0003bcdc addiu a0, s0, 0x403c          |         a0 = s0 + 0x403c;
    0x0003bce0 move s5, a3                   |         s5 = a3;
    0x0003bce4 jalr t9                       |         t9 ();
    0x0003bce8 lw gp, 0x20(sp)               |         gp = *(var_20h_2);
    0x0003bcec addiu a0, s0, 0x403c          |         a0 = s0 + 0x403c;
    0x0003bcf0 lw t9, -0x71b4(gp)            |         t9 = sym.imp.g_string_new;
    0x0003bcf4 move s4, v0                   |         s4 = v0;
    0x0003bcf8 jalr t9                       |         t9 ();
    0x0003bcfc lw gp, 0x20(sp)               |         gp = *(var_20h_2);
    0x0003bd00 addiu a0, s0, 0x403c          |         a0 = s0 + 0x403c;
    0x0003bd04 lw t9, -0x71b4(gp)            |         t9 = sym.imp.g_string_new;
    0x0003bd08 move s1, v0                   |         s1 = v0;
    0x0003bd0c jalr t9                       |         t9 ();
    0x0003bd10 lw gp, 0x20(sp)               |         gp = *(var_20h_2);
    0x0003bd14 move a0, s1                   |         a0 = s1;
    0x0003bd18 move s0, v0                   |         s0 = v0;
    0x0003bd1c lw a1, -0x7fd8(gp)            |         a1 = *(gp);
    0x0003bd20 lw t9, -0x76d0(gp)            |         t9 = sym.imp.g_string_append;
                                             |         /* str.__recording_id */
    0x0003bd24 addiu a1, a1, 0x66e8          |         a1 += 0x66e8;
    0x0003bd28 jalr t9                       |         t9 ();
    0x0003bd2c lw gp, 0x20(sp)               |         gp = *(var_20h_2);
    0x0003bd30 move a0, s2                   |         a0 = s2;
    0x0003bd34 sw s6, 0x10(sp)               |         *(var_10h_2) = s6;
    0x0003bd38 lw v0, -0x7fd8(gp)            |         v0 = *(gp);
    0x0003bd3c lw a3, -0x7fd8(gp)            |         a3 = *(gp);
    0x0003bd40 lw a2, -0x7f50(gp)            |         a2 = *((gp - 8148));
    0x0003bd44 lw a1, -0x7fd8(gp)            |         a1 = *(gp);
    0x0003bd48 lw t9, -0x7ce0(gp)            |         t9 = sym.sql_select_column_from_table;
    0x0003bd4c addiu v0, v0, 0xf80           |         v0 += 0xf80;
                                             |         /* str.filename */
    0x0003bd50 addiu a3, a3, 0x7dc           |         a3 += 0x7dc;
                                             |         /* esilref: 'id' */
    0x0003bd54 addiu a2, a2, -0x6dbc         |         a2 += -0x6dbc;
                                             |         /* esilref: 'recordings' */
    0x0003bd58 addiu a1, a1, -0x21e8         |         a1 += -0x21e8;
    0x0003bd5c sw zero, 0x18(sp)             |         *(var_18h_2) = 0;
    0x0003bd60 sw v0, 0x14(sp)               |         *(var_14h_2) = v0;
    0x0003bd64 bal 0x3d954                   |         sym_sql_select_column_from_table ();
    0x0003bd68 lw gp, 0x20(sp)               |         gp = *(var_20h_2);
    0x0003bd6c lw a2, (v0)                   |         a2 = *(v0);
    0x0003bd70 move a0, s0                   |         a0 = s0;
    0x0003bd74 lw a1, -0x7fd8(gp)            |         a1 = *(gp);
    0x0003bd78 lw t9, -0x772c(gp)            |         t9 = sym.imp.g_string_append_printf
                                             |         /* str.____s_ */
    0x0003bd7c addiu a1, a1, 0x5f10          |         a1 += 0x5f10;
    0x0003bd80 move s6, v0                   |         s6 = v0;
    0x0003bd84 jalr t9                       |         t9 ();
    0x0003bd88 lw gp, 0x20(sp)               |         gp = *(var_20h_2);
    0x0003bd8c addiu a1, zero, 1             |         a1 = 1;
    0x0003bd90 lw t9, -0x75a8(gp)            |         t9 = sym.imp.g_string_free;
    0x0003bd94 move a0, s6                   |         a0 = s6;
    0x0003bd98 jalr t9                       |         t9 ();
    0x0003bd9c lw v0, 0x5c(sp)               |         v0 = *(var_5ch);
    0x0003bda0 lw gp, 0x20(sp)               |         gp = *(var_20h_2);
                                             |         if (v0 != 0) {
    0x0003bda4 beqz v0, 0x3bdd8              |             
    0x0003bda8 lw a1, -0x7fd8(gp)            |             a1 = *(gp);
    0x0003bdac lw t9, -0x76d0(gp)            |             t9 = sym.imp.g_string_append;
                                             |             /* str.__path */
    0x0003bdb0 addiu a1, a1, 0x6620          |             a1 += 0x6620;
    0x0003bdb4 move a0, s1                   |             a0 = s1;
    0x0003bdb8 jalr t9                       |             t9 ();
    0x0003bdbc lw gp, 0x20(sp)               |             gp = *(var_20h_2);
    0x0003bdc0 lw a1, 0x5c(sp)               |             a1 = *(var_5ch);
    0x0003bdc4 lw t9, -0x7a8c(gp)            |             t9 = *(gp);
                                             |             /* fcn.0003a9a0 */
    0x0003bdc8 addiu t9, t9, -0x5660         |             t9 += -0x5660;
    0x0003bdcc move a0, s0                   |             a0 = s0;
    0x0003bdd0 bal 0x3a9a0                   |             fcn_0003a9a0 ();
    0x0003bdd4 lw gp, 0x20(sp)               |             gp = *(var_20h_2);
                                             |         }
    0x0003bdd8 lw a1, -0x7fd8(gp)            |         a1 = *(gp);
                                             |         if (s5 != 0) {
    0x0003bddc beqz s5, 0x3be0c              |             
    0x0003bde0 lw t9, -0x76d0(gp)            |             t9 = sym.imp.g_string_append;
                                             |             /* esilref: ', starttime' */
    0x0003bde4 addiu a1, a1, 0xf8c           |             a1 += 0xf8c;
    0x0003bde8 move a0, s1                   |             a0 = s1;
    0x0003bdec jalr t9                       |             t9 ();
    0x0003bdf0 lw gp, 0x20(sp)               |             gp = *(var_20h_2);
    0x0003bdf4 move a1, s5                   |             a1 = s5;
    0x0003bdf8 lw t9, -0x7a8c(gp)            |             t9 = *(gp);
                                             |             /* fcn.0003a9a0 */
    0x0003bdfc addiu t9, t9, -0x5660         |             t9 += -0x5660;
    0x0003be00 move a0, s0                   |             a0 = s0;
    0x0003be04 bal 0x3a9a0                   |             fcn_0003a9a0 ();
    0x0003be08 lw gp, 0x20(sp)               |             gp = *(var_20h_2);
                                             |         }
    0x0003be0c lw v0, 0x58(sp)               |         v0 = *(var_10h);
    0x0003be10 lw a1, -0x7fd8(gp)            |         a1 = *(gp);
                                             |         if (v0 != 0) {
    0x0003be14 beqz v0, 0x3be44              |             
    0x0003be18 lw t9, -0x76d0(gp)            |             t9 = sym.imp.g_string_append;
                                             |             /* str.__stoptime */
    0x0003be1c addiu a1, a1, 0x6628          |             a1 += 0x6628;
    0x0003be20 move a0, s1                   |             a0 = s1;
    0x0003be24 jalr t9                       |             t9 ();
    0x0003be28 lw gp, 0x20(sp)               |             gp = *(var_20h_2);
    0x0003be2c lw a1, 0x58(sp)               |             a1 = *(var_10h);
    0x0003be30 lw t9, -0x7a8c(gp)            |             t9 = *(gp);
                                             |             /* fcn.0003a9a0 */
    0x0003be34 addiu t9, t9, -0x5660         |             t9 += -0x5660;
    0x0003be38 move a0, s0                   |             a0 = s0;
    0x0003be3c bal 0x3a9a0                   |             fcn_0003a9a0 ();
    0x0003be40 lw gp, 0x20(sp)               |             gp = *(var_20h_2);
                                             |         }
    0x0003be44 lw v0, 0x60(sp)               |         v0 = *(var_60h);
    0x0003be48 lw t9, -0x76d0(gp)            |         t9 = sym.imp.g_string_append;
                                             |         if (v0 != 0) {
    0x0003be4c beqz v0, 0x3be7c              |             
    0x0003be50 lw a1, -0x7fd8(gp)            |             a1 = *(gp);
                                             |             /* str.__filesize */
    0x0003be54 addiu a1, a1, 0x66f8          |             a1 += 0x66f8;
    0x0003be58 move a0, s1                   |             a0 = s1;
    0x0003be5c jalr t9                       |             t9 ();
    0x0003be60 lw gp, 0x20(sp)               |             gp = *(var_20h_2);
    0x0003be64 lw a1, 0x60(sp)               |             a1 = *(var_60h);
    0x0003be68 lw t9, -0x7a8c(gp)            |             t9 = *(gp);
                                             |             /* fcn.0003a9a0 */
    0x0003be6c addiu t9, t9, -0x5660         |             t9 += -0x5660;
    0x0003be70 move a0, s0                   |             a0 = s0;
    0x0003be74 bal 0x3a9a0                   |             fcn_0003a9a0 ();
    0x0003be78 lw gp, 0x20(sp)               |             gp = *(var_20h_2);
                                             |         }
    0x0003be7c lw t9, -0x7c5c(gp)            |         t9 = sym.sanitize_quote;
    0x0003be80 move a0, s3                   |         a0 = s3;
    0x0003be84 bal 0x3a2f0                   |         sym_sanitize_quote ();
    0x0003be88 lw v1, (s0)                   |         v1 = *(s0);
    0x0003be8c lw gp, 0x20(sp)               |         gp = *(var_20h_2);
    0x0003be90 lw a3, (s1)                   |         a3 = *(s1);
    0x0003be94 sw v1, 0x14(sp)               |         *(var_14h_2) = v1;
    0x0003be98 move s3, v0                   |         s3 = v0;
    0x0003be9c lw a1, -0x7fd8(gp)            |         a1 = *(gp);
    0x0003bea0 lw v0, (v0)                   |         v0 = *(v0);
    0x0003bea4 lw t9, -0x772c(gp)            |         t9 = sym.imp.g_string_append_printf
    0x0003bea8 move a2, s2                   |         a2 = s2;
    0x0003beac move a0, s4                   |         a0 = s4;
    0x0003beb0 sw v0, 0x10(sp)               |         *(var_10h_2) = v0;
                                             |         /* str.INSERT_INTO__s.blocks__filename_s___VALUES___s__s__ */
    0x0003beb4 addiu a1, a1, 0x6704          |         a1 += 0x6704;
    0x0003beb8 jalr t9                       |         t9 ();
    0x0003bebc lw gp, 0x20(sp)               |         gp = *(var_20h_2);
    0x0003bec0 move a0, s3                   |         a0 = s3;
    0x0003bec4 lw t9, -0x75a8(gp)            |         t9 = sym.imp.g_string_free;
    0x0003bec8 addiu a1, zero, 1             |         a1 = 1;
    0x0003becc jalr t9                       |         t9 ();
    0x0003bed0 lw gp, 0x20(sp)               |         gp = *(var_20h_2);
    0x0003bed4 move a0, s1                   |         a0 = s1;
    0x0003bed8 lw t9, -0x75a8(gp)            |         t9 = sym.imp.g_string_free;
    0x0003bedc addiu a1, zero, 1             |         a1 = 1;
    0x0003bee0 jalr t9                       |         t9 ();
    0x0003bee4 lw gp, 0x20(sp)               |         gp = *(var_20h_2);
    0x0003bee8 move a0, s0                   |         a0 = s0;
    0x0003beec lw t9, -0x75a8(gp)            |         t9 = sym.imp.g_string_free;
    0x0003bef0 addiu a1, zero, 1             |         a1 = 1;
    0x0003bef4 jalr t9                       |         t9 ();
    0x0003bef8 lw ra, 0x44(sp)               |         ra = *(var_44h_2);
    0x0003befc move v0, s4                   |         v0 = s4;
    0x0003bf00 lw s6, 0x40(sp)               |         s6 = *(var_40h_2);
    0x0003bf04 lw s5, 0x3c(sp)               |         s5 = *(var_3ch_2);
    0x0003bf08 lw s4, 0x38(sp)               |         s4 = *(var_38h_2);
    0x0003bf0c lw s3, 0x34(sp)               |         s3 = *(var_34h_2);
    0x0003bf10 lw s2, 0x30(sp)               |         s2 = *(var_30h_2);
    0x0003bf14 lw s1, 0x2c(sp)               |         s1 = *(var_2ch_2);
    0x0003bf18 lw s0, 0x28(sp)               |         s0 = *(var_28h_2);
    0x0003bf1c addiu sp, sp, 0x48            |         
    0x0003bf20 jr ra                         |         return v0;
                                             |     }
    0x0003bf24 lw a3, -0x7fd8(gp)            |     a3 = *(gp);
    0x0003bf28 lw a1, -0x7fd8(gp)            |     a1 = *(gp);
                                             |     /* str.storage_id */
    0x0003bf2c addiu v0, v0, -0x3264         |     v0 += -0x3264;
    0x0003bf30 lw t9, -0x76c0(gp)            |     t9 = sym.imp.g_assertion_message_expr;
    0x0003bf34 sw v0, 0x10(sp)               |     *(var_10h_2) = v0;
                                             |     /* str.sql_insert_block */
    0x0003bf38 addiu a3, a3, 0x69a8          |     a3 += 0x69a8;
    0x0003bf3c addiu a2, zero, 0x1b8         |     a2 = aav.0x000001b8;
                                             |     /* str.sql_create.c */
    0x0003bf40 addiu a1, a1, 0x6130          |     a1 += 0x6130;
    0x0003bf44 jalr t9                       |     t9 ();
                                             | label_0:
    0x0003bf48 lw v0, -0x7fd8(gp)            |     v0 = *(gp);
    0x0003bf4c lw a3, -0x7fd8(gp)            |     a3 = *(gp);
    0x0003bf50 lw a1, -0x7fd8(gp)            |     a1 = *(gp);
                                             |     /* esilref: 'recording_id' */
    0x0003bf54 addiu v0, v0, 0x78c8          |     v0 += 0x78c8;
    0x0003bf58 lw t9, -0x76c0(gp)            |     t9 = sym.imp.g_assertion_message_expr;
    0x0003bf5c sw v0, 0x10(sp)               |     *(var_10h_2) = v0;
                                             |     /* str.sql_insert_block */
    0x0003bf60 addiu a3, a3, 0x69a8          |     a3 += 0x69a8;
    0x0003bf64 addiu a2, zero, 0x1b9         |     a2 = 0x1b9;
                                             |     /* str.sql_create.c */
    0x0003bf68 addiu a1, a1, 0x6130          |     a1 += 0x6130;
    0x0003bf6c move a0, zero                 |     a0 = 0;
    0x0003bf70 jalr t9                       |     t9 ();
                                             | label_1:
    0x0003bf74 lw v0, -0x7fd8(gp)            |     v0 = *(gp);
    0x0003bf78 lw a3, -0x7fd8(gp)            |     a3 = *(gp);
    0x0003bf7c lw a1, -0x7fd8(gp)            |     a1 = *(gp);
                                             |     /* str.block_id */
    0x0003bf80 addiu v0, v0, 0x1228          |     v0 += 0x1228;
    0x0003bf84 lw t9, -0x76c0(gp)            |     t9 = sym.imp.g_assertion_message_expr;
    0x0003bf88 sw v0, 0x10(sp)               |     *(var_10h_2) = v0;
                                             |     /* str.sql_insert_block */
    0x0003bf8c addiu a3, a3, 0x69a8          |     a3 += 0x69a8;
    0x0003bf90 addiu a2, zero, 0x1ba         |     a2 = 0x1ba;
                                             |     /* str.sql_create.c */
    0x0003bf94 addiu a1, a1, 0x6130          |     a1 += 0x6130;
    0x0003bf98 move a0, zero                 |     a0 = 0;
    0x0003bf9c jalr t9                       |     return t9 ();
                                             | }
    ; assembly                               | /* r2dec pseudo code output */
                                             | /* /logs/firmware/unblob_extracted/firmware_extract/4325012-58052244.squashfs_v4_le_extract/usr/bin/indexer @ 0x3c13c */
                                             | #include <stdint.h>
                                             |  
    ; (fcn) sym.sql_insert_into ()           | void sql_insert_into () {
    0x0003c13c lui gp, 5                     |     
    0x0003c140 addiu gp, gp, -0x603c         |     
    0x0003c144 addu gp, gp, t9               |     gp += t9;
    0x0003c148 addiu sp, sp, -0x58           |     
    0x0003c14c lw t9, -0x71b4(gp)            |     t9 = sym.imp.g_string_new;
    0x0003c150 sw s5, 0x44(sp)               |     *(var_44h) = s5;
    0x0003c154 lw s5, -0x71a0(gp)            |     s5 = *((gp - 7272));
    0x0003c158 sw s0, 0x30(sp)               |     *(var_30h) = s0;
    0x0003c15c lw s0, -0x7fd8(gp)            |     s0 = *(gp);
    0x0003c160 lw v0, (s5)                   |     v0 = *(s5);
    0x0003c164 sw ra, 0x54(sp)               |     *(var_54h) = ra;
    0x0003c168 sw gp, 0x18(sp)               |     *(var_18h) = gp;
    0x0003c16c sw a2, 0x60(sp)               |     *(arg_60h) = a2;
    0x0003c170 sw a3, 0x64(sp)               |     *(arg_64h) = a3;
    0x0003c174 sw fp, 0x50(sp)               |     *(var_50h) = fp;
    0x0003c178 sw s6, 0x48(sp)               |     *(var_48h) = s6;
    0x0003c17c sw s4, 0x40(sp)               |     *(var_40h) = s4;
    0x0003c180 sw s3, 0x3c(sp)               |     *(var_3ch) = s3;
    0x0003c184 sw s2, 0x38(sp)               |     *(var_38h) = s2;
    0x0003c188 sw a0, 0x24(sp)               |     *(var_24h) = a0;
    0x0003c18c sw s7, 0x4c(sp)               |     *(var_4ch) = s7;
    0x0003c190 addiu a0, s0, 0x403c          |     a0 = s0 + 0x403c;
    0x0003c194 sw s1, 0x34(sp)               |     *(var_34h) = s1;
    0x0003c198 sw v0, 0x2c(sp)               |     *(var_2ch) = v0;
    0x0003c19c move fp, a1                   |     fp = a1;
    0x0003c1a0 jalr t9                       |     t9 ();
    0x0003c1a4 lw gp, 0x18(sp)               |     gp = *(var_18h);
    0x0003c1a8 addiu a0, s0, 0x403c          |     a0 = s0 + 0x403c;
    0x0003c1ac lw t9, -0x71b4(gp)            |     t9 = sym.imp.g_string_new;
    0x0003c1b0 move s6, v0                   |     s6 = v0;
    0x0003c1b4 jalr t9                       |     t9 ();
    0x0003c1b8 lw gp, 0x18(sp)               |     gp = *(var_18h);
    0x0003c1bc addiu a0, s0, 0x403c          |     a0 = s0 + 0x403c;
    0x0003c1c0 move s3, v0                   |     s3 = v0;
    0x0003c1c4 lw t9, -0x71b4(gp)            |     t9 = sym.imp.g_string_new;
    0x0003c1c8 addiu s0, sp, 0x64            |     s0 = sp + 0x64;
    0x0003c1cc jalr t9                       |     t9 ();
    0x0003c1d0 lw gp, 0x18(sp)               |     gp = *(var_18h);
    0x0003c1d4 move s2, v0                   |     s2 = v0;
    0x0003c1d8 move a0, zero                 |     a0 = 0;
    0x0003c1dc lw s4, -0x7fd8(gp)            |     s4 = *(gp);
                                             |     /* esilref: ', ' */
    0x0003c1e0 addiu s4, s4, 0x11d4          |     s4 += 0x11d4;
    0x0003c1e4 b 0x3c230                     |     
                                             |     while (s7 != 0) {
    0x0003c1e8 lw t9, -0x76d0(gp)            |         t9 = sym.imp.g_string_append;
                                             |         if (a0 != 0) {
    0x0003c1ec bnez a0, 0x3c278              |             goto label_1;
                                             |         }
                                             | label_0:
    0x0003c1f0 lw t9, -0x76d0(gp)            |         t9 = sym.imp.g_string_append;
    0x0003c1f4 move a1, s1                   |         a1 = s1;
    0x0003c1f8 move a0, s3                   |         a0 = s3;
    0x0003c1fc jalr t9                       |         t9 ();
    0x0003c200 lw gp, 0x18(sp)               |         gp = *(var_18h);
    0x0003c204 move a0, s7                   |         a0 = s7;
    0x0003c208 lw t9, -0x7c5c(gp)            |         t9 = sym.sanitize_quote;
    0x0003c20c addiu s0, s0, 8               |         s0 += 8;
    0x0003c210 bal 0x3a2f0                   |         sym_sanitize_quote ();
    0x0003c214 lw gp, 0x18(sp)               |         gp = *(var_18h);
    0x0003c218 move a0, s2                   |         a0 = s2;
    0x0003c21c lw t9, -0x7d1c(gp)            |         t9 = sym.string_merge_g_strings;
    0x0003c220 move a1, v0                   |         a1 = v0;
    0x0003c224 bal 0x414e4                   |         sym_string_merge_g_strings ();
    0x0003c228 lw gp, 0x18(sp)               |         gp = *(var_18h);
    0x0003c22c addiu a0, zero, 1             |         a0 = 1;
    0x0003c230 lw s1, -4(s0)                 |         s1 = *((s0 - 1));
    0x0003c234 sw s0, 0x28(sp)               |         *(var_28h) = s0;
                                             |         if (s1 == 0) {
    0x0003c238 beqz s1, 0x3c2a0              |             goto label_2;
                                             |         }
    0x0003c23c lw s7, (s0)                   |         s7 = *(s0);
    0x0003c240 addiu v0, s0, 4               |         v0 = s0 + 4;
    0x0003c244 sw v0, 0x28(sp)               |         *(var_28h) = v0;
    0x0003c248 bnez s7, 0x3c1e8              |         
                                             |     }
    0x0003c24c lw v0, -0x7fd8(gp)            |     v0 = *(gp);
    0x0003c250 lw a3, -0x7fd8(gp)            |     a3 = *(gp);
    0x0003c254 lw a1, -0x7fd8(gp)            |     a1 = *(gp);
                                             |     /* str.value */
    0x0003c258 addiu v0, v0, 0x67a4          |     v0 += 0x67a4;
    0x0003c25c lw t9, -0x76c0(gp)            |     t9 = sym.imp.g_assertion_message_expr;
    0x0003c260 sw v0, 0x10(sp)               |     *(var_10h) = v0;
                                             |     /* str.sql_insert_into */
    0x0003c264 addiu a3, a3, 0x6984          |     a3 += 0x6984;
    0x0003c268 addiu a2, zero, 0x235         |     a2 = 0x235;
                                             |     /* str.sql_create.c */
    0x0003c26c addiu a1, a1, 0x6130          |     a1 += 0x6130;
    0x0003c270 move a0, zero                 |     a0 = 0;
    0x0003c274 jalr t9                       |     t9 ();
                                             | label_1:
    0x0003c278 move a1, s4                   |     a1 = s4;
    0x0003c27c move a0, s3                   |     a0 = s3;
    0x0003c280 jalr t9                       |     t9 ();
    0x0003c284 lw gp, 0x18(sp)               |     gp = *(var_18h);
    0x0003c288 move a1, s4                   |     a1 = s4;
    0x0003c28c lw t9, -0x76d0(gp)            |     t9 = sym.imp.g_string_append;
    0x0003c290 move a0, s2                   |     a0 = s2;
    0x0003c294 jalr t9                       |     t9 ();
    0x0003c298 lw gp, 0x18(sp)               |     gp = *(var_18h);
    0x0003c29c b 0x3c1f0                     |     goto label_0;
                                             | label_2:
    0x0003c2a0 lw t9, -0x7cec(gp)            |     t9 = sym.sql_table_with_storage_name;
    0x0003c2a4 lw a0, 0x24(sp)               |     a0 = *(var_24h);
    0x0003c2a8 move a1, fp                   |     a1 = fp;
    0x0003c2ac bal 0x39fd0                   |     sym_sql_table_with_storage_name ();
    0x0003c2b0 lw gp, 0x18(sp)               |     gp = *(var_18h);
    0x0003c2b4 lw v1, (s2)                   |     v1 = *(s2);
    0x0003c2b8 lw a3, (s3)                   |     a3 = *(s3);
    0x0003c2bc lw a1, -0x7fd8(gp)            |     a1 = *(gp);
    0x0003c2c0 lw t9, -0x772c(gp)            |     t9 = sym.imp.g_string_append_printf
    0x0003c2c4 sw v1, 0x10(sp)               |     *(var_10h) = v1;
    0x0003c2c8 move a2, v0                   |     a2 = v0;
                                             |     /* str.INSERT_INTO__s___s__VALUES___s__ */
    0x0003c2cc addiu a1, a1, 0x67ac          |     a1 += 0x67ac;
    0x0003c2d0 move a0, s6                   |     a0 = s6;
    0x0003c2d4 move s0, v0                   |     s0 = v0;
    0x0003c2d8 jalr t9                       |     t9 ();
    0x0003c2dc lw gp, 0x18(sp)               |     gp = *(var_18h);
    0x0003c2e0 lw t9, -0x74c8(gp)            |     t9 = *((gp - 7474));
    0x0003c2e4 move a0, s0                   |     a0 = s0;
    0x0003c2e8 jalr t9                       |     t9 ();
    0x0003c2ec lw gp, 0x18(sp)               |     gp = *(var_18h);
    0x0003c2f0 addiu a1, zero, 1             |     a1 = 1;
    0x0003c2f4 lw t9, -0x75a8(gp)            |     t9 = sym.imp.g_string_free;
    0x0003c2f8 move a0, s3                   |     a0 = s3;
    0x0003c2fc jalr t9                       |     t9 ();
    0x0003c300 lw gp, 0x18(sp)               |     gp = *(var_18h);
    0x0003c304 move a0, s2                   |     a0 = s2;
    0x0003c308 lw t9, -0x75a8(gp)            |     t9 = sym.imp.g_string_free;
    0x0003c30c addiu a1, zero, 1             |     a1 = 1;
    0x0003c310 jalr t9                       |     t9 ();
    0x0003c314 lw a0, 0x2c(sp)               |     a0 = *(var_2ch);
    0x0003c318 lw v1, (s5)                   |     v1 = *(s5);
    0x0003c31c lw gp, 0x18(sp)               |     gp = *(var_18h);
    0x0003c320 move v0, s6                   |     v0 = s6;
                                             |     if (a0 == v1) {
    0x0003c324 bne a0, v1, 0x3c358           |         
    0x0003c328 lw ra, 0x54(sp)               |         ra = *(var_54h);
    0x0003c32c lw fp, 0x50(sp)               |         fp = *(var_50h);
    0x0003c330 lw s7, 0x4c(sp)               |         s7 = *(var_4ch);
    0x0003c334 lw s6, 0x48(sp)               |         s6 = *(var_48h);
    0x0003c338 lw s5, 0x44(sp)               |         s5 = *(var_44h);
    0x0003c33c lw s4, 0x40(sp)               |         s4 = *(var_40h);
    0x0003c340 lw s3, 0x3c(sp)               |         s3 = *(var_3ch);
    0x0003c344 lw s2, 0x38(sp)               |         s2 = *(var_38h);
    0x0003c348 lw s1, 0x34(sp)               |         s1 = *(var_34h);
    0x0003c34c lw s0, 0x30(sp)               |         s0 = *(var_30h);
    0x0003c350 addiu sp, sp, 0x58            |         
    0x0003c354 jr ra                         |         return v0;
                                             |     }
    0x0003c358 lw t9, -0x7494(gp)            |     t9 = sym.imp.__stack_chk_fail;
    0x0003c35c jalr t9                       |     t9 ();
    0x0003c360 nop                           |     
                                             | }
    ; assembly                                           | /* r2dec pseudo code output */
                                                         | /* /logs/firmware/unblob_extracted/firmware_extract/4325012-58052244.squashfs_v4_le_extract/usr/bin/indexer @ 0x3c068 */
                                                         | #include <stdint.h>
                                                         |  
    ; (fcn) sym.sql_insert_or_ignore_column ()           | void sql_insert_or_ignore_column () {
    0x0003c068 lui gp, 5                                 |     
    0x0003c06c addiu gp, gp, -0x5f68                     |     
    0x0003c070 addu gp, gp, t9                           |     gp += t9;
    0x0003c074 addiu sp, sp, -0x38                       |     
    0x0003c078 lw t9, -0x7cec(gp)                        |     t9 = sym.sql_table_with_storage_name;
    0x0003c07c sw ra, 0x34(sp)                           |     *(var_34h) = ra;
    0x0003c080 sw s3, 0x30(sp)                           |     *(var_30h) = s3;
    0x0003c084 sw s2, 0x2c(sp)                           |     *(var_2ch) = s2;
    0x0003c088 sw s1, 0x28(sp)                           |     *(var_28h) = s1;
    0x0003c08c sw s0, 0x24(sp)                           |     *(var_24h) = s0;
    0x0003c090 sw gp, 0x18(sp)                           |     *(var_18h) = gp;
    0x0003c094 move s3, a2                               |     s3 = a2;
    0x0003c098 move s0, a3                               |     s0 = a3;
    0x0003c09c bal 0x39fd0                               |     sym_sql_table_with_storage_name ();
    0x0003c0a0 lw gp, 0x18(sp)                           |     gp = *(var_18h);
    0x0003c0a4 move a0, s0                               |     a0 = s0;
    0x0003c0a8 lw t9, -0x7c5c(gp)                        |     t9 = sym.sanitize_quote;
    0x0003c0ac move s1, v0                               |     s1 = v0;
    0x0003c0b0 bal 0x3a2f0                               |     sym_sanitize_quote ();
    0x0003c0b4 lw gp, 0x18(sp)                           |     gp = *(var_18h);
    0x0003c0b8 move s2, v0                               |     s2 = v0;
    0x0003c0bc lw a0, -0x7fd8(gp)                        |     a0 = *(gp);
    0x0003c0c0 lw t9, -0x71b4(gp)                        |     t9 = sym.imp.g_string_new;
    0x0003c0c4 addiu a0, a0, 0x403c                      |     a0 += 0x403c;
    0x0003c0c8 jalr t9                                   |     t9 ();
    0x0003c0cc lw gp, 0x18(sp)                           |     gp = *(var_18h);
    0x0003c0d0 lw v1, (s2)                               |     v1 = *(s2);
    0x0003c0d4 move a3, s3                               |     a3 = s3;
    0x0003c0d8 lw a1, -0x7fd8(gp)                        |     a1 = *(gp);
    0x0003c0dc lw t9, -0x772c(gp)                        |     t9 = sym.imp.g_string_append_printf
    0x0003c0e0 move a2, s1                               |     a2 = s1;
    0x0003c0e4 sw v1, 0x10(sp)                           |     *(var_10h) = v1;
    0x0003c0e8 move a0, v0                               |     a0 = v0;
                                                         |     /* str.INSERT_OR_IGNORE_INTO__s___s__VALUES___s__ */
    0x0003c0ec addiu a1, a1, 0x6778                      |     a1 += 0x6778;
    0x0003c0f0 move s0, v0                               |     s0 = v0;
    0x0003c0f4 jalr t9                                   |     t9 ();
    0x0003c0f8 lw gp, 0x18(sp)                           |     gp = *(var_18h);
    0x0003c0fc addiu a1, zero, 1                         |     a1 = 1;
    0x0003c100 lw t9, -0x75a8(gp)                        |     t9 = sym.imp.g_string_free;
    0x0003c104 move a0, s2                               |     a0 = s2;
    0x0003c108 jalr t9                                   |     t9 ();
    0x0003c10c lw gp, 0x18(sp)                           |     gp = *(var_18h);
    0x0003c110 lw t9, -0x74c8(gp)                        |     t9 = *((gp - 7474));
    0x0003c114 move a0, s1                               |     a0 = s1;
    0x0003c118 jalr t9                                   |     t9 ();
    0x0003c11c lw ra, 0x34(sp)                           |     ra = *(var_34h);
    0x0003c120 move v0, s0                               |     v0 = s0;
    0x0003c124 lw s3, 0x30(sp)                           |     s3 = *(var_30h);
    0x0003c128 lw s2, 0x2c(sp)                           |     s2 = *(var_2ch);
    0x0003c12c lw s1, 0x28(sp)                           |     s1 = *(var_28h);
    0x0003c130 lw s0, 0x24(sp)                           |     s0 = *(var_24h);
    0x0003c134 addiu sp, sp, 0x38                        |     
    0x0003c138 jr ra                                     |     return v0;
                                                         | }
    ; assembly                                   | /* r2dec pseudo code output */
                                                 | /* /logs/firmware/unblob_extracted/firmware_extract/4325012-58052244.squashfs_v4_le_extract/usr/bin/indexer @ 0x3b73c */
                                                 | #include <stdint.h>
                                                 |  
    ; (fcn) sym.sql_insert_recording ()          | void sql_insert_recording () {
    0x0003b73c lui gp, 5                         |     
    0x0003b740 addiu gp, gp, -0x563c             |     
    0x0003b744 addu gp, gp, t9                   |     gp += t9;
    0x0003b748 addiu sp, sp, -0x50               |     
    0x0003b74c sw gp, 0x20(sp)                   |     *(var_20h) = gp;
    0x0003b750 sw s7, 0x44(sp)                   |     *(var_44h) = s7;
    0x0003b754 sw s6, 0x40(sp)                   |     *(var_40h) = s6;
    0x0003b758 sw ra, 0x4c(sp)                   |     *(var_4ch) = ra;
    0x0003b75c sw fp, 0x48(sp)                   |     *(var_48h) = fp;
    0x0003b760 sw s5, 0x3c(sp)                   |     *(var_3ch) = s5;
    0x0003b764 sw s4, 0x38(sp)                   |     *(var_38h) = s4;
    0x0003b768 sw s3, 0x34(sp)                   |     *(var_34h) = s3;
    0x0003b76c sw s2, 0x30(sp)                   |     *(var_30h) = s2;
    0x0003b770 sw s1, 0x2c(sp)                   |     *(var_2ch) = s1;
    0x0003b774 sw s0, 0x28(sp)                   |     *(var_28h) = s0;
    0x0003b778 lw s6, 0x78(sp)                   |     s6 = *(arg_78h);
    0x0003b77c lw s7, 0x7c(sp)                   |     s7 = *(arg_7ch);
                                                 |     if (a0 != 0) {
    0x0003b780 beqz a0, 0x3bc30                  |         
    0x0003b784 move s3, a1                       |         s3 = a1;
                                                 |         if (a1 == 0) {
    0x0003b788 beqz a1, 0x3bc58                  |             goto label_0;
                                                 |         }
    0x0003b78c lw s0, -0x7fd8(gp)                |         s0 = *(gp);
    0x0003b790 lw t9, -0x71b4(gp)                |         t9 = sym.imp.g_string_new;
    0x0003b794 move s2, a0                       |         s2 = a0;
    0x0003b798 addiu a0, s0, 0x403c              |         a0 = s0 + 0x403c;
    0x0003b79c move s5, a2                       |         s5 = a2;
    0x0003b7a0 move fp, a3                       |         fp = a3;
    0x0003b7a4 jalr t9                           |         t9 ();
    0x0003b7a8 lw gp, 0x20(sp)                   |         gp = *(var_20h);
    0x0003b7ac addiu a0, s0, 0x403c              |         a0 = s0 + 0x403c;
    0x0003b7b0 lw t9, -0x71b4(gp)                |         t9 = sym.imp.g_string_new;
    0x0003b7b4 move s1, v0                       |         s1 = v0;
    0x0003b7b8 jalr t9                           |         t9 ();
    0x0003b7bc lw gp, 0x20(sp)                   |         gp = *(var_20h);
    0x0003b7c0 addiu a0, s0, 0x403c              |         a0 = s0 + 0x403c;
    0x0003b7c4 lw t9, -0x71b4(gp)                |         t9 = sym.imp.g_string_new;
    0x0003b7c8 move s0, v0                       |         s0 = v0;
    0x0003b7cc jalr t9                           |         t9 ();
    0x0003b7d0 move s4, v0                       |         s4 = v0;
    0x0003b7d4 lw gp, 0x20(sp)                   |         gp = *(var_20h);
                                                 |         if (s5 != 0) {
    0x0003b7d8 beqz s5, 0x3b80c                  |             
    0x0003b7dc lw a1, -0x7fd8(gp)                |             a1 = *(gp);
    0x0003b7e0 lw t9, -0x76d0(gp)                |             t9 = sym.imp.g_string_append;
                                                 |             /* str.__path */
    0x0003b7e4 addiu a1, a1, 0x6620              |             a1 += 0x6620;
    0x0003b7e8 move a0, s1                       |             a0 = s1;
    0x0003b7ec jalr t9                           |             t9 ();
    0x0003b7f0 lw gp, 0x20(sp)                   |             gp = *(var_20h);
    0x0003b7f4 move a1, s5                       |             a1 = s5;
    0x0003b7f8 lw t9, -0x7a8c(gp)                |             t9 = *(gp);
                                                 |             /* fcn.0003a9a0 */
    0x0003b7fc addiu t9, t9, -0x5660             |             t9 += -0x5660;
    0x0003b800 move a0, s0                       |             a0 = s0;
    0x0003b804 bal 0x3a9a0                       |             fcn_0003a9a0 ();
    0x0003b808 lw gp, 0x20(sp)                   |             gp = *(var_20h);
                                                 |         }
    0x0003b80c lw a1, -0x7fd8(gp)                |         a1 = *(gp);
                                                 |         if (fp != 0) {
    0x0003b810 beqz fp, 0x3b840                  |             
    0x0003b814 lw t9, -0x76d0(gp)                |             t9 = sym.imp.g_string_append;
                                                 |             /* esilref: ', starttime' */
    0x0003b818 addiu a1, a1, 0xf8c               |             a1 += 0xf8c;
    0x0003b81c move a0, s1                       |             a0 = s1;
    0x0003b820 jalr t9                           |             t9 ();
    0x0003b824 lw gp, 0x20(sp)                   |             gp = *(var_20h);
    0x0003b828 move a1, fp                       |             a1 = fp;
    0x0003b82c lw t9, -0x7a8c(gp)                |             t9 = *(gp);
                                                 |             /* fcn.0003a9a0 */
    0x0003b830 addiu t9, t9, -0x5660             |             t9 += -0x5660;
    0x0003b834 move a0, s0                       |             a0 = s0;
    0x0003b838 bal 0x3a9a0                       |             fcn_0003a9a0 ();
    0x0003b83c lw gp, 0x20(sp)                   |             gp = *(var_20h);
                                                 |         }
    0x0003b840 lw v0, 0x60(sp)                   |         v0 = *(arg_60h);
    0x0003b844 lw a1, -0x7fd8(gp)                |         a1 = *(gp);
                                                 |         if (v0 != 0) {
    0x0003b848 beqz v0, 0x3b878                  |             
    0x0003b84c lw t9, -0x76d0(gp)                |             t9 = sym.imp.g_string_append;
                                                 |             /* str.__stoptime */
    0x0003b850 addiu a1, a1, 0x6628              |             a1 += 0x6628;
    0x0003b854 move a0, s1                       |             a0 = s1;
    0x0003b858 jalr t9                           |             t9 ();
    0x0003b85c lw gp, 0x20(sp)                   |             gp = *(var_20h);
    0x0003b860 lw a1, 0x60(sp)                   |             a1 = *(arg_60h);
    0x0003b864 lw t9, -0x7a8c(gp)                |             t9 = *(gp);
                                                 |             /* fcn.0003a9a0 */
    0x0003b868 addiu t9, t9, -0x5660             |             t9 += -0x5660;
    0x0003b86c move a0, s0                       |             a0 = s0;
    0x0003b870 bal 0x3a9a0                       |             fcn_0003a9a0 ();
    0x0003b874 lw gp, 0x20(sp)                   |             gp = *(var_20h);
                                                 |         }
    0x0003b878 lw v0, 0x64(sp)                   |         v0 = *(arg_64h);
    0x0003b87c lw a1, -0x7fd8(gp)                |         a1 = *(gp);
                                                 |         if (v0 != 0) {
    0x0003b880 beqz v0, 0x3b8b0                  |             
    0x0003b884 lw t9, -0x76d0(gp)                |             t9 = sym.imp.g_string_append;
                                                 |             /* esilref: ', audio_id' */
    0x0003b888 addiu a1, a1, 0x1cb8              |             a1 += 0x1cb8;
    0x0003b88c move a0, s1                       |             a0 = s1;
    0x0003b890 jalr t9                           |             t9 ();
    0x0003b894 lw gp, 0x20(sp)                   |             gp = *(var_20h);
    0x0003b898 lw a1, 0x64(sp)                   |             a1 = *(arg_64h);
    0x0003b89c lw t9, -0x7a8c(gp)                |             t9 = *(gp);
                                                 |             /* fcn.0003a9a0 */
    0x0003b8a0 addiu t9, t9, -0x5660             |             t9 += -0x5660;
    0x0003b8a4 move a0, s0                       |             a0 = s0;
    0x0003b8a8 bal 0x3a9a0                       |             fcn_0003a9a0 ();
    0x0003b8ac lw gp, 0x20(sp)                   |             gp = *(var_20h);
                                                 |         }
    0x0003b8b0 lw v0, 0x68(sp)                   |         v0 = *(arg_68h);
    0x0003b8b4 lw a1, -0x7fd8(gp)                |         a1 = *(gp);
                                                 |         if (v0 != 0) {
    0x0003b8b8 beqz v0, 0x3b8e8                  |             
    0x0003b8bc lw t9, -0x76d0(gp)                |             t9 = sym.imp.g_string_append;
                                                 |             /* str.__video_id */
    0x0003b8c0 addiu a1, a1, 0x6634              |             a1 += 0x6634;
    0x0003b8c4 move a0, s1                       |             a0 = s1;
    0x0003b8c8 jalr t9                           |             t9 ();
    0x0003b8cc lw gp, 0x20(sp)                   |             gp = *(var_20h);
    0x0003b8d0 lw a1, 0x68(sp)                   |             a1 = *(arg_68h);
    0x0003b8d4 lw t9, -0x7a8c(gp)                |             t9 = *(gp);
                                                 |             /* fcn.0003a9a0 */
    0x0003b8d8 addiu t9, t9, -0x5660             |             t9 += -0x5660;
    0x0003b8dc move a0, s0                       |             a0 = s0;
    0x0003b8e0 bal 0x3a9a0                       |             fcn_0003a9a0 ();
    0x0003b8e4 lw gp, 0x20(sp)                   |             gp = *(var_20h);
                                                 |         }
    0x0003b8e8 lw v0, 0x6c(sp)                   |         v0 = *(arg_6ch);
    0x0003b8ec lw a1, -0x7fd8(gp)                |         a1 = *(gp);
                                                 |         if (v0 != 0) {
    0x0003b8f0 beqz v0, 0x3b920                  |             
    0x0003b8f4 lw t9, -0x76d0(gp)                |             t9 = sym.imp.g_string_append;
                                                 |             /* str.__metadata_id */
    0x0003b8f8 addiu a1, a1, 0x6640              |             a1 += 0x6640;
    0x0003b8fc move a0, s1                       |             a0 = s1;
    0x0003b900 jalr t9                           |             t9 ();
    0x0003b904 lw gp, 0x20(sp)                   |             gp = *(var_20h);
    0x0003b908 lw a1, 0x6c(sp)                   |             a1 = *(arg_6ch);
    0x0003b90c lw t9, -0x7a8c(gp)                |             t9 = *(gp);
                                                 |             /* fcn.0003a9a0 */
    0x0003b910 addiu t9, t9, -0x5660             |             t9 += -0x5660;
    0x0003b914 move a0, s0                       |             a0 = s0;
    0x0003b918 bal 0x3a9a0                       |             fcn_0003a9a0 ();
    0x0003b91c lw gp, 0x20(sp)                   |             gp = *(var_20h);
                                                 |         }
    0x0003b920 lw a1, -0x7fd8(gp)                |         a1 = *(gp);
                                                 |         if (s7 != 0) {
    0x0003b924 beqz s7, 0x3b9b4                  |             
    0x0003b928 lw t9, -0x76d0(gp)                |             t9 = sym.imp.g_string_append;
                                                 |             /* str.__recording_action_id */
    0x0003b92c addiu a1, a1, 0x6650              |             a1 += 0x6650;
    0x0003b930 move a0, s1                       |             a0 = s1;
    0x0003b934 jalr t9                           |             t9 ();
    0x0003b938 lw gp, 0x20(sp)                   |             gp = *(var_20h);
    0x0003b93c addiu v0, zero, 1                 |             v0 = 1;
    0x0003b940 sw v0, 0x1c(sp)                   |             *(var_1ch) = v0;
    0x0003b944 lw v0, -0x7fd8(gp)                |             v0 = *(gp);
    0x0003b948 lw a3, -0x7fd8(gp)                |             a3 = *(gp);
    0x0003b94c lw a2, -0x7f50(gp)                |             a2 = *((gp - 8148));
    0x0003b950 lw a1, -0x7fd8(gp)                |             a1 = *(gp);
    0x0003b954 addiu v0, v0, 0xf80               |             v0 += 0xf80;
    0x0003b958 lw t9, -0x7a74(gp)                |             t9 = sym.sql_select_column_from_table_full;
                                                 |             /* str.action_name */
    0x0003b95c addiu a3, a3, 0xcfc               |             a3 += 0xcfc;
                                                 |             /* esilref: 'id' */
    0x0003b960 addiu a2, a2, -0x6dbc             |             a2 += -0x6dbc;
                                                 |             /* str.recording_actions */
    0x0003b964 addiu a1, a1, 0xbbc               |             a1 += aav.0x00000bbc;
    0x0003b968 move a0, s2                       |             a0 = s2;
    0x0003b96c sw s7, 0x10(sp)                   |             *(var_10h) = s7;
    0x0003b970 sw zero, 0x18(sp)                 |             *(var_60h) = 0;
    0x0003b974 sw v0, 0x14(sp)                   |             *(var_5ch) = v0;
    0x0003b978 bal 0x3d76c                       |             sym_sql_select_column_from_table_full ();
    0x0003b97c lw gp, 0x20(sp)                   |             gp = *(var_20h);
    0x0003b980 lw a2, (v0)                       |             a2 = *(v0);
    0x0003b984 move a0, s0                       |             a0 = s0;
    0x0003b988 lw a1, -0x7fd8(gp)                |             a1 = *(gp);
    0x0003b98c lw t9, -0x772c(gp)                |             t9 = sym.imp.g_string_append_printf
                                                 |             /* str.____s_ */
    0x0003b990 addiu a1, a1, 0x5f10              |             a1 += 0x5f10;
    0x0003b994 move s7, v0                       |             s7 = v0;
    0x0003b998 jalr t9                           |             t9 ();
    0x0003b99c lw gp, 0x20(sp)                   |             gp = *(var_20h);
    0x0003b9a0 addiu a1, zero, 1                 |             a1 = 1;
    0x0003b9a4 lw t9, -0x75a8(gp)                |             t9 = sym.imp.g_string_free;
    0x0003b9a8 move a0, s7                       |             a0 = s7;
    0x0003b9ac jalr t9                           |             t9 ();
    0x0003b9b0 lw gp, 0x20(sp)                   |             gp = *(var_20h);
                                                 |         }
    0x0003b9b4 lw a1, -0x7fd8(gp)                |         a1 = *(gp);
                                                 |         if (s6 != 0) {
    0x0003b9b8 beqz s6, 0x3ba48                  |             
    0x0003b9bc lw t9, -0x76d0(gp)                |             t9 = sym.imp.g_string_append;
                                                 |             /* str.__recording_event_id */
    0x0003b9c0 addiu a1, a1, 0x6668              |             a1 += 0x6668;
    0x0003b9c4 move a0, s1                       |             a0 = s1;
    0x0003b9c8 jalr t9                           |             t9 ();
    0x0003b9cc lw gp, 0x20(sp)                   |             gp = *(var_20h);
    0x0003b9d0 addiu v0, zero, 1                 |             v0 = 1;
    0x0003b9d4 sw v0, 0x1c(sp)                   |             *(var_1ch) = v0;
    0x0003b9d8 lw v0, -0x7fd8(gp)                |             v0 = *(gp);
    0x0003b9dc lw a3, -0x7fd8(gp)                |             a3 = *(gp);
    0x0003b9e0 lw a2, -0x7f50(gp)                |             a2 = *((gp - 8148));
    0x0003b9e4 lw a1, -0x7fd8(gp)                |             a1 = *(gp);
    0x0003b9e8 addiu v0, v0, 0xf80               |             v0 += 0xf80;
    0x0003b9ec lw t9, -0x7a74(gp)                |             t9 = sym.sql_select_column_from_table_full;
                                                 |             /* str.event_name */
    0x0003b9f0 addiu a3, a3, 0xcf0               |             a3 += 0xcf0;
                                                 |             /* esilref: 'id' */
    0x0003b9f4 addiu a2, a2, -0x6dbc             |             a2 += -0x6dbc;
                                                 |             /* str.recording_events */
    0x0003b9f8 addiu a1, a1, 0xc30               |             a1 += 0xc30;
    0x0003b9fc move a0, s2                       |             a0 = s2;
    0x0003ba00 sw s6, 0x10(sp)                   |             *(var_10h) = s6;
    0x0003ba04 sw zero, 0x18(sp)                 |             *(var_60h) = 0;
    0x0003ba08 sw v0, 0x14(sp)                   |             *(var_5ch) = v0;
    0x0003ba0c bal 0x3d76c                       |             sym_sql_select_column_from_table_full ();
    0x0003ba10 lw gp, 0x20(sp)                   |             gp = *(var_20h);
    0x0003ba14 lw a2, (v0)                       |             a2 = *(v0);
    0x0003ba18 move a0, s0                       |             a0 = s0;
    0x0003ba1c lw a1, -0x7fd8(gp)                |             a1 = *(gp);
    0x0003ba20 lw t9, -0x772c(gp)                |             t9 = sym.imp.g_string_append_printf
                                                 |             /* str.____s_ */
    0x0003ba24 addiu a1, a1, 0x5f10              |             a1 += 0x5f10;
    0x0003ba28 move s6, v0                       |             s6 = v0;
    0x0003ba2c jalr t9                           |             t9 ();
    0x0003ba30 lw gp, 0x20(sp)                   |             gp = *(var_20h);
    0x0003ba34 addiu a1, zero, 1                 |             a1 = 1;
    0x0003ba38 lw t9, -0x75a8(gp)                |             t9 = sym.imp.g_string_free;
    0x0003ba3c move a0, s6                       |             a0 = s6;
    0x0003ba40 jalr t9                           |             t9 ();
    0x0003ba44 lw gp, 0x20(sp)                   |             gp = *(var_20h);
                                                 |         }
    0x0003ba48 lw v0, 0x74(sp)                   |         v0 = *(arg_74h);
    0x0003ba4c lw a1, -0x7fd8(gp)                |         a1 = *(gp);
                                                 |         if (v0 != 0) {
    0x0003ba50 beqz v0, 0x3bae4                  |             
    0x0003ba54 lw t9, -0x76d0(gp)                |             t9 = sym.imp.g_string_append;
                                                 |             /* str.__recording_source_id */
    0x0003ba58 addiu a1, a1, 0x6680              |             a1 += 0x6680;
    0x0003ba5c move a0, s1                       |             a0 = s1;
    0x0003ba60 jalr t9                           |             t9 ();
    0x0003ba64 lw gp, 0x20(sp)                   |             gp = *(var_20h);
    0x0003ba68 addiu v0, zero, 1                 |             v0 = 1;
    0x0003ba6c sw v0, 0x1c(sp)                   |             *(var_1ch) = v0;
    0x0003ba70 lw v0, -0x7fd8(gp)                |             v0 = *(gp);
    0x0003ba74 lw a3, -0x7fd8(gp)                |             a3 = *(gp);
    0x0003ba78 addiu v0, v0, 0xf80               |             v0 += 0xf80;
    0x0003ba7c lw a2, -0x7f50(gp)                |             a2 = *((gp - 8148));
    0x0003ba80 lw a1, -0x7fd8(gp)                |             a1 = *(gp);
    0x0003ba84 sw v0, 0x14(sp)                   |             *(var_5ch) = v0;
    0x0003ba88 lw v0, 0x74(sp)                   |             v0 = *(arg_74h);
    0x0003ba8c lw t9, -0x7a74(gp)                |             t9 = sym.sql_select_column_from_table_full;
                                                 |             /* str.source_name */
    0x0003ba90 addiu a3, a3, 0xd08               |             a3 += 0xd08;
                                                 |             /* esilref: 'id' */
    0x0003ba94 addiu a2, a2, -0x6dbc             |             a2 += -0x6dbc;
                                                 |             /* str.recording_sources */
    0x0003ba98 addiu a1, a1, 0xc08               |             a1 += 0xc08;
    0x0003ba9c move a0, s2                       |             a0 = s2;
    0x0003baa0 sw zero, 0x18(sp)                 |             *(var_60h) = 0;
    0x0003baa4 sw v0, 0x10(sp)                   |             *(var_10h) = v0;
    0x0003baa8 bal 0x3d76c                       |             sym_sql_select_column_from_table_full ();
    0x0003baac lw gp, 0x20(sp)                   |             gp = *(var_20h);
    0x0003bab0 lw a2, (v0)                       |             a2 = *(v0);
    0x0003bab4 move a0, s0                       |             a0 = s0;
    0x0003bab8 lw a1, -0x7fd8(gp)                |             a1 = *(gp);
    0x0003babc lw t9, -0x772c(gp)                |             t9 = sym.imp.g_string_append_printf
                                                 |             /* str.____s_ */
    0x0003bac0 addiu a1, a1, 0x5f10              |             a1 += 0x5f10;
    0x0003bac4 move s5, v0                       |             s5 = v0;
    0x0003bac8 jalr t9                           |             t9 ();
    0x0003bacc lw gp, 0x20(sp)                   |             gp = *(var_20h);
    0x0003bad0 addiu a1, zero, 1                 |             a1 = 1;
    0x0003bad4 lw t9, -0x75a8(gp)                |             t9 = sym.imp.g_string_free;
    0x0003bad8 move a0, s5                       |             a0 = s5;
    0x0003badc jalr t9                           |             t9 ();
    0x0003bae0 lw gp, 0x20(sp)                   |             gp = *(var_20h);
                                                 |         }
    0x0003bae4 lw v0, 0x70(sp)                   |         v0 = *(arg_70h);
    0x0003bae8 lw t9, -0x76d0(gp)                |         t9 = sym.imp.g_string_append;
                                                 |         if (v0 != 0) {
    0x0003baec beqz v0, 0x3bb80                  |             
    0x0003baf0 lw a1, -0x7fd8(gp)                |             a1 = *(gp);
                                                 |             /* str.__recording_type_id */
    0x0003baf4 addiu a1, a1, 0x6698              |             a1 += 0x6698;
    0x0003baf8 move a0, s1                       |             a0 = s1;
    0x0003bafc jalr t9                           |             t9 ();
    0x0003bb00 lw gp, 0x20(sp)                   |             gp = *(var_20h);
    0x0003bb04 addiu v0, zero, 1                 |             v0 = 1;
    0x0003bb08 sw v0, 0x1c(sp)                   |             *(var_1ch) = v0;
    0x0003bb0c lw v0, -0x7fd8(gp)                |             v0 = *(gp);
    0x0003bb10 lw a3, -0x7fd8(gp)                |             a3 = *(gp);
    0x0003bb14 addiu v0, v0, 0xf80               |             v0 += 0xf80;
    0x0003bb18 lw a2, -0x7f50(gp)                |             a2 = *((gp - 8148));
    0x0003bb1c lw a1, -0x7fd8(gp)                |             a1 = *(gp);
    0x0003bb20 sw v0, 0x14(sp)                   |             *(var_5ch) = v0;
    0x0003bb24 lw v0, 0x70(sp)                   |             v0 = *(arg_70h);
    0x0003bb28 lw t9, -0x7a74(gp)                |             t9 = sym.sql_select_column_from_table_full;
                                                 |             /* str.recording_type */
    0x0003bb2c addiu a3, a3, 0xce0               |             a3 += aav.0x00000ce0;
                                                 |             /* esilref: 'id' */
    0x0003bb30 addiu a2, a2, -0x6dbc             |             a2 += -0x6dbc;
                                                 |             /* str.recording_types */
    0x0003bb34 addiu a1, a1, 0xbe4               |             a1 += 0xbe4;
    0x0003bb38 move a0, s2                       |             a0 = s2;
    0x0003bb3c sw zero, 0x18(sp)                 |             *(var_60h) = 0;
    0x0003bb40 sw v0, 0x10(sp)                   |             *(var_10h) = v0;
    0x0003bb44 bal 0x3d76c                       |             sym_sql_select_column_from_table_full ();
    0x0003bb48 lw gp, 0x20(sp)                   |             gp = *(var_20h);
    0x0003bb4c lw a2, (v0)                       |             a2 = *(v0);
    0x0003bb50 move a0, s0                       |             a0 = s0;
    0x0003bb54 lw a1, -0x7fd8(gp)                |             a1 = *(gp);
    0x0003bb58 lw t9, -0x772c(gp)                |             t9 = sym.imp.g_string_append_printf
                                                 |             /* str.____s_ */
    0x0003bb5c addiu a1, a1, 0x5f10              |             a1 += 0x5f10;
    0x0003bb60 move s5, v0                       |             s5 = v0;
    0x0003bb64 jalr t9                           |             t9 ();
    0x0003bb68 lw gp, 0x20(sp)                   |             gp = *(var_20h);
    0x0003bb6c addiu a1, zero, 1                 |             a1 = 1;
    0x0003bb70 lw t9, -0x75a8(gp)                |             t9 = sym.imp.g_string_free;
    0x0003bb74 move a0, s5                       |             a0 = s5;
    0x0003bb78 jalr t9                           |             t9 ();
    0x0003bb7c lw gp, 0x20(sp)                   |             gp = *(var_20h);
                                                 |         }
    0x0003bb80 lw t9, -0x7c5c(gp)                |         t9 = sym.sanitize_quote;
    0x0003bb84 move a0, s3                       |         a0 = s3;
    0x0003bb88 bal 0x3a2f0                       |         sym_sanitize_quote ();
    0x0003bb8c lw v1, (s0)                       |         v1 = *(s0);
    0x0003bb90 lw gp, 0x20(sp)                   |         gp = *(var_20h);
    0x0003bb94 lw a3, (s1)                       |         a3 = *(s1);
    0x0003bb98 sw v1, 0x14(sp)                   |         *(var_5ch) = v1;
    0x0003bb9c move s3, v0                       |         s3 = v0;
    0x0003bba0 lw a1, -0x7fd8(gp)                |         a1 = *(gp);
    0x0003bba4 lw v0, (v0)                       |         v0 = *(v0);
    0x0003bba8 lw t9, -0x772c(gp)                |         t9 = sym.imp.g_string_append_printf
    0x0003bbac move a2, s2                       |         a2 = s2;
    0x0003bbb0 move a0, s4                       |         a0 = s4;
    0x0003bbb4 sw v0, 0x10(sp)                   |         *(var_10h) = v0;
                                                 |         /* str.INSERT_INTO__s.recordings__filename_s__VALUES___s__s__ */
    0x0003bbb8 addiu a1, a1, 0x66ac              |         a1 += 0x66ac;
    0x0003bbbc jalr t9                           |         t9 ();
    0x0003bbc0 lw gp, 0x20(sp)                   |         gp = *(var_20h);
    0x0003bbc4 move a0, s3                       |         a0 = s3;
    0x0003bbc8 lw t9, -0x75a8(gp)                |         t9 = sym.imp.g_string_free;
    0x0003bbcc addiu a1, zero, 1                 |         a1 = 1;
    0x0003bbd0 jalr t9                           |         t9 ();
    0x0003bbd4 lw gp, 0x20(sp)                   |         gp = *(var_20h);
    0x0003bbd8 move a0, s1                       |         a0 = s1;
    0x0003bbdc lw t9, -0x75a8(gp)                |         t9 = sym.imp.g_string_free;
    0x0003bbe0 addiu a1, zero, 1                 |         a1 = 1;
    0x0003bbe4 jalr t9                           |         t9 ();
    0x0003bbe8 lw gp, 0x20(sp)                   |         gp = *(var_20h);
    0x0003bbec move a0, s0                       |         a0 = s0;
    0x0003bbf0 lw t9, -0x75a8(gp)                |         t9 = sym.imp.g_string_free;
    0x0003bbf4 addiu a1, zero, 1                 |         a1 = 1;
    0x0003bbf8 jalr t9                           |         t9 ();
    0x0003bbfc lw ra, 0x4c(sp)                   |         ra = *(var_4ch);
    0x0003bc00 move v0, s4                       |         v0 = s4;
    0x0003bc04 lw fp, 0x48(sp)                   |         fp = *(var_48h);
    0x0003bc08 lw s7, 0x44(sp)                   |         s7 = *(var_44h);
    0x0003bc0c lw s6, 0x40(sp)                   |         s6 = *(var_40h);
    0x0003bc10 lw s5, 0x3c(sp)                   |         s5 = *(var_3ch);
    0x0003bc14 lw s4, 0x38(sp)                   |         s4 = *(var_38h);
    0x0003bc18 lw s3, 0x34(sp)                   |         s3 = *(var_34h);
    0x0003bc1c lw s2, 0x30(sp)                   |         s2 = *(var_30h);
    0x0003bc20 lw s1, 0x2c(sp)                   |         s1 = *(var_2ch);
    0x0003bc24 lw s0, 0x28(sp)                   |         s0 = *(var_28h);
    0x0003bc28 addiu sp, sp, 0x50                |         
    0x0003bc2c jr ra                             |         return v0;
                                                 |     }
    0x0003bc30 lw v0, -0x7fd8(gp)                |     v0 = *(gp);
    0x0003bc34 lw a3, -0x7fd8(gp)                |     a3 = *(gp);
    0x0003bc38 lw a1, -0x7fd8(gp)                |     a1 = *(gp);
                                                 |     /* str.storage_id */
    0x0003bc3c addiu v0, v0, -0x3264             |     v0 += -0x3264;
    0x0003bc40 lw t9, -0x76c0(gp)                |     t9 = sym.imp.g_assertion_message_expr;
    0x0003bc44 sw v0, 0x10(sp)                   |     *(var_10h) = v0;
                                                 |     /* str.sql_insert_recording */
    0x0003bc48 addiu a3, a3, 0x69bc              |     a3 += 0x69bc;
    0x0003bc4c addiu a2, zero, 0x161             |     a2 = 0x161;
                                                 |     /* str.sql_create.c */
    0x0003bc50 addiu a1, a1, 0x6130              |     a1 += 0x6130;
    0x0003bc54 jalr t9                           |     t9 ();
                                                 | label_0:
    0x0003bc58 lw v0, -0x7fd8(gp)                |     v0 = *(gp);
    0x0003bc5c lw a3, -0x7fd8(gp)                |     a3 = *(gp);
    0x0003bc60 lw a1, -0x7fd8(gp)                |     a1 = *(gp);
                                                 |     /* esilref: 'recording_id' */
    0x0003bc64 addiu v0, v0, 0x78c8              |     v0 += 0x78c8;
    0x0003bc68 lw t9, -0x76c0(gp)                |     t9 = sym.imp.g_assertion_message_expr;
    0x0003bc6c sw v0, 0x10(sp)                   |     *(var_10h) = v0;
                                                 |     /* str.sql_insert_recording */
    0x0003bc70 addiu a3, a3, 0x69bc              |     a3 += 0x69bc;
    0x0003bc74 addiu a2, zero, 0x162             |     a2 = 0x162;
                                                 |     /* str.sql_create.c */
    0x0003bc78 addiu a1, a1, 0x6130              |     a1 += 0x6130;
    0x0003bc7c move a0, zero                     |     a0 = 0;
    0x0003bc80 jalr t9                           |     return t9 ();
                                                 | }
    ; assembly                                                       | /* r2dec pseudo code output */
                                                                     | /* /logs/firmware/unblob_extracted/firmware_extract/4325012-58052244.squashfs_v4_le_extract/usr/bin/indexer @ 0x3ceb4 */
                                                                     | #include <stdint.h>
                                                                     |  
    ; (fcn) sym.sql_insert_recording_into_recording_group ()         | void sql_insert_recording_into_recording_group () {
    0x0003ceb4 lui gp, 5                                             |     
    0x0003ceb8 addiu gp, gp, -0x6db4                                 |     
    0x0003cebc addu gp, gp, t9                                       |     gp += t9;
    0x0003cec0 addiu sp, sp, -0x40                                   |     
    0x0003cec4 lw t9, -0x71b4(gp)                                    |     t9 = sym.imp.g_string_new;
    0x0003cec8 sw s1, 0x2c(sp)                                       |     *(var_2ch) = s1;
    0x0003cecc move s1, a0                                           |     s1 = a0;
    0x0003ced0 lw a0, -0x7fd8(gp)                                    |     a0 = *(gp);
    0x0003ced4 sw ra, 0x3c(sp)                                       |     *(var_3ch) = ra;
    0x0003ced8 sw s4, 0x38(sp)                                       |     *(var_38h) = s4;
    0x0003cedc sw s3, 0x34(sp)                                       |     *(var_34h) = s3;
    0x0003cee0 sw s2, 0x30(sp)                                       |     *(var_30h) = s2;
    0x0003cee4 sw s0, 0x28(sp)                                       |     *(var_28h) = s0;
    0x0003cee8 sw gp, 0x20(sp)                                       |     *(var_20h) = gp;
    0x0003ceec addiu a0, a0, 0x403c                                  |     a0 += 0x403c;
    0x0003cef0 move s4, a2                                           |     s4 = a2;
    0x0003cef4 move s3, a1                                           |     s3 = a1;
    0x0003cef8 jalr t9                                               |     t9 ();
    0x0003cefc lw gp, 0x20(sp)                                       |     gp = *(var_20h);
    0x0003cf00 move a0, s1                                           |     a0 = s1;
    0x0003cf04 move s0, v0                                           |     s0 = v0;
    0x0003cf08 lw a1, -0x7fd8(gp)                                    |     a1 = *(gp);
    0x0003cf0c lw t9, -0x7cec(gp)                                    |     t9 = sym.sql_table_with_storage_name;
                                                                     |     /* str.recording_groups */
    0x0003cf10 addiu a1, a1, 0xa24                                   |     a1 += 0xa24;
    0x0003cf14 bal 0x39fd0                                           |     sym_sql_table_with_storage_name ();
    0x0003cf18 lw gp, 0x20(sp)                                       |     gp = *(var_20h);
    0x0003cf1c move a0, s1                                           |     a0 = s1;
    0x0003cf20 move s2, v0                                           |     s2 = v0;
    0x0003cf24 lw a1, -0x7fd8(gp)                                    |     a1 = *(gp);
    0x0003cf28 lw t9, -0x7cec(gp)                                    |     t9 = sym.sql_table_with_storage_name;
                                                                     |     /* esilref: 'recordings' */
    0x0003cf2c addiu a1, a1, -0x21e8                                 |     a1 += -0x21e8;
    0x0003cf30 bal 0x39fd0                                           |     sym_sql_table_with_storage_name ();
    0x0003cf34 lw gp, 0x20(sp)                                       |     gp = *(var_20h);
    0x0003cf38 move a2, s2                                           |     a2 = s2;
    0x0003cf3c sw v0, 0x18(sp)                                       |     *(var_18h) = v0;
    0x0003cf40 lw v1, -0x7fd8(gp)                                    |     v1 = *(gp);
    0x0003cf44 lw a3, -0x7fd8(gp)                                    |     a3 = *(gp);
    0x0003cf48 lw a1, -0x7fd8(gp)                                    |     a1 = *(gp);
                                                                     |     /* esilref: 'recording_id' */
    0x0003cf4c addiu v1, v1, 0x78c8                                  |     v1 += 0x78c8;
    0x0003cf50 lw t9, -0x772c(gp)                                    |     t9 = sym.imp.g_string_append_printf
    0x0003cf54 sw v1, 0x10(sp)                                       |     *(var_10h) = v1;
                                                                     |     /* esilref: 'recording_group_id' */
    0x0003cf58 addiu a3, a3, 0x80c                                   |     a3 += 0x80c;
                                                                     |     /* str.INSERT_INTO__s__s__s__VALUES__s___SELECT_id_FROM__s_WHERE_filename_s___ */
    0x0003cf5c addiu a1, a1, 0x6908                                  |     a1 += 0x6908;
    0x0003cf60 move a0, s0                                           |     a0 = s0;
    0x0003cf64 sw s4, 0x1c(sp)                                       |     *(var_1ch) = s4;
    0x0003cf68 sw s3, 0x14(sp)                                       |     *(var_14h) = s3;
    0x0003cf6c move s1, v0                                           |     s1 = v0;
    0x0003cf70 jalr t9                                               |     t9 ();
    0x0003cf74 lw gp, 0x20(sp)                                       |     gp = *(var_20h);
    0x0003cf78 lw t9, -0x74c8(gp)                                    |     t9 = *((gp - 7474));
    0x0003cf7c move a0, s2                                           |     a0 = s2;
    0x0003cf80 jalr t9                                               |     t9 ();
    0x0003cf84 lw gp, 0x20(sp)                                       |     gp = *(var_20h);
    0x0003cf88 lw t9, -0x74c8(gp)                                    |     t9 = *((gp - 7474));
    0x0003cf8c move a0, s1                                           |     a0 = s1;
    0x0003cf90 jalr t9                                               |     t9 ();
    0x0003cf94 lw ra, 0x3c(sp)                                       |     ra = *(var_3ch);
    0x0003cf98 move v0, s0                                           |     v0 = s0;
    0x0003cf9c lw s4, 0x38(sp)                                       |     s4 = *(var_38h);
    0x0003cfa0 lw s3, 0x34(sp)                                       |     s3 = *(var_34h);
    0x0003cfa4 lw s2, 0x30(sp)                                       |     s2 = *(var_30h);
    0x0003cfa8 lw s1, 0x2c(sp)                                       |     s1 = *(var_2ch);
    0x0003cfac lw s0, 0x28(sp)                                       |     s0 = *(var_28h);
    0x0003cfb0 addiu sp, sp, 0x40                                    |     
    0x0003cfb4 jr ra                                                 |     return v0;
                                                                     | }
    ; assembly                                                       | /* r2dec pseudo code output */
                                                                     | /* /logs/firmware/unblob_extracted/firmware_extract/4325012-58052244.squashfs_v4_le_extract/usr/bin/indexer @ 0x3ceb4 */
                                                                     | #include <stdint.h>
                                                                     |  
    ; (fcn) sym.sql_insert_recording_into_recording_group ()         | void sql_insert_recording_into_recording_group () {
    0x0003ceb4 lui gp, 5                                             |     
    0x0003ceb8 addiu gp, gp, -0x6db4                                 |     
    0x0003cebc addu gp, gp, t9                                       |     gp += t9;
    0x0003cec0 addiu sp, sp, -0x40                                   |     
    0x0003cec4 lw t9, -0x71b4(gp)                                    |     t9 = sym.imp.g_string_new;
    0x0003cec8 sw s1, 0x2c(sp)                                       |     *(var_2ch) = s1;
    0x0003cecc move s1, a0                                           |     s1 = a0;
    0x0003ced0 lw a0, -0x7fd8(gp)                                    |     a0 = *(gp);
    0x0003ced4 sw ra, 0x3c(sp)                                       |     *(var_3ch) = ra;
    0x0003ced8 sw s4, 0x38(sp)                                       |     *(var_38h) = s4;
    0x0003cedc sw s3, 0x34(sp)                                       |     *(var_34h) = s3;
    0x0003cee0 sw s2, 0x30(sp)                                       |     *(var_30h) = s2;
    0x0003cee4 sw s0, 0x28(sp)                                       |     *(var_28h) = s0;
    0x0003cee8 sw gp, 0x20(sp)                                       |     *(var_20h) = gp;
    0x0003ceec addiu a0, a0, 0x403c                                  |     a0 += 0x403c;
    0x0003cef0 move s4, a2                                           |     s4 = a2;
    0x0003cef4 move s3, a1                                           |     s3 = a1;
    0x0003cef8 jalr t9                                               |     t9 ();
    0x0003cefc lw gp, 0x20(sp)                                       |     gp = *(var_20h);
    0x0003cf00 move a0, s1                                           |     a0 = s1;
    0x0003cf04 move s0, v0                                           |     s0 = v0;
    0x0003cf08 lw a1, -0x7fd8(gp)                                    |     a1 = *(gp);
    0x0003cf0c lw t9, -0x7cec(gp)                                    |     t9 = sym.sql_table_with_storage_name;
                                                                     |     /* str.recording_groups */
    0x0003cf10 addiu a1, a1, 0xa24                                   |     a1 += 0xa24;
    0x0003cf14 bal 0x39fd0                                           |     sym_sql_table_with_storage_name ();
    0x0003cf18 lw gp, 0x20(sp)                                       |     gp = *(var_20h);
    0x0003cf1c move a0, s1                                           |     a0 = s1;
    0x0003cf20 move s2, v0                                           |     s2 = v0;
    0x0003cf24 lw a1, -0x7fd8(gp)                                    |     a1 = *(gp);
    0x0003cf28 lw t9, -0x7cec(gp)                                    |     t9 = sym.sql_table_with_storage_name;
                                                                     |     /* esilref: 'recordings' */
    0x0003cf2c addiu a1, a1, -0x21e8                                 |     a1 += -0x21e8;
    0x0003cf30 bal 0x39fd0                                           |     sym_sql_table_with_storage_name ();
    0x0003cf34 lw gp, 0x20(sp)                                       |     gp = *(var_20h);
    0x0003cf38 move a2, s2                                           |     a2 = s2;
    0x0003cf3c sw v0, 0x18(sp)                                       |     *(var_18h) = v0;
    0x0003cf40 lw v1, -0x7fd8(gp)                                    |     v1 = *(gp);
    0x0003cf44 lw a3, -0x7fd8(gp)                                    |     a3 = *(gp);
    0x0003cf48 lw a1, -0x7fd8(gp)                                    |     a1 = *(gp);
                                                                     |     /* esilref: 'recording_id' */
    0x0003cf4c addiu v1, v1, 0x78c8                                  |     v1 += 0x78c8;
    0x0003cf50 lw t9, -0x772c(gp)                                    |     t9 = sym.imp.g_string_append_printf
    0x0003cf54 sw v1, 0x10(sp)                                       |     *(var_10h) = v1;
                                                                     |     /* esilref: 'recording_group_id' */
    0x0003cf58 addiu a3, a3, 0x80c                                   |     a3 += 0x80c;
                                                                     |     /* str.INSERT_INTO__s__s__s__VALUES__s___SELECT_id_FROM__s_WHERE_filename_s___ */
    0x0003cf5c addiu a1, a1, 0x6908                                  |     a1 += 0x6908;
    0x0003cf60 move a0, s0                                           |     a0 = s0;
    0x0003cf64 sw s4, 0x1c(sp)                                       |     *(var_1ch) = s4;
    0x0003cf68 sw s3, 0x14(sp)                                       |     *(var_14h) = s3;
    0x0003cf6c move s1, v0                                           |     s1 = v0;
    0x0003cf70 jalr t9                                               |     t9 ();
    0x0003cf74 lw gp, 0x20(sp)                                       |     gp = *(var_20h);
    0x0003cf78 lw t9, -0x74c8(gp)                                    |     t9 = *((gp - 7474));
    0x0003cf7c move a0, s2                                           |     a0 = s2;
    0x0003cf80 jalr t9                                               |     t9 ();
    0x0003cf84 lw gp, 0x20(sp)                                       |     gp = *(var_20h);
    0x0003cf88 lw t9, -0x74c8(gp)                                    |     t9 = *((gp - 7474));
    0x0003cf8c move a0, s1                                           |     a0 = s1;
    0x0003cf90 jalr t9                                               |     t9 ();
    0x0003cf94 lw ra, 0x3c(sp)                                       |     ra = *(var_3ch);
    0x0003cf98 move v0, s0                                           |     v0 = s0;
    0x0003cf9c lw s4, 0x38(sp)                                       |     s4 = *(var_38h);
    0x0003cfa0 lw s3, 0x34(sp)                                       |     s3 = *(var_34h);
    0x0003cfa4 lw s2, 0x30(sp)                                       |     s2 = *(var_30h);
    0x0003cfa8 lw s1, 0x2c(sp)                                       |     s1 = *(var_2ch);
    0x0003cfac lw s0, 0x28(sp)                                       |     s0 = *(var_28h);
    0x0003cfb0 addiu sp, sp, 0x40                                    |     
    0x0003cfb4 jr ra                                                 |     return v0;
                                                                     | }
    ; assembly                               | /* r2dec pseudo code output */
                                             | /* /logs/firmware/unblob_extracted/firmware_extract/4325012-58052244.squashfs_v4_le_extract/usr/bin/indexer @ 0x3bfa0 */
                                             | #include <stdint.h>
                                             |  
    ; (fcn) sym.sql_insert_version ()        | void sql_insert_version () {
    0x0003bfa0 lui gp, 5                     |     
    0x0003bfa4 addiu gp, gp, -0x5ea0         |     
    0x0003bfa8 addu gp, gp, t9               |     gp += t9;
    0x0003bfac addiu sp, sp, -0x38           |     
    0x0003bfb0 lw t9, -0x71b4(gp)            |     t9 = sym.imp.g_string_new;
    0x0003bfb4 sw s0, 0x20(sp)               |     *(var_20h_3) = s0;
    0x0003bfb8 move s0, a0                   |     s0 = a0;
    0x0003bfbc lw a0, -0x7fd8(gp)            |     a0 = *(gp);
    0x0003bfc0 sw ra, 0x34(sp)               |     *(var_34h_3) = ra;
    0x0003bfc4 sw s4, 0x30(sp)               |     *(var_30h_3) = s4;
    0x0003bfc8 sw s3, 0x2c(sp)               |     *(var_2ch_3) = s3;
    0x0003bfcc sw s2, 0x28(sp)               |     *(var_28h_3) = s2;
    0x0003bfd0 sw s1, 0x24(sp)               |     *(var_24h) = s1;
    0x0003bfd4 sw gp, 0x18(sp)               |     *(var_18h) = gp;
    0x0003bfd8 addiu a0, a0, 0x403c          |     a0 += 0x403c;
    0x0003bfdc move s2, a2                   |     s2 = a2;
    0x0003bfe0 move s3, a3                   |     s3 = a3;
    0x0003bfe4 move s4, a1                   |     s4 = a1;
    0x0003bfe8 jalr t9                       |     t9 ();
    0x0003bfec lw gp, 0x18(sp)               |     gp = *(var_18h);
    0x0003bff0 move a0, s0                   |     a0 = s0;
    0x0003bff4 move s0, v0                   |     s0 = v0;
    0x0003bff8 lw a1, -0x7fd8(gp)            |     a1 = *(gp);
    0x0003bffc lw t9, -0x7cec(gp)            |     t9 = sym.sql_table_with_storage_name;
                                             |     /* str.version */
    0x0003c000 addiu a1, a1, 0x19a4          |     a1 += 0x19a4;
    0x0003c004 bal 0x39fd0                   |     sym_sql_table_with_storage_name ();
    0x0003c008 lw gp, 0x18(sp)               |     gp = *(var_18h);
    0x0003c00c move a3, s4                   |     a3 = s4;
    0x0003c010 move a2, v0                   |     a2 = v0;
    0x0003c014 lw a1, -0x7fd8(gp)            |     a1 = *(gp);
    0x0003c018 lw t9, -0x772c(gp)            |     t9 = sym.imp.g_string_append_printf
                                             |     /* str.INSERT_INTO__s__major__minor__date__VALUES___d___d___s__ */
    0x0003c01c addiu a1, a1, 0x673c          |     a1 += 0x673c;
    0x0003c020 move a0, s0                   |     a0 = s0;
    0x0003c024 sw s3, 0x14(sp)               |     *(var_14h) = s3;
    0x0003c028 sw s2, 0x10(sp)               |     *(var_10h_3) = s2;
    0x0003c02c move s1, v0                   |     s1 = v0;
    0x0003c030 jalr t9                       |     t9 ();
    0x0003c034 lw gp, 0x18(sp)               |     gp = *(var_18h);
    0x0003c038 lw t9, -0x74c8(gp)            |     t9 = *((gp - 7474));
    0x0003c03c move a0, s1                   |     a0 = s1;
    0x0003c040 jalr t9                       |     t9 ();
    0x0003c044 lw ra, 0x34(sp)               |     ra = *(var_34h_3);
    0x0003c048 move v0, s0                   |     v0 = s0;
    0x0003c04c lw s4, 0x30(sp)               |     s4 = *(var_30h_3);
    0x0003c050 lw s3, 0x2c(sp)               |     s3 = *(var_2ch_3);
    0x0003c054 lw s2, 0x28(sp)               |     s2 = *(var_28h_3);
    0x0003c058 lw s1, 0x24(sp)               |     s1 = *(var_24h);
    0x0003c05c lw s0, 0x20(sp)               |     s0 = *(var_20h_3);
    0x0003c060 addiu sp, sp, 0x38            |     
    0x0003c064 jr ra                         |     return v0;
                                             | }
    ; assembly                               | /* r2dec pseudo code output */
                                             | /* /logs/firmware/unblob_extracted/firmware_extract/4325012-58052244.squashfs_v4_le_extract/usr/bin/indexer @ 0x3a680 */
                                             | #include <stdint.h>
                                             |  
    ; (fcn) sym.sql_order_limit ()           | void sql_order_limit () {
    0x0003a680 lui gp, 5                     |     
    0x0003a684 addiu gp, gp, -0x4580         |     
    0x0003a688 addu gp, gp, t9               |     gp += t9;
    0x0003a68c addiu sp, sp, -0x38           |     
    0x0003a690 lw t9, -0x71b4(gp)            |     t9 = sym.imp.g_string_new;
    0x0003a694 sw s1, 0x20(sp)               |     *(var_20h) = s1;
    0x0003a698 lw s1, -0x7fd8(gp)            |     s1 = *(gp);
    0x0003a69c sw gp, 0x10(sp)               |     *(var_10h) = gp;
    0x0003a6a0 sw s5, 0x30(sp)               |     *(var_30h) = s5;
    0x0003a6a4 sw s4, 0x2c(sp)               |     *(var_2ch) = s4;
    0x0003a6a8 sw s3, 0x28(sp)               |     *(var_28h) = s3;
    0x0003a6ac sw s2, 0x24(sp)               |     *(var_24h) = s2;
    0x0003a6b0 sw s0, 0x1c(sp)               |     *(var_1ch) = s0;
    0x0003a6b4 sw ra, 0x34(sp)               |     *(var_34h) = ra;
    0x0003a6b8 move s5, a0                   |     s5 = a0;
    0x0003a6bc addiu a0, s1, 0x403c          |     a0 = s1 + 0x403c;
    0x0003a6c0 move s2, a1                   |     s2 = a1;
    0x0003a6c4 move s4, a2                   |     s4 = a2;
    0x0003a6c8 move s3, a3                   |     s3 = a3;
    0x0003a6cc jalr t9                       |     t9 ();
    0x0003a6d0 move s0, v0                   |     s0 = v0;
    0x0003a6d4 lw gp, 0x10(sp)               |     gp = *(var_10h);
                                             |     if (s2 == 0) {
    0x0003a6d8 beqz s2, 0x3a748              |         goto label_1;
                                             |     }
    0x0003a6dc lw a1, -0x7fd8(gp)            |     a1 = *(gp);
    0x0003a6e0 lw t9, -0x76d0(gp)            |     t9 = sym.imp.g_string_append;
                                             |     /* str.ORDER_BY_ */
    0x0003a6e4 addiu a1, a1, 0x5e1c          |     a1 += 0x5e1c;
    0x0003a6e8 move a0, v0                   |     a0 = v0;
    0x0003a6ec jalr t9                       |     t9 ();
    0x0003a6f0 lw gp, 0x10(sp)               |     gp = *(var_10h);
                                             |     if (s5 != 0) {
    0x0003a6f4 beqz s5, 0x3a714              |         
    0x0003a6f8 lw a1, -0x7fd8(gp)            |         a1 = *(gp);
    0x0003a6fc lw t9, -0x772c(gp)            |         t9 = sym.imp.g_string_append_printf
    0x0003a700 move a2, s5                   |         a2 = s5;
                                             |         /* esilref: '&s.' */
    0x0003a704 addiu a1, a1, 0x5204          |         a1 += 0x5204;
    0x0003a708 move a0, s0                   |         a0 = s0;
    0x0003a70c jalr t9                       |         t9 ();
    0x0003a710 lw gp, 0x10(sp)               |         gp = *(var_10h);
                                             |     }
    0x0003a714 addiu v0, zero, 1             |     v0 = 1;
    0x0003a718 addiu v0, zero, 2             |     v0 = 2;
                                             |     if (s4 == v0) {
    0x0003a71c beq s4, v0, 0x3a7d0           |         goto label_2;
                                             |     }
    0x0003a720 lw a3, -0x7fd8(gp)            |     a3 = *(gp);
                                             |     if (s4 == v0) {
    0x0003a724 beq s4, v0, 0x3a7dc           |         goto label_3;
                                             |     }
    0x0003a728 addiu a3, s1, 0x403c          |     a3 = s1 + 0x403c;
                                             |     do {
                                             | label_0:
    0x0003a72c lw a1, -0x7fd8(gp)            |         a1 = *(gp);
    0x0003a730 lw t9, -0x772c(gp)            |         t9 = sym.imp.g_string_append_printf
    0x0003a734 move a2, s2                   |         a2 = s2;
                                             |         /* str._s__s */
    0x0003a738 addiu a1, a1, 0x11d8          |         a1 += 0x11d8;
    0x0003a73c move a0, s0                   |         a0 = s0;
    0x0003a740 jalr t9                       |         t9 ();
    0x0003a744 lw gp, 0x10(sp)               |         gp = *(var_10h);
                                             | label_1:
    0x0003a748 lw ra, 0x34(sp)               |         ra = *(var_34h);
                                             |         if (s3 == 0) {
    0x0003a74c bnez s3, 0x3a774              |             
    0x0003a750 move v0, s0                   |             v0 = s0;
    0x0003a754 lw s5, 0x30(sp)               |             s5 = *(var_30h);
    0x0003a758 lw s4, 0x2c(sp)               |             s4 = *(var_2ch);
    0x0003a75c lw s3, 0x28(sp)               |             s3 = *(var_28h);
    0x0003a760 lw s2, 0x24(sp)               |             s2 = *(var_24h);
    0x0003a764 lw s1, 0x20(sp)               |             s1 = *(var_20h);
    0x0003a768 lw s0, 0x1c(sp)               |             s0 = *(var_1ch);
    0x0003a76c addiu sp, sp, 0x38            |             
    0x0003a770 jr ra                         |             return v0;
                                             |         }
    0x0003a774 lw a1, -0x7fd8(gp)            |         a1 = *(gp);
    0x0003a778 lw t9, -0x772c(gp)            |         t9 = sym.imp.g_string_append_printf
    0x0003a77c move a2, s3                   |         a2 = s3;
    0x0003a780 move a0, s0                   |         a0 = s0;
                                             |         /* str._LIMIT__u_ */
    0x0003a784 addiu a1, a1, 0x5e28          |         a1 += 0x5e28;
    0x0003a788 jalr t9                       |         t9 ();
    0x0003a78c lw gp, 0x10(sp)               |         gp = *(var_10h);
    0x0003a790 lw a2, 0x48(sp)               |         a2 = *(arg_48h);
    0x0003a794 move a0, s0                   |         a0 = s0;
    0x0003a798 lw a1, -0x7fd8(gp)            |         a1 = *(gp);
    0x0003a79c lw t9, -0x772c(gp)            |         t9 = sym.imp.g_string_append_printf
                                             |         /* str.OFFSET__u */
    0x0003a7a0 addiu a1, a1, 0x5e34          |         a1 += aav.0x00005e34;
    0x0003a7a4 jalr t9                       |         t9 ();
    0x0003a7a8 lw ra, 0x34(sp)               |         ra = *(var_34h);
    0x0003a7ac move v0, s0                   |         v0 = s0;
    0x0003a7b0 lw s5, 0x30(sp)               |         s5 = *(var_30h);
    0x0003a7b4 lw s4, 0x2c(sp)               |         s4 = *(var_2ch);
    0x0003a7b8 lw s3, 0x28(sp)               |         s3 = *(var_28h);
    0x0003a7bc lw s2, 0x24(sp)               |         s2 = *(var_24h);
    0x0003a7c0 lw s1, 0x20(sp)               |         s1 = *(var_20h);
    0x0003a7c4 lw s0, 0x1c(sp)               |         s0 = *(var_1ch);
    0x0003a7c8 addiu sp, sp, 0x38            |         
    0x0003a7cc jr ra                         |         return v0;
                                             | label_2:
    0x0003a7d0 lw a3, -0x7fd8(gp)            |         a3 = *(gp);
                                             |         /* esilref: 'ASC' */
    0x0003a7d4 addiu a3, a3, 0x9f0           |         a3 += 0x9f0;
    0x0003a7d8 b 0x3a72c                     |         
                                             |     } while (1);
                                             |     /* str.DESC */
                                             | label_3:
    0x0003a7dc addiu a3, a3, 0x5e14          |     a3 += 0x5e14;
    0x0003a7e0 b 0x3a72c                     |     goto label_0;
                                             | }
    ; assembly                                           | /* r2dec pseudo code output */
                                                         | /* /logs/firmware/unblob_extracted/firmware_extract/4325012-58052244.squashfs_v4_le_extract/usr/bin/indexer @ 0x3b2fc */
                                                         | #include <stdint.h>
                                                         |  
    ; (fcn) sym.sql_recording_actions_table ()           | void sql_recording_actions_table () {
    0x0003b2fc lui gp, 5                                 |     
    0x0003b300 addiu gp, gp, -0x51fc                     |     
    0x0003b304 addu gp, gp, t9                           |     gp += t9;
    0x0003b308 addiu sp, sp, -0x28                       |     
    0x0003b30c lw t9, -0x71b4(gp)                        |     t9 = sym.imp.g_string_new;
    0x0003b310 sw s0, 0x1c(sp)                           |     *(var_1ch) = s0;
    0x0003b314 move s0, a0                               |     s0 = a0;
    0x0003b318 lw a0, -0x7fd8(gp)                        |     a0 = *(gp);
    0x0003b31c sw ra, 0x24(sp)                           |     *(var_24h) = ra;
    0x0003b320 sw s1, 0x20(sp)                           |     *(var_20h) = s1;
    0x0003b324 sw gp, 0x10(sp)                           |     *(var_10h) = gp;
    0x0003b328 addiu a0, a0, 0x403c                      |     a0 += 0x403c;
    0x0003b32c jalr t9                                   |     t9 ();
    0x0003b330 lw gp, 0x10(sp)                           |     gp = *(var_10h);
    0x0003b334 move a0, s0                               |     a0 = s0;
    0x0003b338 move s0, v0                               |     s0 = v0;
    0x0003b33c lw a1, -0x7fd8(gp)                        |     a1 = *(gp);
    0x0003b340 lw t9, -0x7cec(gp)                        |     t9 = sym.sql_table_with_storage_name;
                                                         |     /* str.recording_actions */
    0x0003b344 addiu a1, a1, 0xbbc                       |     a1 += aav.0x00000bbc;
    0x0003b348 bal 0x39fd0                               |     sym_sql_table_with_storage_name ();
    0x0003b34c lw gp, 0x10(sp)                           |     gp = *(var_10h);
    0x0003b350 move a2, v0                               |     a2 = v0;
    0x0003b354 move a0, s0                               |     a0 = s0;
    0x0003b358 lw a1, -0x7fd8(gp)                        |     a1 = *(gp);
    0x0003b35c lw t9, -0x772c(gp)                        |     t9 = sym.imp.g_string_append_printf
                                                         |     /* str.CREATE_TABLE__s__id_INTEGER_PRIMARY_KEY_AUTOINCREMENT_NOT_NULL__action_name_VARCHAR_256__NOT_NULL__UNIQUE_action_name___ */
    0x0003b360 addiu a1, a1, 0x6458                      |     a1 += 0x6458;
    0x0003b364 move s1, v0                               |     s1 = v0;
    0x0003b368 jalr t9                                   |     t9 ();
    0x0003b36c lw gp, 0x10(sp)                           |     gp = *(var_10h);
    0x0003b370 lw t9, -0x74c8(gp)                        |     t9 = *((gp - 7474));
    0x0003b374 move a0, s1                               |     a0 = s1;
    0x0003b378 jalr t9                                   |     t9 ();
    0x0003b37c lw ra, 0x24(sp)                           |     ra = *(var_24h);
    0x0003b380 move v0, s0                               |     v0 = s0;
    0x0003b384 lw s1, 0x20(sp)                           |     s1 = *(var_20h);
    0x0003b388 lw s0, 0x1c(sp)                           |     s0 = *(var_1ch);
    0x0003b38c addiu sp, sp, 0x28                        |     
    0x0003b390 jr ra                                     |     return v0;
                                                         | }
    ; assembly                                       | /* r2dec pseudo code output */
                                                     | /* /logs/firmware/unblob_extracted/firmware_extract/4325012-58052244.squashfs_v4_le_extract/usr/bin/indexer @ 0x3b264 */
                                                     | #include <stdint.h>
                                                     |  
    ; (fcn) sym.sql_recording_events_table ()        | void sql_recording_events_table () {
    0x0003b264 lui gp, 5                             |     
    0x0003b268 addiu gp, gp, -0x5164                 |     
    0x0003b26c addu gp, gp, t9                       |     gp += t9;
    0x0003b270 addiu sp, sp, -0x28                   |     
    0x0003b274 lw t9, -0x71b4(gp)                    |     t9 = sym.imp.g_string_new;
    0x0003b278 sw s0, 0x1c(sp)                       |     *(var_1ch) = s0;
    0x0003b27c move s0, a0                           |     s0 = a0;
    0x0003b280 lw a0, -0x7fd8(gp)                    |     a0 = *(gp);
    0x0003b284 sw ra, 0x24(sp)                       |     *(var_24h) = ra;
    0x0003b288 sw s1, 0x20(sp)                       |     *(var_20h) = s1;
    0x0003b28c sw gp, 0x10(sp)                       |     *(var_10h) = gp;
    0x0003b290 addiu a0, a0, 0x403c                  |     a0 += 0x403c;
    0x0003b294 jalr t9                               |     t9 ();
    0x0003b298 lw gp, 0x10(sp)                       |     gp = *(var_10h);
    0x0003b29c move a0, s0                           |     a0 = s0;
    0x0003b2a0 move s0, v0                           |     s0 = v0;
    0x0003b2a4 lw a1, -0x7fd8(gp)                    |     a1 = *(gp);
    0x0003b2a8 lw t9, -0x7cec(gp)                    |     t9 = sym.sql_table_with_storage_name;
                                                     |     /* str.recording_events */
    0x0003b2ac addiu a1, a1, 0xc30                   |     a1 += 0xc30;
    0x0003b2b0 bal 0x39fd0                           |     sym_sql_table_with_storage_name ();
    0x0003b2b4 lw gp, 0x10(sp)                       |     gp = *(var_10h);
    0x0003b2b8 move a2, v0                           |     a2 = v0;
    0x0003b2bc move a0, s0                           |     a0 = s0;
    0x0003b2c0 lw a1, -0x7fd8(gp)                    |     a1 = *(gp);
    0x0003b2c4 lw t9, -0x772c(gp)                    |     t9 = sym.imp.g_string_append_printf
                                                     |     /* str.CREATE_TABLE__s__id_INTEGER_PRIMARY_KEY_AUTOINCREMENT_NOT_NULL__event_name_VARCHAR_256__NOT_NULL__UNIQUE_event_name___ */
    0x0003b2c8 addiu a1, a1, 0x63e0                  |     a1 += 0x63e0;
    0x0003b2cc move s1, v0                           |     s1 = v0;
    0x0003b2d0 jalr t9                               |     t9 ();
    0x0003b2d4 lw gp, 0x10(sp)                       |     gp = *(var_10h);
    0x0003b2d8 lw t9, -0x74c8(gp)                    |     t9 = *((gp - 7474));
    0x0003b2dc move a0, s1                           |     a0 = s1;
    0x0003b2e0 jalr t9                               |     t9 ();
    0x0003b2e4 lw ra, 0x24(sp)                       |     ra = *(var_24h);
    0x0003b2e8 move v0, s0                           |     v0 = s0;
    0x0003b2ec lw s1, 0x20(sp)                       |     s1 = *(var_20h);
    0x0003b2f0 lw s0, 0x1c(sp)                       |     s0 = *(var_1ch);
    0x0003b2f4 addiu sp, sp, 0x28                    |     
    0x0003b2f8 jr ra                                 |     return v0;
                                                     | }
    ; assembly                                       | /* r2dec pseudo code output */
                                                     | /* /logs/firmware/unblob_extracted/firmware_extract/4325012-58052244.squashfs_v4_le_extract/usr/bin/indexer @ 0x3b58c */
                                                     | #include <stdint.h>
                                                     |  
    ; (fcn) sym.sql_recording_groups_table ()        | void sql_recording_groups_table () {
    0x0003b58c lui gp, 5                             |     
    0x0003b590 addiu gp, gp, -0x548c                 |     
    0x0003b594 addu gp, gp, t9                       |     gp += t9;
    0x0003b598 addiu sp, sp, -0x28                   |     
    0x0003b59c lw t9, -0x71b4(gp)                    |     t9 = sym.imp.g_string_new;
    0x0003b5a0 sw s0, 0x1c(sp)                       |     *(var_1ch) = s0;
    0x0003b5a4 move s0, a0                           |     s0 = a0;
    0x0003b5a8 lw a0, -0x7fd8(gp)                    |     a0 = *(gp);
    0x0003b5ac sw ra, 0x24(sp)                       |     *(var_24h) = ra;
    0x0003b5b0 sw s1, 0x20(sp)                       |     *(var_20h) = s1;
    0x0003b5b4 sw gp, 0x10(sp)                       |     *(var_10h) = gp;
    0x0003b5b8 addiu a0, a0, 0x403c                  |     a0 += 0x403c;
    0x0003b5bc jalr t9                               |     t9 ();
    0x0003b5c0 lw gp, 0x10(sp)                       |     gp = *(var_10h);
    0x0003b5c4 move a0, s0                           |     a0 = s0;
    0x0003b5c8 move s0, v0                           |     s0 = v0;
    0x0003b5cc lw a1, -0x7fd8(gp)                    |     a1 = *(gp);
    0x0003b5d0 lw t9, -0x7cec(gp)                    |     t9 = sym.sql_table_with_storage_name;
                                                     |     /* str.recording_groups */
    0x0003b5d4 addiu a1, a1, 0xa24                   |     a1 += 0xa24;
    0x0003b5d8 bal 0x39fd0                           |     sym_sql_table_with_storage_name ();
    0x0003b5dc lw gp, 0x10(sp)                       |     gp = *(var_10h);
    0x0003b5e0 move a2, v0                           |     a2 = v0;
    0x0003b5e4 move a0, s0                           |     a0 = s0;
    0x0003b5e8 lw a1, -0x7fd8(gp)                    |     a1 = *(gp);
    0x0003b5ec lw t9, -0x772c(gp)                    |     t9 = sym.imp.g_string_append_printf
                                                     |     /* str.CREATE_TABLE__s__recording_group_id_VARCHAR_256__NOT_NULL__recording_id_INTEGER_NOT_NULL__UNIQUE_recording_group_id__recording_id___ */
    0x0003b5f0 addiu a1, a1, 0x656c                  |     a1 += aav.0x0000656c;
    0x0003b5f4 move s1, v0                           |     s1 = v0;
    0x0003b5f8 jalr t9                               |     t9 ();
    0x0003b5fc lw gp, 0x10(sp)                       |     gp = *(var_10h);
    0x0003b600 lw t9, -0x74c8(gp)                    |     t9 = *((gp - 7474));
    0x0003b604 move a0, s1                           |     a0 = s1;
    0x0003b608 jalr t9                               |     t9 ();
    0x0003b60c lw ra, 0x24(sp)                       |     ra = *(var_24h);
    0x0003b610 move v0, s0                           |     v0 = s0;
    0x0003b614 lw s1, 0x20(sp)                       |     s1 = *(var_20h);
    0x0003b618 lw s0, 0x1c(sp)                       |     s0 = *(var_1ch);
    0x0003b61c addiu sp, sp, 0x28                    |     
    0x0003b620 jr ra                                 |     return v0;
                                                     | }
    ; assembly                                           | /* r2dec pseudo code output */
                                                         | /* /logs/firmware/unblob_extracted/firmware_extract/4325012-58052244.squashfs_v4_le_extract/usr/bin/indexer @ 0x3b1cc */
                                                         | #include <stdint.h>
                                                         |  
    ; (fcn) sym.sql_recording_sources_table ()           | void sql_recording_sources_table () {
    0x0003b1cc lui gp, 5                                 |     
    0x0003b1d0 addiu gp, gp, -0x50cc                     |     
    0x0003b1d4 addu gp, gp, t9                           |     gp += t9;
    0x0003b1d8 addiu sp, sp, -0x28                       |     
    0x0003b1dc lw t9, -0x71b4(gp)                        |     t9 = sym.imp.g_string_new;
    0x0003b1e0 sw s0, 0x1c(sp)                           |     *(var_1ch) = s0;
    0x0003b1e4 move s0, a0                               |     s0 = a0;
    0x0003b1e8 lw a0, -0x7fd8(gp)                        |     a0 = *(gp);
    0x0003b1ec sw ra, 0x24(sp)                           |     *(var_24h) = ra;
    0x0003b1f0 sw s1, 0x20(sp)                           |     *(var_20h) = s1;
    0x0003b1f4 sw gp, 0x10(sp)                           |     *(var_10h) = gp;
    0x0003b1f8 addiu a0, a0, 0x403c                      |     a0 += 0x403c;
    0x0003b1fc jalr t9                                   |     t9 ();
    0x0003b200 lw gp, 0x10(sp)                           |     gp = *(var_10h);
    0x0003b204 move a0, s0                               |     a0 = s0;
    0x0003b208 move s0, v0                               |     s0 = v0;
    0x0003b20c lw a1, -0x7fd8(gp)                        |     a1 = *(gp);
    0x0003b210 lw t9, -0x7cec(gp)                        |     t9 = sym.sql_table_with_storage_name;
                                                         |     /* str.recording_sources */
    0x0003b214 addiu a1, a1, 0xc08                       |     a1 += 0xc08;
    0x0003b218 bal 0x39fd0                               |     sym_sql_table_with_storage_name ();
    0x0003b21c lw gp, 0x10(sp)                           |     gp = *(var_10h);
    0x0003b220 move a2, v0                               |     a2 = v0;
    0x0003b224 move a0, s0                               |     a0 = s0;
    0x0003b228 lw a1, -0x7fd8(gp)                        |     a1 = *(gp);
    0x0003b22c lw t9, -0x772c(gp)                        |     t9 = sym.imp.g_string_append_printf
                                                         |     /* str.CREATE_TABLE__s__id_INTEGER_PRIMARY_KEY_AUTOINCREMENT_NOT_NULL__source_name_VARCHAR_256__NOT_NULL__UNIQUE_source_name___ */
    0x0003b230 addiu a1, a1, 0x6364                      |     a1 += 0x6364;
    0x0003b234 move s1, v0                               |     s1 = v0;
    0x0003b238 jalr t9                                   |     t9 ();
    0x0003b23c lw gp, 0x10(sp)                           |     gp = *(var_10h);
    0x0003b240 lw t9, -0x74c8(gp)                        |     t9 = *((gp - 7474));
    0x0003b244 move a0, s1                               |     a0 = s1;
    0x0003b248 jalr t9                                   |     t9 ();
    0x0003b24c lw ra, 0x24(sp)                           |     ra = *(var_24h);
    0x0003b250 move v0, s0                               |     v0 = s0;
    0x0003b254 lw s1, 0x20(sp)                           |     s1 = *(var_20h);
    0x0003b258 lw s0, 0x1c(sp)                           |     s0 = *(var_1ch);
    0x0003b25c addiu sp, sp, 0x28                        |     
    0x0003b260 jr ra                                     |     return v0;
                                                         | }
    ; assembly                                       | /* r2dec pseudo code output */
                                                     | /* /logs/firmware/unblob_extracted/firmware_extract/4325012-58052244.squashfs_v4_le_extract/usr/bin/indexer @ 0x3b134 */
                                                     | #include <stdint.h>
                                                     |  
    ; (fcn) sym.sql_recording_types_table ()         | void sql_recording_types_table () {
    0x0003b134 lui gp, 5                             |     
    0x0003b138 addiu gp, gp, -0x5034                 |     
    0x0003b13c addu gp, gp, t9                       |     gp += t9;
    0x0003b140 addiu sp, sp, -0x28                   |     
    0x0003b144 lw t9, -0x71b4(gp)                    |     t9 = sym.imp.g_string_new;
    0x0003b148 sw s0, 0x1c(sp)                       |     *(var_1ch) = s0;
    0x0003b14c move s0, a0                           |     s0 = a0;
    0x0003b150 lw a0, -0x7fd8(gp)                    |     a0 = *(gp);
    0x0003b154 sw ra, 0x24(sp)                       |     *(var_24h) = ra;
    0x0003b158 sw s1, 0x20(sp)                       |     *(var_20h) = s1;
    0x0003b15c sw gp, 0x10(sp)                       |     *(var_10h) = gp;
    0x0003b160 addiu a0, a0, 0x403c                  |     a0 += 0x403c;
    0x0003b164 jalr t9                               |     t9 ();
    0x0003b168 lw gp, 0x10(sp)                       |     gp = *(var_10h);
    0x0003b16c move a0, s0                           |     a0 = s0;
    0x0003b170 move s0, v0                           |     s0 = v0;
    0x0003b174 lw a1, -0x7fd8(gp)                    |     a1 = *(gp);
    0x0003b178 lw t9, -0x7cec(gp)                    |     t9 = sym.sql_table_with_storage_name;
                                                     |     /* str.recording_types */
    0x0003b17c addiu a1, a1, 0xbe4                   |     a1 += 0xbe4;
    0x0003b180 bal 0x39fd0                           |     sym_sql_table_with_storage_name ();
    0x0003b184 lw gp, 0x10(sp)                       |     gp = *(var_10h);
    0x0003b188 move a2, v0                           |     a2 = v0;
    0x0003b18c move a0, s0                           |     a0 = s0;
    0x0003b190 lw a1, -0x7fd8(gp)                    |     a1 = *(gp);
    0x0003b194 lw t9, -0x772c(gp)                    |     t9 = sym.imp.g_string_append_printf
                                                     |     /* str.CREATE_TABLE__s__id_INTEGER_PRIMARY_KEY_AUTOINCREMENT_NOT_NULL__recording_type_VARCHAR_256__NOT_NULL__UNIQUE_recording_type___ */
    0x0003b198 addiu a1, a1, 0x62e4                  |     a1 += 0x62e4;
    0x0003b19c move s1, v0                           |     s1 = v0;
    0x0003b1a0 jalr t9                               |     t9 ();
    0x0003b1a4 lw gp, 0x10(sp)                       |     gp = *(var_10h);
    0x0003b1a8 lw t9, -0x74c8(gp)                    |     t9 = *((gp - 7474));
    0x0003b1ac move a0, s1                           |     a0 = s1;
    0x0003b1b0 jalr t9                               |     t9 ();
    0x0003b1b4 lw ra, 0x24(sp)                       |     ra = *(var_24h);
    0x0003b1b8 move v0, s0                           |     v0 = s0;
    0x0003b1bc lw s1, 0x20(sp)                       |     s1 = *(var_20h);
    0x0003b1c0 lw s0, 0x1c(sp)                       |     s0 = *(var_1ch);
    0x0003b1c4 addiu sp, sp, 0x28                    |     
    0x0003b1c8 jr ra                                 |     return v0;
                                                     | }
    ; assembly                                   | /* r2dec pseudo code output */
                                                 | /* /logs/firmware/unblob_extracted/firmware_extract/4325012-58052244.squashfs_v4_le_extract/usr/bin/indexer @ 0x3ace8 */
                                                 | #include <stdint.h>
                                                 |  
    ; (fcn) sym.sql_recordings_table ()          | void sql_recordings_table () {
    0x0003ace8 lui gp, 5                         |     
    0x0003acec addiu gp, gp, -0x4be8             |     
    0x0003acf0 addu gp, gp, t9                   |     gp += t9;
    0x0003acf4 addiu sp, sp, -0x58               |     
    0x0003acf8 sw gp, 0x28(sp)                   |     *(var_28h_2) = gp;
    0x0003acfc sw ra, 0x54(sp)                   |     *(var_54h) = ra;
    0x0003ad00 sw fp, 0x50(sp)                   |     *(var_50h) = fp;
    0x0003ad04 sw s7, 0x4c(sp)                   |     *(var_4ch_2) = s7;
    0x0003ad08 sw s6, 0x48(sp)                   |     *(var_48h_2) = s6;
    0x0003ad0c sw s5, 0x44(sp)                   |     *(var_44h_3) = s5;
    0x0003ad10 sw s4, 0x40(sp)                   |     *(var_40h_3) = s4;
    0x0003ad14 sw s3, 0x3c(sp)                   |     *(var_3ch_3) = s3;
    0x0003ad18 sw s2, 0x38(sp)                   |     *(var_38h_3) = s2;
    0x0003ad1c sw s1, 0x34(sp)                   |     *(var_34h_3) = s1;
    0x0003ad20 sw s0, 0x30(sp)                   |     *(var_30h_3) = s0;
    0x0003ad24 sw a0, 0x58(sp)                   |     *(var_58h) = a0;
                                                 |     if (a1 != 0) {
    0x0003ad28 beqz a1, 0x3af64                  |         
    0x0003ad2c lw a0, -0x7fd8(gp)                |         a0 = *(gp);
    0x0003ad30 lw t9, -0x71b4(gp)                |         t9 = sym.imp.g_string_new;
    0x0003ad34 addiu a0, a0, 0x403c              |         a0 += 0x403c;
    0x0003ad38 move s2, a1                       |         s2 = a1;
    0x0003ad3c jalr t9                           |         t9 ();
    0x0003ad40 lw gp, 0x28(sp)                   |         gp = *(var_28h_2);
    0x0003ad44 move s1, v0                       |         s1 = v0;
    0x0003ad48 lw s0, -0x7f50(gp)                |         s0 = *((gp - 8148));
    0x0003ad4c lw a1, -0x7fd8(gp)                |         a1 = *(gp);
    0x0003ad50 lw a0, -0x7fd8(gp)                |         a0 = *(gp);
    0x0003ad54 lw t9, -0x7a7c(gp)                |         t9 = sym.sql_generate_foreign_key;
                                                 |         /* esilref: 'id' */
    0x0003ad58 addiu a2, s0, -0x6dbc             |         a2 = s0 + -0x6dbc;
                                                 |         /* str.recording_types */
    0x0003ad5c addiu a1, a1, 0xbe4               |         a1 += 0xbe4;
                                                 |         /* str.recording_type_id */
    0x0003ad60 addiu a0, a0, 0xbd0               |         a0 += 0xbd0;
    0x0003ad64 bal 0x39ec4                       |         sym_sql_generate_foreign_key ();
    0x0003ad68 lw gp, 0x28(sp)                   |         gp = *(var_28h_2);
                                                 |         /* esilref: 'id' */
    0x0003ad6c addiu a2, s0, -0x6dbc             |         a2 = s0 + -0x6dbc;
    0x0003ad70 move s7, v0                       |         s7 = v0;
    0x0003ad74 lw a1, -0x7fd8(gp)                |         a1 = *(gp);
    0x0003ad78 lw a0, -0x7fd8(gp)                |         a0 = *(gp);
    0x0003ad7c lw t9, -0x7a7c(gp)                |         t9 = sym.sql_generate_foreign_key;
                                                 |         /* str.recording_sources */
    0x0003ad80 addiu a1, a1, 0xc08               |         a1 += 0xc08;
                                                 |         /* str.recording_source_id */
    0x0003ad84 addiu a0, a0, 0xbf4               |         a0 += 0xbf4;
    0x0003ad88 bal 0x39ec4                       |         sym_sql_generate_foreign_key ();
    0x0003ad8c lw gp, 0x28(sp)                   |         gp = *(var_28h_2);
                                                 |         /* esilref: 'id' */
    0x0003ad90 addiu a2, s0, -0x6dbc             |         a2 = s0 + -0x6dbc;
    0x0003ad94 move s6, v0                       |         s6 = v0;
    0x0003ad98 lw a1, -0x7fd8(gp)                |         a1 = *(gp);
    0x0003ad9c lw a0, -0x7fd8(gp)                |         a0 = *(gp);
    0x0003ada0 lw t9, -0x7a7c(gp)                |         t9 = sym.sql_generate_foreign_key;
                                                 |         /* str.recording_events */
    0x0003ada4 addiu a1, a1, 0xc30               |         a1 += 0xc30;
                                                 |         /* str.recording_event_id */
    0x0003ada8 addiu a0, a0, 0xc1c               |         a0 += 0xc1c;
    0x0003adac bal 0x39ec4                       |         sym_sql_generate_foreign_key ();
    0x0003adb0 lw gp, 0x28(sp)                   |         gp = *(var_28h_2);
                                                 |         /* esilref: 'id' */
    0x0003adb4 addiu a2, s0, -0x6dbc             |         a2 = s0 + -0x6dbc;
    0x0003adb8 move s5, v0                       |         s5 = v0;
    0x0003adbc lw a1, -0x7fd8(gp)                |         a1 = *(gp);
    0x0003adc0 lw a0, -0x7fd8(gp)                |         a0 = *(gp);
    0x0003adc4 lw t9, -0x7a7c(gp)                |         t9 = sym.sql_generate_foreign_key;
                                                 |         /* str.recording_actions */
    0x0003adc8 addiu a1, a1, 0xbbc               |         a1 += aav.0x00000bbc;
                                                 |         /* str.recording_action_id */
    0x0003adcc addiu a0, a0, 0x994               |         a0 += 0x994;
    0x0003add0 bal 0x39ec4                       |         sym_sql_generate_foreign_key ();
    0x0003add4 lw gp, 0x28(sp)                   |         gp = *(var_28h_2);
                                                 |         /* esilref: 'id' */
    0x0003add8 addiu a2, s0, -0x6dbc             |         a2 = s0 + -0x6dbc;
    0x0003addc move s4, v0                       |         s4 = v0;
    0x0003ade0 lw a1, -0x7fd8(gp)                |         a1 = *(gp);
    0x0003ade4 lw a0, -0x7fd8(gp)                |         a0 = *(gp);
    0x0003ade8 lw t9, -0x7a7c(gp)                |         t9 = sym.sql_generate_foreign_key;
                                                 |         /* str.audios */
    0x0003adec addiu a1, a1, 0xa08               |         a1 += 0xa08;
                                                 |         /* str.audio_id */
    0x0003adf0 addiu a0, a0, 0x7e8               |         a0 += 0x7e8;
    0x0003adf4 bal 0x39ec4                       |         sym_sql_generate_foreign_key ();
    0x0003adf8 lw gp, 0x28(sp)                   |         gp = *(var_28h_2);
                                                 |         /* esilref: 'id' */
    0x0003adfc addiu a2, s0, -0x6dbc             |         a2 = s0 + -0x6dbc;
    0x0003ae00 move s3, v0                       |         s3 = v0;
    0x0003ae04 lw a1, -0x7fd8(gp)                |         a1 = *(gp);
    0x0003ae08 lw a0, -0x7fd8(gp)                |         a0 = *(gp);
    0x0003ae0c lw t9, -0x7a7c(gp)                |         t9 = sym.sql_generate_foreign_key;
                                                 |         /* str.videos */
    0x0003ae10 addiu a1, a1, 0xa10               |         a1 += 0xa10;
                                                 |         /* str.video_id */
    0x0003ae14 addiu a0, a0, 0x7f4               |         a0 += 0x7f4;
    0x0003ae18 bal 0x39ec4                       |         sym_sql_generate_foreign_key ();
    0x0003ae1c lw gp, 0x28(sp)                   |         gp = *(var_28h_2);
                                                 |         /* esilref: 'id' */
    0x0003ae20 addiu a2, s0, -0x6dbc             |         a2 = s0 + -0x6dbc;
    0x0003ae24 move fp, v0                       |         fp = v0;
    0x0003ae28 lw a1, -0x7fd8(gp)                |         a1 = *(gp);
    0x0003ae2c lw a0, -0x7fd8(gp)                |         a0 = *(gp);
    0x0003ae30 lw t9, -0x7a7c(gp)                |         t9 = sym.sql_generate_foreign_key;
                                                 |         /* str.metadata */
    0x0003ae34 addiu a1, a1, 0xa18               |         a1 += 0xa18;
                                                 |         /* str.metadata_id */
    0x0003ae38 addiu a0, a0, 0x800               |         a0 += 0x800;
    0x0003ae3c bal 0x39ec4                       |         sym_sql_generate_foreign_key ();
    0x0003ae40 lw gp, 0x28(sp)                   |         gp = *(var_28h_2);
    0x0003ae44 lw v1, 0x58(sp)                   |         v1 = *(var_58h);
    0x0003ae48 move a1, s2                       |         a1 = s2;
    0x0003ae4c lw t9, -0x7cec(gp)                |         t9 = sym.sql_table_with_storage_name;
    0x0003ae50 move a0, v1                       |         a0 = v1;
    0x0003ae54 move s0, v0                       |         s0 = v0;
    0x0003ae58 bal 0x39fd0                       |         sym_sql_table_with_storage_name ();
    0x0003ae5c lw gp, 0x28(sp)                   |         gp = *(var_28h_2);
    0x0003ae60 move a2, v0                       |         a2 = v0;
    0x0003ae64 move a0, s1                       |         a0 = s1;
    0x0003ae68 lw a1, -0x7fd8(gp)                |         a1 = *(gp);
    0x0003ae6c lw t9, -0x772c(gp)                |         t9 = sym.imp.g_string_append_printf
                                                 |         /* str.CREATE_TABLE__s__id_INTEGER_PRIMARY_KEY_AUTOINCREMENT_NOT_NULL__filename_VARCHAR_256__UNIQUE_NOT_NULL__path_VARCHAR_256__NULL__starttime_TIMESTAMP_NULL__stoptime_TIMESTAMP_NULL_CHECK_NOT__starttime_IS_NULL_AND_stoptime_IS_NOT_NULL____recording_type_id_INTEGER_NULL__recording_source_id_INTEGER_NULL__recording_event_id_INTEGER_NULL__recording_action_id_INTEGER_NULL__audio_id_INTEGER_NULL__video_id_INTEGER_NULL__metadata_id_INTEGER_NULL__ */
    0x0003ae70 addiu a1, a1, 0x5f58              |         a1 += 0x5f58;
    0x0003ae74 move s2, v0                       |         s2 = v0;
    0x0003ae78 jalr t9                           |         t9 ();
    0x0003ae7c lw gp, 0x28(sp)                   |         gp = *(var_28h_2);
    0x0003ae80 move a3, s6                       |         a3 = s6;
    0x0003ae84 move a2, s7                       |         a2 = s7;
    0x0003ae88 lw a1, -0x7fd8(gp)                |         a1 = *(gp);
    0x0003ae8c lw t9, -0x772c(gp)                |         t9 = sym.imp.g_string_append_printf
                                                 |         /* str.__s___s___s___s___s___s___s__ */
    0x0003ae90 addiu a1, a1, 0x6110              |         a1 += 0x6110;
    0x0003ae94 move a0, s1                       |         a0 = s1;
    0x0003ae98 sw s0, 0x20(sp)                   |         *(var_20h_3) = s0;
    0x0003ae9c sw fp, 0x1c(sp)                   |         *(var_1ch_3) = fp;
    0x0003aea0 sw s3, 0x18(sp)                   |         *(var_18h_3) = s3;
    0x0003aea4 sw s4, 0x14(sp)                   |         *(var_14h) = s4;
    0x0003aea8 sw s5, 0x10(sp)                   |         *(var_10h_3) = s5;
    0x0003aeac jalr t9                           |         t9 ();
    0x0003aeb0 lw gp, 0x28(sp)                   |         gp = *(var_28h_2);
    0x0003aeb4 lw t9, -0x74c8(gp)                |         t9 = *((gp - 7474));
    0x0003aeb8 move a0, s2                       |         a0 = s2;
    0x0003aebc jalr t9                           |         t9 ();
    0x0003aec0 lw gp, 0x28(sp)                   |         gp = *(var_28h_2);
    0x0003aec4 lw t9, -0x74c8(gp)                |         t9 = *((gp - 7474));
    0x0003aec8 move a0, s7                       |         a0 = s7;
    0x0003aecc jalr t9                           |         t9 ();
    0x0003aed0 lw gp, 0x28(sp)                   |         gp = *(var_28h_2);
    0x0003aed4 lw t9, -0x74c8(gp)                |         t9 = *((gp - 7474));
    0x0003aed8 move a0, s6                       |         a0 = s6;
    0x0003aedc jalr t9                           |         t9 ();
    0x0003aee0 lw gp, 0x28(sp)                   |         gp = *(var_28h_2);
    0x0003aee4 lw t9, -0x74c8(gp)                |         t9 = *((gp - 7474));
    0x0003aee8 move a0, s5                       |         a0 = s5;
    0x0003aeec jalr t9                           |         t9 ();
    0x0003aef0 lw gp, 0x28(sp)                   |         gp = *(var_28h_2);
    0x0003aef4 lw t9, -0x74c8(gp)                |         t9 = *((gp - 7474));
    0x0003aef8 move a0, s4                       |         a0 = s4;
    0x0003aefc jalr t9                           |         t9 ();
    0x0003af00 lw gp, 0x28(sp)                   |         gp = *(var_28h_2);
    0x0003af04 lw t9, -0x74c8(gp)                |         t9 = *((gp - 7474));
    0x0003af08 move a0, s3                       |         a0 = s3;
    0x0003af0c jalr t9                           |         t9 ();
    0x0003af10 lw gp, 0x28(sp)                   |         gp = *(var_28h_2);
    0x0003af14 lw t9, -0x74c8(gp)                |         t9 = *((gp - 7474));
    0x0003af18 move a0, fp                       |         a0 = fp;
    0x0003af1c jalr t9                           |         t9 ();
    0x0003af20 lw gp, 0x28(sp)                   |         gp = *(var_28h_2);
    0x0003af24 lw t9, -0x74c8(gp)                |         t9 = *((gp - 7474));
    0x0003af28 move a0, s0                       |         a0 = s0;
    0x0003af2c jalr t9                           |         t9 ();
    0x0003af30 lw ra, 0x54(sp)                   |         ra = *(var_54h);
    0x0003af34 move v0, s1                       |         v0 = s1;
    0x0003af38 lw fp, 0x50(sp)                   |         fp = *(var_50h);
    0x0003af3c lw s7, 0x4c(sp)                   |         s7 = *(var_4ch_2);
    0x0003af40 lw s6, 0x48(sp)                   |         s6 = *(var_48h_2);
    0x0003af44 lw s5, 0x44(sp)                   |         s5 = *(var_44h_3);
    0x0003af48 lw s4, 0x40(sp)                   |         s4 = *(var_40h_3);
    0x0003af4c lw s3, 0x3c(sp)                   |         s3 = *(var_3ch_3);
    0x0003af50 lw s2, 0x38(sp)                   |         s2 = *(var_38h_3);
    0x0003af54 lw s1, 0x34(sp)                   |         s1 = *(var_34h_3);
    0x0003af58 lw s0, 0x30(sp)                   |         s0 = *(var_30h_3);
    0x0003af5c addiu sp, sp, 0x58                |         
    0x0003af60 jr ra                             |         return v0;
                                                 |     }
    0x0003af64 lw v0, -0x7fd8(gp)                |     v0 = *(gp);
    0x0003af68 lw a3, -0x7fd8(gp)                |     a3 = *(gp);
    0x0003af6c lw a1, -0x7fd8(gp)                |     a1 = *(gp);
                                                 |     /* str.table_name */
    0x0003af70 addiu v0, v0, 0x6140              |     v0 += 0x6140;
    0x0003af74 lw t9, -0x76c0(gp)                |     t9 = sym.imp.g_assertion_message_expr;
    0x0003af78 sw v0, 0x10(sp)                   |     *(var_10h_3) = v0;
                                                 |     /* str.sql_recordings_table */
    0x0003af7c addiu a3, a3, 0x6a00              |     a3 += 0x6a00;
    0x0003af80 addiu a2, zero, 0x7b              |     a2 = 0x7b;
                                                 |     /* str.sql_create.c */
    0x0003af84 addiu a1, a1, 0x6130              |     a1 += 0x6130;
    0x0003af88 move a0, zero                     |     a0 = 0;
    0x0003af8c jalr t9                           |     return t9 ();
                                                 | }
    ; assembly                                       | /* r2dec pseudo code output */
                                                     | /* /logs/firmware/unblob_extracted/firmware_extract/4325012-58052244.squashfs_v4_le_extract/usr/bin/indexer @ 0x3ec64 */
                                                     | #include <stdint.h>
                                                     |  
    ; (fcn) sym.sql_select_all_blocks_size ()        | void sql_select_all_blocks_size () {
    0x0003ec64 lui gp, 4                             |     
    0x0003ec68 addiu gp, gp, 0x749c                  |     
    0x0003ec6c addu gp, gp, t9                       |     gp += t9;
    0x0003ec70 addiu sp, sp, -0x28                   |     
    0x0003ec74 lw t9, -0x71b4(gp)                    |     t9 = sym.imp.g_string_new;
    0x0003ec78 sw s0, 0x18(sp)                       |     *(var_18h) = s0;
    0x0003ec7c move s0, a0                           |     s0 = a0;
    0x0003ec80 lw a0, -0x7fd8(gp)                    |     a0 = *(gp);
    0x0003ec84 sw ra, 0x24(sp)                       |     *(var_24h) = ra;
    0x0003ec88 sw s2, 0x20(sp)                       |     *(var_20h_2) = s2;
    0x0003ec8c sw s1, 0x1c(sp)                       |     *(var_1ch) = s1;
    0x0003ec90 sw gp, 0x10(sp)                       |     *(var_10h_3) = gp;
    0x0003ec94 addiu a0, a0, 0x403c                  |     a0 += 0x403c;
    0x0003ec98 move s2, a1                           |     s2 = a1;
    0x0003ec9c jalr t9                               |     t9 ();
    0x0003eca0 lw gp, 0x10(sp)                       |     gp = *(var_10h_3);
    0x0003eca4 move a1, s2                           |     a1 = s2;
    0x0003eca8 move a0, s0                           |     a0 = s0;
    0x0003ecac lw t9, -0x7cec(gp)                    |     t9 = sym.sql_table_with_storage_name;
    0x0003ecb0 move s0, v0                           |     s0 = v0;
    0x0003ecb4 bal 0x39fd0                           |     sym_sql_table_with_storage_name ();
    0x0003ecb8 lw gp, 0x10(sp)                       |     gp = *(var_10h_3);
    0x0003ecbc move a2, s2                           |     a2 = s2;
    0x0003ecc0 move a0, s0                           |     a0 = s0;
    0x0003ecc4 lw a1, -0x7fd8(gp)                    |     a1 = *(gp);
    0x0003ecc8 lw t9, -0x772c(gp)                    |     t9 = sym.imp.g_string_append_printf
                                                     |     /* str.SELECT_SUM___s.filesize__AS_filesize_FROM__s */
    0x0003eccc addiu a1, a1, 0x7534                  |     a1 += 0x7534;
    0x0003ecd0 move a3, v0                           |     a3 = v0;
    0x0003ecd4 move s1, v0                           |     s1 = v0;
    0x0003ecd8 jalr t9                               |     t9 ();
    0x0003ecdc lw gp, 0x10(sp)                       |     gp = *(var_10h_3);
    0x0003ece0 lw t9, -0x74c8(gp)                    |     t9 = *((gp - 7474));
    0x0003ece4 move a0, s1                           |     a0 = s1;
    0x0003ece8 jalr t9                               |     t9 ();
    0x0003ecec lw gp, 0x10(sp)                       |     gp = *(var_10h_3);
    0x0003ecf0 lw ra, 0x24(sp)                       |     ra = *(var_24h);
    0x0003ecf4 lw s2, 0x20(sp)                       |     s2 = *(var_20h_2);
    0x0003ecf8 lw s1, 0x1c(sp)                       |     s1 = *(var_1ch);
    0x0003ecfc move a0, s0                           |     a0 = s0;
    0x0003ed00 lw t9, -0x75a8(gp)                    |     t9 = sym.imp.g_string_free;
    0x0003ed04 lw s0, 0x18(sp)                       |     s0 = *(var_18h);
    0x0003ed08 move a1, zero                         |     a1 = 0;
    0x0003ed0c addiu sp, sp, 0x28                    |     
    0x0003ed10 jr t9                                 |     return t9 ();
                                                     | }
    ; assembly                                                   | /* r2dec pseudo code output */
                                                                 | /* /logs/firmware/unblob_extracted/firmware_extract/4325012-58052244.squashfs_v4_le_extract/usr/bin/indexer @ 0x3e984 */
                                                                 | #include <stdint.h>
                                                                 |  
    ; (fcn) sym.sql_select_block_with_rec_info_and_group ()      | void sql_select_block_with_rec_info_and_group () {
    0x0003e984 lui gp, 4                                         |     
    0x0003e988 addiu gp, gp, 0x777c                              |     
    0x0003e98c addu gp, gp, t9                                   |     gp += t9;
    0x0003e990 addiu sp, sp, -0x48                               |     
    0x0003e994 sw gp, 0x30(sp)                                   |     *(var_30h) = gp;
    0x0003e998 sw ra, 0x44(sp)                                   |     *(var_44h) = ra;
    0x0003e99c sw s2, 0x40(sp)                                   |     *(var_40h) = s2;
    0x0003e9a0 sw s1, 0x3c(sp)                                   |     *(var_3ch) = s1;
    0x0003e9a4 sw s0, 0x38(sp)                                   |     *(var_38h) = s0;
    0x0003e9a8 lw v0, -0x7fd8(gp)                                |     v0 = *(gp);
                                                                 |     if (a0 != 0) {
    0x0003e9ac beqz a0, 0x3ea64                                  |         
    0x0003e9b0 move s1, a1                                       |         s1 = a1;
                                                                 |         if (a1 == 0) {
    0x0003e9b4 beqz a1, 0x3ea88                                  |             goto label_0;
                                                                 |         }
    0x0003e9b8 move s0, a0                                       |         s0 = a0;
    0x0003e9bc lw a0, -0x7fd8(gp)                                |         a0 = *(gp);
    0x0003e9c0 lw t9, -0x71b4(gp)                                |         t9 = sym.imp.g_string_new;
    0x0003e9c4 addiu a0, a0, 0x403c                              |         a0 += 0x403c;
    0x0003e9c8 jalr t9                                           |         t9 ();
    0x0003e9cc lw gp, 0x30(sp)                                   |         gp = *(var_30h);
    0x0003e9d0 move a0, s1                                       |         a0 = s1;
    0x0003e9d4 lw t9, -0x7c5c(gp)                                |         t9 = sym.sanitize_quote;
    0x0003e9d8 move s1, v0                                       |         s1 = v0;
    0x0003e9dc bal 0x3a2f0                                       |         sym_sanitize_quote ();
    0x0003e9e0 lw gp, 0x30(sp)                                   |         gp = *(var_30h);
    0x0003e9e4 move s2, v0                                       |         s2 = v0;
    0x0003e9e8 lw v0, (v0)                                       |         v0 = *(v0);
    0x0003e9ec lw a1, -0x7fd8(gp)                                |         a1 = *(gp);
    0x0003e9f0 lw t9, -0x772c(gp)                                |         t9 = sym.imp.g_string_append_printf
    0x0003e9f4 move a3, s0                                       |         a3 = s0;
    0x0003e9f8 move a2, s0                                       |         a2 = s0;
    0x0003e9fc move a0, s1                                       |         a0 = s1;
    0x0003ea00 sw v0, 0x2c(sp)                                   |         *(var_2ch_2) = v0;
    0x0003ea04 sw s0, 0x28(sp)                                   |         *(var_28h) = s0;
    0x0003ea08 sw s0, 0x24(sp)                                   |         *(var_24h_2) = s0;
    0x0003ea0c sw s0, 0x20(sp)                                   |         *(var_20h_3) = s0;
    0x0003ea10 sw s0, 0x1c(sp)                                   |         *(var_1ch_3) = s0;
    0x0003ea14 sw s0, 0x18(sp)                                   |         *(var_18h_3) = s0;
    0x0003ea18 sw s0, 0x14(sp)                                   |         *(var_14h_2) = s0;
    0x0003ea1c sw s0, 0x10(sp)                                   |         *(var_10h) = s0;
                                                                 |         /* str.SELECT__s_AS_Storage__source_name_event_name_recording_group_id__blocks.starttime_AS_blocks_starttime__blocks.stoptime_AS_blocks_stoptime__recordings.filename_AS_recordings_filename__blocks.filename_AS_blocks_filename__action_name__audios_type_audios_properties_videos_type_videos_properties_FROM__s.recordings_LEFT_JOIN__s.recording_sources_ON_recording_sources.idrecordings.recording_source_id_LEFT_JOIN__s.recording_events_ON_recording_events.idrecordings.recording_event_id_LEFT_JOIN__s.recording_actions_ON_recording_actions.idrecordings.recording_action_id_LEFT_JOIN__s.recording_groups_ON_recording_groups.recording_idrecordings.id_LEFT_JOIN__s.audios_ON_audios.idrecordings.audio_id_LEFT_JOIN__s.videos_ON_videos.idrecordings.video_id_LEFT_JOIN__s.blocks_ON_blocks.recording_idrecordings.id_WHERE_blocks.filename_s */
    0x0003ea20 addiu a1, a1, 0x7164                              |         a1 += 0x7164;
    0x0003ea24 jalr t9                                           |         t9 ();
    0x0003ea28 lw gp, 0x30(sp)                                   |         gp = *(var_30h);
    0x0003ea2c move a0, s2                                       |         a0 = s2;
    0x0003ea30 lw t9, -0x75a8(gp)                                |         t9 = sym.imp.g_string_free;
    0x0003ea34 addiu a1, zero, 1                                 |         a1 = 1;
    0x0003ea38 jalr t9                                           |         t9 ();
    0x0003ea3c lw gp, 0x30(sp)                                   |         gp = *(var_30h);
    0x0003ea40 lw ra, 0x44(sp)                                   |         ra = *(var_44h);
    0x0003ea44 lw s2, 0x40(sp)                                   |         s2 = *(var_40h);
    0x0003ea48 lw s0, 0x38(sp)                                   |         s0 = *(var_38h);
    0x0003ea4c move a0, s1                                       |         a0 = s1;
    0x0003ea50 lw t9, -0x75a8(gp)                                |         t9 = sym.imp.g_string_free;
    0x0003ea54 lw s1, 0x3c(sp)                                   |         s1 = *(var_3ch);
    0x0003ea58 move a1, zero                                     |         a1 = 0;
    0x0003ea5c addiu sp, sp, 0x48                                |         
    0x0003ea60 jr t9                                             |         t9 ();
                                                                 |     }
    0x0003ea64 lw a3, -0x7fd8(gp)                                |     a3 = *(gp);
    0x0003ea68 lw a1, -0x7fd8(gp)                                |     a1 = *(gp);
                                                                 |     /* str.storage_id */
    0x0003ea6c addiu v0, v0, -0x3264                             |     v0 += -0x3264;
    0x0003ea70 lw t9, -0x76c0(gp)                                |     t9 = sym.imp.g_assertion_message_expr;
    0x0003ea74 sw v0, 0x10(sp)                                   |     *(var_10h) = v0;
                                                                 |     /* str.sql_select_block_with_rec_info_and_group */
    0x0003ea78 addiu a3, a3, 0x7ed4                              |     a3 += 0x7ed4;
    0x0003ea7c addiu a2, zero, 0x223                             |     a2 = 0x223;
                                                                 |     /* str.sql_read.c */
    0x0003ea80 addiu a1, a1, 0x6bd4                              |     a1 += 0x6bd4;
    0x0003ea84 jalr t9                                           |     t9 ();
                                                                 | label_0:
    0x0003ea88 lw v0, -0x7fd8(gp)                                |     v0 = *(gp);
    0x0003ea8c lw a3, -0x7fd8(gp)                                |     a3 = *(gp);
    0x0003ea90 lw a1, -0x7fd8(gp)                                |     a1 = *(gp);
                                                                 |     /* str.block_id */
    0x0003ea94 addiu v0, v0, 0x1228                              |     v0 += 0x1228;
    0x0003ea98 lw t9, -0x76c0(gp)                                |     t9 = sym.imp.g_assertion_message_expr;
    0x0003ea9c sw v0, 0x10(sp)                                   |     *(var_10h) = v0;
                                                                 |     /* str.sql_select_block_with_rec_info_and_group */
    0x0003eaa0 addiu a3, a3, 0x7ed4                              |     a3 += 0x7ed4;
    0x0003eaa4 addiu a2, zero, 0x224                             |     a2 = aav.0x00000224;
                                                                 |     /* str.sql_read.c */
    0x0003eaa8 addiu a1, a1, 0x6bd4                              |     a1 += 0x6bd4;
    0x0003eaac move a0, zero                                     |     a0 = 0;
    0x0003eab0 jalr t9                                           |     return t9 ();
                                                                 | }
    ; assembly                                           | /* r2dec pseudo code output */
                                                         | /* /logs/firmware/unblob_extracted/firmware_extract/4325012-58052244.squashfs_v4_le_extract/usr/bin/indexer @ 0x3ef08 */
                                                         | #include <stdint.h>
                                                         |  
    ; (fcn) sym.sql_select_blocks_filessize ()           | void sql_select_blocks_filessize () {
    0x0003ef08 lui gp, 4                                 |     
    0x0003ef0c addiu gp, gp, 0x71f8                      |     
    0x0003ef10 addu gp, gp, t9                           |     gp += t9;
    0x0003ef14 addiu sp, sp, -0x38                       |     
    0x0003ef18 lw t9, -0x7cec(gp)                        |     t9 = sym.sql_table_with_storage_name;
    0x0003ef1c sw ra, 0x34(sp)                           |     *(var_34h) = ra;
    0x0003ef20 sw s3, 0x30(sp)                           |     *(var_30h) = s3;
    0x0003ef24 sw s2, 0x2c(sp)                           |     *(var_2ch) = s2;
    0x0003ef28 sw s1, 0x28(sp)                           |     *(var_28h) = s1;
    0x0003ef2c sw s0, 0x24(sp)                           |     *(var_24h) = s0;
    0x0003ef30 sw gp, 0x18(sp)                           |     *(var_18h) = gp;
    0x0003ef34 move s2, a1                               |     s2 = a1;
    0x0003ef38 move s3, a2                               |     s3 = a2;
    0x0003ef3c bal 0x39fd0                               |     sym_sql_table_with_storage_name ();
    0x0003ef40 lw gp, 0x18(sp)                           |     gp = *(var_18h);
    0x0003ef44 move s1, v0                               |     s1 = v0;
    0x0003ef48 lw a0, -0x7fd8(gp)                        |     a0 = *(gp);
    0x0003ef4c lw t9, -0x71b4(gp)                        |     t9 = sym.imp.g_string_new;
    0x0003ef50 addiu a0, a0, 0x403c                      |     a0 += 0x403c;
    0x0003ef54 jalr t9                                   |     t9 ();
    0x0003ef58 lw gp, 0x18(sp)                           |     gp = *(var_18h);
    0x0003ef5c move a3, s1                               |     a3 = s1;
    0x0003ef60 move a2, s2                               |     a2 = s2;
    0x0003ef64 lw a1, -0x7fd8(gp)                        |     a1 = *(gp);
    0x0003ef68 lw t9, -0x772c(gp)                        |     t9 = sym.imp.g_string_append_printf
                                                         |     /* str.SELECT_SUM__s.filesize__FROM__s_WHERE__s.id_IN__s_ */
    0x0003ef6c addiu a1, a1, 0x75c4                      |     a1 += 0x75c4;
    0x0003ef70 move a0, v0                               |     a0 = v0;
    0x0003ef74 sw s3, 0x14(sp)                           |     *(var_14h) = s3;
    0x0003ef78 sw s2, 0x10(sp)                           |     *(var_10h) = s2;
    0x0003ef7c move s0, v0                               |     s0 = v0;
    0x0003ef80 jalr t9                                   |     t9 ();
    0x0003ef84 lw gp, 0x18(sp)                           |     gp = *(var_18h);
    0x0003ef88 lw t9, -0x74c8(gp)                        |     t9 = *((gp - 7474));
    0x0003ef8c move a0, s1                               |     a0 = s1;
    0x0003ef90 jalr t9                                   |     t9 ();
    0x0003ef94 lw gp, 0x18(sp)                           |     gp = *(var_18h);
    0x0003ef98 lw ra, 0x34(sp)                           |     ra = *(var_34h);
    0x0003ef9c lw s3, 0x30(sp)                           |     s3 = *(var_30h);
    0x0003efa0 lw s2, 0x2c(sp)                           |     s2 = *(var_2ch);
    0x0003efa4 lw s1, 0x28(sp)                           |     s1 = *(var_28h);
    0x0003efa8 move a0, s0                               |     a0 = s0;
    0x0003efac lw t9, -0x75a8(gp)                        |     t9 = sym.imp.g_string_free;
    0x0003efb0 lw s0, 0x24(sp)                           |     s0 = *(var_24h);
    0x0003efb4 move a1, zero                             |     a1 = 0;
    0x0003efb8 addiu sp, sp, 0x38                        |     
    0x0003efbc jr t9                                     |     return t9 ();
                                                         | }
    ; assembly                                           | /* r2dec pseudo code output */
                                                         | /* /logs/firmware/unblob_extracted/firmware_extract/4325012-58052244.squashfs_v4_le_extract/usr/bin/indexer @ 0x3eab4 */
                                                         | #include <stdint.h>
                                                         |  
    ; (fcn) sym.sql_select_blocks_total_size ()          | void sql_select_blocks_total_size () {
    0x0003eab4 lui gp, 4                                 |     
    0x0003eab8 addiu gp, gp, 0x764c                      |     
    0x0003eabc addu gp, gp, t9                           |     gp += t9;
    0x0003eac0 addiu sp, sp, -0x40                       |     
    0x0003eac4 sw gp, 0x20(sp)                           |     *(var_20h) = gp;
    0x0003eac8 sw ra, 0x3c(sp)                           |     *(var_3ch_2) = ra;
    0x0003eacc sw s3, 0x38(sp)                           |     *(var_38h_2) = s3;
    0x0003ead0 sw s2, 0x34(sp)                           |     *(var_34h) = s2;
    0x0003ead4 sw s1, 0x30(sp)                           |     *(var_30h_2) = s1;
    0x0003ead8 sw s0, 0x2c(sp)                           |     *(var_2ch) = s0;
    0x0003eadc move s0, a0                               |     s0 = a0;
                                                         |     if (a0 == 0) {
    0x0003eae0 beqz a0, 0x3ec3c                          |         goto label_1;
                                                         |     }
    0x0003eae4 lw a0, -0x7fd8(gp)                        |     a0 = *(gp);
    0x0003eae8 lw t9, -0x71b4(gp)                        |     t9 = sym.imp.g_string_new;
    0x0003eaec addiu a0, a0, 0x403c                      |     a0 += 0x403c;
    0x0003eaf0 move s2, a1                               |     s2 = a1;
    0x0003eaf4 move s3, a2                               |     s3 = a2;
    0x0003eaf8 jalr t9                                   |     t9 ();
    0x0003eafc lw gp, 0x20(sp)                           |     gp = *(var_20h);
    0x0003eb00 move a3, s0                               |     a3 = s0;
    0x0003eb04 move a2, s0                               |     a2 = s0;
    0x0003eb08 lw a1, -0x7fd8(gp)                        |     a1 = *(gp);
    0x0003eb0c lw t9, -0x772c(gp)                        |     t9 = sym.imp.g_string_append_printf
                                                         |     /* str.SELECT__s_AS_Storage__MIN_starttime__AS_starttime__MAX_stoptime__AS_stoptime__SUM_filesize__AS_filesize_FROM__s.blocks */
    0x0003eb10 addiu a1, a1, 0x74b8                      |     a1 += 0x74b8;
    0x0003eb14 move a0, v0                               |     a0 = v0;
    0x0003eb18 move s1, v0                               |     s1 = v0;
    0x0003eb1c jalr t9                                   |     t9 ();
    0x0003eb20 lw gp, 0x20(sp)                           |     gp = *(var_20h);
                                                         |     if (s2 == 0) {
    0x0003eb24 beqz s2, 0x3ec0c                          |         goto label_2;
                                                         |     }
    0x0003eb28 lw v0, -0x7fd8(gp)                        |     v0 = *(gp);
    0x0003eb2c lw a3, -0x7fd8(gp)                        |     a3 = *(gp);
    0x0003eb30 lw a2, -0x7f50(gp)                        |     a2 = *((gp - 8148));
    0x0003eb34 lw a1, -0x7fd8(gp)                        |     a1 = *(gp);
    0x0003eb38 lw t9, -0x7a74(gp)                        |     t9 = sym.sql_select_column_from_table_full;
    0x0003eb3c addiu v0, v0, 0xf80                       |     v0 += 0xf80;
                                                         |     /* str.filename */
    0x0003eb40 addiu a3, a3, 0x7dc                       |     a3 += 0x7dc;
    0x0003eb44 move a0, s0                               |     a0 = s0;
                                                         |     /* esilref: 'id' */
    0x0003eb48 addiu a2, a2, -0x6dbc                     |     a2 += -0x6dbc;
                                                         |     /* esilref: 'recordings' */
    0x0003eb4c addiu a1, a1, -0x21e8                     |     a1 += -0x21e8;
    0x0003eb50 sw zero, 0x1c(sp)                         |     *(var_1ch_2) = 0;
    0x0003eb54 sw zero, 0x18(sp)                         |     *(var_18h_2) = 0;
    0x0003eb58 sw v0, 0x14(sp)                           |     *(var_14h) = v0;
    0x0003eb5c sw s2, 0x10(sp)                           |     *(var_10h_2) = s2;
    0x0003eb60 bal 0x3d76c                               |     sym_sql_select_column_from_table_full ();
    0x0003eb64 lw gp, 0x20(sp)                           |     gp = *(var_20h);
    0x0003eb68 lw a2, (v0)                               |     a2 = *(v0);
    0x0003eb6c move a0, s1                               |     a0 = s1;
    0x0003eb70 lw a1, -0x7fd8(gp)                        |     a1 = *(gp);
    0x0003eb74 lw t9, -0x772c(gp)                        |     t9 = sym.imp.g_string_append_printf
                                                         |     /* esilref: ' WHERE recording_id=(&s)' */
    0x0003eb78 addiu a1, a1, 0x70e4                      |     a1 += 0x70e4;
    0x0003eb7c move s0, v0                               |     s0 = v0;
    0x0003eb80 jalr t9                                   |     t9 ();
    0x0003eb84 lw gp, 0x20(sp)                           |     gp = *(var_20h);
    0x0003eb88 addiu a1, zero, 1                         |     a1 = 1;
    0x0003eb8c lw t9, -0x75a8(gp)                        |     t9 = sym.imp.g_string_free;
    0x0003eb90 move a0, s0                               |     a0 = s0;
    0x0003eb94 jalr t9                                   |     t9 ();
    0x0003eb98 lw gp, 0x20(sp)                           |     gp = *(var_20h);
    0x0003eb9c lw t9, -0x7e0c(gp)                        |     t9 = sym.string_has_content;
    0x0003eba0 move a0, s3                               |     a0 = s3;
    0x0003eba4 bal 0x415b4                               |     sym_string_has_content ();
    0x0003eba8 lw gp, 0x20(sp)                           |     gp = *(var_20h);
                                                         |     if (v0 == 0) {
    0x0003ebac beqz v0, 0x3ebe4                          |         goto label_3;
                                                         |     }
    0x0003ebb0 lw a1, -0x7fd8(gp)                        |     a1 = *(gp);
    0x0003ebb4 lw t9, -0x76d0(gp)                        |     t9 = sym.imp.g_string_append;
                                                         |     /* str._AND */
    0x0003ebb8 addiu a1, a1, 0x1054                      |     a1 += 0x1054;
    0x0003ebbc move a0, s1                               |     a0 = s1;
    0x0003ebc0 jalr t9                                   |     t9 ();
    0x0003ebc4 lw gp, 0x20(sp)                           |     gp = *(var_20h);
                                                         | label_0:
    0x0003ebc8 lw a1, -0x7fd8(gp)                        |     a1 = *(gp);
    0x0003ebcc lw t9, -0x772c(gp)                        |     t9 = sym.imp.g_string_append_printf
    0x0003ebd0 move a2, s3                               |     a2 = s3;
                                                         |     /* esilref: ' &s' */
    0x0003ebd4 addiu a1, a1, 0x1ab4                      |     a1 += 0x1ab4;
    0x0003ebd8 move a0, s1                               |     a0 = s1;
    0x0003ebdc jalr t9                                   |     t9 ();
    0x0003ebe0 lw gp, 0x20(sp)                           |     gp = *(var_20h);
                                                         |     do {
                                                         | label_3:
    0x0003ebe4 lw ra, 0x3c(sp)                           |         ra = *(var_3ch_2);
    0x0003ebe8 lw s3, 0x38(sp)                           |         s3 = *(var_38h_2);
    0x0003ebec lw s2, 0x34(sp)                           |         s2 = *(var_34h);
    0x0003ebf0 lw s0, 0x2c(sp)                           |         s0 = *(var_2ch);
    0x0003ebf4 move a0, s1                               |         a0 = s1;
    0x0003ebf8 lw t9, -0x75a8(gp)                        |         t9 = sym.imp.g_string_free;
    0x0003ebfc lw s1, 0x30(sp)                           |         s1 = *(var_30h_2);
    0x0003ec00 move a1, zero                             |         a1 = 0;
    0x0003ec04 addiu sp, sp, 0x40                        |         
    0x0003ec08 jr t9                                     |         t9 ();
                                                         | label_2:
    0x0003ec0c lw t9, -0x7e0c(gp)                        |         t9 = sym.string_has_content;
    0x0003ec10 move a0, s3                               |         a0 = s3;
    0x0003ec14 bal 0x415b4                               |         sym_string_has_content ();
    0x0003ec18 lw gp, 0x20(sp)                           |         gp = *(var_20h);
    0x0003ec1c beqz v0, 0x3ebe4                          |         
                                                         |     } while (v0 == 0);
    0x0003ec20 lw a1, -0x7fd8(gp)                        |     a1 = *(gp);
    0x0003ec24 lw t9, -0x76d0(gp)                        |     t9 = sym.imp.g_string_append;
                                                         |     /* str._WHERE */
    0x0003ec28 addiu a1, a1, 0x712c                      |     a1 += 0x712c;
    0x0003ec2c move a0, s1                               |     a0 = s1;
    0x0003ec30 jalr t9                                   |     t9 ();
    0x0003ec34 lw gp, 0x20(sp)                           |     gp = *(var_20h);
    0x0003ec38 b 0x3ebc8                                 |     goto label_0;
                                                         | label_1:
    0x0003ec3c lw v0, -0x7fd8(gp)                        |     v0 = *(gp);
    0x0003ec40 lw a3, -0x7fd8(gp)                        |     a3 = *(gp);
    0x0003ec44 lw a1, -0x7fd8(gp)                        |     a1 = *(gp);
                                                         |     /* str.storage_id */
    0x0003ec48 addiu v0, v0, -0x3264                     |     v0 += -0x3264;
    0x0003ec4c lw t9, -0x76c0(gp)                        |     t9 = sym.imp.g_assertion_message_expr;
    0x0003ec50 sw v0, 0x10(sp)                           |     *(var_10h_2) = v0;
                                                         |     /* str.sql_select_blocks_total_size */
    0x0003ec54 addiu a3, a3, 0x7eb4                      |     a3 += 0x7eb4;
    0x0003ec58 addiu a2, zero, 0x24e                     |     a2 = 0x24e;
                                                         |     /* str.sql_read.c */
    0x0003ec5c addiu a1, a1, 0x6bd4                      |     a1 += 0x6bd4;
    0x0003ec60 jalr t9                                   |     return t9 ();
                                                         | }
    ; assembly                                               | /* r2dec pseudo code output */
                                                             | /* /logs/firmware/unblob_extracted/firmware_extract/4325012-58052244.squashfs_v4_le_extract/usr/bin/indexer @ 0x3f588 */
                                                             | #include <stdint.h>
                                                             |  
    ; (fcn) sym.sql_select_column_from_group_by ()           | void sql_select_column_from_group_by () {
    0x0003f588 lui gp, 4                                     |     
    0x0003f58c addiu gp, gp, 0x6b78                          |     
    0x0003f590 addu gp, gp, t9                               |     gp += t9;
    0x0003f594 addiu sp, sp, -0x38                           |     
    0x0003f598 sw gp, 0x18(sp)                               |     *(var_18h_2) = gp;
    0x0003f59c sw ra, 0x34(sp)                               |     *(var_34h_2) = ra;
    0x0003f5a0 sw s1, 0x30(sp)                               |     *(var_30h_2) = s1;
    0x0003f5a4 sw s0, 0x2c(sp)                               |     *(var_2ch_2) = s0;
    0x0003f5a8 lw v0, -0x7fd8(gp)                            |     v0 = *(gp);
                                                             |     if (a0 != 0) {
    0x0003f5ac beqz a0, 0x3f60c                              |         
    0x0003f5b0 move s1, a1                                   |         s1 = a1;
                                                             |         if (a1 == 0) {
    0x0003f5b4 beqz a1, 0x3f630                              |             goto label_0;
                                                             |         }
    0x0003f5b8 move s0, a0                                   |         s0 = a0;
    0x0003f5bc lw a0, -0x7fd8(gp)                            |         a0 = *(gp);
    0x0003f5c0 lw t9, -0x71b4(gp)                            |         t9 = sym.imp.g_string_new;
    0x0003f5c4 addiu a0, a0, 0x403c                          |         a0 += 0x403c;
    0x0003f5c8 jalr t9                                       |         t9 ();
    0x0003f5cc lw gp, 0x18(sp)                               |         gp = *(var_18h_2);
    0x0003f5d0 sw s0, 0x10(sp)                               |         *(var_10h_2) = s0;
    0x0003f5d4 move a3, s1                                   |         a3 = s1;
    0x0003f5d8 lw a1, -0x7fd8(gp)                            |         a1 = *(gp);
    0x0003f5dc lw t9, -0x772c(gp)                            |         t9 = sym.imp.g_string_append_printf
    0x0003f5e0 move a2, s0                                   |         a2 = s0;
    0x0003f5e4 move a0, v0                                   |         a0 = v0;
    0x0003f5e8 sw v0, 0x24(sp)                               |         *(var_24h_2) = v0;
                                                             |         /* str.SELECT__s_FROM___s__GROUP_BY__s */
    0x0003f5ec addiu a1, a1, 0x78e4                          |         a1 += 0x78e4;
    0x0003f5f0 jalr t9                                       |         t9 ();
    0x0003f5f4 lw ra, 0x34(sp)                               |         ra = *(var_34h_2);
    0x0003f5f8 lw v0, 0x24(sp)                               |         v0 = *(var_24h_2);
    0x0003f5fc lw s1, 0x30(sp)                               |         s1 = *(var_30h_2);
    0x0003f600 lw s0, 0x2c(sp)                               |         s0 = *(var_2ch_2);
    0x0003f604 addiu sp, sp, 0x38                            |         
    0x0003f608 jr ra                                         |         return v0;
                                                             |     }
    0x0003f60c lw a3, -0x7fd8(gp)                            |     a3 = *(gp);
    0x0003f610 lw a1, -0x7fd8(gp)                            |     a1 = *(gp);
                                                             |     /* esilref: 'column' */
    0x0003f614 addiu v0, v0, 0x65fc                          |     v0 += 0x65fc;
    0x0003f618 lw t9, -0x76c0(gp)                            |     t9 = sym.imp.g_assertion_message_expr;
    0x0003f61c sw v0, 0x10(sp)                               |     *(var_10h_2) = v0;
                                                             |     /* str.sql_select_column_from_group_by */
    0x0003f620 addiu a3, a3, 0x7dfc                          |     a3 += 0x7dfc;
    0x0003f624 addiu a2, zero, 0x330                         |     a2 = aav.0x00000330;
                                                             |     /* str.sql_read.c */
    0x0003f628 addiu a1, a1, 0x6bd4                          |     a1 += 0x6bd4;
    0x0003f62c jalr t9                                       |     t9 ();
                                                             | label_0:
    0x0003f630 lw v0, -0x7fd8(gp)                            |     v0 = *(gp);
    0x0003f634 lw a3, -0x7fd8(gp)                            |     a3 = *(gp);
    0x0003f638 lw a1, -0x7fd8(gp)                            |     a1 = *(gp);
                                                             |     /* str.condition */
    0x0003f63c addiu v0, v0, 0x78d8                          |     v0 += 0x78d8;
    0x0003f640 lw t9, -0x76c0(gp)                            |     t9 = sym.imp.g_assertion_message_expr;
    0x0003f644 sw v0, 0x10(sp)                               |     *(var_10h_2) = v0;
                                                             |     /* str.sql_select_column_from_group_by */
    0x0003f648 addiu a3, a3, 0x7dfc                          |     a3 += 0x7dfc;
    0x0003f64c addiu a2, zero, 0x331                         |     a2 = 0x331;
                                                             |     /* str.sql_read.c */
    0x0003f650 addiu a1, a1, 0x6bd4                          |     a1 += 0x6bd4;
    0x0003f654 move a0, zero                                 |     a0 = 0;
    0x0003f658 jalr t9                                       |     return t9 ();
                                                             | }
    ; assembly                                                   | /* r2dec pseudo code output */
                                                                 | /* /logs/firmware/unblob_extracted/firmware_extract/4325012-58052244.squashfs_v4_le_extract/usr/bin/indexer @ 0x3d9a0 */
                                                                 | #include <stdint.h>
                                                                 |  
    ; (fcn) sym.sql_select_column_from_table_condition ()        | void sql_select_column_from_table_condition () {
    0x0003d9a0 lui gp, 5                                         |     
    0x0003d9a4 addiu gp, gp, -0x78a0                             |     
    0x0003d9a8 addu gp, gp, t9                                   |     gp += t9;
    0x0003d9ac addiu sp, sp, -0x30                               |     
    0x0003d9b0 sw gp, 0x18(sp)                                   |     *(var_18h_3) = gp;
    0x0003d9b4 sw ra, 0x2c(sp)                                   |     *(var_2ch_4) = ra;
    0x0003d9b8 sw s2, 0x28(sp)                                   |     *(var_28h) = s2;
    0x0003d9bc sw s1, 0x24(sp)                                   |     *(var_24h) = s1;
    0x0003d9c0 sw s0, 0x20(sp)                                   |     *(var_20h_2) = s0;
    0x0003d9c4 lw v0, -0x7fd8(gp)                                |     v0 = *(gp);
                                                                 |     if (a0 != 0) {
    0x0003d9c8 beqz a0, 0x3da60                                  |         
    0x0003d9cc lw t9, -0x7cec(gp)                                |         t9 = sym.sql_table_with_storage_name;
                                                                 |         if (a2 == 0) {
    0x0003d9d0 beqz a2, 0x3da84                                  |             goto label_0;
                                                                 |         }
    0x0003d9d4 sw a2, 0x38(sp)                                   |         *(var_38h_2) = a2;
    0x0003d9d8 move s2, a3                                       |         s2 = a3;
    0x0003d9dc bal 0x39fd0                                       |         sym_sql_table_with_storage_name ();
    0x0003d9e0 lw gp, 0x18(sp)                                   |         gp = *(var_18h_3);
    0x0003d9e4 move s1, v0                                       |         s1 = v0;
    0x0003d9e8 lw a0, -0x7fd8(gp)                                |         a0 = *(gp);
    0x0003d9ec lw t9, -0x71b4(gp)                                |         t9 = sym.imp.g_string_new;
                                                                 |         /* str.SELECT */
    0x0003d9f0 addiu a0, a0, 0x6e6c                              |         a0 += 0x6e6c;
    0x0003d9f4 jalr t9                                           |         t9 ();
    0x0003d9f8 lw gp, 0x18(sp)                                   |         gp = *(var_18h_3);
    0x0003d9fc lw a2, 0x38(sp)                                   |         a2 = *(var_38h_2);
    0x0003da00 move a0, v0                                       |         a0 = v0;
    0x0003da04 lw a1, -0x7fd8(gp)                                |         a1 = *(gp);
    0x0003da08 lw t9, -0x772c(gp)                                |         t9 = sym.imp.g_string_append_printf
    0x0003da0c move a3, s1                                       |         a3 = s1;
                                                                 |         /* str.__s_FROM__s_ */
    0x0003da10 addiu a1, a1, 0x6eb4                              |         a1 += 0x6eb4;
    0x0003da14 move s0, v0                                       |         s0 = v0;
    0x0003da18 jalr t9                                           |         t9 ();
    0x0003da1c lw gp, 0x18(sp)                                   |         gp = *(var_18h_3);
    0x0003da20 lw t9, -0x74c8(gp)                                |         t9 = *((gp - 7474));
    0x0003da24 move a0, s1                                       |         a0 = s1;
    0x0003da28 jalr t9                                           |         t9 ();
    0x0003da2c lw gp, 0x18(sp)                                   |         gp = *(var_18h_3);
    0x0003da30 lw t9, -0x7e0c(gp)                                |         t9 = sym.string_has_content;
    0x0003da34 move a0, s2                                       |         a0 = s2;
    0x0003da38 bal 0x415b4                                       |         sym_string_has_content ();
    0x0003da3c lw gp, 0x18(sp)                                   |         gp = *(var_18h_3);
                                                                 |         if (v0 != 0) {
    0x0003da40 bnez v0, 0x3dab0                                  |             goto label_1;
                                                                 |         }
    0x0003da44 lw ra, 0x2c(sp)                                   |         ra = *(var_2ch_4);
    0x0003da48 move v0, s0                                       |         v0 = s0;
    0x0003da4c lw s2, 0x28(sp)                                   |         s2 = *(var_28h);
    0x0003da50 lw s1, 0x24(sp)                                   |         s1 = *(var_24h);
    0x0003da54 lw s0, 0x20(sp)                                   |         s0 = *(var_20h_2);
    0x0003da58 addiu sp, sp, 0x30                                |         
    0x0003da5c jr ra                                             |         return v0;
                                                                 |     }
    0x0003da60 lw a3, -0x7fd8(gp)                                |     a3 = *(gp);
    0x0003da64 lw a1, -0x7fd8(gp)                                |     a1 = *(gp);
                                                                 |     /* str.storage_id */
    0x0003da68 addiu v0, v0, -0x3264                             |     v0 += -0x3264;
    0x0003da6c lw t9, -0x76c0(gp)                                |     t9 = sym.imp.g_assertion_message_expr;
    0x0003da70 sw v0, 0x10(sp)                                   |     *(var_10h_4) = v0;
                                                                 |     /* str.sql_select_column_from_table_condition */
    0x0003da74 addiu a3, a3, 0x7fa8                              |     a3 += 0x7fa8;
    0x0003da78 addiu a2, zero, 0x84                              |     a2 = 0x84;
                                                                 |     /* str.sql_read.c */
    0x0003da7c addiu a1, a1, 0x6bd4                              |     a1 += 0x6bd4;
    0x0003da80 jalr t9                                           |     t9 ();
                                                                 | label_0:
    0x0003da84 lw v0, -0x7fd8(gp)                                |     v0 = *(gp);
    0x0003da88 lw a3, -0x7fd8(gp)                                |     a3 = *(gp);
    0x0003da8c lw a1, -0x7fd8(gp)                                |     a1 = *(gp);
                                                                 |     /* esilref: 'column' */
    0x0003da90 addiu v0, v0, 0x65fc                              |     v0 += 0x65fc;
    0x0003da94 lw t9, -0x76c0(gp)                                |     t9 = sym.imp.g_assertion_message_expr;
    0x0003da98 sw v0, 0x10(sp)                                   |     *(var_10h_4) = v0;
                                                                 |     /* str.sql_select_column_from_table_condition */
    0x0003da9c addiu a3, a3, 0x7fa8                              |     a3 += 0x7fa8;
    0x0003daa0 addiu a2, zero, 0x85                              |     a2 = 0x85;
                                                                 |     /* str.sql_read.c */
    0x0003daa4 addiu a1, a1, 0x6bd4                              |     a1 += 0x6bd4;
    0x0003daa8 move a0, zero                                     |     a0 = 0;
    0x0003daac jalr t9                                           |     t9 ();
                                                                 | label_1:
    0x0003dab0 lw a1, -0x7fd8(gp)                                |     a1 = *(gp);
    0x0003dab4 lw t9, -0x772c(gp)                                |     t9 = sym.imp.g_string_append_printf
    0x0003dab8 move a2, s2                                       |     a2 = s2;
    0x0003dabc move a0, s0                                       |     a0 = s0;
                                                                 |     /* str.WHERE__s */
    0x0003dac0 addiu a1, a1, 0x6844                              |     a1 += 0x6844;
    0x0003dac4 jalr t9                                           |     t9 ();
    0x0003dac8 lw ra, 0x2c(sp)                                   |     ra = *(var_2ch_4);
    0x0003dacc move v0, s0                                       |     v0 = s0;
    0x0003dad0 lw s2, 0x28(sp)                                   |     s2 = *(var_28h);
    0x0003dad4 lw s1, 0x24(sp)                                   |     s1 = *(var_24h);
    0x0003dad8 lw s0, 0x20(sp)                                   |     s0 = *(var_20h_2);
    0x0003dadc addiu sp, sp, 0x30                                |     
    0x0003dae0 jr ra                                             |     return v0;
                                                                 | }
    ; assembly                                               | /* r2dec pseudo code output */
                                                             | /* /logs/firmware/unblob_extracted/firmware_extract/4325012-58052244.squashfs_v4_le_extract/usr/bin/indexer @ 0x3d76c */
                                                             | #include <stdint.h>
                                                             |  
    ; (fcn) sym.sql_select_column_from_table_full ()         | void sql_select_column_from_table_full () {
    0x0003d76c lui gp, 5                                     |     
    0x0003d770 addiu gp, gp, -0x766c                         |     
    0x0003d774 addu gp, gp, t9                               |     gp += t9;
    0x0003d778 addiu sp, sp, -0x38                           |     
    0x0003d77c sw gp, 0x18(sp)                               |     *(var_18h) = gp;
    0x0003d780 sw ra, 0x34(sp)                               |     *(var_34h) = ra;
    0x0003d784 sw s4, 0x30(sp)                               |     *(var_30h) = s4;
    0x0003d788 sw s3, 0x2c(sp)                               |     *(var_2ch) = s3;
    0x0003d78c sw s2, 0x28(sp)                               |     *(var_28h) = s2;
    0x0003d790 sw s1, 0x24(sp)                               |     *(var_24h) = s1;
    0x0003d794 sw s0, 0x20(sp)                               |     *(var_20h) = s0;
    0x0003d798 lw t9, -0x7cec(gp)                            |     t9 = sym.sql_table_with_storage_name;
                                                             |     if (a2 == 0) {
    0x0003d79c beqz a2, 0x3d8d4                              |         goto label_1;
                                                             |     }
    0x0003d7a0 move s1, a2                                   |     s1 = a2;
    0x0003d7a4 move s4, a1                                   |     s4 = a1;
    0x0003d7a8 move s3, a3                                   |     s3 = a3;
    0x0003d7ac bal 0x39fd0                                   |     sym_sql_table_with_storage_name ();
    0x0003d7b0 lw gp, 0x18(sp)                               |     gp = *(var_18h);
    0x0003d7b4 move s2, v0                                   |     s2 = v0;
    0x0003d7b8 lw a0, -0x7fd8(gp)                            |     a0 = *(gp);
    0x0003d7bc lw t9, -0x71b4(gp)                            |     t9 = sym.imp.g_string_new;
                                                             |     /* str.SELECT */
    0x0003d7c0 addiu a0, a0, 0x6e6c                          |     a0 += 0x6e6c;
    0x0003d7c4 jalr t9                                       |     t9 ();
    0x0003d7c8 move s0, v0                                   |     s0 = v0;
    0x0003d7cc lw v0, 0x50(sp)                               |     v0 = *(arg_50h);
    0x0003d7d0 lw gp, 0x18(sp)                               |     gp = *(var_18h);
    0x0003d7d4 bnez v0, 0x3d900                              |     
                                                             |     while (1) {
    0x0003d7d8 lw a1, -0x7fd8(gp)                            |         a1 = *(gp);
    0x0003d7dc lw t9, -0x772c(gp)                            |         t9 = sym.imp.g_string_append_printf
    0x0003d7e0 move a3, s2                                   |         a3 = s2;
    0x0003d7e4 move a2, s1                                   |         a2 = s1;
                                                             |         /* str.__s_FROM__s */
    0x0003d7e8 addiu a1, a1, 0x6e7c                          |         a1 += 0x6e7c;
    0x0003d7ec move a0, s0                                   |         a0 = s0;
    0x0003d7f0 jalr t9                                       |         t9 ();
    0x0003d7f4 lw gp, 0x18(sp)                               |         gp = *(var_18h);
    0x0003d7f8 lw t9, -0x74c8(gp)                            |         t9 = *((gp - 7474));
    0x0003d7fc move a0, s2                                   |         a0 = s2;
    0x0003d800 jalr t9                                       |         t9 ();
    0x0003d804 lw gp, 0x18(sp)                               |         gp = *(var_18h);
                                                             |         if (s3 != 0) {
    0x0003d808 beqz s3, 0x3d8b0                              |             
    0x0003d80c lw t9, -0x7e0c(gp)                            |             t9 = sym.string_has_content;
    0x0003d810 lw a0, 0x48(sp)                               |             a0 = *(arg_48h);
    0x0003d814 bal 0x415b4                                   |             sym_string_has_content ();
    0x0003d818 lw gp, 0x18(sp)                               |             gp = *(var_18h);
                                                             |             if (v0 == 0) {
    0x0003d81c bnez v0, 0x3d838                              |                 
    0x0003d820 lw v0, 0x54(sp)                               |                 v0 = *(arg_54h);
    0x0003d824 lw ra, 0x34(sp)                               |                 ra = *(var_34h);
                                                             |                 if (v0 == 0) {
    0x0003d828 beqz v0, 0x3d8b4                              |                     goto label_2;
                                                             |                 }
    0x0003d82c lw v0, 0x48(sp)                               |                 v0 = *(arg_48h);
    0x0003d830 move v0, s0                                   |                 v0 = s0;
                                                             |                 if (v0 == 0) {
    0x0003d834 beqz v0, 0x3d8b8                              |                     goto label_3;
                                                             |                 }
                                                             |             }
    0x0003d838 lw v0, 0x4c(sp)                               |             v0 = *(arg_4ch);
    0x0003d83c lw a1, -0x7fd8(gp)                            |             a1 = *(gp);
                                                             |             if (v0 == 0) {
    0x0003d840 beqz v0, 0x3d8b0                              |                 goto label_4;
                                                             |             }
    0x0003d844 lw t9, -0x778c(gp)                            |             t9 = sym.imp.g_strcmp0;
    0x0003d848 addiu a1, a1, 0xf80                           |             a1 += 0xf80;
    0x0003d84c move a0, v0                                   |             a0 = v0;
    0x0003d850 jalr t9                                       |             t9 ();
    0x0003d854 lw gp, 0x18(sp)                               |             gp = *(var_18h);
                                                             |             if (v0 != 0) {
    0x0003d858 bnez v0, 0x3d91c                              |                 goto label_5;
                                                             |             }
    0x0003d85c lw t9, -0x7c5c(gp)                            |             t9 = sym.sanitize_quote;
    0x0003d860 lw a0, 0x48(sp)                               |             a0 = *(arg_48h);
    0x0003d864 bal 0x3a2f0                                   |             sym_sanitize_quote ();
    0x0003d868 lw gp, 0x18(sp)                               |             gp = *(var_18h);
    0x0003d86c move s1, v0                                   |             s1 = v0;
                                                             | label_0:
    0x0003d870 lw v0, (s1)                                   |             v0 = *(s1);
    0x0003d874 lw a1, -0x7fd8(gp)                            |             a1 = *(gp);
    0x0003d878 sw v0, 0x14(sp)                               |             *(var_14h) = v0;
    0x0003d87c lw v0, 0x4c(sp)                               |             v0 = *(arg_4ch);
    0x0003d880 lw t9, -0x772c(gp)                            |             t9 = sym.imp.g_string_append_printf
    0x0003d884 move a3, s3                                   |             a3 = s3;
    0x0003d888 move a2, s4                                   |             a2 = s4;
                                                             |             /* str._WHERE__s._s__s__s */
    0x0003d88c addiu a1, a1, 0x6ea0                          |             a1 += 0x6ea0;
    0x0003d890 move a0, s0                                   |             a0 = s0;
    0x0003d894 sw v0, 0x10(sp)                               |             *(var_10h) = v0;
    0x0003d898 jalr t9                                       |             t9 ();
    0x0003d89c lw gp, 0x18(sp)                               |             gp = *(var_18h);
    0x0003d8a0 addiu a1, zero, 1                             |             a1 = 1;
    0x0003d8a4 lw t9, -0x75a8(gp)                            |             t9 = sym.imp.g_string_free;
    0x0003d8a8 move a0, s1                                   |             a0 = s1;
    0x0003d8ac jalr t9                                       |             t9 ();
                                                             |         }
                                                             | label_4:
    0x0003d8b0 lw ra, 0x34(sp)                               |         ra = *(var_34h);
                                                             | label_2:
    0x0003d8b4 move v0, s0                                   |         v0 = s0;
                                                             | label_3:
    0x0003d8b8 lw s4, 0x30(sp)                               |         s4 = *(var_30h);
    0x0003d8bc lw s3, 0x2c(sp)                               |         s3 = *(var_2ch);
    0x0003d8c0 lw s2, 0x28(sp)                               |         s2 = *(var_28h);
    0x0003d8c4 lw s1, 0x24(sp)                               |         s1 = *(var_24h);
    0x0003d8c8 lw s0, 0x20(sp)                               |         s0 = *(var_20h);
    0x0003d8cc addiu sp, sp, 0x38                            |         
    0x0003d8d0 jr ra                                         |         return v0;
                                                             | label_1:
    0x0003d8d4 lw v0, -0x7fd8(gp)                            |         v0 = *(gp);
    0x0003d8d8 lw a3, -0x7fd8(gp)                            |         a3 = *(gp);
    0x0003d8dc lw a1, -0x7fd8(gp)                            |         a1 = *(gp);
                                                             |         /* esilref: 'column' */
    0x0003d8e0 addiu v0, v0, 0x65fc                          |         v0 += 0x65fc;
    0x0003d8e4 lw t9, -0x76c0(gp)                            |         t9 = sym.imp.g_assertion_message_expr;
    0x0003d8e8 sw v0, 0x10(sp)                               |         *(var_10h) = v0;
                                                             |         /* str.sql_select_column_from_table_full */
    0x0003d8ec addiu a3, a3, 0x7fd0                          |         a3 += 0x7fd0;
    0x0003d8f0 addiu a2, zero, 0x56                          |         a2 = 0x56;
                                                             |         /* str.sql_read.c */
    0x0003d8f4 addiu a1, a1, 0x6bd4                          |         a1 += 0x6bd4;
    0x0003d8f8 move a0, zero                                 |         a0 = 0;
    0x0003d8fc jalr t9                                       |         t9 ();
    0x0003d900 lw a1, -0x7fd8(gp)                            |         a1 = *(gp);
    0x0003d904 lw t9, -0x76d0(gp)                            |         t9 = sym.imp.g_string_append;
                                                             |         /* str._DISTINCT */
    0x0003d908 addiu a1, a1, 0x6e94                          |         a1 += 0x6e94;
    0x0003d90c move a0, s0                                   |         a0 = s0;
    0x0003d910 jalr t9                                       |         t9 ();
    0x0003d914 lw gp, 0x18(sp)                               |         gp = *(var_18h);
    0x0003d918 b 0x3d7d8                                     |         
                                                             |     }
                                                             | label_5:
    0x0003d91c lw a0, -0x7fd8(gp)                            |     a0 = *(gp);
    0x0003d920 lw t9, -0x71b4(gp)                            |     t9 = sym.imp.g_string_new;
    0x0003d924 addiu a0, a0, 0x403c                          |     a0 += 0x403c;
    0x0003d928 jalr t9                                       |     t9 ();
    0x0003d92c lw gp, 0x18(sp)                               |     gp = *(var_18h);
    0x0003d930 lw a2, 0x48(sp)                               |     a2 = *(arg_48h);
    0x0003d934 move a0, v0                                   |     a0 = v0;
    0x0003d938 lw a1, -0x7fd8(gp)                            |     a1 = *(gp);
    0x0003d93c lw t9, -0x772c(gp)                            |     t9 = sym.imp.g_string_append_printf
                                                             |     /* esilref: ' (&s)' */
    0x0003d940 addiu a1, a1, 0x1a6c                          |     a1 += 0x1a6c;
    0x0003d944 move s1, v0                                   |     s1 = v0;
    0x0003d948 jalr t9                                       |     t9 ();
    0x0003d94c lw gp, 0x18(sp)                               |     gp = *(var_18h);
    0x0003d950 b 0x3d870                                     |     goto label_0;
                                                             | }
    ; assembly                                                   | /* r2dec pseudo code output */
                                                                 | /* /logs/firmware/unblob_extracted/firmware_extract/4325012-58052244.squashfs_v4_le_extract/usr/bin/indexer @ 0x3ee60 */
                                                                 | #include <stdint.h>
                                                                 |  
    ; (fcn) sym.sql_select_id_from_recording_filename ()         | void sql_select_id_from_recording_filename () {
    0x0003ee60 lui gp, 4                                         |     
    0x0003ee64 addiu gp, gp, 0x72a0                              |     
    0x0003ee68 addu gp, gp, t9                                   |     gp += t9;
    0x0003ee6c addiu sp, sp, -0x28                               |     
    0x0003ee70 lw t9, -0x71b4(gp)                                |     t9 = sym.imp.g_string_new;
    0x0003ee74 sw s0, 0x18(sp)                                   |     *(var_18h) = s0;
    0x0003ee78 move s0, a0                                       |     s0 = a0;
    0x0003ee7c lw a0, -0x7fd8(gp)                                |     a0 = *(gp);
    0x0003ee80 sw ra, 0x24(sp)                                   |     *(var_24h) = ra;
    0x0003ee84 sw s2, 0x20(sp)                                   |     *(var_20h_2) = s2;
    0x0003ee88 sw s1, 0x1c(sp)                                   |     *(var_1ch) = s1;
    0x0003ee8c sw gp, 0x10(sp)                                   |     *(var_10h_2) = gp;
    0x0003ee90 addiu a0, a0, 0x403c                              |     a0 += 0x403c;
    0x0003ee94 move s2, a1                                       |     s2 = a1;
    0x0003ee98 jalr t9                                           |     t9 ();
    0x0003ee9c lw gp, 0x10(sp)                                   |     gp = *(var_10h_2);
    0x0003eea0 move a0, s0                                       |     a0 = s0;
    0x0003eea4 move s0, v0                                       |     s0 = v0;
    0x0003eea8 lw a1, -0x7fd8(gp)                                |     a1 = *(gp);
    0x0003eeac lw t9, -0x7cec(gp)                                |     t9 = sym.sql_table_with_storage_name;
                                                                 |     /* esilref: 'recordings' */
    0x0003eeb0 addiu a1, a1, -0x21e8                             |     a1 += -0x21e8;
    0x0003eeb4 bal 0x39fd0                                       |     sym_sql_table_with_storage_name ();
    0x0003eeb8 lw gp, 0x10(sp)                                   |     gp = *(var_10h_2);
    0x0003eebc move a3, s2                                       |     a3 = s2;
    0x0003eec0 move a2, v0                                       |     a2 = v0;
    0x0003eec4 lw a1, -0x7fd8(gp)                                |     a1 = *(gp);
    0x0003eec8 lw t9, -0x772c(gp)                                |     t9 = sym.imp.g_string_append_printf
                                                                 |     /* str.SELECT_id_FROM__s_WHERE_filename_s */
    0x0003eecc addiu a1, a1, 0x75a0                              |     a1 += 0x75a0;
    0x0003eed0 move a0, s0                                       |     a0 = s0;
    0x0003eed4 move s1, v0                                       |     s1 = v0;
    0x0003eed8 jalr t9                                           |     t9 ();
    0x0003eedc lw gp, 0x10(sp)                                   |     gp = *(var_10h_2);
    0x0003eee0 lw t9, -0x74c8(gp)                                |     t9 = *((gp - 7474));
    0x0003eee4 move a0, s1                                       |     a0 = s1;
    0x0003eee8 jalr t9                                           |     t9 ();
    0x0003eeec lw ra, 0x24(sp)                                   |     ra = *(var_24h);
    0x0003eef0 move v0, s0                                       |     v0 = s0;
    0x0003eef4 lw s2, 0x20(sp)                                   |     s2 = *(var_20h_2);
    0x0003eef8 lw s1, 0x1c(sp)                                   |     s1 = *(var_1ch);
    0x0003eefc lw s0, 0x18(sp)                                   |     s0 = *(var_18h);
    0x0003ef00 addiu sp, sp, 0x28                                |     
    0x0003ef04 jr ra                                             |     return v0;
                                                                 | }
    ; assembly                                               | /* r2dec pseudo code output */
                                                             | /* /logs/firmware/unblob_extracted/firmware_extract/4325012-58052244.squashfs_v4_le_extract/usr/bin/indexer @ 0x3ed14 */
                                                             | #include <stdint.h>
                                                             |  
    ; (fcn) sym.sql_select_recordings_filessize ()           | void sql_select_recordings_filessize () {
    0x0003ed14 lui gp, 4                                     |     
    0x0003ed18 addiu gp, gp, 0x73ec                          |     
    0x0003ed1c addu gp, gp, t9                               |     gp += t9;
    0x0003ed20 addiu sp, sp, -0x40                           |     
    0x0003ed24 sw gp, 0x20(sp)                               |     *(var_20h) = gp;
    0x0003ed28 sw ra, 0x3c(sp)                               |     *(var_3ch) = ra;
    0x0003ed2c sw s4, 0x38(sp)                               |     *(var_38h) = s4;
    0x0003ed30 sw s3, 0x34(sp)                               |     *(var_34h) = s3;
    0x0003ed34 sw s2, 0x30(sp)                               |     *(var_30h) = s2;
    0x0003ed38 sw s1, 0x2c(sp)                               |     *(var_2ch) = s1;
    0x0003ed3c sw s0, 0x28(sp)                               |     *(var_28h) = s0;
    0x0003ed40 lw t9, -0x7cec(gp)                            |     t9 = sym.sql_table_with_storage_name;
                                                             |     if (a0 != 0) {
    0x0003ed44 beqz a0, 0x3ee38                              |         
    0x0003ed48 move s4, a1                                   |         s4 = a1;
    0x0003ed4c move a1, a2                                   |         a1 = a2;
    0x0003ed50 move s1, a2                                   |         s1 = a2;
    0x0003ed54 move s3, a3                                   |         s3 = a3;
    0x0003ed58 move s0, a0                                   |         s0 = a0;
    0x0003ed5c bal 0x39fd0                                   |         sym_sql_table_with_storage_name ();
    0x0003ed60 lw gp, 0x20(sp)                               |         gp = *(var_20h);
    0x0003ed64 move s2, v0                                   |         s2 = v0;
    0x0003ed68 lw a0, -0x7fd8(gp)                            |         a0 = *(gp);
    0x0003ed6c lw t9, -0x71b4(gp)                            |         t9 = sym.imp.g_string_new;
    0x0003ed70 addiu a0, a0, 0x403c                          |         a0 += 0x403c;
    0x0003ed74 jalr t9                                       |         t9 ();
    0x0003ed78 lw gp, 0x20(sp)                               |         gp = *(var_20h);
    0x0003ed7c move a1, s4                                   |         a1 = s4;
    0x0003ed80 move a0, s0                                   |         a0 = s0;
    0x0003ed84 lw v1, -0x7fd8(gp)                            |         v1 = *(gp);
    0x0003ed88 lw a3, -0x7fd8(gp)                            |         a3 = *(gp);
    0x0003ed8c lw a2, -0x7f50(gp)                            |         a2 = *((gp - 8148));
                                                             |         /* esilref: 'IN' */
    0x0003ed90 addiu v1, v1, 0xbb8                           |         v1 += 0xbb8;
    0x0003ed94 lw t9, -0x7a74(gp)                            |         t9 = sym.sql_select_column_from_table_full;
    0x0003ed98 sw v1, 0x14(sp)                               |         *(var_14h) = v1;
    0x0003ed9c sw s3, 0x10(sp)                               |         *(var_10h) = s3;
                                                             |         /* str.filename */
    0x0003eda0 addiu a3, a3, 0x7dc                           |         a3 += 0x7dc;
                                                             |         /* esilref: 'id' */
    0x0003eda4 addiu a2, a2, -0x6dbc                         |         a2 += -0x6dbc;
    0x0003eda8 sw zero, 0x1c(sp)                             |         *(var_1ch_2) = 0;
    0x0003edac sw zero, 0x18(sp)                             |         *(var_18h_2) = 0;
    0x0003edb0 move s0, v0                                   |         s0 = v0;
    0x0003edb4 bal 0x3d76c                                   |         sym_sql_select_column_from_table_full ();
    0x0003edb8 lw gp, 0x20(sp)                               |         gp = *(var_20h);
    0x0003edbc move s3, v0                                   |         s3 = v0;
    0x0003edc0 lw v0, (v0)                                   |         v0 = *(v0);
    0x0003edc4 lw a1, -0x7fd8(gp)                            |         a1 = *(gp);
    0x0003edc8 lw t9, -0x772c(gp)                            |         t9 = sym.imp.g_string_append_printf
    0x0003edcc move a3, s2                                   |         a3 = s2;
    0x0003edd0 move a2, s1                                   |         a2 = s1;
    0x0003edd4 move a0, s0                                   |         a0 = s0;
    0x0003edd8 sw v0, 0x10(sp)                               |         *(var_10h) = v0;
                                                             |         /* str.SELECT_SUM__s.filesize__FROM__s_WHERE_recording_id_IN__s_ */
    0x0003eddc addiu a1, a1, 0x7564                          |         a1 += 0x7564;
    0x0003ede0 jalr t9                                       |         t9 ();
    0x0003ede4 lw gp, 0x20(sp)                               |         gp = *(var_20h);
    0x0003ede8 addiu a1, zero, 1                             |         a1 = 1;
    0x0003edec lw t9, -0x75a8(gp)                            |         t9 = sym.imp.g_string_free;
    0x0003edf0 move a0, s3                                   |         a0 = s3;
    0x0003edf4 jalr t9                                       |         t9 ();
    0x0003edf8 lw gp, 0x20(sp)                               |         gp = *(var_20h);
    0x0003edfc lw t9, -0x74c8(gp)                            |         t9 = *((gp - 7474));
    0x0003ee00 move a0, s2                                   |         a0 = s2;
    0x0003ee04 jalr t9                                       |         t9 ();
    0x0003ee08 lw gp, 0x20(sp)                               |         gp = *(var_20h);
    0x0003ee0c lw ra, 0x3c(sp)                               |         ra = *(var_3ch);
    0x0003ee10 lw s4, 0x38(sp)                               |         s4 = *(var_38h);
    0x0003ee14 lw s3, 0x34(sp)                               |         s3 = *(var_34h);
    0x0003ee18 lw s2, 0x30(sp)                               |         s2 = *(var_30h);
    0x0003ee1c lw s1, 0x2c(sp)                               |         s1 = *(var_2ch);
    0x0003ee20 move a0, s0                                   |         a0 = s0;
    0x0003ee24 lw t9, -0x75a8(gp)                            |         t9 = sym.imp.g_string_free;
    0x0003ee28 lw s0, 0x28(sp)                               |         s0 = *(var_28h);
    0x0003ee2c move a1, zero                                 |         a1 = 0;
    0x0003ee30 addiu sp, sp, 0x40                            |         
    0x0003ee34 jr t9                                         |         t9 ();
                                                             |     }
    0x0003ee38 lw v0, -0x7fd8(gp)                            |     v0 = *(gp);
    0x0003ee3c lw a3, -0x7fd8(gp)                            |     a3 = *(gp);
    0x0003ee40 lw a1, -0x7fd8(gp)                            |     a1 = *(gp);
                                                             |     /* str.storage_id */
    0x0003ee44 addiu v0, v0, -0x3264                         |     v0 += -0x3264;
    0x0003ee48 lw t9, -0x76c0(gp)                            |     t9 = sym.imp.g_assertion_message_expr;
    0x0003ee4c sw v0, 0x10(sp)                               |     *(var_10h) = v0;
                                                             |     /* str.sql_select_recordings_filessize */
    0x0003ee50 addiu a3, a3, 0x7e94                          |     a3 += 0x7e94;
    0x0003ee54 addiu a2, zero, 0x283                         |     a2 = 0x283;
                                                             |     /* str.sql_read.c */
    0x0003ee58 addiu a1, a1, 0x6bd4                          |     a1 += 0x6bd4;
    0x0003ee5c jalr t9                                       |     return t9 ();
                                                             | }
    ; assembly                                       | /* r2dec pseudo code output */
                                                     | /* /logs/firmware/unblob_extracted/firmware_extract/4325012-58052244.squashfs_v4_le_extract/usr/bin/indexer @ 0x3efc0 */
                                                     | #include <stdint.h>
                                                     |  
    ; (fcn) sym.sql_select_start_stop_time ()        | void sql_select_start_stop_time () {
    0x0003efc0 lui gp, 4                             |     
    0x0003efc4 addiu gp, gp, 0x7140                  |     
    0x0003efc8 addu gp, gp, t9                       |     gp += t9;
    0x0003efcc addiu sp, sp, -0x38                   |     
    0x0003efd0 sw gp, 0x18(sp)                       |     *(var_18h) = gp;
    0x0003efd4 sw ra, 0x34(sp)                       |     *(var_34h) = ra;
    0x0003efd8 sw s4, 0x30(sp)                       |     *(var_30h) = s4;
    0x0003efdc sw s3, 0x2c(sp)                       |     *(var_2ch) = s3;
    0x0003efe0 sw s2, 0x28(sp)                       |     *(var_28h) = s2;
    0x0003efe4 sw s1, 0x24(sp)                       |     *(var_24h) = s1;
    0x0003efe8 sw s0, 0x20(sp)                       |     *(var_20h) = s0;
    0x0003efec lw t9, -0x7cec(gp)                    |     t9 = sym.sql_table_with_storage_name;
                                                     |     if (a0 != 0) {
    0x0003eff0 beqz a0, 0x3f0d8                      |         
    0x0003eff4 move s3, a3                           |         s3 = a3;
    0x0003eff8 move s4, a1                           |         s4 = a1;
    0x0003effc move s2, a2                           |         s2 = a2;
    0x0003f000 bal 0x39fd0                           |         sym_sql_table_with_storage_name ();
    0x0003f004 lw gp, 0x18(sp)                       |         gp = *(var_18h);
    0x0003f008 move s1, v0                           |         s1 = v0;
    0x0003f00c lw a0, -0x7fd8(gp)                    |         a0 = *(gp);
    0x0003f010 lw t9, -0x71b4(gp)                    |         t9 = sym.imp.g_string_new;
    0x0003f014 addiu a0, a0, 0x403c                  |         a0 += 0x403c;
    0x0003f018 jalr t9                               |         t9 ();
    0x0003f01c lw gp, 0x18(sp)                       |         gp = *(var_18h);
    0x0003f020 move a0, v0                           |         a0 = v0;
    0x0003f024 move a2, s1                           |         a2 = s1;
    0x0003f028 lw a1, -0x7fd8(gp)                    |         a1 = *(gp);
    0x0003f02c lw t9, -0x772c(gp)                    |         t9 = sym.imp.g_string_append_printf
                                                     |         /* str.SELECT_starttime__stoptime_FROM__s */
    0x0003f030 addiu a1, a1, 0x75f8                  |         a1 += 0x75f8;
    0x0003f034 move s0, v0                           |         s0 = v0;
    0x0003f038 jalr t9                               |         t9 ();
    0x0003f03c lw gp, 0x18(sp)                       |         gp = *(var_18h);
    0x0003f040 lw t9, -0x74c8(gp)                    |         t9 = *((gp - 7474));
    0x0003f044 move a0, s1                           |         a0 = s1;
    0x0003f048 jalr t9                               |         t9 ();
    0x0003f04c lw gp, 0x18(sp)                       |         gp = *(var_18h);
                                                     |         if (s2 != 0) {
    0x0003f050 beqz s2, 0x3f0a8                      |             
    0x0003f054 lw t9, -0x7c5c(gp)                    |             t9 = sym.sanitize_quote;
                                                     |             if (s3 == 0) {
    0x0003f058 beqz s3, 0x3f0a8                      |                 goto label_0;
                                                     |             }
    0x0003f05c move a0, s3                           |             a0 = s3;
    0x0003f060 bal 0x3a2f0                           |             sym_sanitize_quote ();
    0x0003f064 lw gp, 0x18(sp)                       |             gp = *(var_18h);
    0x0003f068 move s1, v0                           |             s1 = v0;
    0x0003f06c lw v0, (v0)                           |             v0 = *(v0);
    0x0003f070 lw a1, -0x7fd8(gp)                    |             a1 = *(gp);
    0x0003f074 lw t9, -0x772c(gp)                    |             t9 = sym.imp.g_string_append_printf
    0x0003f078 move a3, s2                           |             a3 = s2;
    0x0003f07c move a2, s4                           |             a2 = s4;
                                                     |             /* str._WHERE__s._s_s */
    0x0003f080 addiu a1, a1, 0x761c                  |             a1 += 0x761c;
    0x0003f084 move a0, s0                           |             a0 = s0;
    0x0003f088 sw v0, 0x10(sp)                       |             *(var_10h) = v0;
    0x0003f08c jalr t9                               |             t9 ();
    0x0003f090 lw gp, 0x18(sp)                       |             gp = *(var_18h);
    0x0003f094 addiu a1, zero, 1                     |             a1 = 1;
    0x0003f098 lw t9, -0x75a8(gp)                    |             t9 = sym.imp.g_string_free;
    0x0003f09c move a0, s1                           |             a0 = s1;
    0x0003f0a0 jalr t9                               |             t9 ();
    0x0003f0a4 lw gp, 0x18(sp)                       |             gp = *(var_18h);
                                                     |         }
                                                     | label_0:
    0x0003f0a8 lw t9, -0x7a78(gp)                    |         t9 = sym.sql_append_semicolon;
    0x0003f0ac move a0, s0                           |         a0 = s0;
    0x0003f0b0 bal 0x3a054                           |         sym_sql_append_semicolon ();
    0x0003f0b4 lw ra, 0x34(sp)                       |         ra = *(var_34h);
    0x0003f0b8 move v0, s0                           |         v0 = s0;
    0x0003f0bc lw s4, 0x30(sp)                       |         s4 = *(var_30h);
    0x0003f0c0 lw s3, 0x2c(sp)                       |         s3 = *(var_2ch);
    0x0003f0c4 lw s2, 0x28(sp)                       |         s2 = *(var_28h);
    0x0003f0c8 lw s1, 0x24(sp)                       |         s1 = *(var_24h);
    0x0003f0cc lw s0, 0x20(sp)                       |         s0 = *(var_20h);
    0x0003f0d0 addiu sp, sp, 0x38                    |         
    0x0003f0d4 jr ra                                 |         return v0;
                                                     |     }
    0x0003f0d8 lw v0, -0x7fd8(gp)                    |     v0 = *(gp);
    0x0003f0dc lw a3, -0x7fd8(gp)                    |     a3 = *(gp);
    0x0003f0e0 lw a1, -0x7fd8(gp)                    |     a1 = *(gp);
                                                     |     /* str.storage_id */
    0x0003f0e4 addiu v0, v0, -0x3264                 |     v0 += -0x3264;
    0x0003f0e8 lw t9, -0x76c0(gp)                    |     t9 = sym.imp.g_assertion_message_expr;
    0x0003f0ec sw v0, 0x10(sp)                       |     *(var_10h) = v0;
                                                     |     /* str.sql_select_start_stop_time */
    0x0003f0f0 addiu a3, a3, 0x7e78                  |     a3 += 0x7e78;
    0x0003f0f4 addiu a2, zero, 0x2b8                 |     a2 = aav.0x000002b8;
                                                     |     /* str.sql_read.c */
    0x0003f0f8 addiu a1, a1, 0x6bd4                  |     a1 += 0x6bd4;
    0x0003f0fc jalr t9                               |     return t9 ();
                                                     | }
    ; assembly                               | /* r2dec pseudo code output */
                                             | /* /logs/firmware/unblob_extracted/firmware_extract/4325012-58052244.squashfs_v4_le_extract/usr/bin/indexer @ 0x3b084 */
                                             | #include <stdint.h>
                                             |  
    ; (fcn) sym.sql_stream_table ()          | void sql_stream_table () {
    0x0003b084 lui gp, 5                     |     
    0x0003b088 addiu gp, gp, -0x4f84         |     
    0x0003b08c addu gp, gp, t9               |     gp += t9;
    0x0003b090 addiu sp, sp, -0x38           |     
    0x0003b094 lw t9, -0x71b4(gp)            |     t9 = sym.imp.g_string_new;
    0x0003b098 sw s1, 0x2c(sp)               |     *(var_2ch) = s1;
    0x0003b09c move s1, a0                   |     s1 = a0;
    0x0003b0a0 lw a0, -0x7fd8(gp)            |     a0 = *(gp);
    0x0003b0a4 sw ra, 0x34(sp)               |     *(var_34h) = ra;
    0x0003b0a8 sw s2, 0x30(sp)               |     *(var_30h) = s2;
    0x0003b0ac sw s0, 0x28(sp)               |     *(var_28h) = s0;
    0x0003b0b0 sw gp, 0x20(sp)               |     *(var_20h) = gp;
    0x0003b0b4 addiu a0, a0, 0x403c          |     a0 += 0x403c;
    0x0003b0b8 move s0, a1                   |     s0 = a1;
    0x0003b0bc jalr t9                       |     t9 ();
    0x0003b0c0 lw gp, 0x20(sp)               |     gp = *(var_20h);
    0x0003b0c4 move a1, s0                   |     a1 = s0;
    0x0003b0c8 move a0, s1                   |     a0 = s1;
    0x0003b0cc lw t9, -0x7cec(gp)            |     t9 = sym.sql_table_with_storage_name;
    0x0003b0d0 move s1, v0                   |     s1 = v0;
    0x0003b0d4 bal 0x39fd0                   |     sym_sql_table_with_storage_name ();
    0x0003b0d8 lw gp, 0x20(sp)               |     gp = *(var_20h);
    0x0003b0dc move a3, s0                   |     a3 = s0;
    0x0003b0e0 move a2, v0                   |     a2 = v0;
    0x0003b0e4 lw a1, -0x7fd8(gp)            |     a1 = *(gp);
    0x0003b0e8 lw t9, -0x772c(gp)            |     t9 = sym.imp.g_string_append_printf
                                             |     /* str.CREATE_TABLE__s__id_INTEGER_PRIMARY_KEY_AUTOINCREMENT_NOT_NULL___s_type_VARCHAR_256__NULL___s_properties_VARCHAR_256__NULL__UNIQUE__s_type___s_properties___ */
    0x0003b0ec addiu a1, a1, 0x6244          |     a1 += 0x6244;
    0x0003b0f0 move a0, s1                   |     a0 = s1;
    0x0003b0f4 sw s0, 0x18(sp)               |     *(var_18h) = s0;
    0x0003b0f8 sw s0, 0x14(sp)               |     *(var_14h) = s0;
    0x0003b0fc sw s0, 0x10(sp)               |     *(var_10h) = s0;
    0x0003b100 move s2, v0                   |     s2 = v0;
    0x0003b104 jalr t9                       |     t9 ();
    0x0003b108 lw gp, 0x20(sp)               |     gp = *(var_20h);
    0x0003b10c lw t9, -0x74c8(gp)            |     t9 = *((gp - 7474));
    0x0003b110 move a0, s2                   |     a0 = s2;
    0x0003b114 jalr t9                       |     t9 ();
    0x0003b118 lw ra, 0x34(sp)               |     ra = *(var_34h);
    0x0003b11c move v0, s1                   |     v0 = s1;
    0x0003b120 lw s2, 0x30(sp)               |     s2 = *(var_30h);
    0x0003b124 lw s1, 0x2c(sp)               |     s1 = *(var_2ch);
    0x0003b128 lw s0, 0x28(sp)               |     s0 = *(var_28h);
    0x0003b12c addiu sp, sp, 0x38            |     
    0x0003b130 jr ra                         |     return v0;
                                             | }
    ; assembly                                           | /* r2dec pseudo code output */
                                                         | /* /logs/firmware/unblob_extracted/firmware_extract/4325012-58052244.squashfs_v4_le_extract/usr/bin/indexer @ 0x402b0 */
                                                         | #include <stdint.h>
                                                         |  
    ; (fcn) sym.sql_update_blocks_table_columns ()       | void sql_update_blocks_table_columns () {
    0x000402b0 lui gp, 4                                 |     
    0x000402b4 addiu gp, gp, 0x5e50                      |     
    0x000402b8 addu gp, gp, t9                           |     gp += t9;
    0x000402bc addiu sp, sp, -0x48                       |     
    0x000402c0 sw gp, 0x20(sp)                           |     *(var_20h) = gp;
    0x000402c4 sw ra, 0x44(sp)                           |     *(var_44h) = ra;
    0x000402c8 sw s5, 0x40(sp)                           |     *(var_40h) = s5;
    0x000402cc sw s4, 0x3c(sp)                           |     *(var_3ch) = s4;
    0x000402d0 sw s3, 0x38(sp)                           |     *(var_38h) = s3;
    0x000402d4 sw s2, 0x34(sp)                           |     *(var_34h_2) = s2;
    0x000402d8 sw s1, 0x30(sp)                           |     *(var_30h_2) = s1;
    0x000402dc sw s0, 0x2c(sp)                           |     *(var_2ch_2) = s0;
    0x000402e0 lw v0, -0x7fd8(gp)                        |     v0 = *(gp);
                                                         |     if (a0 == 0) {
    0x000402e4 beqz a0, 0x4053c                          |         goto label_2;
                                                         |     }
    0x000402e8 move s2, a1                               |     s2 = a1;
                                                         |     if (a1 == 0) {
    0x000402ec beqz a1, 0x40560                          |         goto label_3;
                                                         |     }
    0x000402f0 move s3, a2                               |     s3 = a2;
                                                         |     if (a2 == 0) {
    0x000402f4 beqz a2, 0x4058c                          |         goto label_4;
                                                         |     }
    0x000402f8 lw a1, -0x7fd8(gp)                        |     a1 = *(gp);
    0x000402fc lw t9, -0x7cec(gp)                        |     t9 = sym.sql_table_with_storage_name;
                                                         |     /* esilref: 'blocks' */
    0x00040300 addiu a1, a1, 0x7124                      |     a1 += 0x7124;
    0x00040304 move s5, a3                               |     s5 = a3;
    0x00040308 move s1, a0                               |     s1 = a0;
    0x0004030c bal 0x39fd0                               |     sym_sql_table_with_storage_name ();
    0x00040310 lw gp, 0x20(sp)                           |     gp = *(var_20h);
    0x00040314 move s4, v0                               |     s4 = v0;
    0x00040318 lw a0, -0x7fd8(gp)                        |     a0 = *(gp);
    0x0004031c lw t9, -0x71b4(gp)                        |     t9 = sym.imp.g_string_new;
    0x00040320 addiu a0, a0, 0x403c                      |     a0 += 0x403c;
    0x00040324 jalr t9                                   |     t9 ();
    0x00040328 lw gp, 0x20(sp)                           |     gp = *(var_20h);
    0x0004032c move a0, v0                               |     a0 = v0;
    0x00040330 move a2, s4                               |     a2 = s4;
    0x00040334 lw a1, -0x7f50(gp)                        |     a1 = *((gp - 8148));
    0x00040338 lw t9, -0x772c(gp)                        |     t9 = sym.imp.g_string_append_printf
                                                         |     /* str.UPDATE__s_SET_ */
    0x0004033c addiu a1, a1, -0x7ff0                     |     a1 += -0x7ff0;
    0x00040340 move s0, v0                               |     s0 = v0;
    0x00040344 jalr t9                                   |     t9 ();
    0x00040348 lw gp, 0x20(sp)                           |     gp = *(var_20h);
    0x0004034c lw t9, -0x74c8(gp)                        |     t9 = *((gp - 7474));
    0x00040350 move a0, s4                               |     a0 = s4;
    0x00040354 jalr t9                                   |     t9 ();
    0x00040358 lw gp, 0x20(sp)                           |     gp = *(var_20h);
                                                         |     if (s5 != 0) {
    0x0004035c beqz s5, 0x403c8                          |         
    0x00040360 lw t9, -0x7c5c(gp)                        |         t9 = sym.sanitize_quote;
    0x00040364 move a0, s5                               |         a0 = s5;
    0x00040368 bal 0x3a2f0                               |         sym_sanitize_quote ();
    0x0004036c lw gp, 0x20(sp)                           |         gp = *(var_20h);
    0x00040370 lw a2, (v0)                               |         a2 = *(v0);
    0x00040374 move a0, s0                               |         a0 = s0;
    0x00040378 lw a1, -0x7f50(gp)                        |         a1 = *((gp - 8148));
    0x0004037c lw t9, -0x772c(gp)                        |         t9 = sym.imp.g_string_append_printf
                                                         |         /* str.starttime_s */
    0x00040380 addiu a1, a1, -0x7fe0                     |         a1 += -0x7fe0;
    0x00040384 move s4, v0                               |         s4 = v0;
    0x00040388 jalr t9                                   |         t9 ();
    0x0004038c lw gp, 0x20(sp)                           |         gp = *(var_20h);
    0x00040390 addiu a1, zero, 1                         |         a1 = 1;
    0x00040394 lw t9, -0x75a8(gp)                        |         t9 = sym.imp.g_string_free;
    0x00040398 move a0, s4                               |         a0 = s4;
    0x0004039c jalr t9                                   |         t9 ();
    0x000403a0 lw v0, 0x58(sp)                           |         v0 = *(var_10h_4);
    0x000403a4 lw gp, 0x20(sp)                           |         gp = *(var_20h);
                                                         |         if (v0 == 0) {
    0x000403a8 beqz v0, 0x405b8                          |             goto label_5;
                                                         |         }
    0x000403ac lw a1, -0x7fd8(gp)                        |         a1 = *(gp);
    0x000403b0 lw t9, -0x76d0(gp)                        |         t9 = sym.imp.g_string_append;
                                                         |         /* esilref: ', ' */
    0x000403b4 addiu a1, a1, 0x11d4                      |         a1 += 0x11d4;
    0x000403b8 move a0, s0                               |         a0 = s0;
    0x000403bc jalr t9                                   |         t9 ();
    0x000403c0 lw gp, 0x20(sp)                           |         gp = *(var_20h);
    0x000403c4 b 0x403d4                                 |         
                                                         |     } else {
    0x000403c8 lw v0, 0x58(sp)                           |         v0 = *(var_10h_4);
    0x000403cc lw v0, 0x5c(sp)                           |         v0 = *(var_5ch);
                                                         |         if (v0 == 0) {
    0x000403d0 beqz v0, 0x405cc                          |             goto label_6;
                                                         |         }
                                                         |     }
    0x000403d4 lw t9, -0x7c5c(gp)                        |     t9 = sym.sanitize_quote;
    0x000403d8 lw a0, 0x58(sp)                           |     a0 = *(var_10h_4);
    0x000403dc bal 0x3a2f0                               |     sym_sanitize_quote ();
    0x000403e0 lw gp, 0x20(sp)                           |     gp = *(var_20h);
    0x000403e4 lw a2, (v0)                               |     a2 = *(v0);
    0x000403e8 move a0, s0                               |     a0 = s0;
    0x000403ec lw a1, -0x7f50(gp)                        |     a1 = *((gp - 8148));
    0x000403f0 lw t9, -0x772c(gp)                        |     t9 = sym.imp.g_string_append_printf
                                                         |     /* str.stoptime_s */
    0x000403f4 addiu a1, a1, -0x7fd0                     |     a1 += -0x7fd0;
    0x000403f8 move s4, v0                               |     s4 = v0;
    0x000403fc jalr t9                                   |     t9 ();
    0x00040400 lw gp, 0x20(sp)                           |     gp = *(var_20h);
    0x00040404 addiu a1, zero, 1                         |     a1 = 1;
    0x00040408 lw t9, -0x75a8(gp)                        |     t9 = sym.imp.g_string_free;
    0x0004040c move a0, s4                               |     a0 = s4;
    0x00040410 jalr t9                                   |     t9 ();
    0x00040414 lw v0, 0x5c(sp)                           |     v0 = *(var_5ch);
    0x00040418 lw gp, 0x20(sp)                           |     gp = *(var_20h);
                                                         |     if (v0 == 0) {
    0x0004041c beqz v0, 0x4047c                          |         goto label_7;
                                                         |     }
    0x00040420 lw a1, -0x7fd8(gp)                        |     a1 = *(gp);
                                                         |     do {
    0x00040424 lw t9, -0x76d0(gp)                        |         t9 = sym.imp.g_string_append;
                                                         |         /* esilref: ', ' */
    0x00040428 addiu a1, a1, 0x11d4                      |         a1 += 0x11d4;
    0x0004042c move a0, s0                               |         a0 = s0;
    0x00040430 jalr t9                                   |         t9 ();
    0x00040434 lw gp, 0x20(sp)                           |         gp = *(var_20h);
    0x00040438 lw t9, -0x7c5c(gp)                        |         t9 = sym.sanitize_quote;
                                                         | label_1:
    0x0004043c lw a0, 0x5c(sp)                           |         a0 = *(var_5ch);
    0x00040440 bal 0x3a2f0                               |         sym_sanitize_quote ();
    0x00040444 lw gp, 0x20(sp)                           |         gp = *(var_20h);
    0x00040448 lw a2, (v0)                               |         a2 = *(v0);
    0x0004044c move a0, s0                               |         a0 = s0;
    0x00040450 lw a1, -0x7f50(gp)                        |         a1 = *((gp - 8148));
    0x00040454 lw t9, -0x772c(gp)                        |         t9 = sym.imp.g_string_append_printf
                                                         |         /* str.filesize_s */
    0x00040458 addiu a1, a1, -0x7fc4                     |         a1 += -0x7fc4;
    0x0004045c move s4, v0                               |         s4 = v0;
    0x00040460 jalr t9                                   |         t9 ();
    0x00040464 lw gp, 0x20(sp)                           |         gp = *(var_20h);
    0x00040468 addiu a1, zero, 1                         |         a1 = 1;
    0x0004046c lw t9, -0x75a8(gp)                        |         t9 = sym.imp.g_string_free;
    0x00040470 move a0, s4                               |         a0 = s4;
    0x00040474 jalr t9                                   |         t9 ();
    0x00040478 lw gp, 0x20(sp)                           |         gp = *(var_20h);
                                                         | label_7:
    0x0004047c lw v0, -0x7fd8(gp)                        |         v0 = *(gp);
                                                         | label_0:
    0x00040480 lw a3, -0x7fd8(gp)                        |         a3 = *(gp);
    0x00040484 lw a2, -0x7f50(gp)                        |         a2 = *((gp - 8148));
    0x00040488 lw a1, -0x7fd8(gp)                        |         a1 = *(gp);
    0x0004048c lw t9, -0x7ce0(gp)                        |         t9 = sym.sql_select_column_from_table;
    0x00040490 addiu v0, v0, 0xf80                       |         v0 += 0xf80;
                                                         |         /* str.filename */
    0x00040494 addiu a3, a3, 0x7dc                       |         a3 += 0x7dc;
                                                         |         /* esilref: 'id' */
    0x00040498 addiu a2, a2, -0x6dbc                     |         a2 += -0x6dbc;
                                                         |         /* esilref: 'recordings' */
    0x0004049c addiu a1, a1, -0x21e8                     |         a1 += -0x21e8;
    0x000404a0 move a0, s1                               |         a0 = s1;
    0x000404a4 sw s2, 0x10(sp)                           |         *(var_10h_5) = s2;
    0x000404a8 sw zero, 0x18(sp)                         |         *(var_18h_4) = 0;
    0x000404ac sw v0, 0x14(sp)                           |         *(var_14h) = v0;
    0x000404b0 bal 0x3d954                               |         sym_sql_select_column_from_table ();
    0x000404b4 lw gp, 0x20(sp)                           |         gp = *(var_20h);
    0x000404b8 move a0, s3                               |         a0 = s3;
    0x000404bc lw t9, -0x7c5c(gp)                        |         t9 = sym.sanitize_quote;
    0x000404c0 move s2, v0                               |         s2 = v0;
    0x000404c4 bal 0x3a2f0                               |         sym_sanitize_quote ();
    0x000404c8 lw gp, 0x20(sp)                           |         gp = *(var_20h);
    0x000404cc lw a2, (s2)                               |         a2 = *(s2);
    0x000404d0 lw a3, (v0)                               |         a3 = *(v0);
    0x000404d4 lw a1, -0x7f50(gp)                        |         a1 = *((gp - 8148));
    0x000404d8 lw t9, -0x772c(gp)                        |         t9 = sym.imp.g_string_append_printf
    0x000404dc move a0, s0                               |         a0 = s0;
                                                         |         /* str._WHERE_recording_id__s__AND_filename_s_ */
    0x000404e0 addiu a1, a1, -0x7fb8                     |         a1 += -0x7fb8;
    0x000404e4 move s1, v0                               |         s1 = v0;
    0x000404e8 jalr t9                                   |         t9 ();
    0x000404ec lw gp, 0x20(sp)                           |         gp = *(var_20h);
    0x000404f0 move a0, s2                               |         a0 = s2;
    0x000404f4 lw t9, -0x75a8(gp)                        |         t9 = sym.imp.g_string_free;
    0x000404f8 addiu a1, zero, 1                         |         a1 = 1;
    0x000404fc jalr t9                                   |         t9 ();
    0x00040500 lw gp, 0x20(sp)                           |         gp = *(var_20h);
    0x00040504 move a0, s1                               |         a0 = s1;
    0x00040508 lw t9, -0x75a8(gp)                        |         t9 = sym.imp.g_string_free;
    0x0004050c addiu a1, zero, 1                         |         a1 = 1;
    0x00040510 jalr t9                                   |         t9 ();
    0x00040514 lw ra, 0x44(sp)                           |         ra = *(var_44h);
    0x00040518 move v0, s0                               |         v0 = s0;
    0x0004051c lw s5, 0x40(sp)                           |         s5 = *(var_40h);
    0x00040520 lw s4, 0x3c(sp)                           |         s4 = *(var_3ch);
    0x00040524 lw s3, 0x38(sp)                           |         s3 = *(var_38h);
    0x00040528 lw s2, 0x34(sp)                           |         s2 = *(var_34h_2);
    0x0004052c lw s1, 0x30(sp)                           |         s1 = *(var_30h_2);
    0x00040530 lw s0, 0x2c(sp)                           |         s0 = *(var_2ch_2);
    0x00040534 addiu sp, sp, 0x48                        |         
    0x00040538 jr ra                                     |         return v0;
                                                         | label_2:
    0x0004053c lw a3, -0x7f50(gp)                        |         a3 = *((gp - 8148));
    0x00040540 lw a1, -0x7f50(gp)                        |         a1 = *((gp - 8148));
                                                         |         /* str.storage_id */
    0x00040544 addiu v0, v0, -0x3264                     |         v0 += -0x3264;
    0x00040548 lw t9, -0x76c0(gp)                        |         t9 = sym.imp.g_assertion_message_expr;
    0x0004054c sw v0, 0x10(sp)                           |         *(var_10h_5) = v0;
                                                         |         /* str.sql_update_blocks_table_columns */
    0x00040550 addiu a3, a3, -0x7d08                     |         a3 += -0x7d08;
    0x00040554 addiu a2, zero, 0x14                      |         a2 = 0x14;
                                                         |         /* str.sql_update.c */
    0x00040558 addiu a1, a1, -0x8000                     |         a1 += -0x8000;
    0x0004055c jalr t9                                   |         t9 ();
                                                         | label_3:
    0x00040560 lw v0, -0x7fd8(gp)                        |         v0 = *(gp);
    0x00040564 lw a3, -0x7f50(gp)                        |         a3 = *((gp - 8148));
    0x00040568 lw a1, -0x7f50(gp)                        |         a1 = *((gp - 8148));
                                                         |         /* esilref: 'recording_id' */
    0x0004056c addiu v0, v0, 0x78c8                      |         v0 += 0x78c8;
    0x00040570 lw t9, -0x76c0(gp)                        |         t9 = sym.imp.g_assertion_message_expr;
    0x00040574 sw v0, 0x10(sp)                           |         *(var_10h_5) = v0;
                                                         |         /* str.sql_update_blocks_table_columns */
    0x00040578 addiu a3, a3, -0x7d08                     |         a3 += -0x7d08;
    0x0004057c addiu a2, zero, 0x15                      |         a2 = 0x15;
                                                         |         /* str.sql_update.c */
    0x00040580 addiu a1, a1, -0x8000                     |         a1 += -0x8000;
    0x00040584 move a0, zero                             |         a0 = 0;
    0x00040588 jalr t9                                   |         t9 ();
                                                         | label_4:
    0x0004058c lw v0, -0x7fd8(gp)                        |         v0 = *(gp);
    0x00040590 lw a3, -0x7f50(gp)                        |         a3 = *((gp - 8148));
    0x00040594 lw a1, -0x7f50(gp)                        |         a1 = *((gp - 8148));
                                                         |         /* str.block_id */
    0x00040598 addiu v0, v0, 0x1228                      |         v0 += 0x1228;
    0x0004059c lw t9, -0x76c0(gp)                        |         t9 = sym.imp.g_assertion_message_expr;
    0x000405a0 sw v0, 0x10(sp)                           |         *(var_10h_5) = v0;
                                                         |         /* str.sql_update_blocks_table_columns */
    0x000405a4 addiu a3, a3, -0x7d08                     |         a3 += -0x7d08;
    0x000405a8 addiu a2, zero, 0x16                      |         a2 = 0x16;
                                                         |         /* str.sql_update.c */
    0x000405ac addiu a1, a1, -0x8000                     |         a1 += -0x8000;
    0x000405b0 move a0, zero                             |         a0 = 0;
    0x000405b4 jalr t9                                   |         t9 ();
                                                         | label_5:
    0x000405b8 lw v0, 0x5c(sp)                           |         v0 = *(var_5ch);
    0x000405bc lw a1, -0x7fd8(gp)                        |         a1 = *(gp);
    0x000405c0 bnel v0, zero, 0x40424                    |         
                                                         |     } while (v0 == 0);
    0x000405c4 lw v0, -0x7fd8(gp)                        |     v0 = *(gp);
    0x000405c8 b 0x40480                                 |     goto label_0;
                                                         | label_6:
    0x000405cc lw t9, -0x7c5c(gp)                        |     t9 = sym.sanitize_quote;
                                                         |     if (v0 != 0) {
    0x000405d0 bnez v0, 0x4043c                          |         goto label_1;
                                                         |     }
    0x000405d4 lw v0, -0x7fd8(gp)                        |     v0 = *(gp);
    0x000405d8 b 0x40480                                 |     goto label_0;
                                                         | }
    ; assembly                                           | /* r2dec pseudo code output */
                                                         | /* /logs/firmware/unblob_extracted/firmware_extract/4325012-58052244.squashfs_v4_le_extract/usr/bin/indexer @ 0x407c4 */
                                                         | #include <stdint.h>
                                                         |  
    ; (fcn) sym.sql_update_recording_foreign_key ()      | void sql_update_recording_foreign_key () {
    0x000407c4 lui gp, 4                                 |     
    0x000407c8 addiu gp, gp, 0x593c                      |     
    0x000407cc addu gp, gp, t9                           |     gp += t9;
    0x000407d0 addiu sp, sp, -0x50                       |     
    0x000407d4 lw t9, -0x71b4(gp)                        |     t9 = sym.imp.g_string_new;
    0x000407d8 sw s3, 0x40(sp)                           |     *(var_40h) = s3;
    0x000407dc move s3, a0                               |     s3 = a0;
    0x000407e0 lw a0, -0x7fd8(gp)                        |     a0 = *(gp);
    0x000407e4 sw gp, 0x28(sp)                           |     *(var_28h) = gp;
    0x000407e8 sw s5, 0x48(sp)                           |     *(var_48h) = s5;
    0x000407ec sw s4, 0x44(sp)                           |     *(var_44h) = s4;
    0x000407f0 sw s2, 0x3c(sp)                           |     *(var_3ch) = s2;
    0x000407f4 sw s1, 0x38(sp)                           |     *(var_38h) = s1;
    0x000407f8 sw s0, 0x34(sp)                           |     *(var_34h) = s0;
    0x000407fc sw ra, 0x4c(sp)                           |     *(var_4ch) = ra;
    0x00040800 addiu a0, a0, 0x403c                      |     a0 += 0x403c;
    0x00040804 move s2, a1                               |     s2 = a1;
    0x00040808 lw s1, 0x68(sp)                           |     s1 = *(arg_68h);
    0x0004080c move s4, a2                               |     s4 = a2;
    0x00040810 move s5, a3                               |     s5 = a3;
    0x00040814 jalr t9                                   |     t9 ();
    0x00040818 lw gp, 0x28(sp)                           |     gp = *(var_28h);
    0x0004081c move s0, v0                               |     s0 = v0;
    0x00040820 move a1, s2                               |     a1 = s2;
    0x00040824 lw t9, -0x7cec(gp)                        |     t9 = sym.sql_table_with_storage_name;
                                                         |     if (s1 == 0) {
    0x00040828 beqz s1, 0x408ac                          |         goto label_0;
                                                         |     }
    0x0004082c move a0, zero                             |     a0 = 0;
    0x00040830 bal 0x39fd0                               |     sym_sql_table_with_storage_name ();
    0x00040834 lw gp, 0x28(sp)                           |     gp = *(var_28h);
    0x00040838 move s1, v0                               |     s1 = v0;
                                                         |     do {
    0x0004083c lw v0, 0x60(sp)                           |         v0 = *(arg_60h);
    0x00040840 lw a1, -0x7f50(gp)                        |         a1 = *((gp - 8148));
    0x00040844 sw v0, 0x20(sp)                           |         *(var_20h) = v0;
    0x00040848 lw v0, 0x64(sp)                           |         v0 = *(arg_64h);
    0x0004084c lw t9, -0x772c(gp)                        |         t9 = sym.imp.g_string_append_printf
    0x00040850 move a3, s5                               |         a3 = s5;
    0x00040854 move a2, s3                               |         a2 = s3;
    0x00040858 sw v0, 0x18(sp)                           |         *(var_18h) = v0;
                                                         |         /* str.UPDATE__s.recordings_SET__s_SELECT__s_FROM__s_WHERE_recordings._s_s._s__ */
    0x0004085c addiu a1, a1, -0x7e84                     |         a1 += -0x7e84;
    0x00040860 move a0, s0                               |         a0 = s0;
    0x00040864 sw s2, 0x1c(sp)                           |         *(var_1ch) = s2;
    0x00040868 sw s1, 0x14(sp)                           |         *(var_14h) = s1;
    0x0004086c sw s4, 0x10(sp)                           |         *(var_10h) = s4;
    0x00040870 jalr t9                                   |         t9 ();
    0x00040874 lw gp, 0x28(sp)                           |         gp = *(var_28h);
    0x00040878 lw t9, -0x74c8(gp)                        |         t9 = *((gp - 7474));
    0x0004087c move a0, s1                               |         a0 = s1;
    0x00040880 jalr t9                                   |         t9 ();
    0x00040884 lw ra, 0x4c(sp)                           |         ra = *(var_4ch);
    0x00040888 move v0, s0                               |         v0 = s0;
    0x0004088c lw s5, 0x48(sp)                           |         s5 = *(var_48h);
    0x00040890 lw s4, 0x44(sp)                           |         s4 = *(var_44h);
    0x00040894 lw s3, 0x40(sp)                           |         s3 = *(var_40h);
    0x00040898 lw s2, 0x3c(sp)                           |         s2 = *(var_3ch);
    0x0004089c lw s1, 0x38(sp)                           |         s1 = *(var_38h);
    0x000408a0 lw s0, 0x34(sp)                           |         s0 = *(var_34h);
    0x000408a4 addiu sp, sp, 0x50                        |         
    0x000408a8 jr ra                                     |         return v0;
                                                         | label_0:
    0x000408ac move a0, s3                               |         a0 = s3;
    0x000408b0 bal 0x39fd0                               |         sym_sql_table_with_storage_name ();
    0x000408b4 move s1, v0                               |         s1 = v0;
    0x000408b8 lw gp, 0x28(sp)                           |         gp = *(var_28h);
    0x000408bc b 0x4083c                                 |         
                                                         |     } while (1);
                                                         | }
    ; assembly                                                   | /* r2dec pseudo code output */
                                                                 | /* /logs/firmware/unblob_extracted/firmware_extract/4325012-58052244.squashfs_v4_le_extract/usr/bin/indexer @ 0x405dc */
                                                                 | #include <stdint.h>
                                                                 |  
    ; (fcn) sym.sql_update_recordings_starttime_trigger ()       | void sql_update_recordings_starttime_trigger () {
    0x000405dc lui gp, 4                                         |     
    0x000405e0 addiu gp, gp, 0x5b24                              |     
    0x000405e4 addu gp, gp, t9                                   |     gp += t9;
    0x000405e8 addiu sp, sp, -0x28                               |     
    0x000405ec lw t9, -0x71b4(gp)                                |     t9 = sym.imp.g_string_new;
    0x000405f0 sw s0, 0x1c(sp)                                   |     *(var_1ch) = s0;
    0x000405f4 move s0, a0                                       |     s0 = a0;
    0x000405f8 lw a0, -0x7fd8(gp)                                |     a0 = *(gp);
    0x000405fc sw ra, 0x24(sp)                                   |     *(var_24h) = ra;
    0x00040600 sw s1, 0x20(sp)                                   |     *(var_20h) = s1;
    0x00040604 sw gp, 0x10(sp)                                   |     *(var_10h) = gp;
    0x00040608 addiu a0, a0, 0x403c                              |     a0 += 0x403c;
    0x0004060c jalr t9                                           |     t9 ();
    0x00040610 lw gp, 0x10(sp)                                   |     gp = *(var_10h);
    0x00040614 move a0, s0                                       |     a0 = s0;
    0x00040618 move s0, v0                                       |     s0 = v0;
    0x0004061c lw a1, -0x7f50(gp)                                |     a1 = *((gp - 8148));
    0x00040620 lw t9, -0x7cec(gp)                                |     t9 = sym.sql_table_with_storage_name;
                                                                 |     /* str.update_recordings_starttime */
    0x00040624 addiu a1, a1, -0x7f8c                             |     a1 += -0x7f8c;
    0x00040628 bal 0x39fd0                                       |     sym_sql_table_with_storage_name ();
    0x0004062c lw gp, 0x10(sp)                                   |     gp = *(var_10h);
    0x00040630 move a2, v0                                       |     a2 = v0;
    0x00040634 move a0, s0                                       |     a0 = s0;
    0x00040638 lw a1, -0x7f50(gp)                                |     a1 = *((gp - 8148));
    0x0004063c lw t9, -0x772c(gp)                                |     t9 = sym.imp.g_string_append_printf
                                                                 |     /* str.CREATE_TRIGGER__s_AFTER_DELETE_ON_blocks_BEGIN_UPDATE_recordings_SET_starttimeCOALESCE__SELECT_MIN_blocks.starttime__FROM_blocks_WHERE_recording_idOLD.recording_id___OLD.stoptime__recordings.starttime__WHERE_idOLD.recording_id__END_ */
    0x00040640 addiu a1, a1, -0x7f70                             |     a1 += -0x7f70;
    0x00040644 move s1, v0                                       |     s1 = v0;
    0x00040648 jalr t9                                           |     t9 ();
    0x0004064c lw gp, 0x10(sp)                                   |     gp = *(var_10h);
    0x00040650 lw t9, -0x74c8(gp)                                |     t9 = *((gp - 7474));
    0x00040654 move a0, s1                                       |     a0 = s1;
    0x00040658 jalr t9                                           |     t9 ();
    0x0004065c lw ra, 0x24(sp)                                   |     ra = *(var_24h);
    0x00040660 move v0, s0                                       |     v0 = s0;
    0x00040664 lw s1, 0x20(sp)                                   |     s1 = *(var_20h);
    0x00040668 lw s0, 0x1c(sp)                                   |     s0 = *(var_1ch);
    0x0004066c addiu sp, sp, 0x28                                |     
    0x00040670 jr ra                                             |     return v0;
                                                                 | }
    ; assembly                                               | /* r2dec pseudo code output */
                                                             | /* /logs/firmware/unblob_extracted/firmware_extract/4325012-58052244.squashfs_v4_le_extract/usr/bin/indexer @ 0x409c8 */
                                                             | #include <stdint.h>
                                                             |  
    ; (fcn) sym.sql_update_recordings_table_column ()        | void sql_update_recordings_table_column () {
    0x000409c8 lui gp, 4                                     |     
    0x000409cc addiu gp, gp, 0x5738                          |     
    0x000409d0 addu gp, gp, t9                               |     gp += t9;
    0x000409d4 addiu sp, sp, -0x38                           |     
    0x000409d8 lw t9, -0x71b4(gp)                            |     t9 = sym.imp.g_string_new;
    0x000409dc sw s1, 0x24(sp)                               |     *(var_24h) = s1;
    0x000409e0 move s1, a0                                   |     s1 = a0;
    0x000409e4 lw a0, -0x7fd8(gp)                            |     a0 = *(gp);
    0x000409e8 sw gp, 0x18(sp)                               |     *(var_18h) = gp;
    0x000409ec sw s4, 0x30(sp)                               |     *(var_30h) = s4;
    0x000409f0 sw s3, 0x2c(sp)                               |     *(var_2ch) = s3;
    0x000409f4 sw s2, 0x28(sp)                               |     *(var_28h) = s2;
    0x000409f8 sw ra, 0x34(sp)                               |     *(var_34h) = ra;
    0x000409fc sw s0, 0x20(sp)                               |     *(var_20h) = s0;
    0x00040a00 addiu a0, a0, 0x403c                          |     a0 += 0x403c;
    0x00040a04 move s2, a1                                   |     s2 = a1;
    0x00040a08 move s3, a2                                   |     s3 = a2;
    0x00040a0c move s4, a3                                   |     s4 = a3;
    0x00040a10 jalr t9                                       |     t9 ();
    0x00040a14 lw gp, 0x18(sp)                               |     gp = *(var_18h);
                                                             |     if (s1 != 0) {
    0x00040a18 beqz s1, 0x40acc                              |         
                                                             |         if (s2 == 0) {
    0x00040a1c beql s2, zero, 0x40af8                        |             goto label_0;
                                                             |         }
    0x00040a20 lw v0, -0x7fd8(gp)                            |         v0 = *(gp);
                                                             |         if (s3 == 0) {
    0x00040a24 beql s3, zero, 0x40b20                        |             goto label_1;
                                                             |         }
    0x00040a28 lw v0, -0x7f50(gp)                            |         v0 = *((gp - 8148));
    0x00040a2c lw a1, -0x7fd8(gp)                            |         a1 = *(gp);
                                                             |         if (s4 == 0) {
    0x00040a30 beqz s4, 0x40b48                              |             goto label_2;
                                                             |         }
    0x00040a34 lw t9, -0x7a64(gp)                            |         t9 = sym.sql_update_value;
    0x00040a38 move a3, s4                                   |         a3 = s4;
    0x00040a3c move a2, s3                                   |         a2 = s3;
    0x00040a40 move a0, s1                                   |         a0 = s1;
                                                             |         /* esilref: 'recordings' */
    0x00040a44 addiu a1, a1, -0x21e8                         |         a1 += -0x21e8;
    0x00040a48 move s0, v0                                   |         s0 = v0;
    0x00040a4c bal 0x3a4a0                                   |         sym_sql_update_value ();
    0x00040a50 lw gp, 0x18(sp)                               |         gp = *(var_18h);
    0x00040a54 move a1, v0                                   |         a1 = v0;
    0x00040a58 lw t9, -0x7d1c(gp)                            |         t9 = sym.string_merge_g_strings;
    0x00040a5c move a0, s0                                   |         a0 = s0;
    0x00040a60 bal 0x414e4                                   |         sym_string_merge_g_strings ();
    0x00040a64 lw gp, 0x18(sp)                               |         gp = *(var_18h);
    0x00040a68 lw t9, -0x7c5c(gp)                            |         t9 = sym.sanitize_quote;
    0x00040a6c move a0, s2                                   |         a0 = s2;
    0x00040a70 bal 0x3a2f0                                   |         sym_sanitize_quote ();
    0x00040a74 lw gp, 0x18(sp)                               |         gp = *(var_18h);
    0x00040a78 lw a2, (v0)                                   |         a2 = *(v0);
    0x00040a7c move a0, s0                                   |         a0 = s0;
    0x00040a80 lw a1, -0x7f50(gp)                            |         a1 = *((gp - 8148));
    0x00040a84 lw t9, -0x772c(gp)                            |         t9 = sym.imp.g_string_append_printf
                                                             |         /* str._WHERE_filename_s_ */
    0x00040a88 addiu a1, a1, -0x7d64                         |         a1 += -0x7d64;
    0x00040a8c move s1, v0                                   |         s1 = v0;
    0x00040a90 jalr t9                                       |         t9 ();
    0x00040a94 lw gp, 0x18(sp)                               |         gp = *(var_18h);
    0x00040a98 move a0, s1                                   |         a0 = s1;
    0x00040a9c lw t9, -0x75a8(gp)                            |         t9 = sym.imp.g_string_free;
    0x00040aa0 addiu a1, zero, 1                             |         a1 = 1;
    0x00040aa4 jalr t9                                       |         t9 ();
    0x00040aa8 lw ra, 0x34(sp)                               |         ra = *(var_34h);
    0x00040aac move v0, s0                                   |         v0 = s0;
    0x00040ab0 lw s4, 0x30(sp)                               |         s4 = *(var_30h);
    0x00040ab4 lw s3, 0x2c(sp)                               |         s3 = *(var_2ch);
    0x00040ab8 lw s2, 0x28(sp)                               |         s2 = *(var_28h);
    0x00040abc lw s1, 0x24(sp)                               |         s1 = *(var_24h);
    0x00040ac0 lw s0, 0x20(sp)                               |         s0 = *(var_20h);
    0x00040ac4 addiu sp, sp, 0x38                            |         
    0x00040ac8 jr ra                                         |         return v0;
                                                             |     }
    0x00040acc lw v0, -0x7fd8(gp)                            |     v0 = *(gp);
    0x00040ad0 lw a3, -0x7f50(gp)                            |     a3 = *((gp - 8148));
    0x00040ad4 lw a1, -0x7f50(gp)                            |     a1 = *((gp - 8148));
                                                             |     /* str.storage_id */
    0x00040ad8 addiu v0, v0, -0x3264                         |     v0 += -0x3264;
    0x00040adc lw t9, -0x76c0(gp)                            |     t9 = sym.imp.g_assertion_message_expr;
    0x00040ae0 sw v0, 0x10(sp)                               |     *(var_10h) = v0;
                                                             |     /* str.sql_update_recordings_table_column */
    0x00040ae4 addiu a3, a3, -0x7d50                         |     a3 += -0x7d50;
    0x00040ae8 addiu a2, zero, 0xb1                          |     a2 = 0xb1;
                                                             |     /* str.sql_update.c */
    0x00040aec addiu a1, a1, -0x8000                         |     a1 += -0x8000;
    0x00040af0 move a0, zero                                 |     a0 = 0;
    0x00040af4 jalr t9                                       |     t9 ();
                                                             | label_0:
    0x00040af8 lw a3, -0x7f50(gp)                            |     a3 = *((gp - 8148));
    0x00040afc lw a1, -0x7f50(gp)                            |     a1 = *((gp - 8148));
    0x00040b00 addiu v0, v0, 0x78c8                          |     v0 += 0x78c8;
    0x00040b04 lw t9, -0x76c0(gp)                            |     t9 = sym.imp.g_assertion_message_expr;
    0x00040b08 sw v0, 0x10(sp)                               |     *(var_10h) = v0;
                                                             |     /* str.sql_update_recordings_table_column */
    0x00040b0c addiu a3, a3, -0x7d50                         |     a3 += -0x7d50;
    0x00040b10 addiu a2, zero, 0xb2                          |     a2 = 0xb2;
                                                             |     /* str.sql_update.c */
    0x00040b14 addiu a1, a1, -0x8000                         |     a1 += -0x8000;
    0x00040b18 move a0, zero                                 |     a0 = 0;
    0x00040b1c jalr t9                                       |     t9 ();
                                                             | label_1:
    0x00040b20 lw a3, -0x7f50(gp)                            |     a3 = *((gp - 8148));
    0x00040b24 lw a1, -0x7f50(gp)                            |     a1 = *((gp - 8148));
    0x00040b28 addiu v0, v0, -0x7d70                         |     v0 += -0x7d70;
    0x00040b2c lw t9, -0x76c0(gp)                            |     t9 = sym.imp.g_assertion_message_expr;
    0x00040b30 sw v0, 0x10(sp)                               |     *(var_10h) = v0;
                                                             |     /* str.sql_update_recordings_table_column */
    0x00040b34 addiu a3, a3, -0x7d50                         |     a3 += -0x7d50;
    0x00040b38 addiu a2, zero, 0xb3                          |     a2 = 0xb3;
                                                             |     /* str.sql_update.c */
    0x00040b3c addiu a1, a1, -0x8000                         |     a1 += -0x8000;
    0x00040b40 move a0, zero                                 |     a0 = 0;
    0x00040b44 jalr t9                                       |     t9 ();
                                                             | label_2:
    0x00040b48 lw v0, -0x7fd8(gp)                            |     v0 = *(gp);
    0x00040b4c lw a3, -0x7f50(gp)                            |     a3 = *((gp - 8148));
    0x00040b50 lw a1, -0x7f50(gp)                            |     a1 = *((gp - 8148));
                                                             |     /* str.value */
    0x00040b54 addiu v0, v0, 0x67a4                          |     v0 += 0x67a4;
    0x00040b58 lw t9, -0x76c0(gp)                            |     t9 = sym.imp.g_assertion_message_expr;
    0x00040b5c sw v0, 0x10(sp)                               |     *(var_10h) = v0;
                                                             |     /* str.sql_update_recordings_table_column */
    0x00040b60 addiu a3, a3, -0x7d50                         |     a3 += -0x7d50;
    0x00040b64 addiu a2, zero, 0xb4                          |     a2 = 0xb4;
                                                             |     /* str.sql_update.c */
    0x00040b68 addiu a1, a1, -0x8000                         |     a1 += -0x8000;
    0x00040b6c move a0, zero                                 |     a0 = 0;
    0x00040b70 jalr t9                                       |     t9 ();
    0x00040b74 nop                                           |     
    0x00040b78 nop                                           |     
    0x00040b7c nop                                           |     
                                                             | }
    ; assembly                               | /* r2dec pseudo code output */
                                             | /* /logs/firmware/unblob_extracted/firmware_extract/4325012-58052244.squashfs_v4_le_extract/usr/bin/indexer @ 0x3a4a0 */
                                             | #include <stdint.h>
                                             |  
    ; (fcn) sym.sql_update_value ()          | void sql_update_value () {
    0x0003a4a0 lui gp, 5                     |     
    0x0003a4a4 addiu gp, gp, -0x43a0         |     
    0x0003a4a8 addu gp, gp, t9               |     gp += t9;
    0x0003a4ac addiu sp, sp, -0x38           |     
    0x0003a4b0 lw t9, -0x71b4(gp)            |     t9 = sym.imp.g_string_new;
    0x0003a4b4 sw s0, 0x20(sp)               |     *(var_20h) = s0;
    0x0003a4b8 lw s0, -0x7fd8(gp)            |     s0 = *(gp);
    0x0003a4bc sw ra, 0x34(sp)               |     *(var_34h) = ra;
    0x0003a4c0 sw gp, 0x18(sp)               |     *(var_18h) = gp;
    0x0003a4c4 sw s4, 0x30(sp)               |     *(var_30h) = s4;
    0x0003a4c8 sw s3, 0x2c(sp)               |     *(var_2ch) = s3;
    0x0003a4cc sw s2, 0x28(sp)               |     *(var_28h) = s2;
    0x0003a4d0 sw s1, 0x24(sp)               |     *(var_24h) = s1;
    0x0003a4d4 sw a1, 0x3c(sp)               |     *(arg_3ch) = a1;
    0x0003a4d8 move s1, a0                   |     s1 = a0;
    0x0003a4dc addiu a0, s0, 0x403c          |     a0 = s0 + 0x403c;
    0x0003a4e0 move s3, a3                   |     s3 = a3;
    0x0003a4e4 move s4, a2                   |     s4 = a2;
    0x0003a4e8 jalr t9                       |     t9 ();
    0x0003a4ec lw gp, 0x18(sp)               |     gp = *(var_18h);
    0x0003a4f0 lw a1, 0x3c(sp)               |     a1 = *(arg_3ch);
    0x0003a4f4 move a0, s1                   |     a0 = s1;
    0x0003a4f8 lw t9, -0x7cec(gp)            |     t9 = sym.sql_table_with_storage_name;
    0x0003a4fc move s1, v0                   |     s1 = v0;
    0x0003a500 bal 0x39fd0                   |     sym_sql_table_with_storage_name ();
    0x0003a504 lw gp, 0x18(sp)               |     gp = *(var_18h);
    0x0003a508 move a0, s3                   |     a0 = s3;
    0x0003a50c move s2, v0                   |     s2 = v0;
    0x0003a510 lw a1, -0x7fd8(gp)            |     a1 = *(gp);
    0x0003a514 lw t9, -0x778c(gp)            |     t9 = sym.imp.g_strcmp0;
                                             |     /* esilref: 'NULL' */
    0x0003a518 addiu a1, a1, -0x7dc          |     a1 += -0x7dc;
    0x0003a51c jalr t9                       |     t9 ();
    0x0003a520 lw gp, 0x18(sp)               |     gp = *(var_18h);
                                             |     if (v0 == 0) {
    0x0003a524 beqz v0, 0x3a5a8              |         goto label_0;
                                             |     }
    0x0003a528 lw t9, -0x7c5c(gp)            |     t9 = sym.sanitize_quote;
    0x0003a52c move a0, s3                   |     a0 = s3;
    0x0003a530 bal 0x3a2f0                   |     sym_sanitize_quote ();
    0x0003a534 lw gp, 0x18(sp)               |     gp = *(var_18h);
    0x0003a538 move s0, v0                   |     s0 = v0;
                                             |     do {
    0x0003a53c lw v0, (s0)                   |         v0 = *(s0);
    0x0003a540 lw a1, -0x7fd8(gp)            |         a1 = *(gp);
    0x0003a544 lw t9, -0x772c(gp)            |         t9 = sym.imp.g_string_append_printf
    0x0003a548 move a3, s4                   |         a3 = s4;
    0x0003a54c move a2, s2                   |         a2 = s2;
    0x0003a550 move a0, s1                   |         a0 = s1;
    0x0003a554 sw v0, 0x10(sp)               |         *(var_10h) = v0;
                                             |         /* str.UPDATE__s_SET__s_s */
    0x0003a558 addiu a1, a1, 0x5de8          |         a1 += 0x5de8;
    0x0003a55c jalr t9                       |         t9 ();
    0x0003a560 lw gp, 0x18(sp)               |         gp = *(var_18h);
    0x0003a564 addiu a1, zero, 1             |         a1 = 1;
    0x0003a568 lw t9, -0x75a8(gp)            |         t9 = sym.imp.g_string_free;
    0x0003a56c move a0, s0                   |         a0 = s0;
    0x0003a570 jalr t9                       |         t9 ();
    0x0003a574 lw gp, 0x18(sp)               |         gp = *(var_18h);
    0x0003a578 lw t9, -0x74c8(gp)            |         t9 = *((gp - 7474));
    0x0003a57c move a0, s2                   |         a0 = s2;
    0x0003a580 jalr t9                       |         t9 ();
    0x0003a584 lw ra, 0x34(sp)               |         ra = *(var_34h);
    0x0003a588 move v0, s1                   |         v0 = s1;
    0x0003a58c lw s4, 0x30(sp)               |         s4 = *(var_30h);
    0x0003a590 lw s3, 0x2c(sp)               |         s3 = *(var_2ch);
    0x0003a594 lw s2, 0x28(sp)               |         s2 = *(var_28h);
    0x0003a598 lw s1, 0x24(sp)               |         s1 = *(var_24h);
    0x0003a59c lw s0, 0x20(sp)               |         s0 = *(var_20h);
    0x0003a5a0 addiu sp, sp, 0x38            |         
    0x0003a5a4 jr ra                         |         return v0;
                                             | label_0:
    0x0003a5a8 lw t9, -0x71b4(gp)            |         t9 = sym.imp.g_string_new;
    0x0003a5ac addiu a0, s0, 0x403c          |         a0 = s0 + 0x403c;
    0x0003a5b0 jalr t9                       |         t9 ();
    0x0003a5b4 lw gp, 0x18(sp)               |         gp = *(var_18h);
    0x0003a5b8 move a1, s3                   |         a1 = s3;
    0x0003a5bc move a0, v0                   |         a0 = v0;
    0x0003a5c0 lw t9, -0x76d0(gp)            |         t9 = sym.imp.g_string_append;
    0x0003a5c4 move s0, v0                   |         s0 = v0;
    0x0003a5c8 jalr t9                       |         t9 ();
    0x0003a5cc lw gp, 0x18(sp)               |         gp = *(var_18h);
    0x0003a5d0 b 0x3a53c                     |         
                                             |     } while (1);
                                             | }
    ; assembly                               | /* r2dec pseudo code output */
                                             | /* /logs/firmware/unblob_extracted/firmware_extract/4325012-58052244.squashfs_v4_le_extract/usr/bin/indexer @ 0x3b394 */
                                             | #include <stdint.h>
                                             |  
    ; (fcn) sym.sql_version_table ()         | void sql_version_table () {
    0x0003b394 lui gp, 5                     |     
    0x0003b398 addiu gp, gp, -0x5294         |     
    0x0003b39c addu gp, gp, t9               |     gp += t9;
    0x0003b3a0 addiu sp, sp, -0x28           |     
    0x0003b3a4 lw t9, -0x71b4(gp)            |     t9 = sym.imp.g_string_new;
    0x0003b3a8 sw s0, 0x1c(sp)               |     *(var_1ch) = s0;
    0x0003b3ac move s0, a0                   |     s0 = a0;
    0x0003b3b0 lw a0, -0x7fd8(gp)            |     a0 = *(gp);
    0x0003b3b4 sw ra, 0x24(sp)               |     *(var_24h) = ra;
    0x0003b3b8 sw s1, 0x20(sp)               |     *(var_20h) = s1;
    0x0003b3bc sw gp, 0x10(sp)               |     *(var_10h) = gp;
    0x0003b3c0 addiu a0, a0, 0x403c          |     a0 += 0x403c;
    0x0003b3c4 jalr t9                       |     t9 ();
    0x0003b3c8 lw gp, 0x10(sp)               |     gp = *(var_10h);
    0x0003b3cc move a0, s0                   |     a0 = s0;
    0x0003b3d0 move s0, v0                   |     s0 = v0;
    0x0003b3d4 lw a1, -0x7fd8(gp)            |     a1 = *(gp);
    0x0003b3d8 lw t9, -0x7cec(gp)            |     t9 = sym.sql_table_with_storage_name;
                                             |     /* str.version */
    0x0003b3dc addiu a1, a1, 0x19a4          |     a1 += 0x19a4;
    0x0003b3e0 bal 0x39fd0                   |     sym_sql_table_with_storage_name ();
    0x0003b3e4 lw gp, 0x10(sp)               |     gp = *(var_10h);
    0x0003b3e8 move a2, v0                   |     a2 = v0;
    0x0003b3ec move a0, s0                   |     a0 = s0;
    0x0003b3f0 lw a1, -0x7fd8(gp)            |     a1 = *(gp);
    0x0003b3f4 lw t9, -0x772c(gp)            |     t9 = sym.imp.g_string_append_printf
                                             |     /* str.CREATE_TABLE__s__major_INTEGER_NOT_NULL__minor_INTEGER_NOT_NULL__date_TIMESTAMP_NOT_NULL__ */
    0x0003b3f8 addiu a1, a1, 0x64d4          |     a1 += 0x64d4;
    0x0003b3fc move s1, v0                   |     s1 = v0;
    0x0003b400 jalr t9                       |     t9 ();
    0x0003b404 lw gp, 0x10(sp)               |     gp = *(var_10h);
    0x0003b408 lw t9, -0x74c8(gp)            |     t9 = *((gp - 7474));
    0x0003b40c move a0, s1                   |     a0 = s1;
    0x0003b410 jalr t9                       |     t9 ();
    0x0003b414 lw ra, 0x24(sp)               |     ra = *(var_24h);
    0x0003b418 move v0, s0                   |     v0 = s0;
    0x0003b41c lw s1, 0x20(sp)               |     s1 = *(var_20h);
    0x0003b420 lw s0, 0x1c(sp)               |     s0 = *(var_1ch);
    0x0003b424 addiu sp, sp, 0x28            |     
    0x0003b428 jr ra                         |     return v0;
                                             | }
    ; assembly                                                       | /* r2dec pseudo code output */
                                                                     | /* /logs/firmware/unblob_extracted/firmware_extract/4325012-58052244.squashfs_v4_le_extract/usr/bin/indexer @ 0x3fac8 */
                                                                     | #include <stdint.h>
                                                                     |  
    ; (fcn) sym.sql_where_recordings_in_group_condition ()           | void sql_where_recordings_in_group_condition () {
    0x0003fac8 lui gp, 4                                             |     
    0x0003facc addiu gp, gp, 0x6638                                  |     
    0x0003fad0 addu gp, gp, t9                                       |     gp += t9;
    0x0003fad4 addiu sp, sp, -0x38                                   |     
    0x0003fad8 sw gp, 0x20(sp)                                       |     *(var_20h) = gp;
    0x0003fadc sw ra, 0x34(sp)                                       |     *(var_34h) = ra;
    0x0003fae0 sw s2, 0x30(sp)                                       |     *(var_30h) = s2;
    0x0003fae4 sw s1, 0x2c(sp)                                       |     *(var_2ch) = s1;
    0x0003fae8 sw s0, 0x28(sp)                                       |     *(var_28h) = s0;
    0x0003faec move s1, a0                                           |     s1 = a0;
                                                                     |     if (a1 != 0) {
    0x0003faf0 beqz a1, 0x3fbcc                                      |         
    0x0003faf4 lw a0, -0x7fd8(gp)                                    |         a0 = *(gp);
    0x0003faf8 lw t9, -0x71b4(gp)                                    |         t9 = sym.imp.g_string_new;
    0x0003fafc addiu a0, a0, 0x403c                                  |         a0 += 0x403c;
    0x0003fb00 move s0, a1                                           |         s0 = a1;
    0x0003fb04 move s2, a2                                           |         s2 = a2;
    0x0003fb08 jalr t9                                               |         t9 ();
    0x0003fb0c lw gp, 0x20(sp)                                       |         gp = *(var_20h);
    0x0003fb10 move a0, s1                                           |         a0 = s1;
    0x0003fb14 sw s0, 0x10(sp)                                       |         *(var_10h) = s0;
    0x0003fb18 lw v1, -0x7fd8(gp)                                    |         v1 = *(gp);
    0x0003fb1c lw a3, -0x7fd8(gp)                                    |         a3 = *(gp);
    0x0003fb20 lw a2, -0x7fd8(gp)                                    |         a2 = *(gp);
    0x0003fb24 lw a1, -0x7fd8(gp)                                    |         a1 = *(gp);
    0x0003fb28 addiu v1, v1, 0xf80                                   |         v1 += 0xf80;
    0x0003fb2c lw t9, -0x7a74(gp)                                    |         t9 = sym.sql_select_column_from_table_full;
                                                                     |         /* esilref: 'recording_group_id' */
    0x0003fb30 addiu a3, a3, 0x80c                                   |         a3 += 0x80c;
                                                                     |         /* esilref: 'recording_id' */
    0x0003fb34 addiu a2, a2, 0x78c8                                  |         a2 += 0x78c8;
                                                                     |         /* str.recording_groups */
    0x0003fb38 addiu a1, a1, 0xa24                                   |         a1 += 0xa24;
    0x0003fb3c sw v1, 0x14(sp)                                       |         *(var_14h_2) = v1;
    0x0003fb40 sw zero, 0x1c(sp)                                     |         *(var_1ch_2) = 0;
    0x0003fb44 sw zero, 0x18(sp)                                     |         *(var_18h_2) = 0;
    0x0003fb48 move s0, v0                                           |         s0 = v0;
    0x0003fb4c bal 0x3d76c                                           |         sym_sql_select_column_from_table_full ();
    0x0003fb50 lw gp, 0x20(sp)                                       |         gp = *(var_20h);
    0x0003fb54 lw a2, (v0)                                           |         a2 = *(v0);
    0x0003fb58 move a0, s0                                           |         a0 = s0;
    0x0003fb5c lw a1, -0x7fd8(gp)                                    |         a1 = *(gp);
    0x0003fb60 lw t9, -0x772c(gp)                                    |         t9 = sym.imp.g_string_append_printf
                                                                     |         /* str.id_IN___s__ */
    0x0003fb64 addiu a1, a1, 0x7a38                                  |         a1 += 0x7a38;
    0x0003fb68 move s1, v0                                           |         s1 = v0;
    0x0003fb6c jalr t9                                               |         t9 ();
    0x0003fb70 lw gp, 0x20(sp)                                       |         gp = *(var_20h);
                                                                     |         if (s2 != 0) {
    0x0003fb74 beqz s2, 0x3fb94                                      |             
    0x0003fb78 lw a1, -0x7fd8(gp)                                    |             a1 = *(gp);
    0x0003fb7c lw t9, -0x772c(gp)                                    |             t9 = sym.imp.g_string_append_printf
    0x0003fb80 move a2, s2                                           |             a2 = s2;
                                                                     |             /* str.AND__s */
    0x0003fb84 addiu a1, a1, 0x7a44                                  |             a1 += 0x7a44;
    0x0003fb88 move a0, s0                                           |             a0 = s0;
    0x0003fb8c jalr t9                                               |             t9 ();
    0x0003fb90 lw gp, 0x20(sp)                                       |             gp = *(var_20h);
                                                                     |         }
    0x0003fb94 lw t9, -0x75a8(gp)                                    |         t9 = sym.imp.g_string_free;
    0x0003fb98 move a0, s1                                           |         a0 = s1;
    0x0003fb9c addiu a1, zero, 1                                     |         a1 = 1;
    0x0003fba0 jalr t9                                               |         t9 ();
    0x0003fba4 lw gp, 0x20(sp)                                       |         gp = *(var_20h);
    0x0003fba8 lw ra, 0x34(sp)                                       |         ra = *(var_34h);
    0x0003fbac lw s2, 0x30(sp)                                       |         s2 = *(var_30h);
    0x0003fbb0 lw s1, 0x2c(sp)                                       |         s1 = *(var_2ch);
    0x0003fbb4 move a0, s0                                           |         a0 = s0;
    0x0003fbb8 lw t9, -0x75a8(gp)                                    |         t9 = sym.imp.g_string_free;
    0x0003fbbc lw s0, 0x28(sp)                                       |         s0 = *(var_28h);
    0x0003fbc0 move a1, zero                                         |         a1 = 0;
    0x0003fbc4 addiu sp, sp, 0x38                                    |         
    0x0003fbc8 jr t9                                                 |         t9 ();
                                                                     |     }
    0x0003fbcc lw v0, -0x7fd8(gp)                                    |     v0 = *(gp);
    0x0003fbd0 lw a3, -0x7fd8(gp)                                    |     a3 = *(gp);
    0x0003fbd4 lw a1, -0x7fd8(gp)                                    |     a1 = *(gp);
                                                                     |     /* esilref: 'recording_group_id' */
    0x0003fbd8 addiu v0, v0, 0x80c                                   |     v0 += 0x80c;
    0x0003fbdc lw t9, -0x76c0(gp)                                    |     t9 = sym.imp.g_assertion_message_expr;
    0x0003fbe0 sw v0, 0x10(sp)                                       |     *(var_10h) = v0;
                                                                     |     /* str.sql_where_recordings_in_group_condition */
    0x0003fbe4 addiu a3, a3, 0x7d74                                  |     a3 += 0x7d74;
    0x0003fbe8 addiu a2, zero, 0x399                                 |     a2 = 0x399;
                                                                     |     /* str.sql_read.c */
    0x0003fbec addiu a1, a1, 0x6bd4                                  |     a1 += 0x6bd4;
    0x0003fbf0 move a0, zero                                         |     a0 = 0;
    0x0003fbf4 jalr t9                                               |     return t9 ();
                                                                     | }
    ; assembly                               | /* r2dec pseudo code output */
                                             | /* /logs/firmware/unblob_extracted/firmware_extract/4325012-58052244.squashfs_v4_le_extract/usr/bin/indexer @ 0x3ddd8 */
                                             | #include <stdint.h>
                                             |  
    ; (fcn) sym.sql_where_stmt ()            | void sql_where_stmt () {
    0x0003ddd8 lui gp, 5                     |     
    0x0003dddc addiu gp, gp, -0x7cd8         |     
    0x0003dde0 addu gp, gp, t9               |     gp += t9;
    0x0003dde4 addiu sp, sp, -0x68           |     
    0x0003dde8 sw gp, 0x30(sp)               |     *(var_30h_2) = gp;
    0x0003ddec sw s1, 0x44(sp)               |     *(var_44h_2) = s1;
    0x0003ddf0 sw ra, 0x64(sp)               |     *(var_64h) = ra;
    0x0003ddf4 sw fp, 0x60(sp)               |     *(var_60h) = fp;
    0x0003ddf8 sw s7, 0x5c(sp)               |     *(var_5ch) = s7;
    0x0003ddfc sw s6, 0x58(sp)               |     *(var_58h) = s6;
    0x0003de00 sw s5, 0x54(sp)               |     *(var_54h) = s5;
    0x0003de04 sw s4, 0x50(sp)               |     *(var_50h) = s4;
    0x0003de08 sw s3, 0x4c(sp)               |     *(var_4ch_2) = s3;
    0x0003de0c sw s2, 0x48(sp)               |     *(var_48h_2) = s2;
    0x0003de10 sw s0, 0x40(sp)               |     *(var_40h_2) = s0;
    0x0003de14 lw s1, 0x78(sp)               |     s1 = *(var_10h);
                                             |     if (a1 == 0) {
    0x0003de18 beqz a1, 0x3df34              |         goto label_12;
                                             |     }
    0x0003de1c lw t9, -0x7edc(gp)            |     t9 = sym.sql_sanitize_string;
    0x0003de20 move s2, a0                   |     s2 = a0;
    0x0003de24 move a0, a1                   |     a0 = a1;
    0x0003de28 move s3, a3                   |     s3 = a3;
    0x0003de2c move s6, a2                   |     s6 = a2;
    0x0003de30 bal 0x3a184                   |     sym_sql_sanitize_string ();
    0x0003de34 lw gp, 0x30(sp)               |     gp = *(var_30h_2);
    0x0003de38 move a0, s3                   |     a0 = s3;
    0x0003de3c lw t9, -0x7c5c(gp)            |     t9 = sym.sanitize_quote;
    0x0003de40 move s5, v0                   |     s5 = v0;
    0x0003de44 bal 0x3a2f0                   |     sym_sanitize_quote ();
    0x0003de48 lw gp, 0x30(sp)               |     gp = *(var_30h_2);
    0x0003de4c move a0, s1                   |     a0 = s1;
    0x0003de50 lw t9, -0x7c5c(gp)            |     t9 = sym.sanitize_quote;
    0x0003de54 move s7, v0                   |     s7 = v0;
    0x0003de58 bal 0x3a2f0                   |     sym_sanitize_quote ();
    0x0003de5c lw gp, 0x30(sp)               |     gp = *(var_30h_2);
    0x0003de60 move fp, v0                   |     fp = v0;
    0x0003de64 lw a0, -0x7fd8(gp)            |     a0 = *(gp);
    0x0003de68 lw t9, -0x71b4(gp)            |     t9 = sym.imp.g_string_new;
    0x0003de6c addiu a0, a0, 0x403c          |     a0 += 0x403c;
    0x0003de70 jalr t9                       |     t9 ();
    0x0003de74 move s0, v0                   |     s0 = v0;
    0x0003de78 lw gp, 0x30(sp)               |     gp = *(var_30h_2);
                                             |     if (s3 == 0) {
    0x0003de7c beqz s3, 0x3df60              |         goto label_13;
                                             |     }
    0x0003de80 lw v0, 0x8c(sp)               |     v0 = *(var_8ch);
                                             |     if (s1 == 0) {
    0x0003de84 beqz s1, 0x3df18              |         goto label_14;
                                             |     }
    0x0003de88 lw a0, (s7)                   |     a0 = *(s7);
    0x0003de8c lw a1, (fp)                   |     a1 = *(fp);
                                             |     if (v0 != 0) {
    0x0003de90 bnez v0, 0x3e304              |         goto label_15;
                                             |     }
    0x0003de94 lw t9, -0x778c(gp)            |     t9 = sym.imp.g_strcmp0;
    0x0003de98 jalr t9                       |     t9 ();
    0x0003de9c nop                           |     
    0x0003dea0 lw gp, 0x30(sp)               |     gp = *(var_30h_2);
                                             |     if (v0 != 0) {
    0x0003dea4 bnez v0, 0x3e354              |         goto label_16;
                                             |     }
    0x0003dea8 lw a3, -0x7fd8(gp)            |     a3 = *(gp);
                                             |     /* esilref: '<=' */
    0x0003deac addiu a3, a3, 0x6f0c          |     a3 += 0x6f0c;
                                             | label_6:
    0x0003deb0 lw v0, (s7)                   |     v0 = *(s7);
    0x0003deb4 lw a2, (s5)                   |     a2 = *(s5);
    0x0003deb8 sw v0, 0x2c(sp)               |     *(var_2ch) = v0;
    0x0003debc sw a2, 0x28(sp)               |     *(var_28h_2) = a2;
    0x0003dec0 sw v0, 0x24(sp)               |     *(var_24h) = v0;
    0x0003dec4 sw a2, 0x20(sp)               |     *(var_20h) = a2;
    0x0003dec8 sw a2, 0x1c(sp)               |     *(var_1ch) = a2;
    0x0003decc sw v0, 0x18(sp)               |     *(var_18h) = v0;
    0x0003ded0 sw a2, 0x14(sp)               |     *(var_14h) = a2;
    0x0003ded4 lw v0, (fp)                   |     v0 = *(fp);
    0x0003ded8 lw a1, -0x7fd8(gp)            |     a1 = *(gp);
    0x0003dedc lw t9, -0x772c(gp)            |     t9 = sym.imp.g_string_append_printf
    0x0003dee0 sw v0, 0x10(sp)               |     *(var_10h_2) = v0;
                                             |     /* str.____s.starttime__s__s_AND___s.stoptime____s_OR__s.stoptime_IS_NULL___OR___s.starttime___s_AND__s.stoptime___s__ */
    0x0003dee4 addiu a1, a1, 0x6f3c          |     a1 += 0x6f3c;
    0x0003dee8 move a0, s0                   |     a0 = s0;
    0x0003deec jalr t9                       |     t9 ();
    0x0003def0 lw v0, 0x7c(sp)               |     v0 = *(var_7ch);
    0x0003def4 lw gp, 0x30(sp)               |     gp = *(var_30h_2);
                                             |     if (v0 != 0) {
    0x0003def8 bnez v0, 0x3df8c              |         goto label_3;
                                             |     }
                                             |     do {
    0x0003defc lw v0, 0x80(sp)               |         v0 = *(var_80h);
                                             | label_4:
    0x0003df00 lw s1, -0x7fd8(gp)            |         s1 = *(gp);
                                             |         if (v0 == 0) {
    0x0003df04 beqz v0, 0x3e33c              |             goto label_17;
                                             |         }
    0x0003df08 lw s4, -0x7f50(gp)            |         s4 = *((gp - 8148));
    0x0003df0c addiu s1, s1, 0xf80           |         s1 += 0xf80;
    0x0003df10 lw s3, -0x7a74(gp)            |         s3 = sym.sql_select_column_from_table_full;
    0x0003df14 b 0x3e02c                     |         goto label_18;
                                             | label_14:
    0x0003df18 lw a2, (s5)                   |         a2 = *(s5);
    0x0003df1c lw a3, (s7)                   |         a3 = *(s7);
    0x0003df20 lw t9, -0x772c(gp)            |         t9 = sym.imp.g_string_append_printf
                                             |         if (v0 == 0) {
    0x0003df24 beqz v0, 0x3e2dc              |             goto label_19;
                                             |         }
    0x0003df28 lw a1, -0x7fd8(gp)            |         a1 = *(gp);
                                             |         /* str.___s.starttime____s_ */
    0x0003df2c addiu a1, a1, 0x6fc8          |         a1 += 0x6fc8;
    0x0003df30 b 0x3df78                     |         goto label_20;
                                             | label_12:
    0x0003df34 lw v0, -0x7fd8(gp)            |         v0 = *(gp);
    0x0003df38 lw a3, -0x7fd8(gp)            |         a3 = *(gp);
    0x0003df3c lw a1, -0x7fd8(gp)            |         a1 = *(gp);
                                             |         /* esilref: 'table' */
    0x0003df40 addiu v0, v0, 0x8e0           |         v0 += 0x8e0;
    0x0003df44 lw t9, -0x76c0(gp)            |         t9 = sym.imp.g_assertion_message_expr;
    0x0003df48 sw v0, 0x10(sp)               |         *(var_10h_2) = v0;
                                             |         /* str.sql_where_stmt */
    0x0003df4c addiu a3, a3, 0x7f38          |         a3 += 0x7f38;
    0x0003df50 addiu a2, zero, 0x11e         |         a2 = 0x11e;
                                             |         /* str.sql_read.c */
    0x0003df54 addiu a1, a1, 0x6bd4          |         a1 += 0x6bd4;
    0x0003df58 move a0, zero                 |         a0 = 0;
    0x0003df5c jalr t9                       |         t9 ();
                                             | label_13:
    0x0003df60 lw a1, -0x7fd8(gp)            |         a1 = *(gp);
                                             |         if (s1 == 0) {
    0x0003df64 beqz s1, 0x3e2a8              |             goto label_21;
                                             |         }
    0x0003df68 lw t9, -0x772c(gp)            |         t9 = sym.imp.g_string_append_printf
    0x0003df6c lw a3, (fp)                   |         a3 = *(fp);
    0x0003df70 lw a2, (s5)                   |         a2 = *(s5);
                                             |         /* str.___s.starttime____s__ */
    0x0003df74 addiu a1, a1, 0x6fb0          |         a1 += 0x6fb0;
                                             | label_20:
    0x0003df78 move a0, s0                   |         a0 = s0;
    0x0003df7c jalr t9                       |         t9 ();
    0x0003df80 lw v0, 0x7c(sp)               |         v0 = *(var_7ch);
    0x0003df84 lw gp, 0x30(sp)               |         gp = *(var_30h_2);
    0x0003df88 beqz v0, 0x3defc              |         
                                             |     } while (v0 == 0);
                                             | label_3:
    0x0003df8c lw a1, -0x7fd8(gp)            |     a1 = *(gp);
    0x0003df90 lw t9, -0x772c(gp)            |     t9 = sym.imp.g_string_append_printf
                                             |     /* str._AND */
    0x0003df94 addiu a1, a1, 0x1054          |     a1 += 0x1054;
    0x0003df98 move a0, s0                   |     a0 = s0;
    0x0003df9c jalr t9                       |     t9 ();
    0x0003dfa0 lw gp, 0x30(sp)               |     gp = *(var_30h_2);
    0x0003dfa4 lw s1, -0x7fd8(gp)            |     s1 = *(gp);
                                             |     do {
    0x0003dfa8 lw s4, -0x7f50(gp)            |         s4 = *((gp - 8148));
    0x0003dfac lw s3, -0x7a74(gp)            |         s3 = sym.sql_select_column_from_table_full;
    0x0003dfb0 lw a3, -0x7fd8(gp)            |         a3 = *(gp);
    0x0003dfb4 lw a1, -0x7fd8(gp)            |         a1 = *(gp);
    0x0003dfb8 lw v0, 0x7c(sp)               |         v0 = *(var_7ch);
    0x0003dfbc addiu s1, s1, 0xf80           |         s1 += 0xf80;
                                             |         /* str.action_name */
    0x0003dfc0 addiu a3, a3, 0xcfc           |         a3 += 0xcfc;
                                             |         /* esilref: 'id' */
    0x0003dfc4 addiu a2, s4, -0x6dbc         |         a2 = s4 + -0x6dbc;
                                             |         /* str.recording_actions */
    0x0003dfc8 addiu a1, a1, 0xbbc           |         a1 += aav.0x00000bbc;
    0x0003dfcc move a0, s2                   |         a0 = s2;
    0x0003dfd0 move t9, s3                   |         t9 = s3;
    0x0003dfd4 sw zero, 0x1c(sp)             |         *(var_1ch) = 0;
    0x0003dfd8 sw zero, 0x18(sp)             |         *(var_18h) = 0;
    0x0003dfdc sw s1, 0x14(sp)               |         *(var_14h) = s1;
    0x0003dfe0 sw v0, 0x10(sp)               |         *(var_10h_2) = v0;
    0x0003dfe4 bal 0x3d76c                   |         sym_sql_select_column_from_table_full ();
    0x0003dfe8 lw gp, 0x30(sp)               |         gp = *(var_30h_2);
    0x0003dfec lw a2, (v0)                   |         a2 = *(v0);
    0x0003dff0 sw v0, 0x3c(sp)               |         *(var_3ch_2) = v0;
    0x0003dff4 lw a1, -0x7fd8(gp)            |         a1 = *(gp);
    0x0003dff8 lw t9, -0x772c(gp)            |         t9 = sym.imp.g_string_append_printf
                                             |         /* str.__recording_action_id__s__ */
    0x0003dffc addiu a1, a1, 0x700c          |         a1 += 0x700c;
    0x0003e000 move a0, s0                   |         a0 = s0;
    0x0003e004 jalr t9                       |         t9 ();
    0x0003e008 lw gp, 0x30(sp)               |         gp = *(var_30h_2);
    0x0003e00c lw v0, 0x3c(sp)               |         v0 = *(var_3ch_2);
    0x0003e010 addiu a1, zero, 1             |         a1 = 1;
    0x0003e014 lw t9, -0x75a8(gp)            |         t9 = sym.imp.g_string_free;
    0x0003e018 move a0, v0                   |         a0 = v0;
    0x0003e01c jalr t9                       |         t9 ();
    0x0003e020 lw v0, 0x80(sp)               |         v0 = *(var_80h);
    0x0003e024 lw gp, 0x30(sp)               |         gp = *(var_30h_2);
                                             |         if (v0 != 0) {
    0x0003e028 beqz v0, 0x3e0b4              |             
                                             | label_18:
    0x0003e02c lw a1, -0x7fd8(gp)            |             a1 = *(gp);
    0x0003e030 lw t9, -0x772c(gp)            |             t9 = sym.imp.g_string_append_printf
                                             |             /* str._AND */
    0x0003e034 addiu a1, a1, 0x1054          |             a1 += 0x1054;
    0x0003e038 move a0, s0                   |             a0 = s0;
    0x0003e03c jalr t9                       |             t9 ();
    0x0003e040 lw gp, 0x30(sp)               |             gp = *(var_30h_2);
                                             | label_0:
    0x0003e044 lw a3, -0x7fd8(gp)            |             a3 = *(gp);
    0x0003e048 lw a1, -0x7fd8(gp)            |             a1 = *(gp);
    0x0003e04c lw v0, 0x80(sp)               |             v0 = *(var_80h);
                                             |             /* str.event_name */
    0x0003e050 addiu a3, a3, 0xcf0           |             a3 += 0xcf0;
                                             |             /* esilref: 'id' */
    0x0003e054 addiu a2, s4, -0x6dbc         |             a2 = s4 + -0x6dbc;
                                             |             /* str.recording_events */
    0x0003e058 addiu a1, a1, 0xc30           |             a1 += 0xc30;
    0x0003e05c move a0, s2                   |             a0 = s2;
    0x0003e060 move t9, s3                   |             t9 = s3;
    0x0003e064 sw zero, 0x1c(sp)             |             *(var_1ch) = 0;
    0x0003e068 sw zero, 0x18(sp)             |             *(var_18h) = 0;
    0x0003e06c sw s1, 0x14(sp)               |             *(var_14h) = s1;
    0x0003e070 sw v0, 0x10(sp)               |             *(var_10h_2) = v0;
    0x0003e074 bal 0x3d76c                   |             sym_sql_select_column_from_table_full ();
    0x0003e078 lw gp, 0x30(sp)               |             gp = *(var_30h_2);
    0x0003e07c lw a2, (v0)                   |             a2 = *(v0);
    0x0003e080 sw v0, 0x3c(sp)               |             *(var_3ch_2) = v0;
    0x0003e084 lw a1, -0x7fd8(gp)            |             a1 = *(gp);
    0x0003e088 lw t9, -0x772c(gp)            |             t9 = sym.imp.g_string_append_printf
                                             |             /* str.__recording_event_id__s__ */
    0x0003e08c addiu a1, a1, 0x7028          |             a1 += 0x7028;
    0x0003e090 move a0, s0                   |             a0 = s0;
    0x0003e094 jalr t9                       |             t9 ();
    0x0003e098 lw gp, 0x30(sp)               |             gp = *(var_30h_2);
    0x0003e09c lw v0, 0x3c(sp)               |             v0 = *(var_3ch_2);
    0x0003e0a0 addiu a1, zero, 1             |             a1 = 1;
    0x0003e0a4 lw t9, -0x75a8(gp)            |             t9 = sym.imp.g_string_free;
    0x0003e0a8 move a0, v0                   |             a0 = v0;
    0x0003e0ac jalr t9                       |             t9 ();
    0x0003e0b0 lw gp, 0x30(sp)               |             gp = *(var_30h_2);
                                             |         }
    0x0003e0b4 lw v0, 0x84(sp)               |         v0 = *(var_84h);
    0x0003e0b8 lw v0, 0x88(sp)               |         v0 = *(var_88h);
                                             |         if (v0 != 0) {
    0x0003e0bc beqz v0, 0x3e14c              |             
                                             | label_5:
    0x0003e0c0 lw a1, -0x7fd8(gp)            |             a1 = *(gp);
    0x0003e0c4 lw t9, -0x772c(gp)            |             t9 = sym.imp.g_string_append_printf
                                             |             /* str._AND */
    0x0003e0c8 addiu a1, a1, 0x1054          |             a1 += 0x1054;
    0x0003e0cc move a0, s0                   |             a0 = s0;
    0x0003e0d0 jalr t9                       |             t9 ();
    0x0003e0d4 lw gp, 0x30(sp)               |             gp = *(var_30h_2);
                                             | label_7:
    0x0003e0d8 lw a3, -0x7fd8(gp)            |             a3 = *(gp);
    0x0003e0dc lw a1, -0x7fd8(gp)            |             a1 = *(gp);
    0x0003e0e0 lw v0, 0x84(sp)               |             v0 = *(var_84h);
                                             |             /* str.source_name */
    0x0003e0e4 addiu a3, a3, 0xd08           |             a3 += 0xd08;
                                             |             /* esilref: 'id' */
    0x0003e0e8 addiu a2, s4, -0x6dbc         |             a2 = s4 + -0x6dbc;
                                             |             /* str.recording_sources */
    0x0003e0ec addiu a1, a1, 0xc08           |             a1 += 0xc08;
    0x0003e0f0 move a0, s2                   |             a0 = s2;
    0x0003e0f4 move t9, s3                   |             t9 = s3;
    0x0003e0f8 sw zero, 0x1c(sp)             |             *(var_1ch) = 0;
    0x0003e0fc sw zero, 0x18(sp)             |             *(var_18h) = 0;
    0x0003e100 sw s1, 0x14(sp)               |             *(var_14h) = s1;
    0x0003e104 sw v0, 0x10(sp)               |             *(var_10h_2) = v0;
    0x0003e108 bal 0x3d76c                   |             sym_sql_select_column_from_table_full ();
    0x0003e10c lw gp, 0x30(sp)               |             gp = *(var_30h_2);
    0x0003e110 lw a2, (v0)                   |             a2 = *(v0);
    0x0003e114 sw v0, 0x3c(sp)               |             *(var_3ch_2) = v0;
    0x0003e118 lw a1, -0x7fd8(gp)            |             a1 = *(gp);
    0x0003e11c lw t9, -0x772c(gp)            |             t9 = sym.imp.g_string_append_printf
                                             |             /* str.__recording_source_id__s__ */
    0x0003e120 addiu a1, a1, 0x7044          |             a1 += 0x7044;
    0x0003e124 move a0, s0                   |             a0 = s0;
    0x0003e128 jalr t9                       |             t9 ();
    0x0003e12c lw gp, 0x30(sp)               |             gp = *(var_30h_2);
    0x0003e130 lw v0, 0x3c(sp)               |             v0 = *(var_3ch_2);
    0x0003e134 addiu a1, zero, 1             |             a1 = 1;
    0x0003e138 lw t9, -0x75a8(gp)            |             t9 = sym.imp.g_string_free;
    0x0003e13c move a0, v0                   |             a0 = v0;
    0x0003e140 jalr t9                       |             t9 ();
    0x0003e144 lw gp, 0x30(sp)               |             gp = *(var_30h_2);
    0x0003e148 lw v0, 0x88(sp)               |             v0 = *(var_88h);
                                             |         }
                                             |         if (v0 == 0) {
    0x0003e14c beqz v0, 0x3e2cc              |             goto label_8;
                                             |         }
    0x0003e150 nop                           |         
                                             | label_9:
    0x0003e154 lw a1, -0x7fd8(gp)            |         a1 = *(gp);
    0x0003e158 lw t9, -0x772c(gp)            |         t9 = sym.imp.g_string_append_printf
                                             |         /* str._AND */
    0x0003e15c addiu a1, a1, 0x1054          |         a1 += 0x1054;
    0x0003e160 move a0, s0                   |         a0 = s0;
    0x0003e164 jalr t9                       |         t9 ();
    0x0003e168 lw gp, 0x30(sp)               |         gp = *(var_30h_2);
                                             | label_10:
    0x0003e16c lw a3, -0x7fd8(gp)            |         a3 = *(gp);
    0x0003e170 lw a1, -0x7fd8(gp)            |         a1 = *(gp);
    0x0003e174 lw v0, 0x88(sp)               |         v0 = *(var_88h);
                                             |         /* str.recording_type */
    0x0003e178 addiu a3, a3, 0xce0           |         a3 += aav.0x00000ce0;
                                             |         /* esilref: 'id' */
    0x0003e17c addiu a2, s4, -0x6dbc         |         a2 = s4 + -0x6dbc;
                                             |         /* str.recording_types */
    0x0003e180 addiu a1, a1, 0xbe4           |         a1 += 0xbe4;
    0x0003e184 move a0, s2                   |         a0 = s2;
    0x0003e188 sw s1, 0x14(sp)               |         *(var_14h) = s1;
    0x0003e18c move t9, s3                   |         t9 = s3;
    0x0003e190 sw zero, 0x1c(sp)             |         *(var_1ch) = 0;
    0x0003e194 sw zero, 0x18(sp)             |         *(var_18h) = 0;
    0x0003e198 sw v0, 0x10(sp)               |         *(var_10h_2) = v0;
    0x0003e19c bal 0x3d76c                   |         sym_sql_select_column_from_table_full ();
    0x0003e1a0 lw gp, 0x30(sp)               |         gp = *(var_30h_2);
    0x0003e1a4 lw a2, (v0)                   |         a2 = *(v0);
    0x0003e1a8 move a0, s0                   |         a0 = s0;
    0x0003e1ac lw a1, -0x7fd8(gp)            |         a1 = *(gp);
    0x0003e1b0 lw t9, -0x772c(gp)            |         t9 = sym.imp.g_string_append_printf
                                             |         /* str.__recording_type_id__s__ */
    0x0003e1b4 addiu a1, a1, 0x7060          |         a1 += 0x7060;
    0x0003e1b8 move s1, v0                   |         s1 = v0;
    0x0003e1bc jalr t9                       |         t9 ();
    0x0003e1c0 lw gp, 0x30(sp)               |         gp = *(var_30h_2);
    0x0003e1c4 addiu a1, zero, 1             |         a1 = 1;
    0x0003e1c8 lw t9, -0x75a8(gp)            |         t9 = sym.imp.g_string_free;
    0x0003e1cc move a0, s1                   |         a0 = s1;
    0x0003e1d0 jalr t9                       |         t9 ();
    0x0003e1d4 lw gp, 0x30(sp)               |         gp = *(var_30h_2);
                                             |         if (s6 != 0) {
    0x0003e1d8 beqz s6, 0x3e23c              |             
    0x0003e1dc lw a1, -0x7fd8(gp)            |             a1 = *(gp);
                                             | label_1:
    0x0003e1e0 lw t9, -0x772c(gp)            |             t9 = sym.imp.g_string_append_printf
                                             |             /* str._AND */
    0x0003e1e4 addiu a1, a1, 0x1054          |             a1 += 0x1054;
    0x0003e1e8 move a0, s0                   |             a0 = s0;
    0x0003e1ec jalr t9                       |             t9 ();
    0x0003e1f0 lw gp, 0x30(sp)               |             gp = *(var_30h_2);
    0x0003e1f4 lw t9, -0x7c5c(gp)            |             t9 = sym.sanitize_quote;
                                             | label_11:
    0x0003e1f8 move a0, s6                   |             a0 = s6;
    0x0003e1fc bal 0x3a2f0                   |             sym_sanitize_quote ();
    0x0003e200 lw gp, 0x30(sp)               |             gp = *(var_30h_2);
    0x0003e204 lw a3, (v0)                   |             a3 = *(v0);
    0x0003e208 lw a2, (s5)                   |             a2 = *(s5);
    0x0003e20c lw a1, -0x7fd8(gp)            |             a1 = *(gp);
    0x0003e210 lw t9, -0x772c(gp)            |             t9 = sym.imp.g_string_append_printf
                                             |             /* str.___s.filename_s_ */
    0x0003e214 addiu a1, a1, 0x707c          |             a1 += 0x707c;
    0x0003e218 move a0, s0                   |             a0 = s0;
    0x0003e21c move s1, v0                   |             s1 = v0;
    0x0003e220 jalr t9                       |             t9 ();
    0x0003e224 lw gp, 0x30(sp)               |             gp = *(var_30h_2);
    0x0003e228 addiu a1, zero, 1             |             a1 = 1;
    0x0003e22c lw t9, -0x75a8(gp)            |             t9 = sym.imp.g_string_free;
    0x0003e230 move a0, s1                   |             a0 = s1;
    0x0003e234 jalr t9                       |             t9 ();
    0x0003e238 lw gp, 0x30(sp)               |             gp = *(var_30h_2);
                                             |         }
    0x0003e23c lw t9, -0x75a8(gp)            |         t9 = sym.imp.g_string_free;
                                             | label_2:
    0x0003e240 move a0, s5                   |         a0 = s5;
    0x0003e244 addiu a1, zero, 1             |         a1 = 1;
    0x0003e248 jalr t9                       |         t9 ();
    0x0003e24c lw gp, 0x30(sp)               |         gp = *(var_30h_2);
    0x0003e250 move a0, s7                   |         a0 = s7;
    0x0003e254 lw t9, -0x75a8(gp)            |         t9 = sym.imp.g_string_free;
    0x0003e258 addiu a1, zero, 1             |         a1 = 1;
    0x0003e25c jalr t9                       |         t9 ();
    0x0003e260 lw gp, 0x30(sp)               |         gp = *(var_30h_2);
    0x0003e264 move a0, fp                   |         a0 = fp;
    0x0003e268 lw t9, -0x75a8(gp)            |         t9 = sym.imp.g_string_free;
    0x0003e26c addiu a1, zero, 1             |         a1 = 1;
    0x0003e270 jalr t9                       |         t9 ();
    0x0003e274 lw ra, 0x64(sp)               |         ra = *(var_64h);
    0x0003e278 move v0, s0                   |         v0 = s0;
    0x0003e27c lw fp, 0x60(sp)               |         fp = *(var_60h);
    0x0003e280 lw s7, 0x5c(sp)               |         s7 = *(var_5ch);
    0x0003e284 lw s6, 0x58(sp)               |         s6 = *(var_58h);
    0x0003e288 lw s5, 0x54(sp)               |         s5 = *(var_54h);
    0x0003e28c lw s4, 0x50(sp)               |         s4 = *(var_50h);
    0x0003e290 lw s3, 0x4c(sp)               |         s3 = *(var_4ch_2);
    0x0003e294 lw s2, 0x48(sp)               |         s2 = *(var_48h_2);
    0x0003e298 lw s1, 0x44(sp)               |         s1 = *(var_44h_2);
    0x0003e29c lw s0, 0x40(sp)               |         s0 = *(var_40h_2);
    0x0003e2a0 addiu sp, sp, 0x68            |         
    0x0003e2a4 jr ra                         |         return v0;
                                             | label_21:
    0x0003e2a8 lw v0, 0x7c(sp)               |         v0 = *(var_7ch);
    0x0003e2ac lw s1, -0x7fd8(gp)            |         s1 = *(gp);
    0x0003e2b0 bnez v0, 0x3dfa8              |         
                                             |     } while (v0 != 0);
    0x0003e2b4 lw v0, 0x80(sp)               |     v0 = *(var_80h);
    0x0003e2b8 lw s4, -0x7f50(gp)            |     s4 = *((gp - 8148));
                                             |     if (v0 == 0) {
    0x0003e2bc beqz v0, 0x3e360              |         goto label_22;
                                             |     }
    0x0003e2c0 addiu s1, s1, 0xf80           |     s1 += 0xf80;
    0x0003e2c4 lw s3, -0x7a74(gp)            |     s3 = sym.sql_select_column_from_table_full;
    0x0003e2c8 b 0x3e044                     |     goto label_0;
                                             | label_8:
    0x0003e2cc lw a1, -0x7fd8(gp)            |     a1 = *(gp);
                                             |     if (s6 != 0) {
    0x0003e2d0 bnez s6, 0x3e1e0              |         goto label_1;
                                             |     }
    0x0003e2d4 lw t9, -0x75a8(gp)            |     t9 = sym.imp.g_string_free;
    0x0003e2d8 b 0x3e240                     |     goto label_2;
                                             | label_19:
    0x0003e2dc lw a1, -0x7fd8(gp)            |     a1 = *(gp);
    0x0003e2e0 sw a2, 0x10(sp)               |     *(var_10h_2) = a2;
                                             |     /* str.___s.stoptime____s_OR__s.stoptime_IS_NULL_ */
    0x0003e2e4 addiu a1, a1, 0x6fe0          |     a1 += 0x6fe0;
    0x0003e2e8 move a0, s0                   |     a0 = s0;
    0x0003e2ec jalr t9                       |     t9 ();
    0x0003e2f0 lw v0, 0x7c(sp)               |     v0 = *(var_7ch);
    0x0003e2f4 lw gp, 0x30(sp)               |     gp = *(var_30h_2);
                                             |     if (v0 != 0) {
    0x0003e2f8 bnez v0, 0x3df8c              |         goto label_3;
                                             |     }
    0x0003e2fc lw v0, 0x80(sp)               |     v0 = *(var_80h);
    0x0003e300 b 0x3df00                     |     goto label_4;
                                             | label_15:
    0x0003e304 lw a2, (s5)                   |     a2 = *(s5);
    0x0003e308 sw a1, 0x14(sp)               |     *(var_14h) = a1;
    0x0003e30c lw a1, -0x7fd8(gp)            |     a1 = *(gp);
    0x0003e310 lw t9, -0x772c(gp)            |     t9 = sym.imp.g_string_append_printf
    0x0003e314 move a3, a0                   |     a3 = a0;
    0x0003e318 sw a2, 0x10(sp)               |     *(var_10h_2) = a2;
                                             |     /* str.___s.starttime____s_AND__s.starttime____s_ */
    0x0003e31c addiu a1, a1, 0x6f10          |     a1 += 0x6f10;
    0x0003e320 move a0, s0                   |     a0 = s0;
    0x0003e324 jalr t9                       |     t9 ();
    0x0003e328 lw v0, 0x7c(sp)               |     v0 = *(var_7ch);
    0x0003e32c lw gp, 0x30(sp)               |     gp = *(var_30h_2);
                                             |     if (v0 != 0) {
    0x0003e330 bnez v0, 0x3df8c              |         goto label_3;
                                             |     }
    0x0003e334 lw v0, 0x80(sp)               |     v0 = *(var_80h);
    0x0003e338 b 0x3df00                     |     goto label_4;
                                             | label_17:
    0x0003e33c lw v0, 0x84(sp)               |     v0 = *(var_84h);
    0x0003e340 lw s4, -0x7f50(gp)            |     s4 = *((gp - 8148));
                                             |     if (v0 != 0) {
    0x0003e344 beqz v0, 0x3e37c              |         
    0x0003e348 addiu s1, s1, 0xf80           |         s1 += 0xf80;
    0x0003e34c lw s3, -0x7a74(gp)            |         s3 = sym.sql_select_column_from_table_full;
    0x0003e350 b 0x3e0c0                     |         goto label_5;
                                             | label_16:
    0x0003e354 lw a3, -0x7fd8(gp)            |         a3 = *(gp);
    0x0003e358 addiu a3, a3, 0x6f08          |         a3 += 0x6f08;
    0x0003e35c b 0x3deb0                     |         goto label_6;
                                             | label_22:
    0x0003e360 lw v0, 0x84(sp)               |         v0 = *(var_84h);
    0x0003e364 lw s1, -0x7fd8(gp)            |         s1 = *(gp);
                                             |         if (v0 == 0) {
    0x0003e368 beqz v0, 0x3e398              |             goto label_23;
                                             |         }
    0x0003e36c lw s4, -0x7f50(gp)            |         s4 = *((gp - 8148));
    0x0003e370 addiu s1, s1, 0xf80           |         s1 += 0xf80;
    0x0003e374 lw s3, -0x7a74(gp)            |         s3 = sym.sql_select_column_from_table_full;
    0x0003e378 b 0x3e0d8                     |         goto label_7;
                                             |     }
    0x0003e37c lw v0, 0x88(sp)               |     v0 = *(var_88h);
    0x0003e380 lw s1, -0x7fd8(gp)            |     s1 = *(gp);
                                             |     if (v0 == 0) {
    0x0003e384 beqz v0, 0x3e2cc              |         goto label_8;
                                             |     }
    0x0003e388 lw s4, -0x7f50(gp)            |     s4 = *((gp - 8148));
    0x0003e38c addiu s1, s1, 0xf80           |     s1 += 0xf80;
    0x0003e390 lw s3, -0x7a74(gp)            |     s3 = sym.sql_select_column_from_table_full;
    0x0003e394 b 0x3e154                     |     goto label_9;
                                             | label_23:
    0x0003e398 lw v0, 0x88(sp)               |     v0 = *(var_88h);
    0x0003e39c lw s4, -0x7f50(gp)            |     s4 = *((gp - 8148));
                                             |     if (v0 != 0) {
    0x0003e3a0 beqz v0, 0x3e3b0              |         
    0x0003e3a4 addiu s1, s1, 0xf80           |         s1 += 0xf80;
    0x0003e3a8 lw s3, -0x7a74(gp)            |         s3 = sym.sql_select_column_from_table_full;
    0x0003e3ac b 0x3e16c                     |         goto label_10;
                                             |     }
    0x0003e3b0 lw t9, -0x7c5c(gp)            |     t9 = sym.sanitize_quote;
                                             |     if (s6 == 0) {
    0x0003e3b4 bnel s6, zero, 0x3e1f8        |         goto label_11;
                                             |     }
    0x0003e3b8 lw t9, -0x75a8(gp)            |     t9 = sym.imp.g_string_free;
    0x0003e3bc b 0x3e240                     |     goto label_2;
                                             | }

[*] Function printf used 163 times indexer