[*] Binary protection state of htdbm

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


[*] Function strcat tear down of htdbm

    ; assembly                           | /* r2dec pseudo code output */
                                         | /* /logs/firmware/unblob_extracted/firmware_extract/4325012-58052244.squashfs_v4_le_extract/usr/bin/htdbm @ 0x11a0 */
                                         | #include <stdint.h>
                                         |  
    ; (fcn) main ()                      | int32_t main () {
                                         |     /* [13] -r-x section size 6768 named .text */
    0x000011a0 lui gp, 2                 |     
    0x000011a4 addiu gp, gp, -0x5190     |     
    0x000011a8 addu gp, gp, t9           |     gp += t9;
    0x000011ac lw v0, -0x7ee8(gp)        |     v0 = *((gp - 8122));
    0x000011b0 addiu sp, sp, -0x190      |     
    0x000011b4 lw t9, -0x7ed4(gp)        |     t9 = sym.imp.apr_app_initialize;
    0x000011b8 sw v0, 0x34(sp)           |     *(var_34h) = v0;
    0x000011bc lw v0, (v0)               |     v0 = *(v0);
    0x000011c0 sw ra, 0x18c(sp)          |     *(var_18ch) = ra;
    0x000011c4 sw gp, 0x18(sp)           |     *(var_18h) = gp;
    0x000011c8 move a2, zero             |     a2 = 0;
    0x000011cc sw s2, 0x170(sp)          |     *(var_170h) = s2;
    0x000011d0 sw a0, 0x190(sp)          |     *(envp) = a0;
    0x000011d4 sw a1, 0x3c(sp)           |     *(var_3ch) = a1;
    0x000011d8 addiu a0, sp, 0x190       |     a0 = sp + aav.0x00000190;
    0x000011dc addiu a1, sp, 0x3c        |     a1 = sp + 0x3c;
    0x000011e0 sw fp, 0x188(sp)          |     *(var_188h) = fp;
    0x000011e4 sw s7, 0x184(sp)          |     *(var_184h) = s7;
    0x000011e8 sw s6, 0x180(sp)          |     *(var_180h) = s6;
    0x000011ec sw s5, 0x17c(sp)          |     *(var_17ch) = s5;
    0x000011f0 sw s4, 0x178(sp)          |     *(var_178h) = s4;
    0x000011f4 sw s3, 0x174(sp)          |     *(var_174h) = s3;
    0x000011f8 sw s1, 0x16c(sp)          |     *(var_16ch) = s1;
    0x000011fc sw s0, 0x168(sp)          |     *(var_168h) = s0;
    0x00001200 sw v0, 0x164(sp)          |     *(var_164h) = v0;
    0x00001204 jalr t9                   |     t9 ();
    0x00001208 nop                       |     
    0x0000120c lw gp, 0x18(sp)           |     gp = *(var_18h);
    0x00001210 lw a0, -0x7fd8(gp)        |     a0 = *((gp - 8182));
    0x00001214 lw t9, -0x7fd4(gp)        |     t9 = *(gp);
    0x00001218 addiu a0, a0, 0x1f90      |     a0 += 0x1f90;
    0x0000121c bal 0x2bf0                |     fcn_00002bf0 ();
    0x00001220 lw gp, 0x18(sp)           |     gp = *(var_18h);
    0x00001224 move a3, zero             |     a3 = 0;
    0x00001228 move a2, zero             |     a2 = 0;
    0x0000122c lw t9, -0x7ee0(gp)        |     t9 = sym.imp.apr_pool_create_ex;
    0x00001230 move a1, zero             |     a1 = 0;
    0x00001234 addiu a0, sp, 0x48        |     a0 = sp + 0x48;
    0x00001238 jalr t9                   |     t9 ();
    0x0000123c lw gp, 0x18(sp)           |     gp = *(var_18h);
    0x00001240 lw t9, -0x7ee4(gp)        |     t9 = sym.imp.apr_pool_abort_set;
    0x00001244 lw a0, -0x7fd0(gp)        |     a0 = sym.abort_on_oom;
    0x00001248 lw s2, -0x7fdc(gp)        |     s2 = *((gp - 8183));
    0x0000124c lw a1, 0x48(sp)           |     a1 = *(var_48h);
    0x00001250 jalr t9                   |     t9 ();
    0x00001254 lw gp, 0x18(sp)           |     gp = *(var_18h);
    0x00001258 lw t9, -0x7eec(gp)        |     t9 = sym.imp.apr_file_open_stderr;
    0x0000125c lw a0, -0x7fcc(gp)        |     a0 = *(gp);
    0x00001260 lw a1, 0x48(sp)           |     a1 = *(var_48h);
    0x00001264 jalr t9                   |     t9 ();
    0x00001268 lw gp, 0x18(sp)           |     gp = *(var_18h);
    0x0000126c addiu a0, zero, 2         |     a0 = 2;
    0x00001270 lw a1, -0x7fd8(gp)        |     a1 = *((gp - 8182));
    0x00001274 lw t9, -0x7f74(gp)        |     t9 = sym.imp.apr_signal;
    0x00001278 addiu a1, a1, 0x1fa8      |     a1 += 0x1fa8;
    0x0000127c jalr t9                   |     t9 ();
    0x00001280 lw gp, 0x18(sp)           |     gp = *(var_18h);
    0x00001284 lw a0, 0x48(sp)           |     a0 = *(var_48h);
    0x00001288 lw t9, -0x7f04(gp)        |     t9 = sym.imp.apr_palloc;
    0x0000128c addiu a1, zero, 0x3c      |     a1 = 0x3c;
    0x00001290 jalr t9                   |     t9 ();
    0x00001294 lw gp, 0x18(sp)           |     gp = *(var_18h);
    0x00001298 addiu a2, zero, 0x3c      |     a2 = 0x3c;
    0x0000129c move a1, zero             |     a1 = 0;
    0x000012a0 lw t9, -0x7f48(gp)        |     t9 = sym.imp.memset;
    0x000012a4 move a0, v0               |     a0 = v0;
    0x000012a8 jalr t9                   |     t9 ();
    0x000012ac lw gp, 0x18(sp)           |     gp = *(var_18h);
    0x000012b0 addiu v1, zero, 2         |     v1 = 2;
    0x000012b4 sw v1, 0x18(v0)           |     *((v0 + 6)) = v1;
    0x000012b8 lw v1, -0x7fd8(gp)        |     v1 = *((gp - 8182));
    0x000012bc lw a1, 0x48(sp)           |     a1 = *(var_48h);
    0x000012c0 addiu v1, v1, 0x2fb8      |     v1 += str.default;
    0x000012c4 lw t9, -0x7eb8(gp)        |     t9 = sym.imp.apr_getopt_init;
    0x000012c8 lw a3, 0x3c(sp)           |     a3 = *(var_3ch);
    0x000012cc lw a2, 0x190(sp)          |     a2 = *(envp);
    0x000012d0 sw a1, 4(v0)              |     *((v0 + 1)) = a1;
    0x000012d4 sw v1, 0x30(v0)           |     *((v0 + 12)) = v1;
    0x000012d8 addiu a0, sp, 0x4c        |     a0 = sp + 0x4c;
    0x000012dc sw v0, 0x4180(s2)         |     *((s2 + 4192)) = v0;
    0x000012e0 jalr t9                   |     t9 ();
    0x000012e4 lw gp, 0x18(sp)           |     gp = *(var_18h);
                                         |     if (v0 != 0) {
    0x000012e8 bnez v0, 0x1db0           |         goto label_15;
                                         |     }
    0x000012ec lw s0, -0x7fd8(gp)        |     s0 = *((gp - 8182));
    0x000012f0 lw s1, -0x7fd8(gp)        |     s1 = *((gp - 8182));
    0x000012f4 addiu v0, zero, 1         |     v0 = 1;
    0x000012f8 addiu s3, zero, 2         |     s3 = 2;
    0x000012fc move s4, zero             |     s4 = 0;
    0x00001300 sw zero, 0x28(sp)         |     *(var_28h) = 0;
    0x00001304 addiu s6, zero, 1         |     s6 = 1;
    0x00001308 sw v0, 0x30(sp)           |     *(var_30h) = v0;
    0x0000130c sw v0, 0x24(sp)           |     *(var_24h) = v0;
    0x00001310 addiu s7, sp, 0x50        |     s7 = sp + 0x50;
    0x00001314 addiu fp, sp, 0x47        |     fp = sp + 0x47;
    0x00001318 addiu s0, s0, 0x2fcc      |     s0 += str.cnmspdBbtivxlC:T:;
    0x0000131c addiu s1, s1, 0x3800      |     s1 += 0x3800;
    0x00001320 addiu s5, zero, 1         |     s5 = 1;
                                         |     do {
    0x00001324 lw t9, -0x7f94(gp)        |         t9 = sym.imp.apr_getopt;
    0x00001328 lw a0, 0x4c(sp)           |         a0 = *(var_4ch);
    0x0000132c move a3, s7               |         a3 = s7;
    0x00001330 move a2, fp               |         a2 = fp;
    0x00001334 move a1, s0               |         a1 = s0;
    0x00001338 jalr t9                   |         t9 ();
    0x0000133c lw gp, 0x18(sp)           |         gp = *(var_18h);
                                         |         if (v0 != 0) {
    0x00001340 bnez v0, 0x1450           |             goto label_16;
                                         |         }
    0x00001344 lb a1, 0x47(sp)           |         a1 = *(var_47h);
    0x00001348 addiu v0, a1, -0x54       |         v0 = a1 + -0x54;
    0x0000134c andi v0, v0, 0xff         |         v0 &= 0xff;
    0x00001350 sltiu a0, v0, 0x25        |         a0 = (v0 < 0x25) ? 1 : 0;
    0x00001354 sll v0, v0, 2             |         v0 <<= 2;
                                         |         if (a0 != 0) {
    0x00001358 beqz a0, 0x13f8           |             
    0x0000135c lwx v0, v0(s1)            |             __asm ("lwx v0, v0(s1)");
    0x00001360 addu v0, v0, gp           |             v0 += gp;
    0x00001364 jr v0                     |             v0 ();
    0x00001368 nop                       |             
                                         |         }
    0x000013f8 lw a0, 0x4180(s2)         |         a0 = *((s2 + 4192));
    0x000013fc lw t9, -0x7fc8(gp)        |         t9 = sym.parse_common_options;
    0x00001400 lw a2, 0x50(sp)           |         a2 = *(var_50h);
    0x00001404 addiu a0, a0, 4           |         a0 += 4;
    0x00001408 bal 0x29bc                |         sym_parse_common_options ();
    0x0000140c lw gp, 0x18(sp)           |         gp = *(var_18h);
    0x00001410 beqz v0, 0x1324           |         
                                         |     } while (v0 == 0);
    0x00001414 lw v1, -0x7ed0(gp)        |     v1 = *((gp - 8116));
    0x00001418 sw v0, 0x24(sp)           |     *(var_24h) = v0;
    0x0000141c lw v0, 0x4180(s2)         |     v0 = *((s2 + 4192));
    0x00001420 lw a2, -0x7fd8(gp)        |     a2 = *((gp - 8182));
    0x00001424 lw t9, -0x7f7c(gp)        |     t9 = sym.imp.__fprintf_chk;
    0x00001428 lw a0, (v1)               |     a0 = *(v1);
    0x0000142c lw a3, 8(v0)              |     a3 = *((v0 + 2));
    0x00001430 addiu a2, a2, 0x2fc0      |     a2 += str.Error:__s_n;
    0x00001434 addiu a1, zero, 1         |     a1 = 1;
    0x00001438 jalr t9                   |     t9 ();
    0x0000143c lw gp, 0x18(sp)           |     gp = *(var_18h);
    0x00001440 lw t1, 0x24(sp)           |     t1 = *(var_24h);
    0x00001444 lw t9, -0x7f14(gp)        |     t9 = sym.imp.exit;
    0x00001448 move a0, t1               |     a0 = t1;
    0x0000144c jalr t9                   |     t9 ();
                                         | label_16:
    0x00001450 lw s0, 0x4180(s2)         |     s0 = *((s2 + 4192));
    0x00001454 addiu v1, zero, 1         |     v1 = 1;
    0x00001458 lw a0, 0x20(s0)           |     a0 = *((s0 + 8));
    0x0000145c lw a0, 0x4c(sp)           |     a0 = *(var_4ch);
                                         |     if (a0 == v1) {
    0x00001460 bne a0, v1, 0x146c        |         
    0x00001464 addiu s3, s3, 1           |         s3++;
    0x00001468 move s6, zero             |         s6 = 0;
                                         |     }
    0x0000146c lui v1, 1                 |     v1 = 0x1117e;
    0x00001470 addiu v1, v1, 0x117e      |     
    0x00001474 lw s1, 0xc(a0)            |     s1 = *((a0 + 3));
                                         |     if (v0 != v1) {
    0x00001478 bne v0, v1, 0x1d8c        |         goto label_17;
                                         |     }
    0x0000147c lw v0, 0x190(sp)          |     v0 = *(envp);
    0x00001480 subu v0, v0, s1           |     __asm ("subu v0, v0, s1");
    0x00001484 lw v0, 0x24(sp)           |     v0 = *(var_24h);
                                         |     if (v0 != s3) {
    0x00001488 bne v0, s3, 0x1d8c        |         goto label_17;
                                         |     }
    0x0000148c lw a1, 0x3c(sp)           |     a1 = *(var_3ch);
                                         |     if (v0 != 0) {
    0x00001490 bnez v0, 0x17dc           |         goto label_18;
                                         |     }
                                         | label_4:
    0x00001494 lw v0, 0x30(sp)           |     v0 = *(var_30h);
    0x00001498 lw a1, 0x3c(sp)           |     a1 = *(var_3ch);
                                         |     if (v0 != 0) {
    0x0000149c bnez v0, 0x1774           |         goto label_19;
                                         |     }
                                         | label_3:
    0x000014a0 lw v1, 0x20(s0)           |     v1 = *((s0 + 8));
    0x000014a4 addiu v0, zero, 1         |     v0 = 1;
    0x000014a8 lw a1, 0x3c(sp)           |     a1 = *(var_3ch);
                                         |     if (v1 == v0) {
    0x000014ac beq v1, v0, 0x1b28        |         goto label_20;
                                         |     }
                                         | label_7:
    0x000014b0 lw t9, -0x7fc4(gp)        |     t9 = sym.get_password;
                                         |     if (s6 != 0) {
    0x000014b4 bnez s6, 0x1758           |         goto label_21;
                                         |     }
                                         | label_2:
    0x000014b8 lw v0, 0x28(sp)           |     v0 = *(var_28h);
    0x000014bc lw a1, 0x3c(sp)           |     a1 = *(var_3ch);
                                         |     if (v0 != 0) {
    0x000014c0 bnez v0, 0x1734           |         goto label_22;
                                         |     }
                                         | label_1:
    0x000014c4 addiu v0, zero, 2         |     v0 = 2;
    0x000014c8 addiu v0, zero, 3         |     v0 = 3;
                                         |     if (s4 == v0) {
    0x000014cc beq s4, v0, 0x1a3c        |         goto label_23;
                                         |     }
    0x000014d0 addiu v0, zero, 1         |     v0 = 1;
                                         |     if (s4 == v0) {
    0x000014d4 beq s4, v0, 0x18b8        |         goto label_24;
                                         |     }
    0x000014d8 lw t9, -0x7fc0(gp)        |     t9 = sym.mkhash;
                                         |     if (s4 == v0) {
    0x000014dc beq s4, v0, 0x15cc        |         goto label_25;
                                         |     }
    0x000014e0 addiu v0, zero, 0x100     |     v0 = aav.0x00000100;
    0x000014e4 addiu s3, sp, 0x64        |     s3 = sp + 0x64;
    0x000014e8 sw s3, 0xc(s0)            |     *((s0 + 3)) = s3;
    0x000014ec sw v0, 0x10(s0)           |     *((s0 + 4)) = v0;
    0x000014f0 addiu a0, s0, 4           |     a0 = s0 + 4;
    0x000014f4 bal 0x2534                |     sym_mkhash ();
    0x000014f8 move s1, v0               |     s1 = v0;
    0x000014fc lw gp, 0x18(sp)           |     gp = *(var_18h);
                                         |     if (v0 != 0) {
    0x00001500 bnez v0, 0x1bb0           |         goto label_26;
                                         |     }
    0x00001504 lw t9, -0x7f20(gp)        |     t9 = sym.imp.apr_pstrdup;
    0x00001508 lw a0, 4(s0)              |     a0 = *((s0 + 1));
    0x0000150c move a1, s3               |     a1 = s3;
    0x00001510 jalr t9                   |     t9 ();
    0x00001514 lw gp, 0x18(sp)           |     gp = *(var_18h);
    0x00001518 sw v0, 0x14(s0)           |     *((s0 + 5)) = v0;
    0x0000151c lw v0, 0x24(sp)           |     v0 = *(var_24h);
    0x00001520 lw s0, 0x4180(s2)         |     s0 = *((s2 + 4192));
                                         |     if (v0 != 0) {
    0x00001524 bnez v0, 0x1638           |         goto label_27;
                                         |     }
                                         | label_11:
    0x00001528 addiu v0, zero, 4         |     v0 = 4;
                                         | label_0:
    0x0000152c lw v0, 0x4180(s2)         |     v0 = *((s2 + 4192));
                                         |     if (s4 == v0) {
    0x00001530 bne s4, v0, 0x1568        |         
    0x00001534 lw v1, -0x7ed0(gp)        |         v1 = *((gp - 8116));
    0x00001538 lw a1, 0x28(sp)           |         a1 = *(var_28h);
    0x0000153c lw a3, 0x28(v0)           |         a3 = *((v0 + 10));
    0x00001540 lw a0, (v1)               |         a0 = *(v1);
    0x00001544 lw v1, 0x14(v0)           |         v1 = *((v0 + 5));
                                         |         if (a1 != 0) {
    0x00001548 bnez a1, 0x1b50           |             goto label_28;
                                         |         }
    0x0000154c lw a2, -0x7fd8(gp)        |         a2 = *((gp - 8182));
    0x00001550 lw t9, -0x7f7c(gp)        |         t9 = sym.imp.__fprintf_chk;
    0x00001554 sw v1, 0x10(sp)           |         *(var_10h_2) = v1;
    0x00001558 addiu a2, a2, 0x37e4      |         a2 += str._s:_s_n;
    0x0000155c addiu a1, zero, 1         |         a1 = 1;
    0x00001560 jalr t9                   |         t9 ();
    0x00001564 lw gp, 0x18(sp)           |         gp = *(var_18h);
                                         |     }
                                         | label_8:
    0x00001568 lw s0, 0x4180(s2)         |     s0 = *((s2 + 4192));
                                         |     do {
    0x0000156c lw a0, (s0)               |         a0 = *(s0);
    0x00001570 lw t9, -0x7f1c(gp)        |         t9 = sym.imp.apr_dbm_close;
                                         |         if (a0 != 0) {
    0x00001574 beqz a0, 0x1584           |             
    0x00001578 jalr t9                   |             t9 ();
    0x0000157c nop                       |             
    0x00001580 lw gp, 0x18(sp)           |             gp = *(var_18h);
                                         |         }
    0x00001584 lw v0, 0x34(sp)           |         v0 = *(var_34h);
    0x00001588 sw zero, (s0)             |         *(s0) = 0;
    0x0000158c lw a0, 0x164(sp)          |         a0 = *(var_164h);
    0x00001590 lw v1, (v0)               |         v1 = *(v0);
    0x00001594 move v0, zero             |         v0 = 0;
                                         |         if (a0 != v1) {
    0x00001598 bne a0, v1, 0x1e14        |             goto label_29;
                                         |         }
    0x0000159c lw ra, 0x18c(sp)          |         ra = *(var_18ch);
    0x000015a0 lw fp, 0x188(sp)          |         fp = *(var_188h);
    0x000015a4 lw s7, 0x184(sp)          |         s7 = *(var_184h);
    0x000015a8 lw s6, 0x180(sp)          |         s6 = *(var_180h);
    0x000015ac lw s5, 0x17c(sp)          |         s5 = *(var_17ch);
    0x000015b0 lw s4, 0x178(sp)          |         s4 = *(var_178h);
    0x000015b4 lw s3, 0x174(sp)          |         s3 = *(var_174h);
    0x000015b8 lw s2, 0x170(sp)          |         s2 = *(var_170h);
    0x000015bc lw s1, 0x16c(sp)          |         s1 = *(var_16ch);
    0x000015c0 lw s0, 0x168(sp)          |         s0 = *(var_168h);
    0x000015c4 addiu sp, sp, 0x190       |         
    0x000015c8 jr ra                     |         return v0;
                                         | label_25:
    0x000015cc lw s1, 0x28(s0)           |         s1 = *((s0 + 10));
    0x000015d0 lw t9, -0x7f2c(gp)        |         t9 = sym.imp.strlen;
    0x000015d4 move a0, s1               |         a0 = s1;
    0x000015d8 sw s1, 0x5c(sp)           |         *(var_5ch) = s1;
    0x000015dc jalr t9                   |         t9 ();
    0x000015e0 lw gp, 0x18(sp)           |         gp = *(var_18h);
    0x000015e4 lw a0, (s0)               |         a0 = *(s0);
    0x000015e8 move a1, s1               |         a1 = s1;
    0x000015ec lw t9, -0x7efc(gp)        |         t9 = sym.imp.apr_dbm_exists;
    0x000015f0 move a2, v0               |         a2 = v0;
    0x000015f4 sw v0, 0x60(sp)           |         *(var_60h) = v0;
    0x000015f8 jalr t9                   |         t9 ();
    0x000015fc lw gp, 0x18(sp)           |         gp = *(var_18h);
                                         |         if (v0 == 0) {
    0x00001600 beqz v0, 0x1d1c           |             goto label_30;
                                         |         }
    0x00001604 lw t9, -0x7f28(gp)        |         t9 = sym.imp.apr_dbm_delete;
    0x00001608 lw a1, 0x5c(sp)           |         a1 = *(var_5ch);
    0x0000160c lw a2, 0x60(sp)           |         a2 = *(var_60h);
    0x00001610 lw a0, (s0)               |         a0 = *(s0);
    0x00001614 jalr t9                   |         t9 ();
    0x00001618 lw gp, 0x18(sp)           |         gp = *(var_18h);
                                         |         if (v0 != 0) {
    0x0000161c bnez v0, 0x1d1c           |             goto label_30;
                                         |         }
    0x00001620 lw v0, 0x4180(s2)         |         v0 = *((s2 + 4192));
    0x00001624 addiu s1, zero, 1         |         s1 = 1;
    0x00001628 sw zero, 0x28(v0)         |         *((v0 + 10)) = 0;
                                         | label_6:
    0x0000162c lw v0, 0x24(sp)           |         v0 = *(var_24h);
    0x00001630 lw s0, 0x4180(s2)         |         s0 = *((s2 + 4192));
    0x00001634 beqz v0, 0x156c           |         
                                         |     } while (v0 == 0);
                                         | label_27:
    0x00001638 lw v0, 0x38(s0)           |     v0 = *((s0 + 14));
    0x0000163c addiu v0, zero, 4         |     v0 = 4;
                                         |     if (v0 != 0) {
    0x00001640 bnez v0, 0x152c           |         goto label_0;
                                         |     }
    0x00001644 lw s3, 0x28(s0)           |     s3 = *((s0 + 10));
    0x00001648 lw t9, -0x7f2c(gp)        |     t9 = sym.imp.strlen;
                                         |     if (s3 != 0) {
    0x0000164c beqz s3, 0x1708           |         
    0x00001650 move a0, s3               |         a0 = s3;
    0x00001654 sw s3, 0x54(sp)           |         *(var_54h) = s3;
    0x00001658 jalr t9                   |         t9 ();
    0x0000165c lw gp, 0x18(sp)           |         gp = *(var_18h);
    0x00001660 lw a0, (s0)               |         a0 = *(s0);
    0x00001664 move a1, s3               |         a1 = s3;
    0x00001668 lw t9, -0x7efc(gp)        |         t9 = sym.imp.apr_dbm_exists;
    0x0000166c move a2, v0               |         a2 = v0;
    0x00001670 sw v0, 0x58(sp)           |         *(var_58h) = v0;
    0x00001674 jalr t9                   |         t9 ();
    0x00001678 lw gp, 0x18(sp)           |         gp = *(var_18h);
    0x0000167c lw s5, 0x14(s0)           |         s5 = *((s0 + 5));
    0x00001680 addiu v1, zero, 1         |         v1 = 1;
    0x00001684 lw t9, -0x7f2c(gp)        |         t9 = sym.imp.strlen;
    0x00001688 move a0, s5               |         a0 = s5;
                                         |         if (v0 == 0) {
    0x0000168c movn s1, v1, v0           |             s1 = v1;
                                         |         }
    0x00001690 jalr t9                   |         t9 ();
    0x00001694 lw a3, 0x2c(s0)           |         a3 = *((s0 + 11));
    0x00001698 lw gp, 0x18(sp)           |         gp = *(var_18h);
    0x0000169c move s3, v0               |         s3 = v0;
                                         |         if (a3 == 0) {
    0x000016a0 beqz a3, 0x1d68           |             goto label_31;
                                         |         }
    0x000016a4 lw a2, -0x7fd8(gp)        |         a2 = *((gp - 8182));
    0x000016a8 lw t9, -0x7f6c(gp)        |         t9 = sym.imp.apr_pstrcat
    0x000016ac lw a0, 4(s0)              |         a0 = *((s0 + 1));
    0x000016b0 addiu a2, a2, 0x2fdc      |         a2 += 0x2fdc;
    0x000016b4 move a1, s5               |         a1 = s5;
    0x000016b8 sw zero, 0x10(sp)         |         *(var_10h_2) = 0;
    0x000016bc jalr t9                   |         t9 ();
    0x000016c0 lw gp, 0x18(sp)           |         gp = *(var_18h);
    0x000016c4 lw a0, 0x2c(s0)           |         a0 = *((s0 + 11));
    0x000016c8 sw v0, 0x5c(sp)           |         *(var_5ch) = v0;
    0x000016cc lw t9, -0x7f2c(gp)        |         t9 = sym.imp.strlen;
    0x000016d0 addiu s3, s3, 1           |         s3++;
    0x000016d4 jalr t9                   |         t9 ();
    0x000016d8 lw gp, 0x18(sp)           |         gp = *(var_18h);
    0x000016dc addu s3, s3, v0           |         s3 += v0;
                                         | label_13:
    0x000016e0 lw a0, (s0)               |         a0 = *(s0);
    0x000016e4 lw t9, -0x7ef4(gp)        |         t9 = sym.imp.apr_dbm_store;
    0x000016e8 lw a3, 0x5c(sp)           |         a3 = *(var_5ch);
    0x000016ec lw a1, 0x54(sp)           |         a1 = *(var_54h);
    0x000016f0 lw a2, 0x58(sp)           |         a2 = *(var_58h);
    0x000016f4 sw s3, 0x60(sp)           |         *(var_60h) = s3;
    0x000016f8 sw s3, 0x10(sp)           |         *(var_10h_2) = s3;
    0x000016fc jalr t9                   |         t9 ();
    0x00001700 lw gp, 0x18(sp)           |         gp = *(var_18h);
                                         |         if (v0 != 0) {
    0x00001704 bnez v0, 0x1df0           |             goto label_32;
                                         |         }
                                         |     }
    0x00001708 lw v0, 0x4180(s2)         |     v0 = *((s2 + 4192));
    0x0000170c lw a0, -0x7f58(gp)        |     a0 = *((gp - 8150));
    0x00001710 lw v1, 0x34(v0)           |     v1 = *((v0 + 13));
    0x00001714 lw a0, (a0)               |     a0 = *(a0);
    0x00001718 lw a3, 0x24(v0)           |     a3 = *((v0 + 9));
                                         |     if (v1 != 0) {
    0x0000171c bnez v1, 0x1cf4           |         goto label_33;
                                         |     }
                                         |     if (s1 == 0) {
    0x00001720 beql s1, zero, 0x1d40     |         goto label_34;
                                         |     }
    0x00001724 lw v0, -0x7fd8(gp)        |     v0 = *((gp - 8182));
    0x00001728 lw v0, -0x7fd8(gp)        |     v0 = *((gp - 8182));
    0x0000172c addiu v0, v0, 0x2fa4      |     v0 += str.modified;
    0x00001730 b 0x1cfc                  |     goto label_35;
                                         | label_22:
    0x00001734 sll s1, s1, 2             |     s1 <<= 2;
    0x00001738 lw t9, -0x7f20(gp)        |     t9 = sym.imp.apr_pstrdup;
    0x0000173c lwx a1, s1(a1)            |     __asm ("lwx a1, s1(a1)");
    0x00001740 lw a0, 0x48(sp)           |     a0 = *(var_48h);
    0x00001744 jalr t9                   |     t9 ();
    0x00001748 lw gp, 0x18(sp)           |     gp = *(var_18h);
    0x0000174c sw v0, 0x2c(s0)           |     *((s0 + 11)) = v0;
    0x00001750 lw s0, 0x4180(s2)         |     s0 = *((s2 + 4192));
    0x00001754 b 0x14c4                  |     goto label_1;
                                         | label_21:
    0x00001758 addiu a0, s0, 4           |     a0 = s0 + 4;
    0x0000175c bal 0x22a4                |     sym_get_password ();
    0x00001760 move s0, v0               |     s0 = v0;
    0x00001764 lw gp, 0x18(sp)           |     gp = *(var_18h);
                                         |     if (v0 != 0) {
    0x00001768 bnez v0, 0x1dbc           |         goto label_36;
                                         |     }
    0x0000176c lw s0, 0x4180(s2)         |     s0 = *((s2 + 4192));
    0x00001770 b 0x14b8                  |     goto label_2;
                                         | label_19:
    0x00001774 sll v0, s1, 2             |     v0 = s1 << 2;
    0x00001778 lw t9, -0x7f20(gp)        |     t9 = sym.imp.apr_pstrdup;
    0x0000177c lwx a1, v0(a1)            |     __asm ("lwx a1, v0(a1)");
    0x00001780 lw a0, 0x48(sp)           |     a0 = *(var_48h);
    0x00001784 jalr t9                   |     t9 ();
    0x00001788 lw gp, 0x18(sp)           |     gp = *(var_18h);
    0x0000178c sw v0, 0x28(s0)           |     *((s0 + 10)) = v0;
    0x00001790 lw s0, 0x4180(s2)         |     s0 = *((s2 + 4192));
    0x00001794 lw s3, 0x28(s0)           |     s3 = *((s0 + 10));
    0x00001798 lw t9, -0x7f2c(gp)        |     t9 = sym.imp.strlen;
                                         |     if (s3 == 0) {
    0x0000179c beqz s3, 0x1c0c           |         goto label_37;
                                         |     }
    0x000017a0 move a0, s3               |     a0 = s3;
    0x000017a4 jalr t9                   |     t9 ();
    0x000017a8 sltiu v0, v0, 0x41        |     v0 = (v0 < 0x41) ? 1 : 0;
    0x000017ac lw gp, 0x18(sp)           |     gp = *(var_18h);
                                         |     if (v0 == 0) {
    0x000017b0 beqz v0, 0x1c0c           |         goto label_37;
                                         |     }
    0x000017b4 lb v0, (s3)               |     v0 = *(s3);
    0x000017b8 lw t9, -0x7f24(gp)        |     t9 = sym.imp.strchr;
                                         |     if (v0 == 0) {
    0x000017bc beqz v0, 0x1c0c           |         goto label_37;
                                         |     }
    0x000017c0 addiu a1, zero, 0x3a      |     a1 = 0x3a;
    0x000017c4 move a0, s3               |     a0 = s3;
    0x000017c8 jalr t9                   |     t9 ();
    0x000017cc lw gp, 0x18(sp)           |     gp = *(var_18h);
                                         |     if (v0 != 0) {
    0x000017d0 bnez v0, 0x1d48           |         goto label_38;
                                         |     }
    0x000017d4 addiu s1, s1, 1           |     s1++;
    0x000017d8 b 0x14a0                  |     goto label_3;
                                         | label_18:
    0x000017dc sll v0, s1, 2             |     v0 = s1 << 2;
    0x000017e0 lw t9, -0x7f20(gp)        |     t9 = sym.imp.apr_pstrdup;
    0x000017e4 lw a0, 4(s0)              |     a0 = *((s0 + 1));
    0x000017e8 lwx a1, v0(a1)            |     __asm ("lwx a1, v0(a1)");
    0x000017ec addiu s1, s1, 1           |     s1++;
    0x000017f0 jalr t9                   |     t9 ();
    0x000017f4 lw a0, 0x4180(s2)         |     a0 = *((s2 + 4192));
    0x000017f8 lw gp, 0x18(sp)           |     gp = *(var_18h);
    0x000017fc sw v0, 0x24(s0)           |     *((s0 + 9)) = v0;
    0x00001800 lw v0, 0x34(a0)           |     v0 = *((a0 + 13));
    0x00001804 lw v1, 0x24(sp)           |     v1 = *(var_24h);
                                         |     if (v0 != 0) {
    0x00001808 bnez v0, 0x1c70           |         goto label_39;
                                         |     }
    0x0000180c lw v0, 4(a0)              |     v0 = *((a0 + 1));
    0x00001810 lw a3, 0x38(a0)           |     a3 = *((a0 + 14));
    0x00001814 lw a1, 0x30(a0)           |     a1 = *((a0 + 12));
    0x00001818 lw a2, 0x24(a0)           |     a2 = *((a0 + 9));
    0x0000181c sw v0, 0x14(sp)           |     *(var_14h_2) = v0;
    0x00001820 addiu v0, zero, 0xfff     |     v0 = 0xfff;
    0x00001824 sw v0, 0x10(sp)           |     *(var_10h_2) = v0;
    0x00001828 addiu v0, zero, 2         |     v0 = 2;
    0x0000182c lw t9, -0x7f5c(gp)        |     t9 = sym.imp.apr_dbm_open_ex;
                                         |     if (a3 != 0) {
    0x00001830 movz v1, v0, a3           |         v1 = v0;
                                         |     }
    0x00001834 move a3, v1               |     a3 = v1;
    0x00001838 jalr t9                   |     t9 ();
    0x0000183c lw gp, 0x18(sp)           |     gp = *(var_18h);
    0x00001840 move s3, v0               |     s3 = v0;
                                         | label_10:
    0x00001844 lw s0, 0x4180(s2)         |     s0 = *((s2 + 4192));
                                         |     if (s3 == 0) {
    0x00001848 beqz s3, 0x1494           |         goto label_4;
                                         |     }
    0x0000184c lw s1, -0x7ed0(gp)        |     s1 = *((gp - 8116));
    0x00001850 lw a2, -0x7fd8(gp)        |     a2 = *((gp - 8182));
    0x00001854 lw a3, 0x24(s0)           |     a3 = *((s0 + 9));
    0x00001858 lw t9, -0x7f7c(gp)        |     t9 = sym.imp.__fprintf_chk;
    0x0000185c lw a0, (s1)               |     a0 = *(s1);
    0x00001860 addiu a2, a2, 0x360c      |     a2 += str.Error_opening_database__s_n;
    0x00001864 addiu a1, zero, 1         |     a1 = 1;
    0x00001868 jalr t9                   |     t9 ();
    0x0000186c lw gp, 0x18(sp)           |     gp = *(var_18h);
    0x00001870 addiu s0, sp, 0x64        |     s0 = sp + 0x64;
    0x00001874 addiu a2, zero, 0x100     |     a2 = aav.0x00000100;
    0x00001878 lw t9, -0x7f8c(gp)        |     t9 = sym.imp.apr_strerror;
    0x0000187c move a1, s0               |     a1 = s0;
    0x00001880 move a0, s3               |     a0 = s3;
    0x00001884 jalr t9                   |     t9 ();
    0x00001888 lw gp, 0x18(sp)           |     gp = *(var_18h);
    0x0000188c lw a0, (s1)               |     a0 = *(s1);
    0x00001890 move a3, s0               |     a3 = s0;
    0x00001894 lw a2, -0x7fd8(gp)        |     a2 = *((gp - 8182));
    0x00001898 lw t9, -0x7f7c(gp)        |     t9 = sym.imp.__fprintf_chk;
    0x0000189c addiu a2, a2, 0x3628      |     a2 += 0x3628;
    0x000018a0 addiu a1, zero, 1         |     a1 = 1;
    0x000018a4 jalr t9                   |     t9 ();
    0x000018a8 lw gp, 0x18(sp)           |     gp = *(var_18h);
    0x000018ac lw t9, -0x7f14(gp)        |     t9 = sym.imp.exit;
    0x000018b0 addiu a0, zero, 1         |     a0 = 1;
    0x000018b4 jalr t9                   |     t9 ();
                                         | label_24:
    0x000018b8 lw t9, -0x7f54(gp)        |     t9 = sym.imp.apr_dbm_firstkey;
    0x000018bc addiu v0, sp, 0x54        |     v0 = sp + 0x54;
    0x000018c0 lw a0, (s0)               |     a0 = *(s0);
    0x000018c4 sw v0, 0x2c(sp)           |     *(var_2ch) = v0;
    0x000018c8 move a1, v0               |     a1 = v0;
    0x000018cc jalr t9                   |     t9 ();
    0x000018d0 lw gp, 0x18(sp)           |     gp = *(var_18h);
                                         |     if (v0 != 0) {
    0x000018d4 bnez v0, 0x1be0           |         goto label_40;
                                         |     }
    0x000018d8 lw s1, -0x7ed0(gp)        |     s1 = *((gp - 8116));
    0x000018dc lw a2, -0x7fd8(gp)        |     a2 = *((gp - 8182));
    0x000018e0 lw t9, -0x7f7c(gp)        |     t9 = sym.imp.__fprintf_chk;
    0x000018e4 lw a3, 0x24(s0)           |     a3 = *((s0 + 9));
    0x000018e8 lw a0, (s1)               |     a0 = *(s1);
    0x000018ec addiu a2, a2, 0x3724      |     a2 += str.Dumping_records_from_database_____s_n;
    0x000018f0 addiu a1, zero, 1         |     a1 = 1;
    0x000018f4 jalr t9                   |     t9 ();
    0x000018f8 lw gp, 0x18(sp)           |     gp = *(var_18h);
    0x000018fc lw a0, (s1)               |     a0 = *(s1);
    0x00001900 addiu a1, zero, 1         |     a1 = 1;
    0x00001904 lw a3, -0x7fd8(gp)        |     a3 = *((gp - 8182));
    0x00001908 lw a2, -0x7fd8(gp)        |     a2 = *((gp - 8182));
    0x0000190c lw t9, -0x7f7c(gp)        |     t9 = sym.imp.__fprintf_chk;
    0x00001910 addiu a3, a3, 0x374c      |     a3 += str.Username;
    0x00001914 addiu a2, a2, 0x3758      |     a2 += str.______32s_Comment_n;
    0x00001918 jalr t9                   |     t9 ();
    0x0000191c lw v0, 0x54(sp)           |     v0 = *(var_54h);
    0x00001920 lw gp, 0x18(sp)           |     gp = *(var_18h);
                                         |     if (v0 == 0) {
    0x00001924 beqz v0, 0x1ca0           |         goto label_41;
                                         |     }
    0x00001928 lw v0, -0x7fd8(gp)        |     v0 = *((gp - 8182));
    0x0000192c lw s6, -0x7fd8(gp)        |     s6 = *((gp - 8182));
    0x00001930 sw v0, 0x38(sp)           |     *(var_38h) = v0;
    0x00001934 lw v0, -0x7fd8(gp)        |     v0 = *((gp - 8182));
    0x00001938 move s3, zero             |     s3 = 0;
    0x0000193c addiu v0, v0, 0x3798      |     v0 += str.__.s;
    0x00001940 addiu s5, sp, 0x5c        |     s5 = sp + 0x5c;
    0x00001944 addiu s6, s6, 0x378c      |     s6 += str.______32.s;
    0x00001948 sw v0, 0x30(sp)           |     *(var_30h) = v0;
    0x0000194c b 0x195c                  |     
                                         |     while (v0 == 0) {
                                         | label_5:
    0x00001950 lw v0, 0x54(sp)           |         v0 = *(var_54h);
    0x00001954 addiu s3, s3, 1           |         s3++;
                                         |         if (v0 == 0) {
    0x00001958 beqz v0, 0x1ca4           |             goto label_42;
                                         |         }
    0x0000195c lw t9, -0x7f38(gp)        |         t9 = sym.imp.apr_dbm_fetch;
    0x00001960 lw a1, 0x54(sp)           |         a1 = *(var_54h);
    0x00001964 lw a2, 0x58(sp)           |         a2 = *(var_58h);
    0x00001968 lw a0, (s0)               |         a0 = *(s0);
    0x0000196c move a3, s5               |         a3 = s5;
    0x00001970 jalr t9                   |         t9 ();
    0x00001974 lw gp, 0x18(sp)           |         gp = *(var_18h);
                                         |         if (v0 != 0) {
    0x00001978 bnez v0, 0x1ccc           |             goto label_43;
                                         |         }
    0x0000197c lw v0, 0x54(sp)           |         v0 = *(var_54h);
    0x00001980 lw t9, -0x7f7c(gp)        |         t9 = sym.imp.__fprintf_chk;
    0x00001984 lw a0, (s1)               |         a0 = *(s1);
    0x00001988 lw a3, 0x58(sp)           |         a3 = *(var_58h);
    0x0000198c move a2, s6               |         a2 = s6;
    0x00001990 addiu a1, zero, 1         |         a1 = 1;
    0x00001994 sw v0, 0x10(sp)           |         *(var_10h_2) = v0;
    0x00001998 jalr t9                   |         t9 ();
    0x0000199c lw gp, 0x18(sp)           |         gp = *(var_18h);
    0x000019a0 lw fp, 0x5c(sp)           |         fp = *(var_5ch);
    0x000019a4 lw s7, 0x60(sp)           |         s7 = *(var_60h);
    0x000019a8 lw t9, -0x7f50(gp)        |         t9 = sym.imp.memchr;
    0x000019ac move a2, s7               |         a2 = s7;
    0x000019b0 addiu a1, zero, 0x3a      |         a1 = 0x3a;
    0x000019b4 move a0, fp               |         a0 = fp;
    0x000019b8 jalr t9                   |         t9 ();
    0x000019bc lw gp, 0x18(sp)           |         gp = *(var_18h);
                                         |         if (v0 != 0) {
    0x000019c0 beqz v0, 0x19ec           |             
    0x000019c4 addiu v0, v0, 1           |             v0++;
    0x000019c8 lw t9, -0x7f7c(gp)        |             t9 = sym.imp.__fprintf_chk;
    0x000019cc lw a0, (s1)               |             a0 = *(s1);
    0x000019d0 addu a3, fp, s7           |             a3 = fp + s7;
    0x000019d4 lw a2, 0x30(sp)           |             a2 = *(var_30h);
    0x000019d8 sw v0, 0x10(sp)           |             *(var_10h_2) = v0;
    0x000019dc subu a3, a3, v0           |             __asm ("subu a3, a3, v0");
    0x000019e0 addiu a1, zero, 1         |             a1 = 1;
    0x000019e4 jalr t9                   |             t9 ();
    0x000019e8 lw gp, 0x18(sp)           |             gp = *(var_18h);
                                         |         }
    0x000019ec lw t9, -0x7f68(gp)        |         t9 = sym.imp.fputc;
    0x000019f0 lw a1, (s1)               |         a1 = *(s1);
    0x000019f4 addiu a0, zero, 0xa       |         a0 = 0xa;
    0x000019f8 jalr t9                   |         t9 ();
    0x000019fc lw gp, 0x18(sp)           |         gp = *(var_18h);
    0x00001a00 lw a0, (s0)               |         a0 = *(s0);
    0x00001a04 lw t9, -0x7f9c(gp)        |         t9 = sym.imp.apr_dbm_nextkey;
    0x00001a08 lw a1, 0x2c(sp)           |         a1 = *(var_2ch);
    0x00001a0c jalr t9                   |         t9 ();
    0x00001a10 lw gp, 0x18(sp)           |         gp = *(var_18h);
    0x00001a14 beqz v0, 0x1950           |         
                                         |     }
    0x00001a18 lw v0, 0x38(sp)           |     v0 = *(var_38h);
    0x00001a1c lw t9, -0x7f00(gp)        |     t9 = sym.imp.fwrite;
    0x00001a20 lw a3, (s1)               |     a3 = *(s1);
    0x00001a24 addiu a2, zero, 0x17      |     a2 = 0x17;
    0x00001a28 addiu a1, zero, 1         |     a1 = 1;
    0x00001a2c addiu a0, v0, 0x37a0      |     a0 = v0 + str.Failed_getting_NextKey_n;
    0x00001a30 jalr t9                   |     t9 ();
    0x00001a34 lw gp, 0x18(sp)           |     gp = *(var_18h);
    0x00001a38 b 0x1950                  |     goto label_5;
                                         | label_23:
    0x00001a3c lw s1, 0x28(s0)           |     s1 = *((s0 + 10));
    0x00001a40 lw t9, -0x7f2c(gp)        |     t9 = sym.imp.strlen;
    0x00001a44 move a0, s1               |     a0 = s1;
    0x00001a48 sw s1, 0x54(sp)           |     *(var_54h) = s1;
    0x00001a4c jalr t9                   |     t9 ();
    0x00001a50 lw gp, 0x18(sp)           |     gp = *(var_18h);
    0x00001a54 lw a0, (s0)               |     a0 = *(s0);
    0x00001a58 move a1, s1               |     a1 = s1;
    0x00001a5c lw t9, -0x7efc(gp)        |     t9 = sym.imp.apr_dbm_exists;
    0x00001a60 move a2, v0               |     a2 = v0;
    0x00001a64 sw v0, 0x58(sp)           |     *(var_58h) = v0;
    0x00001a68 jalr t9                   |     t9 ();
    0x00001a6c lw gp, 0x18(sp)           |     gp = *(var_18h);
                                         |     if (v0 != 0) {
    0x00001a70 beqz v0, 0x1b78           |         
    0x00001a74 lw t9, -0x7f38(gp)        |         t9 = sym.imp.apr_dbm_fetch;
    0x00001a78 lw a1, 0x54(sp)           |         a1 = *(var_54h);
    0x00001a7c lw a2, 0x58(sp)           |         a2 = *(var_58h);
    0x00001a80 lw a0, (s0)               |         a0 = *(s0);
    0x00001a84 addiu a3, sp, 0x5c        |         a3 = sp + 0x5c;
    0x00001a88 jalr t9                   |         t9 ();
    0x00001a8c lw gp, 0x18(sp)           |         gp = *(var_18h);
                                         |         if (v0 != 0) {
    0x00001a90 bnez v0, 0x1b78           |             goto label_44;
                                         |         }
    0x00001a94 lw t9, -0x7f70(gp)        |         t9 = sym.imp.apr_pstrndup;
    0x00001a98 lw a2, 0x60(sp)           |         a2 = *(var_60h);
    0x00001a9c lw a1, 0x5c(sp)           |         a1 = *(var_5ch);
    0x00001aa0 lw a0, 4(s0)              |         a0 = *((s0 + 1));
    0x00001aa4 jalr t9                   |         t9 ();
    0x00001aa8 lw gp, 0x18(sp)           |         gp = *(var_18h);
    0x00001aac addiu a1, zero, 0x3a      |         a1 = 0x3a;
    0x00001ab0 move a0, v0               |         a0 = v0;
    0x00001ab4 lw t9, -0x7f24(gp)        |         t9 = sym.imp.strchr;
    0x00001ab8 move s1, v0               |         s1 = v0;
    0x00001abc jalr t9                   |         t9 ();
    0x00001ac0 lw gp, 0x18(sp)           |         gp = *(var_18h);
                                         |         if (v0 == 0) {
    0x00001ac4 beqz v0, 0x1d70           |             goto label_45;
                                         |         }
    0x00001ac8 lw t9, -0x7f70(gp)        |         t9 = sym.imp.apr_pstrndup;
    0x00001acc lw a0, 4(s0)              |         a0 = *((s0 + 1));
    0x00001ad0 move a1, s1               |         a1 = s1;
    0x00001ad4 subu a2, v0, s1           |         __asm ("subu a2, v0, s1");
    0x00001ad8 jalr t9                   |         t9 ();
    0x00001adc lw gp, 0x18(sp)           |         gp = *(var_18h);
    0x00001ae0 move a1, v0               |         a1 = v0;
                                         | label_14:
    0x00001ae4 lw t9, -0x7ef0(gp)        |         t9 = sym.imp.apr_password_validate;
    0x00001ae8 lw a0, 0x14(s0)           |         a0 = *((s0 + 5));
    0x00001aec jalr t9                   |         t9 ();
    0x00001af0 lw gp, 0x18(sp)           |         gp = *(var_18h);
                                         |         if (v0 != 0) {
    0x00001af4 bnez v0, 0x1c34           |             goto label_46;
                                         |         }
    0x00001af8 lw v0, 0x4180(s2)         |         v0 = *((s2 + 4192));
    0x00001afc lw a2, -0x7fd8(gp)        |         a2 = *((gp - 8182));
    0x00001b00 lw t9, -0x7f7c(gp)        |         t9 = sym.imp.__fprintf_chk;
    0x00001b04 lw a3, 0x28(v0)           |         a3 = *((v0 + 10));
    0x00001b08 lw v0, -0x7ed0(gp)        |         v0 = *((gp - 8116));
    0x00001b0c addiu a2, a2, 0x36c4      |         a2 += str.Password_validated_for_user__s_n;
    0x00001b10 addiu a1, zero, 1         |         a1 = 1;
    0x00001b14 lw a0, (v0)               |         a0 = *(v0);
    0x00001b18 move s1, zero             |         s1 = 0;
    0x00001b1c jalr t9                   |         t9 ();
    0x00001b20 lw gp, 0x18(sp)           |         gp = *(var_18h);
    0x00001b24 b 0x162c                  |         goto label_6;
                                         | label_20:
    0x00001b28 sll v0, s1, 2             |         v0 = s1 << 2;
    0x00001b2c lw t9, -0x7f20(gp)        |         t9 = sym.imp.apr_pstrdup;
    0x00001b30 lwx a1, v0(a1)            |         __asm ("lwx a1, v0(a1)");
    0x00001b34 lw a0, 0x48(sp)           |         a0 = *(var_48h);
    0x00001b38 addiu s1, s1, 1           |         s1++;
    0x00001b3c jalr t9                   |         t9 ();
    0x00001b40 lw gp, 0x18(sp)           |         gp = *(var_18h);
    0x00001b44 sw v0, 0x14(s0)           |         *((s0 + 5)) = v0;
    0x00001b48 lw s0, 0x4180(s2)         |         s0 = *((s2 + 4192));
    0x00001b4c b 0x14b0                  |         goto label_7;
                                         | label_28:
    0x00001b50 lw v0, 0x2c(v0)           |         v0 = *((v0 + 11));
    0x00001b54 lw a2, -0x7fd8(gp)        |         a2 = *((gp - 8182));
    0x00001b58 lw t9, -0x7f7c(gp)        |         t9 = sym.imp.__fprintf_chk;
    0x00001b5c sw v0, 0x14(sp)           |         *(var_14h_2) = v0;
    0x00001b60 sw v1, 0x10(sp)           |         *(var_10h_2) = v1;
    0x00001b64 addiu a2, a2, 0x37ec      |         a2 += str._s:_s:_s_n;
    0x00001b68 addiu a1, zero, 1         |         a1 = 1;
    0x00001b6c jalr t9                   |         t9 ();
    0x00001b70 lw gp, 0x18(sp)           |         gp = *(var_18h);
    0x00001b74 b 0x1568                  |         goto label_8;
                                         |     }
                                         | label_44:
    0x00001b78 lw s1, -0x7ed0(gp)        |     s1 = *((gp - 8116));
                                         | label_9:
    0x00001b7c lw v0, 0x4180(s2)         |     v0 = *((s2 + 4192));
    0x00001b80 lw a2, -0x7fd8(gp)        |     a2 = *((gp - 8182));
    0x00001b84 lw a0, (s1)               |     a0 = *(s1);
    0x00001b88 lw t9, -0x7f7c(gp)        |     t9 = sym.imp.__fprintf_chk;
    0x00001b8c lw a3, 0x28(v0)           |     a3 = *((v0 + 10));
    0x00001b90 addiu a2, a2, 0x3670      |     a2 += str.The_user__s_could_not_be_found_in_database_n;
    0x00001b94 addiu a1, zero, 1         |     a1 = 1;
                                         | label_12:
    0x00001b98 jalr t9                   |     t9 ();
    0x00001b9c nop                       |     
    0x00001ba0 lw gp, 0x18(sp)           |     gp = *(var_18h);
                                         |     do {
    0x00001ba4 lw t9, -0x7f14(gp)        |         t9 = sym.imp.exit;
    0x00001ba8 addiu a0, zero, 6         |         a0 = 6;
    0x00001bac jalr t9                   |         t9 ();
                                         | label_26:
    0x00001bb0 lw v0, -0x7ed0(gp)        |         v0 = *((gp - 8116));
    0x00001bb4 lw a2, -0x7fd8(gp)        |         a2 = *((gp - 8182));
    0x00001bb8 lw t9, -0x7f7c(gp)        |         t9 = sym.imp.__fprintf_chk;
    0x00001bbc lw a0, (v0)               |         a0 = *(v0);
    0x00001bc0 lw a3, 8(s0)              |         a3 = *((s0 + 2));
    0x00001bc4 addiu a2, a2, 0x2fc0      |         a2 += str.Error:__s_n;
    0x00001bc8 addiu a1, zero, 1         |         a1 = 1;
    0x00001bcc jalr t9                   |         t9 ();
    0x00001bd0 lw gp, 0x18(sp)           |         gp = *(var_18h);
    0x00001bd4 lw t9, -0x7f14(gp)        |         t9 = sym.imp.exit;
    0x00001bd8 move a0, s1               |         a0 = s1;
    0x00001bdc jalr t9                   |         t9 ();
                                         | label_40:
    0x00001be0 lw v0, -0x7ed0(gp)        |         v0 = *((gp - 8116));
    0x00001be4 lw a2, -0x7fd8(gp)        |         a2 = *((gp - 8182));
    0x00001be8 lw t9, -0x7f7c(gp)        |         t9 = sym.imp.__fprintf_chk;
    0x00001bec lw a3, 0x24(s0)           |         a3 = *((s0 + 9));
    0x00001bf0 lw a0, (v0)               |         a0 = *(v0);
    0x00001bf4 addiu a2, a2, 0x370c      |         a2 += str.Empty_database_____s_n;
    0x00001bf8 addiu a1, zero, 1         |         a1 = 1;
    0x00001bfc jalr t9                   |         t9 ();
    0x00001c00 move s1, zero             |         s1 = 0;
    0x00001c04 lw gp, 0x18(sp)           |         gp = *(var_18h);
    0x00001c08 b 0x162c                  |         goto label_6;
                                         | label_37:
    0x00001c0c lw v0, -0x7ed0(gp)        |         v0 = *((gp - 8116));
    0x00001c10 lw a0, -0x7fd8(gp)        |         a0 = *((gp - 8182));
    0x00001c14 lw t9, -0x7f00(gp)        |         t9 = sym.imp.fwrite;
    0x00001c18 lw a3, (v0)               |         a3 = *(v0);
    0x00001c1c addiu a2, zero, 0x18      |         a2 = 0x18;
    0x00001c20 addiu a1, zero, 1         |         a1 = 1;
    0x00001c24 addiu a0, a0, 0x362c      |         a0 += str.Invalid_username_length_n;
    0x00001c28 jalr t9                   |         t9 ();
    0x00001c2c lw gp, 0x18(sp)           |         gp = *(var_18h);
    0x00001c30 b 0x1ba4                  |         
                                         |     } while (1);
                                         | label_46:
    0x00001c34 lw s1, -0x7ed0(gp)        |     s1 = *((gp - 8116));
    0x00001c38 lw a1, 0x4180(s2)         |     a1 = *((s2 + 4192));
    0x00001c3c addiu v1, zero, 2         |     v1 = 2;
    0x00001c40 lw a0, (s1)               |     a0 = *(s1);
    0x00001c44 lw a3, 0x28(a1)           |     a3 = *((a1 + 10));
                                         |     if (v0 == v1) {
    0x00001c48 beq v0, v1, 0x1b7c        |         goto label_9;
                                         |     }
    0x00001c4c lw a2, -0x7fd8(gp)        |     a2 = *((gp - 8182));
    0x00001c50 lw t9, -0x7f7c(gp)        |     t9 = sym.imp.__fprintf_chk;
    0x00001c54 addiu a2, a2, 0x36a0      |     a2 += str.Password_mismatch_for_user__s_n;
    0x00001c58 addiu a1, zero, 1         |     a1 = 1;
    0x00001c5c jalr t9                   |     t9 ();
    0x00001c60 lw gp, 0x18(sp)           |     gp = *(var_18h);
    0x00001c64 lw t9, -0x7f14(gp)        |     t9 = sym.imp.exit;
    0x00001c68 addiu a0, zero, 3         |     a0 = 3;
    0x00001c6c jalr t9                   |     t9 ();
                                         | label_39:
    0x00001c70 lw v0, 4(a0)              |     v0 = *((a0 + 1));
    0x00001c74 lw a2, 0x24(a0)           |     a2 = *((a0 + 9));
    0x00001c78 lw a1, 0x30(a0)           |     a1 = *((a0 + 12));
    0x00001c7c lw t9, -0x7f5c(gp)        |     t9 = sym.imp.apr_dbm_open_ex;
    0x00001c80 sw v0, 0x14(sp)           |     *(var_14h_2) = v0;
    0x00001c84 addiu v0, zero, 0xfff     |     v0 = 0xfff;
    0x00001c88 sw v0, 0x10(sp)           |     *(var_10h_2) = v0;
    0x00001c8c addiu a3, zero, 3         |     a3 = 3;
    0x00001c90 jalr t9                   |     t9 ();
    0x00001c94 move s3, v0               |     s3 = v0;
    0x00001c98 lw gp, 0x18(sp)           |     gp = *(var_18h);
    0x00001c9c b 0x1844                  |     goto label_10;
                                         | label_41:
    0x00001ca0 move s3, zero             |     s3 = 0;
                                         | label_42:
    0x00001ca4 lw a2, -0x7fd8(gp)        |     a2 = *((gp - 8182));
    0x00001ca8 lw t9, -0x7f7c(gp)        |     t9 = sym.imp.__fprintf_chk;
    0x00001cac lw a0, (s1)               |     a0 = *(s1);
    0x00001cb0 move a3, s3               |     a3 = s3;
    0x00001cb4 addiu a2, a2, 0x37b8      |     a2 += str.Total_records_:__d_n;
    0x00001cb8 addiu a1, zero, 1         |     a1 = 1;
    0x00001cbc jalr t9                   |     t9 ();
    0x00001cc0 move s1, zero             |     s1 = 0;
    0x00001cc4 lw gp, 0x18(sp)           |     gp = *(var_18h);
    0x00001cc8 b 0x162c                  |     goto label_6;
                                         | label_43:
    0x00001ccc lw a2, -0x7fd8(gp)        |     a2 = *((gp - 8182));
    0x00001cd0 lw t9, -0x7f7c(gp)        |     t9 = sym.imp.__fprintf_chk;
    0x00001cd4 lw a0, (s1)               |     a0 = *(s1);
    0x00001cd8 lw a3, 0x24(s0)           |     a3 = *((s0 + 9));
    0x00001cdc addiu a2, a2, 0x376c      |     a2 += str.Failed_getting_data_from__s_n;
    0x00001ce0 addiu a1, zero, 1         |     a1 = 1;
    0x00001ce4 jalr t9                   |     t9 ();
    0x00001ce8 move s1, zero             |     s1 = 0;
    0x00001cec lw gp, 0x18(sp)           |     gp = *(var_18h);
    0x00001cf0 b 0x162c                  |     goto label_6;
                                         | label_33:
    0x00001cf4 lw v0, -0x7fd8(gp)        |     v0 = *((gp - 8182));
    0x00001cf8 addiu v0, v0, 0x2f9c      |     v0 += str.created;
                                         |     do {
                                         | label_35:
    0x00001cfc lw a2, -0x7fd8(gp)        |         a2 = *((gp - 8182));
    0x00001d00 lw t9, -0x7f7c(gp)        |         t9 = sym.imp.__fprintf_chk;
    0x00001d04 sw v0, 0x10(sp)           |         *(var_10h_2) = v0;
    0x00001d08 addiu a2, a2, 0x37d0      |         a2 += str.Database__s__s._n;
    0x00001d0c addiu a1, zero, 1         |         a1 = 1;
    0x00001d10 jalr t9                   |         t9 ();
    0x00001d14 lw gp, 0x18(sp)           |         gp = *(var_18h);
    0x00001d18 b 0x1528                  |         goto label_11;
                                         | label_30:
    0x00001d1c lw v0, 0x4180(s2)         |         v0 = *((s2 + 4192));
    0x00001d20 lw v1, -0x7ed0(gp)        |         v1 = *((gp - 8116));
    0x00001d24 lw a2, -0x7fd8(gp)        |         a2 = *((gp - 8182));
    0x00001d28 lw t9, -0x7f7c(gp)        |         t9 = sym.imp.__fprintf_chk;
    0x00001d2c lw a0, (v1)               |         a0 = *(v1);
    0x00001d30 lw a3, 0x28(v0)           |         a3 = *((v0 + 10));
    0x00001d34 addiu a2, a2, 0x36e8      |         a2 += str.Cannot_find_user__s_in_database_n;
    0x00001d38 addiu a1, zero, 1         |         a1 = 1;
    0x00001d3c b 0x1b98                  |         goto label_12;
                                         | label_34:
    0x00001d40 addiu v0, v0, 0x2fb0      |         v0 += str.updated;
    0x00001d44 b 0x1cfc                  |         
                                         |     } while (1);
                                         | label_38:
    0x00001d48 lw v0, -0x7ed0(gp)        |     v0 = *((gp - 8116));
    0x00001d4c lw a0, -0x7fd8(gp)        |     a0 = *((gp - 8182));
    0x00001d50 lw t9, -0x7f00(gp)        |     t9 = sym.imp.fwrite;
    0x00001d54 lw a3, (v0)               |     a3 = *(v0);
    0x00001d58 addiu a2, zero, 0x25      |     a2 = 0x25;
    0x00001d5c addiu a1, zero, 1         |     a1 = 1;
    0x00001d60 addiu a0, a0, 0x3648      |     a0 += str.Username_contains_invalid_characters_n;
    0x00001d64 b 0x1b98                  |     goto label_12;
                                         | label_31:
    0x00001d68 sw s5, 0x5c(sp)           |     *(var_5ch) = s5;
    0x00001d6c b 0x16e0                  |     goto label_13;
                                         | label_45:
    0x00001d70 lw t9, -0x7f20(gp)        |     t9 = sym.imp.apr_pstrdup;
    0x00001d74 lw a0, 4(s0)              |     a0 = *((s0 + 1));
    0x00001d78 move a1, s1               |     a1 = s1;
    0x00001d7c jalr t9                   |     t9 ();
    0x00001d80 move a1, v0               |     a1 = v0;
    0x00001d84 lw gp, 0x18(sp)           |     gp = *(var_18h);
    0x00001d88 b 0x1ae4                  |     goto label_14;
                                         | label_17:
    0x00001d8c lw v0, -0x7ed0(gp)        |     v0 = *((gp - 8116));
    0x00001d90 lw a2, -0x7fd8(gp)        |     a2 = *((gp - 8182));
    0x00001d94 lw t9, -0x7f7c(gp)        |     t9 = sym.imp.__fprintf_chk;
    0x00001d98 lw a0, (v0)               |     a0 = *(v0);
    0x00001d9c addiu a3, zero, 5         |     a3 = 5;
    0x00001da0 addiu a2, a2, 0x2fe0      |     a2 += str.htdbm____program_for_manipulating_DBM_password_databases._n_nUsage:_htdbm_____cimBdpstvx____C_cost____TDBTYPE__database_username_n_________________b_cmBdptsv____C_cost____TDBTYPE__database_username_password_n_________________n_imBdpst_____C_cost__username_n_________________nb_mBdpst_____C_cost__username_password_n_________________v_imBdps______C_cost____TDBTYPE__database_username_n_________________vb_mBdps______C_cost____TDBTYPE__database_username_password_n_________________x____________;
    0x00001da4 addiu a1, zero, 1         |     a1 = 1;
    0x00001da8 jalr t9                   |     t9 ();
    0x00001dac lw gp, 0x18(sp)           |     gp = *(var_18h);
                                         | label_15:
    0x00001db0 lw t9, -0x7f14(gp)        |     t9 = sym.imp.exit;
    0x00001db4 addiu a0, zero, 2         |     a0 = 2;
    0x00001db8 jalr t9                   |     t9 ();
                                         | label_36:
    0x00001dbc lw v1, -0x7ed0(gp)        |     v1 = *((gp - 8116));
    0x00001dc0 lw v0, 0x4180(s2)         |     v0 = *((s2 + 4192));
    0x00001dc4 lw a2, -0x7fd8(gp)        |     a2 = *((gp - 8182));
    0x00001dc8 lw t9, -0x7f7c(gp)        |     t9 = sym.imp.__fprintf_chk;
    0x00001dcc lw a0, (v1)               |     a0 = *(v1);
    0x00001dd0 lw a3, 8(v0)              |     a3 = *((v0 + 2));
    0x00001dd4 addiu a2, a2, 0x2fc0      |     a2 += str.Error:__s_n;
    0x00001dd8 addiu a1, zero, 1         |     a1 = 1;
    0x00001ddc jalr t9                   |     t9 ();
    0x00001de0 lw gp, 0x18(sp)           |     gp = *(var_18h);
    0x00001de4 lw t9, -0x7f14(gp)        |     t9 = sym.imp.exit;
    0x00001de8 move a0, s0               |     a0 = s0;
    0x00001dec jalr t9                   |     t9 ();
                                         | label_32:
    0x00001df0 lw t9, -0x7f8c(gp)        |     t9 = sym.imp.apr_strerror;
    0x00001df4 move a0, v0               |     a0 = v0;
    0x00001df8 addiu a2, zero, 0x100     |     a2 = aav.0x00000100;
    0x00001dfc addiu a1, sp, 0x64        |     a1 = sp + 0x64;
    0x00001e00 jalr t9                   |     t9 ();
    0x00001e04 lw gp, 0x18(sp)           |     gp = *(var_18h);
    0x00001e08 lw t9, -0x7f14(gp)        |     t9 = sym.imp.exit;
    0x00001e0c addiu a0, zero, 1         |     a0 = 1;
    0x00001e10 jalr t9                   |     t9 ();
                                         | label_29:
    0x00001e14 lw t9, -0x7ef8(gp)        |     t9 = sym.imp.__stack_chk_fail;
    0x00001e18 jalr t9                   |     t9 ();
    0x00001e1c nop                       |     
                                         | }

[*] Function strcat used 2 times htdbm