[*] Binary protection state of dbd

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


[*] Function fprintf tear down of dbd

    ; assembly                               | /* r2dec pseudo code output */
                                             | /* /logs/firmware/patool_extraction/DUMP/mtdblock8_unblob_extracted/mtdblock8_extract/0-9650176.squashfs_v4_le_extract/sbin/dbd @ 0x403684 */
                                             | #include <stdint.h>
                                             |  
    ; (fcn) aav.0x00403684 ()                | void aav_0x00403684 () {
    0x00403684 lui gp, 2                     |     
    0x00403688 addiu gp, gp, -0x2654         |     
    0x0040368c addu gp, gp, t9               |     gp += t9;
    0x00403690 addiu sp, sp, -0x80           |     
    0x00403694 sw ra, 0x7c(sp)               |     *(var_7ch) = ra;
    0x00403698 sw fp, 0x78(sp)               |     *(var_78h) = fp;
    0x0040369c sw s0, 0x74(sp)               |     *(var_74h) = s0;
    0x004036a0 move fp, sp                   |     fp = sp;
    0x004036a4 sw gp, 0x18(sp)               |     *(var_18h) = gp;
    0x004036a8 sw a0, 0x24(fp)               |     *(arg_24h) = a0;
    0x004036ac lw t8, -0x7e74(gp)            |     t8 = *((gp - 8093));
    0x004036b0 lw t8, (t8)                   |     t8 = *(t8);
    0x004036b4 sw t8, 0x6c(fp)               |     *(arg_6ch) = t8;
    0x004036b8 sw zero, 0x3c(fp)             |     *(arg_3ch) = 0;
    0x004036bc addiu t8, zero, -1            |     t8 = -1;
    0x004036c0 sw t8, 0x40(fp)               |     *(arg_40h) = t8;
    0x004036c4 sw zero, 0x44(fp)             |     *(arg_44h) = 0;
    0x004036c8 sw zero, 0x48(fp)             |     *(arg_48h) = 0;
    0x004036cc sw zero, 0x4c(fp)             |     *(arg_4ch) = 0;
    0x004036d0 sw zero, 0x2c(fp)             |     *(arg_2ch) = 0;
    0x004036d4 sw zero, 0x30(fp)             |     *(arg_30h) = 0;
    0x004036d8 sw zero, 0x50(fp)             |     *(arg_50h) = 0;
    0x004036dc sw zero, 0x54(fp)             |     *(arg_54h) = 0;
    0x004036e0 sw zero, 0x58(fp)             |     *(arg_58h) = 0;
    0x004036e4 lw t8, 0x24(fp)               |     t8 = *(arg_24h);
                                             |     if (t8 == 0) {
    0x004036e8 bnez t8, 0x4036fc             |         
    0x004036ec nop                           |         
    0x004036f0 lw t8, 0x40(fp)               |         t8 = *(arg_40h);
    0x004036f4 b 0x403f94                    |         goto label_1;
    0x004036f8 nop                           |         
                                             |     }
    0x004036fc lw t8, -0x7fdc(gp)            |     t8 = *(gp);
                                             |     /* str._etc_db_default.xml */
    0x00403700 addiu a0, t8, 0x7a08          |     a0 = t8 + 0x7a08;
    0x00403704 lw t8, -0x7fdc(gp)            |     t8 = *(gp);
    0x00403708 addiu a1, t8, 0x79fc          |     a1 = t8 + 0x79fc;
    0x0040370c lw t8, -0x7ee0(gp)            |     t8 = sym.imp.fopen;
    0x00403710 move t9, t8                   |     t9 = t8;
    0x00403714 jalr t9                       |     t9 ();
    0x00403718 nop                           |     
    0x0040371c lw gp, 0x18(fp)               |     gp = *(arg_18h);
    0x00403720 move t8, v0                   |     t8 = v0;
    0x00403724 sw t8, 0x3c(fp)               |     *(arg_3ch) = t8;
    0x00403728 lw t8, 0x3c(fp)               |     t8 = *(arg_3ch);
    0x0040372c sltiu t8, t8, 1               |     t8 = (t8 < 1) ? 1 : 0;
    0x00403730 andi t8, t8, 0xff             |     t8 &= 0xff;
                                             |     if (t8 != 0) {
    0x00403734 beqz t8, 0x4037a8             |         
    0x00403738 nop                           |         
    0x0040373c lw t8, -0x7ee8(gp)            |         t8 = *((gp - 8122));
    0x00403740 lw s0, (t8)                   |         s0 = *(t8);
    0x00403744 lw t8, -0x7e70(gp)            |         t8 = sym.imp.__errno_location;
    0x00403748 move t9, t8                   |         t9 = t8;
    0x0040374c jalr t9                       |         t9 ();
    0x00403750 nop                           |         
    0x00403754 lw gp, 0x18(fp)               |         gp = *(arg_18h);
    0x00403758 move t8, v0                   |         t8 = v0;
    0x0040375c lw t8, (t8)                   |         t8 = *(t8);
    0x00403760 addiu v0, zero, 0x187         |         v0 = 0x187;
    0x00403764 sw v0, 0x10(sp)               |         *(var_10h) = v0;
    0x00403768 sw t8, 0x14(sp)               |         *(var_14h) = t8;
    0x0040376c move a0, s0                   |         a0 = s0;
    0x00403770 lw t8, -0x7fdc(gp)            |         t8 = *(gp);
                                             |         /* str._s___s____L_d:_Open_default_db_failed.__errno___d_n */
    0x00403774 addiu a1, t8, 0x7a1c          |         a1 = t8 + 0x7a1c;
    0x00403778 lw t8, -0x7fdc(gp)            |         t8 = *(gp);
                                             |         /* str.dbd.cpp */
    0x0040377c addiu a2, t8, 0x7824          |         a2 = t8 + 0x7824;
    0x00403780 lw t8, -0x7fdc(gp)            |         t8 = *(gp);
                                             |         /* str.do_db_merge */
    0x00403784 addiu a3, t8, 0x7f40          |         a3 = t8 + 0x7f40;
    0x00403788 lw t8, -0x7f1c(gp)            |         t8 = sym.imp.fprintf
    0x0040378c move t9, t8                   |         t9 = t8;
    0x00403790 jalr t9                       |         t9 ();
    0x00403794 nop                           |         
    0x00403798 lw gp, 0x18(fp)               |         gp = *(arg_18h);
    0x0040379c lw t8, 0x40(fp)               |         t8 = *(arg_40h);
    0x004037a0 b 0x403f94                    |         goto label_1;
    0x004037a4 nop                           |         
                                             |     }
    0x004037a8 move a0, zero                 |     a0 = 0;
    0x004037ac lw a1, 0x3c(fp)               |     a1 = *(arg_3ch);
    0x004037b0 move a2, zero                 |     a2 = 0;
    0x004037b4 lw t8, -0x7ecc(gp)            |     t8 = sym.imp.mxmlLoadFile;
    0x004037b8 move t9, t8                   |     t9 = t8;
    0x004037bc jalr t9                       |     t9 ();
    0x004037c0 nop                           |     
    0x004037c4 lw gp, 0x18(fp)               |     gp = *(arg_18h);
    0x004037c8 move t8, v0                   |     t8 = v0;
    0x004037cc sw t8, 0x44(fp)               |     *(arg_44h) = t8;
    0x004037d0 lw a0, 0x3c(fp)               |     a0 = *(arg_3ch);
    0x004037d4 lw t8, -0x7edc(gp)            |     t8 = sym.imp.fclose;
    0x004037d8 move t9, t8                   |     t9 = t8;
    0x004037dc jalr t9                       |     t9 ();
    0x004037e0 nop                           |     
    0x004037e4 lw gp, 0x18(fp)               |     gp = *(arg_18h);
    0x004037e8 lw t8, 0x44(fp)               |     t8 = *(arg_44h);
                                             |     if (t8 == 0) {
    0x004037ec bnez t8, 0x403800             |         
    0x004037f0 nop                           |         
    0x004037f4 lw t8, 0x40(fp)               |         t8 = *(arg_40h);
    0x004037f8 b 0x403f94                    |         goto label_1;
    0x004037fc nop                           |         
                                             |     }
    0x00403800 sw zero, 0x10(sp)             |     *(var_10h) = 0;
    0x00403804 addiu t8, zero, 1             |     t8 = 1;
    0x00403808 sw t8, 0x14(sp)               |     *(var_14h) = t8;
    0x0040380c lw a0, 0x44(fp)               |     a0 = *(arg_44h);
    0x00403810 lw a1, 0x44(fp)               |     a1 = *(arg_44h);
    0x00403814 lw t8, -0x7fdc(gp)            |     t8 = *(gp);
                                             |     /* str.ETag */
    0x00403818 addiu a2, t8, 0x7a50          |     a2 = t8 + 0x7a50;
    0x0040381c move a3, zero                 |     a3 = 0;
    0x00403820 lw t8, -0x7ea8(gp)            |     t8 = sym.imp.mxmlFindElement;
    0x00403824 move t9, t8                   |     t9 = t8;
    0x00403828 jalr t9                       |     t9 ();
    0x0040382c nop                           |     
    0x00403830 lw gp, 0x18(fp)               |     gp = *(arg_18h);
    0x00403834 move t8, v0                   |     t8 = v0;
    0x00403838 sw t8, 0x5c(fp)               |     *(arg_5ch) = t8;
    0x0040383c sw zero, 0x10(sp)             |     *(var_10h) = 0;
    0x00403840 addiu t8, zero, 1             |     t8 = 1;
    0x00403844 sw t8, 0x14(sp)               |     *(var_14h) = t8;
    0x00403848 lw a0, 0x24(fp)               |     a0 = *(arg_24h);
    0x0040384c lw a1, 0x24(fp)               |     a1 = *(arg_24h);
    0x00403850 lw t8, -0x7fdc(gp)            |     t8 = *(gp);
                                             |     /* str.ETag */
    0x00403854 addiu a2, t8, 0x7a50          |     a2 = t8 + 0x7a50;
    0x00403858 move a3, zero                 |     a3 = 0;
    0x0040385c lw t8, -0x7ea8(gp)            |     t8 = sym.imp.mxmlFindElement;
    0x00403860 move t9, t8                   |     t9 = t8;
    0x00403864 jalr t9                       |     t9 ();
    0x00403868 nop                           |     
    0x0040386c lw gp, 0x18(fp)               |     gp = *(arg_18h);
    0x00403870 move t8, v0                   |     t8 = v0;
    0x00403874 sw t8, 0x60(fp)               |     *(arg_60h) = t8;
    0x00403878 lw a0, 0x5c(fp)               |     a0 = *(arg_5ch);
    0x0040387c lw t8, -0x7fdc(gp)            |     t8 = *(gp);
                                             |     /* str.content */
    0x00403880 addiu a1, t8, 0x7a58          |     a1 = t8 + 0x7a58;
    0x00403884 lw t8, -0x7ed8(gp)            |     t8 = sym.imp.mxmlElementGetAttr;
    0x00403888 move t9, t8                   |     t9 = t8;
    0x0040388c jalr t9                       |     t9 ();
    0x00403890 nop                           |     
    0x00403894 lw gp, 0x18(fp)               |     gp = *(arg_18h);
    0x00403898 move s0, v0                   |     s0 = v0;
    0x0040389c lw a0, 0x60(fp)               |     a0 = *(arg_60h);
    0x004038a0 lw t8, -0x7fdc(gp)            |     t8 = *(gp);
                                             |     /* str.content */
    0x004038a4 addiu a1, t8, 0x7a58          |     a1 = t8 + 0x7a58;
    0x004038a8 lw t8, -0x7ed8(gp)            |     t8 = sym.imp.mxmlElementGetAttr;
    0x004038ac move t9, t8                   |     t9 = t8;
    0x004038b0 jalr t9                       |     t9 ();
    0x004038b4 nop                           |     
    0x004038b8 lw gp, 0x18(fp)               |     gp = *(arg_18h);
    0x004038bc move t8, v0                   |     t8 = v0;
    0x004038c0 move a0, s0                   |     a0 = s0;
    0x004038c4 move a1, t8                   |     a1 = t8;
    0x004038c8 lw t8, -0x7f38(gp)            |     t8 = sym.imp.strcmp;
    0x004038cc move t9, t8                   |     t9 = t8;
    0x004038d0 jalr t9                       |     t9 ();
    0x004038d4 nop                           |     
    0x004038d8 lw gp, 0x18(fp)               |     gp = *(arg_18h);
    0x004038dc move t8, v0                   |     t8 = v0;
    0x004038e0 sltiu t8, t8, 1               |     t8 = (t8 < 1) ? 1 : 0;
    0x004038e4 andi t8, t8, 0xff             |     t8 &= 0xff;
                                             |     if (t8 != 0) {
    0x004038e8 beqz t8, 0x4038fc             |         
    0x004038ec nop                           |         
    0x004038f0 move t8, zero                 |         t8 = 0;
    0x004038f4 b 0x403f94                    |         goto label_1;
    0x004038f8 nop                           |         
                                             |     }
    0x004038fc lw t8, -0x7fbc(gp)            |     t8 = *(gp);
    0x00403900 addiu v0, zero, 1             |     v0 = 1;
    0x00403904 sb v0, (t8)                   |     *(t8) = v0;
    0x00403908 sw zero, 0x10(sp)             |     *(var_10h) = 0;
    0x0040390c addiu t8, zero, 1             |     t8 = 1;
    0x00403910 sw t8, 0x14(sp)               |     *(var_14h) = t8;
    0x00403914 lw a0, 0x24(fp)               |     a0 = *(arg_24h);
    0x00403918 lw a1, 0x24(fp)               |     a1 = *(arg_24h);
    0x0040391c lw t8, -0x7fdc(gp)            |     t8 = *(gp);
                                             |     /* str.data */
    0x00403920 addiu a2, t8, 0x7a60          |     a2 = t8 + 0x7a60;
    0x00403924 move a3, zero                 |     a3 = 0;
    0x00403928 lw t8, -0x7ea8(gp)            |     t8 = sym.imp.mxmlFindElement;
    0x0040392c move t9, t8                   |     t9 = t8;
    0x00403930 jalr t9                       |     t9 ();
    0x00403934 nop                           |     
    0x00403938 lw gp, 0x18(fp)               |     gp = *(arg_18h);
    0x0040393c move t8, v0                   |     t8 = v0;
    0x00403940 sw t8, 0x4c(fp)               |     *(arg_4ch) = t8;
    0x00403944 sw zero, 0x10(sp)             |     *(var_10h) = 0;
    0x00403948 addiu t8, zero, 1             |     t8 = 1;
    0x0040394c sw t8, 0x14(sp)               |     *(var_14h) = t8;
    0x00403950 lw a0, 0x44(fp)               |     a0 = *(arg_44h);
    0x00403954 lw a1, 0x44(fp)               |     a1 = *(arg_44h);
    0x00403958 lw t8, -0x7fdc(gp)            |     t8 = *(gp);
                                             |     /* str.data */
    0x0040395c addiu a2, t8, 0x7a60          |     a2 = t8 + 0x7a60;
    0x00403960 move a3, zero                 |     a3 = 0;
    0x00403964 lw t8, -0x7ea8(gp)            |     t8 = sym.imp.mxmlFindElement;
    0x00403968 move t9, t8                   |     t9 = t8;
    0x0040396c jalr t9                       |     t9 ();
    0x00403970 nop                           |     
    0x00403974 lw gp, 0x18(fp)               |     gp = *(arg_18h);
    0x00403978 move t8, v0                   |     t8 = v0;
    0x0040397c sw t8, 0x48(fp)               |     *(arg_48h) = t8;
    0x00403980 lw a0, 0x48(fp)               |     a0 = *(arg_48h);
    0x00403984 lw a1, 0x48(fp)               |     a1 = *(arg_48h);
    0x00403988 addiu a2, zero, 1             |     a2 = 1;
    0x0040398c lw t8, -0x7f28(gp)            |     t8 = sym.imp.mxmlWalkNext;
    0x00403990 move t9, t8                   |     t9 = t8;
    0x00403994 jalr t9                       |     t9 ();
    0x00403998 nop                           |     
    0x0040399c lw gp, 0x18(fp)               |     gp = *(arg_18h);
    0x004039a0 move t8, v0                   |     t8 = v0;
    0x004039a4 sw t8, 0x2c(fp)               |     *(arg_2ch) = t8;
    0x004039a8 b 0x403f84                    |     goto label_2;
    0x004039ac nop                           |     
                                             | label_0:
    0x004039b0 lw t8, 0x2c(fp)               |     t8 = *(arg_2ch);
    0x004039b4 lw t8, (t8)                   |     t8 = *(t8);
                                             |     if (t8 != 0) {
    0x004039b8 bnez t8, 0x403f5c             |         goto label_3;
                                             |     }
    0x004039bc nop                           |     
    0x004039c0 lw t8, 0x2c(fp)               |     t8 = *(arg_2ch);
    0x004039c4 lw t8, 0x10(t8)               |     t8 = *((t8 + 4));
                                             |     if (t8 == 0) {
    0x004039c8 beqz t8, 0x403f5c             |         goto label_3;
                                             |     }
    0x004039cc nop                           |     
    0x004039d0 lw t8, 0x2c(fp)               |     t8 = *(arg_2ch);
    0x004039d4 lw t8, 0x18(t8)               |     t8 = *((t8 + 6));
    0x004039d8 sw zero, 0x10(sp)             |     *(var_10h) = 0;
    0x004039dc addiu v0, zero, 1             |     v0 = 1;
    0x004039e0 sw v0, 0x14(sp)               |     *(var_14h) = v0;
    0x004039e4 lw a0, 0x4c(fp)               |     a0 = *(arg_4ch);
    0x004039e8 lw a1, 0x4c(fp)               |     a1 = *(arg_4ch);
    0x004039ec move a2, t8                   |     a2 = t8;
    0x004039f0 move a3, zero                 |     a3 = 0;
    0x004039f4 lw t8, -0x7ea8(gp)            |     t8 = sym.imp.mxmlFindElement;
    0x004039f8 move t9, t8                   |     t9 = t8;
    0x004039fc jalr t9                       |     t9 ();
    0x00403a00 nop                           |     
    0x00403a04 lw gp, 0x18(fp)               |     gp = *(arg_18h);
    0x00403a08 move t8, v0                   |     t8 = v0;
    0x00403a0c sw t8, 0x50(fp)               |     *(arg_50h) = t8;
    0x00403a10 lw t8, 0x50(fp)               |     t8 = *(arg_50h);
                                             |     if (t8 == 0) {
    0x00403a14 beqz t8, 0x403de4             |         goto label_4;
                                             |     }
    0x00403a18 nop                           |     
    0x00403a1c sw zero, 0x34(fp)             |     *(arg_34h) = 0;
    0x00403a20 lw t8, 0x50(fp)               |     t8 = *(arg_50h);
    0x00403a24 lw t8, 0x18(t8)               |     t8 = *((t8 + 6));
    0x00403a28 sw t8, 0x64(fp)               |     *(arg_64h) = t8;
    0x00403a2c lw t8, 0x64(fp)               |     t8 = *(arg_64h);
                                             |     if (t8 != 0) {
    0x00403a30 beqz t8, 0x403ae8             |         
    0x00403a34 nop                           |         
    0x00403a38 lw t8, 0x64(fp)               |         t8 = *(arg_64h);
    0x00403a3c lb t8, (t8)                   |         t8 = *(t8);
                                             |         if (t8 == 0) {
    0x00403a40 beqz t8, 0x403ae8             |             goto label_5;
                                             |         }
    0x00403a44 nop                           |         
    0x00403a48 lw t8, 0x64(fp)               |         t8 = *(arg_64h);
    0x00403a4c lb v0, (t8)                   |         v0 = *(t8);
    0x00403a50 addiu t8, zero, 0x5f          |         t8 = 0x5f;
                                             |         if (v0 != t8) {
    0x00403a54 beq v0, t8, 0x403ae0          |             
    0x00403a58 nop                           |             
    0x00403a5c lw t8, -0x7fdc(gp)            |             t8 = *(gp);
                                             |             /* str.Meta */
    0x00403a60 addiu a0, t8, 0x7a68          |             a0 = t8 + 0x7a68;
    0x00403a64 lw a1, 0x64(fp)               |             a1 = *(arg_64h);
    0x00403a68 lw t8, -0x7f38(gp)            |             t8 = sym.imp.strcmp;
    0x00403a6c move t9, t8                   |             t9 = t8;
    0x00403a70 jalr t9                       |             t9 ();
    0x00403a74 nop                           |             
    0x00403a78 lw gp, 0x18(fp)               |             gp = *(arg_18h);
    0x00403a7c move t8, v0                   |             t8 = v0;
                                             |             if (t8 == 0) {
    0x00403a80 beqz t8, 0x403ae0             |                 goto label_6;
                                             |             }
    0x00403a84 nop                           |             
    0x00403a88 lw t8, -0x7fdc(gp)            |             t8 = *(gp);
                                             |             /* str.System */
    0x00403a8c addiu a0, t8, 0x7a70          |             a0 = t8 + 0x7a70;
    0x00403a90 lw a1, 0x64(fp)               |             a1 = *(arg_64h);
    0x00403a94 lw t8, -0x7f38(gp)            |             t8 = sym.imp.strcmp;
    0x00403a98 move t9, t8                   |             t9 = t8;
    0x00403a9c jalr t9                       |             t9 ();
    0x00403aa0 nop                           |             
    0x00403aa4 lw gp, 0x18(fp)               |             gp = *(arg_18h);
    0x00403aa8 move t8, v0                   |             t8 = v0;
                                             |             if (t8 == 0) {
    0x00403aac beqz t8, 0x403ae0             |                 goto label_6;
                                             |             }
    0x00403ab0 nop                           |             
    0x00403ab4 lw t8, -0x7fdc(gp)            |             t8 = *(gp);
                                             |             /* str.Hardware */
    0x00403ab8 addiu a0, t8, 0x7a78          |             a0 = t8 + 0x7a78;
    0x00403abc lw a1, 0x64(fp)               |             a1 = *(arg_64h);
    0x00403ac0 lw t8, -0x7f38(gp)            |             t8 = sym.imp.strcmp;
    0x00403ac4 move t9, t8                   |             t9 = t8;
    0x00403ac8 jalr t9                       |             t9 ();
    0x00403acc nop                           |             
    0x00403ad0 lw gp, 0x18(fp)               |             gp = *(arg_18h);
    0x00403ad4 move t8, v0                   |             t8 = v0;
                                             |             if (t8 != 0) {
    0x00403ad8 bnez t8, 0x403ae8             |                 goto label_5;
                                             |             }
    0x00403adc nop                           |             
                                             |         }
                                             | label_6:
    0x00403ae0 addiu t8, zero, 1             |         t8 = 1;
    0x00403ae4 sw t8, 0x34(fp)               |         *(arg_34h) = t8;
                                             |     }
                                             | label_5:
    0x00403ae8 lw a0, 0x2c(fp)               |     a0 = *(arg_2ch);
    0x00403aec lw a1, 0x2c(fp)               |     a1 = *(arg_2ch);
    0x00403af0 addiu a2, zero, 1             |     a2 = 1;
    0x00403af4 lw t8, -0x7f28(gp)            |     t8 = sym.imp.mxmlWalkNext;
    0x00403af8 move t9, t8                   |     t9 = t8;
    0x00403afc jalr t9                       |     t9 ();
    0x00403b00 nop                           |     
    0x00403b04 lw gp, 0x18(fp)               |     gp = *(arg_18h);
    0x00403b08 move t8, v0                   |     t8 = v0;
    0x00403b0c sw t8, 0x30(fp)               |     *(arg_30h) = t8;
    0x00403b10 b 0x403dd0                    |     goto label_7;
    0x00403b14 nop                           |     
                                             |     do {
    0x00403b18 lw t8, 0x30(fp)               |         t8 = *(arg_30h);
    0x00403b1c lw t8, (t8)                   |         t8 = *(t8);
                                             |         if (t8 == 0) {
    0x00403b20 bnez t8, 0x403da8             |             
    0x00403b24 nop                           |             
    0x00403b28 lw t8, 0x30(fp)               |             t8 = *(arg_30h);
    0x00403b2c lw t8, 0x10(t8)               |             t8 = *((t8 + 4));
                                             |             if (t8 != 0) {
    0x00403b30 bnez t8, 0x403da8             |                 goto label_8;
                                             |             }
    0x00403b34 nop                           |             
    0x00403b38 lw t8, 0x30(fp)               |             t8 = *(arg_30h);
    0x00403b3c lw t8, 0x18(t8)               |             t8 = *((t8 + 6));
    0x00403b40 sw zero, 0x10(sp)             |             *(var_10h) = 0;
    0x00403b44 addiu v0, zero, 1             |             v0 = 1;
    0x00403b48 sw v0, 0x14(sp)               |             *(var_14h) = v0;
    0x00403b4c lw a0, 0x50(fp)               |             a0 = *(arg_50h);
    0x00403b50 lw a1, 0x50(fp)               |             a1 = *(arg_50h);
    0x00403b54 move a2, t8                   |             a2 = t8;
    0x00403b58 move a3, zero                 |             a3 = 0;
    0x00403b5c lw t8, -0x7ea8(gp)            |             t8 = sym.imp.mxmlFindElement;
    0x00403b60 move t9, t8                   |             t9 = t8;
    0x00403b64 jalr t9                       |             t9 ();
    0x00403b68 nop                           |             
    0x00403b6c lw gp, 0x18(fp)               |             gp = *(arg_18h);
    0x00403b70 move t8, v0                   |             t8 = v0;
    0x00403b74 sw t8, 0x54(fp)               |             *(arg_54h) = t8;
    0x00403b78 lw t8, 0x54(fp)               |             t8 = *(arg_54h);
                                             |             if (t8 == 0) {
    0x00403b7c bnez t8, 0x403ca8             |                 
    0x00403b80 nop                           |                 
    0x00403b84 addiu a0, zero, 1             |                 a0 = 1;
    0x00403b88 addiu a1, zero, 0x30          |                 a1 = 0x30;
    0x00403b8c lw t8, -0x7e6c(gp)            |                 t8 = sym.imp.calloc;
    0x00403b90 move t9, t8                   |                 t9 = t8;
    0x00403b94 jalr t9                       |                 t9 ();
    0x00403b98 nop                           |                 
    0x00403b9c lw gp, 0x18(fp)               |                 gp = *(arg_18h);
    0x00403ba0 move t8, v0                   |                 t8 = v0;
    0x00403ba4 sw t8, 0x58(fp)               |                 *(arg_58h) = t8;
    0x00403ba8 lw t8, 0x58(fp)               |                 t8 = *(arg_58h);
                                             |                 if (t8 == 0) {
    0x00403bac bnez t8, 0x403c28             |                     
    0x00403bb0 nop                           |                     
    0x00403bb4 lw t8, -0x7ee8(gp)            |                     t8 = *((gp - 8122));
    0x00403bb8 lw s0, (t8)                   |                     s0 = *(t8);
    0x00403bbc lw t8, -0x7e70(gp)            |                     t8 = sym.imp.__errno_location;
    0x00403bc0 move t9, t8                   |                     t9 = t8;
    0x00403bc4 jalr t9                       |                     t9 ();
    0x00403bc8 nop                           |                     
    0x00403bcc lw gp, 0x18(fp)               |                     gp = *(arg_18h);
    0x00403bd0 move t8, v0                   |                     t8 = v0;
    0x00403bd4 lw t8, (t8)                   |                     t8 = *(t8);
    0x00403bd8 addiu v0, zero, 0x1ba         |                     v0 = 0x1ba;
    0x00403bdc sw v0, 0x10(sp)               |                     *(var_10h) = v0;
    0x00403be0 sw t8, 0x14(sp)               |                     *(var_14h) = t8;
    0x00403be4 move a0, s0                   |                     a0 = s0;
    0x00403be8 lw t8, -0x7fdc(gp)            |                     t8 = *(gp);
                                             |                     /* str._s___s____L_d:_Damned__OOM...__errno___d_n */
    0x00403bec addiu a1, t8, 0x7a84          |                     a1 = t8 + 0x7a84;
    0x00403bf0 lw t8, -0x7fdc(gp)            |                     t8 = *(gp);
                                             |                     /* str.dbd.cpp */
    0x00403bf4 addiu a2, t8, 0x7824          |                     a2 = t8 + 0x7824;
    0x00403bf8 lw t8, -0x7fdc(gp)            |                     t8 = *(gp);
                                             |                     /* str.do_db_merge */
    0x00403bfc addiu a3, t8, 0x7f40          |                     a3 = t8 + 0x7f40;
    0x00403c00 lw t8, -0x7f1c(gp)            |                     t8 = sym.imp.fprintf
    0x00403c04 move t9, t8                   |                     t9 = t8;
    0x00403c08 jalr t9                       |                     t9 ();
    0x00403c0c nop                           |                     
    0x00403c10 lw gp, 0x18(fp)               |                     gp = *(arg_18h);
    0x00403c14 addiu a0, zero, 1             |                     a0 = 1;
    0x00403c18 lw t8, -0x7f2c(gp)            |                     t8 = sym.imp.exit;
    0x00403c1c move t9, t8                   |                     t9 = t8;
    0x00403c20 jalr t9                       |                     t9 ();
    0x00403c24 nop                           |                     
                                             |                 }
    0x00403c28 lw a0, 0x58(fp)               |                 a0 = *(arg_58h);
    0x00403c2c lw a1, 0x30(fp)               |                 a1 = *(arg_30h);
    0x00403c30 addiu a2, zero, 0x30          |                 a2 = 0x30;
    0x00403c34 lw t8, -0x7e84(gp)            |                 t8 = sym.imp.memcpy;
    0x00403c38 move t9, t8                   |                 t9 = t8;
    0x00403c3c jalr t9                       |                 t9 ();
    0x00403c40 nop                           |                 
    0x00403c44 lw gp, 0x18(fp)               |                 gp = *(arg_18h);
    0x00403c48 lw t8, 0x58(fp)               |                 t8 = *(arg_58h);
    0x00403c4c sw zero, 4(t8)                |                 *((t8 + 4)) = 0;
    0x00403c50 lw t8, 0x58(fp)               |                 t8 = *(arg_58h);
    0x00403c54 lw v0, 4(t8)                  |                 v0 = *((t8 + 1));
    0x00403c58 lw t8, 0x58(fp)               |                 t8 = *(arg_58h);
    0x00403c5c sw v0, 8(t8)                  |                 *((t8 + 8)) = v0;
    0x00403c60 lw t8, 0x58(fp)               |                 t8 = *(arg_58h);
    0x00403c64 lw v0, 8(t8)                  |                 v0 = *((t8 + 2));
    0x00403c68 lw t8, 0x58(fp)               |                 t8 = *(arg_58h);
    0x00403c6c sw v0, 0xc(t8)                |                 *((t8 + 12)) = v0;
    0x00403c70 lw t8, 0x58(fp)               |                 t8 = *(arg_58h);
    0x00403c74 addiu v0, zero, 1             |                 v0 = 1;
    0x00403c78 sw v0, 0x28(t8)               |                 *((t8 + 40)) = v0;
    0x00403c7c lw a0, 0x50(fp)               |                 a0 = *(arg_50h);
    0x00403c80 addiu a1, zero, 1             |                 a1 = 1;
    0x00403c84 move a2, zero                 |                 a2 = 0;
    0x00403c88 lw a3, 0x58(fp)               |                 a3 = *(arg_58h);
    0x00403c8c lw t8, -0x7f10(gp)            |                 t8 = sym.imp.mxmlAdd;
    0x00403c90 move t9, t8                   |                 t9 = t8;
    0x00403c94 jalr t9                       |                 t9 ();
    0x00403c98 nop                           |                 
    0x00403c9c lw gp, 0x18(fp)               |                 gp = *(arg_18h);
    0x00403ca0 b 0x403da8                    |                 goto label_8;
    0x00403ca4 nop                           |                 
                                             |             }
    0x00403ca8 lw t8, 0x34(fp)               |             t8 = *(arg_34h);
                                             |             if (t8 != 0) {
    0x00403cac beqz t8, 0x403d04             |                 
    0x00403cb0 nop                           |                 
    0x00403cb4 lw a0, 0x30(fp)               |                 a0 = *(arg_30h);
    0x00403cb8 lw t8, -0x7fdc(gp)            |                 t8 = *(gp);
                                             |                 /* str.content */
    0x00403cbc addiu a1, t8, 0x7a58          |                 a1 = t8 + 0x7a58;
    0x00403cc0 lw t8, -0x7ed8(gp)            |                 t8 = sym.imp.mxmlElementGetAttr;
    0x00403cc4 move t9, t8                   |                 t9 = t8;
    0x00403cc8 jalr t9                       |                 t9 ();
    0x00403ccc nop                           |                 
    0x00403cd0 lw gp, 0x18(fp)               |                 gp = *(arg_18h);
    0x00403cd4 move t8, v0                   |                 t8 = v0;
    0x00403cd8 lw a0, 0x54(fp)               |                 a0 = *(arg_54h);
    0x00403cdc lw v0, -0x7fdc(gp)            |                 v0 = *(gp);
                                             |                 /* str.content */
    0x00403ce0 addiu a1, v0, 0x7a58          |                 a1 = v0 + 0x7a58;
    0x00403ce4 move a2, t8                   |                 a2 = t8;
    0x00403ce8 lw t8, -0x7ebc(gp)            |                 t8 = sym.imp.mxmlElementSetAttr;
    0x00403cec move t9, t8                   |                 t9 = t8;
    0x00403cf0 jalr t9                       |                 t9 ();
    0x00403cf4 nop                           |                 
    0x00403cf8 lw gp, 0x18(fp)               |                 gp = *(arg_18h);
    0x00403cfc b 0x403da8                    |                 goto label_8;
    0x00403d00 nop                           |                 
                                             |             }
    0x00403d04 lw t8, 0x54(fp)               |             t8 = *(arg_54h);
    0x00403d08 lw t8, 0x18(t8)               |             t8 = *((t8 + 6));
    0x00403d0c lb t8, (t8)                   |             t8 = *(t8);
                                             |             if (t8 == 0) {
    0x00403d10 beqz t8, 0x403da8             |                 goto label_8;
                                             |             }
    0x00403d14 nop                           |             
    0x00403d18 lw t8, 0x54(fp)               |             t8 = *(arg_54h);
    0x00403d1c lw t8, 0x18(t8)               |             t8 = *((t8 + 6));
    0x00403d20 move a0, t8                   |             a0 = t8;
    0x00403d24 addiu a1, zero, 0x5f          |             a1 = 0x5f;
    0x00403d28 lw t8, -0x7f44(gp)            |             t8 = sym.imp.strchr;
    0x00403d2c move t9, t8                   |             t9 = t8;
    0x00403d30 jalr t9                       |             t9 ();
    0x00403d34 nop                           |             
    0x00403d38 lw gp, 0x18(fp)               |             gp = *(arg_18h);
    0x00403d3c sw v0, 0x68(fp)               |             *(arg_68h) = v0;
    0x00403d40 lw t8, 0x68(fp)               |             t8 = *(arg_68h);
                                             |             if (t8 == 0) {
    0x00403d44 beqz t8, 0x403da8             |                 goto label_8;
                                             |             }
    0x00403d48 nop                           |             
    0x00403d4c lw t8, 0x54(fp)               |             t8 = *(arg_54h);
    0x00403d50 lw v0, 0x18(t8)               |             v0 = *((t8 + 6));
    0x00403d54 lw t8, 0x68(fp)               |             t8 = *(arg_68h);
                                             |             if (v0 != t8) {
    0x00403d58 bne v0, t8, 0x403da8          |                 goto label_8;
                                             |             }
    0x00403d5c nop                           |             
    0x00403d60 lw a0, 0x30(fp)               |             a0 = *(arg_30h);
    0x00403d64 lw t8, -0x7fdc(gp)            |             t8 = *(gp);
                                             |             /* str.content */
    0x00403d68 addiu a1, t8, 0x7a58          |             a1 = t8 + 0x7a58;
    0x00403d6c lw t8, -0x7ed8(gp)            |             t8 = sym.imp.mxmlElementGetAttr;
    0x00403d70 move t9, t8                   |             t9 = t8;
    0x00403d74 jalr t9                       |             t9 ();
    0x00403d78 nop                           |             
    0x00403d7c lw gp, 0x18(fp)               |             gp = *(arg_18h);
    0x00403d80 move t8, v0                   |             t8 = v0;
    0x00403d84 lw a0, 0x54(fp)               |             a0 = *(arg_54h);
    0x00403d88 lw v0, -0x7fdc(gp)            |             v0 = *(gp);
                                             |             /* str.content */
    0x00403d8c addiu a1, v0, 0x7a58          |             a1 = v0 + 0x7a58;
    0x00403d90 move a2, t8                   |             a2 = t8;
    0x00403d94 lw t8, -0x7ebc(gp)            |             t8 = sym.imp.mxmlElementSetAttr;
    0x00403d98 move t9, t8                   |             t9 = t8;
    0x00403d9c jalr t9                       |             t9 ();
    0x00403da0 nop                           |             
    0x00403da4 lw gp, 0x18(fp)               |             gp = *(arg_18h);
                                             |         }
                                             | label_8:
    0x00403da8 lw a0, 0x30(fp)               |         a0 = *(arg_30h);
    0x00403dac lw a1, 0x2c(fp)               |         a1 = *(arg_2ch);
    0x00403db0 move a2, zero                 |         a2 = 0;
    0x00403db4 lw t8, -0x7f28(gp)            |         t8 = sym.imp.mxmlWalkNext;
    0x00403db8 move t9, t8                   |         t9 = t8;
    0x00403dbc jalr t9                       |         t9 ();
    0x00403dc0 nop                           |         
    0x00403dc4 lw gp, 0x18(fp)               |         gp = *(arg_18h);
    0x00403dc8 move t8, v0                   |         t8 = v0;
    0x00403dcc sw t8, 0x30(fp)               |         *(arg_30h) = t8;
                                             | label_7:
    0x00403dd0 lw t8, 0x30(fp)               |         t8 = *(arg_30h);
    0x00403dd4 bnez t8, 0x403b18             |         
                                             |     } while (t8 != 0);
    0x00403dd8 nop                           |     
    0x00403ddc b 0x403f5c                    |     goto label_3;
    0x00403de0 nop                           |     
                                             | label_4:
    0x00403de4 addiu a0, zero, 1             |     a0 = 1;
    0x00403de8 addiu a1, zero, 0x30          |     a1 = 0x30;
    0x00403dec lw t8, -0x7e6c(gp)            |     t8 = sym.imp.calloc;
    0x00403df0 move t9, t8                   |     t9 = t8;
    0x00403df4 jalr t9                       |     t9 ();
    0x00403df8 nop                           |     
    0x00403dfc lw gp, 0x18(fp)               |     gp = *(arg_18h);
    0x00403e00 move t8, v0                   |     t8 = v0;
    0x00403e04 sw t8, 0x58(fp)               |     *(arg_58h) = t8;
    0x00403e08 lw t8, 0x58(fp)               |     t8 = *(arg_58h);
                                             |     if (t8 == 0) {
    0x00403e0c bnez t8, 0x403e88             |         
    0x00403e10 nop                           |         
    0x00403e14 lw t8, -0x7ee8(gp)            |         t8 = *((gp - 8122));
    0x00403e18 lw s0, (t8)                   |         s0 = *(t8);
    0x00403e1c lw t8, -0x7e70(gp)            |         t8 = sym.imp.__errno_location;
    0x00403e20 move t9, t8                   |         t9 = t8;
    0x00403e24 jalr t9                       |         t9 ();
    0x00403e28 nop                           |         
    0x00403e2c lw gp, 0x18(fp)               |         gp = *(arg_18h);
    0x00403e30 move t8, v0                   |         t8 = v0;
    0x00403e34 lw t8, (t8)                   |         t8 = *(t8);
    0x00403e38 addiu v0, zero, 0x1e9         |         v0 = 0x1e9;
    0x00403e3c sw v0, 0x10(sp)               |         *(var_10h) = v0;
    0x00403e40 sw t8, 0x14(sp)               |         *(var_14h) = t8;
    0x00403e44 move a0, s0                   |         a0 = s0;
    0x00403e48 lw t8, -0x7fdc(gp)            |         t8 = *(gp);
                                             |         /* str._s___s____L_d:_Damned__OOM...__errno___d_n */
    0x00403e4c addiu a1, t8, 0x7a84          |         a1 = t8 + 0x7a84;
    0x00403e50 lw t8, -0x7fdc(gp)            |         t8 = *(gp);
                                             |         /* str.dbd.cpp */
    0x00403e54 addiu a2, t8, 0x7824          |         a2 = t8 + 0x7824;
    0x00403e58 lw t8, -0x7fdc(gp)            |         t8 = *(gp);
                                             |         /* str.do_db_merge */
    0x00403e5c addiu a3, t8, 0x7f40          |         a3 = t8 + 0x7f40;
    0x00403e60 lw t8, -0x7f1c(gp)            |         t8 = sym.imp.fprintf
    0x00403e64 move t9, t8                   |         t9 = t8;
    0x00403e68 jalr t9                       |         t9 ();
    0x00403e6c nop                           |         
    0x00403e70 lw gp, 0x18(fp)               |         gp = *(arg_18h);
    0x00403e74 addiu a0, zero, 1             |         a0 = 1;
    0x00403e78 lw t8, -0x7f2c(gp)            |         t8 = sym.imp.exit;
    0x00403e7c move t9, t8                   |         t9 = t8;
    0x00403e80 jalr t9                       |         t9 ();
    0x00403e84 nop                           |         
                                             |     }
    0x00403e88 lw a0, 0x58(fp)               |     a0 = *(arg_58h);
    0x00403e8c lw a1, 0x2c(fp)               |     a1 = *(arg_2ch);
    0x00403e90 addiu a2, zero, 0x30          |     a2 = 0x30;
    0x00403e94 lw t8, -0x7e84(gp)            |     t8 = sym.imp.memcpy;
    0x00403e98 move t9, t8                   |     t9 = t8;
    0x00403e9c jalr t9                       |     t9 ();
    0x00403ea0 nop                           |     
    0x00403ea4 lw gp, 0x18(fp)               |     gp = *(arg_18h);
    0x00403ea8 lw t8, 0x58(fp)               |     t8 = *(arg_58h);
    0x00403eac sw zero, 4(t8)                |     *((t8 + 4)) = 0;
    0x00403eb0 lw t8, 0x58(fp)               |     t8 = *(arg_58h);
    0x00403eb4 lw v0, 4(t8)                  |     v0 = *((t8 + 1));
    0x00403eb8 lw t8, 0x58(fp)               |     t8 = *(arg_58h);
    0x00403ebc sw v0, 8(t8)                  |     *((t8 + 8)) = v0;
    0x00403ec0 lw t8, 0x58(fp)               |     t8 = *(arg_58h);
    0x00403ec4 lw v0, 8(t8)                  |     v0 = *((t8 + 2));
    0x00403ec8 lw t8, 0x58(fp)               |     t8 = *(arg_58h);
    0x00403ecc sw v0, 0xc(t8)                |     *((t8 + 12)) = v0;
    0x00403ed0 lw t8, 0x58(fp)               |     t8 = *(arg_58h);
    0x00403ed4 addiu v0, zero, 1             |     v0 = 1;
    0x00403ed8 sw v0, 0x28(t8)               |     *((t8 + 40)) = v0;
    0x00403edc lw t8, 0x58(fp)               |     t8 = *(arg_58h);
    0x00403ee0 lw t8, 0x10(t8)               |     t8 = *((t8 + 4));
    0x00403ee4 sw t8, 0x38(fp)               |     *(arg_38h) = t8;
    0x00403ee8 b 0x403f2c                    |     goto label_9;
    0x00403eec nop                           |     
                                             |     do {
    0x00403ef0 lw t8, 0x38(fp)               |         t8 = *(arg_38h);
    0x00403ef4 lw v0, 0x58(fp)               |         v0 = *(arg_58h);
    0x00403ef8 sw v0, 0xc(t8)                |         *((t8 + 12)) = v0;
    0x00403efc lw t8, 0x38(fp)               |         t8 = *(arg_38h);
    0x00403f00 lw t8, (t8)                   |         t8 = *(t8);
                                             |         if (t8 != 0) {
    0x00403f04 beqz t8, 0x403f20             |             
    0x00403f08 nop                           |             
    0x00403f0c lw t8, 0x38(fp)               |             t8 = *(arg_38h);
    0x00403f10 lw t8, 4(t8)                  |             t8 = *((t8 + 1));
    0x00403f14 sw t8, 0x38(fp)               |             *(arg_38h) = t8;
    0x00403f18 b 0x403f2c                    |             goto label_9;
    0x00403f1c nop                           |             
                                             |         }
    0x00403f20 lw t8, 0x38(fp)               |         t8 = *(arg_38h);
    0x00403f24 lw t8, 4(t8)                  |         t8 = *((t8 + 1));
    0x00403f28 sw t8, 0x38(fp)               |         *(arg_38h) = t8;
                                             | label_9:
    0x00403f2c lw t8, 0x38(fp)               |         t8 = *(arg_38h);
    0x00403f30 bnez t8, 0x403ef0             |         
                                             |     } while (t8 != 0);
    0x00403f34 nop                           |     
    0x00403f38 lw a0, 0x4c(fp)               |     a0 = *(arg_4ch);
    0x00403f3c addiu a1, zero, 1             |     a1 = 1;
    0x00403f40 move a2, zero                 |     a2 = 0;
    0x00403f44 lw a3, 0x58(fp)               |     a3 = *(arg_58h);
    0x00403f48 lw t8, -0x7f10(gp)            |     t8 = sym.imp.mxmlAdd;
    0x00403f4c move t9, t8                   |     t9 = t8;
    0x00403f50 jalr t9                       |     t9 ();
    0x00403f54 nop                           |     
    0x00403f58 lw gp, 0x18(fp)               |     gp = *(arg_18h);
                                             | label_3:
    0x00403f5c lw a0, 0x2c(fp)               |     a0 = *(arg_2ch);
    0x00403f60 lw a1, 0x48(fp)               |     a1 = *(arg_48h);
    0x00403f64 move a2, zero                 |     a2 = 0;
    0x00403f68 lw t8, -0x7f28(gp)            |     t8 = sym.imp.mxmlWalkNext;
    0x00403f6c move t9, t8                   |     t9 = t8;
    0x00403f70 jalr t9                       |     t9 ();
    0x00403f74 nop                           |     
    0x00403f78 lw gp, 0x18(fp)               |     gp = *(arg_18h);
    0x00403f7c move t8, v0                   |     t8 = v0;
    0x00403f80 sw t8, 0x2c(fp)               |     *(arg_2ch) = t8;
                                             | label_2:
    0x00403f84 lw t8, 0x2c(fp)               |     t8 = *(arg_2ch);
                                             |     if (t8 != 0) {
    0x00403f88 bnez t8, 0x4039b0             |         goto label_0;
                                             |     }
    0x00403f8c nop                           |     
    0x00403f90 move t8, zero                 |     t8 = 0;
                                             | label_1:
    0x00403f94 move v0, t8                   |     v0 = t8;
    0x00403f98 lw t8, -0x7e74(gp)            |     t8 = *((gp - 8093));
    0x00403f9c lw v1, 0x6c(fp)               |     v1 = *(arg_6ch);
    0x00403fa0 lw t8, (t8)                   |     t8 = *(t8);
                                             |     if (v1 != t8) {
    0x00403fa4 beq v1, t8, 0x403fbc          |         
    0x00403fa8 nop                           |         
    0x00403fac lw t8, -0x7ee4(gp)            |         t8 = sym.imp.__stack_chk_fail;
    0x00403fb0 move t9, t8                   |         t9 = t8;
    0x00403fb4 jalr t9                       |         t9 ();
    0x00403fb8 nop                           |         
                                             |     }
    0x00403fbc move sp, fp                   |     
    0x00403fc0 lw ra, 0x7c(sp)               |     ra = *(var_7ch);
    0x00403fc4 lw fp, 0x78(sp)               |     fp = *(var_78h);
    0x00403fc8 lw s0, 0x74(sp)               |     s0 = *(var_74h);
    0x00403fcc addiu sp, sp, 0x80            |     
    0x00403fd0 jr ra                         |     return v1;
    0x00403fd4 nop                           |     
                                             | }
    ; assembly                               | /* r2dec pseudo code output */
                                             | /* /logs/firmware/patool_extraction/DUMP/mtdblock8_unblob_extracted/mtdblock8_extract/0-9650176.squashfs_v4_le_extract/sbin/dbd @ 0x406b78 */
                                             | #include <stdint.h>
                                             |  
    ; (fcn) main ()                          | int32_t main () {
    0x00406b78 lui gp, 2                     |     
    0x00406b7c addiu gp, gp, -0x5b48         |     
    0x00406b80 addu gp, gp, t9               |     gp += t9;
    0x00406b84 addiu sp, sp, -0x2058         |     
    0x00406b88 sw ra, 0x2054(sp)             |     *(arg_2054h) = ra;
    0x00406b8c sw fp, 0x2050(sp)             |     *(arg_2050h) = fp;
    0x00406b90 sw s0, 0x204c(sp)             |     *(arg_204ch) = s0;
    0x00406b94 move fp, sp                   |     fp = sp;
    0x00406b98 sw gp, 0x20(sp)               |     *(arg_20h) = gp;
    0x00406b9c lw t8, -0x7e74(gp)            |     t8 = *((gp - 8093));
    0x00406ba0 lw t8, (t8)                   |     t8 = *(t8);
    0x00406ba4 sw t8, 0x2044(fp)             |     *(arg_2044h) = t8;
    0x00406ba8 lw t8, -0x7ea0(gp)            |     t8 = sym.imp.create_daemon_sock;
    0x00406bac move t9, t8                   |     t9 = t8;
    0x00406bb0 jalr t9                       |     t9 ();
    0x00406bb4 nop                           |     
    0x00406bb8 lw gp, 0x20(fp)               |     gp = *(arg_20h);
    0x00406bbc move t8, v0                   |     t8 = v0;
    0x00406bc0 sw t8, 0x3c(fp)               |     *(arg_3ch) = t8;
    0x00406bc4 sw zero, 0x2c(fp)             |     *(arg_2ch) = 0;
    0x00406bc8 sw zero, 0x34(fp)             |     *(arg_34h) = 0;
    0x00406bcc sw zero, 0x38(fp)             |     *(arg_38h) = 0;
    0x00406bd0 lw t8, 0x3c(fp)               |     t8 = *(arg_3ch);
                                             |     if (t8 < 0) {
    0x00406bd4 bgez t8, 0x406c50             |         
    0x00406bd8 nop                           |         
    0x00406bdc lw t8, -0x7ee8(gp)            |         t8 = *((gp - 8122));
    0x00406be0 lw s0, (t8)                   |         s0 = *(t8);
    0x00406be4 lw t8, -0x7e70(gp)            |         t8 = sym.imp.__errno_location;
    0x00406be8 move t9, t8                   |         t9 = t8;
    0x00406bec jalr t9                       |         t9 ();
    0x00406bf0 nop                           |         
    0x00406bf4 lw gp, 0x20(fp)               |         gp = *(arg_20h);
    0x00406bf8 move t8, v0                   |         t8 = v0;
    0x00406bfc lw t8, (t8)                   |         t8 = *(t8);
    0x00406c00 addiu v0, zero, 0x3fa         |         v0 = 0x3fa;
    0x00406c04 sw v0, 0x10(sp)               |         *(arg_10h) = v0;
    0x00406c08 lw v0, 0x3c(fp)               |         v0 = *(arg_3ch);
    0x00406c0c sw v0, 0x14(sp)               |         *(arg_14h) = v0;
    0x00406c10 sw t8, 0x18(sp)               |         *(arg_18h) = t8;
    0x00406c14 move a0, s0                   |         a0 = s0;
    0x00406c18 lw t8, -0x7fdc(gp)            |         t8 = *(gp);
                                             |         /* str._s___s____L_d:_Create_sock_fail__and_return_code_is:__d__errno___d_n */
    0x00406c1c addiu a1, t8, 0x7dd0          |         a1 = t8 + 0x7dd0;
    0x00406c20 lw t8, -0x7fdc(gp)            |         t8 = *(gp);
                                             |         /* str.dbd.cpp */
    0x00406c24 addiu a2, t8, 0x7824          |         a2 = t8 + 0x7824;
    0x00406c28 lw t8, -0x7fdc(gp)            |         t8 = *(gp);
                                             |         /* str.main */
    0x00406c2c addiu a3, t8, 0x7fc0          |         a3 = t8 + 0x7fc0;
    0x00406c30 lw t8, -0x7f1c(gp)            |         t8 = sym.imp.fprintf
    0x00406c34 move t9, t8                   |         t9 = t8;
    0x00406c38 jalr t9                       |         t9 ();
    0x00406c3c nop                           |         
    0x00406c40 lw gp, 0x20(fp)               |         gp = *(arg_20h);
    0x00406c44 addiu t8, zero, -3            |         t8 = -3;
    0x00406c48 b 0x407358                    |         goto label_0;
    0x00406c4c nop                           |         
                                             |     }
    0x00406c50 lw t8, -0x7fdc(gp)            |     t8 = *(gp);
                                             |     /* str._tmp_db_db.xml */
    0x00406c54 addiu a0, t8, 0x7c08          |     a0 = t8 + 0x7c08;
    0x00406c58 addiu a1, zero, 1             |     a1 = 1;
    0x00406c5c lw t8, -0x7f90(gp)            |     t8 = sym.load_db_char_const__int_;
    0x00406c60 move t9, t8                   |     t9 = t8;
    0x00406c64 jalr t9                       |     t9 ();
    0x00406c68 nop                           |     
    0x00406c6c lw gp, 0x20(fp)               |     gp = *(arg_20h);
    0x00406c70 move t8, v0                   |     t8 = v0;
    0x00406c74 sw t8, 0x38(fp)               |     *(arg_38h) = t8;
    0x00406c78 lw t8, 0x38(fp)               |     t8 = *(arg_38h);
    0x00406c7c sltiu t8, t8, 1               |     t8 = (t8 < 1) ? 1 : 0;
    0x00406c80 andi t8, t8, 0xff             |     t8 &= 0xff;
                                             |     if (t8 != 0) {
    0x00406c84 beqz t8, 0x406e30             |         
    0x00406c88 nop                           |         
    0x00406c8c lw t8, -0x7ee8(gp)            |         t8 = *((gp - 8122));
    0x00406c90 lw s0, (t8)                   |         s0 = *(t8);
    0x00406c94 lw t8, -0x7e70(gp)            |         t8 = sym.imp.__errno_location;
    0x00406c98 move t9, t8                   |         t9 = t8;
    0x00406c9c jalr t9                       |         t9 ();
    0x00406ca0 nop                           |         
    0x00406ca4 lw gp, 0x20(fp)               |         gp = *(arg_20h);
    0x00406ca8 move t8, v0                   |         t8 = v0;
    0x00406cac lw t8, (t8)                   |         t8 = *(t8);
    0x00406cb0 addiu v0, zero, 0x3ff         |         v0 = 0x3ff;
    0x00406cb4 sw v0, 0x10(sp)               |         *(arg_10h) = v0;
    0x00406cb8 sw t8, 0x14(sp)               |         *(arg_14h) = t8;
    0x00406cbc move a0, s0                   |         a0 = s0;
    0x00406cc0 lw t8, -0x7fdc(gp)            |         t8 = *(gp);
                                             |         /* str._s___s____L_d:_Load_db_failed__errno___d_n */
    0x00406cc4 addiu a1, t8, 0x7d44          |         a1 = t8 + 0x7d44;
    0x00406cc8 lw t8, -0x7fdc(gp)            |         t8 = *(gp);
                                             |         /* str.dbd.cpp */
    0x00406ccc addiu a2, t8, 0x7824          |         a2 = t8 + 0x7824;
    0x00406cd0 lw t8, -0x7fdc(gp)            |         t8 = *(gp);
                                             |         /* str.main */
    0x00406cd4 addiu a3, t8, 0x7fc0          |         a3 = t8 + 0x7fc0;
    0x00406cd8 lw t8, -0x7f1c(gp)            |         t8 = sym.imp.fprintf
    0x00406cdc move t9, t8                   |         t9 = t8;
    0x00406ce0 jalr t9                       |         t9 ();
    0x00406ce4 nop                           |         
    0x00406ce8 lw gp, 0x20(fp)               |         gp = *(arg_20h);
    0x00406cec lw t8, -0x7fdc(gp)            |         t8 = *(gp);
                                             |         /* str._tmp_db.xml */
    0x00406cf0 addiu a0, t8, 0x7e18          |         a0 = t8 + 0x7e18;
    0x00406cf4 addiu a1, zero, 1             |         a1 = 1;
    0x00406cf8 lw t8, -0x7f90(gp)            |         t8 = sym.load_db_char_const__int_;
    0x00406cfc move t9, t8                   |         t9 = t8;
    0x00406d00 jalr t9                       |         t9 ();
    0x00406d04 nop                           |         
    0x00406d08 lw gp, 0x20(fp)               |         gp = *(arg_20h);
    0x00406d0c move t8, v0                   |         t8 = v0;
    0x00406d10 sw t8, 0x38(fp)               |         *(arg_38h) = t8;
    0x00406d14 lw t8, 0x38(fp)               |         t8 = *(arg_38h);
    0x00406d18 sltiu t8, t8, 1               |         t8 = (t8 < 1) ? 1 : 0;
    0x00406d1c andi t8, t8, 0xff             |         t8 &= 0xff;
                                             |         if (t8 == 0) {
    0x00406d20 beqz t8, 0x406e30             |             goto label_1;
                                             |         }
    0x00406d24 nop                           |         
    0x00406d28 lw t8, -0x7ee8(gp)            |         t8 = *((gp - 8122));
    0x00406d2c lw s0, (t8)                   |         s0 = *(t8);
    0x00406d30 lw t8, -0x7e70(gp)            |         t8 = sym.imp.__errno_location;
    0x00406d34 move t9, t8                   |         t9 = t8;
    0x00406d38 jalr t9                       |         t9 ();
    0x00406d3c nop                           |         
    0x00406d40 lw gp, 0x20(fp)               |         gp = *(arg_20h);
    0x00406d44 move t8, v0                   |         t8 = v0;
    0x00406d48 lw t8, (t8)                   |         t8 = *(t8);
    0x00406d4c addiu v0, zero, 0x401         |         v0 = 0x401;
    0x00406d50 sw v0, 0x10(sp)               |         *(arg_10h) = v0;
    0x00406d54 sw t8, 0x14(sp)               |         *(arg_14h) = t8;
    0x00406d58 move a0, s0                   |         a0 = s0;
    0x00406d5c lw t8, -0x7fdc(gp)            |         t8 = *(gp);
                                             |         /* str._s___s____L_d:_Load_old_db_failed__errno___d_n */
    0x00406d60 addiu a1, t8, 0x7e24          |         a1 = t8 + 0x7e24;
    0x00406d64 lw t8, -0x7fdc(gp)            |         t8 = *(gp);
                                             |         /* str.dbd.cpp */
    0x00406d68 addiu a2, t8, 0x7824          |         a2 = t8 + 0x7824;
    0x00406d6c lw t8, -0x7fdc(gp)            |         t8 = *(gp);
                                             |         /* str.main */
    0x00406d70 addiu a3, t8, 0x7fc0          |         a3 = t8 + 0x7fc0;
    0x00406d74 lw t8, -0x7f1c(gp)            |         t8 = sym.imp.fprintf
    0x00406d78 move t9, t8                   |         t9 = t8;
    0x00406d7c jalr t9                       |         t9 ();
    0x00406d80 nop                           |         
    0x00406d84 lw gp, 0x20(fp)               |         gp = *(arg_20h);
    0x00406d88 lw t8, -0x7fdc(gp)            |         t8 = *(gp);
                                             |         /* str._etc_db_default.xml */
    0x00406d8c addiu a0, t8, 0x7a08          |         a0 = t8 + 0x7a08;
    0x00406d90 addiu a1, zero, 1             |         a1 = 1;
    0x00406d94 lw t8, -0x7f90(gp)            |         t8 = sym.load_db_char_const__int_;
    0x00406d98 move t9, t8                   |         t9 = t8;
    0x00406d9c jalr t9                       |         t9 ();
    0x00406da0 nop                           |         
    0x00406da4 lw gp, 0x20(fp)               |         gp = *(arg_20h);
    0x00406da8 move t8, v0                   |         t8 = v0;
    0x00406dac sw t8, 0x38(fp)               |         *(arg_38h) = t8;
    0x00406db0 lw t8, 0x38(fp)               |         t8 = *(arg_38h);
    0x00406db4 sltiu t8, t8, 1               |         t8 = (t8 < 1) ? 1 : 0;
    0x00406db8 andi t8, t8, 0xff             |         t8 &= 0xff;
                                             |         if (t8 == 0) {
    0x00406dbc beqz t8, 0x406e30             |             goto label_1;
                                             |         }
    0x00406dc0 nop                           |         
    0x00406dc4 lw t8, -0x7ee8(gp)            |         t8 = *((gp - 8122));
    0x00406dc8 lw s0, (t8)                   |         s0 = *(t8);
    0x00406dcc lw t8, -0x7e70(gp)            |         t8 = sym.imp.__errno_location;
    0x00406dd0 move t9, t8                   |         t9 = t8;
    0x00406dd4 jalr t9                       |         t9 ();
    0x00406dd8 nop                           |         
    0x00406ddc lw gp, 0x20(fp)               |         gp = *(arg_20h);
    0x00406de0 move t8, v0                   |         t8 = v0;
    0x00406de4 lw t8, (t8)                   |         t8 = *(t8);
    0x00406de8 addiu v0, zero, 0x403         |         v0 = 0x403;
    0x00406dec sw v0, 0x10(sp)               |         *(arg_10h) = v0;
    0x00406df0 sw t8, 0x14(sp)               |         *(arg_14h) = t8;
    0x00406df4 move a0, s0                   |         a0 = s0;
    0x00406df8 lw t8, -0x7fdc(gp)            |         t8 = *(gp);
                                             |         /* str._s___s____L_d:_Load_default_db_failed__errno___d_n */
    0x00406dfc addiu a1, t8, 0x7e54          |         a1 = t8 + 0x7e54;
    0x00406e00 lw t8, -0x7fdc(gp)            |         t8 = *(gp);
                                             |         /* str.dbd.cpp */
    0x00406e04 addiu a2, t8, 0x7824          |         a2 = t8 + 0x7824;
    0x00406e08 lw t8, -0x7fdc(gp)            |         t8 = *(gp);
                                             |         /* str.main */
    0x00406e0c addiu a3, t8, 0x7fc0          |         a3 = t8 + 0x7fc0;
    0x00406e10 lw t8, -0x7f1c(gp)            |         t8 = sym.imp.fprintf
    0x00406e14 move t9, t8                   |         t9 = t8;
    0x00406e18 jalr t9                       |         t9 ();
    0x00406e1c nop                           |         
    0x00406e20 lw gp, 0x20(fp)               |         gp = *(arg_20h);
    0x00406e24 addiu t8, zero, -1            |         t8 = -1;
    0x00406e28 b 0x407358                    |         goto label_0;
    0x00406e2c nop                           |         
                                             |     }
                                             | label_1:
    0x00406e30 lw a0, 0x38(fp)               |     a0 = *(arg_38h);
    0x00406e34 lw t8, -0x7fdc(gp)            |     t8 = *(gp);
                                             |     /* aav.0x00403684 */
    0x00406e38 addiu t8, t8, 0x3684          |     t8 += 0x3684;
    0x00406e3c move t9, t8                   |     t9 = t8;
    0x00406e40 jalr t9                       |     t9 ();
    0x00406e44 nop                           |     
    0x00406e48 lw gp, 0x20(fp)               |     gp = *(arg_20h);
    0x00406e4c move t8, v0                   |     t8 = v0;
    0x00406e50 addiu t8, t8, 1               |     t8++;
    0x00406e54 sltiu t8, t8, 1               |     t8 = (t8 < 1) ? 1 : 0;
    0x00406e58 andi t8, t8, 0xff             |     t8 &= 0xff;
                                             |     if (t8 != 0) {
    0x00406e5c beqz t8, 0x406ec4             |         
    0x00406e60 nop                           |         
    0x00406e64 lw t8, -0x7ee8(gp)            |         t8 = *((gp - 8122));
    0x00406e68 lw s0, (t8)                   |         s0 = *(t8);
    0x00406e6c lw t8, -0x7e70(gp)            |         t8 = sym.imp.__errno_location;
    0x00406e70 move t9, t8                   |         t9 = t8;
    0x00406e74 jalr t9                       |         t9 ();
    0x00406e78 nop                           |         
    0x00406e7c lw gp, 0x20(fp)               |         gp = *(arg_20h);
    0x00406e80 move t8, v0                   |         t8 = v0;
    0x00406e84 lw t8, (t8)                   |         t8 = *(t8);
    0x00406e88 addiu v0, zero, 0x40a         |         v0 = 0x40a;
    0x00406e8c sw v0, 0x10(sp)               |         *(arg_10h) = v0;
    0x00406e90 sw t8, 0x14(sp)               |         *(arg_14h) = t8;
    0x00406e94 move a0, s0                   |         a0 = s0;
    0x00406e98 lw t8, -0x7fdc(gp)            |         t8 = *(gp);
                                             |         /* str._s___s____L_d:_Merge_XML_db_error___errno___d_n */
    0x00406e9c addiu a1, t8, 0x7e88          |         a1 = t8 + 0x7e88;
    0x00406ea0 lw t8, -0x7fdc(gp)            |         t8 = *(gp);
                                             |         /* str.dbd.cpp */
    0x00406ea4 addiu a2, t8, 0x7824          |         a2 = t8 + 0x7824;
    0x00406ea8 lw t8, -0x7fdc(gp)            |         t8 = *(gp);
                                             |         /* str.main */
    0x00406eac addiu a3, t8, 0x7fc0          |         a3 = t8 + 0x7fc0;
    0x00406eb0 lw t8, -0x7f1c(gp)            |         t8 = sym.imp.fprintf
    0x00406eb4 move t9, t8                   |         t9 = t8;
    0x00406eb8 jalr t9                       |         t9 ();
    0x00406ebc nop                           |         
    0x00406ec0 lw gp, 0x20(fp)               |         gp = *(arg_20h);
                                             |     }
    0x00406ec4 addiu t8, fp, 0x30            |     t8 = fp + 0x30;
    0x00406ec8 move a0, t8                   |     a0 = t8;
    0x00406ecc move a1, zero                 |     a1 = 0;
    0x00406ed0 lw a2, -0x7f80(gp)            |     a2 = sym.db_save_thread_void_;
    0x00406ed4 lw a3, 0x38(fp)               |     a3 = *(arg_38h);
    0x00406ed8 lw t8, -0x7eec(gp)            |     t8 = sym.imp.pthread_create;
    0x00406edc move t9, t8                   |     t9 = t8;
    0x00406ee0 jalr t9                       |     t9 ();
    0x00406ee4 nop                           |     
    0x00406ee8 lw gp, 0x20(fp)               |     gp = *(arg_20h);
                                             |     do {
    0x00406eec addiu v0, fp, 0x2c            |         v0 = fp + 0x2c;
    0x00406ef0 addiu t8, fp, 0x44            |         t8 = fp + 0x44;
    0x00406ef4 move a0, v0                   |         a0 = v0;
    0x00406ef8 lw a1, 0x3c(fp)               |         a1 = *(arg_3ch);
    0x00406efc move a2, t8                   |         a2 = t8;
    0x00406f00 addiu a3, zero, 1             |         a3 = 1;
    0x00406f04 lw t8, -0x7f04(gp)            |         t8 = sym.imp.cmd_recv;
    0x00406f08 move t9, t8                   |         t9 = t8;
    0x00406f0c jalr t9                       |         t9 ();
    0x00406f10 nop                           |         
    0x00406f14 lw gp, 0x20(fp)               |         gp = *(arg_20h);
    0x00406f18 move t8, v0                   |         t8 = v0;
    0x00406f1c sw t8, 0x40(fp)               |         *(arg_40h) = t8;
    0x00406f20 lw t8, 0x40(fp)               |         t8 = *(arg_40h);
    0x00406f24 srl t8, t8, 0x1f              |         t8 >>= 0x1f;
    0x00406f28 andi t8, t8, 0xff             |         t8 &= 0xff;
                                             |         if (t8 != 0) {
    0x00406f2c beqz t8, 0x406f3c             |             
    0x00406f30 nop                           |             
    0x00406f34 b 0x407350                    |             goto label_2;
    0x00406f38 nop                           |             
                                             |         }
    0x00406f3c lw t8, 0x2c(fp)               |         t8 = *(arg_2ch);
    0x00406f40 sltiu v0, t8, 9               |         v0 = (t8 < 9) ? 1 : 0;
                                             |         if (v0 != 0) {
    0x00406f44 beqz v0, 0x40734c             |             
    0x00406f48 nop                           |             
    0x00406f4c sll v0, t8, 2                 |             v0 = t8 << 2;
    0x00406f50 lw t8, -0x7fdc(gp)            |             t8 = *(gp);
    0x00406f54 addiu t8, t8, 0x7eb8          |             t8 += 0x7eb8;
    0x00406f58 addu t8, v0, t8               |             t8 = v0 + t8;
    0x00406f5c lw t8, (t8)                   |             t8 = *(t8);
    0x00406f60 addu t8, t8, gp               |             t8 += gp;
    0x00406f64 jr t8                         |             t8 ();
    0x00406f68 nop                           |             
                                             |         }
    0x0040734c nop                           |         
                                             | label_2:
    0x00407350 b 0x406eec                    |         
                                             |     } while (1);
    0x00407354 nop                           |     
                                             | label_0:
    0x00407358 move v0, t8                   |     v0 = t8;
    0x0040735c lw t8, -0x7e74(gp)            |     t8 = *((gp - 8093));
    0x00407360 lw v1, 0x2044(fp)             |     v1 = *(arg_2044h);
    0x00407364 lw t8, (t8)                   |     t8 = *(t8);
                                             |     if (v1 != t8) {
    0x00407368 beq v1, t8, 0x407380          |         
    0x0040736c nop                           |         
    0x00407370 lw t8, -0x7ee4(gp)            |         t8 = sym.imp.__stack_chk_fail;
    0x00407374 move t9, t8                   |         t9 = t8;
    0x00407378 jalr t9                       |         t9 ();
    0x0040737c nop                           |         
                                             |     }
    0x00407380 move sp, fp                   |     
    0x00407384 lw ra, 0x2054(sp)             |     ra = *(arg_2054h);
    0x00407388 lw fp, 0x2050(sp)             |     fp = *(arg_2050h);
    0x0040738c lw s0, 0x204c(sp)             |     s0 = *(arg_204ch);
    0x00407390 addiu sp, sp, 0x2058          |     
    0x00407394 jr ra                         |     return v1;
    0x00407398 nop                           |     
                                             | }
    ; assembly                                                   | /* r2dec pseudo code output */
                                                                 | /* /logs/firmware/patool_extraction/DUMP/mtdblock8_unblob_extracted/mtdblock8_extract/0-9650176.squashfs_v4_le_extract/sbin/dbd @ 0x405894 */
                                                                 | #include <stdint.h>
                                                                 |  
    ; (fcn) sym.checkSetting_mxml_node_s__mxml_node_s_ ()        | void checkSetting_mxml_node_s_mxml_node_s_ () {
                                                                 |     /* checkSetting(mxml_node_s*, mxml_node_s*) */
    0x00405894 lui gp, 2                                         |     
    0x00405898 addiu gp, gp, -0x4864                             |     
    0x0040589c addu gp, gp, t9                                   |     gp += t9;
    0x004058a0 addiu sp, sp, -0x1ec0                             |     
    0x004058a4 sw ra, 0x1ebc(sp)                                 |     *(var_1ebch) = ra;
    0x004058a8 sw fp, 0x1eb8(sp)                                 |     *(var_1eb8h) = fp;
    0x004058ac sw s0, 0x1eb4(sp)                                 |     *(var_1eb4h) = s0;
    0x004058b0 move fp, sp                                       |     fp = sp;
    0x004058b4 sw gp, 0x18(sp)                                   |     *(var_18h) = gp;
    0x004058b8 sw a0, 0x24(fp)                                   |     *(arg_24h) = a0;
    0x004058bc sw a1, 0x20(fp)                                   |     *(arg_20h) = a1;
    0x004058c0 lw t8, -0x7e74(gp)                                |     t8 = *((gp - 8093));
    0x004058c4 lw t8, (t8)                                       |     t8 = *(t8);
    0x004058c8 sw t8, 0x1eac(fp)                                 |     *(arg_1each) = t8;
    0x004058cc addiu v0, fp, 0x2c                                |     v0 = fp + 0x2c;
    0x004058d0 addiu t8, zero, 0x140                             |     t8 = 0x140;
    0x004058d4 move a0, v0                                       |     a0 = v0;
    0x004058d8 move a1, zero                                     |     a1 = 0;
    0x004058dc move a2, t8                                       |     a2 = t8;
    0x004058e0 lw t8, -0x7f14(gp)                                |     t8 = sym.imp.memset;
    0x004058e4 move t9, t8                                       |     t9 = t8;
    0x004058e8 jalr t9                                           |     t9 ();
    0x004058ec nop                                               |     
    0x004058f0 lw gp, 0x18(fp)                                   |     gp = *(arg_18h);
    0x004058f4 lw t8, -0x7fdc(gp)                                |     t8 = *(gp);
    0x004058f8 lw v0, 0x7a70(t8)                                 |     v0 = *((t8 + 7836));
    0x004058fc sw v0, 0x2c(fp)                                   |     *(arg_2ch) = v0;
                                                                 |     /* str.System */
    0x00405900 addiu t8, t8, 0x7a70                              |     t8 += 0x7a70;
    0x00405904 lhu v0, 4(t8)                                     |     v0 = *((t8 + 2));
    0x00405908 sh v0, 0x30(fp)                                   |     *(arg_30h) = v0;
    0x0040590c lbu t8, 6(t8)                                     |     t8 = *((t8 + 6));
    0x00405910 sb t8, 0x32(fp)                                   |     *(arg_32h) = t8;
    0x00405914 addiu v0, fp, 0x33                                |     v0 = fp + 0x33;
    0x00405918 addiu t8, zero, 0x19                              |     t8 = 0x19;
    0x0040591c move a0, v0                                       |     a0 = v0;
    0x00405920 move a1, zero                                     |     a1 = 0;
    0x00405924 move a2, t8                                       |     a2 = t8;
    0x00405928 lw t8, -0x7f14(gp)                                |     t8 = sym.imp.memset;
    0x0040592c move t9, t8                                       |     t9 = t8;
    0x00405930 jalr t9                                           |     t9 ();
    0x00405934 nop                                               |     
    0x00405938 lw gp, 0x18(fp)                                   |     gp = *(arg_18h);
    0x0040593c lw t8, -0x7fdc(gp)                                |     t8 = *(gp);
    0x00405940 lw v0, 0x7cf0(t8)                                 |     v0 = *((t8 + 7996));
    0x00405944 sw v0, 0x4c(fp)                                   |     *(arg_4ch) = v0;
                                                                 |     /* str.Model */
    0x00405948 addiu t8, t8, 0x7cf0                              |     t8 += 0x7cf0;
    0x0040594c lhu t8, 4(t8)                                     |     t8 = *((t8 + 2));
    0x00405950 sh t8, 0x50(fp)                                   |     *(arg_50h) = t8;
    0x00405954 sh zero, 0x52(fp)                                 |     *(arg_52h) = 0;
    0x00405958 sh zero, 0x54(fp)                                 |     *(arg_54h) = 0;
    0x0040595c sh zero, 0x56(fp)                                 |     *(arg_56h) = 0;
    0x00405960 sh zero, 0x58(fp)                                 |     *(arg_58h) = 0;
    0x00405964 sh zero, 0x5a(fp)                                 |     *(arg_5ah) = 0;
    0x00405968 sh zero, 0x5c(fp)                                 |     *(arg_5ch) = 0;
    0x0040596c sh zero, 0x5e(fp)                                 |     *(arg_5eh) = 0;
    0x00405970 sh zero, 0x60(fp)                                 |     *(arg_60h) = 0;
    0x00405974 sh zero, 0x62(fp)                                 |     *(arg_62h) = 0;
    0x00405978 sh zero, 0x64(fp)                                 |     *(arg_64h) = 0;
    0x0040597c sh zero, 0x66(fp)                                 |     *(arg_66h) = 0;
    0x00405980 sh zero, 0x68(fp)                                 |     *(arg_68h) = 0;
    0x00405984 sh zero, 0x6a(fp)                                 |     *(arg_6ah) = 0;
    0x00405988 lw t8, -0x7fdc(gp)                                |     t8 = *(gp);
    0x0040598c lw v0, 0x7a58(t8)                                 |     v0 = *((t8 + 7830));
                                                                 |     /* str.content */
    0x00405990 addiu t8, t8, 0x7a58                              |     t8 += 0x7a58;
    0x00405994 lw t8, 4(t8)                                      |     t8 = *((t8 + 1));
    0x00405998 sw v0, 0x6c(fp)                                   |     *(arg_6ch) = v0;
    0x0040599c sw t8, 0x70(fp)                                   |     *(arg_70h) = t8;
    0x004059a0 sw zero, 0x74(fp)                                 |     *(arg_74h) = 0;
    0x004059a4 sw zero, 0x78(fp)                                 |     *(arg_78h) = 0;
    0x004059a8 sw zero, 0x7c(fp)                                 |     *(arg_7ch) = 0;
    0x004059ac sw zero, 0x80(fp)                                 |     *(arg_80h) = 0;
    0x004059b0 sw zero, 0x84(fp)                                 |     *(arg_84h) = 0;
    0x004059b4 sw zero, 0x88(fp)                                 |     *(arg_88h) = 0;
    0x004059b8 addiu v0, fp, 0x16c                               |     v0 = fp + 0x16c;
    0x004059bc addiu t8, zero, 0x140                             |     t8 = 0x140;
    0x004059c0 move a0, v0                                       |     a0 = v0;
    0x004059c4 move a1, zero                                     |     a1 = 0;
    0x004059c8 move a2, t8                                       |     a2 = t8;
    0x004059cc lw t8, -0x7f14(gp)                                |     t8 = sym.imp.memset;
    0x004059d0 move t9, t8                                       |     t9 = t8;
    0x004059d4 jalr t9                                           |     t9 ();
    0x004059d8 nop                                               |     
    0x004059dc lw gp, 0x18(fp)                                   |     gp = *(arg_18h);
    0x004059e0 lw t8, -0x7fdc(gp)                                |     t8 = *(gp);
    0x004059e4 lw v0, 0x7a70(t8)                                 |     v0 = *((t8 + 7836));
    0x004059e8 sw v0, 0x16c(fp)                                  |     *(arg_16ch) = v0;
                                                                 |     /* str.System */
    0x004059ec addiu t8, t8, 0x7a70                              |     t8 += 0x7a70;
    0x004059f0 lhu v0, 4(t8)                                     |     v0 = *((t8 + 2));
    0x004059f4 sh v0, 0x170(fp)                                  |     *(arg_170h) = v0;
    0x004059f8 lbu t8, 6(t8)                                     |     t8 = *((t8 + 6));
    0x004059fc sb t8, 0x172(fp)                                  |     *(arg_172h) = t8;
    0x00405a00 addiu v0, fp, 0x173                               |     v0 = fp + 0x173;
    0x00405a04 addiu t8, zero, 0x19                              |     t8 = 0x19;
    0x00405a08 move a0, v0                                       |     a0 = v0;
    0x00405a0c move a1, zero                                     |     a1 = 0;
    0x00405a10 move a2, t8                                       |     a2 = t8;
    0x00405a14 lw t8, -0x7f14(gp)                                |     t8 = sym.imp.memset;
    0x00405a18 move t9, t8                                       |     t9 = t8;
    0x00405a1c jalr t9                                           |     t9 ();
    0x00405a20 nop                                               |     
    0x00405a24 lw gp, 0x18(fp)                                   |     gp = *(arg_18h);
    0x00405a28 lw t8, -0x7fdc(gp)                                |     t8 = *(gp);
    0x00405a2c lw v0, 0x7cf0(t8)                                 |     v0 = *((t8 + 7996));
    0x00405a30 sw v0, 0x18c(fp)                                  |     *(arg_18ch) = v0;
                                                                 |     /* str.Model */
    0x00405a34 addiu t8, t8, 0x7cf0                              |     t8 += 0x7cf0;
    0x00405a38 lhu t8, 4(t8)                                     |     t8 = *((t8 + 2));
    0x00405a3c sh t8, 0x190(fp)                                  |     *(arg_190h) = t8;
    0x00405a40 sh zero, 0x192(fp)                                |     *(arg_192h) = 0;
    0x00405a44 sh zero, 0x194(fp)                                |     *(arg_194h) = 0;
    0x00405a48 sh zero, 0x196(fp)                                |     *(arg_196h) = 0;
    0x00405a4c sh zero, 0x198(fp)                                |     *(arg_198h) = 0;
    0x00405a50 sh zero, 0x19a(fp)                                |     *(arg_19ah) = 0;
    0x00405a54 sh zero, 0x19c(fp)                                |     *(arg_19ch) = 0;
    0x00405a58 sh zero, 0x19e(fp)                                |     *(arg_19eh) = 0;
    0x00405a5c sh zero, 0x1a0(fp)                                |     *(arg_1a0h) = 0;
    0x00405a60 sh zero, 0x1a2(fp)                                |     *(arg_1a2h) = 0;
    0x00405a64 sh zero, 0x1a4(fp)                                |     *(arg_1a4h) = 0;
    0x00405a68 sh zero, 0x1a6(fp)                                |     *(arg_1a6h) = 0;
    0x00405a6c sh zero, 0x1a8(fp)                                |     *(arg_1a8h) = 0;
    0x00405a70 sh zero, 0x1aa(fp)                                |     *(arg_1aah) = 0;
    0x00405a74 addiu t8, zero, 0x76                              |     t8 = 0x76;
    0x00405a78 sw t8, 0x1ac(fp)                                  |     *(arg_1ach) = t8;
    0x00405a7c sw zero, 0x1b0(fp)                                |     *(arg_1b0h) = 0;
    0x00405a80 sw zero, 0x1b4(fp)                                |     *(arg_1b4h) = 0;
    0x00405a84 sw zero, 0x1b8(fp)                                |     *(arg_1b8h) = 0;
    0x00405a88 sw zero, 0x1bc(fp)                                |     *(arg_1bch) = 0;
    0x00405a8c sw zero, 0x1c0(fp)                                |     *(arg_1c0h) = 0;
    0x00405a90 sw zero, 0x1c4(fp)                                |     *(arg_1c4h) = 0;
    0x00405a94 sw zero, 0x1c8(fp)                                |     *(arg_1c8h) = 0;
    0x00405a98 addiu t8, zero, 3                                 |     t8 = 3;
    0x00405a9c sw t8, 0x28(fp)                                   |     *(arg_28h) = t8;
    0x00405aa0 addiu t8, fp, 0x2ac                               |     t8 = fp + 0x2ac;
    0x00405aa4 move a0, t8                                       |     a0 = t8;
    0x00405aa8 move a1, zero                                     |     a1 = 0;
    0x00405aac addiu a2, zero, 0xe00                             |     a2 = 0xe00;
    0x00405ab0 lw t8, -0x7f14(gp)                                |     t8 = sym.imp.memset;
    0x00405ab4 move t9, t8                                       |     t9 = t8;
    0x00405ab8 jalr t9                                           |     t9 ();
    0x00405abc nop                                               |     
    0x00405ac0 lw gp, 0x18(fp)                                   |     gp = *(arg_18h);
    0x00405ac4 addiu t8, fp, 0x10ac                              |     t8 = fp + 0x10ac;
    0x00405ac8 move a0, t8                                       |     a0 = t8;
    0x00405acc move a1, zero                                     |     a1 = 0;
    0x00405ad0 addiu a2, zero, 0xe00                             |     a2 = 0xe00;
    0x00405ad4 lw t8, -0x7f14(gp)                                |     t8 = sym.imp.memset;
    0x00405ad8 move t9, t8                                       |     t9 = t8;
    0x00405adc jalr t9                                           |     t9 ();
    0x00405ae0 nop                                               |     
    0x00405ae4 lw gp, 0x18(fp)                                   |     gp = *(arg_18h);
    0x00405ae8 lw t8, 0x24(fp)                                   |     t8 = *(arg_24h);
                                                                 |     if (t8 != 0) {
    0x00405aec beqz t8, 0x405b00                                 |         
    0x00405af0 nop                                               |         
    0x00405af4 lw t8, 0x20(fp)                                   |         t8 = *(arg_20h);
                                                                 |         if (t8 != 0) {
    0x00405af8 bnez t8, 0x405b6c                                 |             goto label_0;
                                                                 |         }
    0x00405afc nop                                               |         
                                                                 |     }
    0x00405b00 lw t8, -0x7ee8(gp)                                |     t8 = *((gp - 8122));
    0x00405b04 lw s0, (t8)                                       |     s0 = *(t8);
    0x00405b08 lw t8, -0x7e70(gp)                                |     t8 = sym.imp.__errno_location;
    0x00405b0c move t9, t8                                       |     t9 = t8;
    0x00405b10 jalr t9                                           |     t9 ();
    0x00405b14 nop                                               |     
    0x00405b18 lw gp, 0x18(fp)                                   |     gp = *(arg_18h);
    0x00405b1c move t8, v0                                       |     t8 = v0;
    0x00405b20 lw t8, (t8)                                       |     t8 = *(t8);
    0x00405b24 addiu v0, zero, 0x34a                             |     v0 = 0x34a;
    0x00405b28 sw v0, 0x10(sp)                                   |     *(var_10h) = v0;
    0x00405b2c sw t8, 0x14(sp)                                   |     *(var_14h) = t8;
    0x00405b30 move a0, s0                                       |     a0 = s0;
    0x00405b34 lw t8, -0x7fdc(gp)                                |     t8 = *(gp);
                                                                 |     /* str._s___s____L_d:_Invalid_para__errno___d_n */
    0x00405b38 addiu a1, t8, 0x77f8                              |     a1 = t8 + 0x77f8;
    0x00405b3c lw t8, -0x7fdc(gp)                                |     t8 = *(gp);
                                                                 |     /* str.dbd.cpp */
    0x00405b40 addiu a2, t8, 0x7824                              |     a2 = t8 + 0x7824;
    0x00405b44 lw t8, -0x7fdc(gp)                                |     t8 = *(gp);
                                                                 |     /* str.checkSetting */
    0x00405b48 addiu a3, t8, 0x7f88                              |     a3 = t8 + 0x7f88;
    0x00405b4c lw t8, -0x7f1c(gp)                                |     t8 = sym.imp.fprintf
    0x00405b50 move t9, t8                                       |     t9 = t8;
    0x00405b54 jalr t9                                           |     t9 ();
    0x00405b58 nop                                               |     
    0x00405b5c lw gp, 0x18(fp)                                   |     gp = *(arg_18h);
    0x00405b60 addiu t8, zero, -7                                |     t8 = -7;
    0x00405b64 b 0x405d84                                        |     goto label_1;
    0x00405b68 nop                                               |     
                                                                 | label_0:
    0x00405b6c lw t8, 0x28(fp)                                   |     t8 = *(arg_28h);
    0x00405b70 sll t8, t8, 0x18                                  |     t8 <<= 0x18;
    0x00405b74 sra t8, t8, 0x18                                  |     t8 >>= 0x18;
    0x00405b78 move v0, t8                                       |     v0 = t8;
    0x00405b7c addiu v1, fp, 0x2c                                |     v1 = fp + 0x2c;
    0x00405b80 addiu t8, fp, 0x2ac                               |     t8 = fp + 0x2ac;
    0x00405b84 lw a0, 0x24(fp)                                   |     a0 = *(arg_24h);
    0x00405b88 move a1, v1                                       |     a1 = v1;
    0x00405b8c move a2, v0                                       |     a2 = v0;
    0x00405b90 move a3, t8                                       |     a3 = t8;
    0x00405b94 lw t8, -0x7fc4(gp)                                |     t8 = sym.xml_get_mxml_node_s__char_const_____32___char__char_;
    0x00405b98 move t9, t8                                       |     t9 = t8;
    0x00405b9c jalr t9                                           |     t9 ();
    0x00405ba0 nop                                               |     
    0x00405ba4 lw gp, 0x18(fp)                                   |     gp = *(arg_18h);
    0x00405ba8 move t8, v0                                       |     t8 = v0;
    0x00405bac srl t8, t8, 0x1f                                  |     t8 >>= 0x1f;
    0x00405bb0 andi t8, t8, 0xff                                 |     t8 &= 0xff;
                                                                 |     if (t8 != 0) {
    0x00405bb4 beqz t8, 0x405c28                                 |         
    0x00405bb8 nop                                               |         
    0x00405bbc lw t8, -0x7ee8(gp)                                |         t8 = *((gp - 8122));
    0x00405bc0 lw s0, (t8)                                       |         s0 = *(t8);
    0x00405bc4 lw t8, -0x7e70(gp)                                |         t8 = sym.imp.__errno_location;
    0x00405bc8 move t9, t8                                       |         t9 = t8;
    0x00405bcc jalr t9                                           |         t9 ();
    0x00405bd0 nop                                               |         
    0x00405bd4 lw gp, 0x18(fp)                                   |         gp = *(arg_18h);
    0x00405bd8 move t8, v0                                       |         t8 = v0;
    0x00405bdc lw t8, (t8)                                       |         t8 = *(t8);
    0x00405be0 addiu v0, zero, 0x34e                             |         v0 = 0x34e;
    0x00405be4 sw v0, 0x10(sp)                                   |         *(var_10h) = v0;
    0x00405be8 sw t8, 0x14(sp)                                   |         *(var_14h) = t8;
    0x00405bec move a0, s0                                       |         a0 = s0;
    0x00405bf0 lw t8, -0x7fdc(gp)                                |         t8 = *(gp);
                                                                 |         /* str._s___s____L_d:_Cant_read_model_of_current_db__errno___d_n */
    0x00405bf4 addiu a1, t8, 0x7c4c                              |         a1 = t8 + 0x7c4c;
    0x00405bf8 lw t8, -0x7fdc(gp)                                |         t8 = *(gp);
                                                                 |         /* str.dbd.cpp */
    0x00405bfc addiu a2, t8, 0x7824                              |         a2 = t8 + 0x7824;
    0x00405c00 lw t8, -0x7fdc(gp)                                |         t8 = *(gp);
                                                                 |         /* str.checkSetting */
    0x00405c04 addiu a3, t8, 0x7f88                              |         a3 = t8 + 0x7f88;
    0x00405c08 lw t8, -0x7f1c(gp)                                |         t8 = sym.imp.fprintf
    0x00405c0c move t9, t8                                       |         t9 = t8;
    0x00405c10 jalr t9                                           |         t9 ();
    0x00405c14 nop                                               |         
    0x00405c18 lw gp, 0x18(fp)                                   |         gp = *(arg_18h);
    0x00405c1c addiu t8, zero, -1                                |         t8 = -1;
    0x00405c20 b 0x405d84                                        |         goto label_1;
    0x00405c24 nop                                               |         
                                                                 |     }
    0x00405c28 lw t8, 0x28(fp)                                   |     t8 = *(arg_28h);
    0x00405c2c sll t8, t8, 0x18                                  |     t8 <<= 0x18;
    0x00405c30 sra t8, t8, 0x18                                  |     t8 >>= 0x18;
    0x00405c34 move v0, t8                                       |     v0 = t8;
    0x00405c38 addiu v1, fp, 0x16c                               |     v1 = fp + 0x16c;
    0x00405c3c addiu t8, fp, 0x10ac                              |     t8 = fp + 0x10ac;
    0x00405c40 lw a0, 0x20(fp)                                   |     a0 = *(arg_20h);
    0x00405c44 move a1, v1                                       |     a1 = v1;
    0x00405c48 move a2, v0                                       |     a2 = v0;
    0x00405c4c move a3, t8                                       |     a3 = t8;
    0x00405c50 lw t8, -0x7fc4(gp)                                |     t8 = sym.xml_get_mxml_node_s__char_const_____32___char__char_;
    0x00405c54 move t9, t8                                       |     t9 = t8;
    0x00405c58 jalr t9                                           |     t9 ();
    0x00405c5c nop                                               |     
    0x00405c60 lw gp, 0x18(fp)                                   |     gp = *(arg_18h);
    0x00405c64 move t8, v0                                       |     t8 = v0;
    0x00405c68 srl t8, t8, 0x1f                                  |     t8 >>= 0x1f;
    0x00405c6c andi t8, t8, 0xff                                 |     t8 &= 0xff;
                                                                 |     if (t8 != 0) {
    0x00405c70 beqz t8, 0x405ce4                                 |         
    0x00405c74 nop                                               |         
    0x00405c78 lw t8, -0x7ee8(gp)                                |         t8 = *((gp - 8122));
    0x00405c7c lw s0, (t8)                                       |         s0 = *(t8);
    0x00405c80 lw t8, -0x7e70(gp)                                |         t8 = sym.imp.__errno_location;
    0x00405c84 move t9, t8                                       |         t9 = t8;
    0x00405c88 jalr t9                                           |         t9 ();
    0x00405c8c nop                                               |         
    0x00405c90 lw gp, 0x18(fp)                                   |         gp = *(arg_18h);
    0x00405c94 move t8, v0                                       |         t8 = v0;
    0x00405c98 lw t8, (t8)                                       |         t8 = *(t8);
    0x00405c9c addiu v0, zero, 0x352                             |         v0 = 0x352;
    0x00405ca0 sw v0, 0x10(sp)                                   |         *(var_10h) = v0;
    0x00405ca4 sw t8, 0x14(sp)                                   |         *(var_14h) = t8;
    0x00405ca8 move a0, s0                                       |         a0 = s0;
    0x00405cac lw t8, -0x7fdc(gp)                                |         t8 = *(gp);
                                                                 |         /* str._s___s____L_d:_Cant_read_model_of_new_db__errno___d_n */
    0x00405cb0 addiu a1, t8, 0x7c88                              |         a1 = t8 + 0x7c88;
    0x00405cb4 lw t8, -0x7fdc(gp)                                |         t8 = *(gp);
                                                                 |         /* str.dbd.cpp */
    0x00405cb8 addiu a2, t8, 0x7824                              |         a2 = t8 + 0x7824;
    0x00405cbc lw t8, -0x7fdc(gp)                                |         t8 = *(gp);
                                                                 |         /* str.checkSetting */
    0x00405cc0 addiu a3, t8, 0x7f88                              |         a3 = t8 + 0x7f88;
    0x00405cc4 lw t8, -0x7f1c(gp)                                |         t8 = sym.imp.fprintf
    0x00405cc8 move t9, t8                                       |         t9 = t8;
    0x00405ccc jalr t9                                           |         t9 ();
    0x00405cd0 nop                                               |         
    0x00405cd4 lw gp, 0x18(fp)                                   |         gp = *(arg_18h);
    0x00405cd8 addiu t8, zero, -1                                |         t8 = -1;
    0x00405cdc b 0x405d84                                        |         goto label_1;
    0x00405ce0 nop                                               |         
                                                                 |     }
    0x00405ce4 addiu v0, fp, 0x2ac                               |     v0 = fp + 0x2ac;
    0x00405ce8 addiu t8, fp, 0x10ac                              |     t8 = fp + 0x10ac;
    0x00405cec move a0, v0                                       |     a0 = v0;
    0x00405cf0 move a1, t8                                       |     a1 = t8;
    0x00405cf4 lw t8, -0x7f38(gp)                                |     t8 = sym.imp.strcmp;
    0x00405cf8 move t9, t8                                       |     t9 = t8;
    0x00405cfc jalr t9                                           |     t9 ();
    0x00405d00 nop                                               |     
    0x00405d04 lw gp, 0x18(fp)                                   |     gp = *(arg_18h);
    0x00405d08 move t8, v0                                       |     t8 = v0;
                                                                 |     if (t8 != 0) {
    0x00405d0c beqz t8, 0x405d80                                 |         
    0x00405d10 nop                                               |         
    0x00405d14 lw t8, -0x7ee8(gp)                                |         t8 = *((gp - 8122));
    0x00405d18 lw s0, (t8)                                       |         s0 = *(t8);
    0x00405d1c lw t8, -0x7e70(gp)                                |         t8 = sym.imp.__errno_location;
    0x00405d20 move t9, t8                                       |         t9 = t8;
    0x00405d24 jalr t9                                           |         t9 ();
    0x00405d28 nop                                               |         
    0x00405d2c lw gp, 0x18(fp)                                   |         gp = *(arg_18h);
    0x00405d30 move t8, v0                                       |         t8 = v0;
    0x00405d34 lw t8, (t8)                                       |         t8 = *(t8);
    0x00405d38 addiu v0, zero, 0x357                             |         v0 = 0x357;
    0x00405d3c sw v0, 0x10(sp)                                   |         *(var_10h) = v0;
    0x00405d40 sw t8, 0x14(sp)                                   |         *(var_14h) = t8;
    0x00405d44 move a0, s0                                       |         a0 = s0;
    0x00405d48 lw t8, -0x7fdc(gp)                                |         t8 = *(gp);
                                                                 |         /* str._s___s____L_d:_Model_doesnt_match__errno___d_n */
    0x00405d4c addiu a1, t8, 0x7cc0                              |         a1 = t8 + 0x7cc0;
    0x00405d50 lw t8, -0x7fdc(gp)                                |         t8 = *(gp);
                                                                 |         /* str.dbd.cpp */
    0x00405d54 addiu a2, t8, 0x7824                              |         a2 = t8 + 0x7824;
    0x00405d58 lw t8, -0x7fdc(gp)                                |         t8 = *(gp);
                                                                 |         /* str.checkSetting */
    0x00405d5c addiu a3, t8, 0x7f88                              |         a3 = t8 + 0x7f88;
    0x00405d60 lw t8, -0x7f1c(gp)                                |         t8 = sym.imp.fprintf
    0x00405d64 move t9, t8                                       |         t9 = t8;
    0x00405d68 jalr t9                                           |         t9 ();
    0x00405d6c nop                                               |         
    0x00405d70 lw gp, 0x18(fp)                                   |         gp = *(arg_18h);
    0x00405d74 addiu t8, zero, -1                                |         t8 = -1;
    0x00405d78 b 0x405d84                                        |         goto label_1;
    0x00405d7c nop                                               |         
                                                                 |     }
    0x00405d80 move t8, zero                                     |     t8 = 0;
                                                                 | label_1:
    0x00405d84 move v0, t8                                       |     v0 = t8;
    0x00405d88 lw t8, -0x7e74(gp)                                |     t8 = *((gp - 8093));
    0x00405d8c lw v1, 0x1eac(fp)                                 |     v1 = *(arg_1each);
    0x00405d90 lw t8, (t8)                                       |     t8 = *(t8);
                                                                 |     if (v1 != t8) {
    0x00405d94 beq v1, t8, 0x405dac                              |         
    0x00405d98 nop                                               |         
    0x00405d9c lw t8, -0x7ee4(gp)                                |         t8 = sym.imp.__stack_chk_fail;
    0x00405da0 move t9, t8                                       |         t9 = t8;
    0x00405da4 jalr t9                                           |         t9 ();
    0x00405da8 nop                                               |         
                                                                 |     }
    0x00405dac move sp, fp                                       |     
    0x00405db0 lw ra, 0x1ebc(sp)                                 |     ra = *(var_1ebch);
    0x00405db4 lw fp, 0x1eb8(sp)                                 |     fp = *(var_1eb8h);
    0x00405db8 lw s0, 0x1eb4(sp)                                 |     s0 = *(var_1eb4h);
    0x00405dbc addiu sp, sp, 0x1ec0                              |     
    0x00405dc0 jr ra                                             |     return v1;
    0x00405dc4 nop                                               |     
                                                                 | }
    ; assembly                                               | /* r2dec pseudo code output */
                                                             | /* /logs/firmware/patool_extraction/DUMP/mtdblock8_unblob_extracted/mtdblock8_extract/0-9650176.squashfs_v4_le_extract/sbin/dbd @ 0x406390 */
                                                             | #include <stdint.h>
                                                             |  
    ; (fcn) sym.configDB_mxml_node_s__char_const_ ()         | void configDB_mxml_node_s_char_const_ () {
                                                             |     /* configDB(mxml_node_s*, char const*) */
    0x00406390 lui gp, 2                                     |     
    0x00406394 addiu gp, gp, -0x5360                         |     
    0x00406398 addu gp, gp, t9                               |     gp += t9;
    0x0040639c addiu sp, sp, -0x40                           |     
    0x004063a0 sw ra, 0x3c(sp)                               |     *(var_3ch) = ra;
    0x004063a4 sw fp, 0x38(sp)                               |     *(var_38h) = fp;
    0x004063a8 sw s0, 0x34(sp)                               |     *(var_34h) = s0;
    0x004063ac move fp, sp                                   |     fp = sp;
    0x004063b0 sw gp, 0x18(sp)                               |     *(var_18h) = gp;
    0x004063b4 sw a0, 0x24(fp)                               |     *(arg_24h) = a0;
    0x004063b8 sw a1, 0x20(fp)                               |     *(arg_20h) = a1;
    0x004063bc lw t8, -0x7e74(gp)                            |     t8 = *((gp - 8093));
    0x004063c0 lw t8, (t8)                                   |     t8 = *(t8);
    0x004063c4 sw t8, 0x2c(fp)                               |     *(arg_2ch) = t8;
    0x004063c8 sw zero, 0x28(fp)                             |     *(arg_28h) = 0;
    0x004063cc lw t8, 0x24(fp)                               |     t8 = *(arg_24h);
                                                             |     if (t8 != 0) {
    0x004063d0 beqz t8, 0x4063e4                             |         
    0x004063d4 nop                                           |         
    0x004063d8 lw t8, 0x20(fp)                               |         t8 = *(arg_20h);
                                                             |         if (t8 != 0) {
    0x004063dc bnez t8, 0x406450                             |             goto label_0;
                                                             |         }
    0x004063e0 nop                                           |         
                                                             |     }
    0x004063e4 lw t8, -0x7ee8(gp)                            |     t8 = *((gp - 8122));
    0x004063e8 lw s0, (t8)                                   |     s0 = *(t8);
    0x004063ec lw t8, -0x7e70(gp)                            |     t8 = sym.imp.__errno_location;
    0x004063f0 move t9, t8                                   |     t9 = t8;
    0x004063f4 jalr t9                                       |     t9 ();
    0x004063f8 nop                                           |     
    0x004063fc lw gp, 0x18(fp)                               |     gp = *(arg_18h);
    0x00406400 move t8, v0                                   |     t8 = v0;
    0x00406404 lw t8, (t8)                                   |     t8 = *(t8);
    0x00406408 addiu v0, zero, 0x3a5                         |     v0 = 0x3a5;
    0x0040640c sw v0, 0x10(sp)                               |     *(var_10h) = v0;
    0x00406410 sw t8, 0x14(sp)                               |     *(var_14h) = t8;
    0x00406414 move a0, s0                                   |     a0 = s0;
    0x00406418 lw t8, -0x7fdc(gp)                            |     t8 = *(gp);
                                                             |     /* str._s___s____L_d:_Invalid_para__errno___d_n */
    0x0040641c addiu a1, t8, 0x77f8                          |     a1 = t8 + 0x77f8;
    0x00406420 lw t8, -0x7fdc(gp)                            |     t8 = *(gp);
                                                             |     /* str.dbd.cpp */
    0x00406424 addiu a2, t8, 0x7824                          |     a2 = t8 + 0x7824;
    0x00406428 lw t8, -0x7fdc(gp)                            |     t8 = *(gp);
                                                             |     /* str.configDB */
    0x0040642c addiu a3, t8, 0x7fa0                          |     a3 = t8 + 0x7fa0;
    0x00406430 lw t8, -0x7f1c(gp)                            |     t8 = sym.imp.fprintf
    0x00406434 move t9, t8                                   |     t9 = t8;
    0x00406438 jalr t9                                       |     t9 ();
    0x0040643c nop                                           |     
    0x00406440 lw gp, 0x18(fp)                               |     gp = *(arg_18h);
    0x00406444 addiu t8, zero, -7                            |     t8 = -7;
    0x00406448 b 0x406670                                    |     goto label_1;
    0x0040644c nop                                           |     
                                                             | label_0:
    0x00406450 lw a0, 0x20(fp)                               |     a0 = *(arg_20h);
    0x00406454 move a1, zero                                 |     a1 = 0;
    0x00406458 lw t8, -0x7f90(gp)                            |     t8 = sym.load_db_char_const__int_;
    0x0040645c move t9, t8                                   |     t9 = t8;
    0x00406460 jalr t9                                       |     t9 ();
    0x00406464 nop                                           |     
    0x00406468 lw gp, 0x18(fp)                               |     gp = *(arg_18h);
    0x0040646c move t8, v0                                   |     t8 = v0;
    0x00406470 sw t8, 0x28(fp)                               |     *(arg_28h) = t8;
    0x00406474 lw t8, 0x28(fp)                               |     t8 = *(arg_28h);
                                                             |     if (t8 == 0) {
    0x00406478 bnez t8, 0x4064ec                             |         
    0x0040647c nop                                           |         
    0x00406480 lw t8, -0x7ee8(gp)                            |         t8 = *((gp - 8122));
    0x00406484 lw s0, (t8)                                   |         s0 = *(t8);
    0x00406488 lw t8, -0x7e70(gp)                            |         t8 = sym.imp.__errno_location;
    0x0040648c move t9, t8                                   |         t9 = t8;
    0x00406490 jalr t9                                       |         t9 ();
    0x00406494 nop                                           |         
    0x00406498 lw gp, 0x18(fp)                               |         gp = *(arg_18h);
    0x0040649c move t8, v0                                   |         t8 = v0;
    0x004064a0 lw t8, (t8)                                   |         t8 = *(t8);
    0x004064a4 addiu v0, zero, 0x3ab                         |         v0 = 0x3ab;
    0x004064a8 sw v0, 0x10(sp)                               |         *(var_10h) = v0;
    0x004064ac sw t8, 0x14(sp)                               |         *(var_14h) = t8;
    0x004064b0 move a0, s0                                   |         a0 = s0;
    0x004064b4 lw t8, -0x7fdc(gp)                            |         t8 = *(gp);
                                                             |         /* str._s___s____L_d:_Load_db_failed__errno___d_n */
    0x004064b8 addiu a1, t8, 0x7d44                          |         a1 = t8 + 0x7d44;
    0x004064bc lw t8, -0x7fdc(gp)                            |         t8 = *(gp);
                                                             |         /* str.dbd.cpp */
    0x004064c0 addiu a2, t8, 0x7824                          |         a2 = t8 + 0x7824;
    0x004064c4 lw t8, -0x7fdc(gp)                            |         t8 = *(gp);
                                                             |         /* str.configDB */
    0x004064c8 addiu a3, t8, 0x7fa0                          |         a3 = t8 + 0x7fa0;
    0x004064cc lw t8, -0x7f1c(gp)                            |         t8 = sym.imp.fprintf
    0x004064d0 move t9, t8                                   |         t9 = t8;
    0x004064d4 jalr t9                                       |         t9 ();
    0x004064d8 nop                                           |         
    0x004064dc lw gp, 0x18(fp)                               |         gp = *(arg_18h);
    0x004064e0 addiu t8, zero, -1                            |         t8 = -1;
    0x004064e4 b 0x406670                                    |         goto label_1;
    0x004064e8 nop                                           |         
                                                             |     }
    0x004064ec lw a0, 0x24(fp)                               |     a0 = *(arg_24h);
    0x004064f0 lw a1, 0x28(fp)                               |     a1 = *(arg_28h);
    0x004064f4 lw t8, -0x7f8c(gp)                            |     t8 = sym.checkSetting_mxml_node_s__mxml_node_s_;
    0x004064f8 move t9, t8                                   |     t9 = t8;
    0x004064fc jalr t9                                       |     t9 ();
    0x00406500 nop                                           |     
    0x00406504 lw gp, 0x18(fp)                               |     gp = *(arg_18h);
    0x00406508 move t8, v0                                   |     t8 = v0;
    0x0040650c srl t8, t8, 0x1f                              |     t8 >>= 0x1f;
    0x00406510 andi t8, t8, 0xff                             |     t8 &= 0xff;
                                                             |     if (t8 != 0) {
    0x00406514 beqz t8, 0x4065a0                             |         
    0x00406518 nop                                           |         
    0x0040651c lw t8, -0x7ee8(gp)                            |         t8 = *((gp - 8122));
    0x00406520 lw s0, (t8)                                   |         s0 = *(t8);
    0x00406524 lw t8, -0x7e70(gp)                            |         t8 = sym.imp.__errno_location;
    0x00406528 move t9, t8                                   |         t9 = t8;
    0x0040652c jalr t9                                       |         t9 ();
    0x00406530 nop                                           |         
    0x00406534 lw gp, 0x18(fp)                               |         gp = *(arg_18h);
    0x00406538 move t8, v0                                   |         t8 = v0;
    0x0040653c lw t8, (t8)                                   |         t8 = *(t8);
    0x00406540 addiu v0, zero, 0x3b0                         |         v0 = 0x3b0;
    0x00406544 sw v0, 0x10(sp)                               |         *(var_10h) = v0;
    0x00406548 sw t8, 0x14(sp)                               |         *(var_14h) = t8;
    0x0040654c move a0, s0                                   |         a0 = s0;
    0x00406550 lw t8, -0x7fdc(gp)                            |         t8 = *(gp);
                                                             |         /* str._s___s____L_d:_Config_file_check_error__errno___d_n */
    0x00406554 addiu a1, t8, 0x7d70                          |         a1 = t8 + 0x7d70;
    0x00406558 lw t8, -0x7fdc(gp)                            |         t8 = *(gp);
                                                             |         /* str.dbd.cpp */
    0x0040655c addiu a2, t8, 0x7824                          |         a2 = t8 + 0x7824;
    0x00406560 lw t8, -0x7fdc(gp)                            |         t8 = *(gp);
                                                             |         /* str.configDB */
    0x00406564 addiu a3, t8, 0x7fa0                          |         a3 = t8 + 0x7fa0;
    0x00406568 lw t8, -0x7f1c(gp)                            |         t8 = sym.imp.fprintf
    0x0040656c move t9, t8                                   |         t9 = t8;
    0x00406570 jalr t9                                       |         t9 ();
    0x00406574 nop                                           |         
    0x00406578 lw gp, 0x18(fp)                               |         gp = *(arg_18h);
    0x0040657c lw a0, 0x28(fp)                               |         a0 = *(arg_28h);
    0x00406580 lw t8, -0x7f34(gp)                            |         t8 = sym.imp.mxmlDelete;
    0x00406584 move t9, t8                                   |         t9 = t8;
    0x00406588 jalr t9                                       |         t9 ();
    0x0040658c nop                                           |         
    0x00406590 lw gp, 0x18(fp)                               |         gp = *(arg_18h);
    0x00406594 addiu t8, zero, -1                            |         t8 = -1;
    0x00406598 b 0x406670                                    |         goto label_1;
    0x0040659c nop                                           |         
                                                             |     }
    0x004065a0 lw a0, 0x24(fp)                               |     a0 = *(arg_24h);
    0x004065a4 lw a1, 0x28(fp)                               |     a1 = *(arg_28h);
    0x004065a8 lw t8, -0x7f88(gp)                            |     t8 = sym.mergeDB_mxml_node_s__mxml_node_s_;
    0x004065ac move t9, t8                                   |     t9 = t8;
    0x004065b0 jalr t9                                       |     t9 ();
    0x004065b4 nop                                           |     
    0x004065b8 lw gp, 0x18(fp)                               |     gp = *(arg_18h);
    0x004065bc move t8, v0                                   |     t8 = v0;
    0x004065c0 srl t8, t8, 0x1f                              |     t8 >>= 0x1f;
    0x004065c4 andi t8, t8, 0xff                             |     t8 &= 0xff;
                                                             |     if (t8 != 0) {
    0x004065c8 beqz t8, 0x406654                             |         
    0x004065cc nop                                           |         
    0x004065d0 lw t8, -0x7ee8(gp)                            |         t8 = *((gp - 8122));
    0x004065d4 lw s0, (t8)                                   |         s0 = *(t8);
    0x004065d8 lw t8, -0x7e70(gp)                            |         t8 = sym.imp.__errno_location;
    0x004065dc move t9, t8                                   |         t9 = t8;
    0x004065e0 jalr t9                                       |         t9 ();
    0x004065e4 nop                                           |         
    0x004065e8 lw gp, 0x18(fp)                               |         gp = *(arg_18h);
    0x004065ec move t8, v0                                   |         t8 = v0;
    0x004065f0 lw t8, (t8)                                   |         t8 = *(t8);
    0x004065f4 addiu v0, zero, 0x3b6                         |         v0 = 0x3b6;
    0x004065f8 sw v0, 0x10(sp)                               |         *(var_10h) = v0;
    0x004065fc sw t8, 0x14(sp)                               |         *(var_14h) = t8;
    0x00406600 move a0, s0                                   |         a0 = s0;
    0x00406604 lw t8, -0x7fdc(gp)                            |         t8 = *(gp);
                                                             |         /* str._s___s____L_d:_Merge_db_failed__errno___d_n */
    0x00406608 addiu a1, t8, 0x7da4                          |         a1 = t8 + 0x7da4;
    0x0040660c lw t8, -0x7fdc(gp)                            |         t8 = *(gp);
                                                             |         /* str.dbd.cpp */
    0x00406610 addiu a2, t8, 0x7824                          |         a2 = t8 + 0x7824;
    0x00406614 lw t8, -0x7fdc(gp)                            |         t8 = *(gp);
                                                             |         /* str.configDB */
    0x00406618 addiu a3, t8, 0x7fa0                          |         a3 = t8 + 0x7fa0;
    0x0040661c lw t8, -0x7f1c(gp)                            |         t8 = sym.imp.fprintf
    0x00406620 move t9, t8                                   |         t9 = t8;
    0x00406624 jalr t9                                       |         t9 ();
    0x00406628 nop                                           |         
    0x0040662c lw gp, 0x18(fp)                               |         gp = *(arg_18h);
    0x00406630 lw a0, 0x28(fp)                               |         a0 = *(arg_28h);
    0x00406634 lw t8, -0x7f34(gp)                            |         t8 = sym.imp.mxmlDelete;
    0x00406638 move t9, t8                                   |         t9 = t8;
    0x0040663c jalr t9                                       |         t9 ();
    0x00406640 nop                                           |         
    0x00406644 lw gp, 0x18(fp)                               |         gp = *(arg_18h);
    0x00406648 addiu t8, zero, -1                            |         t8 = -1;
    0x0040664c b 0x406670                                    |         goto label_1;
    0x00406650 nop                                           |         
                                                             |     }
    0x00406654 lw a0, 0x28(fp)                               |     a0 = *(arg_28h);
    0x00406658 lw t8, -0x7f34(gp)                            |     t8 = sym.imp.mxmlDelete;
    0x0040665c move t9, t8                                   |     t9 = t8;
    0x00406660 jalr t9                                       |     t9 ();
    0x00406664 nop                                           |     
    0x00406668 lw gp, 0x18(fp)                               |     gp = *(arg_18h);
    0x0040666c move t8, zero                                 |     t8 = 0;
                                                             | label_1:
    0x00406670 move v0, t8                                   |     v0 = t8;
    0x00406674 lw t8, -0x7e74(gp)                            |     t8 = *((gp - 8093));
    0x00406678 lw v1, 0x2c(fp)                               |     v1 = *(arg_2ch);
    0x0040667c lw t8, (t8)                                   |     t8 = *(t8);
                                                             |     if (v1 != t8) {
    0x00406680 beq v1, t8, 0x406698                          |         
    0x00406684 nop                                           |         
    0x00406688 lw t8, -0x7ee4(gp)                            |         t8 = sym.imp.__stack_chk_fail;
    0x0040668c move t9, t8                                   |         t9 = t8;
    0x00406690 jalr t9                                       |         t9 ();
    0x00406694 nop                                           |         
                                                             |     }
    0x00406698 move sp, fp                                   |     
    0x0040669c lw ra, 0x3c(sp)                               |     ra = *(var_3ch);
    0x004066a0 lw fp, 0x38(sp)                               |     fp = *(var_38h);
    0x004066a4 lw s0, 0x34(sp)                               |     s0 = *(var_34h);
    0x004066a8 addiu sp, sp, 0x40                            |     
    0x004066ac jr ra                                         |     return v1;
    0x004066b0 nop                                           |     
                                                             | }
    ; assembly                               | /* r2dec pseudo code output */
                                             | /* /logs/firmware/patool_extraction/DUMP/mtdblock8_unblob_extracted/mtdblock8_extract/0-9650176.squashfs_v4_le_extract/sbin/dbd @ 0x40475c */
                                             | #include <stdint.h>
                                             |  
    ; (fcn) sym.db_save_thread_void_ ()      | void db_save_thread_void_ () {
                                             |     /* db_save_thread(void*) */
    0x0040475c lui gp, 2                     |     
    0x00404760 addiu gp, gp, -0x372c         |     
    0x00404764 addu gp, gp, t9               |     gp += t9;
    0x00404768 addiu sp, sp, -0x50           |     
    0x0040476c sw ra, 0x4c(sp)               |     *(var_4ch) = ra;
    0x00404770 sw fp, 0x48(sp)               |     *(var_48h) = fp;
    0x00404774 sw s0, 0x44(sp)               |     *(var_44h) = s0;
    0x00404778 move fp, sp                   |     fp = sp;
    0x0040477c sw gp, 0x18(sp)               |     *(var_18h) = gp;
    0x00404780 sw a0, 0x24(fp)               |     *(arg_24h) = a0;
    0x00404784 lw t8, -0x7e74(gp)            |     t8 = *((gp - 8093));
    0x00404788 lw t8, (t8)                   |     t8 = *(t8);
    0x0040478c sw t8, 0x3c(fp)               |     *(arg_3ch) = t8;
    0x00404790 sw zero, 0x30(fp)             |     *(arg_30h) = 0;
    0x00404794 sw zero, 0x34(fp)             |     *(arg_34h) = 0;
    0x00404798 sw zero, 0x28(fp)             |     *(arg_28h) = 0;
    0x0040479c sw zero, 0x2c(fp)             |     *(arg_2ch) = 0;
    0x004047a0 lw t8, 0x24(fp)               |     t8 = *(arg_24h);
                                             |     if (t8 == 0) {
    0x004047a4 bnez t8, 0x404830             |         
    0x004047a8 nop                           |         
    0x004047ac lw t8, -0x7ee8(gp)            |         t8 = *((gp - 8122));
    0x004047b0 lw s0, (t8)                   |         s0 = *(t8);
    0x004047b4 lw t8, -0x7e70(gp)            |         t8 = sym.imp.__errno_location;
    0x004047b8 move t9, t8                   |         t9 = t8;
    0x004047bc jalr t9                       |         t9 ();
    0x004047c0 nop                           |         
    0x004047c4 lw gp, 0x18(fp)               |         gp = *(arg_18h);
    0x004047c8 move t8, v0                   |         t8 = v0;
    0x004047cc lw t8, (t8)                   |         t8 = *(t8);
    0x004047d0 addiu v0, zero, 0x26a         |         v0 = 0x26a;
    0x004047d4 sw v0, 0x10(sp)               |         *(var_10h) = v0;
    0x004047d8 sw t8, 0x14(sp)               |         *(var_14h) = t8;
    0x004047dc move a0, s0                   |         a0 = s0;
    0x004047e0 lw t8, -0x7fdc(gp)            |         t8 = *(gp);
                                             |         /* str._s___s____L_d:_no_para__create_thread_error__errno___d_n */
    0x004047e4 addiu a1, t8, 0x7bcc          |         a1 = t8 + 0x7bcc;
    0x004047e8 lw t8, -0x7fdc(gp)            |         t8 = *(gp);
                                             |         /* str.dbd.cpp */
    0x004047ec addiu a2, t8, 0x7824          |         a2 = t8 + 0x7824;
    0x004047f0 lw t8, -0x7fdc(gp)            |         t8 = *(gp);
                                             |         /* str.db_save_thread */
    0x004047f4 addiu a3, t8, 0x7f54          |         a3 = t8 + 0x7f54;
    0x004047f8 lw t8, -0x7f1c(gp)            |         t8 = sym.imp.fprintf
    0x004047fc move t9, t8                   |         t9 = t8;
    0x00404800 jalr t9                       |         t9 ();
    0x00404804 nop                           |         
    0x00404808 lw gp, 0x18(fp)               |         gp = *(arg_18h);
    0x0040480c move t8, zero                 |         t8 = 0;
    0x00404810 move v0, t8                   |         v0 = t8;
    0x00404814 lw t8, -0x7e74(gp)            |         t8 = *((gp - 8093));
    0x00404818 lw v1, 0x3c(fp)               |         v1 = *(arg_3ch);
    0x0040481c lw t8, (t8)                   |         t8 = *(t8);
                                             |         if (v1 == t8) {
    0x00404820 beq v1, t8, 0x404a7c          |             goto label_0;
                                             |         }
    0x00404824 nop                           |         
    0x00404828 b 0x404a6c                    |         goto label_1;
    0x0040482c nop                           |         
                                             |     }
    0x00404830 lw t8, 0x24(fp)               |     t8 = *(arg_24h);
    0x00404834 sw t8, 0x30(fp)               |     *(arg_30h) = t8;
    0x00404838 b 0x404a48                    |     goto label_2;
    0x0040483c nop                           |     
                                             |     do {
    0x00404840 addiu a0, zero, 1             |         a0 = 1;
    0x00404844 lw t8, -0x7e8c(gp)            |         t8 = sym.imp.sleep;
    0x00404848 move t9, t8                   |         t9 = t8;
    0x0040484c jalr t9                       |         t9 ();
    0x00404850 nop                           |         
    0x00404854 lw gp, 0x18(fp)               |         gp = *(arg_18h);
    0x00404858 lw t8, 0x2c(fp)               |         t8 = *(arg_2ch);
    0x0040485c addiu t8, t8, -1              |         t8 += -1;
    0x00404860 sw t8, 0x2c(fp)               |         *(arg_2ch) = t8;
    0x00404864 lw t8, -0x7fb4(gp)            |         t8 = *(gp);
    0x00404868 lbu t8, (t8)                  |         t8 = *(t8);
                                             |         if (t8 != 0) {
    0x0040486c beqz t8, 0x40487c             |             
    0x00404870 nop                           |             
    0x00404874 b 0x4048d0                    |             goto label_3;
    0x00404878 nop                           |             
                                             |         }
    0x0040487c lw t8, 0x2c(fp)               |         t8 = *(arg_2ch);
                                             |         if (t8 > 0) {
    0x00404880 blez t8, 0x404890             |             
    0x00404884 nop                           |             
    0x00404888 b 0x404a48                    |             goto label_2;
    0x0040488c nop                           |             
                                             |         }
    0x00404890 addiu t8, zero, 0x1e          |         t8 = 0x1e;
    0x00404894 sw t8, 0x2c(fp)               |         *(arg_2ch) = t8;
    0x00404898 lw t8, -0x7fbc(gp)            |         t8 = *(gp);
    0x0040489c lbu t8, (t8)                  |         t8 = *(t8);
    0x004048a0 xori t8, t8, 1                |         t8 ^= 1;
    0x004048a4 andi t8, t8, 0xff             |         t8 &= 0xff;
                                             |         if (t8 != 0) {
    0x004048a8 beqz t8, 0x4048d0             |             
    0x004048ac nop                           |             
    0x004048b0 addiu a0, zero, 0xf           |             a0 = 0xf;
    0x004048b4 lw t8, -0x7e8c(gp)            |             t8 = sym.imp.sleep;
    0x004048b8 move t9, t8                   |             t9 = t8;
    0x004048bc jalr t9                       |             t9 ();
    0x004048c0 nop                           |             
    0x004048c4 lw gp, 0x18(fp)               |             gp = *(arg_18h);
    0x004048c8 b 0x404a48                    |             goto label_2;
    0x004048cc nop                           |             
                                             |         }
                                             | label_3:
    0x004048d0 lw t8, -0x7fb4(gp)            |         t8 = *(gp);
    0x004048d4 lbu t8, (t8)                  |         t8 = *(t8);
                                             |         if (t8 != 0) {
    0x004048d8 beqz t8, 0x4048ec             |             
    0x004048dc nop                           |             
    0x004048e0 lw t8, -0x7fb4(gp)            |             t8 = *(gp);
    0x004048e4 sb zero, (t8)                 |             *(t8) = 0;
    0x004048e8 sw zero, 0x28(fp)             |             *(arg_28h) = 0;
                                             |         }
    0x004048ec lw a0, -0x7fb0(gp)            |         a0 = *(gp);
    0x004048f0 lw t8, -0x7eb8(gp)            |         t8 = sym.imp.pthread_mutex_lock;
    0x004048f4 move t9, t8                   |         t9 = t8;
    0x004048f8 jalr t9                       |         t9 ();
    0x004048fc nop                           |         
    0x00404900 lw gp, 0x18(fp)               |         gp = *(arg_18h);
    0x00404904 lw t8, -0x7fac(gp)            |         t8 = *(gp);
    0x00404908 lw t8, (t8)                   |         t8 = *(t8);
                                             |         if (t8 != 0) {
    0x0040490c beqz t8, 0x40491c             |             
    0x00404910 nop                           |             
    0x00404914 b 0x404a30                    |             goto label_4;
    0x00404918 nop                           |             
                                             |         }
    0x0040491c lw t8, -0x7fa8(gp)            |         t8 = sym.get_db_version__;
    0x00404920 move t9, t8                   |         t9 = t8;
    0x00404924 jalr t9                       |         t9 ();
    0x00404928 nop                           |         
    0x0040492c lw gp, 0x18(fp)               |         gp = *(arg_18h);
    0x00404930 sw v0, 0x38(fp)               |         *(arg_38h) = v0;
    0x00404934 lw v0, 0x38(fp)               |         v0 = *(arg_38h);
    0x00404938 lw t8, 0x28(fp)               |         t8 = *(arg_28h);
                                             |         if (v0 == t8) {
    0x0040493c bne v0, t8, 0x40494c          |             
    0x00404940 nop                           |             
    0x00404944 b 0x404a30                    |             goto label_4;
    0x00404948 nop                           |             
                                             |         }
    0x0040494c lw t8, 0x38(fp)               |         t8 = *(arg_38h);
    0x00404950 sw t8, 0x28(fp)               |         *(arg_28h) = t8;
    0x00404954 lw a0, 0x30(fp)               |         a0 = *(arg_30h);
    0x00404958 lw a1, -0x7fb8(gp)            |         a1 = sym.whitespace_cb_mxml_node_s__int_;
    0x0040495c lw t8, -0x7f50(gp)            |         t8 = sym.imp.mxmlSaveAllocString;
    0x00404960 move t9, t8                   |         t9 = t8;
    0x00404964 jalr t9                       |         t9 ();
    0x00404968 nop                           |         
    0x0040496c lw gp, 0x18(fp)               |         gp = *(arg_18h);
    0x00404970 move t8, v0                   |         t8 = v0;
    0x00404974 sw t8, 0x34(fp)               |         *(arg_34h) = t8;
    0x00404978 lw t8, 0x34(fp)               |         t8 = *(arg_34h);
                                             |         if (t8 == 0) {
    0x0040497c bnez t8, 0x40498c             |             
    0x00404980 nop                           |             
    0x00404984 b 0x404a30                    |             goto label_4;
    0x00404988 nop                           |             
                                             |         }
    0x0040498c lw a0, 0x34(fp)               |         a0 = *(arg_34h);
    0x00404990 lw t8, -0x7fdc(gp)            |         t8 = *(gp);
                                             |         /* str._tmp_db_db.xml */
    0x00404994 addiu a1, t8, 0x7c08          |         a1 = t8 + 0x7c08;
    0x00404998 lw t8, -0x7fa4(gp)            |         t8 = sym.saveDB_char__char_const_;
    0x0040499c move t9, t8                   |         t9 = t8;
    0x004049a0 jalr t9                       |         t9 ();
    0x004049a4 nop                           |         
    0x004049a8 lw gp, 0x18(fp)               |         gp = *(arg_18h);
    0x004049ac move t8, v0                   |         t8 = v0;
    0x004049b0 srl t8, t8, 0x1f              |         t8 >>= 0x1f;
    0x004049b4 andi t8, t8, 0xff             |         t8 &= 0xff;
                                             |         if (t8 != 0) {
    0x004049b8 beqz t8, 0x4049e0             |             
    0x004049bc nop                           |             
    0x004049c0 lw a0, 0x34(fp)               |             a0 = *(arg_34h);
    0x004049c4 lw t8, -0x7f3c(gp)            |             t8 = sym.imp.free;
    0x004049c8 move t9, t8                   |             t9 = t8;
    0x004049cc jalr t9                       |             t9 ();
    0x004049d0 nop                           |             
    0x004049d4 lw gp, 0x18(fp)               |             gp = *(arg_18h);
    0x004049d8 b 0x404a30                    |             goto label_4;
    0x004049dc nop                           |             
                                             |         }
    0x004049e0 lw a0, 0x34(fp)               |         a0 = *(arg_34h);
    0x004049e4 lw t8, -0x7f3c(gp)            |         t8 = sym.imp.free;
    0x004049e8 move t9, t8                   |         t9 = t8;
    0x004049ec jalr t9                       |         t9 ();
    0x004049f0 nop                           |         
    0x004049f4 lw gp, 0x18(fp)               |         gp = *(arg_18h);
    0x004049f8 lw t8, -0x7fa0(gp)            |         t8 = sym.XMLFlush__;
    0x004049fc move t9, t8                   |         t9 = t8;
    0x00404a00 jalr t9                       |         t9 ();
    0x00404a04 nop                           |         
    0x00404a08 lw gp, 0x18(fp)               |         gp = *(arg_18h);
    0x00404a0c lw t8, -0x7fdc(gp)            |         t8 = *(gp);
                                             |         /* str.flush_ */
    0x00404a10 addiu a0, t8, 0x7c18          |         a0 = t8 + 0x7c18;
    0x00404a14 lw t8, -0x7f54(gp)            |         t8 = sym.imp.puts;
    0x00404a18 move t9, t8                   |         t9 = t8;
    0x00404a1c jalr t9                       |         t9 ();
    0x00404a20 nop                           |         
    0x00404a24 lw gp, 0x18(fp)               |         gp = *(arg_18h);
    0x00404a28 lw t8, -0x7fbc(gp)            |         t8 = *(gp);
    0x00404a2c sb zero, (t8)                 |         *(t8) = 0;
                                             | label_4:
    0x00404a30 lw a0, -0x7fb0(gp)            |         a0 = *(gp);
    0x00404a34 lw t8, -0x7f30(gp)            |         t8 = sym.imp.pthread_mutex_unlock;
    0x00404a38 move t9, t8                   |         t9 = t8;
    0x00404a3c jalr t9                       |         t9 ();
    0x00404a40 nop                           |         
    0x00404a44 lw gp, 0x18(fp)               |         gp = *(arg_18h);
                                             | label_2:
    0x00404a48 lw t8, -0x7fac(gp)            |         t8 = *(gp);
    0x00404a4c lw t8, (t8)                   |         t8 = *(t8);
    0x00404a50 beqz t8, 0x404840             |         
                                             |     } while (t8 == 0);
    0x00404a54 nop                           |     
    0x00404a58 move a0, zero                 |     a0 = 0;
    0x00404a5c lw t8, -0x7f24(gp)            |     t8 = sym.imp.pthread_exit;
    0x00404a60 move t9, t8                   |     t9 = t8;
    0x00404a64 jalr t9                       |     t9 ();
    0x00404a68 nop                           |     
                                             | label_1:
    0x00404a6c lw t8, -0x7ee4(gp)            |     t8 = sym.imp.__stack_chk_fail;
    0x00404a70 move t9, t8                   |     t9 = t8;
    0x00404a74 jalr t9                       |     t9 ();
    0x00404a78 nop                           |     
                                             | label_0:
    0x00404a7c move sp, fp                   |     
    0x00404a80 lw ra, 0x4c(sp)               |     ra = *(var_4ch);
    0x00404a84 lw fp, 0x48(sp)               |     fp = *(var_48h);
    0x00404a88 lw s0, 0x44(sp)               |     s0 = *(var_44h);
    0x00404a8c addiu sp, sp, 0x50            |     
    0x00404a90 jr ra                         |     return v0;
    0x00404a94 nop                           |     
                                             | }
    ; assembly                                                                   | /* r2dec pseudo code output */
                                                                                 | /* /logs/firmware/patool_extraction/DUMP/mtdblock8_unblob_extracted/mtdblock8_extract/0-9650176.squashfs_v4_le_extract/sbin/dbd @ 0x402290 */
                                                                                 | #include <stdint.h>
                                                                                 |  
    ; (fcn) sym.generate_ack_char__DB_COMMAND__DB_RET_CODE__int__char_ ()        | void generate_ack_char_DB_COMMAND_DB_RET_CODE_int_char_ () {
                                                                                 |     /* generate_ack(char*, DB_COMMAND, DB_RET_CODE, int, char*) */
    0x00402290 lui gp, 2                                                         |     
    0x00402294 addiu gp, gp, -0x1260                                             |     
    0x00402298 addu gp, gp, t9                                                   |     gp += t9;
    0x0040229c addiu sp, sp, -0x50                                               |     
    0x004022a0 sw ra, 0x4c(sp)                                                   |     *(var_4ch) = ra;
    0x004022a4 sw fp, 0x48(sp)                                                   |     *(var_48h) = fp;
    0x004022a8 sw s0, 0x44(sp)                                                   |     *(var_44h) = s0;
    0x004022ac move fp, sp                                                       |     fp = sp;
    0x004022b0 sw gp, 0x18(sp)                                                   |     *(var_18h) = gp;
    0x004022b4 sw a0, 0x34(fp)                                                   |     *(arg_34h) = a0;
    0x004022b8 sw a1, 0x30(fp)                                                   |     *(arg_30h) = a1;
    0x004022bc sw a2, 0x2c(fp)                                                   |     *(arg_2ch) = a2;
    0x004022c0 sw a3, 0x28(fp)                                                   |     *(arg_28h) = a3;
    0x004022c4 lw t8, 0x60(fp)                                                   |     t8 = *(arg_60h);
    0x004022c8 sw t8, 0x24(fp)                                                   |     *(arg_24h) = t8;
    0x004022cc lw t8, -0x7e74(gp)                                                |     t8 = *((gp - 8093));
    0x004022d0 lw t8, (t8)                                                       |     t8 = *(t8);
    0x004022d4 sw t8, 0x3c(fp)                                                   |     *(arg_3ch) = t8;
    0x004022d8 lw t8, 0x34(fp)                                                   |     t8 = *(arg_34h);
    0x004022dc sw t8, 0x38(fp)                                                   |     *(arg_38h) = t8;
    0x004022e0 lw t8, 0x34(fp)                                                   |     t8 = *(arg_34h);
                                                                                 |     if (t8 == 0) {
    0x004022e4 bnez t8, 0x402358                                                 |         
    0x004022e8 nop                                                               |         
    0x004022ec lw t8, -0x7ee8(gp)                                                |         t8 = *((gp - 8122));
    0x004022f0 lw s0, (t8)                                                       |         s0 = *(t8);
    0x004022f4 lw t8, -0x7e70(gp)                                                |         t8 = sym.imp.__errno_location;
    0x004022f8 move t9, t8                                                       |         t9 = t8;
    0x004022fc jalr t9                                                           |         t9 ();
    0x00402300 nop                                                               |         
    0x00402304 lw gp, 0x18(fp)                                                   |         gp = *(arg_18h);
    0x00402308 move t8, v0                                                       |         t8 = v0;
    0x0040230c lw t8, (t8)                                                       |         t8 = *(t8);
    0x00402310 addiu v0, zero, 0x87                                              |         v0 = 0x87;
    0x00402314 sw v0, 0x10(sp)                                                   |         *(var_10h) = v0;
    0x00402318 sw t8, 0x14(sp)                                                   |         *(var_14h) = t8;
    0x0040231c move a0, s0                                                       |         a0 = s0;
    0x00402320 lw t8, -0x7fdc(gp)                                                |         t8 = *(gp);
                                                                                 |         /* str._s___s____L_d:_Invalid_para__errno___d_n */
    0x00402324 addiu a1, t8, 0x77f8                                              |         a1 = t8 + 0x77f8;
    0x00402328 lw t8, -0x7fdc(gp)                                                |         t8 = *(gp);
                                                                                 |         /* str.dbd.cpp */
    0x0040232c addiu a2, t8, 0x7824                                              |         a2 = t8 + 0x7824;
    0x00402330 lw t8, -0x7fdc(gp)                                                |         t8 = *(gp);
                                                                                 |         /* str.generate_ack */
    0x00402334 addiu a3, t8, 0x7ef4                                              |         a3 = t8 + 0x7ef4;
    0x00402338 lw t8, -0x7f1c(gp)                                                |         t8 = sym.imp.fprintf
    0x0040233c move t9, t8                                                       |         t9 = t8;
    0x00402340 jalr t9                                                           |         t9 ();
    0x00402344 nop                                                               |         
    0x00402348 lw gp, 0x18(fp)                                                   |         gp = *(arg_18h);
    0x0040234c addiu t8, zero, -7                                                |         t8 = -7;
    0x00402350 b 0x402534                                                        |         goto label_0;
    0x00402354 nop                                                               |         
                                                                                 |     }
    0x00402358 lw a0, 0x34(fp)                                                   |     a0 = *(arg_34h);
    0x0040235c move a1, zero                                                     |     a1 = 0;
    0x00402360 addiu a2, zero, 4                                                 |     a2 = 4;
    0x00402364 lw t8, -0x7f14(gp)                                                |     t8 = sym.imp.memset;
    0x00402368 move t9, t8                                                       |     t9 = t8;
    0x0040236c jalr t9                                                           |     t9 ();
    0x00402370 nop                                                               |     
    0x00402374 lw gp, 0x18(fp)                                                   |     gp = *(arg_18h);
    0x00402378 lw t8, 0x30(fp)                                                   |     t8 = *(arg_30h);
    0x0040237c sltiu v0, t8, 9                                                   |     v0 = (t8 < 9) ? 1 : 0;
                                                                                 |     if (v0 != 0) {
    0x00402380 beqz v0, 0x4024c4                                                 |         
    0x00402384 nop                                                               |         
    0x00402388 sll v0, t8, 2                                                     |         v0 = t8 << 2;
    0x0040238c lw t8, -0x7fdc(gp)                                                |         t8 = *(gp);
    0x00402390 addiu t8, t8, 0x7910                                              |         t8 += 0x7910;
    0x00402394 addu t8, v0, t8                                                   |         t8 = v0 + t8;
    0x00402398 lw t8, (t8)                                                       |         t8 = *(t8);
    0x0040239c addu t8, t8, gp                                                   |         t8 += gp;
    0x004023a0 jr t8                                                             |         t8 ();
    0x004023a4 nop                                                               |         
                                                                                 |     }
    0x004024c4 lw t8, -0x7ee8(gp)                                                |     t8 = *((gp - 8122));
    0x004024c8 lw s0, (t8)                                                       |     s0 = *(t8);
    0x004024cc lw t8, -0x7e70(gp)                                                |     t8 = sym.imp.__errno_location;
    0x004024d0 move t9, t8                                                       |     t9 = t8;
    0x004024d4 jalr t9                                                           |     t9 ();
    0x004024d8 nop                                                               |     
    0x004024dc lw gp, 0x18(fp)                                                   |     gp = *(arg_18h);
    0x004024e0 move t8, v0                                                       |     t8 = v0;
    0x004024e4 lw t8, (t8)                                                       |     t8 = *(t8);
    0x004024e8 addiu v0, zero, 0xab                                              |     v0 = 0xab;
    0x004024ec sw v0, 0x10(sp)                                                   |     *(var_10h) = v0;
    0x004024f0 sw t8, 0x14(sp)                                                   |     *(var_14h) = t8;
    0x004024f4 move a0, s0                                                       |     a0 = s0;
    0x004024f8 lw t8, -0x7fdc(gp)                                                |     t8 = *(gp);
                                                                                 |     /* str._s___s____L_d:_Invalid_command__errno___d_n */
    0x004024fc addiu a1, t8, 0x78e4                                              |     a1 = t8 + 0x78e4;
    0x00402500 lw t8, -0x7fdc(gp)                                                |     t8 = *(gp);
                                                                                 |     /* str.dbd.cpp */
    0x00402504 addiu a2, t8, 0x7824                                              |     a2 = t8 + 0x7824;
    0x00402508 lw t8, -0x7fdc(gp)                                                |     t8 = *(gp);
                                                                                 |     /* str.generate_ack */
    0x0040250c addiu a3, t8, 0x7ef4                                              |     a3 = t8 + 0x7ef4;
    0x00402510 lw t8, -0x7f1c(gp)                                                |     t8 = sym.imp.fprintf
    0x00402514 move t9, t8                                                       |     t9 = t8;
    0x00402518 jalr t9                                                           |     t9 ();
    0x0040251c nop                                                               |     
    0x00402520 lw gp, 0x18(fp)                                                   |     gp = *(arg_18h);
    0x00402524 addiu t8, zero, -0xa                                              |     t8 = -0xa;
    0x00402528 b 0x402534                                                        |     goto label_0;
    0x0040252c nop                                                               |     
                                                                                 | label_0:
    0x00402534 move v0, t8                                                       |     v0 = t8;
    0x00402538 lw t8, -0x7e74(gp)                                                |     t8 = *((gp - 8093));
    0x0040253c lw v1, 0x3c(fp)                                                   |     v1 = *(arg_3ch);
    0x00402540 lw t8, (t8)                                                       |     t8 = *(t8);
                                                                                 |     if (v1 != t8) {
    0x00402544 beq v1, t8, 0x40255c                                              |         
    0x00402548 nop                                                               |         
    0x0040254c lw t8, -0x7ee4(gp)                                                |         t8 = sym.imp.__stack_chk_fail;
    0x00402550 move t9, t8                                                       |         t9 = t8;
    0x00402554 jalr t9                                                           |         t9 ();
    0x00402558 nop                                                               |         
                                                                                 |     }
    0x0040255c move sp, fp                                                       |     
    0x00402560 lw ra, 0x4c(sp)                                                   |     ra = *(var_4ch);
    0x00402564 lw fp, 0x48(sp)                                                   |     fp = *(var_48h);
    0x00402568 lw s0, 0x44(sp)                                                   |     s0 = *(var_44h);
    0x0040256c addiu sp, sp, 0x50                                                |     
    0x00402570 jr ra                                                             |     return v1;
    0x00402574 nop                                                               |     
                                                                                 | }
    ; assembly                                               | /* r2dec pseudo code output */
                                                             | /* /logs/firmware/patool_extraction/DUMP/mtdblock8_unblob_extracted/mtdblock8_extract/0-9650176.squashfs_v4_le_extract/sbin/dbd @ 0x402d74 */
                                                             | #include <stdint.h>
                                                             |  
    ; (fcn) sym.handle_DBGET_mxml_node_s__int__char_ ()      | void handle_DBGET_mxml_node_s_int_char_ () {
                                                             |     /* handle_DBGET(mxml_node_s*, int, char*) */
    0x00402d74 lui gp, 2                                     |     
    0x00402d78 addiu gp, gp, -0x1d44                         |     
    0x00402d7c addu gp, gp, t9                               |     gp += t9;
    0x00402d80 addiu sp, sp, -0x1f98                         |     
    0x00402d84 sw ra, 0x1f94(sp)                             |     *(var_1f94h) = ra;
    0x00402d88 sw fp, 0x1f90(sp)                             |     *(var_1f90h) = fp;
    0x00402d8c sw s0, 0x1f8c(sp)                             |     *(var_1f8ch) = s0;
    0x00402d90 move fp, sp                                   |     fp = sp;
    0x00402d94 sw gp, 0x18(sp)                               |     *(var_18h) = gp;
    0x00402d98 sw a0, 0x2c(fp)                               |     *(arg_2ch) = a0;
    0x00402d9c sw a1, 0x28(fp)                               |     *(arg_28h) = a1;
    0x00402da0 sw a2, 0x24(fp)                               |     *(arg_24h) = a2;
    0x00402da4 lw t8, -0x7e74(gp)                            |     t8 = *((gp - 8093));
    0x00402da8 lw t8, (t8)                                   |     t8 = *(t8);
    0x00402dac sw t8, 0x1f84(fp)                             |     *(arg_1f84h) = t8;
    0x00402db0 sb zero, 0x33(fp)                             |     *(arg_33h) = 0;
    0x00402db4 sw zero, 0x38(fp)                             |     *(arg_38h) = 0;
    0x00402db8 sw zero, 0x3c(fp)                             |     *(arg_3ch) = 0;
    0x00402dbc addiu t8, zero, -1                            |     t8 = -1;
    0x00402dc0 sw t8, 0x34(fp)                               |     *(arg_34h) = t8;
    0x00402dc4 sw zero, 0x40(fp)                             |     *(arg_40h) = 0;
    0x00402dc8 lw t8, 0x24(fp)                               |     t8 = *(arg_24h);
                                                             |     if (t8 == 0) {
    0x00402dcc bnez t8, 0x402e40                             |         
    0x00402dd0 nop                                           |         
    0x00402dd4 lw t8, -0x7ee8(gp)                            |         t8 = *((gp - 8122));
    0x00402dd8 lw s0, (t8)                                   |         s0 = *(t8);
    0x00402ddc lw t8, -0x7e70(gp)                            |         t8 = sym.imp.__errno_location;
    0x00402de0 move t9, t8                                   |         t9 = t8;
    0x00402de4 jalr t9                                       |         t9 ();
    0x00402de8 nop                                           |         
    0x00402dec lw gp, 0x18(fp)                               |         gp = *(arg_18h);
    0x00402df0 move t8, v0                                   |         t8 = v0;
    0x00402df4 lw t8, (t8)                                   |         t8 = *(t8);
    0x00402df8 addiu v0, zero, 0x110                         |         v0 = 0x110;
    0x00402dfc sw v0, 0x10(sp)                               |         *(var_10h) = v0;
    0x00402e00 sw t8, 0x14(sp)                               |         *(var_14h) = t8;
    0x00402e04 move a0, s0                                   |         a0 = s0;
    0x00402e08 lw t8, -0x7fdc(gp)                            |         t8 = *(gp);
                                                             |         /* str._s___s____L_d:_Invalid_para__errno___d_n */
    0x00402e0c addiu a1, t8, 0x77f8                          |         a1 = t8 + 0x77f8;
    0x00402e10 lw t8, -0x7fdc(gp)                            |         t8 = *(gp);
                                                             |         /* str.dbd.cpp */
    0x00402e14 addiu a2, t8, 0x7824                          |         a2 = t8 + 0x7824;
    0x00402e18 lw t8, -0x7fdc(gp)                            |         t8 = *(gp);
                                                             |         /* str.handle_DBGET */
    0x00402e1c addiu a3, t8, 0x7f1c                          |         a3 = t8 + 0x7f1c;
    0x00402e20 lw t8, -0x7f1c(gp)                            |         t8 = sym.imp.fprintf
    0x00402e24 move t9, t8                                   |         t9 = t8;
    0x00402e28 jalr t9                                       |         t9 ();
    0x00402e2c nop                                           |         
    0x00402e30 lw gp, 0x18(fp)                               |         gp = *(arg_18h);
    0x00402e34 addiu t8, zero, -7                            |         t8 = -7;
    0x00402e38 b 0x403230                                    |         goto label_0;
    0x00402e3c nop                                           |         
                                                             |     }
    0x00402e40 lw t8, 0x24(fp)                               |     t8 = *(arg_24h);
    0x00402e44 sw t8, 0x40(fp)                               |     *(arg_40h) = t8;
    0x00402e48 lw t8, 0x24(fp)                               |     t8 = *(arg_24h);
    0x00402e4c addiu t8, t8, 0xc                             |     t8 += 0xc;
    0x00402e50 sw t8, 0x38(fp)                               |     *(arg_38h) = t8;
    0x00402e54 lw t8, 0x40(fp)                               |     t8 = *(arg_40h);
    0x00402e58 lw t8, 4(t8)                                  |     t8 = *((t8 + 1));
    0x00402e5c sw t8, 0x3c(fp)                               |     *(arg_3ch) = t8;
    0x00402e60 addiu v0, fp, 0x44                            |     v0 = fp + 0x44;
    0x00402e64 addiu t8, fp, 0x33                            |     t8 = fp + 0x33;
    0x00402e68 lw a0, 0x38(fp)                               |     a0 = *(arg_38h);
    0x00402e6c lw a1, 0x3c(fp)                               |     a1 = *(arg_3ch);
    0x00402e70 move a2, v0                                   |     a2 = v0;
    0x00402e74 move a3, t8                                   |     a3 = t8;
    0x00402e78 lw t8, -0x7fd0(gp)                            |     t8 = sym.parse_string_char__int__char_____10__32___char_;
    0x00402e7c move t9, t8                                   |     t9 = t8;
    0x00402e80 jalr t9                                       |     t9 ();
    0x00402e84 nop                                           |     
    0x00402e88 lw gp, 0x18(fp)                               |     gp = *(arg_18h);
    0x00402e8c move t8, v0                                   |     t8 = v0;
    0x00402e90 srl t8, t8, 0x1f                              |     t8 >>= 0x1f;
    0x00402e94 andi t8, t8, 0xff                             |     t8 &= 0xff;
                                                             |     if (t8 != 0) {
    0x00402e98 beqz t8, 0x402fc8                             |         
    0x00402e9c nop                                           |         
    0x00402ea0 lw t8, -0x7ee8(gp)                            |         t8 = *((gp - 8122));
    0x00402ea4 lw s0, (t8)                                   |         s0 = *(t8);
    0x00402ea8 lw t8, -0x7e70(gp)                            |         t8 = sym.imp.__errno_location;
    0x00402eac move t9, t8                                   |         t9 = t8;
    0x00402eb0 jalr t9                                       |         t9 ();
    0x00402eb4 nop                                           |         
    0x00402eb8 lw gp, 0x18(fp)                               |         gp = *(arg_18h);
    0x00402ebc move t8, v0                                   |         t8 = v0;
    0x00402ec0 lw t8, (t8)                                   |         t8 = *(t8);
    0x00402ec4 addiu v0, zero, 0x118                         |         v0 = 0x118;
    0x00402ec8 sw v0, 0x10(sp)                               |         *(var_10h) = v0;
    0x00402ecc sw t8, 0x14(sp)                               |         *(var_14h) = t8;
    0x00402ed0 move a0, s0                                   |         a0 = s0;
    0x00402ed4 lw t8, -0x7fdc(gp)                            |         t8 = *(gp);
                                                             |         /* str._s___s____L_d:_Parse_xml_failed__errno___d_n */
    0x00402ed8 addiu a1, t8, 0x7934                          |         a1 = t8 + 0x7934;
    0x00402edc lw t8, -0x7fdc(gp)                            |         t8 = *(gp);
                                                             |         /* str.dbd.cpp */
    0x00402ee0 addiu a2, t8, 0x7824                          |         a2 = t8 + 0x7824;
    0x00402ee4 lw t8, -0x7fdc(gp)                            |         t8 = *(gp);
                                                             |         /* str.handle_DBGET */
    0x00402ee8 addiu a3, t8, 0x7f1c                          |         a3 = t8 + 0x7f1c;
    0x00402eec lw t8, -0x7f1c(gp)                            |         t8 = sym.imp.fprintf
    0x00402ef0 move t9, t8                                   |         t9 = t8;
    0x00402ef4 jalr t9                                       |         t9 ();
    0x00402ef8 nop                                           |         
    0x00402efc lw gp, 0x18(fp)                               |         gp = *(arg_18h);
    0x00402f00 addiu t8, fp, 0xf84                           |         t8 = fp + 0xf84;
    0x00402f04 sw zero, 0x10(sp)                             |         *(var_10h) = 0;
    0x00402f08 move a0, t8                                   |         a0 = t8;
    0x00402f0c addiu a1, zero, 2                             |         a1 = 2;
    0x00402f10 addiu a2, zero, -1                            |         a2 = -1;
    0x00402f14 move a3, zero                                 |         a3 = 0;
    0x00402f18 lw t8, -0x7fcc(gp)                            |         t8 = sym.generate_ack_char__DB_COMMAND__DB_RET_CODE__int__char_;
    0x00402f1c move t9, t8                                   |         t9 = t8;
    0x00402f20 jalr t9                                       |         t9 ();
    0x00402f24 nop                                           |         
    0x00402f28 lw gp, 0x18(fp)                               |         gp = *(arg_18h);
    0x00402f2c addiu t8, fp, 0xf84                           |         t8 = fp + 0xf84;
    0x00402f30 lw a0, 0x28(fp)                               |         a0 = *(arg_28h);
    0x00402f34 move a1, t8                                   |         a1 = t8;
    0x00402f38 lw t8, -0x7f40(gp)                            |         t8 = sym.imp.ack_send;
    0x00402f3c move t9, t8                                   |         t9 = t8;
    0x00402f40 jalr t9                                       |         t9 ();
    0x00402f44 nop                                           |         
    0x00402f48 lw gp, 0x18(fp)                               |         gp = *(arg_18h);
    0x00402f4c move t8, v0                                   |         t8 = v0;
    0x00402f50 srl t8, t8, 0x1f                              |         t8 >>= 0x1f;
    0x00402f54 andi t8, t8, 0xff                             |         t8 &= 0xff;
                                                             |         if (t8 != 0) {
    0x00402f58 beqz t8, 0x402fc0                             |             
    0x00402f5c nop                                           |             
    0x00402f60 lw t8, -0x7ee8(gp)                            |             t8 = *((gp - 8122));
    0x00402f64 lw s0, (t8)                                   |             s0 = *(t8);
    0x00402f68 lw t8, -0x7e70(gp)                            |             t8 = sym.imp.__errno_location;
    0x00402f6c move t9, t8                                   |             t9 = t8;
    0x00402f70 jalr t9                                       |             t9 ();
    0x00402f74 nop                                           |             
    0x00402f78 lw gp, 0x18(fp)                               |             gp = *(arg_18h);
    0x00402f7c move t8, v0                                   |             t8 = v0;
    0x00402f80 lw t8, (t8)                                   |             t8 = *(t8);
    0x00402f84 addiu v0, zero, 0x11b                         |             v0 = 0x11b;
    0x00402f88 sw v0, 0x10(sp)                               |             *(var_10h) = v0;
    0x00402f8c sw t8, 0x14(sp)                               |             *(var_14h) = t8;
    0x00402f90 move a0, s0                                   |             a0 = s0;
    0x00402f94 lw t8, -0x7fdc(gp)                            |             t8 = *(gp);
                                                             |             /* str._s___s____L_d:_Send_ack_error__errno___d_n */
    0x00402f98 addiu a1, t8, 0x7964                          |             a1 = t8 + 0x7964;
    0x00402f9c lw t8, -0x7fdc(gp)                            |             t8 = *(gp);
                                                             |             /* str.dbd.cpp */
    0x00402fa0 addiu a2, t8, 0x7824                          |             a2 = t8 + 0x7824;
    0x00402fa4 lw t8, -0x7fdc(gp)                            |             t8 = *(gp);
                                                             |             /* str.handle_DBGET */
    0x00402fa8 addiu a3, t8, 0x7f1c                          |             a3 = t8 + 0x7f1c;
    0x00402fac lw t8, -0x7f1c(gp)                            |             t8 = sym.imp.fprintf
    0x00402fb0 move t9, t8                                   |             t9 = t8;
    0x00402fb4 jalr t9                                       |             t9 ();
    0x00402fb8 nop                                           |             
    0x00402fbc lw gp, 0x18(fp)                               |             gp = *(arg_18h);
                                                             |         }
    0x00402fc0 b 0x40322c                                    |         goto label_1;
    0x00402fc4 nop                                           |         
                                                             |     }
    0x00402fc8 lb t8, 0x33(fp)                               |     t8 = *(arg_33h);
    0x00402fcc move v0, t8                                   |     v0 = t8;
    0x00402fd0 addiu v1, fp, 0x44                            |     v1 = fp + 0x44;
    0x00402fd4 addiu t8, fp, 0x184                           |     t8 = fp + 0x184;
    0x00402fd8 lw a0, 0x2c(fp)                               |     a0 = *(arg_2ch);
    0x00402fdc move a1, v1                                   |     a1 = v1;
    0x00402fe0 move a2, v0                                   |     a2 = v0;
    0x00402fe4 move a3, t8                                   |     a3 = t8;
    0x00402fe8 lw t8, -0x7fc4(gp)                            |     t8 = sym.xml_get_mxml_node_s__char_const_____32___char__char_;
    0x00402fec move t9, t8                                   |     t9 = t8;
    0x00402ff0 jalr t9                                       |     t9 ();
    0x00402ff4 nop                                           |     
    0x00402ff8 lw gp, 0x18(fp)                               |     gp = *(arg_18h);
    0x00402ffc move t8, v0                                   |     t8 = v0;
    0x00403000 srl t8, t8, 0x1f                              |     t8 >>= 0x1f;
    0x00403004 andi t8, t8, 0xff                             |     t8 &= 0xff;
                                                             |     if (t8 != 0) {
    0x00403008 beqz t8, 0x403138                             |         
    0x0040300c nop                                           |         
    0x00403010 lw t8, -0x7ee8(gp)                            |         t8 = *((gp - 8122));
    0x00403014 lw s0, (t8)                                   |         s0 = *(t8);
    0x00403018 lw t8, -0x7e70(gp)                            |         t8 = sym.imp.__errno_location;
    0x0040301c move t9, t8                                   |         t9 = t8;
    0x00403020 jalr t9                                       |         t9 ();
    0x00403024 nop                                           |         
    0x00403028 lw gp, 0x18(fp)                               |         gp = *(arg_18h);
    0x0040302c move t8, v0                                   |         t8 = v0;
    0x00403030 lw t8, (t8)                                   |         t8 = *(t8);
    0x00403034 addiu v0, zero, 0x121                         |         v0 = 0x121;
    0x00403038 sw v0, 0x10(sp)                               |         *(var_10h) = v0;
    0x0040303c sw t8, 0x14(sp)                               |         *(var_14h) = t8;
    0x00403040 move a0, s0                                   |         a0 = s0;
    0x00403044 lw t8, -0x7fdc(gp)                            |         t8 = *(gp);
                                                             |         /* str._s___s____L_d:_Get_xml_failed__errno___d_n */
    0x00403048 addiu a1, t8, 0x79bc                          |         a1 = t8 + 0x79bc;
    0x0040304c lw t8, -0x7fdc(gp)                            |         t8 = *(gp);
                                                             |         /* str.dbd.cpp */
    0x00403050 addiu a2, t8, 0x7824                          |         a2 = t8 + 0x7824;
    0x00403054 lw t8, -0x7fdc(gp)                            |         t8 = *(gp);
                                                             |         /* str.handle_DBGET */
    0x00403058 addiu a3, t8, 0x7f1c                          |         a3 = t8 + 0x7f1c;
    0x0040305c lw t8, -0x7f1c(gp)                            |         t8 = sym.imp.fprintf
    0x00403060 move t9, t8                                   |         t9 = t8;
    0x00403064 jalr t9                                       |         t9 ();
    0x00403068 nop                                           |         
    0x0040306c lw gp, 0x18(fp)                               |         gp = *(arg_18h);
    0x00403070 addiu t8, fp, 0xf84                           |         t8 = fp + 0xf84;
    0x00403074 sw zero, 0x10(sp)                             |         *(var_10h) = 0;
    0x00403078 move a0, t8                                   |         a0 = t8;
    0x0040307c addiu a1, zero, 2                             |         a1 = 2;
    0x00403080 addiu a2, zero, -1                            |         a2 = -1;
    0x00403084 move a3, zero                                 |         a3 = 0;
    0x00403088 lw t8, -0x7fcc(gp)                            |         t8 = sym.generate_ack_char__DB_COMMAND__DB_RET_CODE__int__char_;
    0x0040308c move t9, t8                                   |         t9 = t8;
    0x00403090 jalr t9                                       |         t9 ();
    0x00403094 nop                                           |         
    0x00403098 lw gp, 0x18(fp)                               |         gp = *(arg_18h);
    0x0040309c addiu t8, fp, 0xf84                           |         t8 = fp + 0xf84;
    0x004030a0 lw a0, 0x28(fp)                               |         a0 = *(arg_28h);
    0x004030a4 move a1, t8                                   |         a1 = t8;
    0x004030a8 lw t8, -0x7f40(gp)                            |         t8 = sym.imp.ack_send;
    0x004030ac move t9, t8                                   |         t9 = t8;
    0x004030b0 jalr t9                                       |         t9 ();
    0x004030b4 nop                                           |         
    0x004030b8 lw gp, 0x18(fp)                               |         gp = *(arg_18h);
    0x004030bc move t8, v0                                   |         t8 = v0;
    0x004030c0 srl t8, t8, 0x1f                              |         t8 >>= 0x1f;
    0x004030c4 andi t8, t8, 0xff                             |         t8 &= 0xff;
                                                             |         if (t8 != 0) {
    0x004030c8 beqz t8, 0x403130                             |             
    0x004030cc nop                                           |             
    0x004030d0 lw t8, -0x7ee8(gp)                            |             t8 = *((gp - 8122));
    0x004030d4 lw s0, (t8)                                   |             s0 = *(t8);
    0x004030d8 lw t8, -0x7e70(gp)                            |             t8 = sym.imp.__errno_location;
    0x004030dc move t9, t8                                   |             t9 = t8;
    0x004030e0 jalr t9                                       |             t9 ();
    0x004030e4 nop                                           |             
    0x004030e8 lw gp, 0x18(fp)                               |             gp = *(arg_18h);
    0x004030ec move t8, v0                                   |             t8 = v0;
    0x004030f0 lw t8, (t8)                                   |             t8 = *(t8);
    0x004030f4 addiu v0, zero, 0x124                         |             v0 = 0x124;
    0x004030f8 sw v0, 0x10(sp)                               |             *(var_10h) = v0;
    0x004030fc sw t8, 0x14(sp)                               |             *(var_14h) = t8;
    0x00403100 move a0, s0                                   |             a0 = s0;
    0x00403104 lw t8, -0x7fdc(gp)                            |             t8 = *(gp);
                                                             |             /* str._s___s____L_d:_Send_ack_error__errno___d_n */
    0x00403108 addiu a1, t8, 0x7964                          |             a1 = t8 + 0x7964;
    0x0040310c lw t8, -0x7fdc(gp)                            |             t8 = *(gp);
                                                             |             /* str.dbd.cpp */
    0x00403110 addiu a2, t8, 0x7824                          |             a2 = t8 + 0x7824;
    0x00403114 lw t8, -0x7fdc(gp)                            |             t8 = *(gp);
                                                             |             /* str.handle_DBGET */
    0x00403118 addiu a3, t8, 0x7f1c                          |             a3 = t8 + 0x7f1c;
    0x0040311c lw t8, -0x7f1c(gp)                            |             t8 = sym.imp.fprintf
    0x00403120 move t9, t8                                   |             t9 = t8;
    0x00403124 jalr t9                                       |             t9 ();
    0x00403128 nop                                           |             
    0x0040312c lw gp, 0x18(fp)                               |             gp = *(arg_18h);
                                                             |         }
    0x00403130 b 0x40322c                                    |         goto label_1;
    0x00403134 nop                                           |         
                                                             |     }
    0x00403138 addiu t8, fp, 0x184                           |     t8 = fp + 0x184;
    0x0040313c move a0, t8                                   |     a0 = t8;
    0x00403140 lw t8, -0x7eb4(gp)                            |     t8 = sym.imp.strlen;
    0x00403144 move t9, t8                                   |     t9 = t8;
    0x00403148 jalr t9                                       |     t9 ();
    0x0040314c nop                                           |     
    0x00403150 lw gp, 0x18(fp)                               |     gp = *(arg_18h);
    0x00403154 move t8, v0                                   |     t8 = v0;
    0x00403158 addiu t8, t8, 1                               |     t8++;
    0x0040315c addiu v0, fp, 0xf84                           |     v0 = fp + 0xf84;
    0x00403160 addiu v1, fp, 0x184                           |     v1 = fp + 0x184;
    0x00403164 sw v1, 0x10(sp)                               |     *(var_10h) = v1;
    0x00403168 move a0, v0                                   |     a0 = v0;
    0x0040316c addiu a1, zero, 2                             |     a1 = 2;
    0x00403170 move a2, zero                                 |     a2 = 0;
    0x00403174 move a3, t8                                   |     a3 = t8;
    0x00403178 lw t8, -0x7fcc(gp)                            |     t8 = sym.generate_ack_char__DB_COMMAND__DB_RET_CODE__int__char_;
    0x0040317c move t9, t8                                   |     t9 = t8;
    0x00403180 jalr t9                                       |     t9 ();
    0x00403184 nop                                           |     
    0x00403188 lw gp, 0x18(fp)                               |     gp = *(arg_18h);
    0x0040318c addiu t8, fp, 0xf84                           |     t8 = fp + 0xf84;
    0x00403190 lw a0, 0x28(fp)                               |     a0 = *(arg_28h);
    0x00403194 move a1, t8                                   |     a1 = t8;
    0x00403198 lw t8, -0x7f40(gp)                            |     t8 = sym.imp.ack_send;
    0x0040319c move t9, t8                                   |     t9 = t8;
    0x004031a0 jalr t9                                       |     t9 ();
    0x004031a4 nop                                           |     
    0x004031a8 lw gp, 0x18(fp)                               |     gp = *(arg_18h);
    0x004031ac move t8, v0                                   |     t8 = v0;
    0x004031b0 srl t8, t8, 0x1f                              |     t8 >>= 0x1f;
    0x004031b4 andi t8, t8, 0xff                             |     t8 &= 0xff;
                                                             |     if (t8 != 0) {
    0x004031b8 beqz t8, 0x403228                             |         
    0x004031bc nop                                           |         
    0x004031c0 lw t8, -0x7ee8(gp)                            |         t8 = *((gp - 8122));
    0x004031c4 lw s0, (t8)                                   |         s0 = *(t8);
    0x004031c8 lw t8, -0x7e70(gp)                            |         t8 = sym.imp.__errno_location;
    0x004031cc move t9, t8                                   |         t9 = t8;
    0x004031d0 jalr t9                                       |         t9 ();
    0x004031d4 nop                                           |         
    0x004031d8 lw gp, 0x18(fp)                               |         gp = *(arg_18h);
    0x004031dc move t8, v0                                   |         t8 = v0;
    0x004031e0 lw t8, (t8)                                   |         t8 = *(t8);
    0x004031e4 addiu v0, zero, 0x12c                         |         v0 = 0x12c;
    0x004031e8 sw v0, 0x10(sp)                               |         *(var_10h) = v0;
    0x004031ec sw t8, 0x14(sp)                               |         *(var_14h) = t8;
    0x004031f0 move a0, s0                                   |         a0 = s0;
    0x004031f4 lw t8, -0x7fdc(gp)                            |         t8 = *(gp);
                                                             |         /* str._s___s____L_d:_Send_ack_error__errno___d_n */
    0x004031f8 addiu a1, t8, 0x7964                          |         a1 = t8 + 0x7964;
    0x004031fc lw t8, -0x7fdc(gp)                            |         t8 = *(gp);
                                                             |         /* str.dbd.cpp */
    0x00403200 addiu a2, t8, 0x7824                          |         a2 = t8 + 0x7824;
    0x00403204 lw t8, -0x7fdc(gp)                            |         t8 = *(gp);
                                                             |         /* str.handle_DBGET */
    0x00403208 addiu a3, t8, 0x7f1c                          |         a3 = t8 + 0x7f1c;
    0x0040320c lw t8, -0x7f1c(gp)                            |         t8 = sym.imp.fprintf
    0x00403210 move t9, t8                                   |         t9 = t8;
    0x00403214 jalr t9                                       |         t9 ();
    0x00403218 nop                                           |         
    0x0040321c lw gp, 0x18(fp)                               |         gp = *(arg_18h);
    0x00403220 addiu t8, zero, -6                            |         t8 = -6;
    0x00403224 sw t8, 0x34(fp)                               |         *(arg_34h) = t8;
                                                             |     }
    0x00403228 sw zero, 0x34(fp)                             |     *(arg_34h) = 0;
                                                             | label_1:
    0x0040322c lw t8, 0x34(fp)                               |     t8 = *(arg_34h);
                                                             | label_0:
    0x00403230 move v0, t8                                   |     v0 = t8;
    0x00403234 lw t8, -0x7e74(gp)                            |     t8 = *((gp - 8093));
    0x00403238 lw v1, 0x1f84(fp)                             |     v1 = *(arg_1f84h);
    0x0040323c lw t8, (t8)                                   |     t8 = *(t8);
                                                             |     if (v1 != t8) {
    0x00403240 beq v1, t8, 0x403258                          |         
    0x00403244 nop                                           |         
    0x00403248 lw t8, -0x7ee4(gp)                            |         t8 = sym.imp.__stack_chk_fail;
    0x0040324c move t9, t8                                   |         t9 = t8;
    0x00403250 jalr t9                                       |         t9 ();
    0x00403254 nop                                           |         
                                                             |     }
    0x00403258 move sp, fp                                   |     
    0x0040325c lw ra, 0x1f94(sp)                             |     ra = *(var_1f94h);
    0x00403260 lw fp, 0x1f90(sp)                             |     fp = *(var_1f90h);
    0x00403264 lw s0, 0x1f8c(sp)                             |     s0 = *(var_1f8ch);
    0x00403268 addiu sp, sp, 0x1f98                          |     
    0x0040326c jr ra                                         |     return v1;
    0x00403270 nop                                           |     
                                                             | }
    ; assembly                                                       | /* r2dec pseudo code output */
                                                                     | /* /logs/firmware/patool_extraction/DUMP/mtdblock8_unblob_extracted/mtdblock8_extract/0-9650176.squashfs_v4_le_extract/sbin/dbd @ 0x4066b4 */
                                                                     | #include <stdint.h>
                                                                     |  
    ; (fcn) sym.handle_DBRESTORE_TP_mxml_node_s__int__char_ ()       | void handle_DBRESTORE_TP_mxml_node_s_int_char_ () {
                                                                     |     /* handle_DBRESTORE_TP(mxml_node_s*, int, char*) */
    0x004066b4 lui gp, 2                                             |     
    0x004066b8 addiu gp, gp, -0x5684                                 |     
    0x004066bc addu gp, gp, t9                                       |     gp += t9;
    0x004066c0 addiu sp, sp, -0x1198                                 |     
    0x004066c4 sw ra, 0x1194(sp)                                     |     *(var_1194h) = ra;
    0x004066c8 sw fp, 0x1190(sp)                                     |     *(var_1190h) = fp;
    0x004066cc sw s0, 0x118c(sp)                                     |     *(var_118ch) = s0;
    0x004066d0 move fp, sp                                           |     fp = sp;
    0x004066d4 sw gp, 0x18(sp)                                       |     *(var_18h) = gp;
    0x004066d8 sw a0, 0x2c(fp)                                       |     *(arg_2ch) = a0;
    0x004066dc sw a1, 0x28(fp)                                       |     *(arg_28h) = a1;
    0x004066e0 sw a2, 0x24(fp)                                       |     *(arg_24h) = a2;
    0x004066e4 lw t8, -0x7e74(gp)                                    |     t8 = *((gp - 8093));
    0x004066e8 lw t8, (t8)                                           |     t8 = *(t8);
    0x004066ec sw t8, 0x1184(fp)                                     |     *(arg_1184h) = t8;
    0x004066f0 sb zero, 0x33(fp)                                     |     *(arg_33h) = 0;
    0x004066f4 sw zero, 0x38(fp)                                     |     *(arg_38h) = 0;
    0x004066f8 sw zero, 0x3c(fp)                                     |     *(arg_3ch) = 0;
    0x004066fc addiu t8, zero, -1                                    |     t8 = -1;
    0x00406700 sw t8, 0x34(fp)                                       |     *(arg_34h) = t8;
    0x00406704 sw zero, 0x40(fp)                                     |     *(arg_40h) = 0;
    0x00406708 lw t8, 0x24(fp)                                       |     t8 = *(arg_24h);
                                                                     |     if (t8 == 0) {
    0x0040670c bnez t8, 0x406780                                     |         
    0x00406710 nop                                                   |         
    0x00406714 lw t8, -0x7ee8(gp)                                    |         t8 = *((gp - 8122));
    0x00406718 lw s0, (t8)                                           |         s0 = *(t8);
    0x0040671c lw t8, -0x7e70(gp)                                    |         t8 = sym.imp.__errno_location;
    0x00406720 move t9, t8                                           |         t9 = t8;
    0x00406724 jalr t9                                               |         t9 ();
    0x00406728 nop                                                   |         
    0x0040672c lw gp, 0x18(fp)                                       |         gp = *(arg_18h);
    0x00406730 move t8, v0                                           |         t8 = v0;
    0x00406734 lw t8, (t8)                                           |         t8 = *(t8);
    0x00406738 addiu v0, zero, 0x3ca                                 |         v0 = 0x3ca;
    0x0040673c sw v0, 0x10(sp)                                       |         *(var_10h) = v0;
    0x00406740 sw t8, 0x14(sp)                                       |         *(var_14h) = t8;
    0x00406744 move a0, s0                                           |         a0 = s0;
    0x00406748 lw t8, -0x7fdc(gp)                                    |         t8 = *(gp);
                                                                     |         /* str._s___s____L_d:_Invalid_para__errno___d_n */
    0x0040674c addiu a1, t8, 0x77f8                                  |         a1 = t8 + 0x77f8;
    0x00406750 lw t8, -0x7fdc(gp)                                    |         t8 = *(gp);
                                                                     |         /* str.dbd.cpp */
    0x00406754 addiu a2, t8, 0x7824                                  |         a2 = t8 + 0x7824;
    0x00406758 lw t8, -0x7fdc(gp)                                    |         t8 = *(gp);
                                                                     |         /* str.handle_DBRESTORE_TP */
    0x0040675c addiu a3, t8, 0x7fac                                  |         a3 = t8 + 0x7fac;
    0x00406760 lw t8, -0x7f1c(gp)                                    |         t8 = sym.imp.fprintf
    0x00406764 move t9, t8                                           |         t9 = t8;
    0x00406768 jalr t9                                               |         t9 ();
    0x0040676c nop                                                   |         
    0x00406770 lw gp, 0x18(fp)                                       |         gp = *(arg_18h);
    0x00406774 addiu t8, zero, -7                                    |         t8 = -7;
    0x00406778 b 0x406b34                                            |         goto label_0;
    0x0040677c nop                                                   |         
                                                                     |     }
    0x00406780 lw t8, 0x24(fp)                                       |     t8 = *(arg_24h);
    0x00406784 sw t8, 0x40(fp)                                       |     *(arg_40h) = t8;
    0x00406788 lw t8, 0x24(fp)                                       |     t8 = *(arg_24h);
    0x0040678c addiu t8, t8, 0xc                                     |     t8 += 0xc;
    0x00406790 sw t8, 0x38(fp)                                       |     *(arg_38h) = t8;
    0x00406794 lw t8, 0x40(fp)                                       |     t8 = *(arg_40h);
    0x00406798 lw t8, 4(t8)                                          |     t8 = *((t8 + 1));
    0x0040679c sw t8, 0x3c(fp)                                       |     *(arg_3ch) = t8;
    0x004067a0 addiu v0, fp, 0x44                                    |     v0 = fp + 0x44;
    0x004067a4 addiu t8, fp, 0x33                                    |     t8 = fp + 0x33;
    0x004067a8 lw a0, 0x38(fp)                                       |     a0 = *(arg_38h);
    0x004067ac lw a1, 0x3c(fp)                                       |     a1 = *(arg_3ch);
    0x004067b0 move a2, v0                                           |     a2 = v0;
    0x004067b4 move a3, t8                                           |     a3 = t8;
    0x004067b8 lw t8, -0x7fd0(gp)                                    |     t8 = sym.parse_string_char__int__char_____10__32___char_;
    0x004067bc move t9, t8                                           |     t9 = t8;
    0x004067c0 jalr t9                                               |     t9 ();
    0x004067c4 nop                                                   |     
    0x004067c8 lw gp, 0x18(fp)                                       |     gp = *(arg_18h);
    0x004067cc move t8, v0                                           |     t8 = v0;
    0x004067d0 srl t8, t8, 0x1f                                      |     t8 >>= 0x1f;
    0x004067d4 andi t8, t8, 0xff                                     |     t8 &= 0xff;
                                                                     |     if (t8 != 0) {
    0x004067d8 beqz t8, 0x406908                                     |         
    0x004067dc nop                                                   |         
    0x004067e0 lw t8, -0x7ee8(gp)                                    |         t8 = *((gp - 8122));
    0x004067e4 lw s0, (t8)                                           |         s0 = *(t8);
    0x004067e8 lw t8, -0x7e70(gp)                                    |         t8 = sym.imp.__errno_location;
    0x004067ec move t9, t8                                           |         t9 = t8;
    0x004067f0 jalr t9                                               |         t9 ();
    0x004067f4 nop                                                   |         
    0x004067f8 lw gp, 0x18(fp)                                       |         gp = *(arg_18h);
    0x004067fc move t8, v0                                           |         t8 = v0;
    0x00406800 lw t8, (t8)                                           |         t8 = *(t8);
    0x00406804 addiu v0, zero, 0x3d2                                 |         v0 = 0x3d2;
    0x00406808 sw v0, 0x10(sp)                                       |         *(var_10h) = v0;
    0x0040680c sw t8, 0x14(sp)                                       |         *(var_14h) = t8;
    0x00406810 move a0, s0                                           |         a0 = s0;
    0x00406814 lw t8, -0x7fdc(gp)                                    |         t8 = *(gp);
                                                                     |         /* str._s___s____L_d:_Parse_xml_failed__errno___d_n */
    0x00406818 addiu a1, t8, 0x7934                                  |         a1 = t8 + 0x7934;
    0x0040681c lw t8, -0x7fdc(gp)                                    |         t8 = *(gp);
                                                                     |         /* str.dbd.cpp */
    0x00406820 addiu a2, t8, 0x7824                                  |         a2 = t8 + 0x7824;
    0x00406824 lw t8, -0x7fdc(gp)                                    |         t8 = *(gp);
                                                                     |         /* str.handle_DBRESTORE_TP */
    0x00406828 addiu a3, t8, 0x7fac                                  |         a3 = t8 + 0x7fac;
    0x0040682c lw t8, -0x7f1c(gp)                                    |         t8 = sym.imp.fprintf
    0x00406830 move t9, t8                                           |         t9 = t8;
    0x00406834 jalr t9                                               |         t9 ();
    0x00406838 nop                                                   |         
    0x0040683c lw gp, 0x18(fp)                                       |         gp = *(arg_18h);
    0x00406840 addiu t8, fp, 0x184                                   |         t8 = fp + 0x184;
    0x00406844 sw zero, 0x10(sp)                                     |         *(var_10h) = 0;
    0x00406848 move a0, t8                                           |         a0 = t8;
    0x0040684c addiu a1, zero, 7                                     |         a1 = 7;
    0x00406850 addiu a2, zero, -1                                    |         a2 = -1;
    0x00406854 move a3, zero                                         |         a3 = 0;
    0x00406858 lw t8, -0x7fcc(gp)                                    |         t8 = sym.generate_ack_char__DB_COMMAND__DB_RET_CODE__int__char_;
    0x0040685c move t9, t8                                           |         t9 = t8;
    0x00406860 jalr t9                                               |         t9 ();
    0x00406864 nop                                                   |         
    0x00406868 lw gp, 0x18(fp)                                       |         gp = *(arg_18h);
    0x0040686c addiu t8, fp, 0x184                                   |         t8 = fp + 0x184;
    0x00406870 lw a0, 0x28(fp)                                       |         a0 = *(arg_28h);
    0x00406874 move a1, t8                                           |         a1 = t8;
    0x00406878 lw t8, -0x7f40(gp)                                    |         t8 = sym.imp.ack_send;
    0x0040687c move t9, t8                                           |         t9 = t8;
    0x00406880 jalr t9                                               |         t9 ();
    0x00406884 nop                                                   |         
    0x00406888 lw gp, 0x18(fp)                                       |         gp = *(arg_18h);
    0x0040688c move t8, v0                                           |         t8 = v0;
    0x00406890 srl t8, t8, 0x1f                                      |         t8 >>= 0x1f;
    0x00406894 andi t8, t8, 0xff                                     |         t8 &= 0xff;
                                                                     |         if (t8 != 0) {
    0x00406898 beqz t8, 0x406900                                     |             
    0x0040689c nop                                                   |             
    0x004068a0 lw t8, -0x7ee8(gp)                                    |             t8 = *((gp - 8122));
    0x004068a4 lw s0, (t8)                                           |             s0 = *(t8);
    0x004068a8 lw t8, -0x7e70(gp)                                    |             t8 = sym.imp.__errno_location;
    0x004068ac move t9, t8                                           |             t9 = t8;
    0x004068b0 jalr t9                                               |             t9 ();
    0x004068b4 nop                                                   |             
    0x004068b8 lw gp, 0x18(fp)                                       |             gp = *(arg_18h);
    0x004068bc move t8, v0                                           |             t8 = v0;
    0x004068c0 lw t8, (t8)                                           |             t8 = *(t8);
    0x004068c4 addiu v0, zero, 0x3d5                                 |             v0 = 0x3d5;
    0x004068c8 sw v0, 0x10(sp)                                       |             *(var_10h) = v0;
    0x004068cc sw t8, 0x14(sp)                                       |             *(var_14h) = t8;
    0x004068d0 move a0, s0                                           |             a0 = s0;
    0x004068d4 lw t8, -0x7fdc(gp)                                    |             t8 = *(gp);
                                                                     |             /* str._s___s____L_d:_Send_ack_error__errno___d_n */
    0x004068d8 addiu a1, t8, 0x7964                                  |             a1 = t8 + 0x7964;
    0x004068dc lw t8, -0x7fdc(gp)                                    |             t8 = *(gp);
                                                                     |             /* str.dbd.cpp */
    0x004068e0 addiu a2, t8, 0x7824                                  |             a2 = t8 + 0x7824;
    0x004068e4 lw t8, -0x7fdc(gp)                                    |             t8 = *(gp);
                                                                     |             /* str.handle_DBRESTORE_TP */
    0x004068e8 addiu a3, t8, 0x7fac                                  |             a3 = t8 + 0x7fac;
    0x004068ec lw t8, -0x7f1c(gp)                                    |             t8 = sym.imp.fprintf
    0x004068f0 move t9, t8                                           |             t9 = t8;
    0x004068f4 jalr t9                                               |             t9 ();
    0x004068f8 nop                                                   |             
    0x004068fc lw gp, 0x18(fp)                                       |             gp = *(arg_18h);
                                                                     |         }
    0x00406900 b 0x406b30                                            |         goto label_1;
    0x00406904 nop                                                   |         
                                                                     |     }
    0x00406908 addiu t8, fp, 0x44                                    |     t8 = fp + 0x44;
    0x0040690c lw a0, 0x2c(fp)                                       |     a0 = *(arg_2ch);
    0x00406910 move a1, t8                                           |     a1 = t8;
    0x00406914 lw t8, -0x7f84(gp)                                    |     t8 = sym.configDB_mxml_node_s__char_const_;
    0x00406918 move t9, t8                                           |     t9 = t8;
    0x0040691c jalr t9                                               |     t9 ();
    0x00406920 nop                                                   |     
    0x00406924 lw gp, 0x18(fp)                                       |     gp = *(arg_18h);
    0x00406928 move t8, v0                                           |     t8 = v0;
    0x0040692c srl t8, t8, 0x1f                                      |     t8 >>= 0x1f;
    0x00406930 andi t8, t8, 0xff                                     |     t8 &= 0xff;
                                                                     |     if (t8 != 0) {
    0x00406934 beqz t8, 0x406a64                                     |         
    0x00406938 nop                                                   |         
    0x0040693c lw t8, -0x7ee8(gp)                                    |         t8 = *((gp - 8122));
    0x00406940 lw s0, (t8)                                           |         s0 = *(t8);
    0x00406944 lw t8, -0x7e70(gp)                                    |         t8 = sym.imp.__errno_location;
    0x00406948 move t9, t8                                           |         t9 = t8;
    0x0040694c jalr t9                                               |         t9 ();
    0x00406950 nop                                                   |         
    0x00406954 lw gp, 0x18(fp)                                       |         gp = *(arg_18h);
    0x00406958 move t8, v0                                           |         t8 = v0;
    0x0040695c lw t8, (t8)                                           |         t8 = *(t8);
    0x00406960 addiu v0, zero, 0x3db                                 |         v0 = 0x3db;
    0x00406964 sw v0, 0x10(sp)                                       |         *(var_10h) = v0;
    0x00406968 sw t8, 0x14(sp)                                       |         *(var_14h) = t8;
    0x0040696c move a0, s0                                           |         a0 = s0;
    0x00406970 lw t8, -0x7fdc(gp)                                    |         t8 = *(gp);
                                                                     |         /* str._s___s____L_d:_Save_db_failed__errno___d_n */
    0x00406974 addiu a1, t8, 0x7c20                                  |         a1 = t8 + 0x7c20;
    0x00406978 lw t8, -0x7fdc(gp)                                    |         t8 = *(gp);
                                                                     |         /* str.dbd.cpp */
    0x0040697c addiu a2, t8, 0x7824                                  |         a2 = t8 + 0x7824;
    0x00406980 lw t8, -0x7fdc(gp)                                    |         t8 = *(gp);
                                                                     |         /* str.handle_DBRESTORE_TP */
    0x00406984 addiu a3, t8, 0x7fac                                  |         a3 = t8 + 0x7fac;
    0x00406988 lw t8, -0x7f1c(gp)                                    |         t8 = sym.imp.fprintf
    0x0040698c move t9, t8                                           |         t9 = t8;
    0x00406990 jalr t9                                               |         t9 ();
    0x00406994 nop                                                   |         
    0x00406998 lw gp, 0x18(fp)                                       |         gp = *(arg_18h);
    0x0040699c addiu t8, fp, 0x184                                   |         t8 = fp + 0x184;
    0x004069a0 sw zero, 0x10(sp)                                     |         *(var_10h) = 0;
    0x004069a4 move a0, t8                                           |         a0 = t8;
    0x004069a8 addiu a1, zero, 7                                     |         a1 = 7;
    0x004069ac addiu a2, zero, -1                                    |         a2 = -1;
    0x004069b0 move a3, zero                                         |         a3 = 0;
    0x004069b4 lw t8, -0x7fcc(gp)                                    |         t8 = sym.generate_ack_char__DB_COMMAND__DB_RET_CODE__int__char_;
    0x004069b8 move t9, t8                                           |         t9 = t8;
    0x004069bc jalr t9                                               |         t9 ();
    0x004069c0 nop                                                   |         
    0x004069c4 lw gp, 0x18(fp)                                       |         gp = *(arg_18h);
    0x004069c8 addiu t8, fp, 0x184                                   |         t8 = fp + 0x184;
    0x004069cc lw a0, 0x28(fp)                                       |         a0 = *(arg_28h);
    0x004069d0 move a1, t8                                           |         a1 = t8;
    0x004069d4 lw t8, -0x7f40(gp)                                    |         t8 = sym.imp.ack_send;
    0x004069d8 move t9, t8                                           |         t9 = t8;
    0x004069dc jalr t9                                               |         t9 ();
    0x004069e0 nop                                                   |         
    0x004069e4 lw gp, 0x18(fp)                                       |         gp = *(arg_18h);
    0x004069e8 move t8, v0                                           |         t8 = v0;
    0x004069ec srl t8, t8, 0x1f                                      |         t8 >>= 0x1f;
    0x004069f0 andi t8, t8, 0xff                                     |         t8 &= 0xff;
                                                                     |         if (t8 != 0) {
    0x004069f4 beqz t8, 0x406a5c                                     |             
    0x004069f8 nop                                                   |             
    0x004069fc lw t8, -0x7ee8(gp)                                    |             t8 = *((gp - 8122));
    0x00406a00 lw s0, (t8)                                           |             s0 = *(t8);
    0x00406a04 lw t8, -0x7e70(gp)                                    |             t8 = sym.imp.__errno_location;
    0x00406a08 move t9, t8                                           |             t9 = t8;
    0x00406a0c jalr t9                                               |             t9 ();
    0x00406a10 nop                                                   |             
    0x00406a14 lw gp, 0x18(fp)                                       |             gp = *(arg_18h);
    0x00406a18 move t8, v0                                           |             t8 = v0;
    0x00406a1c lw t8, (t8)                                           |             t8 = *(t8);
    0x00406a20 addiu v0, zero, 0x3de                                 |             v0 = 0x3de;
    0x00406a24 sw v0, 0x10(sp)                                       |             *(var_10h) = v0;
    0x00406a28 sw t8, 0x14(sp)                                       |             *(var_14h) = t8;
    0x00406a2c move a0, s0                                           |             a0 = s0;
    0x00406a30 lw t8, -0x7fdc(gp)                                    |             t8 = *(gp);
                                                                     |             /* str._s___s____L_d:_Send_ack_error__errno___d_n */
    0x00406a34 addiu a1, t8, 0x7964                                  |             a1 = t8 + 0x7964;
    0x00406a38 lw t8, -0x7fdc(gp)                                    |             t8 = *(gp);
                                                                     |             /* str.dbd.cpp */
    0x00406a3c addiu a2, t8, 0x7824                                  |             a2 = t8 + 0x7824;
    0x00406a40 lw t8, -0x7fdc(gp)                                    |             t8 = *(gp);
                                                                     |             /* str.handle_DBRESTORE_TP */
    0x00406a44 addiu a3, t8, 0x7fac                                  |             a3 = t8 + 0x7fac;
    0x00406a48 lw t8, -0x7f1c(gp)                                    |             t8 = sym.imp.fprintf
    0x00406a4c move t9, t8                                           |             t9 = t8;
    0x00406a50 jalr t9                                               |             t9 ();
    0x00406a54 nop                                                   |             
    0x00406a58 lw gp, 0x18(fp)                                       |             gp = *(arg_18h);
                                                                     |         }
    0x00406a5c b 0x406b30                                            |         goto label_1;
    0x00406a60 nop                                                   |         
                                                                     |     }
    0x00406a64 addiu t8, fp, 0x184                                   |     t8 = fp + 0x184;
    0x00406a68 sw zero, 0x10(sp)                                     |     *(var_10h) = 0;
    0x00406a6c move a0, t8                                           |     a0 = t8;
    0x00406a70 addiu a1, zero, 7                                     |     a1 = 7;
    0x00406a74 move a2, zero                                         |     a2 = 0;
    0x00406a78 move a3, zero                                         |     a3 = 0;
    0x00406a7c lw t8, -0x7fcc(gp)                                    |     t8 = sym.generate_ack_char__DB_COMMAND__DB_RET_CODE__int__char_;
    0x00406a80 move t9, t8                                           |     t9 = t8;
    0x00406a84 jalr t9                                               |     t9 ();
    0x00406a88 nop                                                   |     
    0x00406a8c lw gp, 0x18(fp)                                       |     gp = *(arg_18h);
    0x00406a90 addiu t8, fp, 0x184                                   |     t8 = fp + 0x184;
    0x00406a94 lw a0, 0x28(fp)                                       |     a0 = *(arg_28h);
    0x00406a98 move a1, t8                                           |     a1 = t8;
    0x00406a9c lw t8, -0x7f40(gp)                                    |     t8 = sym.imp.ack_send;
    0x00406aa0 move t9, t8                                           |     t9 = t8;
    0x00406aa4 jalr t9                                               |     t9 ();
    0x00406aa8 nop                                                   |     
    0x00406aac lw gp, 0x18(fp)                                       |     gp = *(arg_18h);
    0x00406ab0 move t8, v0                                           |     t8 = v0;
    0x00406ab4 srl t8, t8, 0x1f                                      |     t8 >>= 0x1f;
    0x00406ab8 andi t8, t8, 0xff                                     |     t8 &= 0xff;
                                                                     |     if (t8 != 0) {
    0x00406abc beqz t8, 0x406b2c                                     |         
    0x00406ac0 nop                                                   |         
    0x00406ac4 lw t8, -0x7ee8(gp)                                    |         t8 = *((gp - 8122));
    0x00406ac8 lw s0, (t8)                                           |         s0 = *(t8);
    0x00406acc lw t8, -0x7e70(gp)                                    |         t8 = sym.imp.__errno_location;
    0x00406ad0 move t9, t8                                           |         t9 = t8;
    0x00406ad4 jalr t9                                               |         t9 ();
    0x00406ad8 nop                                                   |         
    0x00406adc lw gp, 0x18(fp)                                       |         gp = *(arg_18h);
    0x00406ae0 move t8, v0                                           |         t8 = v0;
    0x00406ae4 lw t8, (t8)                                           |         t8 = *(t8);
    0x00406ae8 addiu v0, zero, 0x3e5                                 |         v0 = 0x3e5;
    0x00406aec sw v0, 0x10(sp)                                       |         *(var_10h) = v0;
    0x00406af0 sw t8, 0x14(sp)                                       |         *(var_14h) = t8;
    0x00406af4 move a0, s0                                           |         a0 = s0;
    0x00406af8 lw t8, -0x7fdc(gp)                                    |         t8 = *(gp);
                                                                     |         /* str._s___s____L_d:_Send_ack_error__errno___d_n */
    0x00406afc addiu a1, t8, 0x7964                                  |         a1 = t8 + 0x7964;
    0x00406b00 lw t8, -0x7fdc(gp)                                    |         t8 = *(gp);
                                                                     |         /* str.dbd.cpp */
    0x00406b04 addiu a2, t8, 0x7824                                  |         a2 = t8 + 0x7824;
    0x00406b08 lw t8, -0x7fdc(gp)                                    |         t8 = *(gp);
                                                                     |         /* str.handle_DBRESTORE_TP */
    0x00406b0c addiu a3, t8, 0x7fac                                  |         a3 = t8 + 0x7fac;
    0x00406b10 lw t8, -0x7f1c(gp)                                    |         t8 = sym.imp.fprintf
    0x00406b14 move t9, t8                                           |         t9 = t8;
    0x00406b18 jalr t9                                               |         t9 ();
    0x00406b1c nop                                                   |         
    0x00406b20 lw gp, 0x18(fp)                                       |         gp = *(arg_18h);
    0x00406b24 addiu t8, zero, -6                                    |         t8 = -6;
    0x00406b28 sw t8, 0x34(fp)                                       |         *(arg_34h) = t8;
                                                                     |     }
    0x00406b2c sw zero, 0x34(fp)                                     |     *(arg_34h) = 0;
                                                                     | label_1:
    0x00406b30 lw t8, 0x34(fp)                                       |     t8 = *(arg_34h);
                                                                     | label_0:
    0x00406b34 move v0, t8                                           |     v0 = t8;
    0x00406b38 lw t8, -0x7e74(gp)                                    |     t8 = *((gp - 8093));
    0x00406b3c lw v1, 0x1184(fp)                                     |     v1 = *(arg_1184h);
    0x00406b40 lw t8, (t8)                                           |     t8 = *(t8);
                                                                     |     if (v1 != t8) {
    0x00406b44 beq v1, t8, 0x406b5c                                  |         
    0x00406b48 nop                                                   |         
    0x00406b4c lw t8, -0x7ee4(gp)                                    |         t8 = sym.imp.__stack_chk_fail;
    0x00406b50 move t9, t8                                           |         t9 = t8;
    0x00406b54 jalr t9                                               |         t9 ();
    0x00406b58 nop                                                   |         
                                                                     |     }
    0x00406b5c move sp, fp                                           |     
    0x00406b60 lw ra, 0x1194(sp)                                     |     ra = *(var_1194h);
    0x00406b64 lw fp, 0x1190(sp)                                     |     fp = *(var_1190h);
    0x00406b68 lw s0, 0x118c(sp)                                     |     s0 = *(var_118ch);
    0x00406b6c addiu sp, sp, 0x1198                                  |     
    0x00406b70 jr ra                                                 |     return v1;
    0x00406b74 nop                                                   |     
                                                                     | }
    ; assembly                                       | /* r2dec pseudo code output */
                                                     | /* /logs/firmware/patool_extraction/DUMP/mtdblock8_unblob_extracted/mtdblock8_extract/0-9650176.squashfs_v4_le_extract/sbin/dbd @ 0x404db8 */
                                                     | #include <stdint.h>
                                                     |  
    ; (fcn) sym.handle_DBRESTORE_int__char_ ()       | void handle_DBRESTORE_int_char_ () {
                                                     |     /* handle_DBRESTORE(int, char*) */
    0x00404db8 lui gp, 2                             |     
    0x00404dbc addiu gp, gp, -0x3d88                 |     
    0x00404dc0 addu gp, gp, t9                       |     gp += t9;
    0x00404dc4 addiu sp, sp, -0x1190                 |     
    0x00404dc8 sw ra, 0x118c(sp)                     |     *(var_118ch) = ra;
    0x00404dcc sw fp, 0x1188(sp)                     |     *(var_1188h) = fp;
    0x00404dd0 sw s0, 0x1184(sp)                     |     *(var_1184h) = s0;
    0x00404dd4 move fp, sp                           |     fp = sp;
    0x00404dd8 sw gp, 0x18(sp)                       |     *(var_18h) = gp;
    0x00404ddc sw a0, 0x24(fp)                       |     *(arg_24h) = a0;
    0x00404de0 sw a1, 0x20(fp)                       |     *(arg_20h) = a1;
    0x00404de4 lw t8, -0x7e74(gp)                    |     t8 = *((gp - 8093));
    0x00404de8 lw t8, (t8)                           |     t8 = *(t8);
    0x00404dec sw t8, 0x117c(fp)                     |     *(arg_117ch) = t8;
    0x00404df0 sb zero, 0x2b(fp)                     |     *(arg_2bh) = 0;
    0x00404df4 sw zero, 0x30(fp)                     |     *(arg_30h) = 0;
    0x00404df8 sw zero, 0x34(fp)                     |     *(arg_34h) = 0;
    0x00404dfc addiu t8, zero, -1                    |     t8 = -1;
    0x00404e00 sw t8, 0x2c(fp)                       |     *(arg_2ch) = t8;
    0x00404e04 sw zero, 0x38(fp)                     |     *(arg_38h) = 0;
    0x00404e08 lw t8, 0x20(fp)                       |     t8 = *(arg_20h);
                                                     |     if (t8 == 0) {
    0x00404e0c bnez t8, 0x404e80                     |         
    0x00404e10 nop                                   |         
    0x00404e14 lw t8, -0x7ee8(gp)                    |         t8 = *((gp - 8122));
    0x00404e18 lw s0, (t8)                           |         s0 = *(t8);
    0x00404e1c lw t8, -0x7e70(gp)                    |         t8 = sym.imp.__errno_location;
    0x00404e20 move t9, t8                           |         t9 = t8;
    0x00404e24 jalr t9                               |         t9 ();
    0x00404e28 nop                                   |         
    0x00404e2c lw gp, 0x18(fp)                       |         gp = *(arg_18h);
    0x00404e30 move t8, v0                           |         t8 = v0;
    0x00404e34 lw t8, (t8)                           |         t8 = *(t8);
    0x00404e38 addiu v0, zero, 0x2d3                 |         v0 = 0x2d3;
    0x00404e3c sw v0, 0x10(sp)                       |         *(var_10h) = v0;
    0x00404e40 sw t8, 0x14(sp)                       |         *(var_14h) = t8;
    0x00404e44 move a0, s0                           |         a0 = s0;
    0x00404e48 lw t8, -0x7fdc(gp)                    |         t8 = *(gp);
                                                     |         /* str._s___s____L_d:_Invalid_para__errno___d_n */
    0x00404e4c addiu a1, t8, 0x77f8                  |         a1 = t8 + 0x77f8;
    0x00404e50 lw t8, -0x7fdc(gp)                    |         t8 = *(gp);
                                                     |         /* str.dbd.cpp */
    0x00404e54 addiu a2, t8, 0x7824                  |         a2 = t8 + 0x7824;
    0x00404e58 lw t8, -0x7fdc(gp)                    |         t8 = *(gp);
                                                     |         /* str.handle_DBRESTORE */
    0x00404e5c addiu a3, t8, 0x7f64                  |         a3 = t8 + 0x7f64;
    0x00404e60 lw t8, -0x7f1c(gp)                    |         t8 = sym.imp.fprintf
    0x00404e64 move t9, t8                           |         t9 = t8;
    0x00404e68 jalr t9                               |         t9 ();
    0x00404e6c nop                                   |         
    0x00404e70 lw gp, 0x18(fp)                       |         gp = *(arg_18h);
    0x00404e74 addiu t8, zero, -7                    |         t8 = -7;
    0x00404e78 b 0x405230                            |         goto label_0;
    0x00404e7c nop                                   |         
                                                     |     }
    0x00404e80 lw t8, 0x20(fp)                       |     t8 = *(arg_20h);
    0x00404e84 sw t8, 0x38(fp)                       |     *(arg_38h) = t8;
    0x00404e88 lw t8, 0x20(fp)                       |     t8 = *(arg_20h);
    0x00404e8c addiu t8, t8, 0xc                     |     t8 += 0xc;
    0x00404e90 sw t8, 0x30(fp)                       |     *(arg_30h) = t8;
    0x00404e94 lw t8, 0x38(fp)                       |     t8 = *(arg_38h);
    0x00404e98 lw t8, 4(t8)                          |     t8 = *((t8 + 1));
    0x00404e9c sw t8, 0x34(fp)                       |     *(arg_34h) = t8;
    0x00404ea0 addiu v0, fp, 0x3c                    |     v0 = fp + 0x3c;
    0x00404ea4 addiu t8, fp, 0x2b                    |     t8 = fp + 0x2b;
    0x00404ea8 lw a0, 0x30(fp)                       |     a0 = *(arg_30h);
    0x00404eac lw a1, 0x34(fp)                       |     a1 = *(arg_34h);
    0x00404eb0 move a2, v0                           |     a2 = v0;
    0x00404eb4 move a3, t8                           |     a3 = t8;
    0x00404eb8 lw t8, -0x7fd0(gp)                    |     t8 = sym.parse_string_char__int__char_____10__32___char_;
    0x00404ebc move t9, t8                           |     t9 = t8;
    0x00404ec0 jalr t9                               |     t9 ();
    0x00404ec4 nop                                   |     
    0x00404ec8 lw gp, 0x18(fp)                       |     gp = *(arg_18h);
    0x00404ecc move t8, v0                           |     t8 = v0;
    0x00404ed0 srl t8, t8, 0x1f                      |     t8 >>= 0x1f;
    0x00404ed4 andi t8, t8, 0xff                     |     t8 &= 0xff;
                                                     |     if (t8 != 0) {
    0x00404ed8 beqz t8, 0x405008                     |         
    0x00404edc nop                                   |         
    0x00404ee0 lw t8, -0x7ee8(gp)                    |         t8 = *((gp - 8122));
    0x00404ee4 lw s0, (t8)                           |         s0 = *(t8);
    0x00404ee8 lw t8, -0x7e70(gp)                    |         t8 = sym.imp.__errno_location;
    0x00404eec move t9, t8                           |         t9 = t8;
    0x00404ef0 jalr t9                               |         t9 ();
    0x00404ef4 nop                                   |         
    0x00404ef8 lw gp, 0x18(fp)                       |         gp = *(arg_18h);
    0x00404efc move t8, v0                           |         t8 = v0;
    0x00404f00 lw t8, (t8)                           |         t8 = *(t8);
    0x00404f04 addiu v0, zero, 0x2db                 |         v0 = 0x2db;
    0x00404f08 sw v0, 0x10(sp)                       |         *(var_10h) = v0;
    0x00404f0c sw t8, 0x14(sp)                       |         *(var_14h) = t8;
    0x00404f10 move a0, s0                           |         a0 = s0;
    0x00404f14 lw t8, -0x7fdc(gp)                    |         t8 = *(gp);
                                                     |         /* str._s___s____L_d:_Parse_xml_failed__errno___d_n */
    0x00404f18 addiu a1, t8, 0x7934                  |         a1 = t8 + 0x7934;
    0x00404f1c lw t8, -0x7fdc(gp)                    |         t8 = *(gp);
                                                     |         /* str.dbd.cpp */
    0x00404f20 addiu a2, t8, 0x7824                  |         a2 = t8 + 0x7824;
    0x00404f24 lw t8, -0x7fdc(gp)                    |         t8 = *(gp);
                                                     |         /* str.handle_DBRESTORE */
    0x00404f28 addiu a3, t8, 0x7f64                  |         a3 = t8 + 0x7f64;
    0x00404f2c lw t8, -0x7f1c(gp)                    |         t8 = sym.imp.fprintf
    0x00404f30 move t9, t8                           |         t9 = t8;
    0x00404f34 jalr t9                               |         t9 ();
    0x00404f38 nop                                   |         
    0x00404f3c lw gp, 0x18(fp)                       |         gp = *(arg_18h);
    0x00404f40 addiu t8, fp, 0x17c                   |         t8 = fp + 0x17c;
    0x00404f44 sw zero, 0x10(sp)                     |         *(var_10h) = 0;
    0x00404f48 move a0, t8                           |         a0 = t8;
    0x00404f4c addiu a1, zero, 4                     |         a1 = 4;
    0x00404f50 addiu a2, zero, -1                    |         a2 = -1;
    0x00404f54 move a3, zero                         |         a3 = 0;
    0x00404f58 lw t8, -0x7fcc(gp)                    |         t8 = sym.generate_ack_char__DB_COMMAND__DB_RET_CODE__int__char_;
    0x00404f5c move t9, t8                           |         t9 = t8;
    0x00404f60 jalr t9                               |         t9 ();
    0x00404f64 nop                                   |         
    0x00404f68 lw gp, 0x18(fp)                       |         gp = *(arg_18h);
    0x00404f6c addiu t8, fp, 0x17c                   |         t8 = fp + 0x17c;
    0x00404f70 lw a0, 0x24(fp)                       |         a0 = *(arg_24h);
    0x00404f74 move a1, t8                           |         a1 = t8;
    0x00404f78 lw t8, -0x7f40(gp)                    |         t8 = sym.imp.ack_send;
    0x00404f7c move t9, t8                           |         t9 = t8;
    0x00404f80 jalr t9                               |         t9 ();
    0x00404f84 nop                                   |         
    0x00404f88 lw gp, 0x18(fp)                       |         gp = *(arg_18h);
    0x00404f8c move t8, v0                           |         t8 = v0;
    0x00404f90 srl t8, t8, 0x1f                      |         t8 >>= 0x1f;
    0x00404f94 andi t8, t8, 0xff                     |         t8 &= 0xff;
                                                     |         if (t8 != 0) {
    0x00404f98 beqz t8, 0x405000                     |             
    0x00404f9c nop                                   |             
    0x00404fa0 lw t8, -0x7ee8(gp)                    |             t8 = *((gp - 8122));
    0x00404fa4 lw s0, (t8)                           |             s0 = *(t8);
    0x00404fa8 lw t8, -0x7e70(gp)                    |             t8 = sym.imp.__errno_location;
    0x00404fac move t9, t8                           |             t9 = t8;
    0x00404fb0 jalr t9                               |             t9 ();
    0x00404fb4 nop                                   |             
    0x00404fb8 lw gp, 0x18(fp)                       |             gp = *(arg_18h);
    0x00404fbc move t8, v0                           |             t8 = v0;
    0x00404fc0 lw t8, (t8)                           |             t8 = *(t8);
    0x00404fc4 addiu v0, zero, 0x2de                 |             v0 = 0x2de;
    0x00404fc8 sw v0, 0x10(sp)                       |             *(var_10h) = v0;
    0x00404fcc sw t8, 0x14(sp)                       |             *(var_14h) = t8;
    0x00404fd0 move a0, s0                           |             a0 = s0;
    0x00404fd4 lw t8, -0x7fdc(gp)                    |             t8 = *(gp);
                                                     |             /* str._s___s____L_d:_Send_ack_error__errno___d_n */
    0x00404fd8 addiu a1, t8, 0x7964                  |             a1 = t8 + 0x7964;
    0x00404fdc lw t8, -0x7fdc(gp)                    |             t8 = *(gp);
                                                     |             /* str.dbd.cpp */
    0x00404fe0 addiu a2, t8, 0x7824                  |             a2 = t8 + 0x7824;
    0x00404fe4 lw t8, -0x7fdc(gp)                    |             t8 = *(gp);
                                                     |             /* str.handle_DBRESTORE */
    0x00404fe8 addiu a3, t8, 0x7f64                  |             a3 = t8 + 0x7f64;
    0x00404fec lw t8, -0x7f1c(gp)                    |             t8 = sym.imp.fprintf
    0x00404ff0 move t9, t8                           |             t9 = t8;
    0x00404ff4 jalr t9                               |             t9 ();
    0x00404ff8 nop                                   |             
    0x00404ffc lw gp, 0x18(fp)                       |             gp = *(arg_18h);
                                                     |         }
    0x00405000 b 0x40522c                            |         goto label_1;
    0x00405004 nop                                   |         
                                                     |     }
    0x00405008 addiu t8, fp, 0x3c                    |     t8 = fp + 0x3c;
    0x0040500c move a0, t8                           |     a0 = t8;
    0x00405010 lw t8, -0x7f98(gp)                    |     t8 = sym.cp_dbfile_char_const_;
    0x00405014 move t9, t8                           |     t9 = t8;
    0x00405018 jalr t9                               |     t9 ();
    0x0040501c nop                                   |     
    0x00405020 lw gp, 0x18(fp)                       |     gp = *(arg_18h);
    0x00405024 move t8, v0                           |     t8 = v0;
    0x00405028 srl t8, t8, 0x1f                      |     t8 >>= 0x1f;
    0x0040502c andi t8, t8, 0xff                     |     t8 &= 0xff;
                                                     |     if (t8 != 0) {
    0x00405030 beqz t8, 0x405160                     |         
    0x00405034 nop                                   |         
    0x00405038 lw t8, -0x7ee8(gp)                    |         t8 = *((gp - 8122));
    0x0040503c lw s0, (t8)                           |         s0 = *(t8);
    0x00405040 lw t8, -0x7e70(gp)                    |         t8 = sym.imp.__errno_location;
    0x00405044 move t9, t8                           |         t9 = t8;
    0x00405048 jalr t9                               |         t9 ();
    0x0040504c nop                                   |         
    0x00405050 lw gp, 0x18(fp)                       |         gp = *(arg_18h);
    0x00405054 move t8, v0                           |         t8 = v0;
    0x00405058 lw t8, (t8)                           |         t8 = *(t8);
    0x0040505c addiu v0, zero, 0x2e4                 |         v0 = 0x2e4;
    0x00405060 sw v0, 0x10(sp)                       |         *(var_10h) = v0;
    0x00405064 sw t8, 0x14(sp)                       |         *(var_14h) = t8;
    0x00405068 move a0, s0                           |         a0 = s0;
    0x0040506c lw t8, -0x7fdc(gp)                    |         t8 = *(gp);
                                                     |         /* str._s___s____L_d:_Set_xml_failed__errno___d_n */
    0x00405070 addiu a1, t8, 0x7990                  |         a1 = t8 + 0x7990;
    0x00405074 lw t8, -0x7fdc(gp)                    |         t8 = *(gp);
                                                     |         /* str.dbd.cpp */
    0x00405078 addiu a2, t8, 0x7824                  |         a2 = t8 + 0x7824;
    0x0040507c lw t8, -0x7fdc(gp)                    |         t8 = *(gp);
                                                     |         /* str.handle_DBRESTORE */
    0x00405080 addiu a3, t8, 0x7f64                  |         a3 = t8 + 0x7f64;
    0x00405084 lw t8, -0x7f1c(gp)                    |         t8 = sym.imp.fprintf
    0x00405088 move t9, t8                           |         t9 = t8;
    0x0040508c jalr t9                               |         t9 ();
    0x00405090 nop                                   |         
    0x00405094 lw gp, 0x18(fp)                       |         gp = *(arg_18h);
    0x00405098 addiu t8, fp, 0x17c                   |         t8 = fp + 0x17c;
    0x0040509c sw zero, 0x10(sp)                     |         *(var_10h) = 0;
    0x004050a0 move a0, t8                           |         a0 = t8;
    0x004050a4 addiu a1, zero, 4                     |         a1 = 4;
    0x004050a8 addiu a2, zero, -1                    |         a2 = -1;
    0x004050ac move a3, zero                         |         a3 = 0;
    0x004050b0 lw t8, -0x7fcc(gp)                    |         t8 = sym.generate_ack_char__DB_COMMAND__DB_RET_CODE__int__char_;
    0x004050b4 move t9, t8                           |         t9 = t8;
    0x004050b8 jalr t9                               |         t9 ();
    0x004050bc nop                                   |         
    0x004050c0 lw gp, 0x18(fp)                       |         gp = *(arg_18h);
    0x004050c4 addiu t8, fp, 0x17c                   |         t8 = fp + 0x17c;
    0x004050c8 lw a0, 0x24(fp)                       |         a0 = *(arg_24h);
    0x004050cc move a1, t8                           |         a1 = t8;
    0x004050d0 lw t8, -0x7f40(gp)                    |         t8 = sym.imp.ack_send;
    0x004050d4 move t9, t8                           |         t9 = t8;
    0x004050d8 jalr t9                               |         t9 ();
    0x004050dc nop                                   |         
    0x004050e0 lw gp, 0x18(fp)                       |         gp = *(arg_18h);
    0x004050e4 move t8, v0                           |         t8 = v0;
    0x004050e8 srl t8, t8, 0x1f                      |         t8 >>= 0x1f;
    0x004050ec andi t8, t8, 0xff                     |         t8 &= 0xff;
                                                     |         if (t8 != 0) {
    0x004050f0 beqz t8, 0x405158                     |             
    0x004050f4 nop                                   |             
    0x004050f8 lw t8, -0x7ee8(gp)                    |             t8 = *((gp - 8122));
    0x004050fc lw s0, (t8)                           |             s0 = *(t8);
    0x00405100 lw t8, -0x7e70(gp)                    |             t8 = sym.imp.__errno_location;
    0x00405104 move t9, t8                           |             t9 = t8;
    0x00405108 jalr t9                               |             t9 ();
    0x0040510c nop                                   |             
    0x00405110 lw gp, 0x18(fp)                       |             gp = *(arg_18h);
    0x00405114 move t8, v0                           |             t8 = v0;
    0x00405118 lw t8, (t8)                           |             t8 = *(t8);
    0x0040511c addiu v0, zero, 0x2e7                 |             v0 = 0x2e7;
    0x00405120 sw v0, 0x10(sp)                       |             *(var_10h) = v0;
    0x00405124 sw t8, 0x14(sp)                       |             *(var_14h) = t8;
    0x00405128 move a0, s0                           |             a0 = s0;
    0x0040512c lw t8, -0x7fdc(gp)                    |             t8 = *(gp);
                                                     |             /* str._s___s____L_d:_Send_ack_error__errno___d_n */
    0x00405130 addiu a1, t8, 0x7964                  |             a1 = t8 + 0x7964;
    0x00405134 lw t8, -0x7fdc(gp)                    |             t8 = *(gp);
                                                     |             /* str.dbd.cpp */
    0x00405138 addiu a2, t8, 0x7824                  |             a2 = t8 + 0x7824;
    0x0040513c lw t8, -0x7fdc(gp)                    |             t8 = *(gp);
                                                     |             /* str.handle_DBRESTORE */
    0x00405140 addiu a3, t8, 0x7f64                  |             a3 = t8 + 0x7f64;
    0x00405144 lw t8, -0x7f1c(gp)                    |             t8 = sym.imp.fprintf
    0x00405148 move t9, t8                           |             t9 = t8;
    0x0040514c jalr t9                               |             t9 ();
    0x00405150 nop                                   |             
    0x00405154 lw gp, 0x18(fp)                       |             gp = *(arg_18h);
                                                     |         }
    0x00405158 b 0x40522c                            |         goto label_1;
    0x0040515c nop                                   |         
                                                     |     }
    0x00405160 addiu t8, fp, 0x17c                   |     t8 = fp + 0x17c;
    0x00405164 sw zero, 0x10(sp)                     |     *(var_10h) = 0;
    0x00405168 move a0, t8                           |     a0 = t8;
    0x0040516c addiu a1, zero, 4                     |     a1 = 4;
    0x00405170 move a2, zero                         |     a2 = 0;
    0x00405174 move a3, zero                         |     a3 = 0;
    0x00405178 lw t8, -0x7fcc(gp)                    |     t8 = sym.generate_ack_char__DB_COMMAND__DB_RET_CODE__int__char_;
    0x0040517c move t9, t8                           |     t9 = t8;
    0x00405180 jalr t9                               |     t9 ();
    0x00405184 nop                                   |     
    0x00405188 lw gp, 0x18(fp)                       |     gp = *(arg_18h);
    0x0040518c addiu t8, fp, 0x17c                   |     t8 = fp + 0x17c;
    0x00405190 lw a0, 0x24(fp)                       |     a0 = *(arg_24h);
    0x00405194 move a1, t8                           |     a1 = t8;
    0x00405198 lw t8, -0x7f40(gp)                    |     t8 = sym.imp.ack_send;
    0x0040519c move t9, t8                           |     t9 = t8;
    0x004051a0 jalr t9                               |     t9 ();
    0x004051a4 nop                                   |     
    0x004051a8 lw gp, 0x18(fp)                       |     gp = *(arg_18h);
    0x004051ac move t8, v0                           |     t8 = v0;
    0x004051b0 srl t8, t8, 0x1f                      |     t8 >>= 0x1f;
    0x004051b4 andi t8, t8, 0xff                     |     t8 &= 0xff;
                                                     |     if (t8 != 0) {
    0x004051b8 beqz t8, 0x405228                     |         
    0x004051bc nop                                   |         
    0x004051c0 lw t8, -0x7ee8(gp)                    |         t8 = *((gp - 8122));
    0x004051c4 lw s0, (t8)                           |         s0 = *(t8);
    0x004051c8 lw t8, -0x7e70(gp)                    |         t8 = sym.imp.__errno_location;
    0x004051cc move t9, t8                           |         t9 = t8;
    0x004051d0 jalr t9                               |         t9 ();
    0x004051d4 nop                                   |         
    0x004051d8 lw gp, 0x18(fp)                       |         gp = *(arg_18h);
    0x004051dc move t8, v0                           |         t8 = v0;
    0x004051e0 lw t8, (t8)                           |         t8 = *(t8);
    0x004051e4 addiu v0, zero, 0x2ee                 |         v0 = 0x2ee;
    0x004051e8 sw v0, 0x10(sp)                       |         *(var_10h) = v0;
    0x004051ec sw t8, 0x14(sp)                       |         *(var_14h) = t8;
    0x004051f0 move a0, s0                           |         a0 = s0;
    0x004051f4 lw t8, -0x7fdc(gp)                    |         t8 = *(gp);
                                                     |         /* str._s___s____L_d:_Send_ack_error__errno___d_n */
    0x004051f8 addiu a1, t8, 0x7964                  |         a1 = t8 + 0x7964;
    0x004051fc lw t8, -0x7fdc(gp)                    |         t8 = *(gp);
                                                     |         /* str.dbd.cpp */
    0x00405200 addiu a2, t8, 0x7824                  |         a2 = t8 + 0x7824;
    0x00405204 lw t8, -0x7fdc(gp)                    |         t8 = *(gp);
                                                     |         /* str.handle_DBRESTORE */
    0x00405208 addiu a3, t8, 0x7f64                  |         a3 = t8 + 0x7f64;
    0x0040520c lw t8, -0x7f1c(gp)                    |         t8 = sym.imp.fprintf
    0x00405210 move t9, t8                           |         t9 = t8;
    0x00405214 jalr t9                               |         t9 ();
    0x00405218 nop                                   |         
    0x0040521c lw gp, 0x18(fp)                       |         gp = *(arg_18h);
    0x00405220 addiu t8, zero, -6                    |         t8 = -6;
    0x00405224 sw t8, 0x2c(fp)                       |         *(arg_2ch) = t8;
                                                     |     }
    0x00405228 sw zero, 0x2c(fp)                     |     *(arg_2ch) = 0;
                                                     | label_1:
    0x0040522c lw t8, 0x2c(fp)                       |     t8 = *(arg_2ch);
                                                     | label_0:
    0x00405230 move v0, t8                           |     v0 = t8;
    0x00405234 lw t8, -0x7e74(gp)                    |     t8 = *((gp - 8093));
    0x00405238 lw v1, 0x117c(fp)                     |     v1 = *(arg_117ch);
    0x0040523c lw t8, (t8)                           |     t8 = *(t8);
                                                     |     if (v1 != t8) {
    0x00405240 beq v1, t8, 0x405258                  |         
    0x00405244 nop                                   |         
    0x00405248 lw t8, -0x7ee4(gp)                    |         t8 = sym.imp.__stack_chk_fail;
    0x0040524c move t9, t8                           |         t9 = t8;
    0x00405250 jalr t9                               |         t9 ();
    0x00405254 nop                                   |         
                                                     |     }
    0x00405258 move sp, fp                           |     
    0x0040525c lw ra, 0x118c(sp)                     |     ra = *(var_118ch);
    0x00405260 lw fp, 0x1188(sp)                     |     fp = *(var_1188h);
    0x00405264 lw s0, 0x1184(sp)                     |     s0 = *(var_1184h);
    0x00405268 addiu sp, sp, 0x1190                  |     
    0x0040526c jr ra                                 |     return v1;
    0x00405270 nop                                   |     
                                                     | }
    ; assembly                                                   | /* r2dec pseudo code output */
                                                                 | /* /logs/firmware/patool_extraction/DUMP/mtdblock8_unblob_extracted/mtdblock8_extract/0-9650176.squashfs_v4_le_extract/sbin/dbd @ 0x4053d0 */
                                                                 | #include <stdint.h>
                                                                 |  
    ; (fcn) sym.handle_DBSAVE_mxml_node_s__int__char_ ()         | void handle_DBSAVE_mxml_node_s_int_char_ () {
                                                                 |     /* handle_DBSAVE(mxml_node_s*, int, char*) */
    0x004053d0 lui gp, 2                                         |     
    0x004053d4 addiu gp, gp, -0x43a0                             |     
    0x004053d8 addu gp, gp, t9                                   |     gp += t9;
    0x004053dc addiu sp, sp, -0x1198                             |     
    0x004053e0 sw ra, 0x1194(sp)                                 |     *(var_1194h) = ra;
    0x004053e4 sw fp, 0x1190(sp)                                 |     *(var_1190h) = fp;
    0x004053e8 sw s0, 0x118c(sp)                                 |     *(var_118ch) = s0;
    0x004053ec move fp, sp                                       |     fp = sp;
    0x004053f0 sw gp, 0x18(sp)                                   |     *(var_18h) = gp;
    0x004053f4 sw a0, 0x2c(fp)                                   |     *(arg_2ch) = a0;
    0x004053f8 sw a1, 0x28(fp)                                   |     *(arg_28h) = a1;
    0x004053fc sw a2, 0x24(fp)                                   |     *(arg_24h) = a2;
    0x00405400 lw t8, -0x7e74(gp)                                |     t8 = *((gp - 8093));
    0x00405404 lw t8, (t8)                                       |     t8 = *(t8);
    0x00405408 sw t8, 0x1184(fp)                                 |     *(arg_1184h) = t8;
    0x0040540c sb zero, 0x33(fp)                                 |     *(arg_33h) = 0;
    0x00405410 sw zero, 0x38(fp)                                 |     *(arg_38h) = 0;
    0x00405414 sw zero, 0x3c(fp)                                 |     *(arg_3ch) = 0;
    0x00405418 addiu t8, zero, -1                                |     t8 = -1;
    0x0040541c sw t8, 0x34(fp)                                   |     *(arg_34h) = t8;
    0x00405420 sw zero, 0x40(fp)                                 |     *(arg_40h) = 0;
    0x00405424 lw t8, 0x24(fp)                                   |     t8 = *(arg_24h);
                                                                 |     if (t8 == 0) {
    0x00405428 bnez t8, 0x40549c                                 |         
    0x0040542c nop                                               |         
    0x00405430 lw t8, -0x7ee8(gp)                                |         t8 = *((gp - 8122));
    0x00405434 lw s0, (t8)                                       |         s0 = *(t8);
    0x00405438 lw t8, -0x7e70(gp)                                |         t8 = sym.imp.__errno_location;
    0x0040543c move t9, t8                                       |         t9 = t8;
    0x00405440 jalr t9                                           |         t9 ();
    0x00405444 nop                                               |         
    0x00405448 lw gp, 0x18(fp)                                   |         gp = *(arg_18h);
    0x0040544c move t8, v0                                       |         t8 = v0;
    0x00405450 lw t8, (t8)                                       |         t8 = *(t8);
    0x00405454 addiu v0, zero, 0x31a                             |         v0 = 0x31a;
    0x00405458 sw v0, 0x10(sp)                                   |         *(var_10h) = v0;
    0x0040545c sw t8, 0x14(sp)                                   |         *(var_14h) = t8;
    0x00405460 move a0, s0                                       |         a0 = s0;
    0x00405464 lw t8, -0x7fdc(gp)                                |         t8 = *(gp);
                                                                 |         /* str._s___s____L_d:_Invalid_para__errno___d_n */
    0x00405468 addiu a1, t8, 0x77f8                              |         a1 = t8 + 0x77f8;
    0x0040546c lw t8, -0x7fdc(gp)                                |         t8 = *(gp);
                                                                 |         /* str.dbd.cpp */
    0x00405470 addiu a2, t8, 0x7824                              |         a2 = t8 + 0x7824;
    0x00405474 lw t8, -0x7fdc(gp)                                |         t8 = *(gp);
                                                                 |         /* str.handle_DBSAVE */
    0x00405478 addiu a3, t8, 0x7f78                              |         a3 = t8 + 0x7f78;
    0x0040547c lw t8, -0x7f1c(gp)                                |         t8 = sym.imp.fprintf
    0x00405480 move t9, t8                                       |         t9 = t8;
    0x00405484 jalr t9                                           |         t9 ();
    0x00405488 nop                                               |         
    0x0040548c lw gp, 0x18(fp)                                   |         gp = *(arg_18h);
    0x00405490 addiu t8, zero, -7                                |         t8 = -7;
    0x00405494 b 0x405850                                        |         goto label_0;
    0x00405498 nop                                               |         
                                                                 |     }
    0x0040549c lw t8, 0x24(fp)                                   |     t8 = *(arg_24h);
    0x004054a0 sw t8, 0x40(fp)                                   |     *(arg_40h) = t8;
    0x004054a4 lw t8, 0x24(fp)                                   |     t8 = *(arg_24h);
    0x004054a8 addiu t8, t8, 0xc                                 |     t8 += 0xc;
    0x004054ac sw t8, 0x38(fp)                                   |     *(arg_38h) = t8;
    0x004054b0 lw t8, 0x40(fp)                                   |     t8 = *(arg_40h);
    0x004054b4 lw t8, 4(t8)                                      |     t8 = *((t8 + 1));
    0x004054b8 sw t8, 0x3c(fp)                                   |     *(arg_3ch) = t8;
    0x004054bc addiu v0, fp, 0x44                                |     v0 = fp + 0x44;
    0x004054c0 addiu t8, fp, 0x33                                |     t8 = fp + 0x33;
    0x004054c4 lw a0, 0x38(fp)                                   |     a0 = *(arg_38h);
    0x004054c8 lw a1, 0x3c(fp)                                   |     a1 = *(arg_3ch);
    0x004054cc move a2, v0                                       |     a2 = v0;
    0x004054d0 move a3, t8                                       |     a3 = t8;
    0x004054d4 lw t8, -0x7fd0(gp)                                |     t8 = sym.parse_string_char__int__char_____10__32___char_;
    0x004054d8 move t9, t8                                       |     t9 = t8;
    0x004054dc jalr t9                                           |     t9 ();
    0x004054e0 nop                                               |     
    0x004054e4 lw gp, 0x18(fp)                                   |     gp = *(arg_18h);
    0x004054e8 move t8, v0                                       |     t8 = v0;
    0x004054ec srl t8, t8, 0x1f                                  |     t8 >>= 0x1f;
    0x004054f0 andi t8, t8, 0xff                                 |     t8 &= 0xff;
                                                                 |     if (t8 != 0) {
    0x004054f4 beqz t8, 0x405624                                 |         
    0x004054f8 nop                                               |         
    0x004054fc lw t8, -0x7ee8(gp)                                |         t8 = *((gp - 8122));
    0x00405500 lw s0, (t8)                                       |         s0 = *(t8);
    0x00405504 lw t8, -0x7e70(gp)                                |         t8 = sym.imp.__errno_location;
    0x00405508 move t9, t8                                       |         t9 = t8;
    0x0040550c jalr t9                                           |         t9 ();
    0x00405510 nop                                               |         
    0x00405514 lw gp, 0x18(fp)                                   |         gp = *(arg_18h);
    0x00405518 move t8, v0                                       |         t8 = v0;
    0x0040551c lw t8, (t8)                                       |         t8 = *(t8);
    0x00405520 addiu v0, zero, 0x322                             |         v0 = 0x322;
    0x00405524 sw v0, 0x10(sp)                                   |         *(var_10h) = v0;
    0x00405528 sw t8, 0x14(sp)                                   |         *(var_14h) = t8;
    0x0040552c move a0, s0                                       |         a0 = s0;
    0x00405530 lw t8, -0x7fdc(gp)                                |         t8 = *(gp);
                                                                 |         /* str._s___s____L_d:_Parse_xml_failed__errno___d_n */
    0x00405534 addiu a1, t8, 0x7934                              |         a1 = t8 + 0x7934;
    0x00405538 lw t8, -0x7fdc(gp)                                |         t8 = *(gp);
                                                                 |         /* str.dbd.cpp */
    0x0040553c addiu a2, t8, 0x7824                              |         a2 = t8 + 0x7824;
    0x00405540 lw t8, -0x7fdc(gp)                                |         t8 = *(gp);
                                                                 |         /* str.handle_DBSAVE */
    0x00405544 addiu a3, t8, 0x7f78                              |         a3 = t8 + 0x7f78;
    0x00405548 lw t8, -0x7f1c(gp)                                |         t8 = sym.imp.fprintf
    0x0040554c move t9, t8                                       |         t9 = t8;
    0x00405550 jalr t9                                           |         t9 ();
    0x00405554 nop                                               |         
    0x00405558 lw gp, 0x18(fp)                                   |         gp = *(arg_18h);
    0x0040555c addiu t8, fp, 0x184                               |         t8 = fp + 0x184;
    0x00405560 sw zero, 0x10(sp)                                 |         *(var_10h) = 0;
    0x00405564 move a0, t8                                       |         a0 = t8;
    0x00405568 addiu a1, zero, 3                                 |         a1 = 3;
    0x0040556c addiu a2, zero, -1                                |         a2 = -1;
    0x00405570 move a3, zero                                     |         a3 = 0;
    0x00405574 lw t8, -0x7fcc(gp)                                |         t8 = sym.generate_ack_char__DB_COMMAND__DB_RET_CODE__int__char_;
    0x00405578 move t9, t8                                       |         t9 = t8;
    0x0040557c jalr t9                                           |         t9 ();
    0x00405580 nop                                               |         
    0x00405584 lw gp, 0x18(fp)                                   |         gp = *(arg_18h);
    0x00405588 addiu t8, fp, 0x184                               |         t8 = fp + 0x184;
    0x0040558c lw a0, 0x28(fp)                                   |         a0 = *(arg_28h);
    0x00405590 move a1, t8                                       |         a1 = t8;
    0x00405594 lw t8, -0x7f40(gp)                                |         t8 = sym.imp.ack_send;
    0x00405598 move t9, t8                                       |         t9 = t8;
    0x0040559c jalr t9                                           |         t9 ();
    0x004055a0 nop                                               |         
    0x004055a4 lw gp, 0x18(fp)                                   |         gp = *(arg_18h);
    0x004055a8 move t8, v0                                       |         t8 = v0;
    0x004055ac srl t8, t8, 0x1f                                  |         t8 >>= 0x1f;
    0x004055b0 andi t8, t8, 0xff                                 |         t8 &= 0xff;
                                                                 |         if (t8 != 0) {
    0x004055b4 beqz t8, 0x40561c                                 |             
    0x004055b8 nop                                               |             
    0x004055bc lw t8, -0x7ee8(gp)                                |             t8 = *((gp - 8122));
    0x004055c0 lw s0, (t8)                                       |             s0 = *(t8);
    0x004055c4 lw t8, -0x7e70(gp)                                |             t8 = sym.imp.__errno_location;
    0x004055c8 move t9, t8                                       |             t9 = t8;
    0x004055cc jalr t9                                           |             t9 ();
    0x004055d0 nop                                               |             
    0x004055d4 lw gp, 0x18(fp)                                   |             gp = *(arg_18h);
    0x004055d8 move t8, v0                                       |             t8 = v0;
    0x004055dc lw t8, (t8)                                       |             t8 = *(t8);
    0x004055e0 addiu v0, zero, 0x325                             |             v0 = 0x325;
    0x004055e4 sw v0, 0x10(sp)                                   |             *(var_10h) = v0;
    0x004055e8 sw t8, 0x14(sp)                                   |             *(var_14h) = t8;
    0x004055ec move a0, s0                                       |             a0 = s0;
    0x004055f0 lw t8, -0x7fdc(gp)                                |             t8 = *(gp);
                                                                 |             /* str._s___s____L_d:_Send_ack_error__errno___d_n */
    0x004055f4 addiu a1, t8, 0x7964                              |             a1 = t8 + 0x7964;
    0x004055f8 lw t8, -0x7fdc(gp)                                |             t8 = *(gp);
                                                                 |             /* str.dbd.cpp */
    0x004055fc addiu a2, t8, 0x7824                              |             a2 = t8 + 0x7824;
    0x00405600 lw t8, -0x7fdc(gp)                                |             t8 = *(gp);
                                                                 |             /* str.handle_DBSAVE */
    0x00405604 addiu a3, t8, 0x7f78                              |             a3 = t8 + 0x7f78;
    0x00405608 lw t8, -0x7f1c(gp)                                |             t8 = sym.imp.fprintf
    0x0040560c move t9, t8                                       |             t9 = t8;
    0x00405610 jalr t9                                           |             t9 ();
    0x00405614 nop                                               |             
    0x00405618 lw gp, 0x18(fp)                                   |             gp = *(arg_18h);
                                                                 |         }
    0x0040561c b 0x40584c                                        |         goto label_1;
    0x00405620 nop                                               |         
                                                                 |     }
    0x00405624 addiu t8, fp, 0x44                                |     t8 = fp + 0x44;
    0x00405628 lw a0, 0x2c(fp)                                   |     a0 = *(arg_2ch);
    0x0040562c move a1, t8                                       |     a1 = t8;
    0x00405630 lw t8, -0x7f94(gp)                                |     t8 = sym.db_save_mxml_node_s__char_const_;
    0x00405634 move t9, t8                                       |     t9 = t8;
    0x00405638 jalr t9                                           |     t9 ();
    0x0040563c nop                                               |     
    0x00405640 lw gp, 0x18(fp)                                   |     gp = *(arg_18h);
    0x00405644 move t8, v0                                       |     t8 = v0;
    0x00405648 srl t8, t8, 0x1f                                  |     t8 >>= 0x1f;
    0x0040564c andi t8, t8, 0xff                                 |     t8 &= 0xff;
                                                                 |     if (t8 != 0) {
    0x00405650 beqz t8, 0x405780                                 |         
    0x00405654 nop                                               |         
    0x00405658 lw t8, -0x7ee8(gp)                                |         t8 = *((gp - 8122));
    0x0040565c lw s0, (t8)                                       |         s0 = *(t8);
    0x00405660 lw t8, -0x7e70(gp)                                |         t8 = sym.imp.__errno_location;
    0x00405664 move t9, t8                                       |         t9 = t8;
    0x00405668 jalr t9                                           |         t9 ();
    0x0040566c nop                                               |         
    0x00405670 lw gp, 0x18(fp)                                   |         gp = *(arg_18h);
    0x00405674 move t8, v0                                       |         t8 = v0;
    0x00405678 lw t8, (t8)                                       |         t8 = *(t8);
    0x0040567c addiu v0, zero, 0x32b                             |         v0 = 0x32b;
    0x00405680 sw v0, 0x10(sp)                                   |         *(var_10h) = v0;
    0x00405684 sw t8, 0x14(sp)                                   |         *(var_14h) = t8;
    0x00405688 move a0, s0                                       |         a0 = s0;
    0x0040568c lw t8, -0x7fdc(gp)                                |         t8 = *(gp);
                                                                 |         /* str._s___s____L_d:_Save_db_failed__errno___d_n */
    0x00405690 addiu a1, t8, 0x7c20                              |         a1 = t8 + 0x7c20;
    0x00405694 lw t8, -0x7fdc(gp)                                |         t8 = *(gp);
                                                                 |         /* str.dbd.cpp */
    0x00405698 addiu a2, t8, 0x7824                              |         a2 = t8 + 0x7824;
    0x0040569c lw t8, -0x7fdc(gp)                                |         t8 = *(gp);
                                                                 |         /* str.handle_DBSAVE */
    0x004056a0 addiu a3, t8, 0x7f78                              |         a3 = t8 + 0x7f78;
    0x004056a4 lw t8, -0x7f1c(gp)                                |         t8 = sym.imp.fprintf
    0x004056a8 move t9, t8                                       |         t9 = t8;
    0x004056ac jalr t9                                           |         t9 ();
    0x004056b0 nop                                               |         
    0x004056b4 lw gp, 0x18(fp)                                   |         gp = *(arg_18h);
    0x004056b8 addiu t8, fp, 0x184                               |         t8 = fp + 0x184;
    0x004056bc sw zero, 0x10(sp)                                 |         *(var_10h) = 0;
    0x004056c0 move a0, t8                                       |         a0 = t8;
    0x004056c4 addiu a1, zero, 3                                 |         a1 = 3;
    0x004056c8 addiu a2, zero, -1                                |         a2 = -1;
    0x004056cc move a3, zero                                     |         a3 = 0;
    0x004056d0 lw t8, -0x7fcc(gp)                                |         t8 = sym.generate_ack_char__DB_COMMAND__DB_RET_CODE__int__char_;
    0x004056d4 move t9, t8                                       |         t9 = t8;
    0x004056d8 jalr t9                                           |         t9 ();
    0x004056dc nop                                               |         
    0x004056e0 lw gp, 0x18(fp)                                   |         gp = *(arg_18h);
    0x004056e4 addiu t8, fp, 0x184                               |         t8 = fp + 0x184;
    0x004056e8 lw a0, 0x28(fp)                                   |         a0 = *(arg_28h);
    0x004056ec move a1, t8                                       |         a1 = t8;
    0x004056f0 lw t8, -0x7f40(gp)                                |         t8 = sym.imp.ack_send;
    0x004056f4 move t9, t8                                       |         t9 = t8;
    0x004056f8 jalr t9                                           |         t9 ();
    0x004056fc nop                                               |         
    0x00405700 lw gp, 0x18(fp)                                   |         gp = *(arg_18h);
    0x00405704 move t8, v0                                       |         t8 = v0;
    0x00405708 srl t8, t8, 0x1f                                  |         t8 >>= 0x1f;
    0x0040570c andi t8, t8, 0xff                                 |         t8 &= 0xff;
                                                                 |         if (t8 != 0) {
    0x00405710 beqz t8, 0x405778                                 |             
    0x00405714 nop                                               |             
    0x00405718 lw t8, -0x7ee8(gp)                                |             t8 = *((gp - 8122));
    0x0040571c lw s0, (t8)                                       |             s0 = *(t8);
    0x00405720 lw t8, -0x7e70(gp)                                |             t8 = sym.imp.__errno_location;
    0x00405724 move t9, t8                                       |             t9 = t8;
    0x00405728 jalr t9                                           |             t9 ();
    0x0040572c nop                                               |             
    0x00405730 lw gp, 0x18(fp)                                   |             gp = *(arg_18h);
    0x00405734 move t8, v0                                       |             t8 = v0;
    0x00405738 lw t8, (t8)                                       |             t8 = *(t8);
    0x0040573c addiu v0, zero, 0x32e                             |             v0 = 0x32e;
    0x00405740 sw v0, 0x10(sp)                                   |             *(var_10h) = v0;
    0x00405744 sw t8, 0x14(sp)                                   |             *(var_14h) = t8;
    0x00405748 move a0, s0                                       |             a0 = s0;
    0x0040574c lw t8, -0x7fdc(gp)                                |             t8 = *(gp);
                                                                 |             /* str._s___s____L_d:_Send_ack_error__errno___d_n */
    0x00405750 addiu a1, t8, 0x7964                              |             a1 = t8 + 0x7964;
    0x00405754 lw t8, -0x7fdc(gp)                                |             t8 = *(gp);
                                                                 |             /* str.dbd.cpp */
    0x00405758 addiu a2, t8, 0x7824                              |             a2 = t8 + 0x7824;
    0x0040575c lw t8, -0x7fdc(gp)                                |             t8 = *(gp);
                                                                 |             /* str.handle_DBSAVE */
    0x00405760 addiu a3, t8, 0x7f78                              |             a3 = t8 + 0x7f78;
    0x00405764 lw t8, -0x7f1c(gp)                                |             t8 = sym.imp.fprintf
    0x00405768 move t9, t8                                       |             t9 = t8;
    0x0040576c jalr t9                                           |             t9 ();
    0x00405770 nop                                               |             
    0x00405774 lw gp, 0x18(fp)                                   |             gp = *(arg_18h);
                                                                 |         }
    0x00405778 b 0x40584c                                        |         goto label_1;
    0x0040577c nop                                               |         
                                                                 |     }
    0x00405780 addiu t8, fp, 0x184                               |     t8 = fp + 0x184;
    0x00405784 sw zero, 0x10(sp)                                 |     *(var_10h) = 0;
    0x00405788 move a0, t8                                       |     a0 = t8;
    0x0040578c addiu a1, zero, 3                                 |     a1 = 3;
    0x00405790 move a2, zero                                     |     a2 = 0;
    0x00405794 move a3, zero                                     |     a3 = 0;
    0x00405798 lw t8, -0x7fcc(gp)                                |     t8 = sym.generate_ack_char__DB_COMMAND__DB_RET_CODE__int__char_;
    0x0040579c move t9, t8                                       |     t9 = t8;
    0x004057a0 jalr t9                                           |     t9 ();
    0x004057a4 nop                                               |     
    0x004057a8 lw gp, 0x18(fp)                                   |     gp = *(arg_18h);
    0x004057ac addiu t8, fp, 0x184                               |     t8 = fp + 0x184;
    0x004057b0 lw a0, 0x28(fp)                                   |     a0 = *(arg_28h);
    0x004057b4 move a1, t8                                       |     a1 = t8;
    0x004057b8 lw t8, -0x7f40(gp)                                |     t8 = sym.imp.ack_send;
    0x004057bc move t9, t8                                       |     t9 = t8;
    0x004057c0 jalr t9                                           |     t9 ();
    0x004057c4 nop                                               |     
    0x004057c8 lw gp, 0x18(fp)                                   |     gp = *(arg_18h);
    0x004057cc move t8, v0                                       |     t8 = v0;
    0x004057d0 srl t8, t8, 0x1f                                  |     t8 >>= 0x1f;
    0x004057d4 andi t8, t8, 0xff                                 |     t8 &= 0xff;
                                                                 |     if (t8 != 0) {
    0x004057d8 beqz t8, 0x405848                                 |         
    0x004057dc nop                                               |         
    0x004057e0 lw t8, -0x7ee8(gp)                                |         t8 = *((gp - 8122));
    0x004057e4 lw s0, (t8)                                       |         s0 = *(t8);
    0x004057e8 lw t8, -0x7e70(gp)                                |         t8 = sym.imp.__errno_location;
    0x004057ec move t9, t8                                       |         t9 = t8;
    0x004057f0 jalr t9                                           |         t9 ();
    0x004057f4 nop                                               |         
    0x004057f8 lw gp, 0x18(fp)                                   |         gp = *(arg_18h);
    0x004057fc move t8, v0                                       |         t8 = v0;
    0x00405800 lw t8, (t8)                                       |         t8 = *(t8);
    0x00405804 addiu v0, zero, 0x335                             |         v0 = 0x335;
    0x00405808 sw v0, 0x10(sp)                                   |         *(var_10h) = v0;
    0x0040580c sw t8, 0x14(sp)                                   |         *(var_14h) = t8;
    0x00405810 move a0, s0                                       |         a0 = s0;
    0x00405814 lw t8, -0x7fdc(gp)                                |         t8 = *(gp);
                                                                 |         /* str._s___s____L_d:_Send_ack_error__errno___d_n */
    0x00405818 addiu a1, t8, 0x7964                              |         a1 = t8 + 0x7964;
    0x0040581c lw t8, -0x7fdc(gp)                                |         t8 = *(gp);
                                                                 |         /* str.dbd.cpp */
    0x00405820 addiu a2, t8, 0x7824                              |         a2 = t8 + 0x7824;
    0x00405824 lw t8, -0x7fdc(gp)                                |         t8 = *(gp);
                                                                 |         /* str.handle_DBSAVE */
    0x00405828 addiu a3, t8, 0x7f78                              |         a3 = t8 + 0x7f78;
    0x0040582c lw t8, -0x7f1c(gp)                                |         t8 = sym.imp.fprintf
    0x00405830 move t9, t8                                       |         t9 = t8;
    0x00405834 jalr t9                                           |         t9 ();
    0x00405838 nop                                               |         
    0x0040583c lw gp, 0x18(fp)                                   |         gp = *(arg_18h);
    0x00405840 addiu t8, zero, -6                                |         t8 = -6;
    0x00405844 sw t8, 0x34(fp)                                   |         *(arg_34h) = t8;
                                                                 |     }
    0x00405848 sw zero, 0x34(fp)                                 |     *(arg_34h) = 0;
                                                                 | label_1:
    0x0040584c lw t8, 0x34(fp)                                   |     t8 = *(arg_34h);
                                                                 | label_0:
    0x00405850 move v0, t8                                       |     v0 = t8;
    0x00405854 lw t8, -0x7e74(gp)                                |     t8 = *((gp - 8093));
    0x00405858 lw v1, 0x1184(fp)                                 |     v1 = *(arg_1184h);
    0x0040585c lw t8, (t8)                                       |     t8 = *(t8);
                                                                 |     if (v1 != t8) {
    0x00405860 beq v1, t8, 0x405878                              |         
    0x00405864 nop                                               |         
    0x00405868 lw t8, -0x7ee4(gp)                                |         t8 = sym.imp.__stack_chk_fail;
    0x0040586c move t9, t8                                       |         t9 = t8;
    0x00405870 jalr t9                                           |         t9 ();
    0x00405874 nop                                               |         
                                                                 |     }
    0x00405878 move sp, fp                                       |     
    0x0040587c lw ra, 0x1194(sp)                                 |     ra = *(var_1194h);
    0x00405880 lw fp, 0x1190(sp)                                 |     fp = *(var_1190h);
    0x00405884 lw s0, 0x118c(sp)                                 |     s0 = *(var_118ch);
    0x00405888 addiu sp, sp, 0x1198                              |     
    0x0040588c jr ra                                             |     return v1;
    0x00405890 nop                                               |     
                                                                 | }
    ; assembly                                               | /* r2dec pseudo code output */
                                                             | /* /logs/firmware/patool_extraction/DUMP/mtdblock8_unblob_extracted/mtdblock8_extract/0-9650176.squashfs_v4_le_extract/sbin/dbd @ 0x402578 */
                                                             | #include <stdint.h>
                                                             |  
    ; (fcn) sym.handle_DBSET_mxml_node_s__int__char_ ()      | void handle_DBSET_mxml_node_s_int_char_ () {
                                                             |     /* handle_DBSET(mxml_node_s*, int, char*) */
    0x00402578 lui gp, 2                                     |     
    0x0040257c addiu gp, gp, -0x1548                         |     
    0x00402580 addu gp, gp, t9                               |     gp += t9;
    0x00402584 addiu sp, sp, -0x11a0                         |     
    0x00402588 sw ra, 0x119c(sp)                             |     *(var_119ch) = ra;
    0x0040258c sw fp, 0x1198(sp)                             |     *(var_1198h) = fp;
    0x00402590 sw s0, 0x1194(sp)                             |     *(var_1194h) = s0;
    0x00402594 move fp, sp                                   |     fp = sp;
    0x00402598 sw gp, 0x18(sp)                               |     *(var_18h) = gp;
    0x0040259c sw a0, 0x2c(fp)                               |     *(arg_2ch) = a0;
    0x004025a0 sw a1, 0x28(fp)                               |     *(arg_28h) = a1;
    0x004025a4 sw a2, 0x24(fp)                               |     *(arg_24h) = a2;
    0x004025a8 lw t8, -0x7e74(gp)                            |     t8 = *((gp - 8093));
    0x004025ac lw t8, (t8)                                   |     t8 = *(t8);
    0x004025b0 sw t8, 0x118c(fp)                             |     *(arg_118ch) = t8;
    0x004025b4 sb zero, 0x37(fp)                             |     *(arg_37h) = 0;
    0x004025b8 sw zero, 0x3c(fp)                             |     *(arg_3ch) = 0;
    0x004025bc sw zero, 0x40(fp)                             |     *(arg_40h) = 0;
    0x004025c0 sw zero, 0x44(fp)                             |     *(arg_44h) = 0;
    0x004025c4 addiu t8, zero, -1                            |     t8 = -1;
    0x004025c8 sw t8, 0x38(fp)                               |     *(arg_38h) = t8;
    0x004025cc sw zero, 0x48(fp)                             |     *(arg_48h) = 0;
    0x004025d0 lw t8, 0x24(fp)                               |     t8 = *(arg_24h);
                                                             |     if (t8 == 0) {
    0x004025d4 bnez t8, 0x402648                             |         
    0x004025d8 nop                                           |         
    0x004025dc lw t8, -0x7ee8(gp)                            |         t8 = *((gp - 8122));
    0x004025e0 lw s0, (t8)                                   |         s0 = *(t8);
    0x004025e4 lw t8, -0x7e70(gp)                            |         t8 = sym.imp.__errno_location;
    0x004025e8 move t9, t8                                   |         t9 = t8;
    0x004025ec jalr t9                                       |         t9 ();
    0x004025f0 nop                                           |         
    0x004025f4 lw gp, 0x18(fp)                               |         gp = *(arg_18h);
    0x004025f8 move t8, v0                                   |         t8 = v0;
    0x004025fc lw t8, (t8)                                   |         t8 = *(t8);
    0x00402600 addiu v0, zero, 0xbd                          |         v0 = 0xbd;
    0x00402604 sw v0, 0x10(sp)                               |         *(var_10h) = v0;
    0x00402608 sw t8, 0x14(sp)                               |         *(var_14h) = t8;
    0x0040260c move a0, s0                                   |         a0 = s0;
    0x00402610 lw t8, -0x7fdc(gp)                            |         t8 = *(gp);
                                                             |         /* str._s___s____L_d:_Invalid_para__errno___d_n */
    0x00402614 addiu a1, t8, 0x77f8                          |         a1 = t8 + 0x77f8;
    0x00402618 lw t8, -0x7fdc(gp)                            |         t8 = *(gp);
                                                             |         /* str.dbd.cpp */
    0x0040261c addiu a2, t8, 0x7824                          |         a2 = t8 + 0x7824;
    0x00402620 lw t8, -0x7fdc(gp)                            |         t8 = *(gp);
                                                             |         /* str.handle_DBSET */
    0x00402624 addiu a3, t8, 0x7f04                          |         a3 = t8 + 0x7f04;
    0x00402628 lw t8, -0x7f1c(gp)                            |         t8 = sym.imp.fprintf
    0x0040262c move t9, t8                                   |         t9 = t8;
    0x00402630 jalr t9                                       |         t9 ();
    0x00402634 nop                                           |         
    0x00402638 lw gp, 0x18(fp)                               |         gp = *(arg_18h);
    0x0040263c addiu t8, zero, -7                            |         t8 = -7;
    0x00402640 b 0x402a1c                                    |         goto label_0;
    0x00402644 nop                                           |         
                                                             |     }
    0x00402648 lw t8, 0x24(fp)                               |     t8 = *(arg_24h);
    0x0040264c sw t8, 0x48(fp)                               |     *(arg_48h) = t8;
    0x00402650 lw t8, 0x24(fp)                               |     t8 = *(arg_24h);
    0x00402654 addiu t8, t8, 0xc                             |     t8 += 0xc;
    0x00402658 sw t8, 0x3c(fp)                               |     *(arg_3ch) = t8;
    0x0040265c lw t8, 0x48(fp)                               |     t8 = *(arg_48h);
    0x00402660 lw t8, 4(t8)                                  |     t8 = *((t8 + 1));
    0x00402664 sw t8, 0x44(fp)                               |     *(arg_44h) = t8;
    0x00402668 addiu v0, fp, 0x4c                            |     v0 = fp + 0x4c;
    0x0040266c addiu t8, fp, 0x37                            |     t8 = fp + 0x37;
    0x00402670 lw a0, 0x3c(fp)                               |     a0 = *(arg_3ch);
    0x00402674 lw a1, 0x44(fp)                               |     a1 = *(arg_44h);
    0x00402678 move a2, v0                                   |     a2 = v0;
    0x0040267c move a3, t8                                   |     a3 = t8;
    0x00402680 lw t8, -0x7fd0(gp)                            |     t8 = sym.parse_string_char__int__char_____10__32___char_;
    0x00402684 move t9, t8                                   |     t9 = t8;
    0x00402688 jalr t9                                       |     t9 ();
    0x0040268c nop                                           |     
    0x00402690 lw gp, 0x18(fp)                               |     gp = *(arg_18h);
    0x00402694 move t8, v0                                   |     t8 = v0;
    0x00402698 srl t8, t8, 0x1f                              |     t8 >>= 0x1f;
    0x0040269c andi t8, t8, 0xff                             |     t8 &= 0xff;
                                                             |     if (t8 != 0) {
    0x004026a0 beqz t8, 0x4027d0                             |         
    0x004026a4 nop                                           |         
    0x004026a8 lw t8, -0x7ee8(gp)                            |         t8 = *((gp - 8122));
    0x004026ac lw s0, (t8)                                   |         s0 = *(t8);
    0x004026b0 lw t8, -0x7e70(gp)                            |         t8 = sym.imp.__errno_location;
    0x004026b4 move t9, t8                                   |         t9 = t8;
    0x004026b8 jalr t9                                       |         t9 ();
    0x004026bc nop                                           |         
    0x004026c0 lw gp, 0x18(fp)                               |         gp = *(arg_18h);
    0x004026c4 move t8, v0                                   |         t8 = v0;
    0x004026c8 lw t8, (t8)                                   |         t8 = *(t8);
    0x004026cc addiu v0, zero, 0xc5                          |         v0 = 0xc5;
    0x004026d0 sw v0, 0x10(sp)                               |         *(var_10h) = v0;
    0x004026d4 sw t8, 0x14(sp)                               |         *(var_14h) = t8;
    0x004026d8 move a0, s0                                   |         a0 = s0;
    0x004026dc lw t8, -0x7fdc(gp)                            |         t8 = *(gp);
                                                             |         /* str._s___s____L_d:_Parse_xml_failed__errno___d_n */
    0x004026e0 addiu a1, t8, 0x7934                          |         a1 = t8 + 0x7934;
    0x004026e4 lw t8, -0x7fdc(gp)                            |         t8 = *(gp);
                                                             |         /* str.dbd.cpp */
    0x004026e8 addiu a2, t8, 0x7824                          |         a2 = t8 + 0x7824;
    0x004026ec lw t8, -0x7fdc(gp)                            |         t8 = *(gp);
                                                             |         /* str.handle_DBSET */
    0x004026f0 addiu a3, t8, 0x7f04                          |         a3 = t8 + 0x7f04;
    0x004026f4 lw t8, -0x7f1c(gp)                            |         t8 = sym.imp.fprintf
    0x004026f8 move t9, t8                                   |         t9 = t8;
    0x004026fc jalr t9                                       |         t9 ();
    0x00402700 nop                                           |         
    0x00402704 lw gp, 0x18(fp)                               |         gp = *(arg_18h);
    0x00402708 addiu t8, fp, 0x18c                           |         t8 = fp + 0x18c;
    0x0040270c sw zero, 0x10(sp)                             |         *(var_10h) = 0;
    0x00402710 move a0, t8                                   |         a0 = t8;
    0x00402714 addiu a1, zero, 1                             |         a1 = 1;
    0x00402718 addiu a2, zero, -1                            |         a2 = -1;
    0x0040271c move a3, zero                                 |         a3 = 0;
    0x00402720 lw t8, -0x7fcc(gp)                            |         t8 = sym.generate_ack_char__DB_COMMAND__DB_RET_CODE__int__char_;
    0x00402724 move t9, t8                                   |         t9 = t8;
    0x00402728 jalr t9                                       |         t9 ();
    0x0040272c nop                                           |         
    0x00402730 lw gp, 0x18(fp)                               |         gp = *(arg_18h);
    0x00402734 addiu t8, fp, 0x18c                           |         t8 = fp + 0x18c;
    0x00402738 lw a0, 0x28(fp)                               |         a0 = *(arg_28h);
    0x0040273c move a1, t8                                   |         a1 = t8;
    0x00402740 lw t8, -0x7f40(gp)                            |         t8 = sym.imp.ack_send;
    0x00402744 move t9, t8                                   |         t9 = t8;
    0x00402748 jalr t9                                       |         t9 ();
    0x0040274c nop                                           |         
    0x00402750 lw gp, 0x18(fp)                               |         gp = *(arg_18h);
    0x00402754 move t8, v0                                   |         t8 = v0;
    0x00402758 srl t8, t8, 0x1f                              |         t8 >>= 0x1f;
    0x0040275c andi t8, t8, 0xff                             |         t8 &= 0xff;
                                                             |         if (t8 != 0) {
    0x00402760 beqz t8, 0x4027c8                             |             
    0x00402764 nop                                           |             
    0x00402768 lw t8, -0x7ee8(gp)                            |             t8 = *((gp - 8122));
    0x0040276c lw s0, (t8)                                   |             s0 = *(t8);
    0x00402770 lw t8, -0x7e70(gp)                            |             t8 = sym.imp.__errno_location;
    0x00402774 move t9, t8                                   |             t9 = t8;
    0x00402778 jalr t9                                       |             t9 ();
    0x0040277c nop                                           |             
    0x00402780 lw gp, 0x18(fp)                               |             gp = *(arg_18h);
    0x00402784 move t8, v0                                   |             t8 = v0;
    0x00402788 lw t8, (t8)                                   |             t8 = *(t8);
    0x0040278c addiu v0, zero, 0xc8                          |             v0 = 0xc8;
    0x00402790 sw v0, 0x10(sp)                               |             *(var_10h) = v0;
    0x00402794 sw t8, 0x14(sp)                               |             *(var_14h) = t8;
    0x00402798 move a0, s0                                   |             a0 = s0;
    0x0040279c lw t8, -0x7fdc(gp)                            |             t8 = *(gp);
                                                             |             /* str._s___s____L_d:_Send_ack_error__errno___d_n */
    0x004027a0 addiu a1, t8, 0x7964                          |             a1 = t8 + 0x7964;
    0x004027a4 lw t8, -0x7fdc(gp)                            |             t8 = *(gp);
                                                             |             /* str.dbd.cpp */
    0x004027a8 addiu a2, t8, 0x7824                          |             a2 = t8 + 0x7824;
    0x004027ac lw t8, -0x7fdc(gp)                            |             t8 = *(gp);
                                                             |             /* str.handle_DBSET */
    0x004027b0 addiu a3, t8, 0x7f04                          |             a3 = t8 + 0x7f04;
    0x004027b4 lw t8, -0x7f1c(gp)                            |             t8 = sym.imp.fprintf
    0x004027b8 move t9, t8                                   |             t9 = t8;
    0x004027bc jalr t9                                       |             t9 ();
    0x004027c0 nop                                           |             
    0x004027c4 lw gp, 0x18(fp)                               |             gp = *(arg_18h);
                                                             |         }
    0x004027c8 b 0x402a18                                    |         goto label_1;
    0x004027cc nop                                           |         
                                                             |     }
    0x004027d0 lw t8, 0x44(fp)                               |     t8 = *(arg_44h);
    0x004027d4 addiu t8, t8, 0xc                             |     t8 += 0xc;
    0x004027d8 lw v0, 0x24(fp)                               |     v0 = *(arg_24h);
    0x004027dc addu t8, v0, t8                               |     t8 = v0 + t8;
    0x004027e0 sw t8, 0x40(fp)                               |     *(arg_40h) = t8;
    0x004027e4 lb t8, 0x37(fp)                               |     t8 = *(arg_37h);
    0x004027e8 addiu v0, fp, 0x4c                            |     v0 = fp + 0x4c;
    0x004027ec lw a0, 0x2c(fp)                               |     a0 = *(arg_2ch);
    0x004027f0 move a1, v0                                   |     a1 = v0;
    0x004027f4 move a2, t8                                   |     a2 = t8;
    0x004027f8 lw a3, 0x40(fp)                               |     a3 = *(arg_40h);
    0x004027fc lw t8, -0x7fc8(gp)                            |     t8 = sym.xml_set_mxml_node_s__char_const_____32___char__char_;
    0x00402800 move t9, t8                                   |     t9 = t8;
    0x00402804 jalr t9                                       |     t9 ();
    0x00402808 nop                                           |     
    0x0040280c lw gp, 0x18(fp)                               |     gp = *(arg_18h);
    0x00402810 move t8, v0                                   |     t8 = v0;
    0x00402814 srl t8, t8, 0x1f                              |     t8 >>= 0x1f;
    0x00402818 andi t8, t8, 0xff                             |     t8 &= 0xff;
                                                             |     if (t8 != 0) {
    0x0040281c beqz t8, 0x40294c                             |         
    0x00402820 nop                                           |         
    0x00402824 lw t8, -0x7ee8(gp)                            |         t8 = *((gp - 8122));
    0x00402828 lw s0, (t8)                                   |         s0 = *(t8);
    0x0040282c lw t8, -0x7e70(gp)                            |         t8 = sym.imp.__errno_location;
    0x00402830 move t9, t8                                   |         t9 = t8;
    0x00402834 jalr t9                                       |         t9 ();
    0x00402838 nop                                           |         
    0x0040283c lw gp, 0x18(fp)                               |         gp = *(arg_18h);
    0x00402840 move t8, v0                                   |         t8 = v0;
    0x00402844 lw t8, (t8)                                   |         t8 = *(t8);
    0x00402848 addiu v0, zero, 0xcf                          |         v0 = 0xcf;
    0x0040284c sw v0, 0x10(sp)                               |         *(var_10h) = v0;
    0x00402850 sw t8, 0x14(sp)                               |         *(var_14h) = t8;
    0x00402854 move a0, s0                                   |         a0 = s0;
    0x00402858 lw t8, -0x7fdc(gp)                            |         t8 = *(gp);
                                                             |         /* str._s___s____L_d:_Set_xml_failed__errno___d_n */
    0x0040285c addiu a1, t8, 0x7990                          |         a1 = t8 + 0x7990;
    0x00402860 lw t8, -0x7fdc(gp)                            |         t8 = *(gp);
                                                             |         /* str.dbd.cpp */
    0x00402864 addiu a2, t8, 0x7824                          |         a2 = t8 + 0x7824;
    0x00402868 lw t8, -0x7fdc(gp)                            |         t8 = *(gp);
                                                             |         /* str.handle_DBSET */
    0x0040286c addiu a3, t8, 0x7f04                          |         a3 = t8 + 0x7f04;
    0x00402870 lw t8, -0x7f1c(gp)                            |         t8 = sym.imp.fprintf
    0x00402874 move t9, t8                                   |         t9 = t8;
    0x00402878 jalr t9                                       |         t9 ();
    0x0040287c nop                                           |         
    0x00402880 lw gp, 0x18(fp)                               |         gp = *(arg_18h);
    0x00402884 addiu t8, fp, 0x18c                           |         t8 = fp + 0x18c;
    0x00402888 sw zero, 0x10(sp)                             |         *(var_10h) = 0;
    0x0040288c move a0, t8                                   |         a0 = t8;
    0x00402890 addiu a1, zero, 1                             |         a1 = 1;
    0x00402894 addiu a2, zero, -1                            |         a2 = -1;
    0x00402898 move a3, zero                                 |         a3 = 0;
    0x0040289c lw t8, -0x7fcc(gp)                            |         t8 = sym.generate_ack_char__DB_COMMAND__DB_RET_CODE__int__char_;
    0x004028a0 move t9, t8                                   |         t9 = t8;
    0x004028a4 jalr t9                                       |         t9 ();
    0x004028a8 nop                                           |         
    0x004028ac lw gp, 0x18(fp)                               |         gp = *(arg_18h);
    0x004028b0 addiu t8, fp, 0x18c                           |         t8 = fp + 0x18c;
    0x004028b4 lw a0, 0x28(fp)                               |         a0 = *(arg_28h);
    0x004028b8 move a1, t8                                   |         a1 = t8;
    0x004028bc lw t8, -0x7f40(gp)                            |         t8 = sym.imp.ack_send;
    0x004028c0 move t9, t8                                   |         t9 = t8;
    0x004028c4 jalr t9                                       |         t9 ();
    0x004028c8 nop                                           |         
    0x004028cc lw gp, 0x18(fp)                               |         gp = *(arg_18h);
    0x004028d0 move t8, v0                                   |         t8 = v0;
    0x004028d4 srl t8, t8, 0x1f                              |         t8 >>= 0x1f;
    0x004028d8 andi t8, t8, 0xff                             |         t8 &= 0xff;
                                                             |         if (t8 != 0) {
    0x004028dc beqz t8, 0x402944                             |             
    0x004028e0 nop                                           |             
    0x004028e4 lw t8, -0x7ee8(gp)                            |             t8 = *((gp - 8122));
    0x004028e8 lw s0, (t8)                                   |             s0 = *(t8);
    0x004028ec lw t8, -0x7e70(gp)                            |             t8 = sym.imp.__errno_location;
    0x004028f0 move t9, t8                                   |             t9 = t8;
    0x004028f4 jalr t9                                       |             t9 ();
    0x004028f8 nop                                           |             
    0x004028fc lw gp, 0x18(fp)                               |             gp = *(arg_18h);
    0x00402900 move t8, v0                                   |             t8 = v0;
    0x00402904 lw t8, (t8)                                   |             t8 = *(t8);
    0x00402908 addiu v0, zero, 0xd2                          |             v0 = 0xd2;
    0x0040290c sw v0, 0x10(sp)                               |             *(var_10h) = v0;
    0x00402910 sw t8, 0x14(sp)                               |             *(var_14h) = t8;
    0x00402914 move a0, s0                                   |             a0 = s0;
    0x00402918 lw t8, -0x7fdc(gp)                            |             t8 = *(gp);
                                                             |             /* str._s___s____L_d:_Send_ack_error__errno___d_n */
    0x0040291c addiu a1, t8, 0x7964                          |             a1 = t8 + 0x7964;
    0x00402920 lw t8, -0x7fdc(gp)                            |             t8 = *(gp);
                                                             |             /* str.dbd.cpp */
    0x00402924 addiu a2, t8, 0x7824                          |             a2 = t8 + 0x7824;
    0x00402928 lw t8, -0x7fdc(gp)                            |             t8 = *(gp);
                                                             |             /* str.handle_DBSET */
    0x0040292c addiu a3, t8, 0x7f04                          |             a3 = t8 + 0x7f04;
    0x00402930 lw t8, -0x7f1c(gp)                            |             t8 = sym.imp.fprintf
    0x00402934 move t9, t8                                   |             t9 = t8;
    0x00402938 jalr t9                                       |             t9 ();
    0x0040293c nop                                           |             
    0x00402940 lw gp, 0x18(fp)                               |             gp = *(arg_18h);
                                                             |         }
    0x00402944 b 0x402a18                                    |         goto label_1;
    0x00402948 nop                                           |         
                                                             |     }
    0x0040294c addiu t8, fp, 0x18c                           |     t8 = fp + 0x18c;
    0x00402950 sw zero, 0x10(sp)                             |     *(var_10h) = 0;
    0x00402954 move a0, t8                                   |     a0 = t8;
    0x00402958 addiu a1, zero, 1                             |     a1 = 1;
    0x0040295c move a2, zero                                 |     a2 = 0;
    0x00402960 move a3, zero                                 |     a3 = 0;
    0x00402964 lw t8, -0x7fcc(gp)                            |     t8 = sym.generate_ack_char__DB_COMMAND__DB_RET_CODE__int__char_;
    0x00402968 move t9, t8                                   |     t9 = t8;
    0x0040296c jalr t9                                       |     t9 ();
    0x00402970 nop                                           |     
    0x00402974 lw gp, 0x18(fp)                               |     gp = *(arg_18h);
    0x00402978 addiu t8, fp, 0x18c                           |     t8 = fp + 0x18c;
    0x0040297c lw a0, 0x28(fp)                               |     a0 = *(arg_28h);
    0x00402980 move a1, t8                                   |     a1 = t8;
    0x00402984 lw t8, -0x7f40(gp)                            |     t8 = sym.imp.ack_send;
    0x00402988 move t9, t8                                   |     t9 = t8;
    0x0040298c jalr t9                                       |     t9 ();
    0x00402990 nop                                           |     
    0x00402994 lw gp, 0x18(fp)                               |     gp = *(arg_18h);
    0x00402998 move t8, v0                                   |     t8 = v0;
    0x0040299c srl t8, t8, 0x1f                              |     t8 >>= 0x1f;
    0x004029a0 andi t8, t8, 0xff                             |     t8 &= 0xff;
                                                             |     if (t8 != 0) {
    0x004029a4 beqz t8, 0x402a14                             |         
    0x004029a8 nop                                           |         
    0x004029ac lw t8, -0x7ee8(gp)                            |         t8 = *((gp - 8122));
    0x004029b0 lw s0, (t8)                                   |         s0 = *(t8);
    0x004029b4 lw t8, -0x7e70(gp)                            |         t8 = sym.imp.__errno_location;
    0x004029b8 move t9, t8                                   |         t9 = t8;
    0x004029bc jalr t9                                       |         t9 ();
    0x004029c0 nop                                           |         
    0x004029c4 lw gp, 0x18(fp)                               |         gp = *(arg_18h);
    0x004029c8 move t8, v0                                   |         t8 = v0;
    0x004029cc lw t8, (t8)                                   |         t8 = *(t8);
    0x004029d0 addiu v0, zero, 0xda                          |         v0 = 0xda;
    0x004029d4 sw v0, 0x10(sp)                               |         *(var_10h) = v0;
    0x004029d8 sw t8, 0x14(sp)                               |         *(var_14h) = t8;
    0x004029dc move a0, s0                                   |         a0 = s0;
    0x004029e0 lw t8, -0x7fdc(gp)                            |         t8 = *(gp);
                                                             |         /* str._s___s____L_d:_Send_ack_error__errno___d_n */
    0x004029e4 addiu a1, t8, 0x7964                          |         a1 = t8 + 0x7964;
    0x004029e8 lw t8, -0x7fdc(gp)                            |         t8 = *(gp);
                                                             |         /* str.dbd.cpp */
    0x004029ec addiu a2, t8, 0x7824                          |         a2 = t8 + 0x7824;
    0x004029f0 lw t8, -0x7fdc(gp)                            |         t8 = *(gp);
                                                             |         /* str.handle_DBSET */
    0x004029f4 addiu a3, t8, 0x7f04                          |         a3 = t8 + 0x7f04;
    0x004029f8 lw t8, -0x7f1c(gp)                            |         t8 = sym.imp.fprintf
    0x004029fc move t9, t8                                   |         t9 = t8;
    0x00402a00 jalr t9                                       |         t9 ();
    0x00402a04 nop                                           |         
    0x00402a08 lw gp, 0x18(fp)                               |         gp = *(arg_18h);
    0x00402a0c addiu t8, zero, -6                            |         t8 = -6;
    0x00402a10 sw t8, 0x38(fp)                               |         *(arg_38h) = t8;
                                                             |     }
    0x00402a14 sw zero, 0x38(fp)                             |     *(arg_38h) = 0;
                                                             | label_1:
    0x00402a18 lw t8, 0x38(fp)                               |     t8 = *(arg_38h);
                                                             | label_0:
    0x00402a1c move v0, t8                                   |     v0 = t8;
    0x00402a20 lw t8, -0x7e74(gp)                            |     t8 = *((gp - 8093));
    0x00402a24 lw v1, 0x118c(fp)                             |     v1 = *(arg_118ch);
    0x00402a28 lw t8, (t8)                                   |     t8 = *(t8);
                                                             |     if (v1 != t8) {
    0x00402a2c beq v1, t8, 0x402a44                          |         
    0x00402a30 nop                                           |         
    0x00402a34 lw t8, -0x7ee4(gp)                            |         t8 = sym.imp.__stack_chk_fail;
    0x00402a38 move t9, t8                                   |         t9 = t8;
    0x00402a3c jalr t9                                       |         t9 ();
    0x00402a40 nop                                           |         
                                                             |     }
    0x00402a44 move sp, fp                                   |     
    0x00402a48 lw ra, 0x119c(sp)                             |     ra = *(var_119ch);
    0x00402a4c lw fp, 0x1198(sp)                             |     fp = *(var_1198h);
    0x00402a50 lw s0, 0x1194(sp)                             |     s0 = *(var_1194h);
    0x00402a54 addiu sp, sp, 0x11a0                          |     
    0x00402a58 jr ra                                         |     return v1;
    0x00402a5c nop                                           |     
                                                             | }
    ; assembly                                               | /* r2dec pseudo code output */
                                                             | /* /logs/firmware/patool_extraction/DUMP/mtdblock8_unblob_extracted/mtdblock8_extract/0-9650176.squashfs_v4_le_extract/sbin/dbd @ 0x405dc8 */
                                                             | #include <stdint.h>
                                                             |  
    ; (fcn) sym.mergeDB_mxml_node_s__mxml_node_s_ ()         | void mergeDB_mxml_node_s_mxml_node_s_ () {
                                                             |     /* mergeDB(mxml_node_s*, mxml_node_s*) */
    0x00405dc8 lui gp, 2                                     |     
    0x00405dcc addiu gp, gp, -0x4d98                         |     
    0x00405dd0 addu gp, gp, t9                               |     gp += t9;
    0x00405dd4 addiu sp, sp, -0x1190                         |     
    0x00405dd8 sw ra, 0x118c(sp)                             |     *(var_118ch) = ra;
    0x00405ddc sw fp, 0x1188(sp)                             |     *(var_1188h) = fp;
    0x00405de0 sw s0, 0x1184(sp)                             |     *(var_1184h) = s0;
    0x00405de4 move fp, sp                                   |     fp = sp;
    0x00405de8 sw gp, 0x18(sp)                               |     *(var_18h) = gp;
    0x00405dec sw a0, 0x24(fp)                               |     *(arg_24h) = a0;
    0x00405df0 sw a1, 0x20(fp)                               |     *(arg_20h) = a1;
    0x00405df4 lw t8, -0x7e74(gp)                            |     t8 = *((gp - 8093));
    0x00405df8 lw t8, (t8)                                   |     t8 = *(t8);
    0x00405dfc sw t8, 0x117c(fp)                             |     *(arg_117ch) = t8;
    0x00405e00 sw zero, 0x28(fp)                             |     *(arg_28h) = 0;
    0x00405e04 sw zero, 0x2c(fp)                             |     *(arg_2ch) = 0;
    0x00405e08 sw zero, 0x38(fp)                             |     *(arg_38h) = 0;
    0x00405e0c lw t8, 0x24(fp)                               |     t8 = *(arg_24h);
                                                             |     if (t8 != 0) {
    0x00405e10 beqz t8, 0x405e24                             |         
    0x00405e14 nop                                           |         
    0x00405e18 lw t8, 0x20(fp)                               |         t8 = *(arg_20h);
                                                             |         if (t8 != 0) {
    0x00405e1c bnez t8, 0x405e90                             |             goto label_1;
                                                             |         }
    0x00405e20 nop                                           |         
                                                             |     }
    0x00405e24 lw t8, -0x7ee8(gp)                            |     t8 = *((gp - 8122));
    0x00405e28 lw s0, (t8)                                   |     s0 = *(t8);
    0x00405e2c lw t8, -0x7e70(gp)                            |     t8 = sym.imp.__errno_location;
    0x00405e30 move t9, t8                                   |     t9 = t8;
    0x00405e34 jalr t9                                       |     t9 ();
    0x00405e38 nop                                           |     
    0x00405e3c lw gp, 0x18(fp)                               |     gp = *(arg_18h);
    0x00405e40 move t8, v0                                   |     t8 = v0;
    0x00405e44 lw t8, (t8)                                   |     t8 = *(t8);
    0x00405e48 addiu v0, zero, 0x368                         |     v0 = 0x368;
    0x00405e4c sw v0, 0x10(sp)                               |     *(var_10h) = v0;
    0x00405e50 sw t8, 0x14(sp)                               |     *(var_14h) = t8;
    0x00405e54 move a0, s0                                   |     a0 = s0;
    0x00405e58 lw t8, -0x7fdc(gp)                            |     t8 = *(gp);
                                                             |     /* str._s___s____L_d:_Invalid_para__errno___d_n */
    0x00405e5c addiu a1, t8, 0x77f8                          |     a1 = t8 + 0x77f8;
    0x00405e60 lw t8, -0x7fdc(gp)                            |     t8 = *(gp);
                                                             |     /* str.dbd.cpp */
    0x00405e64 addiu a2, t8, 0x7824                          |     a2 = t8 + 0x7824;
    0x00405e68 lw t8, -0x7fdc(gp)                            |     t8 = *(gp);
                                                             |     /* str.mergeDB */
    0x00405e6c addiu a3, t8, 0x7f98                          |     a3 = t8 + 0x7f98;
    0x00405e70 lw t8, -0x7f1c(gp)                            |     t8 = sym.imp.fprintf
    0x00405e74 move t9, t8                                   |     t9 = t8;
    0x00405e78 jalr t9                                       |     t9 ();
    0x00405e7c nop                                           |     
    0x00405e80 lw gp, 0x18(fp)                               |     gp = *(arg_18h);
    0x00405e84 addiu t8, zero, -7                            |     t8 = -7;
    0x00405e88 b 0x40634c                                    |     goto label_2;
    0x00405e8c nop                                           |     
                                                             | label_1:
    0x00405e90 sw zero, 0x30(fp)                             |     *(arg_30h) = 0;
    0x00405e94 b 0x405ebc                                    |     goto label_3;
    0x00405e98 nop                                           |     
                                                             |     do {
    0x00405e9c lw t8, 0x30(fp)                               |         t8 = *(arg_30h);
    0x00405ea0 sll t8, t8, 2                                 |         t8 <<= 2;
    0x00405ea4 addiu v0, fp, 0x1180                          |         v0 = fp + 0x1180;
    0x00405ea8 addu t8, v0, t8                               |         t8 = v0 + t8;
    0x00405eac sw zero, -0x1004(t8)                          |         *((t8 - 4100)) = 0;
    0x00405eb0 lw t8, 0x30(fp)                               |         t8 = *(arg_30h);
    0x00405eb4 addiu t8, t8, 1                               |         t8++;
    0x00405eb8 sw t8, 0x30(fp)                               |         *(arg_30h) = t8;
                                                             | label_3:
    0x00405ebc lw t8, 0x30(fp)                               |         t8 = *(arg_30h);
    0x00405ec0 slti t8, t8, 0x80                             |         t8 = (t8 < 0x80) ? 1 : 0;
    0x00405ec4 bnez t8, 0x405e9c                             |         
                                                             |     } while (t8 != 0);
    0x00405ec8 nop                                           |     
    0x00405ecc addiu t8, fp, 0x37c                           |     t8 = fp + 0x37c;
    0x00405ed0 move a0, t8                                   |     a0 = t8;
    0x00405ed4 move a1, zero                                 |     a1 = 0;
    0x00405ed8 addiu a2, zero, 0xe00                         |     a2 = 0xe00;
    0x00405edc lw t8, -0x7f14(gp)                            |     t8 = sym.imp.memset;
    0x00405ee0 move t9, t8                                   |     t9 = t8;
    0x00405ee4 jalr t9                                       |     t9 ();
    0x00405ee8 nop                                           |     
    0x00405eec lw gp, 0x18(fp)                               |     gp = *(arg_18h);
    0x00405ef0 sw zero, 0x10(sp)                             |     *(var_10h) = 0;
    0x00405ef4 addiu t8, zero, 1                             |     t8 = 1;
    0x00405ef8 sw t8, 0x14(sp)                               |     *(var_14h) = t8;
    0x00405efc lw a0, 0x24(fp)                               |     a0 = *(arg_24h);
    0x00405f00 lw a1, 0x24(fp)                               |     a1 = *(arg_24h);
    0x00405f04 lw t8, -0x7fdc(gp)                            |     t8 = *(gp);
                                                             |     /* str.data */
    0x00405f08 addiu a2, t8, 0x7a60                          |     a2 = t8 + 0x7a60;
    0x00405f0c move a3, zero                                 |     a3 = 0;
    0x00405f10 lw t8, -0x7ea8(gp)                            |     t8 = sym.imp.mxmlFindElement;
    0x00405f14 move t9, t8                                   |     t9 = t8;
    0x00405f18 jalr t9                                       |     t9 ();
    0x00405f1c nop                                           |     
    0x00405f20 lw gp, 0x18(fp)                               |     gp = *(arg_18h);
    0x00405f24 move t8, v0                                   |     t8 = v0;
    0x00405f28 sw t8, 0x38(fp)                               |     *(arg_38h) = t8;
    0x00405f2c lw t8, 0x38(fp)                               |     t8 = *(arg_38h);
    0x00405f30 lw t8, 0x10(t8)                               |     t8 = *((t8 + 4));
    0x00405f34 lw t8, 4(t8)                                  |     t8 = *((t8 + 1));
    0x00405f38 sw t8, 0x17c(fp)                              |     *(arg_17ch) = t8;
    0x00405f3c lw t8, 0x17c(fp)                              |     t8 = *(arg_17ch);
                                                             |     if (t8 == 0) {
    0x00405f40 bnez t8, 0x405fb4                             |         
    0x00405f44 nop                                           |         
    0x00405f48 lw t8, -0x7ee8(gp)                            |         t8 = *((gp - 8122));
    0x00405f4c lw s0, (t8)                                   |         s0 = *(t8);
    0x00405f50 lw t8, -0x7e70(gp)                            |         t8 = sym.imp.__errno_location;
    0x00405f54 move t9, t8                                   |         t9 = t8;
    0x00405f58 jalr t9                                       |         t9 ();
    0x00405f5c nop                                           |         
    0x00405f60 lw gp, 0x18(fp)                               |         gp = *(arg_18h);
    0x00405f64 move t8, v0                                   |         t8 = v0;
    0x00405f68 lw t8, (t8)                                   |         t8 = *(t8);
    0x00405f6c addiu v0, zero, 0x377                         |         v0 = 0x377;
    0x00405f70 sw v0, 0x10(sp)                               |         *(var_10h) = v0;
    0x00405f74 sw t8, 0x14(sp)                               |         *(var_14h) = t8;
    0x00405f78 move a0, s0                                   |         a0 = s0;
    0x00405f7c lw t8, -0x7fdc(gp)                            |         t8 = *(gp);
                                                             |         /* str._s___s____L_d:_Read_xml_db_error__errno___d_n */
    0x00405f80 addiu a1, t8, 0x7d10                          |         a1 = t8 + 0x7d10;
    0x00405f84 lw t8, -0x7fdc(gp)                            |         t8 = *(gp);
                                                             |         /* str.dbd.cpp */
    0x00405f88 addiu a2, t8, 0x7824                          |         a2 = t8 + 0x7824;
    0x00405f8c lw t8, -0x7fdc(gp)                            |         t8 = *(gp);
                                                             |         /* str.mergeDB */
    0x00405f90 addiu a3, t8, 0x7f98                          |         a3 = t8 + 0x7f98;
    0x00405f94 lw t8, -0x7f1c(gp)                            |         t8 = sym.imp.fprintf
    0x00405f98 move t9, t8                                   |         t9 = t8;
    0x00405f9c jalr t9                                       |         t9 ();
    0x00405fa0 nop                                           |         
    0x00405fa4 lw gp, 0x18(fp)                               |         gp = *(arg_18h);
    0x00405fa8 addiu t8, zero, -1                            |         t8 = -1;
    0x00405fac b 0x40634c                                    |         goto label_2;
    0x00405fb0 nop                                           |         
                                                             |     }
    0x00405fb4 b 0x405fc8                                    |     goto label_4;
    0x00405fb8 nop                                           |     
                                                             |     do {
    0x00405fbc lw t8, 0x28(fp)                               |         t8 = *(arg_28h);
    0x00405fc0 addiu t8, t8, 1                               |         t8++;
    0x00405fc4 sw t8, 0x28(fp)                               |         *(arg_28h) = t8;
                                                             | label_4:
    0x00405fc8 lw t8, 0x28(fp)                               |         t8 = *(arg_28h);
    0x00405fcc addiu s0, t8, 1                               |         s0 = t8 + 1;
    0x00405fd0 lw t8, 0x28(fp)                               |         t8 = *(arg_28h);
    0x00405fd4 sll t8, t8, 2                                 |         t8 <<= 2;
    0x00405fd8 addiu v0, fp, 0x1180                          |         v0 = fp + 0x1180;
    0x00405fdc addu t8, v0, t8                               |         t8 = v0 + t8;
    0x00405fe0 lw t8, -0x1004(t8)                            |         t8 = *((t8 - 1025));
    0x00405fe4 move a0, t8                                   |         a0 = t8;
    0x00405fe8 lw a1, 0x24(fp)                               |         a1 = *(arg_24h);
    0x00405fec move a2, zero                                 |         a2 = 0;
    0x00405ff0 lw t8, -0x7f28(gp)                            |         t8 = sym.imp.mxmlWalkNext;
    0x00405ff4 move t9, t8                                   |         t9 = t8;
    0x00405ff8 jalr t9                                       |         t9 ();
    0x00405ffc nop                                           |         
    0x00406000 lw gp, 0x18(fp)                               |         gp = *(arg_18h);
    0x00406004 sll t8, s0, 2                                 |         t8 = s0 << 2;
    0x00406008 addiu v1, fp, 0x1180                          |         v1 = fp + 0x1180;
    0x0040600c addu t8, v1, t8                               |         t8 = v1 + t8;
    0x00406010 sw v0, -0x1004(t8)                            |         *((t8 - 4100)) = v0;
    0x00406014 sll t8, s0, 2                                 |         t8 = s0 << 2;
    0x00406018 addiu t9, fp, 0x1180                          |         t9 = fp + 0x1180;
    0x0040601c addu t8, t9, t8                               |         t8 = t9 + t8;
    0x00406020 lw t8, -0x1004(t8)                            |         t8 = *((t8 - 1025));
    0x00406024 sltu t8, zero, t8                             |         t8 = (0 < t8) ? 1 : 0;
    0x00406028 andi t8, t8, 0xff                             |         t8 &= 0xff;
    0x0040602c bnez t8, 0x405fbc                             |         
                                                             |     } while (t8 != 0);
    0x00406030 nop                                           |     
    0x00406034 sw zero, 0x34(fp)                             |     *(arg_34h) = 0;
    0x00406038 b 0x406334                                    |     goto label_5;
    0x0040603c nop                                           |     
                                                             | label_0:
    0x00406040 lw t8, 0x34(fp)                               |     t8 = *(arg_34h);
    0x00406044 sll t8, t8, 2                                 |     t8 <<= 2;
    0x00406048 addiu v0, fp, 0x1180                          |     v0 = fp + 0x1180;
    0x0040604c addu t8, v0, t8                               |     t8 = v0 + t8;
    0x00406050 lw t8, -0x1004(t8)                            |     t8 = *((t8 - 1025));
    0x00406054 lw t8, (t8)                                   |     t8 = *(t8);
                                                             |     if (t8 != 0) {
    0x00406058 beqz t8, 0x406068                             |         
    0x0040605c nop                                           |         
    0x00406060 b 0x406328                                    |         goto label_6;
    0x00406064 nop                                           |         
                                                             |     }
    0x00406068 lw t8, 0x34(fp)                               |     t8 = *(arg_34h);
    0x0040606c sll t8, t8, 2                                 |     t8 <<= 2;
    0x00406070 addiu v1, fp, 0x1180                          |     v1 = fp + 0x1180;
    0x00406074 addu t8, v1, t8                               |     t8 = v1 + t8;
    0x00406078 lw t8, -0x1004(t8)                            |     t8 = *((t8 - 1025));
    0x0040607c lw t8, 0x18(t8)                               |     t8 = *((t8 + 6));
    0x00406080 move a0, t8                                   |     a0 = t8;
    0x00406084 lw t8, -0x7fdc(gp)                            |     t8 = *(gp);
                                                             |     /* str.include */
    0x00406088 addiu a1, t8, 0x79e8                          |     a1 = t8 + 0x79e8;
    0x0040608c lw t8, -0x7f38(gp)                            |     t8 = sym.imp.strcmp;
    0x00406090 move t9, t8                                   |     t9 = t8;
    0x00406094 jalr t9                                       |     t9 ();
    0x00406098 nop                                           |     
    0x0040609c lw gp, 0x18(fp)                               |     gp = *(arg_18h);
    0x004060a0 move t8, v0                                   |     t8 = v0;
                                                             |     if (t8 != 0) {
    0x004060a4 beqz t8, 0x4061bc                             |         
    0x004060a8 nop                                           |         
    0x004060ac lw t8, 0x34(fp)                               |         t8 = *(arg_34h);
    0x004060b0 sll t8, t8, 2                                 |         t8 <<= 2;
    0x004060b4 addiu v0, fp, 0x1180                          |         v0 = fp + 0x1180;
    0x004060b8 addu t8, v0, t8                               |         t8 = v0 + t8;
    0x004060bc lw t8, -0x1004(t8)                            |         t8 = *((t8 - 1025));
    0x004060c0 lw t8, 0x18(t8)                               |         t8 = *((t8 + 6));
    0x004060c4 move a0, t8                                   |         a0 = t8;
    0x004060c8 lw t8, -0x7fdc(gp)                            |         t8 = *(gp);
                                                             |         /* str.Meta */
    0x004060cc addiu a1, t8, 0x7a68                          |         a1 = t8 + 0x7a68;
    0x004060d0 lw t8, -0x7f38(gp)                            |         t8 = sym.imp.strcmp;
    0x004060d4 move t9, t8                                   |         t9 = t8;
    0x004060d8 jalr t9                                       |         t9 ();
    0x004060dc nop                                           |         
    0x004060e0 lw gp, 0x18(fp)                               |         gp = *(arg_18h);
    0x004060e4 move t8, v0                                   |         t8 = v0;
                                                             |         if (t8 == 0) {
    0x004060e8 beqz t8, 0x4061bc                             |             goto label_7;
                                                             |         }
    0x004060ec nop                                           |         
    0x004060f0 lw t8, 0x34(fp)                               |         t8 = *(arg_34h);
    0x004060f4 sll t8, t8, 2                                 |         t8 <<= 2;
    0x004060f8 addiu v0, fp, 0x1180                          |         v0 = fp + 0x1180;
    0x004060fc addu t8, v0, t8                               |         t8 = v0 + t8;
    0x00406100 lw t8, -0x1004(t8)                            |         t8 = *((t8 - 1025));
    0x00406104 lw t8, 0x18(t8)                               |         t8 = *((t8 + 6));
    0x00406108 move a0, t8                                   |         a0 = t8;
    0x0040610c lw t8, -0x7fdc(gp)                            |         t8 = *(gp);
                                                             |         /* str.wrapper */
    0x00406110 addiu a1, t8, 0x7a00                          |         a1 = t8 + 0x7a00;
    0x00406114 lw t8, -0x7f38(gp)                            |         t8 = sym.imp.strcmp;
    0x00406118 move t9, t8                                   |         t9 = t8;
    0x0040611c jalr t9                                       |         t9 ();
    0x00406120 nop                                           |         
    0x00406124 lw gp, 0x18(fp)                               |         gp = *(arg_18h);
    0x00406128 move t8, v0                                   |         t8 = v0;
                                                             |         if (t8 == 0) {
    0x0040612c beqz t8, 0x4061bc                             |             goto label_7;
                                                             |         }
    0x00406130 nop                                           |         
    0x00406134 lw t8, 0x34(fp)                               |         t8 = *(arg_34h);
    0x00406138 sll t8, t8, 2                                 |         t8 <<= 2;
    0x0040613c addiu v0, fp, 0x1180                          |         v0 = fp + 0x1180;
    0x00406140 addu t8, v0, t8                               |         t8 = v0 + t8;
    0x00406144 lw t8, -0x1004(t8)                            |         t8 = *((t8 - 1025));
    0x00406148 lw t8, 0x18(t8)                               |         t8 = *((t8 + 6));
    0x0040614c move a0, t8                                   |         a0 = t8;
    0x00406150 lw t8, -0x7fdc(gp)                            |         t8 = *(gp);
                                                             |         /* str.System */
    0x00406154 addiu a1, t8, 0x7a70                          |         a1 = t8 + 0x7a70;
    0x00406158 lw t8, -0x7f38(gp)                            |         t8 = sym.imp.strcmp;
    0x0040615c move t9, t8                                   |         t9 = t8;
    0x00406160 jalr t9                                       |         t9 ();
    0x00406164 nop                                           |         
    0x00406168 lw gp, 0x18(fp)                               |         gp = *(arg_18h);
    0x0040616c move t8, v0                                   |         t8 = v0;
                                                             |         if (t8 == 0) {
    0x00406170 beqz t8, 0x4061bc                             |             goto label_7;
                                                             |         }
    0x00406174 nop                                           |         
    0x00406178 lw t8, 0x34(fp)                               |         t8 = *(arg_34h);
    0x0040617c sll t8, t8, 2                                 |         t8 <<= 2;
    0x00406180 addiu v0, fp, 0x1180                          |         v0 = fp + 0x1180;
    0x00406184 addu t8, v0, t8                               |         t8 = v0 + t8;
    0x00406188 lw t8, -0x1004(t8)                            |         t8 = *((t8 - 1025));
    0x0040618c lw t8, 0x18(t8)                               |         t8 = *((t8 + 6));
    0x00406190 move a0, t8                                   |         a0 = t8;
    0x00406194 lw t8, -0x7fdc(gp)                            |         t8 = *(gp);
                                                             |         /* str.Hardware */
    0x00406198 addiu a1, t8, 0x7a78                          |         a1 = t8 + 0x7a78;
    0x0040619c lw t8, -0x7f38(gp)                            |         t8 = sym.imp.strcmp;
    0x004061a0 move t9, t8                                   |         t9 = t8;
    0x004061a4 jalr t9                                       |         t9 ();
    0x004061a8 nop                                           |         
    0x004061ac lw gp, 0x18(fp)                               |         gp = *(arg_18h);
    0x004061b0 move t8, v0                                   |         t8 = v0;
                                                             |         if (t8 != 0) {
    0x004061b4 bnez t8, 0x4061c4                             |             goto label_8;
                                                             |         }
    0x004061b8 nop                                           |         
                                                             |     }
                                                             | label_7:
    0x004061bc b 0x406328                                    |     goto label_6;
    0x004061c0 nop                                           |     
                                                             | label_8:
    0x004061c4 lw t8, 0x34(fp)                               |     t8 = *(arg_34h);
    0x004061c8 sll t8, t8, 2                                 |     t8 <<= 2;
    0x004061cc addiu v0, fp, 0x1180                          |     v0 = fp + 0x1180;
    0x004061d0 addu t8, v0, t8                               |     t8 = v0 + t8;
    0x004061d4 lw t8, -0x1004(t8)                            |     t8 = *((t8 - 1025));
    0x004061d8 lw t8, 0x10(t8)                               |     t8 = *((t8 + 4));
    0x004061dc sw t8, 0x2c(fp)                               |     *(arg_2ch) = t8;
    0x004061e0 b 0x406308                                    |     goto label_9;
    0x004061e4 nop                                           |     
                                                             |     do {
    0x004061e8 lw t8, 0x2c(fp)                               |         t8 = *(arg_2ch);
    0x004061ec lw t8, (t8)                                   |         t8 = *(t8);
                                                             |         if (t8 != 0) {
    0x004061f0 beqz t8, 0x406200                             |             
    0x004061f4 nop                                           |             
    0x004061f8 b 0x406308                                    |             goto label_9;
    0x004061fc nop                                           |             
                                                             |         }
    0x00406200 lw t8, 0x34(fp)                               |         t8 = *(arg_34h);
    0x00406204 sll t8, t8, 2                                 |         t8 <<= 2;
    0x00406208 addiu v1, fp, 0x1180                          |         v1 = fp + 0x1180;
    0x0040620c addu t8, v1, t8                               |         t8 = v1 + t8;
    0x00406210 lw t8, -0x1004(t8)                            |         t8 = *((t8 - 1025));
    0x00406214 lw t8, 0x18(t8)                               |         t8 = *((t8 + 6));
    0x00406218 addiu v0, fp, 0x3c                            |         v0 = fp + 0x3c;
    0x0040621c move a0, v0                                   |         a0 = v0;
    0x00406220 move a1, t8                                   |         a1 = t8;
    0x00406224 addiu a2, zero, 0x20                          |         a2 = 0x20;
    0x00406228 lw t8, -0x7f00(gp)                            |         t8 = sym.imp.strncpy;
    0x0040622c move t9, t8                                   |         t9 = t8;
    0x00406230 jalr t9                                       |         t9 ();
    0x00406234 nop                                           |         
    0x00406238 lw gp, 0x18(fp)                               |         gp = *(arg_18h);
    0x0040623c lw t8, 0x2c(fp)                               |         t8 = *(arg_2ch);
    0x00406240 lw t8, 0x18(t8)                               |         t8 = *((t8 + 6));
    0x00406244 addiu v0, fp, 0x3c                            |         v0 = fp + 0x3c;
    0x00406248 addiu v0, v0, 0x20                            |         v0 += 0x20;
    0x0040624c move a0, v0                                   |         a0 = v0;
    0x00406250 move a1, t8                                   |         a1 = t8;
    0x00406254 addiu a2, zero, 0x20                          |         a2 = 0x20;
    0x00406258 lw t8, -0x7f00(gp)                            |         t8 = sym.imp.strncpy;
    0x0040625c move t9, t8                                   |         t9 = t8;
    0x00406260 jalr t9                                       |         t9 ();
    0x00406264 nop                                           |         
    0x00406268 lw gp, 0x18(fp)                               |         gp = *(arg_18h);
    0x0040626c addiu t8, fp, 0x3c                            |         t8 = fp + 0x3c;
    0x00406270 addiu t8, t8, 0x40                            |         t8 += 0x40;
    0x00406274 move a0, t8                                   |         a0 = t8;
    0x00406278 lw t8, -0x7fdc(gp)                            |         t8 = *(gp);
    0x0040627c addiu a1, t8, 0x7d40                          |         a1 = t8 + 0x7d40;
    0x00406280 addiu a2, zero, 0x20                          |         a2 = 0x20;
    0x00406284 lw t8, -0x7f00(gp)                            |         t8 = sym.imp.strncpy;
    0x00406288 move t9, t8                                   |         t9 = t8;
    0x0040628c jalr t9                                       |         t9 ();
    0x00406290 nop                                           |         
    0x00406294 lw gp, 0x18(fp)                               |         gp = *(arg_18h);
    0x00406298 addiu v0, fp, 0x3c                            |         v0 = fp + 0x3c;
    0x0040629c addiu t8, fp, 0x37c                           |         t8 = fp + 0x37c;
    0x004062a0 lw a0, 0x20(fp)                               |         a0 = *(arg_20h);
    0x004062a4 move a1, v0                                   |         a1 = v0;
    0x004062a8 addiu a2, zero, 3                             |         a2 = 3;
    0x004062ac move a3, t8                                   |         a3 = t8;
    0x004062b0 lw t8, -0x7fc4(gp)                            |         t8 = sym.xml_get_mxml_node_s__char_const_____32___char__char_;
    0x004062b4 move t9, t8                                   |         t9 = t8;
    0x004062b8 jalr t9                                       |         t9 ();
    0x004062bc nop                                           |         
    0x004062c0 lw gp, 0x18(fp)                               |         gp = *(arg_18h);
    0x004062c4 move t8, v0                                   |         t8 = v0;
    0x004062c8 srl t8, t8, 0x1f                              |         t8 >>= 0x1f;
    0x004062cc andi t8, t8, 0xff                             |         t8 &= 0xff;
                                                             |         if (t8 != 0) {
    0x004062d0 beqz t8, 0x4062e0                             |             
    0x004062d4 nop                                           |             
    0x004062d8 b 0x406308                                    |             goto label_9;
    0x004062dc nop                                           |             
                                                             |         }
    0x004062e0 addiu t8, fp, 0x37c                           |         t8 = fp + 0x37c;
    0x004062e4 lw a0, 0x2c(fp)                               |         a0 = *(arg_2ch);
    0x004062e8 lw v0, -0x7fdc(gp)                            |         v0 = *(gp);
                                                             |         /* str.content */
    0x004062ec addiu a1, v0, 0x7a58                          |         a1 = v0 + 0x7a58;
    0x004062f0 move a2, t8                                   |         a2 = t8;
    0x004062f4 lw t8, -0x7ebc(gp)                            |         t8 = sym.imp.mxmlElementSetAttr;
    0x004062f8 move t9, t8                                   |         t9 = t8;
    0x004062fc jalr t9                                       |         t9 ();
    0x00406300 nop                                           |         
    0x00406304 lw gp, 0x18(fp)                               |         gp = *(arg_18h);
                                                             | label_9:
    0x00406308 lw t8, 0x2c(fp)                               |         t8 = *(arg_2ch);
    0x0040630c lw t8, 4(t8)                                  |         t8 = *((t8 + 1));
    0x00406310 sw t8, 0x2c(fp)                               |         *(arg_2ch) = t8;
    0x00406314 lw t8, 0x2c(fp)                               |         t8 = *(arg_2ch);
    0x00406318 sltu t8, zero, t8                             |         t8 = (0 < t8) ? 1 : 0;
    0x0040631c andi t8, t8, 0xff                             |         t8 &= 0xff;
    0x00406320 bnez t8, 0x4061e8                             |         
                                                             |     } while (t8 != 0);
    0x00406324 nop                                           |     
                                                             | label_6:
    0x00406328 lw t8, 0x34(fp)                               |     t8 = *(arg_34h);
    0x0040632c addiu t8, t8, 1                               |     t8++;
    0x00406330 sw t8, 0x34(fp)                               |     *(arg_34h) = t8;
                                                             | label_5:
    0x00406334 lw v0, 0x34(fp)                               |     v0 = *(arg_34h);
    0x00406338 lw t8, 0x28(fp)                               |     t8 = *(arg_28h);
    0x0040633c slt t8, t8, v0                                |     t8 = (t8 < v0) ? 1 : 0;
                                                             |     if (t8 == 0) {
    0x00406340 beqz t8, 0x406040                             |         goto label_0;
                                                             |     }
    0x00406344 nop                                           |     
    0x00406348 move t8, zero                                 |     t8 = 0;
                                                             | label_2:
    0x0040634c move v0, t8                                   |     v0 = t8;
    0x00406350 lw t8, -0x7e74(gp)                            |     t8 = *((gp - 8093));
    0x00406354 lw v1, 0x117c(fp)                             |     v1 = *(arg_117ch);
    0x00406358 lw t8, (t8)                                   |     t8 = *(t8);
                                                             |     if (v1 != t8) {
    0x0040635c beq v1, t8, 0x406374                          |         
    0x00406360 nop                                           |         
    0x00406364 lw t8, -0x7ee4(gp)                            |         t8 = sym.imp.__stack_chk_fail;
    0x00406368 move t9, t8                                   |         t9 = t8;
    0x0040636c jalr t9                                       |         t9 ();
    0x00406370 nop                                           |         
                                                             |     }
    0x00406374 move sp, fp                                   |     
    0x00406378 lw ra, 0x118c(sp)                             |     ra = *(var_118ch);
    0x0040637c lw fp, 0x1188(sp)                             |     fp = *(var_1188h);
    0x00406380 lw s0, 0x1184(sp)                             |     s0 = *(var_1184h);
    0x00406384 addiu sp, sp, 0x1190                          |     
    0x00406388 jr ra                                         |     return v1;
    0x0040638c nop                                           |     
                                                             | }
    ; assembly                                                           | /* r2dec pseudo code output */
                                                                         | /* /logs/firmware/patool_extraction/DUMP/mtdblock8_unblob_extracted/mtdblock8_extract/0-9650176.squashfs_v4_le_extract/sbin/dbd @ 0x401cb0 */
                                                                         | #include <stdint.h>
                                                                         |  
    ; (fcn) sym.parse_string_char__int__char_____10__32___char_ ()       | void parse_string_char_int_char_10_32_char_ () {
                                                                         |     /* parse_string(char*, int, char (&) [10][32], char*) */
    0x00401cb0 lui gp, 2                                                 |     
    0x00401cb4 addiu gp, gp, -0xc80                                      |     
    0x00401cb8 addu gp, gp, t9                                           |     gp += t9;
    0x00401cbc addiu sp, sp, -0x58                                       |     
    0x00401cc0 sw ra, 0x54(sp)                                           |     *(var_54h) = ra;
    0x00401cc4 sw fp, 0x50(sp)                                           |     *(var_50h) = fp;
    0x00401cc8 sw s0, 0x4c(sp)                                           |     *(var_4ch) = s0;
    0x00401ccc move fp, sp                                               |     fp = sp;
    0x00401cd0 sw gp, 0x18(sp)                                           |     *(var_18h) = gp;
    0x00401cd4 sw a0, 0x2c(fp)                                           |     *(arg_2ch) = a0;
    0x00401cd8 sw a1, 0x28(fp)                                           |     *(arg_28h) = a1;
    0x00401cdc sw a2, 0x24(fp)                                           |     *(arg_24h) = a2;
    0x00401ce0 sw a3, 0x20(fp)                                           |     *(arg_20h) = a3;
    0x00401ce4 lw t8, -0x7e74(gp)                                        |     t8 = *((gp - 8093));
    0x00401ce8 lw t8, (t8)                                               |     t8 = *(t8);
    0x00401cec sw t8, 0x44(fp)                                           |     *(arg_44h) = t8;
    0x00401cf0 sw zero, 0x34(fp)                                         |     *(arg_34h) = 0;
    0x00401cf4 sw zero, 0x38(fp)                                         |     *(arg_38h) = 0;
    0x00401cf8 sw zero, 0x3c(fp)                                         |     *(arg_3ch) = 0;
    0x00401cfc lw t8, 0x2c(fp)                                           |     t8 = *(arg_2ch);
                                                                         |     if (t8 != 0) {
    0x00401d00 beqz t8, 0x401d20                                         |         
    0x00401d04 nop                                                       |         
    0x00401d08 lw t8, 0x24(fp)                                           |         t8 = *(arg_24h);
                                                                         |         if (t8 == 0) {
    0x00401d0c beqz t8, 0x401d20                                         |             goto label_0;
                                                                         |         }
    0x00401d10 nop                                                       |         
    0x00401d14 lw t8, 0x20(fp)                                           |         t8 = *(arg_20h);
                                                                         |         if (t8 != 0) {
    0x00401d18 bnez t8, 0x401d8c                                         |             goto label_1;
                                                                         |         }
    0x00401d1c nop                                                       |         
                                                                         |     }
                                                                         | label_0:
    0x00401d20 lw t8, -0x7ee8(gp)                                        |     t8 = *((gp - 8122));
    0x00401d24 lw s0, (t8)                                               |     s0 = *(t8);
    0x00401d28 lw t8, -0x7e70(gp)                                        |     t8 = sym.imp.__errno_location;
    0x00401d2c move t9, t8                                               |     t9 = t8;
    0x00401d30 jalr t9                                                   |     t9 ();
    0x00401d34 nop                                                       |     
    0x00401d38 lw gp, 0x18(fp)                                           |     gp = *(arg_18h);
    0x00401d3c move t8, v0                                               |     t8 = v0;
    0x00401d40 lw t8, (t8)                                               |     t8 = *(t8);
    0x00401d44 addiu v0, zero, 0x49                                      |     v0 = 0x49;
    0x00401d48 sw v0, 0x10(sp)                                           |     *(var_10h) = v0;
    0x00401d4c sw t8, 0x14(sp)                                           |     *(var_14h) = t8;
    0x00401d50 move a0, s0                                               |     a0 = s0;
    0x00401d54 lw t8, -0x7fdc(gp)                                        |     t8 = *(gp);
                                                                         |     /* str._s___s____L_d:_Invalid_para__errno___d_n */
    0x00401d58 addiu a1, t8, 0x77f8                                      |     a1 = t8 + 0x77f8;
    0x00401d5c lw t8, -0x7fdc(gp)                                        |     t8 = *(gp);
                                                                         |     /* str.dbd.cpp */
    0x00401d60 addiu a2, t8, 0x7824                                      |     a2 = t8 + 0x7824;
    0x00401d64 lw t8, -0x7fdc(gp)                                        |     t8 = *(gp);
                                                                         |     /* str.parse_string */
    0x00401d68 addiu a3, t8, 0x7edc                                      |     a3 = t8 + 0x7edc;
    0x00401d6c lw t8, -0x7f1c(gp)                                        |     t8 = sym.imp.fprintf
    0x00401d70 move t9, t8                                               |     t9 = t8;
    0x00401d74 jalr t9                                                   |     t9 ();
    0x00401d78 nop                                                       |     
    0x00401d7c lw gp, 0x18(fp)                                           |     gp = *(arg_18h);
    0x00401d80 addiu t8, zero, -7                                        |     t8 = -7;
    0x00401d84 b 0x401f88                                                |     goto label_2;
    0x00401d88 nop                                                       |     
                                                                         | label_1:
    0x00401d8c sw zero, 0x40(fp)                                         |     *(arg_40h) = 0;
    0x00401d90 b 0x401dd4                                                |     goto label_3;
    0x00401d94 nop                                                       |     
                                                                         |     do {
    0x00401d98 lw t8, 0x40(fp)                                           |         t8 = *(arg_40h);
    0x00401d9c sll t8, t8, 5                                             |         t8 <<= 5;
    0x00401da0 lw v0, 0x24(fp)                                           |         v0 = *(arg_24h);
    0x00401da4 addu t8, v0, t8                                           |         t8 = v0 + t8;
    0x00401da8 move a0, t8                                               |         a0 = t8;
    0x00401dac move a1, zero                                             |         a1 = 0;
    0x00401db0 addiu a2, zero, 0x20                                      |         a2 = 0x20;
    0x00401db4 lw t8, -0x7f14(gp)                                        |         t8 = sym.imp.memset;
    0x00401db8 move t9, t8                                               |         t9 = t8;
    0x00401dbc jalr t9                                                   |         t9 ();
    0x00401dc0 nop                                                       |         
    0x00401dc4 lw gp, 0x18(fp)                                           |         gp = *(arg_18h);
    0x00401dc8 lw t8, 0x40(fp)                                           |         t8 = *(arg_40h);
    0x00401dcc addiu t8, t8, 1                                           |         t8++;
    0x00401dd0 sw t8, 0x40(fp)                                           |         *(arg_40h) = t8;
                                                                         | label_3:
    0x00401dd4 lw t8, 0x40(fp)                                           |         t8 = *(arg_40h);
    0x00401dd8 slti t8, t8, 0xa                                          |         t8 = (t8 < 0xa) ? 1 : 0;
    0x00401ddc bnez t8, 0x401d98                                         |         
                                                                         |     } while (t8 != 0);
    0x00401de0 nop                                                       |     
    0x00401de4 lw t8, 0x2c(fp)                                           |     t8 = *(arg_2ch);
    0x00401de8 sw t8, 0x38(fp)                                           |     *(arg_38h) = t8;
    0x00401dec lw a0, 0x2c(fp)                                           |     a0 = *(arg_2ch);
    0x00401df0 addiu a1, zero, 0xa                                       |     a1 = 0xa;
    0x00401df4 lw t8, -0x7f44(gp)                                        |     t8 = sym.imp.strchr;
    0x00401df8 move t9, t8                                               |     t9 = t8;
    0x00401dfc jalr t9                                                   |     t9 ();
    0x00401e00 nop                                                       |     
    0x00401e04 lw gp, 0x18(fp)                                           |     gp = *(arg_18h);
    0x00401e08 sw v0, 0x34(fp)                                           |     *(arg_34h) = v0;
    0x00401e0c b 0x401e88                                                |     goto label_4;
    0x00401e10 nop                                                       |     
                                                                         |     do {
    0x00401e14 lw t8, 0x3c(fp)                                           |         t8 = *(arg_3ch);
    0x00401e18 sll t8, t8, 5                                             |         t8 <<= 5;
    0x00401e1c lw v0, 0x24(fp)                                           |         v0 = *(arg_24h);
    0x00401e20 addu v0, v0, t8                                           |         v0 += t8;
    0x00401e24 lw v1, 0x34(fp)                                           |         v1 = *(arg_34h);
    0x00401e28 lw t8, 0x38(fp)                                           |         t8 = *(arg_38h);
    0x00401e2c subu t8, v1, t8                                           |         __asm ("subu t8, v1, t8");
    0x00401e30 move a0, v0                                               |         a0 = v0;
    0x00401e34 lw a1, 0x38(fp)                                           |         a1 = *(arg_38h);
    0x00401e38 move a2, t8                                               |         a2 = t8;
    0x00401e3c lw t8, -0x7f00(gp)                                        |         t8 = sym.imp.strncpy;
    0x00401e40 move t9, t8                                               |         t9 = t8;
    0x00401e44 jalr t9                                                   |         t9 ();
    0x00401e48 nop                                                       |         
    0x00401e4c lw gp, 0x18(fp)                                           |         gp = *(arg_18h);
    0x00401e50 lw t8, 0x3c(fp)                                           |         t8 = *(arg_3ch);
    0x00401e54 addiu t8, t8, 1                                           |         t8++;
    0x00401e58 sw t8, 0x3c(fp)                                           |         *(arg_3ch) = t8;
    0x00401e5c lw t8, 0x34(fp)                                           |         t8 = *(arg_34h);
    0x00401e60 addiu t8, t8, 1                                           |         t8++;
    0x00401e64 sw t8, 0x38(fp)                                           |         *(arg_38h) = t8;
    0x00401e68 lw a0, 0x38(fp)                                           |         a0 = *(arg_38h);
    0x00401e6c addiu a1, zero, 0xa                                       |         a1 = 0xa;
    0x00401e70 lw t8, -0x7f44(gp)                                        |         t8 = sym.imp.strchr;
    0x00401e74 move t9, t8                                               |         t9 = t8;
    0x00401e78 jalr t9                                                   |         t9 ();
    0x00401e7c nop                                                       |         
    0x00401e80 lw gp, 0x18(fp)                                           |         gp = *(arg_18h);
    0x00401e84 sw v0, 0x34(fp)                                           |         *(arg_34h) = v0;
                                                                         | label_4:
    0x00401e88 lw t8, 0x34(fp)                                           |         t8 = *(arg_34h);
                                                                         |         if (t8 == 0) {
    0x00401e8c beqz t8, 0x401ea4                                         |             goto label_5;
                                                                         |         }
    0x00401e90 nop                                                       |         
    0x00401e94 lw t8, 0x3c(fp)                                           |         t8 = *(arg_3ch);
    0x00401e98 slti t8, t8, 9                                            |         t8 = (t8 < 9) ? 1 : 0;
    0x00401e9c bnez t8, 0x401e14                                         |         
                                                                         |     } while (t8 != 0);
    0x00401ea0 nop                                                       |     
                                                                         | label_5:
    0x00401ea4 lw t8, 0x3c(fp)                                           |     t8 = *(arg_3ch);
    0x00401ea8 slti t8, t8, 0xa                                          |     t8 = (t8 < 0xa) ? 1 : 0;
                                                                         |     if (t8 != 0) {
    0x00401eac beqz t8, 0x401f24                                         |         
    0x00401eb0 nop                                                       |         
    0x00401eb4 lw t8, 0x3c(fp)                                           |         t8 = *(arg_3ch);
    0x00401eb8 sll t8, t8, 5                                             |         t8 <<= 5;
    0x00401ebc lw v0, 0x24(fp)                                           |         v0 = *(arg_24h);
    0x00401ec0 addu v0, v0, t8                                           |         v0 += t8;
    0x00401ec4 lw v1, 0x2c(fp)                                           |         v1 = *(arg_2ch);
    0x00401ec8 lw t8, 0x38(fp)                                           |         t8 = *(arg_38h);
    0x00401ecc subu v1, v1, t8                                           |         __asm ("subu v1, v1, t8");
    0x00401ed0 lw t8, 0x28(fp)                                           |         t8 = *(arg_28h);
    0x00401ed4 addu t8, v1, t8                                           |         t8 = v1 + t8;
    0x00401ed8 move a0, v0                                               |         a0 = v0;
    0x00401edc lw a1, 0x38(fp)                                           |         a1 = *(arg_38h);
    0x00401ee0 move a2, t8                                               |         a2 = t8;
    0x00401ee4 lw t8, -0x7f00(gp)                                        |         t8 = sym.imp.strncpy;
    0x00401ee8 move t9, t8                                               |         t9 = t8;
    0x00401eec jalr t9                                                   |         t9 ();
    0x00401ef0 nop                                                       |         
    0x00401ef4 lw gp, 0x18(fp)                                           |         gp = *(arg_18h);
    0x00401ef8 lw t8, 0x3c(fp)                                           |         t8 = *(arg_3ch);
    0x00401efc andi t8, t8, 0xff                                         |         t8 &= 0xff;
    0x00401f00 addiu t8, t8, 1                                           |         t8++;
    0x00401f04 andi t8, t8, 0xff                                         |         t8 &= 0xff;
    0x00401f08 sll v0, t8, 0x18                                          |         v0 = t8 << 0x18;
    0x00401f0c sra v0, v0, 0x18                                          |         v0 >>= 0x18;
    0x00401f10 lw t8, 0x20(fp)                                           |         t8 = *(arg_20h);
    0x00401f14 sb v0, (t8)                                               |         *(t8) = v0;
    0x00401f18 move t8, zero                                             |         t8 = 0;
    0x00401f1c b 0x401f88                                                |         goto label_2;
    0x00401f20 nop                                                       |         
                                                                         |     }
    0x00401f24 lw t8, -0x7ee8(gp)                                        |     t8 = *((gp - 8122));
    0x00401f28 lw s0, (t8)                                               |     s0 = *(t8);
    0x00401f2c lw t8, -0x7e70(gp)                                        |     t8 = sym.imp.__errno_location;
    0x00401f30 move t9, t8                                               |     t9 = t8;
    0x00401f34 jalr t9                                                   |     t9 ();
    0x00401f38 nop                                                       |     
    0x00401f3c lw gp, 0x18(fp)                                           |     gp = *(arg_18h);
    0x00401f40 move t8, v0                                               |     t8 = v0;
    0x00401f44 lw t8, (t8)                                               |     t8 = *(t8);
    0x00401f48 addiu v0, zero, 0x5f                                      |     v0 = 0x5f;
    0x00401f4c sw v0, 0x10(sp)                                           |     *(var_10h) = v0;
    0x00401f50 sw t8, 0x14(sp)                                           |     *(var_14h) = t8;
    0x00401f54 move a0, s0                                               |     a0 = s0;
    0x00401f58 lw t8, -0x7fdc(gp)                                        |     t8 = *(gp);
                                                                         |     /* str._s___s____L_d:_the_depth_xml_recursive_is_out_of_restriction__errno___d_n */
    0x00401f5c addiu a1, t8, 0x782c                                      |     a1 = t8 + 0x782c;
    0x00401f60 lw t8, -0x7fdc(gp)                                        |     t8 = *(gp);
                                                                         |     /* str.dbd.cpp */
    0x00401f64 addiu a2, t8, 0x7824                                      |     a2 = t8 + 0x7824;
    0x00401f68 lw t8, -0x7fdc(gp)                                        |     t8 = *(gp);
                                                                         |     /* str.parse_string */
    0x00401f6c addiu a3, t8, 0x7edc                                      |     a3 = t8 + 0x7edc;
    0x00401f70 lw t8, -0x7f1c(gp)                                        |     t8 = sym.imp.fprintf
    0x00401f74 move t9, t8                                               |     t9 = t8;
    0x00401f78 jalr t9                                                   |     t9 ();
    0x00401f7c nop                                                       |     
    0x00401f80 lw gp, 0x18(fp)                                           |     gp = *(arg_18h);
    0x00401f84 addiu t8, zero, -0xb                                      |     t8 = -0xb;
                                                                         | label_2:
    0x00401f88 move v0, t8                                               |     v0 = t8;
    0x00401f8c lw t8, -0x7e74(gp)                                        |     t8 = *((gp - 8093));
    0x00401f90 lw v1, 0x44(fp)                                           |     v1 = *(arg_44h);
    0x00401f94 lw t8, (t8)                                               |     t8 = *(t8);
                                                                         |     if (v1 != t8) {
    0x00401f98 beq v1, t8, 0x401fb0                                      |         
    0x00401f9c nop                                                       |         
    0x00401fa0 lw t8, -0x7ee4(gp)                                        |         t8 = sym.imp.__stack_chk_fail;
    0x00401fa4 move t9, t8                                               |         t9 = t8;
    0x00401fa8 jalr t9                                                   |         t9 ();
    0x00401fac nop                                                       |         
                                                                         |     }
    0x00401fb0 move sp, fp                                               |     
    0x00401fb4 lw ra, 0x54(sp)                                           |     ra = *(var_54h);
    0x00401fb8 lw fp, 0x50(sp)                                           |     fp = *(var_50h);
    0x00401fbc lw s0, 0x4c(sp)                                           |     s0 = *(var_4ch);
    0x00401fc0 addiu sp, sp, 0x58                                        |     
    0x00401fc4 jr ra                                                     |     return v1;
    0x00401fc8 nop                                                       |     
                                                                         | }
    ; assembly                                   | /* r2dec pseudo code output */
                                                 | /* /logs/firmware/patool_extraction/DUMP/mtdblock8_unblob_extracted/mtdblock8_extract/0-9650176.squashfs_v4_le_extract/sbin/dbd @ 0x404070 */
                                                 | #include <stdint.h>
                                                 |  
    ; (fcn) sym.saveDB_char__char_const_ ()      | void saveDB_char_char_const_ () {
                                                 |     /* saveDB(char*, char const*) */
    0x00404070 lui gp, 2                         |     
    0x00404074 addiu gp, gp, -0x3040             |     
    0x00404078 addu gp, gp, t9                   |     gp += t9;
    0x0040407c addiu sp, sp, -0x58               |     
    0x00404080 sw ra, 0x54(sp)                   |     *(var_54h) = ra;
    0x00404084 sw fp, 0x50(sp)                   |     *(var_50h) = fp;
    0x00404088 sw s0, 0x4c(sp)                   |     *(var_4ch) = s0;
    0x0040408c move fp, sp                       |     fp = sp;
    0x00404090 sw gp, 0x20(sp)                   |     *(var_20h) = gp;
    0x00404094 sw a0, 0x2c(fp)                   |     *(arg_2ch) = a0;
    0x00404098 sw a1, 0x28(fp)                   |     *(arg_28h) = a1;
    0x0040409c lw t8, -0x7e74(gp)                |     t8 = *((gp - 8093));
    0x004040a0 lw t8, (t8)                       |     t8 = *(t8);
    0x004040a4 sw t8, 0x44(fp)                   |     *(arg_44h) = t8;
    0x004040a8 addiu t8, zero, -1                |     t8 = -1;
    0x004040ac sw t8, 0x34(fp)                   |     *(arg_34h) = t8;
    0x004040b0 lw a0, 0x28(fp)                   |     a0 = *(arg_28h);
    0x004040b4 lw t8, -0x7fdc(gp)                |     t8 = *(gp);
    0x004040b8 addiu a1, t8, 0x7ab4              |     a1 = t8 + 0x7ab4;
    0x004040bc lw t8, -0x7ee0(gp)                |     t8 = sym.imp.fopen;
    0x004040c0 move t9, t8                       |     t9 = t8;
    0x004040c4 jalr t9                           |     t9 ();
    0x004040c8 nop                               |     
    0x004040cc lw gp, 0x20(fp)                   |     gp = *(arg_20h);
    0x004040d0 move t8, v0                       |     t8 = v0;
    0x004040d4 sw t8, 0x38(fp)                   |     *(arg_38h) = t8;
    0x004040d8 lw t8, 0x38(fp)                   |     t8 = *(arg_38h);
    0x004040dc sltiu t8, t8, 1                   |     t8 = (t8 < 1) ? 1 : 0;
    0x004040e0 andi t8, t8, 0xff                 |     t8 &= 0xff;
                                                 |     if (t8 != 0) {
    0x004040e4 beqz t8, 0x404158                 |         
    0x004040e8 nop                               |         
    0x004040ec lw t8, -0x7ee8(gp)                |         t8 = *((gp - 8122));
    0x004040f0 lw s0, (t8)                       |         s0 = *(t8);
    0x004040f4 lw t8, -0x7e70(gp)                |         t8 = sym.imp.__errno_location;
    0x004040f8 move t9, t8                       |         t9 = t8;
    0x004040fc jalr t9                           |         t9 ();
    0x00404100 nop                               |         
    0x00404104 lw gp, 0x20(fp)                   |         gp = *(arg_20h);
    0x00404108 move t8, v0                       |         t8 = v0;
    0x0040410c lw t8, (t8)                       |         t8 = *(t8);
    0x00404110 addiu v0, zero, 0x218             |         v0 = 0x218;
    0x00404114 sw v0, 0x10(sp)                   |         *(var_10h) = v0;
    0x00404118 sw t8, 0x14(sp)                   |         *(var_14h) = t8;
    0x0040411c move a0, s0                       |         a0 = s0;
    0x00404120 lw t8, -0x7fdc(gp)                |         t8 = *(gp);
                                                 |         /* esilref: '&s, &s(), L&d: OPEN FILE FAIL!, errno = &d
' */
    0x00404124 addiu a1, t8, 0x7ab8              |         a1 = t8 + 0x7ab8;
    0x00404128 lw t8, -0x7fdc(gp)                |         t8 = *(gp);
                                                 |         /* str.dbd.cpp */
    0x0040412c addiu a2, t8, 0x7824              |         a2 = t8 + 0x7824;
    0x00404130 lw t8, -0x7fdc(gp)                |         t8 = *(gp);
                                                 |         /* str.saveDB */
    0x00404134 addiu a3, t8, 0x7f4c              |         a3 = t8 + 0x7f4c;
    0x00404138 lw t8, -0x7f1c(gp)                |         t8 = sym.imp.fprintf
    0x0040413c move t9, t8                       |         t9 = t8;
    0x00404140 jalr t9                           |         t9 ();
    0x00404144 nop                               |         
    0x00404148 lw gp, 0x20(fp)                   |         gp = *(arg_20h);
    0x0040414c addiu t8, zero, -1                |         t8 = -1;
    0x00404150 b 0x404374                        |         goto label_0;
    0x00404154 nop                               |         
                                                 |     }
    0x00404158 lw t8, 0x2c(fp)                   |     t8 = *(arg_2ch);
                                                 |     if (t8 == 0) {
    0x0040415c bnez t8, 0x4041cc                 |         
    0x00404160 nop                               |         
    0x00404164 lw t8, -0x7ee8(gp)                |         t8 = *((gp - 8122));
    0x00404168 lw s0, (t8)                       |         s0 = *(t8);
    0x0040416c lw t8, -0x7e70(gp)                |         t8 = sym.imp.__errno_location;
    0x00404170 move t9, t8                       |         t9 = t8;
    0x00404174 jalr t9                           |         t9 ();
    0x00404178 nop                               |         
    0x0040417c lw gp, 0x20(fp)                   |         gp = *(arg_20h);
    0x00404180 move t8, v0                       |         t8 = v0;
    0x00404184 lw t8, (t8)                       |         t8 = *(t8);
    0x00404188 addiu v0, zero, 0x21d             |         v0 = 0x21d;
    0x0040418c sw v0, 0x10(sp)                   |         *(var_10h) = v0;
    0x00404190 sw t8, 0x14(sp)                   |         *(var_14h) = t8;
    0x00404194 move a0, s0                       |         a0 = s0;
    0x00404198 lw t8, -0x7fdc(gp)                |         t8 = *(gp);
                                                 |         /* str._s___s____L_d:_mxmlSaveAllocString___failed__tree:_n__errno___d_n */
    0x0040419c addiu a1, t8, 0x7ae4              |         a1 = t8 + 0x7ae4;
    0x004041a0 lw t8, -0x7fdc(gp)                |         t8 = *(gp);
                                                 |         /* str.dbd.cpp */
    0x004041a4 addiu a2, t8, 0x7824              |         a2 = t8 + 0x7824;
    0x004041a8 lw t8, -0x7fdc(gp)                |         t8 = *(gp);
                                                 |         /* str.saveDB */
    0x004041ac addiu a3, t8, 0x7f4c              |         a3 = t8 + 0x7f4c;
    0x004041b0 lw t8, -0x7f1c(gp)                |         t8 = sym.imp.fprintf
    0x004041b4 move t9, t8                       |         t9 = t8;
    0x004041b8 jalr t9                           |         t9 ();
    0x004041bc nop                               |         
    0x004041c0 lw gp, 0x20(fp)                   |         gp = *(arg_20h);
    0x004041c4 b 0x404358                        |         goto label_1;
    0x004041c8 nop                               |         
                                                 |     }
    0x004041cc move a0, zero                     |     a0 = 0;
    0x004041d0 lw a1, 0x2c(fp)                   |     a1 = *(arg_2ch);
    0x004041d4 move a2, zero                     |     a2 = 0;
    0x004041d8 lw t8, -0x7efc(gp)                |     t8 = sym.imp.mxmlLoadString;
    0x004041dc move t9, t8                       |     t9 = t8;
    0x004041e0 jalr t9                           |     t9 ();
    0x004041e4 nop                               |     
    0x004041e8 lw gp, 0x20(fp)                   |     gp = *(arg_20h);
    0x004041ec move t8, v0                       |     t8 = v0;
    0x004041f0 sw t8, 0x3c(fp)                   |     *(arg_3ch) = t8;
    0x004041f4 lw t8, 0x3c(fp)                   |     t8 = *(arg_3ch);
                                                 |     if (t8 == 0) {
    0x004041f8 bnez t8, 0x404270                 |         
    0x004041fc nop                               |         
    0x00404200 lw t8, -0x7ee8(gp)                |         t8 = *((gp - 8122));
    0x00404204 lw s0, (t8)                       |         s0 = *(t8);
    0x00404208 lw t8, -0x7e70(gp)                |         t8 = sym.imp.__errno_location;
    0x0040420c move t9, t8                       |         t9 = t8;
    0x00404210 jalr t9                           |         t9 ();
    0x00404214 nop                               |         
    0x00404218 lw gp, 0x20(fp)                   |         gp = *(arg_20h);
    0x0040421c move t8, v0                       |         t8 = v0;
    0x00404220 lw t8, (t8)                       |         t8 = *(t8);
    0x00404224 addiu v0, zero, 0x224             |         v0 = 0x224;
    0x00404228 sw v0, 0x10(sp)                   |         *(var_10h) = v0;
    0x0040422c lw v0, 0x2c(fp)                   |         v0 = *(arg_2ch);
    0x00404230 sw v0, 0x14(sp)                   |         *(var_14h) = v0;
    0x00404234 sw t8, 0x18(sp)                   |         *(var_18h) = t8;
    0x00404238 move a0, s0                       |         a0 = s0;
    0x0040423c lw t8, -0x7fdc(gp)                |         t8 = *(gp);
                                                 |         /* str._s___s____L_d:_mxmlLoadString___failed__xml_str:_n_s__errno___d_n */
    0x00404240 addiu a1, t8, 0x7b28              |         a1 = t8 + 0x7b28;
    0x00404244 lw t8, -0x7fdc(gp)                |         t8 = *(gp);
                                                 |         /* str.dbd.cpp */
    0x00404248 addiu a2, t8, 0x7824              |         a2 = t8 + 0x7824;
    0x0040424c lw t8, -0x7fdc(gp)                |         t8 = *(gp);
                                                 |         /* str.saveDB */
    0x00404250 addiu a3, t8, 0x7f4c              |         a3 = t8 + 0x7f4c;
    0x00404254 lw t8, -0x7f1c(gp)                |         t8 = sym.imp.fprintf
    0x00404258 move t9, t8                       |         t9 = t8;
    0x0040425c jalr t9                           |         t9 ();
    0x00404260 nop                               |         
    0x00404264 lw gp, 0x20(fp)                   |         gp = *(arg_20h);
    0x00404268 b 0x404358                        |         goto label_1;
    0x0040426c nop                               |         
                                                 |     }
    0x00404270 sw zero, 0x10(sp)                 |     *(var_10h) = 0;
    0x00404274 addiu t8, zero, 1                 |     t8 = 1;
    0x00404278 sw t8, 0x14(sp)                   |     *(var_14h) = t8;
    0x0040427c lw a0, 0x3c(fp)                   |     a0 = *(arg_3ch);
    0x00404280 lw a1, 0x3c(fp)                   |     a1 = *(arg_3ch);
    0x00404284 lw t8, -0x7fdc(gp)                |     t8 = *(gp);
                                                 |     /* str.wrapper */
    0x00404288 addiu a2, t8, 0x7a00              |     a2 = t8 + 0x7a00;
    0x0040428c move a3, zero                     |     a3 = 0;
    0x00404290 lw t8, -0x7ea8(gp)                |     t8 = sym.imp.mxmlFindElement;
    0x00404294 move t9, t8                       |     t9 = t8;
    0x00404298 jalr t9                           |     t9 ();
    0x0040429c nop                               |     
    0x004042a0 lw gp, 0x20(fp)                   |     gp = *(arg_20h);
    0x004042a4 move t8, v0                       |     t8 = v0;
    0x004042a8 sw t8, 0x40(fp)                   |     *(arg_40h) = t8;
    0x004042ac b 0x4042cc                        |     goto label_2;
    0x004042b0 nop                               |     
                                                 |     do {
    0x004042b4 lw a0, 0x40(fp)                   |         a0 = *(arg_40h);
    0x004042b8 lw t8, -0x7f34(gp)                |         t8 = sym.imp.mxmlDelete;
    0x004042bc move t9, t8                       |         t9 = t8;
    0x004042c0 jalr t9                           |         t9 ();
    0x004042c4 nop                               |         
    0x004042c8 lw gp, 0x20(fp)                   |         gp = *(arg_20h);
                                                 | label_2:
    0x004042cc sw zero, 0x10(sp)                 |         *(var_10h) = 0;
    0x004042d0 addiu t8, zero, 1                 |         t8 = 1;
    0x004042d4 sw t8, 0x14(sp)                   |         *(var_14h) = t8;
    0x004042d8 lw a0, 0x3c(fp)                   |         a0 = *(arg_3ch);
    0x004042dc lw a1, 0x3c(fp)                   |         a1 = *(arg_3ch);
    0x004042e0 lw t8, -0x7fdc(gp)                |         t8 = *(gp);
                                                 |         /* str.wrapper */
    0x004042e4 addiu a2, t8, 0x7a00              |         a2 = t8 + 0x7a00;
    0x004042e8 move a3, zero                     |         a3 = 0;
    0x004042ec lw t8, -0x7ea8(gp)                |         t8 = sym.imp.mxmlFindElement;
    0x004042f0 move t9, t8                       |         t9 = t8;
    0x004042f4 jalr t9                           |         t9 ();
    0x004042f8 nop                               |         
    0x004042fc lw gp, 0x20(fp)                   |         gp = *(arg_20h);
    0x00404300 move t8, v0                       |         t8 = v0;
    0x00404304 sw t8, 0x40(fp)                   |         *(arg_40h) = t8;
    0x00404308 lw t8, 0x40(fp)                   |         t8 = *(arg_40h);
    0x0040430c sltu t8, zero, t8                 |         t8 = (0 < t8) ? 1 : 0;
    0x00404310 andi t8, t8, 0xff                 |         t8 &= 0xff;
    0x00404314 bnez t8, 0x4042b4                 |         
                                                 |     } while (t8 != 0);
    0x00404318 nop                               |     
    0x0040431c lw a0, 0x3c(fp)                   |     a0 = *(arg_3ch);
    0x00404320 lw a1, 0x38(fp)                   |     a1 = *(arg_38h);
    0x00404324 lw a2, -0x7fb8(gp)                |     a2 = sym.whitespace_cb_mxml_node_s__int_;
    0x00404328 lw t8, -0x7e80(gp)                |     t8 = sym.imp.mxmlSaveFile;
    0x0040432c move t9, t8                       |     t9 = t8;
    0x00404330 jalr t9                           |     t9 ();
    0x00404334 nop                               |     
    0x00404338 lw gp, 0x20(fp)                   |     gp = *(arg_20h);
    0x0040433c lw a0, 0x3c(fp)                   |     a0 = *(arg_3ch);
    0x00404340 lw t8, -0x7f34(gp)                |     t8 = sym.imp.mxmlDelete;
    0x00404344 move t9, t8                       |     t9 = t8;
    0x00404348 jalr t9                           |     t9 ();
    0x0040434c nop                               |     
    0x00404350 lw gp, 0x20(fp)                   |     gp = *(arg_20h);
    0x00404354 sw zero, 0x34(fp)                 |     *(arg_34h) = 0;
                                                 | label_1:
    0x00404358 lw a0, 0x38(fp)                   |     a0 = *(arg_38h);
    0x0040435c lw t8, -0x7edc(gp)                |     t8 = sym.imp.fclose;
    0x00404360 move t9, t8                       |     t9 = t8;
    0x00404364 jalr t9                           |     t9 ();
    0x00404368 nop                               |     
    0x0040436c lw gp, 0x20(fp)                   |     gp = *(arg_20h);
    0x00404370 lw t8, 0x34(fp)                   |     t8 = *(arg_34h);
                                                 | label_0:
    0x00404374 move v0, t8                       |     v0 = t8;
    0x00404378 lw t8, -0x7e74(gp)                |     t8 = *((gp - 8093));
    0x0040437c lw v1, 0x44(fp)                   |     v1 = *(arg_44h);
    0x00404380 lw t8, (t8)                       |     t8 = *(t8);
                                                 |     if (v1 != t8) {
    0x00404384 beq v1, t8, 0x40439c              |         
    0x00404388 nop                               |         
    0x0040438c lw t8, -0x7ee4(gp)                |         t8 = sym.imp.__stack_chk_fail;
    0x00404390 move t9, t8                       |         t9 = t8;
    0x00404394 jalr t9                           |         t9 ();
    0x00404398 nop                               |         
                                                 |     }
    0x0040439c move sp, fp                       |     
    0x004043a0 lw ra, 0x54(sp)                   |     ra = *(var_54h);
    0x004043a4 lw fp, 0x50(sp)                   |     fp = *(var_50h);
    0x004043a8 lw s0, 0x4c(sp)                   |     s0 = *(var_4ch);
    0x004043ac addiu sp, sp, 0x58                |     
    0x004043b0 jr ra                             |     return v1;
    0x004043b4 nop                               |     
                                                 | }
    ; assembly                                           | /* r2dec pseudo code output */
                                                         | /* /logs/firmware/patool_extraction/DUMP/mtdblock8_unblob_extracted/mtdblock8_extract/0-9650176.squashfs_v4_le_extract/sbin/dbd @ 0x403274 */
                                                         | #include <stdint.h>
                                                         |  
    ; (fcn) sym.xml_file_include_mxml_node_s_ ()         | void xml_file_include_mxml_node_s_ () {
                                                         |     /* xml_file_include(mxml_node_s*) */
    0x00403274 lui gp, 2                                 |     
    0x00403278 addiu gp, gp, -0x2244                     |     
    0x0040327c addu gp, gp, t9                           |     gp += t9;
    0x00403280 addiu sp, sp, -0x50                       |     
    0x00403284 sw ra, 0x4c(sp)                           |     *(var_4ch) = ra;
    0x00403288 sw fp, 0x48(sp)                           |     *(var_48h) = fp;
    0x0040328c sw s0, 0x44(sp)                           |     *(var_44h) = s0;
    0x00403290 move fp, sp                               |     fp = sp;
    0x00403294 sw gp, 0x18(sp)                           |     *(var_18h) = gp;
    0x00403298 sw a0, 0x24(fp)                           |     *(arg_24h) = a0;
    0x0040329c lw t8, -0x7e74(gp)                        |     t8 = *((gp - 8093));
    0x004032a0 lw t8, (t8)                               |     t8 = *(t8);
    0x004032a4 sw t8, 0x3c(fp)                           |     *(arg_3ch) = t8;
    0x004032a8 lw t8, 0x24(fp)                           |     t8 = *(arg_24h);
                                                         |     if (t8 == 0) {
    0x004032ac bnez t8, 0x403320                         |         
    0x004032b0 nop                                       |         
    0x004032b4 lw t8, -0x7ee8(gp)                        |         t8 = *((gp - 8122));
    0x004032b8 lw s0, (t8)                               |         s0 = *(t8);
    0x004032bc lw t8, -0x7e70(gp)                        |         t8 = sym.imp.__errno_location;
    0x004032c0 move t9, t8                               |         t9 = t8;
    0x004032c4 jalr t9                                   |         t9 ();
    0x004032c8 nop                                       |         
    0x004032cc lw gp, 0x18(fp)                           |         gp = *(arg_18h);
    0x004032d0 move t8, v0                               |         t8 = v0;
    0x004032d4 lw t8, (t8)                               |         t8 = *(t8);
    0x004032d8 addiu v0, zero, 0x13a                     |         v0 = 0x13a;
    0x004032dc sw v0, 0x10(sp)                           |         *(var_10h) = v0;
    0x004032e0 sw t8, 0x14(sp)                           |         *(var_14h) = t8;
    0x004032e4 move a0, s0                               |         a0 = s0;
    0x004032e8 lw t8, -0x7fdc(gp)                        |         t8 = *(gp);
                                                         |         /* str._s___s____L_d:_Invalid_para__errno___d_n */
    0x004032ec addiu a1, t8, 0x77f8                      |         a1 = t8 + 0x77f8;
    0x004032f0 lw t8, -0x7fdc(gp)                        |         t8 = *(gp);
                                                         |         /* str.dbd.cpp */
    0x004032f4 addiu a2, t8, 0x7824                      |         a2 = t8 + 0x7824;
    0x004032f8 lw t8, -0x7fdc(gp)                        |         t8 = *(gp);
                                                         |         /* str.xml_file_include */
    0x004032fc addiu a3, t8, 0x7f2c                      |         a3 = t8 + 0x7f2c;
    0x00403300 lw t8, -0x7f1c(gp)                        |         t8 = sym.imp.fprintf
    0x00403304 move t9, t8                               |         t9 = t8;
    0x00403308 jalr t9                                   |         t9 ();
    0x0040330c nop                                       |         
    0x00403310 lw gp, 0x18(fp)                           |         gp = *(arg_18h);
    0x00403314 addiu t8, zero, -7                        |         t8 = -7;
    0x00403318 b 0x403500                                |         goto label_0;
    0x0040331c nop                                       |         
                                                         |     }
    0x00403320 sw zero, 0x10(sp)                         |     *(var_10h) = 0;
    0x00403324 addiu t8, zero, 1                         |     t8 = 1;
    0x00403328 sw t8, 0x14(sp)                           |     *(var_14h) = t8;
    0x0040332c lw a0, 0x24(fp)                           |     a0 = *(arg_24h);
    0x00403330 lw a1, 0x24(fp)                           |     a1 = *(arg_24h);
    0x00403334 lw t8, -0x7fdc(gp)                        |     t8 = *(gp);
                                                         |     /* str.include */
    0x00403338 addiu a2, t8, 0x79e8                      |     a2 = t8 + 0x79e8;
    0x0040333c move a3, zero                             |     a3 = 0;
    0x00403340 lw t8, -0x7ea8(gp)                        |     t8 = sym.imp.mxmlFindElement;
    0x00403344 move t9, t8                               |     t9 = t8;
    0x00403348 jalr t9                                   |     t9 ();
    0x0040334c nop                                       |     
    0x00403350 lw gp, 0x18(fp)                           |     gp = *(arg_18h);
    0x00403354 move t8, v0                               |     t8 = v0;
    0x00403358 sw t8, 0x28(fp)                           |     *(arg_28h) = t8;
    0x0040335c b 0x4034f0                                |     goto label_1;
    0x00403360 nop                                       |     
                                                         |     do {
    0x00403364 sw zero, 0x2c(fp)                         |         *(arg_2ch) = 0;
    0x00403368 sw zero, 0x30(fp)                         |         *(arg_30h) = 0;
    0x0040336c lw a0, 0x28(fp)                           |         a0 = *(arg_28h);
    0x00403370 lw t8, -0x7fdc(gp)                        |         t8 = *(gp);
                                                         |         /* str.filename */
    0x00403374 addiu a1, t8, 0x79f0                      |         a1 = t8 + 0x79f0;
    0x00403378 lw t8, -0x7ed8(gp)                        |         t8 = sym.imp.mxmlElementGetAttr;
    0x0040337c move t9, t8                               |         t9 = t8;
    0x00403380 jalr t9                                   |         t9 ();
    0x00403384 nop                                       |         
    0x00403388 lw gp, 0x18(fp)                           |         gp = *(arg_18h);
    0x0040338c move t8, v0                               |         t8 = v0;
    0x00403390 sw t8, 0x2c(fp)                           |         *(arg_2ch) = t8;
    0x00403394 lw t8, 0x2c(fp)                           |         t8 = *(arg_2ch);
                                                         |         if (t8 != 0) {
    0x00403398 beqz t8, 0x4034b4                         |             
    0x0040339c nop                                       |             
    0x004033a0 lw a0, 0x2c(fp)                           |             a0 = *(arg_2ch);
    0x004033a4 lw t8, -0x7fdc(gp)                        |             t8 = *(gp);
    0x004033a8 addiu a1, t8, 0x79fc                      |             a1 = t8 + 0x79fc;
    0x004033ac lw t8, -0x7ee0(gp)                        |             t8 = sym.imp.fopen;
    0x004033b0 move t9, t8                               |             t9 = t8;
    0x004033b4 jalr t9                                   |             t9 ();
    0x004033b8 nop                                       |             
    0x004033bc lw gp, 0x18(fp)                           |             gp = *(arg_18h);
    0x004033c0 move t8, v0                               |             t8 = v0;
    0x004033c4 sw t8, 0x30(fp)                           |             *(arg_30h) = t8;
    0x004033c8 lw t8, 0x30(fp)                           |             t8 = *(arg_30h);
                                                         |             if (t8 == 0) {
    0x004033cc beqz t8, 0x4034b4                         |                 goto label_2;
                                                         |             }
    0x004033d0 nop                                       |             
    0x004033d4 move a0, zero                             |             a0 = 0;
    0x004033d8 lw a1, 0x30(fp)                           |             a1 = *(arg_30h);
    0x004033dc move a2, zero                             |             a2 = 0;
    0x004033e0 lw t8, -0x7ecc(gp)                        |             t8 = sym.imp.mxmlLoadFile;
    0x004033e4 move t9, t8                               |             t9 = t8;
    0x004033e8 jalr t9                                   |             t9 ();
    0x004033ec nop                                       |             
    0x004033f0 lw gp, 0x18(fp)                           |             gp = *(arg_18h);
    0x004033f4 move t8, v0                               |             t8 = v0;
    0x004033f8 sw t8, 0x34(fp)                           |             *(arg_34h) = t8;
    0x004033fc lw a0, 0x30(fp)                           |             a0 = *(arg_30h);
    0x00403400 lw t8, -0x7edc(gp)                        |             t8 = sym.imp.fclose;
    0x00403404 move t9, t8                               |             t9 = t8;
    0x00403408 jalr t9                                   |             t9 ();
    0x0040340c nop                                       |             
    0x00403410 lw gp, 0x18(fp)                           |             gp = *(arg_18h);
    0x00403414 lw t8, 0x34(fp)                           |             t8 = *(arg_34h);
                                                         |             if (t8 == 0) {
    0x00403418 bnez t8, 0x403428                         |                 
    0x0040341c nop                                       |                 
    0x00403420 b 0x4034f0                                |                 goto label_1;
    0x00403424 nop                                       |                 
                                                         |             }
    0x00403428 sw zero, 0x10(sp)                         |             *(var_10h) = 0;
    0x0040342c addiu t8, zero, 1                         |             t8 = 1;
    0x00403430 sw t8, 0x14(sp)                           |             *(var_14h) = t8;
    0x00403434 lw a0, 0x34(fp)                           |             a0 = *(arg_34h);
    0x00403438 lw a1, 0x34(fp)                           |             a1 = *(arg_34h);
    0x0040343c lw t8, -0x7fdc(gp)                        |             t8 = *(gp);
                                                         |             /* str.wrapper */
    0x00403440 addiu a2, t8, 0x7a00                      |             a2 = t8 + 0x7a00;
    0x00403444 move a3, zero                             |             a3 = 0;
    0x00403448 lw t8, -0x7ea8(gp)                        |             t8 = sym.imp.mxmlFindElement;
    0x0040344c move t9, t8                               |             t9 = t8;
    0x00403450 jalr t9                                   |             t9 ();
    0x00403454 nop                                       |             
    0x00403458 lw gp, 0x18(fp)                           |             gp = *(arg_18h);
    0x0040345c move t8, v0                               |             t8 = v0;
    0x00403460 sw t8, 0x38(fp)                           |             *(arg_38h) = t8;
    0x00403464 lw t8, 0x38(fp)                           |             t8 = *(arg_38h);
                                                         |             if (t8 != 0) {
    0x00403468 beqz t8, 0x40349c                         |                 
    0x0040346c nop                                       |                 
    0x00403470 lw t8, 0x28(fp)                           |                 t8 = *(arg_28h);
    0x00403474 lw t8, 0xc(t8)                            |                 t8 = *((t8 + 3));
    0x00403478 move a0, t8                               |                 a0 = t8;
    0x0040347c addiu a1, zero, 1                         |                 a1 = 1;
    0x00403480 lw a2, 0x28(fp)                           |                 a2 = *(arg_28h);
    0x00403484 lw a3, 0x38(fp)                           |                 a3 = *(arg_38h);
    0x00403488 lw t8, -0x7f10(gp)                        |                 t8 = sym.imp.mxmlAdd;
    0x0040348c move t9, t8                               |                 t9 = t8;
    0x00403490 jalr t9                                   |                 t9 ();
    0x00403494 nop                                       |                 
    0x00403498 lw gp, 0x18(fp)                           |                 gp = *(arg_18h);
                                                         |             }
    0x0040349c lw a0, 0x34(fp)                           |             a0 = *(arg_34h);
    0x004034a0 lw t8, -0x7f34(gp)                        |             t8 = sym.imp.mxmlDelete;
    0x004034a4 move t9, t8                               |             t9 = t8;
    0x004034a8 jalr t9                                   |             t9 ();
    0x004034ac nop                                       |             
    0x004034b0 lw gp, 0x18(fp)                           |             gp = *(arg_18h);
                                                         |         }
                                                         | label_2:
    0x004034b4 sw zero, 0x10(sp)                         |         *(var_10h) = 0;
    0x004034b8 addiu t8, zero, 1                         |         t8 = 1;
    0x004034bc sw t8, 0x14(sp)                           |         *(var_14h) = t8;
    0x004034c0 lw a0, 0x28(fp)                           |         a0 = *(arg_28h);
    0x004034c4 lw a1, 0x24(fp)                           |         a1 = *(arg_24h);
    0x004034c8 lw t8, -0x7fdc(gp)                        |         t8 = *(gp);
                                                         |         /* str.include */
    0x004034cc addiu a2, t8, 0x79e8                      |         a2 = t8 + 0x79e8;
    0x004034d0 move a3, zero                             |         a3 = 0;
    0x004034d4 lw t8, -0x7ea8(gp)                        |         t8 = sym.imp.mxmlFindElement;
    0x004034d8 move t9, t8                               |         t9 = t8;
    0x004034dc jalr t9                                   |         t9 ();
    0x004034e0 nop                                       |         
    0x004034e4 lw gp, 0x18(fp)                           |         gp = *(arg_18h);
    0x004034e8 move t8, v0                               |         t8 = v0;
    0x004034ec sw t8, 0x28(fp)                           |         *(arg_28h) = t8;
                                                         | label_1:
    0x004034f0 lw t8, 0x28(fp)                           |         t8 = *(arg_28h);
    0x004034f4 bnez t8, 0x403364                         |         
                                                         |     } while (t8 != 0);
    0x004034f8 nop                                       |     
    0x004034fc move t8, zero                             |     t8 = 0;
                                                         | label_0:
    0x00403500 move v0, t8                               |     v0 = t8;
    0x00403504 lw t8, -0x7e74(gp)                        |     t8 = *((gp - 8093));
    0x00403508 lw v1, 0x3c(fp)                           |     v1 = *(arg_3ch);
    0x0040350c lw t8, (t8)                               |     t8 = *(t8);
                                                         |     if (v1 != t8) {
    0x00403510 beq v1, t8, 0x403528                      |         
    0x00403514 nop                                       |         
    0x00403518 lw t8, -0x7ee4(gp)                        |         t8 = sym.imp.__stack_chk_fail;
    0x0040351c move t9, t8                               |         t9 = t8;
    0x00403520 jalr t9                                   |         t9 ();
    0x00403524 nop                                       |         
                                                         |     }
    0x00403528 move sp, fp                               |     
    0x0040352c lw ra, 0x4c(sp)                           |     ra = *(var_4ch);
    0x00403530 lw fp, 0x48(sp)                           |     fp = *(var_48h);
    0x00403534 lw s0, 0x44(sp)                           |     s0 = *(var_44h);
    0x00403538 addiu sp, sp, 0x50                        |     
    0x0040353c jr ra                                     |     return v1;
    0x00403540 nop                                       |     
                                                         | }
    ; assembly                                                                   | /* r2dec pseudo code output */
                                                                                 | /* /logs/firmware/patool_extraction/DUMP/mtdblock8_unblob_extracted/mtdblock8_extract/0-9650176.squashfs_v4_le_extract/sbin/dbd @ 0x402a60 */
                                                                                 | #include <stdint.h>
                                                                                 |  
    ; (fcn) sym.xml_get_mxml_node_s__char_const_____32___char__char_ ()          | void xml_get_mxml_node_s_char_const_32_char_char_ () {
                                                                                 |     /* xml_get(mxml_node_s*, char const (*) [32], char, char*) */
    0x00402a60 lui gp, 2                                                         |     
    0x00402a64 addiu gp, gp, -0x1a30                                             |     
    0x00402a68 addu gp, gp, t9                                                   |     gp += t9;
    0x00402a6c addiu sp, sp, -0x60                                               |     
    0x00402a70 sw ra, 0x5c(sp)                                                   |     *(var_5ch) = ra;
    0x00402a74 sw fp, 0x58(sp)                                                   |     *(var_58h) = fp;
    0x00402a78 sw s1, 0x54(sp)                                                   |     *(var_54h) = s1;
    0x00402a7c sw s0, 0x50(sp)                                                   |     *(var_50h) = s0;
    0x00402a80 move fp, sp                                                       |     fp = sp;
    0x00402a84 sw gp, 0x20(sp)                                                   |     *(var_20h) = gp;
    0x00402a88 sw a0, 0x34(fp)                                                   |     *(arg_34h) = a0;
    0x00402a8c sw a1, 0x30(fp)                                                   |     *(arg_30h) = a1;
    0x00402a90 move t8, a2                                                       |     t8 = a2;
    0x00402a94 sw a3, 0x28(fp)                                                   |     *(arg_28h) = a3;
    0x00402a98 sb t8, 0x2c(fp)                                                   |     *(arg_2ch) = t8;
    0x00402a9c lw t8, -0x7e74(gp)                                                |     t8 = *((gp - 8093));
    0x00402aa0 lw t8, (t8)                                                       |     t8 = *(t8);
    0x00402aa4 sw t8, 0x4c(fp)                                                   |     *(arg_4ch) = t8;
    0x00402aa8 sw zero, 0x3c(fp)                                                 |     *(arg_3ch) = 0;
    0x00402aac sw zero, 0x40(fp)                                                 |     *(arg_40h) = 0;
    0x00402ab0 sw zero, 0x48(fp)                                                 |     *(arg_48h) = 0;
    0x00402ab4 lw t8, 0x34(fp)                                                   |     t8 = *(arg_34h);
                                                                                 |     if (t8 != 0) {
    0x00402ab8 beqz t8, 0x402af4                                                 |         
    0x00402abc nop                                                               |         
    0x00402ac0 lw t8, 0x30(fp)                                                   |         t8 = *(arg_30h);
                                                                                 |         if (t8 == 0) {
    0x00402ac4 beqz t8, 0x402af4                                                 |             goto label_0;
                                                                                 |         }
    0x00402ac8 nop                                                               |         
    0x00402acc lb t8, 0x2c(fp)                                                   |         t8 = *(arg_2ch);
                                                                                 |         if (t8 <= 0) {
    0x00402ad0 blez t8, 0x402af4                                                 |             goto label_0;
                                                                                 |         }
    0x00402ad4 nop                                                               |         
    0x00402ad8 lb t8, 0x2c(fp)                                                   |         t8 = *(arg_2ch);
    0x00402adc slti t8, t8, 0xb                                                  |         t8 = (t8 < 0xb) ? 1 : 0;
                                                                                 |         if (t8 == 0) {
    0x00402ae0 beqz t8, 0x402af4                                                 |             goto label_0;
                                                                                 |         }
    0x00402ae4 nop                                                               |         
    0x00402ae8 lw t8, 0x28(fp)                                                   |         t8 = *(arg_28h);
                                                                                 |         if (t8 != 0) {
    0x00402aec bnez t8, 0x402b60                                                 |             goto label_1;
                                                                                 |         }
    0x00402af0 nop                                                               |         
                                                                                 |     }
                                                                                 | label_0:
    0x00402af4 lw t8, -0x7ee8(gp)                                                |     t8 = *((gp - 8122));
    0x00402af8 lw s0, (t8)                                                       |     s0 = *(t8);
    0x00402afc lw t8, -0x7e70(gp)                                                |     t8 = sym.imp.__errno_location;
    0x00402b00 move t9, t8                                                       |     t9 = t8;
    0x00402b04 jalr t9                                                           |     t9 ();
    0x00402b08 nop                                                               |     
    0x00402b0c lw gp, 0x20(fp)                                                   |     gp = *(arg_20h);
    0x00402b10 move t8, v0                                                       |     t8 = v0;
    0x00402b14 lw t8, (t8)                                                       |     t8 = *(t8);
    0x00402b18 addiu v0, zero, 0xea                                              |     v0 = 0xea;
    0x00402b1c sw v0, 0x10(sp)                                                   |     *(var_10h) = v0;
    0x00402b20 sw t8, 0x14(sp)                                                   |     *(var_14h) = t8;
    0x00402b24 move a0, s0                                                       |     a0 = s0;
    0x00402b28 lw t8, -0x7fdc(gp)                                                |     t8 = *(gp);
                                                                                 |     /* str._s___s____L_d:_Invalid_para__errno___d_n */
    0x00402b2c addiu a1, t8, 0x77f8                                              |     a1 = t8 + 0x77f8;
    0x00402b30 lw t8, -0x7fdc(gp)                                                |     t8 = *(gp);
                                                                                 |     /* str.dbd.cpp */
    0x00402b34 addiu a2, t8, 0x7824                                              |     a2 = t8 + 0x7824;
    0x00402b38 lw t8, -0x7fdc(gp)                                                |     t8 = *(gp);
                                                                                 |     /* str.xml_get */
    0x00402b3c addiu a3, t8, 0x7f14                                              |     a3 = t8 + 0x7f14;
    0x00402b40 lw t8, -0x7f1c(gp)                                                |     t8 = sym.imp.fprintf
    0x00402b44 move t9, t8                                                       |     t9 = t8;
    0x00402b48 jalr t9                                                           |     t9 ();
    0x00402b4c nop                                                               |     
    0x00402b50 lw gp, 0x20(fp)                                                   |     gp = *(arg_20h);
    0x00402b54 addiu t8, zero, -7                                                |     t8 = -7;
    0x00402b58 b 0x402d2c                                                        |     goto label_2;
    0x00402b5c nop                                                               |     
                                                                                 | label_1:
    0x00402b60 lw a0, 0x28(fp)                                                   |     a0 = *(arg_28h);
    0x00402b64 move a1, zero                                                     |     a1 = 0;
    0x00402b68 addiu a2, zero, 0xe00                                             |     a2 = 0xe00;
    0x00402b6c lw t8, -0x7f14(gp)                                                |     t8 = sym.imp.memset;
    0x00402b70 move t9, t8                                                       |     t9 = t8;
    0x00402b74 jalr t9                                                           |     t9 ();
    0x00402b78 nop                                                               |     
    0x00402b7c lw gp, 0x20(fp)                                                   |     gp = *(arg_20h);
    0x00402b80 lw t8, 0x34(fp)                                                   |     t8 = *(arg_34h);
    0x00402b84 sw t8, 0x3c(fp)                                                   |     *(arg_3ch) = t8;
    0x00402b88 sw zero, 0x44(fp)                                                 |     *(arg_44h) = 0;
    0x00402b8c b 0x402ca8                                                        |     goto label_3;
    0x00402b90 nop                                                               |     
                                                                                 |     do {
    0x00402b94 lb t8, 0x2c(fp)                                                   |         t8 = *(arg_2ch);
    0x00402b98 addiu v0, t8, -2                                                  |         v0 = t8 + -2;
    0x00402b9c lw t8, 0x44(fp)                                                   |         t8 = *(arg_44h);
                                                                                 |         if (v0 == t8) {
    0x00402ba0 bne v0, t8, 0x402bc8                                              |             
    0x00402ba4 nop                                                               |             
    0x00402ba8 lb v0, 0x2c(fp)                                                   |             v0 = *(arg_2ch);
    0x00402bac lui t8, 0x7ff                                                     |             t8 = 0x7ffffff;
    0x00402bb0 ori t8, t8, 0xffff                                                |             
    0x00402bb4 addu t8, v0, t8                                                   |             t8 = v0 + t8;
    0x00402bb8 sll t8, t8, 5                                                     |             t8 <<= 5;
    0x00402bbc lw v0, 0x30(fp)                                                   |             v0 = *(arg_30h);
    0x00402bc0 addu t8, v0, t8                                                   |             t8 = v0 + t8;
    0x00402bc4 sw t8, 0x40(fp)                                                   |             *(arg_40h) = t8;
                                                                                 |         }
    0x00402bc8 lw t8, 0x44(fp)                                                   |         t8 = *(arg_44h);
    0x00402bcc sll t8, t8, 5                                                     |         t8 <<= 5;
    0x00402bd0 lw v0, 0x30(fp)                                                   |         v0 = *(arg_30h);
    0x00402bd4 addu t8, v0, t8                                                   |         t8 = v0 + t8;
    0x00402bd8 sw zero, 0x10(sp)                                                 |         *(var_10h) = 0;
    0x00402bdc addiu v0, zero, 1                                                 |         v0 = 1;
    0x00402be0 sw v0, 0x14(sp)                                                   |         *(var_14h) = v0;
    0x00402be4 lw a0, 0x3c(fp)                                                   |         a0 = *(arg_3ch);
    0x00402be8 lw a1, 0x3c(fp)                                                   |         a1 = *(arg_3ch);
    0x00402bec move a2, t8                                                       |         a2 = t8;
    0x00402bf0 lw a3, 0x40(fp)                                                   |         a3 = *(arg_40h);
    0x00402bf4 lw t8, -0x7ea8(gp)                                                |         t8 = sym.imp.mxmlFindElement;
    0x00402bf8 move t9, t8                                                       |         t9 = t8;
    0x00402bfc jalr t9                                                           |         t9 ();
    0x00402c00 nop                                                               |         
    0x00402c04 lw gp, 0x20(fp)                                                   |         gp = *(arg_20h);
    0x00402c08 move t8, v0                                                       |         t8 = v0;
    0x00402c0c sw t8, 0x3c(fp)                                                   |         *(arg_3ch) = t8;
    0x00402c10 lw t8, 0x3c(fp)                                                   |         t8 = *(arg_3ch);
                                                                                 |         if (t8 == 0) {
    0x00402c14 bnez t8, 0x402c9c                                                 |             
    0x00402c18 nop                                                               |             
    0x00402c1c lw t8, -0x7ee8(gp)                                                |             t8 = *((gp - 8122));
    0x00402c20 lw s0, (t8)                                                       |             s0 = *(t8);
    0x00402c24 lw t8, 0x44(fp)                                                   |             t8 = *(arg_44h);
    0x00402c28 sll t8, t8, 5                                                     |             t8 <<= 5;
    0x00402c2c lw v0, 0x30(fp)                                                   |             v0 = *(arg_30h);
    0x00402c30 addu s1, v0, t8                                                   |             s1 = v0 + t8;
    0x00402c34 lw t8, -0x7e70(gp)                                                |             t8 = sym.imp.__errno_location;
    0x00402c38 move t9, t8                                                       |             t9 = t8;
    0x00402c3c jalr t9                                                           |             t9 ();
    0x00402c40 nop                                                               |             
    0x00402c44 lw gp, 0x20(fp)                                                   |             gp = *(arg_20h);
    0x00402c48 move t8, v0                                                       |             t8 = v0;
    0x00402c4c lw t8, (t8)                                                       |             t8 = *(t8);
    0x00402c50 addiu v0, zero, 0xf6                                              |             v0 = 0xf6;
    0x00402c54 sw v0, 0x10(sp)                                                   |             *(var_10h) = v0;
    0x00402c58 sw s1, 0x14(sp)                                                   |             *(var_14h) = s1;
    0x00402c5c sw t8, 0x18(sp)                                                   |             *(var_18h) = t8;
    0x00402c60 move a0, s0                                                       |             a0 = s0;
    0x00402c64 lw t8, -0x7fdc(gp)                                                |             t8 = *(gp);
                                                                                 |             /* str._s___s____L_d:_Cant_find_subnode:__s__errno___d_n */
    0x00402c68 addiu a1, t8, 0x7878                                              |             a1 = t8 + 0x7878;
    0x00402c6c lw t8, -0x7fdc(gp)                                                |             t8 = *(gp);
                                                                                 |             /* str.dbd.cpp */
    0x00402c70 addiu a2, t8, 0x7824                                              |             a2 = t8 + 0x7824;
    0x00402c74 lw t8, -0x7fdc(gp)                                                |             t8 = *(gp);
                                                                                 |             /* str.xml_get */
    0x00402c78 addiu a3, t8, 0x7f14                                              |             a3 = t8 + 0x7f14;
    0x00402c7c lw t8, -0x7f1c(gp)                                                |             t8 = sym.imp.fprintf
    0x00402c80 move t9, t8                                                       |             t9 = t8;
    0x00402c84 jalr t9                                                           |             t9 ();
    0x00402c88 nop                                                               |             
    0x00402c8c lw gp, 0x20(fp)                                                   |             gp = *(arg_20h);
    0x00402c90 addiu t8, zero, -0xb                                              |             t8 = -0xb;
    0x00402c94 b 0x402d2c                                                        |             goto label_2;
    0x00402c98 nop                                                               |             
                                                                                 |         }
    0x00402c9c lw t8, 0x44(fp)                                                   |         t8 = *(arg_44h);
    0x00402ca0 addiu t8, t8, 1                                                   |         t8++;
    0x00402ca4 sw t8, 0x44(fp)                                                   |         *(arg_44h) = t8;
                                                                                 | label_3:
    0x00402ca8 lb t8, 0x2c(fp)                                                   |         t8 = *(arg_2ch);
    0x00402cac addiu v0, t8, -1                                                  |         v0 = t8 + -1;
    0x00402cb0 lw t8, 0x44(fp)                                                   |         t8 = *(arg_44h);
    0x00402cb4 slt t8, t8, v0                                                    |         t8 = (t8 < v0) ? 1 : 0;
    0x00402cb8 bnez t8, 0x402b94                                                 |         
                                                                                 |     } while (t8 != 0);
    0x00402cbc nop                                                               |     
    0x00402cc0 lb v0, 0x2c(fp)                                                   |     v0 = *(arg_2ch);
    0x00402cc4 lui t8, 0x7ff                                                     |     t8 = 0x7ffffff;
    0x00402cc8 ori t8, t8, 0xffff                                                |     
    0x00402ccc addu t8, v0, t8                                                   |     t8 = v0 + t8;
    0x00402cd0 sll t8, t8, 5                                                     |     t8 <<= 5;
    0x00402cd4 lw v0, 0x30(fp)                                                   |     v0 = *(arg_30h);
    0x00402cd8 addu t8, v0, t8                                                   |     t8 = v0 + t8;
    0x00402cdc lw a0, 0x3c(fp)                                                   |     a0 = *(arg_3ch);
    0x00402ce0 move a1, t8                                                       |     a1 = t8;
    0x00402ce4 lw t8, -0x7ed8(gp)                                                |     t8 = sym.imp.mxmlElementGetAttr;
    0x00402ce8 move t9, t8                                                       |     t9 = t8;
    0x00402cec jalr t9                                                           |     t9 ();
    0x00402cf0 nop                                                               |     
    0x00402cf4 lw gp, 0x20(fp)                                                   |     gp = *(arg_20h);
    0x00402cf8 move t8, v0                                                       |     t8 = v0;
    0x00402cfc sw t8, 0x48(fp)                                                   |     *(arg_48h) = t8;
    0x00402d00 lw t8, 0x48(fp)                                                   |     t8 = *(arg_48h);
                                                                                 |     if (t8 != 0) {
    0x00402d04 beqz t8, 0x402d28                                                 |         
    0x00402d08 nop                                                               |         
    0x00402d0c lw a0, 0x28(fp)                                                   |         a0 = *(arg_28h);
    0x00402d10 lw a1, 0x48(fp)                                                   |         a1 = *(arg_48h);
    0x00402d14 lw t8, -0x7f58(gp)                                                |         t8 = sym.imp.strcpy;
    0x00402d18 move t9, t8                                                       |         t9 = t8;
    0x00402d1c jalr t9                                                           |         t9 ();
    0x00402d20 nop                                                               |         
    0x00402d24 lw gp, 0x20(fp)                                                   |         gp = *(arg_20h);
                                                                                 |     }
    0x00402d28 move t8, zero                                                     |     t8 = 0;
                                                                                 | label_2:
    0x00402d2c move v0, t8                                                       |     v0 = t8;
    0x00402d30 lw t8, -0x7e74(gp)                                                |     t8 = *((gp - 8093));
    0x00402d34 lw v1, 0x4c(fp)                                                   |     v1 = *(arg_4ch);
    0x00402d38 lw t8, (t8)                                                       |     t8 = *(t8);
                                                                                 |     if (v1 != t8) {
    0x00402d3c beq v1, t8, 0x402d54                                              |         
    0x00402d40 nop                                                               |         
    0x00402d44 lw t8, -0x7ee4(gp)                                                |         t8 = sym.imp.__stack_chk_fail;
    0x00402d48 move t9, t8                                                       |         t9 = t8;
    0x00402d4c jalr t9                                                           |         t9 ();
    0x00402d50 nop                                                               |         
                                                                                 |     }
    0x00402d54 move sp, fp                                                       |     
    0x00402d58 lw ra, 0x5c(sp)                                                   |     ra = *(var_5ch);
    0x00402d5c lw fp, 0x58(sp)                                                   |     fp = *(var_58h);
    0x00402d60 lw s1, 0x54(sp)                                                   |     s1 = *(var_54h);
    0x00402d64 lw s0, 0x50(sp)                                                   |     s0 = *(var_50h);
    0x00402d68 addiu sp, sp, 0x60                                                |     
    0x00402d6c jr ra                                                             |     return v1;
    0x00402d70 nop                                                               |     
                                                                                 | }
    ; assembly                                                               | /* r2dec pseudo code output */
                                                                             | /* /logs/firmware/patool_extraction/DUMP/mtdblock8_unblob_extracted/mtdblock8_extract/0-9650176.squashfs_v4_le_extract/sbin/dbd @ 0x401fcc */
                                                                             | #include <stdint.h>
                                                                             |  
    ; (fcn) sym.xml_set_mxml_node_s__char_const_____32___char__char_ ()      | void xml_set_mxml_node_s_char_const_32_char_char_ () {
                                                                             |     /* xml_set(mxml_node_s*, char const (*) [32], char, char*) */
    0x00401fcc lui gp, 2                                                     |     
    0x00401fd0 addiu gp, gp, -0xf9c                                          |     
    0x00401fd4 addu gp, gp, t9                                               |     gp += t9;
    0x00401fd8 addiu sp, sp, -0x58                                           |     
    0x00401fdc sw ra, 0x54(sp)                                               |     *(var_54h) = ra;
    0x00401fe0 sw fp, 0x50(sp)                                               |     *(var_50h) = fp;
    0x00401fe4 sw s1, 0x4c(sp)                                               |     *(var_4ch) = s1;
    0x00401fe8 sw s0, 0x48(sp)                                               |     *(var_48h) = s0;
    0x00401fec move fp, sp                                                   |     fp = sp;
    0x00401ff0 sw gp, 0x20(sp)                                               |     *(var_20h) = gp;
    0x00401ff4 sw a0, 0x34(fp)                                               |     *(arg_34h) = a0;
    0x00401ff8 sw a1, 0x30(fp)                                               |     *(arg_30h) = a1;
    0x00401ffc move t8, a2                                                   |     t8 = a2;
    0x00402000 sw a3, 0x28(fp)                                               |     *(arg_28h) = a3;
    0x00402004 sb t8, 0x2c(fp)                                               |     *(arg_2ch) = t8;
    0x00402008 lw t8, -0x7e74(gp)                                            |     t8 = *((gp - 8093));
    0x0040200c lw t8, (t8)                                                   |     t8 = *(t8);
    0x00402010 sw t8, 0x44(fp)                                               |     *(arg_44h) = t8;
    0x00402014 sw zero, 0x38(fp)                                             |     *(arg_38h) = 0;
    0x00402018 sw zero, 0x3c(fp)                                             |     *(arg_3ch) = 0;
    0x0040201c lw t8, 0x34(fp)                                               |     t8 = *(arg_34h);
                                                                             |     if (t8 != 0) {
    0x00402020 beqz t8, 0x40205c                                             |         
    0x00402024 nop                                                           |         
    0x00402028 lw t8, 0x30(fp)                                               |         t8 = *(arg_30h);
                                                                             |         if (t8 == 0) {
    0x0040202c beqz t8, 0x40205c                                             |             goto label_0;
                                                                             |         }
    0x00402030 nop                                                           |         
    0x00402034 lb t8, 0x2c(fp)                                               |         t8 = *(arg_2ch);
                                                                             |         if (t8 <= 0) {
    0x00402038 blez t8, 0x40205c                                             |             goto label_0;
                                                                             |         }
    0x0040203c nop                                                           |         
    0x00402040 lb t8, 0x2c(fp)                                               |         t8 = *(arg_2ch);
    0x00402044 slti t8, t8, 0xb                                              |         t8 = (t8 < 0xb) ? 1 : 0;
                                                                             |         if (t8 == 0) {
    0x00402048 beqz t8, 0x40205c                                             |             goto label_0;
                                                                             |         }
    0x0040204c nop                                                           |         
    0x00402050 lw t8, 0x28(fp)                                               |         t8 = *(arg_28h);
                                                                             |         if (t8 != 0) {
    0x00402054 bnez t8, 0x4020c8                                             |             goto label_1;
                                                                             |         }
    0x00402058 nop                                                           |         
                                                                             |     }
                                                                             | label_0:
    0x0040205c lw t8, -0x7ee8(gp)                                            |     t8 = *((gp - 8122));
    0x00402060 lw s0, (t8)                                                   |     s0 = *(t8);
    0x00402064 lw t8, -0x7e70(gp)                                            |     t8 = sym.imp.__errno_location;
    0x00402068 move t9, t8                                                   |     t9 = t8;
    0x0040206c jalr t9                                                       |     t9 ();
    0x00402070 nop                                                           |     
    0x00402074 lw gp, 0x20(fp)                                               |     gp = *(arg_20h);
    0x00402078 move t8, v0                                                   |     t8 = v0;
    0x0040207c lw t8, (t8)                                                   |     t8 = *(t8);
    0x00402080 addiu v0, zero, 0x6d                                          |     v0 = 0x6d;
    0x00402084 sw v0, 0x10(sp)                                               |     *(var_10h) = v0;
    0x00402088 sw t8, 0x14(sp)                                               |     *(var_14h) = t8;
    0x0040208c move a0, s0                                                   |     a0 = s0;
    0x00402090 lw t8, -0x7fdc(gp)                                            |     t8 = *(gp);
                                                                             |     /* str._s___s____L_d:_Invalid_para__errno___d_n */
    0x00402094 addiu a1, t8, 0x77f8                                          |     a1 = t8 + 0x77f8;
    0x00402098 lw t8, -0x7fdc(gp)                                            |     t8 = *(gp);
                                                                             |     /* str.dbd.cpp */
    0x0040209c addiu a2, t8, 0x7824                                          |     a2 = t8 + 0x7824;
    0x004020a0 lw t8, -0x7fdc(gp)                                            |     t8 = *(gp);
                                                                             |     /* str.xml_set */
    0x004020a4 addiu a3, t8, 0x7eec                                          |     a3 = t8 + 0x7eec;
    0x004020a8 lw t8, -0x7f1c(gp)                                            |     t8 = sym.imp.fprintf
    0x004020ac move t9, t8                                                   |     t9 = t8;
    0x004020b0 jalr t9                                                       |     t9 ();
    0x004020b4 nop                                                           |     
    0x004020b8 lw gp, 0x20(fp)                                               |     gp = *(arg_20h);
    0x004020bc addiu t8, zero, -7                                            |     t8 = -7;
    0x004020c0 b 0x402248                                                    |     goto label_2;
    0x004020c4 nop                                                           |     
                                                                             | label_1:
    0x004020c8 lw t8, 0x34(fp)                                               |     t8 = *(arg_34h);
    0x004020cc sw t8, 0x38(fp)                                               |     *(arg_38h) = t8;
    0x004020d0 sw zero, 0x40(fp)                                             |     *(arg_40h) = 0;
    0x004020d4 b 0x4021f0                                                    |     goto label_3;
    0x004020d8 nop                                                           |     
                                                                             |     do {
    0x004020dc lb t8, 0x2c(fp)                                               |         t8 = *(arg_2ch);
    0x004020e0 addiu v0, t8, -2                                              |         v0 = t8 + -2;
    0x004020e4 lw t8, 0x40(fp)                                               |         t8 = *(arg_40h);
                                                                             |         if (v0 == t8) {
    0x004020e8 bne v0, t8, 0x402110                                          |             
    0x004020ec nop                                                           |             
    0x004020f0 lb v0, 0x2c(fp)                                               |             v0 = *(arg_2ch);
    0x004020f4 lui t8, 0x7ff                                                 |             t8 = 0x7ffffff;
    0x004020f8 ori t8, t8, 0xffff                                            |             
    0x004020fc addu t8, v0, t8                                               |             t8 = v0 + t8;
    0x00402100 sll t8, t8, 5                                                 |             t8 <<= 5;
    0x00402104 lw v0, 0x30(fp)                                               |             v0 = *(arg_30h);
    0x00402108 addu t8, v0, t8                                               |             t8 = v0 + t8;
    0x0040210c sw t8, 0x3c(fp)                                               |             *(arg_3ch) = t8;
                                                                             |         }
    0x00402110 lw t8, 0x40(fp)                                               |         t8 = *(arg_40h);
    0x00402114 sll t8, t8, 5                                                 |         t8 <<= 5;
    0x00402118 lw v0, 0x30(fp)                                               |         v0 = *(arg_30h);
    0x0040211c addu t8, v0, t8                                               |         t8 = v0 + t8;
    0x00402120 sw zero, 0x10(sp)                                             |         *(var_10h) = 0;
    0x00402124 addiu v0, zero, 1                                             |         v0 = 1;
    0x00402128 sw v0, 0x14(sp)                                               |         *(var_14h) = v0;
    0x0040212c lw a0, 0x38(fp)                                               |         a0 = *(arg_38h);
    0x00402130 lw a1, 0x38(fp)                                               |         a1 = *(arg_38h);
    0x00402134 move a2, t8                                                   |         a2 = t8;
    0x00402138 lw a3, 0x3c(fp)                                               |         a3 = *(arg_3ch);
    0x0040213c lw t8, -0x7ea8(gp)                                            |         t8 = sym.imp.mxmlFindElement;
    0x00402140 move t9, t8                                                   |         t9 = t8;
    0x00402144 jalr t9                                                       |         t9 ();
    0x00402148 nop                                                           |         
    0x0040214c lw gp, 0x20(fp)                                               |         gp = *(arg_20h);
    0x00402150 move t8, v0                                                   |         t8 = v0;
    0x00402154 sw t8, 0x38(fp)                                               |         *(arg_38h) = t8;
    0x00402158 lw t8, 0x38(fp)                                               |         t8 = *(arg_38h);
                                                                             |         if (t8 == 0) {
    0x0040215c bnez t8, 0x4021e4                                             |             
    0x00402160 nop                                                           |             
    0x00402164 lw t8, -0x7ee8(gp)                                            |             t8 = *((gp - 8122));
    0x00402168 lw s0, (t8)                                                   |             s0 = *(t8);
    0x0040216c lw t8, 0x40(fp)                                               |             t8 = *(arg_40h);
    0x00402170 sll t8, t8, 5                                                 |             t8 <<= 5;
    0x00402174 lw v0, 0x30(fp)                                               |             v0 = *(arg_30h);
    0x00402178 addu s1, v0, t8                                               |             s1 = v0 + t8;
    0x0040217c lw t8, -0x7e70(gp)                                            |             t8 = sym.imp.__errno_location;
    0x00402180 move t9, t8                                                   |             t9 = t8;
    0x00402184 jalr t9                                                       |             t9 ();
    0x00402188 nop                                                           |             
    0x0040218c lw gp, 0x20(fp)                                               |             gp = *(arg_20h);
    0x00402190 move t8, v0                                                   |             t8 = v0;
    0x00402194 lw t8, (t8)                                                   |             t8 = *(t8);
    0x00402198 addiu v0, zero, 0x78                                          |             v0 = 0x78;
    0x0040219c sw v0, 0x10(sp)                                               |             *(var_10h) = v0;
    0x004021a0 sw s1, 0x14(sp)                                               |             *(var_14h) = s1;
    0x004021a4 sw t8, 0x18(sp)                                               |             *(var_18h) = t8;
    0x004021a8 move a0, s0                                                   |             a0 = s0;
    0x004021ac lw t8, -0x7fdc(gp)                                            |             t8 = *(gp);
                                                                             |             /* str._s___s____L_d:_Cant_find_subnode:__s__errno___d_n */
    0x004021b0 addiu a1, t8, 0x7878                                          |             a1 = t8 + 0x7878;
    0x004021b4 lw t8, -0x7fdc(gp)                                            |             t8 = *(gp);
                                                                             |             /* str.dbd.cpp */
    0x004021b8 addiu a2, t8, 0x7824                                          |             a2 = t8 + 0x7824;
    0x004021bc lw t8, -0x7fdc(gp)                                            |             t8 = *(gp);
                                                                             |             /* str.xml_set */
    0x004021c0 addiu a3, t8, 0x7eec                                          |             a3 = t8 + 0x7eec;
    0x004021c4 lw t8, -0x7f1c(gp)                                            |             t8 = sym.imp.fprintf
    0x004021c8 move t9, t8                                                   |             t9 = t8;
    0x004021cc jalr t9                                                       |             t9 ();
    0x004021d0 nop                                                           |             
    0x004021d4 lw gp, 0x20(fp)                                               |             gp = *(arg_20h);
    0x004021d8 addiu t8, zero, -0xb                                          |             t8 = -0xb;
    0x004021dc b 0x402248                                                    |             goto label_2;
    0x004021e0 nop                                                           |             
                                                                             |         }
    0x004021e4 lw t8, 0x40(fp)                                               |         t8 = *(arg_40h);
    0x004021e8 addiu t8, t8, 1                                               |         t8++;
    0x004021ec sw t8, 0x40(fp)                                               |         *(arg_40h) = t8;
                                                                             | label_3:
    0x004021f0 lb t8, 0x2c(fp)                                               |         t8 = *(arg_2ch);
    0x004021f4 addiu v0, t8, -1                                              |         v0 = t8 + -1;
    0x004021f8 lw t8, 0x40(fp)                                               |         t8 = *(arg_40h);
    0x004021fc slt t8, t8, v0                                                |         t8 = (t8 < v0) ? 1 : 0;
    0x00402200 bnez t8, 0x4020dc                                             |         
                                                                             |     } while (t8 != 0);
    0x00402204 nop                                                           |     
    0x00402208 lb v0, 0x2c(fp)                                               |     v0 = *(arg_2ch);
    0x0040220c lui t8, 0x7ff                                                 |     t8 = 0x7ffffff;
    0x00402210 ori t8, t8, 0xffff                                            |     
    0x00402214 addu t8, v0, t8                                               |     t8 = v0 + t8;
    0x00402218 sll t8, t8, 5                                                 |     t8 <<= 5;
    0x0040221c lw v0, 0x30(fp)                                               |     v0 = *(arg_30h);
    0x00402220 addu t8, v0, t8                                               |     t8 = v0 + t8;
    0x00402224 lw a0, 0x38(fp)                                               |     a0 = *(arg_38h);
    0x00402228 move a1, t8                                                   |     a1 = t8;
    0x0040222c lw a2, 0x28(fp)                                               |     a2 = *(arg_28h);
    0x00402230 lw t8, -0x7ebc(gp)                                            |     t8 = sym.imp.mxmlElementSetAttr;
    0x00402234 move t9, t8                                                   |     t9 = t8;
    0x00402238 jalr t9                                                       |     t9 ();
    0x0040223c nop                                                           |     
    0x00402240 lw gp, 0x20(fp)                                               |     gp = *(arg_20h);
    0x00402244 move t8, zero                                                 |     t8 = 0;
                                                                             | label_2:
    0x00402248 move v0, t8                                                   |     v0 = t8;
    0x0040224c lw t8, -0x7e74(gp)                                            |     t8 = *((gp - 8093));
    0x00402250 lw v1, 0x44(fp)                                               |     v1 = *(arg_44h);
    0x00402254 lw t8, (t8)                                                   |     t8 = *(t8);
                                                                             |     if (v1 != t8) {
    0x00402258 beq v1, t8, 0x402270                                          |         
    0x0040225c nop                                                           |         
    0x00402260 lw t8, -0x7ee4(gp)                                            |         t8 = sym.imp.__stack_chk_fail;
    0x00402264 move t9, t8                                                   |         t9 = t8;
    0x00402268 jalr t9                                                       |         t9 ();
    0x0040226c nop                                                           |         
                                                                             |     }
    0x00402270 move sp, fp                                                   |     
    0x00402274 lw ra, 0x54(sp)                                               |     ra = *(var_54h);
    0x00402278 lw fp, 0x50(sp)                                               |     fp = *(var_50h);
    0x0040227c lw s1, 0x4c(sp)                                               |     s1 = *(var_4ch);
    0x00402280 lw s0, 0x48(sp)                                               |     s0 = *(var_48h);
    0x00402284 addiu sp, sp, 0x58                                            |     
    0x00402288 jr ra                                                         |     return v1;
    0x0040228c nop                                                           |     
                                                                             | }

[*] Function fprintf used 62 times dbd