[*] Binary protection state of ssh-keygen

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


[*] Function fprintf tear down of ssh-keygen

    ; assembly                               | /* r2dec pseudo code output */
                                             | /* /logs/firmware/unblob_extracted/firmware_extract/4325012-58052244.squashfs_v4_le_extract/usr/bin/ssh-keygen @ 0xca9c */
                                             | #include <stdint.h>
                                             |  
    ; (fcn) fcn.0000ca9c ()                  | void fcn_0000ca9c () {
    0x0000ca9c lui gp, 9                     |     
    0x0000caa0 addiu gp, gp, -0x9fc          |     
    0x0000caa4 addu gp, gp, t9               |     gp += t9;
    0x0000caa8 addiu sp, sp, -0x60           |     
    0x0000caac sw s4, 0x4c(sp)               |     *(var_4ch) = s4;
    0x0000cab0 lw s4, -0x773c(gp)            |     s4 = *((gp - 7631));
    0x0000cab4 sw s3, 0x48(sp)               |     *(var_48h) = s3;
    0x0000cab8 sw s0, 0x3c(sp)               |     *(var_3ch) = s0;
    0x0000cabc sw gp, 0x28(sp)               |     *(var_28h) = gp;
    0x0000cac0 sw ra, 0x5c(sp)               |     *(var_5ch) = ra;
    0x0000cac4 sw s7, 0x58(sp)               |     *(var_58h) = s7;
    0x0000cac8 sw s6, 0x54(sp)               |     *(var_54h) = s6;
    0x0000cacc sw s5, 0x50(sp)               |     *(var_50h) = s5;
    0x0000cad0 sw s2, 0x44(sp)               |     *(var_44h) = s2;
    0x0000cad4 sw s1, 0x40(sp)               |     *(var_40h) = s1;
    0x0000cad8 lw v0, (s4)                   |     v0 = *(s4);
    0x0000cadc lw s1, 0x18(a0)               |     s1 = *((a0 + 6));
    0x0000cae0 move s0, a0                   |     s0 = a0;
    0x0000cae4 move s3, a1                   |     s3 = a1;
    0x0000cae8 sw v0, 0x34(sp)               |     *(var_34h) = v0;
    0x0000caec lw s2, 8(a0)                  |     s2 = *((a0 + 2));
                                             |     if (s1 == 0) {
    0x0000caf0 beqz s1, 0xcc98               |         goto label_5;
                                             |     }
    0x0000caf4 lw a1, -0x7fdc(gp)            |     a1 = *(gp);
    0x0000caf8 lw t9, -0x7920(gp)            |     t9 = sym.imp.strcspn;
                                             |     /* esilref: '*?!' */
    0x0000cafc addiu a1, a1, -0xe24          |     a1 += -0xe24;
    0x0000cb00 move a0, s1                   |     a0 = s1;
    0x0000cb04 jalr t9                       |     t9 ();
    0x0000cb08 lw gp, 0x28(sp)               |     gp = *(var_28h);
    0x0000cb0c move a0, s1                   |     a0 = s1;
    0x0000cb10 lw t9, -0x76e4(gp)            |     t9 = sym.imp.strlen;
    0x0000cb14 move s5, v0                   |     s5 = v0;
    0x0000cb18 jalr t9                       |     t9 ();
    0x0000cb1c lb a0, (s1)                   |     a0 = *(s1);
    0x0000cb20 addiu v1, zero, 0x7c          |     v1 = 0x7c;
    0x0000cb24 lw gp, 0x28(sp)               |     gp = *(var_28h);
    0x0000cb28 move s6, v0                   |     s6 = v0;
                                             |     if (a0 == v1) {
    0x0000cb2c beq a0, v1, 0xcba8            |         goto label_6;
                                             |     }
    0x0000cb30 addiu v0, zero, 1             |     v0 = 1;
                                             |     if (s2 == v0) {
    0x0000cb34 beql s2, v0, 0xcc48           |         goto label_7;
                                             |     }
    0x0000cb38 sw v0, 0x10(s3)               |     *((s3 + 4)) = v0;
    0x0000cb3c addiu v0, zero, 3             |     v0 = 3;
                                             |     if (s2 == 0) {
    0x0000cb40 beqz s2, 0xcd84               |         goto label_8;
                                             |     }
                                             |     if (s2 == v0) {
    0x0000cb44 beq s2, v0, 0xcd84            |         goto label_8;
                                             |     }
    0x0000cb48 nop                           |     
                                             | label_1:
    0x0000cb4c lw a2, -0x7fdc(gp)            |     a2 = *(gp);
                                             |     do {
                                             | label_2:
    0x0000cb50 lw t9, -0x74ac(gp)            |         t9 = sym.imp.__fprintf_chk
    0x0000cb54 lw a3, 0x10(s0)               |         a3 = *((s0 + 4));
    0x0000cb58 lw a0, 4(s3)                  |         a0 = *((s3 + 1));
                                             |         /* esilref: '&s
' */
    0x0000cb5c addiu a2, a2, 0x40b0          |         a2 += 0x40b0;
    0x0000cb60 addiu a1, zero, 1             |         a1 = 1;
    0x0000cb64 jalr t9                       |         t9 ();
    0x0000cb68 lw gp, 0x28(sp)               |         gp = *(var_28h);
                                             | label_0:
    0x0000cb6c lw a0, 0x34(sp)               |         a0 = *(var_34h);
    0x0000cb70 lw v1, (s4)                   |         v1 = *(s4);
    0x0000cb74 move v0, zero                 |         v0 = 0;
                                             |         if (a0 != v1) {
    0x0000cb78 bne a0, v1, 0xcdac            |             goto label_9;
                                             |         }
    0x0000cb7c lw ra, 0x5c(sp)               |         ra = *(var_5ch);
    0x0000cb80 lw s7, 0x58(sp)               |         s7 = *(var_58h);
    0x0000cb84 lw s6, 0x54(sp)               |         s6 = *(var_54h);
    0x0000cb88 lw s5, 0x50(sp)               |         s5 = *(var_50h);
    0x0000cb8c lw s4, 0x4c(sp)               |         s4 = *(var_4ch);
    0x0000cb90 lw s3, 0x48(sp)               |         s3 = *(var_48h);
    0x0000cb94 lw s2, 0x44(sp)               |         s2 = *(var_44h);
    0x0000cb98 lw s1, 0x40(sp)               |         s1 = *(var_40h);
    0x0000cb9c lw s0, 0x3c(sp)               |         s0 = *(var_3ch);
    0x0000cba0 addiu sp, sp, 0x60            |         
    0x0000cba4 jr ra                         |         return v0;
                                             | label_6:
    0x0000cba8 addiu v0, zero, 1             |         v0 = 1;
                                             |         if (s2 == v0) {
    0x0000cbac beql s2, v0, 0xcc48           |             goto label_7;
                                             |         }
    0x0000cbb0 sw v0, 0x10(s3)               |         *((s3 + 4)) = v0;
    0x0000cbb4 addiu v0, zero, 3             |         v0 = 3;
                                             |         if (s2 == 0) {
    0x0000cbb8 beqz s2, 0xcbc4               |             goto label_10;
                                             |         }
    0x0000cbbc lw a2, -0x7fdc(gp)            |         a2 = *(gp);
    0x0000cbc0 bne s2, v0, 0xcb50            |         
                                             |     } while (s2 != v0);
                                             | label_10:
    0x0000cbc4 lw a2, -0x7fdc(gp)            |     a2 = *(gp);
    0x0000cbc8 lw t9, -0x74ac(gp)            |     t9 = sym.imp.__fprintf_chk
    0x0000cbcc lw a3, 0x10(s0)               |     a3 = *((s0 + 4));
    0x0000cbd0 lw a0, 4(s3)                  |     a0 = *((s3 + 1));
                                             |     /* esilref: '&s
' */
    0x0000cbd4 addiu a2, a2, 0x40b0          |     a2 += 0x40b0;
    0x0000cbd8 addiu a1, zero, 1             |     a1 = 1;
    0x0000cbdc jalr t9                       |     t9 ();
    0x0000cbe0 lw gp, 0x28(sp)               |     gp = *(var_28h);
                                             |     if (s5 == s6) {
    0x0000cbe4 beq s5, s6, 0xcb6c            |         goto label_0;
                                             |     }
                                             | label_4:
    0x0000cbe8 lw v0, 0x18(s3)               |     v0 = *((s3 + 6));
    0x0000cbec lw t9, -0x7fac(gp)            |     t9 = sym.sshlog;
                                             |     if (v0 != 0) {
    0x0000cbf0 bnez v0, 0xcb6c               |         goto label_0;
                                             |     }
    0x0000cbf4 lw v0, (s0)                   |     v0 = *(s0);
    0x0000cbf8 lw a0, 0x18(s0)               |     a0 = *((s0 + 6));
    0x0000cbfc lw v1, 4(s0)                  |     v1 = *((s0 + 1));
    0x0000cc00 sw v0, 0x1c(sp)               |     *(var_1ch) = v0;
    0x0000cc04 lw v0, -0x7fdc(gp)            |     v0 = *(gp);
    0x0000cc08 lw a1, -0x7fdc(gp)            |     a1 = *(gp);
    0x0000cc0c sw a0, 0x24(sp)               |     *(var_24h) = a0;
                                             |     /* str._s:_lu:_ignoring_host_name_with_wildcard:__.64s */
    0x0000cc10 addiu v0, v0, -0xe20          |     v0 += -0xe20;
    0x0000cc14 lw a0, -0x7fdc(gp)            |     a0 = *(gp);
    0x0000cc18 sw v0, 0x18(sp)               |     *(var_18h) = v0;
    0x0000cc1c addiu v0, zero, 3             |     v0 = 3;
    0x0000cc20 sw v1, 0x20(sp)               |     *(var_20h) = v1;
    0x0000cc24 sw zero, 0x14(sp)             |     *(var_14h) = 0;
    0x0000cc28 sw v0, 0x10(sp)               |     *(var_10h) = v0;
    0x0000cc2c move a3, zero                 |     a3 = 0;
    0x0000cc30 addiu a2, zero, 0x4a8         |     a2 = aav.0x000004a8;
                                             |     /* str.known_hosts_hash */
    0x0000cc34 addiu a1, a1, 0x1cbc          |     a1 += 0x1cbc;
                                             |     /* str.ssh_keygen.c */
    0x0000cc38 addiu a0, a0, -0xe90          |     a0 += -0xe90;
    0x0000cc3c jalr t9                       |     t9 ();
    0x0000cc40 lw gp, 0x28(sp)               |     gp = *(var_28h);
    0x0000cc44 b 0xcb6c                      |     goto label_0;
                                             |     do {
                                             | label_7:
    0x0000cc48 lw v0, (s0)                   |         v0 = *(s0);
    0x0000cc4c lw v1, 4(s0)                  |         v1 = *((s0 + 1));
    0x0000cc50 sw v0, 0x1c(sp)               |         *(var_1ch) = v0;
    0x0000cc54 lw v0, -0x7fdc(gp)            |         v0 = *(gp);
    0x0000cc58 lw a1, -0x7fdc(gp)            |         a1 = *(gp);
    0x0000cc5c lw a0, -0x7fdc(gp)            |         a0 = *(gp);
                                             |         /* str._s:_lu:_invalid_line */
    0x0000cc60 addiu v0, v0, -0xdd8          |         v0 += -0xdd8;
    0x0000cc64 lw t9, -0x7fac(gp)            |         t9 = sym.sshlog;
    0x0000cc68 sw v0, 0x18(sp)               |         *(var_18h) = v0;
    0x0000cc6c addiu v0, zero, 3             |         v0 = 3;
    0x0000cc70 sw v1, 0x20(sp)               |         *(var_20h) = v1;
    0x0000cc74 sw zero, 0x14(sp)             |         *(var_14h) = 0;
    0x0000cc78 sw v0, 0x10(sp)               |         *(var_10h) = v0;
    0x0000cc7c move a3, zero                 |         a3 = 0;
    0x0000cc80 addiu a2, zero, 0x4bd         |         a2 = 0x4bd;
                                             |         /* str.known_hosts_hash */
    0x0000cc84 addiu a1, a1, 0x1cbc          |         a1 += 0x1cbc;
                                             |         /* str.ssh_keygen.c */
    0x0000cc88 addiu a0, a0, -0xe90          |         a0 += -0xe90;
    0x0000cc8c jalr t9                       |         t9 ();
    0x0000cc90 lw gp, 0x28(sp)               |         gp = *(var_28h);
    0x0000cc94 b 0xcb4c                      |         goto label_1;
                                             | label_5:
    0x0000cc98 addiu v0, zero, 1             |         v0 = 1;
    0x0000cc9c beql s2, v0, 0xcc48           |         
                                             |     } while (s2 == v0);
    0x0000cca0 sw v0, 0x10(s3)               |     *((s3 + 4)) = v0;
    0x0000cca4 addiu v0, zero, 3             |     v0 = 3;
                                             |     if (s2 == 0) {
    0x0000cca8 beqz s2, 0xccb4               |         goto label_3;
                                             |     }
    0x0000ccac lw a2, -0x7fdc(gp)            |     a2 = *(gp);
                                             |     if (s2 != v0) {
    0x0000ccb0 bne s2, v0, 0xcb50            |         goto label_2;
                                             |     }
                                             | label_3:
    0x0000ccb4 lw v1, 0x14(s0)               |     v1 = *((s0 + 5));
    0x0000ccb8 addiu v0, zero, 1             |     v0 = 1;
    0x0000ccbc lw a2, -0x7fdc(gp)            |     a2 = *(gp);
                                             |     if (v1 != v0) {
    0x0000ccc0 bne v1, v0, 0xcb50            |         goto label_2;
                                             |     }
    0x0000ccc4 lw t9, -0x7fc8(gp)            |     t9 = sym.xstrdup;
    0x0000ccc8 move a0, s1                   |     a0 = s1;
    0x0000cccc jalr t9                       |     t9 ();
    0x0000ccd0 lw gp, 0x28(sp)               |     gp = *(var_28h);
    0x0000ccd4 move s6, v0                   |     s6 = v0;
    0x0000ccd8 sw v0, 0x30(sp)               |     *(var_30h_2) = v0;
    0x0000ccdc lw s2, -0x7fdc(gp)            |     s2 = *(gp);
    0x0000cce0 lw s5, -0x7fdc(gp)            |     s5 = *(gp);
    0x0000cce4 addiu s7, sp, 0x30            |     s7 = sp + 0x30;
                                             |     /* esilref: '' */
    0x0000cce8 addiu s2, s2, -0xddc          |     s2 += -0xddc;
                                             |     /* esilref: '&s &s
' */
    0x0000ccec addiu s5, s5, 0x248           |     s5 += aav.0x00000248;
    0x0000ccf0 b 0xcd54                      |     
                                             |     while (v0 != 0) {
    0x0000ccf4 lb v0, (v0)                   |         v0 = *(v0);
    0x0000ccf8 lw t9, -0x7f98(gp)            |         t9 = sym.lowercase;
                                             |         if (v0 == 0) {
    0x0000ccfc beqz v0, 0xcd70               |             goto label_11;
                                             |         }
    0x0000cd00 move a0, s1                   |         a0 = s1;
    0x0000cd04 jalr t9                       |         t9 ();
    0x0000cd08 lw gp, 0x28(sp)               |         gp = *(var_28h);
    0x0000cd0c move a2, zero                 |         a2 = 0;
    0x0000cd10 move a1, zero                 |         a1 = 0;
    0x0000cd14 lw t9, -0x7f94(gp)            |         t9 = sym.host_hash;
    0x0000cd18 move a0, s1                   |         a0 = s1;
    0x0000cd1c jalr t9                       |         t9 ();
    0x0000cd20 lw gp, 0x28(sp)               |         gp = *(var_28h);
                                             |         if (v0 == 0) {
    0x0000cd24 beqz v0, 0xcdb8               |             goto label_12;
                                             |         }
    0x0000cd28 lw v1, 0x1c(s0)               |         v1 = *((s0 + 7));
    0x0000cd2c lw t9, -0x74ac(gp)            |         t9 = sym.imp.__fprintf_chk
    0x0000cd30 lw a0, 4(s3)                  |         a0 = *((s3 + 1));
    0x0000cd34 move a3, v0                   |         a3 = v0;
    0x0000cd38 sw v1, 0x10(sp)               |         *(var_10h) = v1;
    0x0000cd3c move a2, s5                   |         a2 = s5;
    0x0000cd40 addiu a1, zero, 1             |         a1 = 1;
    0x0000cd44 jalr t9                       |         t9 ();
    0x0000cd48 addiu v0, zero, 1             |         v0 = 1;
    0x0000cd4c lw gp, 0x28(sp)               |         gp = *(var_28h);
    0x0000cd50 sw v0, 8(s3)                  |         *((s3 + 2)) = v0;
    0x0000cd54 lw t9, -0x74c4(gp)            |         t9 = sym.imp.strsep;
    0x0000cd58 move a1, s2                   |         a1 = s2;
    0x0000cd5c move a0, s7                   |         a0 = s7;
    0x0000cd60 jalr t9                       |         t9 ();
    0x0000cd64 move s1, v0                   |         s1 = v0;
    0x0000cd68 lw gp, 0x28(sp)               |         gp = *(var_28h);
    0x0000cd6c bnez v0, 0xccf4               |         
                                             |     }
                                             | label_11:
    0x0000cd70 lw t9, -0x75e4(gp)            |     t9 = sym.imp.free;
    0x0000cd74 move a0, s6                   |     a0 = s6;
    0x0000cd78 jalr t9                       |     t9 ();
    0x0000cd7c lw gp, 0x28(sp)               |     gp = *(var_28h);
    0x0000cd80 b 0xcb6c                      |     goto label_0;
                                             | label_8:
    0x0000cd84 lw a2, -0x7fdc(gp)            |     a2 = *(gp);
                                             |     if (s5 == s6) {
    0x0000cd88 beq s5, s6, 0xccb4            |         goto label_3;
                                             |     }
    0x0000cd8c lw t9, -0x74ac(gp)            |     t9 = sym.imp.__fprintf_chk
    0x0000cd90 lw a3, 0x10(s0)               |     a3 = *((s0 + 4));
    0x0000cd94 lw a0, 4(s3)                  |     a0 = *((s3 + 1));
                                             |     /* esilref: '&s
' */
    0x0000cd98 addiu a2, a2, 0x40b0          |     a2 += 0x40b0;
    0x0000cd9c addiu a1, zero, 1             |     a1 = 1;
    0x0000cda0 jalr t9                       |     t9 ();
    0x0000cda4 lw gp, 0x28(sp)               |     gp = *(var_28h);
    0x0000cda8 b 0xcbe8                      |     goto label_4;
                                             | label_9:
    0x0000cdac lw t9, -0x77e8(gp)            |     t9 = sym.imp.__stack_chk_fail;
    0x0000cdb0 jalr t9                       |     t9 ();
    0x0000cdb4 nop                           |     
                                             | label_12:
    0x0000cdb8 lw v0, -0x7fdc(gp)            |     v0 = *(gp);
    0x0000cdbc lw a1, -0x7fdc(gp)            |     a1 = *(gp);
                                             |     /* str.hash_host_failed */
    0x0000cdc0 addiu v0, v0, -0xdf0          |     v0 += -0xdf0;
    0x0000cdc4 lw a0, -0x7fdc(gp)            |     a0 = *(gp);
    0x0000cdc8 sw v0, 0x18(sp)               |     *(var_18h) = v0;
    0x0000cdcc lw t9, -0x7fbc(gp)            |     t9 = sym.sshfatal;
    0x0000cdd0 addiu v0, zero, 1             |     v0 = 1;
    0x0000cdd4 sw zero, 0x14(sp)             |     *(var_14h) = 0;
    0x0000cdd8 sw v0, 0x10(sp)               |     *(var_10h) = v0;
    0x0000cddc move a3, zero                 |     a3 = 0;
    0x0000cde0 addiu a2, zero, 0x4b4         |     a2 = 0x4b4;
                                             |     /* str.known_hosts_hash */
    0x0000cde4 addiu a1, a1, 0x1cbc          |     a1 += 0x1cbc;
                                             |     /* str.ssh_keygen.c */
    0x0000cde8 addiu a0, a0, -0xe90          |     a0 += -0xe90;
    0x0000cdec jalr t9                       |     return t9 ();
                                             | }
    ; assembly                               | /* r2dec pseudo code output */
                                             | /* /logs/firmware/unblob_extracted/firmware_extract/4325012-58052244.squashfs_v4_le_extract/usr/bin/ssh-keygen @ 0xdac4 */
                                             | #include <stdint.h>
                                             |  
    ; (fcn) fcn.0000dac4 ()                  | void fcn_0000dac4 () {
    0x0000dac4 lui gp, 9                     |     
    0x0000dac8 addiu gp, gp, -0x1a24         |     
    0x0000dacc addu gp, gp, t9               |     gp += t9;
    0x0000dad0 addiu sp, sp, -0x78           |     
    0x0000dad4 lw t9, -0x7f68(gp)            |     t9 = sym.sshbuf_load_file;
    0x0000dad8 sw s1, 0x54(sp)               |     *(var_54h) = s1;
    0x0000dadc lw s1, -0x773c(gp)            |     s1 = *((gp - 7631));
    0x0000dae0 sw gp, 0x28(sp)               |     *(var_28h) = gp;
    0x0000dae4 sw fp, 0x70(sp)               |     *(var_70h) = fp;
    0x0000dae8 sw s5, 0x64(sp)               |     *(var_64h) = s5;
    0x0000daec sw s4, 0x60(sp)               |     *(var_60h) = s4;
    0x0000daf0 sw s2, 0x58(sp)               |     *(var_58h) = s2;
    0x0000daf4 sw ra, 0x74(sp)               |     *(var_74h) = ra;
    0x0000daf8 sw s7, 0x6c(sp)               |     *(var_6ch) = s7;
    0x0000dafc sw s6, 0x68(sp)               |     *(var_68h) = s6;
    0x0000db00 sw s3, 0x5c(sp)               |     *(var_5ch) = s3;
    0x0000db04 sw s0, 0x50(sp)               |     *(var_50h) = s0;
    0x0000db08 lw v0, (s1)                   |     v0 = *(s1);
    0x0000db0c move s2, a1                   |     s2 = a1;
    0x0000db10 sw v0, 0x4c(sp)               |     *(var_4ch) = v0;
    0x0000db14 addiu a1, sp, 0x40            |     a1 = sp + 0x40;
    0x0000db18 sw zero, 0x3c(sp)             |     *(var_3ch) = 0;
    0x0000db1c sw zero, 0x40(sp)             |     *(var_40h) = 0;
    0x0000db20 sw zero, 0x44(sp)             |     *(var_44h) = 0;
    0x0000db24 sw zero, 0x48(sp)             |     *(var_48h) = 0;
    0x0000db28 move fp, a2                   |     fp = a2;
    0x0000db2c move s5, a3                   |     s5 = a3;
    0x0000db30 lw s4, 0x88(sp)               |     s4 = *(arg_88h);
    0x0000db34 jalr t9                       |     t9 ();
    0x0000db38 lw gp, 0x28(sp)               |     gp = *(var_28h);
                                             |     if (v0 != 0) {
    0x0000db3c bnez v0, 0xddc4               |         goto label_10;
                                             |     }
    0x0000db40 lw t9, -0x7f64(gp)            |     t9 = sym.sshsig_dearmor;
    0x0000db44 lw a0, 0x40(sp)               |     a0 = *(var_40h);
    0x0000db48 addiu a1, sp, 0x3c            |     a1 = sp + 0x3c;
    0x0000db4c bal 0x17a04                   |     sym_sshsig_dearmor ();
    0x0000db50 lw gp, 0x28(sp)               |     gp = *(var_28h);
                                             |     if (v0 != 0) {
    0x0000db54 bnez v0, 0xde4c               |         goto label_11;
                                             |     }
    0x0000db58 lw t9, -0x7f60(gp)            |     t9 = sym.sshsig_verify_fd;
    0x0000db5c addiu v0, sp, 0x48            |     v0 = sp + 0x48;
    0x0000db60 lw a0, 0x3c(sp)               |     a0 = *(var_3ch);
    0x0000db64 sw v0, 0x10(sp)               |     *(var_10h) = v0;
    0x0000db68 addiu a3, sp, 0x44            |     a3 = sp + 0x44;
    0x0000db6c move a2, s2                   |     a2 = s2;
    0x0000db70 move a1, zero                 |     a1 = 0;
    0x0000db74 bal 0x182cc                   |     sym_sshsig_verify_fd ();
    0x0000db78 move s0, v0                   |     s0 = v0;
    0x0000db7c lw gp, 0x28(sp)               |     gp = *(var_28h);
                                             |     if (v0 != 0) {
    0x0000db80 bnez v0, 0xde14               |         goto label_12;
                                             |     }
    0x0000db84 lw s3, -0x7fcc(gp)            |     s3 = *((gp - 8179));
    0x0000db88 lw t9, -0x7f5c(gp)            |     t9 = sym.sshkey_fingerprint;
    0x0000db8c lw a0, 0x44(sp)               |     a0 = *(var_44h);
    0x0000db90 lw a1, 0x405c(s3)             |     a1 = *((s3 + 4119));
    0x0000db94 move a2, zero                 |     a2 = 0;
    0x0000db98 bal 0x1eef8                   |     sym_sshkey_fingerprint ();
    0x0000db9c lw gp, 0x28(sp)               |     gp = *(var_28h);
                                             |     if (v0 == 0) {
    0x0000dba0 beqz v0, 0xdf10               |         goto label_13;
                                             |     }
    0x0000dba4 lw v1, -0x7fdc(gp)            |     v1 = *(gp);
    0x0000dba8 lw s7, -0x7fdc(gp)            |     s7 = *(gp);
    0x0000dbac lw s6, -0x7fdc(gp)            |     s6 = *(gp);
                                             |     /* str.Valid__unverified__signature_from_key__s */
    0x0000dbb0 addiu v1, v1, -0xa94          |     v1 += -0xa94;
    0x0000dbb4 lw t9, -0x7fac(gp)            |     t9 = sym.sshlog;
    0x0000dbb8 sw v1, 0x18(sp)               |     *(var_18h) = v1;
    0x0000dbbc addiu v1, zero, 5             |     v1 = 5;
    0x0000dbc0 sw v0, 0x1c(sp)               |     *(var_1ch_3) = v0;
    0x0000dbc4 sw v0, 0x34(sp)               |     *(var_34h_4) = v0;
    0x0000dbc8 sw v1, 0x10(sp)               |     *(var_10h) = v1;
    0x0000dbcc sw zero, 0x14(sp)             |     *(var_14h) = 0;
    0x0000dbd0 move a3, zero                 |     a3 = 0;
    0x0000dbd4 addiu a2, zero, 0xa8e         |     a2 = 0xa8e;
                                             |     /* str.sig_verify */
    0x0000dbd8 addiu a1, s7, 0x1d9c          |     a1 = s7 + 0x1d9c;
                                             |     /* str.ssh_keygen.c */
    0x0000dbdc addiu a0, s6, -0xe90          |     a0 = s6 + -0xe90;
    0x0000dbe0 jalr t9                       |     t9 ();
    0x0000dbe4 lw v1, 0x48(sp)               |     v1 = *(var_48h);
    0x0000dbe8 lw gp, 0x28(sp)               |     gp = *(var_28h);
    0x0000dbec lw v0, 0x34(sp)               |     v0 = *(var_34h_4);
                                             |     if (v1 != 0) {
    0x0000dbf0 beqz v1, 0xdc3c               |         
    0x0000dbf4 lbu a0, 4(v1)                 |         a0 = *((v1 + 4));
    0x0000dbf8 lw t9, -0x7fac(gp)            |         t9 = sym.sshlog;
    0x0000dbfc sw a0, 0x20(sp)               |         *(var_20h_5) = a0;
    0x0000dc00 lw v1, (v1)                   |         v1 = *(v1);
    0x0000dc04 addiu a3, zero, 1             |         a3 = 1;
    0x0000dc08 sw v1, 0x1c(sp)               |         *(var_1ch_3) = v1;
    0x0000dc0c lw v1, -0x7fdc(gp)            |         v1 = *(gp);
    0x0000dc10 sw zero, 0x14(sp)             |         *(var_14h) = 0;
                                             |         /* str.signature_details:_counter___u__flags__0x_02x */
    0x0000dc14 addiu v1, v1, -0xa68          |         v1 += -0xa68;
    0x0000dc18 sw v1, 0x18(sp)               |         *(var_18h) = v1;
    0x0000dc1c addiu v1, zero, 6             |         v1 = 6;
    0x0000dc20 sw v1, 0x10(sp)               |         *(var_10h) = v1;
    0x0000dc24 addiu a2, zero, 0xa91         |         a2 = 0xa91;
                                             |         /* str.sig_verify */
    0x0000dc28 addiu a1, s7, 0x1d9c          |         a1 = s7 + 0x1d9c;
                                             |         /* str.ssh_keygen.c */
    0x0000dc2c addiu a0, s6, -0xe90          |         a0 = s6 + -0xe90;
    0x0000dc30 jalr t9                       |         t9 ();
    0x0000dc34 lw gp, 0x28(sp)               |         gp = *(var_28h);
    0x0000dc38 lw v0, 0x34(sp)               |         v0 = *(var_34h_4);
                                             |     }
    0x0000dc3c lw t9, -0x75e4(gp)            |     t9 = sym.imp.free;
    0x0000dc40 move a0, v0                   |     a0 = v0;
    0x0000dc44 jalr t9                       |     t9 ();
    0x0000dc48 lw gp, 0x28(sp)               |     gp = *(var_28h);
                                             |     if (s4 != 0) {
    0x0000dc4c beqz s4, 0xdc68               |         
    0x0000dc50 lw t9, -0x7f58(gp)            |         t9 = sym.sshkey_check_revoked;
    0x0000dc54 lw a0, 0x44(sp)               |         a0 = *(var_44h);
    0x0000dc58 move a1, s4                   |         a1 = s4;
    0x0000dc5c jalr t9                       |         t9 ();
    0x0000dc60 lw gp, 0x28(sp)               |         gp = *(var_28h);
                                             |         if (v0 != 0) {
    0x0000dc64 bnez v0, 0xde84               |             goto label_14;
                                             |         }
                                             |     }
    0x0000dc68 lw t9, -0x7f54(gp)            |     t9 = sym.sshsig_check_allowed_keys;
                                             |     if (s5 != 0) {
    0x0000dc6c beqz s5, 0xdc8c               |         
    0x0000dc70 lw a1, 0x44(sp)               |         a1 = *(var_44h);
    0x0000dc74 move a3, s2                   |         a3 = s2;
    0x0000dc78 move a2, fp                   |         a2 = fp;
    0x0000dc7c move a0, s5                   |         a0 = s5;
    0x0000dc80 bal 0x18b90                   |         sym_sshsig_check_allowed_keys ();
    0x0000dc84 lw gp, 0x28(sp)               |         gp = *(var_28h);
                                             |         if (v0 != 0) {
    0x0000dc88 bnez v0, 0xdec4               |             goto label_15;
                                             |         }
                                             |     }
    0x0000dc8c lw v0, -0x7fcc(gp)            |     v0 = *((gp - 8179));
    0x0000dc90 lw v0, 0x6144(v0)             |     v0 = *((v0 + 6225));
    0x0000dc94 lw t9, -0x7f5c(gp)            |     t9 = sym.sshkey_fingerprint;
                                             |     if (v0 != 0) {
    0x0000dc98 bnez v0, 0xdd88               |         goto label_16;
                                             |     }
    0x0000dc9c lw a1, 0x405c(s3)             |     a1 = *((s3 + 4119));
    0x0000dca0 lw a0, 0x44(sp)               |     a0 = *(var_44h);
    0x0000dca4 move a2, zero                 |     a2 = 0;
    0x0000dca8 bal 0x1eef8                   |     sym_sshkey_fingerprint ();
    0x0000dcac move s3, v0                   |     s3 = v0;
    0x0000dcb0 lw gp, 0x28(sp)               |     gp = *(var_28h);
                                             |     if (v0 == 0) {
    0x0000dcb4 beqz v0, 0xdf48               |         goto label_17;
                                             |     }
    0x0000dcb8 lw a0, 0x44(sp)               |     a0 = *(var_44h);
    0x0000dcbc lw t9, -0x7f50(gp)            |     t9 = sym.sshkey_type;
                                             |     if (fp == 0) {
    0x0000dcc0 beqz fp, 0xdd90               |         goto label_18;
                                             |     }
    0x0000dcc4 bal 0x1d55c                   |     sym_sshkey_type ();
    0x0000dcc8 nop                           |     
    0x0000dccc lw gp, 0x28(sp)               |     gp = *(var_28h);
    0x0000dcd0 sw s3, 0x14(sp)               |     *(var_14h) = s3;
    0x0000dcd4 sw v0, 0x10(sp)               |     *(var_10h) = v0;
    0x0000dcd8 lw a1, -0x7fdc(gp)            |     a1 = *(gp);
    0x0000dcdc lw t9, -0x74e8(gp)            |     t9 = sym.imp.__printf_chk;
    0x0000dce0 move a3, fp                   |     a3 = fp;
    0x0000dce4 move a2, s2                   |     a2 = s2;
                                             |     /* str.Good___s__signature_for__s_with__s_key__s_n */
    0x0000dce8 addiu a1, a1, -0x9e0          |     a1 += -0x9e0;
    0x0000dcec addiu a0, zero, 1             |     a0 = 1;
    0x0000dcf0 jalr t9                       |     t9 ();
    0x0000dcf4 lw gp, 0x28(sp)               |     gp = *(var_28h);
                                             |     do {
                                             | label_0:
    0x0000dcf8 lw t9, -0x7f9c(gp)            |         t9 = sym.sshbuf_free;
    0x0000dcfc lw a0, 0x3c(sp)               |         a0 = *(var_3ch);
    0x0000dd00 bal 0x1b7ac                   |         sym_sshbuf_free ();
    0x0000dd04 lw gp, 0x28(sp)               |         gp = *(var_28h);
    0x0000dd08 lw t9, -0x7f9c(gp)            |         t9 = sym.sshbuf_free;
    0x0000dd0c lw a0, 0x40(sp)               |         a0 = *(var_40h);
    0x0000dd10 bal 0x1b7ac                   |         sym_sshbuf_free ();
    0x0000dd14 lw gp, 0x28(sp)               |         gp = *(var_28h);
    0x0000dd18 lw t9, -0x7f4c(gp)            |         t9 = sym.sshkey_free;
    0x0000dd1c lw a0, 0x44(sp)               |         a0 = *(var_44h);
    0x0000dd20 bal 0x1e0a4                   |         sym_sshkey_free ();
    0x0000dd24 lw gp, 0x28(sp)               |         gp = *(var_28h);
    0x0000dd28 lw t9, -0x7f48(gp)            |         t9 = sym.sshkey_sig_details_free;
    0x0000dd2c lw a0, 0x48(sp)               |         a0 = *(var_48h);
    0x0000dd30 bal 0x26f0c                   |         sym_sshkey_sig_details_free ();
    0x0000dd34 lw gp, 0x28(sp)               |         gp = *(var_28h);
    0x0000dd38 lw t9, -0x75e4(gp)            |         t9 = sym.imp.free;
    0x0000dd3c move a0, s3                   |         a0 = s3;
    0x0000dd40 jalr t9                       |         t9 ();
    0x0000dd44 lw a0, 0x4c(sp)               |         a0 = *(var_4ch);
    0x0000dd48 lw v1, (s1)                   |         v1 = *(s1);
    0x0000dd4c lw gp, 0x28(sp)               |         gp = *(var_28h);
    0x0000dd50 move v0, s0                   |         v0 = s0;
                                             |         if (a0 != v1) {
    0x0000dd54 bne a0, v1, 0xdf04            |             goto label_19;
                                             |         }
    0x0000dd58 lw ra, 0x74(sp)               |         ra = *(var_74h);
    0x0000dd5c lw fp, 0x70(sp)               |         fp = *(var_70h);
    0x0000dd60 lw s7, 0x6c(sp)               |         s7 = *(var_6ch);
    0x0000dd64 lw s6, 0x68(sp)               |         s6 = *(var_68h);
    0x0000dd68 lw s5, 0x64(sp)               |         s5 = *(var_64h);
    0x0000dd6c lw s4, 0x60(sp)               |         s4 = *(var_60h);
    0x0000dd70 lw s3, 0x5c(sp)               |         s3 = *(var_5ch);
    0x0000dd74 lw s2, 0x58(sp)               |         s2 = *(var_58h);
    0x0000dd78 lw s1, 0x54(sp)               |         s1 = *(var_54h);
    0x0000dd7c lw s0, 0x50(sp)               |         s0 = *(var_50h);
    0x0000dd80 addiu sp, sp, 0x78            |         
    0x0000dd84 jr ra                         |         return v0;
                                             | label_16:
    0x0000dd88 move s3, zero                 |         s3 = 0;
    0x0000dd8c b 0xdcf8                      |         
                                             |     } while (1);
                                             | label_18:
    0x0000dd90 bal 0x1d55c                   |     sym_sshkey_type ();
    0x0000dd94 nop                           |     
    0x0000dd98 lw gp, 0x28(sp)               |     gp = *(var_28h);
    0x0000dd9c sw s3, 0x10(sp)               |     *(var_10h) = s3;
    0x0000dda0 move a3, v0                   |     a3 = v0;
    0x0000dda4 lw a1, -0x7fdc(gp)            |     a1 = *(gp);
    0x0000dda8 lw t9, -0x74e8(gp)            |     t9 = sym.imp.__printf_chk;
    0x0000ddac move a2, s2                   |     a2 = s2;
                                             |     /* str.Good___s__signature_with__s_key__s_n */
    0x0000ddb0 addiu a1, a1, -0xa04          |     a1 += -0xa04;
    0x0000ddb4 addiu a0, zero, 1             |     a0 = 1;
    0x0000ddb8 jalr t9                       |     t9 ();
    0x0000ddbc lw gp, 0x28(sp)               |     gp = *(var_28h);
    0x0000ddc0 b 0xdcf8                      |     goto label_0;
                                             | label_10:
    0x0000ddc4 lw t9, -0x7fd0(gp)            |     t9 = sym.ssh_err;
    0x0000ddc8 move a0, v0                   |     a0 = v0;
    0x0000ddcc bal 0x1b0f0                   |     sym_ssh_err ();
    0x0000ddd0 lw gp, 0x28(sp)               |     gp = *(var_28h);
    0x0000ddd4 sw v0, 0x14(sp)               |     *(var_14h) = v0;
    0x0000ddd8 addiu v0, zero, 2             |     v0 = 2;
    0x0000dddc lw v1, -0x7fdc(gp)            |     v1 = *(gp);
    0x0000dde0 lw t9, -0x7fac(gp)            |     t9 = sym.sshlog;
                                             |     /* str.Couldnt_read_signature_file */
    0x0000dde4 addiu v1, v1, -0xae0          |     v1 += -0xae0;
    0x0000dde8 sw v1, 0x18(sp)               |     *(var_18h) = v1;
    0x0000ddec sw v0, 0x10(sp)               |     *(var_10h) = v0;
    0x0000ddf0 move a3, zero                 |     a3 = 0;
    0x0000ddf4 addiu a2, zero, 0xa7f         |     a2 = 0xa7f;
                                             |     do {
    0x0000ddf8 lw a1, -0x7fdc(gp)            |         a1 = *(gp);
    0x0000ddfc lw a0, -0x7fdc(gp)            |         a0 = *(gp);
                                             |         /* str.sig_verify */
    0x0000de00 addiu a1, a1, 0x1d9c          |         a1 += 0x1d9c;
                                             |         /* str.ssh_keygen.c */
    0x0000de04 addiu a0, a0, -0xe90          |         a0 += -0xe90;
                                             | label_1:
    0x0000de08 jalr t9                       |         t9 ();
    0x0000de0c nop                           |         
    0x0000de10 lw gp, 0x28(sp)               |         gp = *(var_28h);
                                             | label_12:
    0x0000de14 lw v0, -0x7fcc(gp)            |         v0 = *((gp - 8179));
    0x0000de18 lw v0, 0x6144(v0)             |         v0 = *((v0 + 6225));
    0x0000de1c lw a0, -0x7fdc(gp)            |         a0 = *(gp);
                                             |         if (v0 == 0) {
    0x0000de20 bnez v0, 0xde40               |             
    0x0000de24 lw t9, -0x786c(gp)            |             t9 = sym.imp.puts;
                                             |             /* str.Could_not_verify_signature. */
    0x0000de28 addiu a0, a0, -0x9b4          |             a0 += -0x9b4;
    0x0000de2c jalr t9                       |             t9 ();
    0x0000de30 addiu s0, zero, -1            |             s0 = -1;
    0x0000de34 move s3, zero                 |             s3 = 0;
    0x0000de38 lw gp, 0x28(sp)               |             gp = *(var_28h);
    0x0000de3c b 0xdcf8                      |             goto label_0;
                                             |         }
    0x0000de40 addiu s0, zero, -1            |         s0 = -1;
    0x0000de44 move s3, zero                 |         s3 = 0;
    0x0000de48 b 0xdcf8                      |         goto label_0;
                                             | label_11:
    0x0000de4c lw t9, -0x7fd0(gp)            |         t9 = sym.ssh_err;
    0x0000de50 move a0, v0                   |         a0 = v0;
    0x0000de54 bal 0x1b0f0                   |         sym_ssh_err ();
    0x0000de58 lw gp, 0x28(sp)               |         gp = *(var_28h);
    0x0000de5c sw v0, 0x14(sp)               |         *(var_14h) = v0;
    0x0000de60 addiu v0, zero, 2             |         v0 = 2;
    0x0000de64 lw v1, -0x7fdc(gp)            |         v1 = *(gp);
    0x0000de68 sw v0, 0x10(sp)               |         *(var_10h) = v0;
                                             |         /* esilref: 'sshsig_armor' */
    0x0000de6c addiu v1, v1, -0xac0          |         v1 += -0xac0;
    0x0000de70 lw t9, -0x7fac(gp)            |         t9 = sym.sshlog;
    0x0000de74 sw v1, 0x18(sp)               |         *(var_18h) = v1;
    0x0000de78 addiu a3, zero, 1             |         a3 = 1;
    0x0000de7c addiu a2, zero, 0xa84         |         a2 = 0xa84;
    0x0000de80 b 0xddf8                      |         
                                             |     } while (1);
                                             | label_14:
    0x0000de84 lw t9, -0x7fd0(gp)            |     t9 = sym.ssh_err;
    0x0000de88 move a0, v0                   |     a0 = v0;
    0x0000de8c bal 0x1b0f0                   |     sym_ssh_err ();
    0x0000de90 lw gp, 0x28(sp)               |     gp = *(var_28h);
    0x0000de94 sw v0, 0x14(sp)               |     *(var_14h) = v0;
    0x0000de98 addiu v0, zero, 7             |     v0 = 7;
    0x0000de9c lw v1, -0x7fdc(gp)            |     v1 = *(gp);
    0x0000dea0 sw v0, 0x10(sp)               |     *(var_10h) = v0;
                                             |     /* str.sshkey_check_revoked */
    0x0000dea4 addiu v1, v1, -0xa38          |     v1 += -0xa38;
    0x0000dea8 lw t9, -0x7fac(gp)            |     t9 = sym.sshlog;
    0x0000deac sw v1, 0x18(sp)               |     *(var_18h) = v1;
    0x0000deb0 addiu a3, zero, 1             |     a3 = 1;
    0x0000deb4 addiu a2, zero, 0xa98         |     a2 = 0xa98;
                                             |     /* str.sig_verify */
    0x0000deb8 addiu a1, s7, 0x1d9c          |     a1 = s7 + 0x1d9c;
                                             |     /* str.ssh_keygen.c */
    0x0000debc addiu a0, s6, -0xe90          |     a0 = s6 + -0xe90;
    0x0000dec0 b 0xde08                      |     goto label_1;
                                             | label_15:
    0x0000dec4 lw t9, -0x7fd0(gp)            |     t9 = sym.ssh_err;
    0x0000dec8 move a0, v0                   |     a0 = v0;
    0x0000decc bal 0x1b0f0                   |     sym_ssh_err ();
    0x0000ded0 lw gp, 0x28(sp)               |     gp = *(var_28h);
    0x0000ded4 sw v0, 0x14(sp)               |     *(var_14h) = v0;
    0x0000ded8 addiu v0, zero, 7             |     v0 = 7;
    0x0000dedc lw v1, -0x7fdc(gp)            |     v1 = *(gp);
    0x0000dee0 sw v0, 0x10(sp)               |     *(var_10h) = v0;
                                             |     /* esilref: 'sshsig_check_allowed_keys' */
    0x0000dee4 addiu v1, v1, -0xa20          |     v1 += -0xa20;
    0x0000dee8 lw t9, -0x7fac(gp)            |     t9 = sym.sshlog;
    0x0000deec sw v1, 0x18(sp)               |     *(var_18h) = v1;
    0x0000def0 addiu a3, zero, 1             |     a3 = 1;
    0x0000def4 addiu a2, zero, 0xa9f         |     a2 = 0xa9f;
                                             |     /* str.sig_verify */
    0x0000def8 addiu a1, s7, 0x1d9c          |     a1 = s7 + 0x1d9c;
                                             |     /* str.ssh_keygen.c */
    0x0000defc addiu a0, s6, -0xe90          |     a0 = s6 + -0xe90;
    0x0000df00 b 0xde08                      |     goto label_1;
                                             | label_19:
    0x0000df04 lw t9, -0x77e8(gp)            |     t9 = sym.imp.__stack_chk_fail;
    0x0000df08 jalr t9                       |     t9 ();
    0x0000df0c nop                           |     
                                             | label_13:
    0x0000df10 lw v0, -0x7fdc(gp)            |     v0 = *(gp);
    0x0000df14 lw a1, -0x7fdc(gp)            |     a1 = *(gp);
                                             |     /* str.sshkey_fingerprint_failed */
    0x0000df18 addiu v0, v0, -0xab0          |     v0 += -0xab0;
    0x0000df1c lw a0, -0x7fdc(gp)            |     a0 = *(gp);
    0x0000df20 sw v0, 0x18(sp)               |     *(var_18h) = v0;
    0x0000df24 lw t9, -0x7fbc(gp)            |     t9 = sym.sshfatal;
    0x0000df28 addiu v0, zero, 1             |     v0 = 1;
    0x0000df2c sw zero, 0x14(sp)             |     *(var_14h) = 0;
    0x0000df30 sw v0, 0x10(sp)               |     *(var_10h) = v0;
    0x0000df34 addiu a3, zero, 1             |     a3 = 1;
    0x0000df38 addiu a2, zero, 0xa8d         |     a2 = 0xa8d;
                                             |     /* str.sig_verify */
    0x0000df3c addiu a1, a1, 0x1d9c          |     a1 += 0x1d9c;
                                             |     /* str.ssh_keygen.c */
    0x0000df40 addiu a0, a0, -0xe90          |     a0 += -0xe90;
    0x0000df44 jalr t9                       |     t9 ();
                                             | label_17:
    0x0000df48 lw v0, -0x7fdc(gp)            |     v0 = *(gp);
    0x0000df4c lw t9, -0x7fbc(gp)            |     t9 = sym.sshfatal;
                                             |     /* str.sshkey_fingerprint_failed */
    0x0000df50 addiu v0, v0, -0xab0          |     v0 += -0xab0;
    0x0000df54 sw v0, 0x18(sp)               |     *(var_18h) = v0;
    0x0000df58 addiu v0, zero, 1             |     v0 = 1;
    0x0000df5c sw zero, 0x14(sp)             |     *(var_14h) = 0;
    0x0000df60 sw v0, 0x10(sp)               |     *(var_10h) = v0;
    0x0000df64 addiu a3, zero, 1             |     a3 = 1;
    0x0000df68 addiu a2, zero, 0xaa9         |     a2 = 0xaa9;
    0x0000df6c addiu a1, s7, 0x1d9c          |     a1 = s7 + 0x1d9c;
    0x0000df70 addiu a0, s6, -0xe90          |     a0 = s6 + -0xe90;
    0x0000df74 jalr t9                       |     t9 ();
    0x0000df78 lui gp, 9                     |     
    0x0000df7c addiu gp, gp, -0x1ed8         |     
    0x0000df80 addu gp, gp, t9               |     gp += t9;
    0x0000df84 addiu sp, sp, -0x60           |     
    0x0000df88 lw t9, -0x7f44(gp)            |     t9 = sym.sshbuf_fromb;
    0x0000df8c sw s7, 0x54(sp)               |     *(var_54h_2) = s7;
    0x0000df90 lw s7, -0x773c(gp)            |     s7 = *((gp - 7631));
    0x0000df94 sw gp, 0x20(sp)               |     *(var_20h) = gp;
    0x0000df98 sw s2, 0x40(sp)               |     *(var_40h_2) = s2;
    0x0000df9c sw ra, 0x5c(sp)               |     *(var_5ch_2) = ra;
    0x0000dfa0 sw fp, 0x58(sp)               |     *(var_58h_2) = fp;
    0x0000dfa4 sw s6, 0x50(sp)               |     *(var_50h_2) = s6;
    0x0000dfa8 sw s5, 0x4c(sp)               |     *(var_4ch_2) = s5;
    0x0000dfac sw s4, 0x48(sp)               |     *(var_48h_2) = s4;
    0x0000dfb0 sw s3, 0x44(sp)               |     *(var_44h_2) = s3;
    0x0000dfb4 sw s1, 0x3c(sp)               |     *(var_3ch_2) = s1;
    0x0000dfb8 sw s0, 0x38(sp)               |     *(var_38h) = s0;
    0x0000dfbc lw v0, (s7)                   |     v0 = *(s7);
    0x0000dfc0 sw zero, 0x30(sp)             |     *(var_30h) = 0;
    0x0000dfc4 sw v0, 0x34(sp)               |     *(var_34h) = v0;
    0x0000dfc8 move s2, a1                   |     s2 = a1;
    0x0000dfcc bal 0x1b904                   |     sym_sshbuf_fromb ();
    0x0000dfd0 lw gp, 0x20(sp)               |     gp = *(var_20h);
                                             |     if (v0 == 0) {
    0x0000dfd4 beqz v0, 0xe360               |         goto label_20;
                                             |     }
    0x0000dfd8 lw s1, -0x7fdc(gp)            |     s1 = *(gp);
    0x0000dfdc lw s5, -0x7fdc(gp)            |     s5 = *(gp);
    0x0000dfe0 lw s3, -0x7fdc(gp)            |     s3 = *(gp);
    0x0000dfe4 move s0, v0                   |     s0 = v0;
                                             |     /* str._________________s */
    0x0000dfe8 addiu s1, s1, -0x974          |     s1 += -0x974;
                                             |     /* str._UNKNOWN_FLAG_OPTION */
    0x0000dfec addiu s5, s5, -0x898          |     s5 += -0x898;
    0x0000dff0 lw s6, -0x7fdc(gp)            |     s6 = *(gp);
                                             |     /* esilref: 'force-command' */
    0x0000dff4 addiu s3, s3, -0x8e8          |     s3 += -0x8e8;
    0x0000dff8 lw s4, -0x7fdc(gp)            |     s4 = *(gp);
    0x0000dffc b 0xe098                      |     
                                             |     while (s2 != 0) {
    0x0000e000 move a1, s3                   |         a1 = s3;
    0x0000e004 move a0, fp                   |         a0 = fp;
    0x0000e008 jalr t9                       |         t9 ();
    0x0000e00c lw gp, 0x20(sp)               |         gp = *(var_20h);
                                             |         if (v0 != 0) {
    0x0000e010 beqz v0, 0xe030               |             
    0x0000e014 lw a1, -0x7fdc(gp)            |             a1 = *(gp);
    0x0000e018 lw t9, -0x7944(gp)            |             t9 = sym.imp.strcmp;
                                             |             /* esilref: 'source-address' */
    0x0000e01c addiu a1, a1, -0x8d8          |             a1 += -0x8d8;
    0x0000e020 move a0, fp                   |             a0 = fp;
    0x0000e024 jalr t9                       |             t9 ();
    0x0000e028 lw gp, 0x20(sp)               |             gp = *(var_20h);
                                             |             if (v0 != 0) {
    0x0000e02c bnez v0, 0xe1c0               |                 goto label_21;
                                             |             }
                                             |         }
    0x0000e030 lw t9, -0x7f40(gp)            |         t9 = sym.sshbuf_get_cstring;
    0x0000e034 lw a0, 0x30(sp)               |         a0 = *(var_30h);
    0x0000e038 move a2, zero                 |         a2 = 0;
    0x0000e03c addiu a1, sp, 0x2c            |         a1 = sp + 0x2c;
    0x0000e040 bal 0x27d60                   |         sym_sshbuf_get_cstring ();
    0x0000e044 lw gp, 0x20(sp)               |         gp = *(var_20h);
                                             |         if (v0 != 0) {
    0x0000e048 bnez v0, 0xe328               |             goto label_22;
                                             |         }
    0x0000e04c lw t9, -0x74e8(gp)            |         t9 = sym.imp.__printf_chk;
    0x0000e050 lw a2, 0x2c(sp)               |         a2 = *(var_2ch_2);
                                             |         /* esilref: ' &s
' */
    0x0000e054 addiu a1, s4, 0x5c80          |         a1 = s4 + 0x5c80;
    0x0000e058 addiu a0, zero, 1             |         a0 = 1;
    0x0000e05c jalr t9                       |         t9 ();
    0x0000e060 lw gp, 0x20(sp)               |         gp = *(var_20h);
    0x0000e064 lw t9, -0x75e4(gp)            |         t9 = sym.imp.free;
    0x0000e068 lw a0, 0x2c(sp)               |         a0 = *(var_2ch_2);
    0x0000e06c jalr t9                       |         t9 ();
    0x0000e070 lw gp, 0x20(sp)               |         gp = *(var_20h);
                                             | label_2:
    0x0000e074 lw t9, -0x75e4(gp)            |         t9 = sym.imp.free;
    0x0000e078 lw a0, 0x28(sp)               |         a0 = *(var_28h_4);
    0x0000e07c jalr t9                       |         t9 ();
    0x0000e080 lw gp, 0x20(sp)               |         gp = *(var_20h);
    0x0000e084 lw t9, -0x7f8c(gp)            |         t9 = sym.sshbuf_len;
    0x0000e088 lw a0, 0x30(sp)               |         a0 = *(var_30h);
    0x0000e08c bal 0x1bec4                   |         sym_sshbuf_len ();
    0x0000e090 lw gp, 0x20(sp)               |         gp = *(var_20h);
                                             |         if (v0 != 0) {
    0x0000e094 bnez v0, 0xe300               |             goto label_23;
                                             |         }
    0x0000e098 lw t9, -0x7f8c(gp)            |         t9 = sym.sshbuf_len;
    0x0000e09c move a0, s0                   |         a0 = s0;
    0x0000e0a0 bal 0x1bec4                   |         sym_sshbuf_len ();
    0x0000e0a4 lw gp, 0x20(sp)               |         gp = *(var_20h);
    0x0000e0a8 lw a0, 0x30(sp)               |         a0 = *(var_30h);
    0x0000e0ac lw t9, -0x7f9c(gp)            |         t9 = sym.sshbuf_free;
                                             |         if (v0 == 0) {
    0x0000e0b0 beqz v0, 0xe260               |             goto label_24;
                                             |         }
    0x0000e0b4 bal 0x1b7ac                   |         sym_sshbuf_free ();
    0x0000e0b8 nop                           |         
    0x0000e0bc lw gp, 0x20(sp)               |         gp = *(var_20h);
    0x0000e0c0 move a2, zero                 |         a2 = 0;
    0x0000e0c4 addiu a1, sp, 0x28            |         a1 = sp + 0x28;
    0x0000e0c8 lw t9, -0x7f40(gp)            |         t9 = sym.sshbuf_get_cstring;
    0x0000e0cc move a0, s0                   |         a0 = s0;
    0x0000e0d0 sw zero, 0x30(sp)             |         *(var_30h) = 0;
    0x0000e0d4 bal 0x27d60                   |         sym_sshbuf_get_cstring ();
    0x0000e0d8 lw gp, 0x20(sp)               |         gp = *(var_20h);
                                             |         if (v0 != 0) {
    0x0000e0dc bnez v0, 0xe2b8               |             goto label_25;
                                             |         }
    0x0000e0e0 lw t9, -0x7f3c(gp)            |         t9 = sym.sshbuf_froms;
    0x0000e0e4 addiu a1, sp, 0x30            |         a1 = sp + 0x30;
    0x0000e0e8 move a0, s0                   |         a0 = s0;
    0x0000e0ec bal 0x28a64                   |         sym_sshbuf_froms ();
    0x0000e0f0 lw gp, 0x20(sp)               |         gp = *(var_20h);
                                             |         if (v0 != 0) {
    0x0000e0f4 bnez v0, 0xe2b8               |             goto label_25;
                                             |         }
    0x0000e0f8 lw t9, -0x74e8(gp)            |         t9 = sym.imp.__printf_chk;
    0x0000e0fc lw a2, 0x28(sp)               |         a2 = *(var_28h_4);
    0x0000e100 move a1, s1                   |         a1 = s1;
    0x0000e104 addiu a0, zero, 1             |         a0 = 1;
    0x0000e108 jalr t9                       |         t9 ();
    0x0000e10c lw gp, 0x20(sp)               |         gp = *(var_20h);
    0x0000e110 lw fp, 0x28(sp)               |         fp = *(var_28h_4);
    0x0000e114 lw t9, -0x7944(gp)            |         t9 = sym.imp.strcmp;
    0x0000e118 bnez s2, 0xe000               |         
                                             |     }
    0x0000e11c lw a1, -0x7fdc(gp)            |     a1 = *(gp);
    0x0000e120 move a0, fp                   |     a0 = fp;
                                             |     /* str.permit_X11_forwarding */
    0x0000e124 addiu a1, a1, -0x960          |     a1 += -0x960;
    0x0000e128 jalr t9                       |     t9 ();
    0x0000e12c lw gp, 0x20(sp)               |     gp = *(var_20h);
                                             |     if (v0 != 0) {
    0x0000e130 beqz v0, 0xe238               |         
    0x0000e134 lw a1, -0x7fdc(gp)            |         a1 = *(gp);
    0x0000e138 lw t9, -0x7944(gp)            |         t9 = sym.imp.strcmp;
                                             |         /* str.permit_agent_forwarding */
    0x0000e13c addiu a1, a1, -0x948          |         a1 += -0x948;
    0x0000e140 move a0, fp                   |         a0 = fp;
    0x0000e144 jalr t9                       |         t9 ();
    0x0000e148 lw gp, 0x20(sp)               |         gp = *(var_20h);
                                             |         if (v0 == 0) {
    0x0000e14c beqz v0, 0xe238               |             goto label_26;
                                             |         }
    0x0000e150 lw a1, -0x7fdc(gp)            |         a1 = *(gp);
    0x0000e154 lw t9, -0x7944(gp)            |         t9 = sym.imp.strcmp;
                                             |         /* str.permit_port_forwarding */
    0x0000e158 addiu a1, a1, -0x930          |         a1 += -0x930;
    0x0000e15c move a0, fp                   |         a0 = fp;
    0x0000e160 jalr t9                       |         t9 ();
    0x0000e164 lw gp, 0x20(sp)               |         gp = *(var_20h);
                                             |         if (v0 == 0) {
    0x0000e168 beqz v0, 0xe238               |             goto label_26;
                                             |         }
    0x0000e16c lw a1, -0x7fdc(gp)            |         a1 = *(gp);
    0x0000e170 lw t9, -0x7944(gp)            |         t9 = sym.imp.strcmp;
                                             |         /* str.permit_pty */
    0x0000e174 addiu a1, a1, -0x918          |         a1 += -aav.0x00000918;
    0x0000e178 move a0, fp                   |         a0 = fp;
    0x0000e17c jalr t9                       |         t9 ();
    0x0000e180 lw gp, 0x20(sp)               |         gp = *(var_20h);
                                             |         if (v0 == 0) {
    0x0000e184 beqz v0, 0xe238               |             goto label_26;
                                             |         }
    0x0000e188 lw a1, -0x7fdc(gp)            |         a1 = *(gp);
    0x0000e18c lw t9, -0x7944(gp)            |         t9 = sym.imp.strcmp;
                                             |         /* str.permit_user_rc */
    0x0000e190 addiu a1, a1, -0x90c          |         a1 += -0x90c;
    0x0000e194 move a0, fp                   |         a0 = fp;
    0x0000e198 jalr t9                       |         t9 ();
    0x0000e19c lw gp, 0x20(sp)               |         gp = *(var_20h);
                                             |         if (v0 == 0) {
    0x0000e1a0 beqz v0, 0xe238               |             goto label_26;
                                             |         }
    0x0000e1a4 lw a1, -0x7fdc(gp)            |         a1 = *(gp);
    0x0000e1a8 lw t9, -0x7944(gp)            |         t9 = sym.imp.strcmp;
                                             |         /* str.no_touch_required */
    0x0000e1ac addiu a1, a1, -0x8fc          |         a1 += -0x8fc;
    0x0000e1b0 move a0, fp                   |         a0 = fp;
    0x0000e1b4 jalr t9                       |         t9 ();
    0x0000e1b8 lw gp, 0x20(sp)               |         gp = *(var_20h);
                                             |         if (v0 == 0) {
    0x0000e1bc beqz v0, 0xe238               |             goto label_26;
                                             |         }
                                             | label_21:
    0x0000e1c0 lw t9, -0x7f8c(gp)            |         t9 = sym.sshbuf_len;
    0x0000e1c4 lw a0, 0x30(sp)               |         a0 = *(var_30h);
    0x0000e1c8 bal 0x1bec4                   |         sym_sshbuf_len ();
    0x0000e1cc lw gp, 0x20(sp)               |         gp = *(var_20h);
                                             |         if (v0 == 0) {
    0x0000e1d0 beqz v0, 0xe24c               |             goto label_27;
                                             |         }
    0x0000e1d4 lw t9, -0x7f38(gp)            |         t9 = sym.sshbuf_dtob16;
    0x0000e1d8 lw a0, 0x30(sp)               |         a0 = *(var_30h);
    0x0000e1dc bal 0x290cc                   |         sym_sshbuf_dtob16 ();
    0x0000e1e0 lw gp, 0x20(sp)               |         gp = *(var_20h);
    0x0000e1e4 lw a0, 0x30(sp)               |         a0 = *(var_30h);
    0x0000e1e8 lw t9, -0x7f8c(gp)            |         t9 = sym.sshbuf_len;
    0x0000e1ec move fp, v0                   |         fp = v0;
    0x0000e1f0 bal 0x1bec4                   |         sym_sshbuf_len ();
    0x0000e1f4 lw gp, 0x20(sp)               |         gp = *(var_20h);
    0x0000e1f8 move a3, v0                   |         a3 = v0;
    0x0000e1fc move a2, fp                   |         a2 = fp;
    0x0000e200 lw t9, -0x74e8(gp)            |         t9 = sym.imp.__printf_chk;
                                             |         /* str._UNKNOWN_OPTION:__s__len__zu__n */
    0x0000e204 addiu a1, s6, -0x8b8          |         a1 = s6 + -0x8b8;
    0x0000e208 addiu a0, zero, 1             |         a0 = 1;
    0x0000e20c jalr t9                       |         t9 ();
    0x0000e210 lw gp, 0x20(sp)               |         gp = *(var_20h);
    0x0000e214 lw t9, -0x7fb0(gp)            |         t9 = sym.sshbuf_reset;
    0x0000e218 lw a0, 0x30(sp)               |         a0 = *(var_30h);
    0x0000e21c bal 0x1bb3c                   |         sym_sshbuf_reset ();
    0x0000e220 lw gp, 0x20(sp)               |         gp = *(var_20h);
    0x0000e224 lw t9, -0x75e4(gp)            |         t9 = sym.imp.free;
    0x0000e228 move a0, fp                   |         a0 = fp;
    0x0000e22c jalr t9                       |         t9 ();
    0x0000e230 lw gp, 0x20(sp)               |         gp = *(var_20h);
    0x0000e234 b 0xe074                      |         goto label_2;
                                             |     }
                                             | label_26:
    0x0000e238 lw t9, -0x750c(gp)            |     t9 = sym.imp.putchar;
    0x0000e23c addiu a0, zero, 0xa           |     a0 = 0xa;
    0x0000e240 jalr t9                       |     t9 ();
    0x0000e244 lw gp, 0x20(sp)               |     gp = *(var_20h);
    0x0000e248 b 0xe074                      |     goto label_2;
                                             | label_27:
    0x0000e24c lw t9, -0x786c(gp)            |     t9 = sym.imp.puts;
    0x0000e250 move a0, s5                   |     a0 = s5;
    0x0000e254 jalr t9                       |     t9 ();
    0x0000e258 lw gp, 0x20(sp)               |     gp = *(var_20h);
    0x0000e25c b 0xe074                      |     goto label_2;
                                             | label_24:
    0x0000e260 bal 0x1b7ac                   |     sym_sshbuf_free ();
    0x0000e264 nop                           |     
    0x0000e268 lw gp, 0x20(sp)               |     gp = *(var_20h);
    0x0000e26c lw t9, -0x7f9c(gp)            |     t9 = sym.sshbuf_free;
    0x0000e270 move a0, s0                   |     a0 = s0;
    0x0000e274 bal 0x1b7ac                   |     sym_sshbuf_free ();
    0x0000e278 lw v1, 0x34(sp)               |     v1 = *(var_34h);
    0x0000e27c lw v0, (s7)                   |     v0 = *(s7);
    0x0000e280 lw gp, 0x20(sp)               |     gp = *(var_20h);
                                             |     if (v1 != v0) {
    0x0000e284 bne v1, v0, 0xe388            |         goto label_28;
                                             |     }
    0x0000e288 lw ra, 0x5c(sp)               |     ra = *(var_5ch_2);
    0x0000e28c lw fp, 0x58(sp)               |     fp = *(var_58h_2);
    0x0000e290 lw s7, 0x54(sp)               |     s7 = *(var_54h_2);
    0x0000e294 lw s6, 0x50(sp)               |     s6 = *(var_50h_2);
    0x0000e298 lw s5, 0x4c(sp)               |     s5 = *(var_4ch_2);
    0x0000e29c lw s4, 0x48(sp)               |     s4 = *(var_48h_2);
    0x0000e2a0 lw s3, 0x44(sp)               |     s3 = *(var_44h_2);
    0x0000e2a4 lw s2, 0x40(sp)               |     s2 = *(var_40h_2);
    0x0000e2a8 lw s1, 0x3c(sp)               |     s1 = *(var_3ch_2);
    0x0000e2ac lw s0, 0x38(sp)               |     s0 = *(var_38h);
    0x0000e2b0 addiu sp, sp, 0x60            |     
    0x0000e2b4 jr ra                         |     return v0;
                                             | label_25:
    0x0000e2b8 lw t9, -0x7fd0(gp)            |     t9 = sym.ssh_err;
    0x0000e2bc move a0, v0                   |     a0 = v0;
    0x0000e2c0 bal 0x1b0f0                   |     sym_ssh_err ();
    0x0000e2c4 lw gp, 0x20(sp)               |     gp = *(var_20h);
    0x0000e2c8 sw v0, 0x14(sp)               |     *(var_14h_2) = v0;
    0x0000e2cc addiu v0, zero, 1             |     v0 = 1;
    0x0000e2d0 lw v1, -0x7fdc(gp)            |     v1 = *(gp);
    0x0000e2d4 lw t9, -0x7fbc(gp)            |     t9 = sym.sshfatal;
                                             |     /* str.parse_option */
    0x0000e2d8 addiu v1, v1, -0x984          |     v1 += -0x984;
    0x0000e2dc sw v1, 0x18(sp)               |     *(var_18h_2) = v1;
    0x0000e2e0 sw v0, 0x10(sp)               |     *(var_10h_2) = v0;
    0x0000e2e4 addiu a3, zero, 1             |     a3 = 1;
    0x0000e2e8 addiu a2, zero, 0x7f4         |     a2 = 0x7f4;
                                             |     do {
                                             | label_3:
    0x0000e2ec lw a1, -0x7fdc(gp)            |         a1 = *(gp);
    0x0000e2f0 lw a0, -0x7fdc(gp)            |         a0 = *(gp);
                                             |         /* str.show_options */
    0x0000e2f4 addiu a1, a1, 0x1ce0          |         a1 += 0x1ce0;
                                             |         /* str.ssh_keygen.c */
    0x0000e2f8 addiu a0, a0, -0xe90          |         a0 += -0xe90;
    0x0000e2fc jalr t9                       |         t9 ();
                                             | label_23:
    0x0000e300 lw v0, -0x7fdc(gp)            |         v0 = *(gp);
    0x0000e304 lw t9, -0x7fbc(gp)            |         t9 = sym.sshfatal;
                                             |         /* str.Option_corrupt:_extra_data_at_end */
    0x0000e308 addiu v0, v0, -0x880          |         v0 += -0x880;
    0x0000e30c sw v0, 0x18(sp)               |         *(var_18h_2) = v0;
    0x0000e310 addiu v0, zero, 1             |         v0 = 1;
    0x0000e314 sw zero, 0x14(sp)             |         *(var_14h_2) = 0;
    0x0000e318 sw v0, 0x10(sp)               |         *(var_10h_2) = v0;
    0x0000e31c move a3, zero                 |         a3 = 0;
    0x0000e320 addiu a2, zero, 0x80f         |         a2 = 0x80f;
    0x0000e324 b 0xe2ec                      |         
                                             |     } while (1);
                                             | label_22:
    0x0000e328 lw t9, -0x7fd0(gp)            |     t9 = sym.ssh_err;
    0x0000e32c move a0, v0                   |     a0 = v0;
    0x0000e330 bal 0x1b0f0                   |     sym_ssh_err ();
    0x0000e334 lw gp, 0x20(sp)               |     gp = *(var_20h);
    0x0000e338 sw v0, 0x14(sp)               |     *(var_14h_2) = v0;
    0x0000e33c addiu v0, zero, 1             |     v0 = 1;
    0x0000e340 lw v1, -0x7fdc(gp)            |     v1 = *(gp);
    0x0000e344 sw v0, 0x10(sp)               |     *(var_10h_2) = v0;
                                             |     /* str.parse_critical */
    0x0000e348 addiu v1, v1, -0x8c8          |     v1 += -0x8c8;
    0x0000e34c lw t9, -0x7fbc(gp)            |     t9 = sym.sshfatal;
    0x0000e350 sw v1, 0x18(sp)               |     *(var_18h_2) = v1;
    0x0000e354 addiu a3, zero, 1             |     a3 = 1;
    0x0000e358 addiu a2, zero, 0x802         |     a2 = 0x802;
    0x0000e35c b 0xe2ec                      |     goto label_3;
                                             | label_20:
    0x0000e360 lw v0, -0x7fdc(gp)            |     v0 = *(gp);
    0x0000e364 lw t9, -0x7fbc(gp)            |     t9 = sym.sshfatal;
                                             |     /* str.sshbuf_fromb_failed */
    0x0000e368 addiu v0, v0, -0x998          |     v0 += -0x998;
    0x0000e36c sw v0, 0x18(sp)               |     *(var_18h_2) = v0;
    0x0000e370 addiu v0, zero, 1             |     v0 = 1;
    0x0000e374 sw zero, 0x14(sp)             |     *(var_14h_2) = 0;
    0x0000e378 sw v0, 0x10(sp)               |     *(var_10h_2) = v0;
    0x0000e37c addiu a3, zero, 1             |     a3 = 1;
    0x0000e380 addiu a2, zero, 0x7ee         |     a2 = 0x7ee;
    0x0000e384 b 0xe2ec                      |     goto label_3;
                                             | label_28:
    0x0000e388 lw t9, -0x77e8(gp)            |     t9 = sym.imp.__stack_chk_fail;
    0x0000e38c jalr t9                       |     t9 ();
    0x0000e390 nop                           |     
    0x0000e394 lui gp, 9                     |     
    0x0000e398 addiu gp, gp, -0x22f4         |     
    0x0000e39c addu gp, gp, t9               |     gp += t9;
    0x0000e3a0 lw v0, -0x7fcc(gp)            |     v0 = *((gp - 8179));
    0x0000e3a4 addiu sp, sp, -0x48           |     
    0x0000e3a8 lw v0, 0x613c(v0)             |     v0 = *((v0 + 6223));
    0x0000e3ac sw gp, 0x28(sp)               |     *(var_28h_2) = gp;
    0x0000e3b0 sw s1, 0x38(sp)               |     *(var_38h_2) = s1;
    0x0000e3b4 sw s0, 0x34(sp)               |     *(var_34h_2) = s0;
    0x0000e3b8 sw ra, 0x44(sp)               |     *(var_44h_3) = ra;
    0x0000e3bc sw s3, 0x40(sp)               |     *(var_40h_3) = s3;
    0x0000e3c0 sw s2, 0x3c(sp)               |     *(var_3ch_3) = s2;
    0x0000e3c4 move s1, a0                   |     s1 = a0;
    0x0000e3c8 move s0, a1                   |     s0 = a1;
                                             |     if (v0 != 0) {
    0x0000e3cc bnez v0, 0xe43c               |         goto label_29;
                                             |     }
    0x0000e3d0 lw v0, -0x7fcc(gp)            |     v0 = *((gp - 8179));
    0x0000e3d4 addiu v1, zero, 3             |     v1 = 3;
    0x0000e3d8 move s3, zero                 |     s3 = 0;
    0x0000e3dc lw s2, 0x405c(v0)             |     s2 = *((v0 + 4119));
    0x0000e3e0 lw v0, 8(s1)                  |     v0 = *((s1 + 2));
    0x0000e3e4 lw a0, 0x1c(s0)               |     a0 = *((s0 + 7));
                                             |     if (v0 == v1) {
    0x0000e3e8 beq v0, v1, 0xe454            |         goto label_30;
                                             |     }
                                             |     do {
    0x0000e3ec lw ra, 0x44(sp)               |         ra = *(var_44h_3);
                                             |         if (a0 != 0) {
    0x0000e3f0 beqz a0, 0xe420               |             
    0x0000e3f4 addiu a0, zero, 1             |             a0 = 1;
                                             |             if (v0 == a0) {
    0x0000e3f8 beql v0, a0, 0xe5e8           |                 goto label_31;
                                             |             }
    0x0000e3fc sw v0, 0x10(s0)               |             *((s0 + 4)) = v0;
                                             | label_5:
    0x0000e400 lw a2, -0x7fdc(gp)            |             a2 = *(gp);
                                             | label_6:
    0x0000e404 lw t9, -0x74ac(gp)            |             t9 = sym.imp.__fprintf_chk
    0x0000e408 lw a3, 0x10(s1)               |             a3 = *((s1 + 4));
    0x0000e40c lw a0, 4(s0)                  |             a0 = *((s0 + 1));
                                             |             /* esilref: '&s
' */
    0x0000e410 addiu a2, a2, 0x40b0          |             a2 += 0x40b0;
    0x0000e414 addiu a1, zero, 1             |             a1 = 1;
    0x0000e418 jalr t9                       |             t9 ();
    0x0000e41c lw ra, 0x44(sp)               |             ra = *(var_44h_3);
                                             |         }
                                             | label_4:
    0x0000e420 lw s3, 0x40(sp)               |         s3 = *(var_40h_3);
    0x0000e424 lw s2, 0x3c(sp)               |         s2 = *(var_3ch_3);
    0x0000e428 lw s1, 0x38(sp)               |         s1 = *(var_38h_2);
    0x0000e42c lw s0, 0x34(sp)               |         s0 = *(var_34h_2);
    0x0000e430 move v0, zero                 |         v0 = 0;
    0x0000e434 addiu sp, sp, 0x48            |         
    0x0000e438 jr ra                         |         return v0;
                                             | label_29:
    0x0000e43c lw v0, 8(s1)                  |         v0 = *((s1 + 2));
    0x0000e440 addiu v1, zero, 3             |         v1 = 3;
    0x0000e444 addiu s2, zero, 1             |         s2 = 1;
    0x0000e448 addiu s3, zero, 3             |         s3 = 3;
    0x0000e44c lw a0, 0x1c(s0)               |         a0 = *((s0 + 7));
    0x0000e450 bne v0, v1, 0xe3ec            |         
                                             |     } while (v0 != v1);
                                             | label_30:
    0x0000e454 lw v0, 0x14(s1)               |     v0 = *((s1 + 5));
                                             |     if (a0 == 0) {
    0x0000e458 bnel a0, zero, 0xe5a4         |         goto label_32;
                                             |     }
    0x0000e45c lw v1, 0x18(s0)               |     v1 = *((s0 + 6));
    0x0000e460 lw ra, 0x44(sp)               |     ra = *(var_44h_3);
                                             |     if (v1 == 0) {
    0x0000e464 beqz v1, 0xe420               |         goto label_4;
                                             |     }
    0x0000e468 addiu v1, zero, 1             |     v1 = 1;
    0x0000e46c sw v1, 0xc(s0)                |     *((s0 + 3)) = v1;
    0x0000e470 lw v1, -0x7fcc(gp)            |     v1 = *((gp - 8179));
    0x0000e474 lw v1, 0x6144(v1)             |     v1 = *((v1 + 6225));
    0x0000e478 lw v0, 0x14(s0)               |     v0 = *((s0 + 5));
                                             |     if (v1 != 0) {
    0x0000e47c bnel v1, zero, 0xe4c4         |         
    0x0000e480 lw v1, 0x14(s1)               |         v1 = *((s1 + 5));
    0x0000e484 lw a2, (s0)                   |         a2 = *(s0);
    0x0000e488 lw a3, 4(s1)                  |         a3 = *((s1 + 1));
                                             |         if (v1 == v0) {
    0x0000e48c beq v1, v0, 0xe640            |             goto label_33;
                                             |         }
    0x0000e490 addiu v0, zero, 2             |         v0 = 2;
    0x0000e494 lw v0, -0x7fdc(gp)            |         v0 = *(gp);
                                             |         if (v1 == v0) {
    0x0000e498 beq v1, v0, 0xe67c            |             goto label_34;
                                             |         }
    0x0000e49c lw v0, -0x7fdc(gp)            |         v0 = *(gp);
    0x0000e4a0 addiu v0, v0, 0x5744          |         v0 += 0x5744;
                                             | label_8:
    0x0000e4a4 lw a1, -0x7fdc(gp)            |         a1 = *(gp);
    0x0000e4a8 lw t9, -0x74e8(gp)            |         t9 = sym.imp.__printf_chk;
    0x0000e4ac sw v0, 0x10(sp)               |         *(var_10h_3) = v0;
                                             |         /* str._Host__s_found:_line__lu__s_n */
    0x0000e4b0 addiu a1, a1, -0x834          |         a1 += -0x834;
    0x0000e4b4 addiu a0, zero, 1             |         a0 = 1;
    0x0000e4b8 jalr t9                       |         t9 ();
    0x0000e4bc lw gp, 0x28(sp)               |         gp = *(var_28h_2);
    0x0000e4c0 lw v0, 0x14(s0)               |         v0 = *((s0 + 5));
                                             |     }
    0x0000e4c4 lw v0, -0x7fcc(gp)            |     v0 = *((gp - 8179));
                                             |     if (v0 != 0) {
    0x0000e4c8 bnez v0, 0xe64c               |         goto label_35;
                                             |     }
    0x0000e4cc lw v0, 0x6140(v0)             |     v0 = *((v0 + 6224));
    0x0000e4d0 lw t9, -0x7f5c(gp)            |     t9 = sym.sshkey_fingerprint;
                                             |     if (v0 == 0) {
    0x0000e4d4 beqz v0, 0xe400               |         goto label_5;
                                             |     }
    0x0000e4d8 lw a0, 0x24(s1)               |     a0 = *((s1 + 9));
    0x0000e4dc move a2, s3                   |     a2 = s3;
    0x0000e4e0 move a1, s2                   |     a1 = s2;
    0x0000e4e4 bal 0x1eef8                   |     sym_sshkey_fingerprint ();
    0x0000e4e8 lw gp, 0x28(sp)               |     gp = *(var_28h_2);
    0x0000e4ec lw a0, 0x24(s1)               |     a0 = *((s1 + 9));
    0x0000e4f0 addiu a2, zero, 4             |     a2 = 4;
    0x0000e4f4 lw v1, -0x7fcc(gp)            |     v1 = *((gp - 8179));
    0x0000e4f8 lw t9, -0x7f5c(gp)            |     t9 = sym.sshkey_fingerprint;
    0x0000e4fc move s2, v0                   |     s2 = v0;
    0x0000e500 lw a1, 0x405c(v1)             |     a1 = *((v1 + 4119));
    0x0000e504 bal 0x1eef8                   |     sym_sshkey_fingerprint ();
    0x0000e508 move s3, v0                   |     s3 = v0;
    0x0000e50c lw gp, 0x28(sp)               |     gp = *(var_28h_2);
                                             |     if (s2 == 0) {
    0x0000e510 beqz s2, 0xe684               |         goto label_36;
                                             |     }
    0x0000e514 lw t9, -0x7f50(gp)            |     t9 = sym.sshkey_type;
                                             |     if (v0 == 0) {
    0x0000e518 beqz v0, 0xe684               |         goto label_36;
                                             |     }
    0x0000e51c lw a0, 0x24(s1)               |     a0 = *((s1 + 9));
    0x0000e520 lw s0, (s0)                   |     s0 = *(s0);
    0x0000e524 bal 0x1d55c                   |     sym_sshkey_type ();
    0x0000e528 lw t0, 0x28(s1)               |     t0 = *((s1 + 10));
    0x0000e52c lb v1, (t0)                   |     v1 = *(t0);
    0x0000e530 lw gp, 0x28(sp)               |     gp = *(var_28h_2);
                                             |     if (v1 != 0) {
    0x0000e534 bnez v1, 0xe634               |         goto label_37;
                                             |     }
    0x0000e538 lw v1, -0x7fdc(gp)            |     v1 = *(gp);
    0x0000e53c addiu v1, v1, 0x5744          |     v1 += 0x5744;
                                             | label_7:
    0x0000e540 lw a0, -0x7fdc(gp)            |     a0 = *(gp);
    0x0000e544 lw t9, -0x7f34(gp)            |     t9 = sym.mprintf;
    0x0000e548 move a3, s2                   |     a3 = s2;
    0x0000e54c move a2, v0                   |     a2 = v0;
    0x0000e550 move a1, s0                   |     a1 = s0;
                                             |     /* str._s__s__s_s_s_n */
    0x0000e554 addiu a0, a0, -0x814          |     a0 += -0x814;
    0x0000e558 sw t0, 0x14(sp)               |     *(var_14h_3) = t0;
    0x0000e55c sw v1, 0x10(sp)               |     *(var_10h_3) = v1;
    0x0000e560 jalr t9                       |     t9 ();
    0x0000e564 lw gp, 0x28(sp)               |     gp = *(var_28h_2);
    0x0000e568 lw t9, -0x7f30(gp)            |     t9 = sym.log_level_get;
    0x0000e56c jalr t9                       |     t9 ();
    0x0000e570 nop                           |     
    0x0000e574 slti v0, v0, 4                |     v0 = (v0 < 4) ? 1 : 0;
    0x0000e578 lw gp, 0x28(sp)               |     gp = *(var_28h_2);
                                             |     if (v0 == 0) {
    0x0000e57c beqz v0, 0xe668               |         goto label_38;
                                             |     }
                                             | label_9:
    0x0000e580 lw t9, -0x75e4(gp)            |     t9 = sym.imp.free;
    0x0000e584 move a0, s3                   |     a0 = s3;
    0x0000e588 jalr t9                       |     t9 ();
    0x0000e58c lw gp, 0x28(sp)               |     gp = *(var_28h_2);
    0x0000e590 lw t9, -0x75e4(gp)            |     t9 = sym.imp.free;
    0x0000e594 move a0, s2                   |     a0 = s2;
    0x0000e598 jalr t9                       |     t9 ();
    0x0000e59c lw ra, 0x44(sp)               |     ra = *(var_44h_3);
    0x0000e5a0 b 0xe420                      |     goto label_4;
                                             | label_32:
    0x0000e5a4 addiu v1, zero, 1             |     v1 = 1;
    0x0000e5a8 lw a2, -0x7fdc(gp)            |     a2 = *(gp);
                                             |     if (v0 != v1) {
    0x0000e5ac bne v0, v1, 0xe404            |         goto label_6;
                                             |     }
    0x0000e5b0 sw v0, 0xc(s0)                |     *((s0 + 3)) = v0;
    0x0000e5b4 lw v0, -0x7fcc(gp)            |     v0 = *((gp - 8179));
    0x0000e5b8 lw v0, 0x6144(v0)             |     v0 = *((v0 + 6225));
    0x0000e5bc lw ra, 0x44(sp)               |     ra = *(var_44h_3);
                                             |     if (v0 == 0) {
    0x0000e5c0 bnel v0, zero, 0xe420         |         goto label_4;
                                             |     }
    0x0000e5c4 lw a1, -0x7fdc(gp)            |     a1 = *(gp);
    0x0000e5c8 lw t9, -0x74e8(gp)            |     t9 = sym.imp.__printf_chk;
    0x0000e5cc lw a3, 4(s1)                  |     a3 = *((s1 + 1));
    0x0000e5d0 lw a2, (s0)                   |     a2 = *(s0);
                                             |     /* str._Host__s_found:_line__lu_n */
    0x0000e5d4 addiu a1, a1, -0x850          |     a1 += -0x850;
    0x0000e5d8 addiu a0, zero, 1             |     a0 = 1;
    0x0000e5dc jalr t9                       |     t9 ();
    0x0000e5e0 lw ra, 0x44(sp)               |     ra = *(var_44h_3);
    0x0000e5e4 b 0xe420                      |     goto label_4;
                                             | label_31:
    0x0000e5e8 lw v0, (s1)                   |     v0 = *(s1);
    0x0000e5ec lw a0, 4(s1)                  |     a0 = *((s1 + 1));
    0x0000e5f0 sw v0, 0x1c(sp)               |     *(var_1ch) = v0;
    0x0000e5f4 lw v0, -0x7fdc(gp)            |     v0 = *(gp);
    0x0000e5f8 lw a1, -0x7fdc(gp)            |     a1 = *(gp);
    0x0000e5fc sw a0, 0x20(sp)               |     *(var_20h_2) = a0;
    0x0000e600 lw a0, -0x7fdc(gp)            |     a0 = *(gp);
    0x0000e604 lw t9, -0x7fac(gp)            |     t9 = sym.sshlog;
                                             |     /* str._s:_lu:_invalid_line */
    0x0000e608 addiu v0, v0, -0xdd8          |     v0 += -0xdd8;
    0x0000e60c sw v0, 0x18(sp)               |     *(var_18h_3) = v0;
    0x0000e610 sw zero, 0x14(sp)             |     *(var_14h_3) = 0;
    0x0000e614 sw v1, 0x10(sp)               |     *(var_10h_3) = v1;
    0x0000e618 move a3, zero                 |     a3 = 0;
    0x0000e61c addiu a2, zero, 0x503         |     a2 = 0x503;
                                             |     /* str.known_hosts_find_delete */
    0x0000e620 addiu a1, a1, 0x1ca4          |     a1 += 0x1ca4;
                                             |     /* str.ssh_keygen.c */
    0x0000e624 addiu a0, a0, -0xe90          |     a0 += -0xe90;
    0x0000e628 jalr t9                       |     t9 ();
    0x0000e62c lw gp, 0x28(sp)               |     gp = *(var_28h_2);
    0x0000e630 b 0xe400                      |     goto label_5;
                                             | label_37:
    0x0000e634 lw v1, -0x7fdc(gp)            |     v1 = *(gp);
    0x0000e638 addiu v1, v1, 0x190           |     v1 += aav.0x00000190;
    0x0000e63c b 0xe540                      |     goto label_7;
                                             | label_33:
    0x0000e640 lw v0, -0x7fdc(gp)            |     v0 = *(gp);
                                             |     /* esilref: 'CA' */
    0x0000e644 addiu v0, v0, -0x85c          |     v0 += -0x85c;
    0x0000e648 b 0xe4a4                      |     goto label_8;
                                             | label_35:
    0x0000e64c lw t9, -0x7f2c(gp)            |     t9 = *(gp);
    0x0000e650 move a1, s0                   |     a1 = s0;
    0x0000e654 addiu t9, t9, -0x3564         |     t9 += -0x3564;
    0x0000e658 move a0, s1                   |     a0 = s1;
    0x0000e65c bal 0xca9c                    |     fcn_0000ca9c ();
    0x0000e660 lw ra, 0x44(sp)               |     ra = *(var_44h_3);
    0x0000e664 b 0xe420                      |     goto label_4;
                                             | label_38:
    0x0000e668 lw t9, -0x786c(gp)            |     t9 = sym.imp.puts;
    0x0000e66c move a0, s3                   |     a0 = s3;
    0x0000e670 jalr t9                       |     t9 ();
    0x0000e674 lw gp, 0x28(sp)               |     gp = *(var_28h_2);
    0x0000e678 b 0xe580                      |     goto label_9;
                                             |     /* str.REVOKED */
                                             | label_34:
    0x0000e67c addiu v0, v0, -0x858          |     v0 += -0x858;
    0x0000e680 b 0xe4a4                      |     goto label_8;
                                             | label_36:
    0x0000e684 lw v0, -0x7fdc(gp)            |     v0 = *(gp);
    0x0000e688 lw a1, -0x7fdc(gp)            |     a1 = *(gp);
                                             |     /* str.sshkey_fingerprint_failed */
    0x0000e68c addiu v0, v0, -0xab0          |     v0 += -0xab0;
    0x0000e690 lw a0, -0x7fdc(gp)            |     a0 = *(gp);
    0x0000e694 sw v0, 0x18(sp)               |     *(var_18h_3) = v0;
    0x0000e698 lw t9, -0x7fbc(gp)            |     t9 = sym.sshfatal;
    0x0000e69c addiu v0, zero, 1             |     v0 = 1;
    0x0000e6a0 sw zero, 0x14(sp)             |     *(var_14h_3) = 0;
    0x0000e6a4 sw v0, 0x10(sp)               |     *(var_10h_3) = v0;
    0x0000e6a8 addiu a3, zero, 1             |     a3 = 1;
    0x0000e6ac addiu a2, zero, 0x4f2         |     a2 = 0x4f2;
                                             |     /* str.known_hosts_find_delete */
    0x0000e6b0 addiu a1, a1, 0x1ca4          |     a1 += 0x1ca4;
                                             |     /* str.ssh_keygen.c */
    0x0000e6b4 addiu a0, a0, -0xe90          |     a0 += -0xe90;
    0x0000e6b8 jalr t9                       |     return t9 ();
                                             | }
    ; assembly                               | /* r2dec pseudo code output */
                                             | /* /logs/firmware/unblob_extracted/firmware_extract/4325012-58052244.squashfs_v4_le_extract/usr/bin/ssh-keygen @ 0xea04 */
                                             | #include <stdint.h>
                                             |  
    ; (fcn) fcn.0000ea04 ()                  | void fcn_0000ea04 () {
    0x0000ea04 lui gp, 9                     |     
    0x0000ea08 addiu gp, gp, -0x2964         |     
    0x0000ea0c addu gp, gp, t9               |     gp += t9;
    0x0000ea10 addiu sp, sp, -0x78           |     
    0x0000ea14 sw s5, 0x64(sp)               |     *(var_64h) = s5;
    0x0000ea18 sw s2, 0x58(sp)               |     *(var_58h) = s2;
    0x0000ea1c lw s5, -0x7fcc(gp)            |     s5 = *((gp - 8179));
    0x0000ea20 lw s2, -0x773c(gp)            |     s2 = *((gp - 7631));
    0x0000ea24 sw fp, 0x70(sp)               |     *(var_70h) = fp;
    0x0000ea28 sw s7, 0x6c(sp)               |     *(var_6ch) = s7;
    0x0000ea2c sw s6, 0x68(sp)               |     *(var_68h) = s6;
    0x0000ea30 sw s4, 0x60(sp)               |     *(var_60h) = s4;
    0x0000ea34 sw s3, 0x5c(sp)               |     *(var_5ch) = s3;
    0x0000ea38 sw s0, 0x50(sp)               |     *(var_50h) = s0;
    0x0000ea3c sw gp, 0x28(sp)               |     *(var_28h) = gp;
    0x0000ea40 sw ra, 0x74(sp)               |     *(var_74h) = ra;
    0x0000ea44 sw s1, 0x54(sp)               |     *(var_54h) = s1;
    0x0000ea48 lw v1, (s2)                   |     v1 = *(s2);
    0x0000ea4c lw v0, 0x6144(s5)             |     v0 = *((s5 + 6225));
    0x0000ea50 move s4, a0                   |     s4 = a0;
    0x0000ea54 move s6, a1                   |     s6 = a1;
    0x0000ea58 move s3, a2                   |     s3 = a2;
    0x0000ea5c move s7, a3                   |     s7 = a3;
    0x0000ea60 lw s0, 0x88(sp)               |     s0 = *(var_10h);
    0x0000ea64 lw fp, 0x8c(sp)               |     fp = *(var_8ch);
    0x0000ea68 sw v1, 0x4c(sp)               |     *(var_4ch) = v1;
    0x0000ea6c sw zero, 0x3c(sp)             |     *(var_3ch) = 0;
    0x0000ea70 sw zero, 0x40(sp)             |     *(var_40h) = 0;
    0x0000ea74 sw zero, 0x44(sp)             |     *(var_44h) = 0;
    0x0000ea78 sw zero, 0x48(sp)             |     *(var_48h) = 0;
                                             |     if (v0 == 0) {
    0x0000ea7c bnez v0, 0xeaac               |         
    0x0000ea80 lw v0, -0x76c4(gp)            |         v0 = *((gp - 7601));
    0x0000ea84 lw a0, (v0)                   |         a0 = *(v0);
                                             |         if (a2 != 0) {
    0x0000ea88 bnez a2, 0xecc8               |             goto label_8;
                                             |         }
    0x0000ea8c move a3, a0                   |         a3 = a0;
    0x0000ea90 lw a0, -0x7fdc(gp)            |         a0 = *(gp);
    0x0000ea94 lw t9, -0x77a4(gp)            |         t9 = sym.imp.fwrite;
    0x0000ea98 addiu a2, zero, 0x1f          |         a2 = 0x1f;
    0x0000ea9c addiu a1, zero, 1             |         a1 = 1;
                                             |         /* str.Signing_data_on_standard_input_n */
    0x0000eaa0 addiu a0, a0, -0x7c0          |         a0 += -0x7c0;
    0x0000eaa4 jalr t9                       |         t9 ();
    0x0000eaa8 lw gp, 0x28(sp)               |         gp = *(var_28h);
                                             |     }
    0x0000eaac lw t9, -0x7f24(gp)            |     t9 = sym.sshkey_is_sk;
    0x0000eab0 beqz s0, 0xec14               |     
                                             |     while (v0 == 0) {
                                             | label_2:
    0x0000eab4 move s1, zero                 |         s1 = 0;
                                             | label_1:
    0x0000eab8 lw v0, -0x7fcc(gp)            |         v0 = *((gp - 8179));
                                             | label_0:
    0x0000eabc lw t9, -0x7f20(gp)            |         t9 = sym.sshsig_sign_fd;
    0x0000eac0 sw s0, 0x1c(sp)               |         *(var_1ch) = s0;
    0x0000eac4 lw a2, 0x5104(v0)             |         a2 = *((v0 + 5185));
    0x0000eac8 addiu v0, sp, 0x3c            |         v0 = sp + 0x3c;
    0x0000eacc sw fp, 0x20(sp)               |         *(var_20h) = fp;
    0x0000ead0 sw v0, 0x18(sp)               |         *(var_18h_2) = v0;
    0x0000ead4 sw s7, 0x14(sp)               |         *(var_14h) = s7;
    0x0000ead8 sw s3, 0x10(sp)               |         *(var_10h_2) = s3;
    0x0000eadc move a3, s1                   |         a3 = s1;
    0x0000eae0 move a1, zero                 |         a1 = 0;
    0x0000eae4 move a0, s4                   |         a0 = s4;
    0x0000eae8 bal 0x18134                   |         sym_sshsig_sign_fd ();
    0x0000eaec move s0, v0                   |         s0 = v0;
    0x0000eaf0 lw gp, 0x28(sp)               |         gp = *(var_28h);
                                             |         if (v0 != 0) {
    0x0000eaf4 bnez v0, 0xed48               |             goto label_9;
                                             |         }
    0x0000eaf8 lw t9, -0x7f1c(gp)            |         t9 = sym.sshsig_armor;
    0x0000eafc lw a0, 0x3c(sp)               |         a0 = *(var_3ch);
    0x0000eb00 addiu a1, sp, 0x40            |         a1 = sp + 0x40;
    0x0000eb04 bal 0x17800                   |         sym_sshsig_armor ();
    0x0000eb08 move s4, v0                   |         s4 = v0;
    0x0000eb0c lw gp, 0x28(sp)               |         gp = *(var_28h);
                                             |         if (v0 != 0) {
    0x0000eb10 bnez v0, 0xecf0               |             goto label_10;
                                             |         }
    0x0000eb14 lw t9, -0x7f18(gp)            |         t9 = sym.sshbuf_dup_string;
    0x0000eb18 lw a0, 0x40(sp)               |         a0 = *(var_40h);
    0x0000eb1c bal 0x297b0                   |         sym_sshbuf_dup_string ();
    0x0000eb20 move s4, v0                   |         s4 = v0;
    0x0000eb24 lw gp, 0x28(sp)               |         gp = *(var_28h);
                                             |         if (v0 == 0) {
    0x0000eb28 beqz v0, 0xef50               |             goto label_11;
                                             |         }
    0x0000eb2c lw a1, -0x7fdc(gp)            |         a1 = *(gp);
                                             |         if (s3 != 0) {
    0x0000eb30 bnez s3, 0xeda0               |             goto label_12;
                                             |         }
    0x0000eb34 lw s3, -0x7858(gp)            |         s3 = *((gp - 7702));
    0x0000eb38 lw t9, -0x7410(gp)            |         t9 = sym.imp.fputs;
    0x0000eb3c move a0, v0                   |         a0 = v0;
    0x0000eb40 lw a1, (s3)                   |         a1 = *(s3);
    0x0000eb44 jalr t9                       |         t9 ();
    0x0000eb48 lw gp, 0x28(sp)               |         gp = *(var_28h);
    0x0000eb4c lw t9, -0x763c(gp)            |         t9 = sym.imp.fflush;
    0x0000eb50 lw a0, (s3)                   |         a0 = *(s3);
    0x0000eb54 jalr t9                       |         t9 ();
    0x0000eb58 lw gp, 0x28(sp)               |         gp = *(var_28h);
                                             | label_4:
    0x0000eb5c lw t9, -0x75e4(gp)            |         t9 = sym.imp.free;
    0x0000eb60 lw a0, 0x44(sp)               |         a0 = *(var_44h);
    0x0000eb64 jalr t9                       |         t9 ();
    0x0000eb68 lw gp, 0x28(sp)               |         gp = *(var_28h);
    0x0000eb6c lw t9, -0x75e4(gp)            |         t9 = sym.imp.free;
    0x0000eb70 lw a0, 0x48(sp)               |         a0 = *(var_48h);
    0x0000eb74 jalr t9                       |         t9 ();
    0x0000eb78 lw gp, 0x28(sp)               |         gp = *(var_28h);
    0x0000eb7c lw t9, -0x75e4(gp)            |         t9 = sym.imp.free;
    0x0000eb80 move a0, s4                   |         a0 = s4;
    0x0000eb84 jalr t9                       |         t9 ();
    0x0000eb88 lw gp, 0x28(sp)               |         gp = *(var_28h);
                                             |         if (s1 != 0) {
    0x0000eb8c beqz s1, 0xebb4               |             
    0x0000eb90 lw t9, -0x76e4(gp)            |             t9 = sym.imp.strlen;
    0x0000eb94 move a0, s1                   |             a0 = s1;
    0x0000eb98 jalr t9                       |             t9 ();
    0x0000eb9c lw gp, 0x28(sp)               |             gp = *(var_28h);
    0x0000eba0 move a1, v0                   |             a1 = v0;
    0x0000eba4 lw t9, -0x7fc4(gp)            |             t9 = sym.freezero;
    0x0000eba8 move a0, s1                   |             a0 = s1;
    0x0000ebac jalr t9                       |             t9 ();
    0x0000ebb0 lw gp, 0x28(sp)               |             gp = *(var_28h);
                                             |         }
    0x0000ebb4 lw t9, -0x7f9c(gp)            |         t9 = sym.sshbuf_free;
    0x0000ebb8 lw a0, 0x40(sp)               |         a0 = *(var_40h);
    0x0000ebbc bal 0x1b7ac                   |         sym_sshbuf_free ();
    0x0000ebc0 lw gp, 0x28(sp)               |         gp = *(var_28h);
    0x0000ebc4 lw t9, -0x7f9c(gp)            |         t9 = sym.sshbuf_free;
    0x0000ebc8 lw a0, 0x3c(sp)               |         a0 = *(var_3ch);
    0x0000ebcc bal 0x1b7ac                   |         sym_sshbuf_free ();
    0x0000ebd0 lw gp, 0x28(sp)               |         gp = *(var_28h);
                                             | label_5:
    0x0000ebd4 lw a0, 0x4c(sp)               |         a0 = *(var_4ch);
    0x0000ebd8 lw v1, (s2)                   |         v1 = *(s2);
    0x0000ebdc move v0, s0                   |         v0 = s0;
                                             |         if (a0 != v1) {
    0x0000ebe0 bne a0, v1, 0xf088            |             goto label_13;
                                             |         }
    0x0000ebe4 lw ra, 0x74(sp)               |         ra = *(var_74h);
    0x0000ebe8 lw fp, 0x70(sp)               |         fp = *(var_70h);
    0x0000ebec lw s7, 0x6c(sp)               |         s7 = *(var_6ch);
    0x0000ebf0 lw s6, 0x68(sp)               |         s6 = *(var_68h);
    0x0000ebf4 lw s5, 0x64(sp)               |         s5 = *(var_64h);
    0x0000ebf8 lw s4, 0x60(sp)               |         s4 = *(var_60h);
    0x0000ebfc lw s3, 0x5c(sp)               |         s3 = *(var_5ch);
    0x0000ec00 lw s2, 0x58(sp)               |         s2 = *(var_58h);
    0x0000ec04 lw s1, 0x54(sp)               |         s1 = *(var_54h);
    0x0000ec08 lw s0, 0x50(sp)               |         s0 = *(var_50h);
    0x0000ec0c addiu sp, sp, 0x78            |         
    0x0000ec10 jr ra                         |         return v0;
                                             | label_3:
    0x0000ec14 move a0, s4                   |         a0 = s4;
    0x0000ec18 bal 0x1ddb0                   |         sym_sshkey_is_sk ();
    0x0000ec1c lw gp, 0x28(sp)               |         gp = *(var_28h);
    0x0000ec20 beqz v0, 0xeab4               |         
                                             |     }
    0x0000ec24 lbu v0, 0x38(s4)              |     v0 = *((s4 + 56));
    0x0000ec28 andi v1, v0, 4                |     v1 = v0 & 4;
    0x0000ec2c move s1, zero                 |     s1 = 0;
                                             |     if (v1 != 0) {
    0x0000ec30 bnez v1, 0xef00               |         goto label_14;
                                             |     }
                                             | label_6:
    0x0000ec34 andi v0, v0, 1                |     v0 &= 1;
    0x0000ec38 lw v0, -0x7fcc(gp)            |     v0 = *((gp - 8179));
                                             |     if (v0 == 0) {
    0x0000ec3c beqz v0, 0xeabc               |         goto label_0;
                                             |     }
    0x0000ec40 lw v0, -0x7fcc(gp)            |     v0 = *((gp - 8179));
    0x0000ec44 lw t9, -0x7f5c(gp)            |     t9 = sym.sshkey_fingerprint;
    0x0000ec48 move a2, zero                 |     a2 = 0;
    0x0000ec4c lw a1, 0x405c(v0)             |     a1 = *((v0 + 4119));
    0x0000ec50 move a0, s4                   |     a0 = s4;
    0x0000ec54 bal 0x1eef8                   |     sym_sshkey_fingerprint ();
    0x0000ec58 lw gp, 0x28(sp)               |     gp = *(var_28h);
                                             |     if (v0 == 0) {
    0x0000ec5c beqz v0, 0xf094               |         goto label_15;
                                             |     }
    0x0000ec60 sw v0, 0x34(sp)               |     *(var_34h) = v0;
    0x0000ec64 lw v0, -0x76c4(gp)            |     v0 = *((gp - 7601));
    0x0000ec68 lw t9, -0x7f50(gp)            |     t9 = sym.sshkey_type;
    0x0000ec6c move a0, s4                   |     a0 = s4;
    0x0000ec70 lw t0, (v0)                   |     t0 = *(v0);
    0x0000ec74 sw t0, 0x30(sp)               |     *(var_30h) = t0;
    0x0000ec78 bal 0x1d55c                   |     sym_sshkey_type ();
    0x0000ec7c lw gp, 0x28(sp)               |     gp = *(var_28h);
    0x0000ec80 lw t0, 0x30(sp)               |     t0 = *(var_30h);
    0x0000ec84 lw v1, 0x34(sp)               |     v1 = *(var_34h);
    0x0000ec88 lw a2, -0x7fdc(gp)            |     a2 = *(gp);
    0x0000ec8c lw t9, -0x74ac(gp)            |     t9 = sym.imp.__fprintf_chk
    0x0000ec90 move a0, t0                   |     a0 = t0;
    0x0000ec94 move a3, v0                   |     a3 = v0;
                                             |     /* str.Confirm_user_presence_for_key__s__s_n */
    0x0000ec98 addiu a2, a2, -0x760          |     a2 += -0x760;
    0x0000ec9c addiu a1, zero, 1             |     a1 = 1;
    0x0000eca0 sw v1, 0x10(sp)               |     *(var_10h_2) = v1;
    0x0000eca4 sw v1, 0x30(sp)               |     *(var_30h) = v1;
    0x0000eca8 jalr t9                       |     t9 ();
    0x0000ecac lw gp, 0x28(sp)               |     gp = *(var_28h);
    0x0000ecb0 lw v1, 0x30(sp)               |     v1 = *(var_30h);
    0x0000ecb4 lw t9, -0x75e4(gp)            |     t9 = sym.imp.free;
    0x0000ecb8 move a0, v1                   |     a0 = v1;
    0x0000ecbc jalr t9                       |     t9 ();
    0x0000ecc0 lw gp, 0x28(sp)               |     gp = *(var_28h);
    0x0000ecc4 b 0xeab8                      |     goto label_1;
                                             | label_8:
    0x0000ecc8 lw a2, -0x7fdc(gp)            |     a2 = *(gp);
    0x0000eccc lw t9, -0x74ac(gp)            |     t9 = sym.imp.__fprintf_chk
    0x0000ecd0 move a3, a1                   |     a3 = a1;
                                             |     /* str.Signing_file__s_n */
    0x0000ecd4 addiu a2, a2, -0x7a0          |     a2 += -0x7a0;
    0x0000ecd8 addiu a1, zero, 1             |     a1 = 1;
    0x0000ecdc jalr t9                       |     t9 ();
    0x0000ece0 lw gp, 0x28(sp)               |     gp = *(var_28h);
                                             |     if (s0 != 0) {
    0x0000ece4 bnez s0, 0xeab4               |         goto label_2;
                                             |     }
    0x0000ece8 lw t9, -0x7f24(gp)            |     t9 = sym.sshkey_is_sk;
    0x0000ecec b 0xec14                      |     goto label_3;
                                             | label_10:
    0x0000ecf0 lw t9, -0x7fd0(gp)            |     t9 = sym.ssh_err;
    0x0000ecf4 move a0, v0                   |     a0 = v0;
    0x0000ecf8 bal 0x1b0f0                   |     sym_ssh_err ();
    0x0000ecfc lw gp, 0x28(sp)               |     gp = *(var_28h);
    0x0000ed00 sw v0, 0x14(sp)               |     *(var_14h) = v0;
    0x0000ed04 addiu v0, zero, 2             |     v0 = 2;
    0x0000ed08 lw v1, -0x7fdc(gp)            |     v1 = *(gp);
    0x0000ed0c lw a1, -0x7fdc(gp)            |     a1 = *(gp);
    0x0000ed10 lw a0, -0x7fdc(gp)            |     a0 = *(gp);
    0x0000ed14 lw t9, -0x7fac(gp)            |     t9 = sym.sshlog;
                                             |     /* esilref: 'sshsig_armor' */
    0x0000ed18 addiu v1, v1, -0xac0          |     v1 += -0xac0;
    0x0000ed1c sw v1, 0x18(sp)               |     *(var_18h_2) = v1;
    0x0000ed20 sw v0, 0x10(sp)               |     *(var_10h_2) = v0;
    0x0000ed24 addiu a3, zero, 1             |     a3 = 1;
    0x0000ed28 addiu a2, zero, 0x9f6         |     a2 = 0x9f6;
                                             |     /* str.sign_one */
    0x0000ed2c addiu a1, a1, 0x1da8          |     a1 += 0x1da8;
                                             |     /* str.ssh_keygen.c */
    0x0000ed30 addiu a0, a0, -0xe90          |     a0 += -0xe90;
    0x0000ed34 jalr t9                       |     t9 ();
    0x0000ed38 move s0, s4                   |     s0 = s4;
    0x0000ed3c lw gp, 0x28(sp)               |     gp = *(var_28h);
    0x0000ed40 move s4, zero                 |     s4 = 0;
    0x0000ed44 b 0xeb5c                      |     goto label_4;
                                             | label_9:
    0x0000ed48 lw t9, -0x7fd0(gp)            |     t9 = sym.ssh_err;
    0x0000ed4c move a0, v0                   |     a0 = v0;
    0x0000ed50 bal 0x1b0f0                   |     sym_ssh_err ();
    0x0000ed54 lw gp, 0x28(sp)               |     gp = *(var_28h);
    0x0000ed58 sw v0, 0x14(sp)               |     *(var_14h) = v0;
    0x0000ed5c addiu v0, zero, 2             |     v0 = 2;
    0x0000ed60 lw v1, -0x7fdc(gp)            |     v1 = *(gp);
    0x0000ed64 lw a1, -0x7fdc(gp)            |     a1 = *(gp);
    0x0000ed68 lw a0, -0x7fdc(gp)            |     a0 = *(gp);
    0x0000ed6c lw t9, -0x7fac(gp)            |     t9 = sym.sshlog;
                                             |     /* str.Signing__s_failed */
    0x0000ed70 addiu v1, v1, -0x738          |     v1 += -0x738;
    0x0000ed74 sw s6, 0x1c(sp)               |     *(var_1ch) = s6;
    0x0000ed78 sw v1, 0x18(sp)               |     *(var_18h_2) = v1;
    0x0000ed7c sw v0, 0x10(sp)               |     *(var_10h_2) = v0;
    0x0000ed80 move a3, zero                 |     a3 = 0;
    0x0000ed84 addiu a2, zero, 0x9f2         |     a2 = 0x9f2;
                                             |     /* str.sign_one */
    0x0000ed88 addiu a1, a1, 0x1da8          |     a1 += 0x1da8;
                                             |     /* str.ssh_keygen.c */
    0x0000ed8c addiu a0, a0, -0xe90          |     a0 += -0xe90;
    0x0000ed90 jalr t9                       |     t9 ();
    0x0000ed94 move s4, zero                 |     s4 = 0;
    0x0000ed98 lw gp, 0x28(sp)               |     gp = *(var_28h);
    0x0000ed9c b 0xeb5c                      |     goto label_4;
                                             | label_12:
    0x0000eda0 lw t9, -0x7f14(gp)            |     t9 = sym.xasprintf;
    0x0000eda4 move a2, s6                   |     a2 = s6;
                                             |     /* str._s.sig */
    0x0000eda8 addiu a1, a1, -0x714          |     a1 += -0x714;
    0x0000edac addiu a0, sp, 0x44            |     a0 = sp + 0x44;
    0x0000edb0 jalr t9                       |     t9 ();
    0x0000edb4 lw gp, 0x28(sp)               |     gp = *(var_28h);
    0x0000edb8 lw t9, -0x7f2c(gp)            |     t9 = *(gp);
    0x0000edbc addiu t9, t9, -0x170c         |     t9 += -aav.0x0000170c;
    0x0000edc0 lw a0, 0x44(sp)               |     a0 = *(var_44h);
    0x0000edc4 bal 0xe8f4                    |     fcn_0000e8f4 ();
    0x0000edc8 move s0, v0                   |     s0 = v0;
    0x0000edcc lw gp, 0x28(sp)               |     gp = *(var_28h);
                                             |     if (v0 == 0) {
    0x0000edd0 beqz v0, 0xeb5c               |         goto label_4;
                                             |     }
    0x0000edd4 lw t9, -0x78b0(gp)            |     t9 = sym.imp.open64;
    0x0000edd8 lw a0, 0x44(sp)               |     a0 = *(var_44h);
    0x0000eddc addiu a2, zero, 0x1b6         |     a2 = 0x1b6;
    0x0000ede0 addiu a1, zero, 0x301         |     a1 = 0x301;
    0x0000ede4 jalr t9                       |     t9 ();
    0x0000ede8 move s3, v0                   |     s3 = v0;
    0x0000edec addiu v0, zero, -1            |     v0 = -1;
    0x0000edf0 lw gp, 0x28(sp)               |     gp = *(var_28h);
                                             |     if (s3 == v0) {
    0x0000edf4 beq s3, v0, 0xf010            |         goto label_16;
                                             |     }
    0x0000edf8 lw t9, -0x76e4(gp)            |     t9 = sym.imp.strlen;
    0x0000edfc move a0, s4                   |     a0 = s4;
    0x0000ee00 jalr t9                       |     t9 ();
    0x0000ee04 lw gp, 0x28(sp)               |     gp = *(var_28h);
    0x0000ee08 move a3, v0                   |     a3 = v0;
    0x0000ee0c move a2, s4                   |     a2 = s4;
    0x0000ee10 lw t9, -0x7f10(gp)            |     t9 = sym.atomicio;
    0x0000ee14 lw a0, -0x751c(gp)            |     a0 = *((gp - 7495));
    0x0000ee18 move a1, s3                   |     a1 = s3;
    0x0000ee1c jalr t9                       |     t9 ();
    0x0000ee20 lw gp, 0x28(sp)               |     gp = *(var_28h);
    0x0000ee24 move a0, s4                   |     a0 = s4;
    0x0000ee28 lw t9, -0x76e4(gp)            |     t9 = sym.imp.strlen;
    0x0000ee2c move s0, v0                   |     s0 = v0;
    0x0000ee30 jalr t9                       |     t9 ();
    0x0000ee34 lw gp, 0x28(sp)               |     gp = *(var_28h);
                                             |     if (s0 != v0) {
    0x0000ee38 bne s0, v0, 0xef94            |         goto label_17;
                                             |     }
    0x0000ee3c lw s0, 0x6144(s5)             |     s0 = *((s5 + 6225));
    0x0000ee40 lw a3, 0x44(sp)               |     a3 = *(var_44h);
                                             |     if (s0 == 0) {
    0x0000ee44 beqz s0, 0xeed8               |         goto label_18;
                                             |     }
    0x0000ee48 move s0, zero                 |     s0 = 0;
                                             |     do {
                                             | label_7:
    0x0000ee4c lw t9, -0x75e4(gp)            |         t9 = sym.imp.free;
    0x0000ee50 move a0, a3                   |         a0 = a3;
    0x0000ee54 jalr t9                       |         t9 ();
    0x0000ee58 lw gp, 0x28(sp)               |         gp = *(var_28h);
    0x0000ee5c lw t9, -0x75e4(gp)            |         t9 = sym.imp.free;
    0x0000ee60 lw a0, 0x48(sp)               |         a0 = *(var_48h);
    0x0000ee64 jalr t9                       |         t9 ();
    0x0000ee68 lw gp, 0x28(sp)               |         gp = *(var_28h);
    0x0000ee6c lw t9, -0x75e4(gp)            |         t9 = sym.imp.free;
    0x0000ee70 move a0, s4                   |         a0 = s4;
    0x0000ee74 jalr t9                       |         t9 ();
    0x0000ee78 lw gp, 0x28(sp)               |         gp = *(var_28h);
                                             |         if (s1 != 0) {
    0x0000ee7c beqz s1, 0xeea4               |             
    0x0000ee80 lw t9, -0x76e4(gp)            |             t9 = sym.imp.strlen;
    0x0000ee84 move a0, s1                   |             a0 = s1;
    0x0000ee88 jalr t9                       |             t9 ();
    0x0000ee8c lw gp, 0x28(sp)               |             gp = *(var_28h);
    0x0000ee90 move a1, v0                   |             a1 = v0;
    0x0000ee94 lw t9, -0x7fc4(gp)            |             t9 = sym.freezero;
    0x0000ee98 move a0, s1                   |             a0 = s1;
    0x0000ee9c jalr t9                       |             t9 ();
    0x0000eea0 lw gp, 0x28(sp)               |             gp = *(var_28h);
                                             |         }
    0x0000eea4 lw t9, -0x7f9c(gp)            |         t9 = sym.sshbuf_free;
    0x0000eea8 lw a0, 0x40(sp)               |         a0 = *(var_40h);
    0x0000eeac bal 0x1b7ac                   |         sym_sshbuf_free ();
    0x0000eeb0 lw gp, 0x28(sp)               |         gp = *(var_28h);
    0x0000eeb4 lw t9, -0x7f9c(gp)            |         t9 = sym.sshbuf_free;
    0x0000eeb8 lw a0, 0x3c(sp)               |         a0 = *(var_3ch);
    0x0000eebc bal 0x1b7ac                   |         sym_sshbuf_free ();
    0x0000eec0 lw gp, 0x28(sp)               |         gp = *(var_28h);
    0x0000eec4 lw t9, -0x779c(gp)            |         t9 = sym.imp.close;
    0x0000eec8 move a0, s3                   |         a0 = s3;
    0x0000eecc jalr t9                       |         t9 ();
    0x0000eed0 lw gp, 0x28(sp)               |         gp = *(var_28h);
    0x0000eed4 b 0xebd4                      |         goto label_5;
                                             | label_18:
    0x0000eed8 lw v0, -0x76c4(gp)            |         v0 = *((gp - 7601));
    0x0000eedc lw a2, -0x7fdc(gp)            |         a2 = *(gp);
    0x0000eee0 lw t9, -0x74ac(gp)            |         t9 = sym.imp.__fprintf_chk
    0x0000eee4 lw a0, (v0)                   |         a0 = *(v0);
                                             |         /* str.Write_signature_to__s_n */
    0x0000eee8 addiu a2, a2, -0x6e0          |         a2 += -0x6e0;
    0x0000eeec addiu a1, zero, 1             |         a1 = 1;
    0x0000eef0 jalr t9                       |         t9 ();
    0x0000eef4 lw gp, 0x28(sp)               |         gp = *(var_28h);
    0x0000eef8 lw a3, 0x44(sp)               |         a3 = *(var_44h);
    0x0000eefc b 0xee4c                      |         
                                             |     } while (1);
                                             | label_14:
    0x0000ef00 lw t9, -0x7f50(gp)            |     t9 = sym.sshkey_type;
    0x0000ef04 move a0, s4                   |     a0 = s4;
    0x0000ef08 bal 0x1d55c                   |     sym_sshkey_type ();
    0x0000ef0c lw gp, 0x28(sp)               |     gp = *(var_28h);
    0x0000ef10 move a2, v0                   |     a2 = v0;
    0x0000ef14 addiu a0, sp, 0x48            |     a0 = sp + 0x48;
    0x0000ef18 lw a1, -0x7fdc(gp)            |     a1 = *(gp);
    0x0000ef1c lw t9, -0x7f14(gp)            |     t9 = sym.xasprintf;
                                             |     /* str.Enter_PIN_for__s_key:_ */
    0x0000ef20 addiu a1, a1, -0x78c          |     a1 += -0x78c;
    0x0000ef24 jalr t9                       |     t9 ();
    0x0000ef28 lw gp, 0x28(sp)               |     gp = *(var_28h);
    0x0000ef2c lw a0, 0x48(sp)               |     a0 = *(var_48h);
    0x0000ef30 lw t9, -0x7fc0(gp)            |     t9 = sym.read_passphrase;
    0x0000ef34 addiu a1, zero, 2             |     a1 = 2;
    0x0000ef38 jalr t9                       |     t9 ();
    0x0000ef3c move s1, v0                   |     s1 = v0;
    0x0000ef40 lw gp, 0x28(sp)               |     gp = *(var_28h);
                                             |     if (v0 == 0) {
    0x0000ef44 beqz v0, 0xf0cc               |         goto label_19;
                                             |     }
    0x0000ef48 lbu v0, 0x38(s4)              |     v0 = *((s4 + 56));
    0x0000ef4c b 0xec34                      |     goto label_6;
                                             | label_11:
    0x0000ef50 lw v0, -0x7fdc(gp)            |     v0 = *(gp);
    0x0000ef54 lw a1, -0x7fdc(gp)            |     a1 = *(gp);
    0x0000ef58 lw a0, -0x7fdc(gp)            |     a0 = *(gp);
                                             |     /* str.buffer_error */
    0x0000ef5c addiu v0, v0, -0x724          |     v0 += -0x724;
    0x0000ef60 lw t9, -0x7fac(gp)            |     t9 = sym.sshlog;
    0x0000ef64 sw v0, 0x18(sp)               |     *(var_18h_2) = v0;
    0x0000ef68 addiu v0, zero, 2             |     v0 = 2;
    0x0000ef6c sw zero, 0x14(sp)             |     *(var_14h) = 0;
    0x0000ef70 sw v0, 0x10(sp)               |     *(var_10h_2) = v0;
    0x0000ef74 addiu a3, zero, 1             |     a3 = 1;
    0x0000ef78 addiu a2, zero, 0x9fa         |     a2 = 0x9fa;
                                             |     /* str.sign_one */
    0x0000ef7c addiu a1, a1, 0x1da8          |     a1 += 0x1da8;
                                             |     /* str.ssh_keygen.c */
    0x0000ef80 addiu a0, a0, -0xe90          |     a0 += -0xe90;
    0x0000ef84 jalr t9                       |     t9 ();
    0x0000ef88 addiu s0, zero, -2            |     s0 = -2;
    0x0000ef8c lw gp, 0x28(sp)               |     gp = *(var_28h);
    0x0000ef90 b 0xeb5c                      |     goto label_4;
                                             | label_17:
    0x0000ef94 lw t9, -0x7418(gp)            |     t9 = sym.imp.__errno_location;
    0x0000ef98 addiu s0, zero, -0x18         |     s0 = -0x18;
    0x0000ef9c jalr t9                       |     t9 ();
    0x0000efa0 lw gp, 0x28(sp)               |     gp = *(var_28h);
    0x0000efa4 lw s6, (v0)                   |     s6 = *(v0);
    0x0000efa8 move s5, v0                   |     s5 = v0;
    0x0000efac lw t9, -0x7454(gp)            |     t9 = sym.imp.strerror;
    0x0000efb0 move a0, s6                   |     a0 = s6;
    0x0000efb4 lw s7, 0x44(sp)               |     s7 = *(var_44h);
    0x0000efb8 jalr t9                       |     t9 ();
    0x0000efbc lw gp, 0x28(sp)               |     gp = *(var_28h);
    0x0000efc0 sw v0, 0x20(sp)               |     *(var_20h) = v0;
    0x0000efc4 move a3, zero                 |     a3 = 0;
    0x0000efc8 lw v0, -0x7fdc(gp)            |     v0 = *(gp);
    0x0000efcc lw a1, -0x7fdc(gp)            |     a1 = *(gp);
    0x0000efd0 lw a0, -0x7fdc(gp)            |     a0 = *(gp);
                                             |     /* str.Cannot_write_to__s:__s */
    0x0000efd4 addiu v0, v0, -0x6f8          |     v0 += -0x6f8;
    0x0000efd8 lw t9, -0x7fac(gp)            |     t9 = sym.sshlog;
    0x0000efdc sw v0, 0x18(sp)               |     *(var_18h_2) = v0;
    0x0000efe0 addiu v0, zero, 2             |     v0 = 2;
    0x0000efe4 sw s7, 0x1c(sp)               |     *(var_1ch) = s7;
    0x0000efe8 sw zero, 0x14(sp)             |     *(var_14h) = 0;
    0x0000efec sw v0, 0x10(sp)               |     *(var_10h_2) = v0;
    0x0000eff0 addiu a2, zero, 0xa12         |     a2 = 0xa12;
                                             |     /* str.sign_one */
    0x0000eff4 addiu a1, a1, 0x1da8          |     a1 += 0x1da8;
                                             |     /* str.ssh_keygen.c */
    0x0000eff8 addiu a0, a0, -0xe90          |     a0 += -0xe90;
    0x0000effc jalr t9                       |     t9 ();
    0x0000f000 lw gp, 0x28(sp)               |     gp = *(var_28h);
    0x0000f004 sw s6, (s5)                   |     *(s5) = s6;
    0x0000f008 lw a3, 0x44(sp)               |     a3 = *(var_44h);
    0x0000f00c b 0xee4c                      |     goto label_7;
                                             | label_16:
    0x0000f010 lw t9, -0x7418(gp)            |     t9 = sym.imp.__errno_location;
    0x0000f014 addiu s0, zero, -0x18         |     s0 = -0x18;
    0x0000f018 jalr t9                       |     t9 ();
    0x0000f01c lw gp, 0x28(sp)               |     gp = *(var_28h);
    0x0000f020 lw s5, (v0)                   |     s5 = *(v0);
    0x0000f024 move s3, v0                   |     s3 = v0;
    0x0000f028 lw t9, -0x7454(gp)            |     t9 = sym.imp.strerror;
    0x0000f02c move a0, s5                   |     a0 = s5;
    0x0000f030 lw s6, 0x44(sp)               |     s6 = *(var_44h);
    0x0000f034 jalr t9                       |     t9 ();
    0x0000f038 lw gp, 0x28(sp)               |     gp = *(var_28h);
    0x0000f03c sw v0, 0x20(sp)               |     *(var_20h) = v0;
    0x0000f040 sw s6, 0x1c(sp)               |     *(var_1ch) = s6;
    0x0000f044 lw v0, -0x7fdc(gp)            |     v0 = *(gp);
    0x0000f048 lw a1, -0x7fdc(gp)            |     a1 = *(gp);
    0x0000f04c lw a0, -0x7fdc(gp)            |     a0 = *(gp);
                                             |     /* str.Cannot_open__s:__s */
    0x0000f050 addiu v0, v0, -0x70c          |     v0 += -0x70c;
    0x0000f054 lw t9, -0x7fac(gp)            |     t9 = sym.sshlog;
    0x0000f058 sw v0, 0x18(sp)               |     *(var_18h_2) = v0;
    0x0000f05c addiu v0, zero, 2             |     v0 = 2;
    0x0000f060 sw zero, 0x14(sp)             |     *(var_14h) = 0;
    0x0000f064 sw v0, 0x10(sp)               |     *(var_10h_2) = v0;
    0x0000f068 move a3, zero                 |     a3 = 0;
    0x0000f06c addiu a2, zero, 0xa09         |     a2 = 0xa09;
                                             |     /* str.sign_one */
    0x0000f070 addiu a1, a1, 0x1da8          |     a1 += 0x1da8;
                                             |     /* str.ssh_keygen.c */
    0x0000f074 addiu a0, a0, -0xe90          |     a0 += -0xe90;
    0x0000f078 jalr t9                       |     t9 ();
    0x0000f07c lw gp, 0x28(sp)               |     gp = *(var_28h);
    0x0000f080 sw s5, (s3)                   |     *(s3) = s5;
    0x0000f084 b 0xeb5c                      |     goto label_4;
                                             | label_13:
    0x0000f088 lw t9, -0x77e8(gp)            |     t9 = sym.imp.__stack_chk_fail;
    0x0000f08c jalr t9                       |     t9 ();
    0x0000f090 nop                           |     
                                             | label_15:
    0x0000f094 lw v0, -0x7fdc(gp)            |     v0 = *(gp);
    0x0000f098 lw t9, -0x7fbc(gp)            |     t9 = sym.sshfatal;
                                             |     /* esilref: 'fingerprint failed' */
    0x0000f09c addiu v0, v0, -0x3dc          |     v0 += -0x3dc;
    0x0000f0a0 sw v0, 0x18(sp)               |     *(var_18h_2) = v0;
    0x0000f0a4 addiu v0, zero, 1             |     v0 = 1;
    0x0000f0a8 sw zero, 0x14(sp)             |     *(var_14h) = 0;
    0x0000f0ac sw v0, 0x10(sp)               |     *(var_10h_2) = v0;
    0x0000f0b0 addiu a3, zero, 1             |     a3 = 1;
    0x0000f0b4 addiu a2, zero, 0x9ea         |     a2 = 0x9ea;
                                             |     do {
    0x0000f0b8 lw a1, -0x7fdc(gp)            |         a1 = *(gp);
    0x0000f0bc lw a0, -0x7fdc(gp)            |         a0 = *(gp);
                                             |         /* str.sign_one */
    0x0000f0c0 addiu a1, a1, 0x1da8          |         a1 += 0x1da8;
                                             |         /* str.ssh_keygen.c */
    0x0000f0c4 addiu a0, a0, -0xe90          |         a0 += -0xe90;
    0x0000f0c8 jalr t9                       |         t9 ();
                                             | label_19:
    0x0000f0cc lw v0, -0x7fdc(gp)            |         v0 = *(gp);
    0x0000f0d0 lw t9, -0x7fbc(gp)            |         t9 = sym.sshfatal;
                                             |         /* str.couldnt_read_PIN */
    0x0000f0d4 addiu v0, v0, -0x774          |         v0 += -0x774;
    0x0000f0d8 sw v0, 0x18(sp)               |         *(var_18h_2) = v0;
    0x0000f0dc addiu v0, zero, 1             |         v0 = 1;
    0x0000f0e0 sw zero, 0x14(sp)             |         *(var_14h) = 0;
    0x0000f0e4 sw v0, 0x10(sp)               |         *(var_10h_2) = v0;
    0x0000f0e8 addiu a3, zero, 1             |         a3 = 1;
    0x0000f0ec addiu a2, zero, 0x9e5         |         a2 = 0x9e5;
    0x0000f0f0 b 0xf0b8                      |         
                                             |     } while (1);
                                             | }
    ; assembly                           | /* r2dec pseudo code output */
                                         | /* /logs/firmware/unblob_extracted/firmware_extract/4325012-58052244.squashfs_v4_le_extract/usr/bin/ssh-keygen @ 0x12da8 */
                                         | #include <stdint.h>
                                         |  
    ; (fcn) fcn.00012da8 ()              | void fcn_00012da8 () {
    0x00012da8 lui gp, 9                 |     
    0x00012dac addiu gp, gp, -0x6d08     |     
    0x00012db0 addu gp, gp, t9           |     gp += t9;
    0x00012db4 addiu sp, sp, -0xf0       |     
    0x00012db8 lw v0, -0x773c(gp)        |     v0 = *((gp - 7631));
    0x00012dbc sw gp, 0x28(sp)           |     *(var_28h) = gp;
    0x00012dc0 sw ra, 0xec(sp)           |     *(var_ech) = ra;
    0x00012dc4 sw s1, 0xe8(sp)           |     *(var_e8h) = s1;
    0x00012dc8 sw s0, 0xe4(sp)           |     *(var_e4h) = s0;
    0x00012dcc lw v1, (v0)               |     v1 = *(v0);
    0x00012dd0 lw v0, -0x7fcc(gp)        |     v0 = *((gp - 8179));
    0x00012dd4 sw v1, 0xdc(sp)           |     *(var_dch) = v1;
    0x00012dd8 sw zero, 0x34(sp)         |     *(var_34h) = 0;
    0x00012ddc lw v0, 0x5138(v0)         |     v0 = *((v0 + 5198));
    0x00012de0 lw a1, -0x7fdc(gp)        |     a1 = *(gp);
    0x00012de4 beqz v0, 0x12f58          |     
                                         |     while (1) {
    0x00012de8 lw s0, -0x7fcc(gp)        |         s0 = *((gp - 8179));
    0x00012dec lw t9, -0x74d8(gp)        |         t9 = sym.imp.__xstat64;
    0x00012df0 addiu a2, sp, 0x38        |         a2 = sp + 0x38;
    0x00012df4 addiu a1, s0, 0x513c      |         a1 = s0 + 0x513c;
    0x00012df8 addiu a0, zero, 3         |         a0 = 3;
    0x00012dfc jalr t9                   |         t9 ();
    0x00012e00 addiu v1, zero, -1        |         v1 = -1;
    0x00012e04 lw gp, 0x28(sp)           |         gp = *(var_28h);
                                         |         if (v0 != v1) {
    0x00012e08 beq v0, v1, 0x12ef8       |             
    0x00012e0c lw t9, -0x7f2c(gp)        |             t9 = *(gp);
    0x00012e10 addiu a0, s0, 0x513c      |             a0 = s0 + 0x513c;
    0x00012e14 addiu t9, t9, -0x3b00     |             t9 += -0x3b00;
    0x00012e18 lw s1, -0x7858(gp)        |             s1 = *((gp - 7702));
    0x00012e1c addiu a1, sp, 0x34        |             a1 = sp + 0x34;
    0x00012e20 bal 0xc500                |             fcn_0000c500 ();
    0x00012e24 lw gp, 0x28(sp)           |             gp = *(var_28h);
    0x00012e28 lw a1, (s1)               |             a1 = *(s1);
    0x00012e2c move a0, v0               |             a0 = v0;
    0x00012e30 lw t9, -0x7e6c(gp)        |             t9 = sym.sshkey_write;
    0x00012e34 move s0, v0               |             s0 = v0;
    0x00012e38 bal 0x1f9d4               |             sym_sshkey_write ();
    0x00012e3c lw gp, 0x28(sp)           |             gp = *(var_28h);
                                         |             if (v0 == 0) {
    0x00012e40 bnez v0, 0x12eb0          |                 
    0x00012e44 lw a3, 0x34(sp)           |                 a3 = *(var_34h);
    0x00012e48 lw t9, -0x77fc(gp)        |                 t9 = sym.imp.fputc;
                                         |                 if (a3 != 0) {
    0x00012e4c beqz a3, 0x12e60          |                     
    0x00012e50 lb v0, (a3)               |                     v0 = *(a3);
    0x00012e54 lw a2, -0x7fdc(gp)        |                     a2 = *(gp);
                                         |                     if (v0 != 0) {
    0x00012e58 bnez v0, 0x12fc4          |                         goto label_2;
                                         |                     }
                                         | label_1:
    0x00012e5c lw t9, -0x77fc(gp)        |                     t9 = sym.imp.fputc;
                                         |                 }
    0x00012e60 lw a1, (s1)               |                 a1 = *(s1);
    0x00012e64 addiu a0, zero, 0xa       |                 a0 = 0xa;
    0x00012e68 jalr t9                   |                 t9 ();
    0x00012e6c lw gp, 0x28(sp)           |                 gp = *(var_28h);
    0x00012e70 lw t9, -0x7f24(gp)        |                 t9 = sym.sshkey_is_sk;
    0x00012e74 move a0, s0               |                 a0 = s0;
    0x00012e78 bal 0x1ddb0               |                 sym_sshkey_is_sk ();
    0x00012e7c lw gp, 0x28(sp)           |                 gp = *(var_28h);
                                         |                 if (v0 != 0) {
    0x00012e80 bnez v0, 0x12f74          |                     goto label_3;
                                         |                 }
                                         | label_0:
    0x00012e84 lw t9, -0x7f4c(gp)        |                 t9 = sym.sshkey_free;
    0x00012e88 move a0, s0               |                 a0 = s0;
    0x00012e8c bal 0x1e0a4               |                 sym_sshkey_free ();
    0x00012e90 lw gp, 0x28(sp)           |                 gp = *(var_28h);
    0x00012e94 lw t9, -0x75e4(gp)        |                 t9 = sym.imp.free;
    0x00012e98 lw a0, 0x34(sp)           |                 a0 = *(var_34h);
    0x00012e9c jalr t9                   |                 t9 ();
    0x00012ea0 lw gp, 0x28(sp)           |                 gp = *(var_28h);
    0x00012ea4 lw t9, -0x7954(gp)        |                 t9 = sym.imp.exit;
    0x00012ea8 move a0, zero             |                 a0 = 0;
    0x00012eac jalr t9                   |                 t9 ();
                                         |             }
    0x00012eb0 lw t9, -0x7fd0(gp)        |             t9 = sym.ssh_err;
    0x00012eb4 move a0, v0               |             a0 = v0;
    0x00012eb8 bal 0x1b0f0               |             sym_ssh_err ();
    0x00012ebc lw gp, 0x28(sp)           |             gp = *(var_28h);
    0x00012ec0 sw v0, 0x14(sp)           |             *(var_14h) = v0;
    0x00012ec4 addiu v0, zero, 1         |             v0 = 1;
    0x00012ec8 lw v1, -0x7fdc(gp)        |             v1 = *(gp);
    0x00012ecc lw a1, -0x7fdc(gp)        |             a1 = *(gp);
    0x00012ed0 lw a0, -0x7fdc(gp)        |             a0 = *(gp);
                                         |             /* str.write_key */
    0x00012ed4 addiu v1, v1, 0x50c       |             v1 += 0x50c;
    0x00012ed8 lw t9, -0x7fbc(gp)        |             t9 = sym.sshfatal;
    0x00012edc sw v1, 0x18(sp)           |             *(var_18h) = v1;
    0x00012ee0 sw v0, 0x10(sp)           |             *(var_10h) = v0;
    0x00012ee4 addiu a3, zero, 1         |             a3 = 1;
    0x00012ee8 addiu a2, zero, 0x332     |             a2 = 0x332;
                                         |             /* str.do_print_public */
    0x00012eec addiu a1, a1, 0x1b28      |             a1 += 0x1b28;
                                         |             /* str.ssh_keygen.c */
    0x00012ef0 addiu a0, a0, -0xe90      |             a0 += -0xe90;
    0x00012ef4 jalr t9                   |             t9 ();
                                         |         }
    0x00012ef8 lw t9, -0x7418(gp)        |         t9 = sym.imp.__errno_location;
    0x00012efc addiu s0, s0, 0x513c      |         s0 += 0x513c;
    0x00012f00 jalr t9                   |         t9 ();
    0x00012f04 lw gp, 0x28(sp)           |         gp = *(var_28h);
    0x00012f08 lw t9, -0x7454(gp)        |         t9 = sym.imp.strerror;
    0x00012f0c lw a0, (v0)               |         a0 = *(v0);
    0x00012f10 jalr t9                   |         t9 ();
    0x00012f14 lw gp, 0x28(sp)           |         gp = *(var_28h);
    0x00012f18 sw v0, 0x20(sp)           |         *(var_20h) = v0;
    0x00012f1c sw s0, 0x1c(sp)           |         *(var_1ch) = s0;
    0x00012f20 lw v0, -0x7fdc(gp)        |         v0 = *(gp);
    0x00012f24 lw a1, -0x7fdc(gp)        |         a1 = *(gp);
                                         |         /* esilref: '&s: &s' */
    0x00012f28 addiu v0, v0, 0x1c0       |         v0 += aav.0x000001c0;
    0x00012f2c lw a0, -0x7fdc(gp)        |         a0 = *(gp);
    0x00012f30 sw v0, 0x18(sp)           |         *(var_18h) = v0;
    0x00012f34 lw t9, -0x7fbc(gp)        |         t9 = sym.sshfatal;
    0x00012f38 addiu v0, zero, 1         |         v0 = 1;
    0x00012f3c sw zero, 0x14(sp)         |         *(var_14h) = 0;
    0x00012f40 sw v0, 0x10(sp)           |         *(var_10h) = v0;
    0x00012f44 move a3, zero             |         a3 = 0;
    0x00012f48 addiu a2, zero, 0x32f     |         a2 = 0x32f;
                                         |         /* str.do_print_public */
    0x00012f4c addiu a1, a1, 0x1b28      |         a1 += 0x1b28;
                                         |         /* str.ssh_keygen.c */
    0x00012f50 addiu a0, a0, -0xe90      |         a0 += -0xe90;
    0x00012f54 jalr t9                   |         t9 ();
    0x00012f58 lw t9, -0x7f2c(gp)        |         t9 = *(gp);
                                         |         /* str.Enter_file_in_which_the_key_is */
    0x00012f5c addiu a1, a1, 0x19c       |         a1 += aav.0x0000019c;
                                         |         /* fcn.00011910 */
    0x00012f60 addiu t9, t9, 0x1910      |         t9 += 0x1910;
    0x00012f64 addiu a0, a0, 0x14        |         a0 += 0x14;
    0x00012f68 bal 0x11910               |         fcn_00011910 ();
    0x00012f6c lw gp, 0x28(sp)           |         gp = *(var_28h);
    0x00012f70 b 0x12de8                 |         
                                         |     }
                                         | label_3:
    0x00012f74 lbu v0, 0x38(s0)          |     v0 = *((s0 + 56));
    0x00012f78 lw a1, -0x7fdc(gp)        |     a1 = *(gp);
    0x00012f7c sw v0, 0x20(sp)           |     *(var_20h) = v0;
    0x00012f80 lw v0, 0x34(s0)           |     v0 = *((s0 + 13));
    0x00012f84 lw a0, -0x7fdc(gp)        |     a0 = *(gp);
    0x00012f88 sw v0, 0x1c(sp)           |     *(var_1ch) = v0;
    0x00012f8c lw v0, -0x7fdc(gp)        |     v0 = *(gp);
    0x00012f90 lw t9, -0x7fac(gp)        |     t9 = sym.sshlog;
                                         |     /* str.sk_application:___s___sk_flags_0x_02x */
    0x00012f94 addiu v0, v0, 0x518       |     v0 += 0x518;
    0x00012f98 sw v0, 0x18(sp)           |     *(var_18h) = v0;
    0x00012f9c addiu v0, zero, 5         |     v0 = 5;
    0x00012fa0 sw zero, 0x14(sp)         |     *(var_14h) = 0;
    0x00012fa4 sw v0, 0x10(sp)           |     *(var_10h) = v0;
    0x00012fa8 move a3, zero             |     a3 = 0;
    0x00012fac addiu a2, zero, 0x338     |     a2 = 0x338;
                                         |     /* str.do_print_public */
    0x00012fb0 addiu a1, a1, 0x1b28      |     a1 += 0x1b28;
                                         |     /* str.ssh_keygen.c */
    0x00012fb4 addiu a0, a0, -0xe90      |     a0 += -0xe90;
    0x00012fb8 jalr t9                   |     t9 ();
    0x00012fbc lw gp, 0x28(sp)           |     gp = *(var_28h);
    0x00012fc0 b 0x12e84                 |     goto label_0;
                                         | label_2:
    0x00012fc4 lw t9, -0x74ac(gp)        |     t9 = sym.imp.__fprintf_chk
    0x00012fc8 lw a0, (s1)               |     a0 = *(s1);
                                         |     /* esilref: ' &s' */
    0x00012fcc addiu a2, a2, 0x2ec       |     a2 += aav.0x000002ec;
    0x00012fd0 addiu a1, zero, 1         |     a1 = 1;
    0x00012fd4 jalr t9                   |     t9 ();
    0x00012fd8 lw gp, 0x28(sp)           |     gp = *(var_28h);
    0x00012fdc b 0x12e5c                 |     goto label_1;
                                         | }
    ; assembly                           | /* r2dec pseudo code output */
                                         | /* /logs/firmware/unblob_extracted/firmware_extract/4325012-58052244.squashfs_v4_le_extract/usr/bin/ssh-keygen @ 0x136d8 */
                                         | #include <stdint.h>
                                         |  
    ; (fcn) fcn.000136d8 ()              | void fcn_000136d8 () {
    0x000136d8 lui gp, 9                 |     
    0x000136dc addiu gp, gp, -0x7638     |     
    0x000136e0 addu gp, gp, t9           |     gp += t9;
    0x000136e4 addiu sp, sp, -0x78       |     
    0x000136e8 lw v0, -0x773c(gp)        |     v0 = *((gp - 7631));
    0x000136ec sw gp, 0x20(sp)           |     *(var_20h_2) = gp;
    0x000136f0 sw ra, 0x74(sp)           |     *(var_74h) = ra;
    0x000136f4 sw fp, 0x70(sp)           |     *(var_70h_2) = fp;
    0x000136f8 sw s7, 0x6c(sp)           |     *(var_6ch_2) = s7;
    0x000136fc sw s6, 0x68(sp)           |     *(var_68h_2) = s6;
    0x00013700 sw s5, 0x64(sp)           |     *(var_64h_2) = s5;
    0x00013704 sw s4, 0x60(sp)           |     *(var_60h_2) = s4;
    0x00013708 sw s3, 0x5c(sp)           |     *(var_5ch_2) = s3;
    0x0001370c sw s2, 0x58(sp)           |     *(var_58h_2) = s2;
    0x00013710 sw s1, 0x54(sp)           |     *(var_54h_2) = s1;
    0x00013714 sw s0, 0x50(sp)           |     *(var_50h) = s0;
    0x00013718 lw v1, (v0)               |     v1 = *(v0);
    0x0001371c lw v0, -0x7fcc(gp)        |     v0 = *((gp - 8179));
    0x00013720 sw zero, 0x44(sp)         |     *(var_44h_2) = 0;
    0x00013724 sw v1, 0x4c(sp)           |     *(var_4ch_2) = v1;
    0x00013728 lw v0, 0x613c(v0)         |     v0 = *((v0 + 6223));
    0x0001372c sw zero, 0x48(sp)         |     *(var_48h_2) = 0;
                                         |     if (v0 != 0) {
    0x00013730 bnez v0, 0x13938          |         goto label_3;
                                         |     }
    0x00013734 lw v0, -0x7fcc(gp)        |     v0 = *((gp - 8179));
    0x00013738 move s5, zero             |     s5 = 0;
    0x0001373c lw s6, 0x405c(v0)         |     s6 = *((v0 + 4119));
                                         | label_2:
    0x00013740 lw t9, -0x7ed0(gp)        |     t9 = sym.pkcs11_init;
    0x00013744 addiu a0, zero, 1         |     a0 = 1;
    0x00013748 jalr t9                   |     t9 ();
    0x0001374c lw gp, 0x20(sp)           |     gp = *(var_20h_2);
    0x00013750 addiu a3, sp, 0x48        |     a3 = sp + 0x48;
    0x00013754 addiu a2, sp, 0x44        |     a2 = sp + 0x44;
    0x00013758 lw v0, -0x7fcc(gp)        |     v0 = *((gp - 8179));
    0x0001375c lw t9, -0x7ec8(gp)        |     t9 = sym.pkcs11_add_provider;
    0x00013760 move a1, zero             |     a1 = 0;
    0x00013764 lw a0, 0x5108(v0)         |     a0 = *((v0 + 5186));
    0x00013768 jalr t9                   |     t9 ();
    0x0001376c move s3, v0               |     s3 = v0;
    0x00013770 lw gp, 0x20(sp)           |     gp = *(var_20h_2);
                                         |     if (v0 <= 0) {
    0x00013774 blez v0, 0x139b8          |         goto label_4;
                                         |     }
    0x00013778 lw v0, -0x7fcc(gp)        |     v0 = *((gp - 8179));
    0x0001377c lw s4, -0x7fcc(gp)        |     s4 = *((gp - 8179));
    0x00013780 sw v0, 0x38(sp)           |     *(var_38h_2) = v0;
    0x00013784 lw v0, -0x7fdc(gp)        |     v0 = *(gp);
    0x00013788 lw fp, -0x7fdc(gp)        |     fp = *(gp);
    0x0001378c addiu v0, v0, 0x5744      |     v0 += 0x5744;
    0x00013790 sw v0, 0x30(sp)           |     *(var_30h_2) = v0;
    0x00013794 lw v0, -0x7fdc(gp)        |     v0 = *(gp);
    0x00013798 move s1, zero             |     s1 = 0;
    0x0001379c addiu v0, v0, 0x190       |     v0 += aav.0x00000190;
    0x000137a0 sw v0, 0x34(sp)           |     *(var_34h_2) = v0;
    0x000137a4 lw v0, -0x7fdc(gp)        |     v0 = *(gp);
                                         |     /* str._u__s__s__PKCS11_key__n */
    0x000137a8 addiu v0, v0, 0x5c8       |     v0 += aav.0x000005c8;
    0x000137ac sw v0, 0x3c(sp)           |     *(var_3ch_2) = v0;
    0x000137b0 b 0x138c0                 |     
                                         |     while (v0 != 0) {
    0x000137b4 lw t9, -0x7f5c(gp)        |         t9 = sym.sshkey_fingerprint;
    0x000137b8 move a2, s5               |         a2 = s5;
    0x000137bc move a1, s6               |         a1 = s6;
    0x000137c0 bal 0x1eef8               |         sym_sshkey_fingerprint ();
    0x000137c4 lw gp, 0x20(sp)           |         gp = *(var_20h_2);
    0x000137c8 lw v1, 0x38(sp)           |         v1 = *(var_38h_2);
    0x000137cc lw a0, 0x44(sp)           |         a0 = *(var_44h_2);
    0x000137d0 lw t9, -0x7f5c(gp)        |         t9 = sym.sshkey_fingerprint;
    0x000137d4 lw a1, 0x405c(v1)         |         a1 = *((v1 + 4119));
    0x000137d8 lwx a0, s0(a0)            |         __asm ("lwx a0, s0(a0)");
    0x000137dc addiu a2, zero, 4         |         a2 = 4;
    0x000137e0 move s2, v0               |         s2 = v0;
    0x000137e4 bal 0x1eef8               |         sym_sshkey_fingerprint ();
    0x000137e8 move s7, v0               |         s7 = v0;
    0x000137ec lw gp, 0x20(sp)           |         gp = *(var_20h_2);
                                         |         if (s2 == 0) {
    0x000137f0 beqz s2, 0x13980          |             goto label_5;
                                         |         }
    0x000137f4 lw t9, -0x7f28(gp)        |         t9 = sym.sshkey_size;
                                         |         if (v0 == 0) {
    0x000137f8 beqz v0, 0x13980          |             goto label_5;
                                         |         }
    0x000137fc lw a0, 0x44(sp)           |         a0 = *(var_44h_2);
    0x00013800 lwx a0, s0(a0)            |         __asm ("lwx a0, s0(a0)");
    0x00013804 bal 0x1dc48               |         sym_sshkey_size ();
    0x00013808 lw gp, 0x20(sp)           |         gp = *(var_20h_2);
    0x0001380c lw a0, 0x44(sp)           |         a0 = *(var_44h_2);
    0x00013810 sw v0, 0x2c(sp)           |         *(var_2ch) = v0;
    0x00013814 lw t9, -0x7f50(gp)        |         t9 = sym.sshkey_type;
    0x00013818 lwx a0, s0(a0)            |         __asm ("lwx a0, s0(a0)");
    0x0001381c bal 0x1d55c               |         sym_sshkey_type ();
    0x00013820 lw gp, 0x20(sp)           |         gp = *(var_20h_2);
    0x00013824 lw a2, 0x2c(sp)           |         a2 = *(var_2ch);
    0x00013828 lw a1, 0x3c(sp)           |         a1 = *(var_3ch_2);
    0x0001382c lw t9, -0x74e8(gp)        |         t9 = sym.imp.__printf_chk;
    0x00013830 move a3, s2               |         a3 = s2;
    0x00013834 addiu a0, zero, 1         |         a0 = 1;
    0x00013838 sw v0, 0x10(sp)           |         *(var_10h_2) = v0;
    0x0001383c jalr t9                   |         t9 ();
    0x00013840 lw gp, 0x20(sp)           |         gp = *(var_20h_2);
    0x00013844 lw t9, -0x7f30(gp)        |         t9 = sym.log_level_get;
    0x00013848 jalr t9                   |         t9 ();
    0x0001384c nop                       |         
    0x00013850 slti v0, v0, 4            |         v0 = (v0 < 4) ? 1 : 0;
    0x00013854 lw gp, 0x20(sp)           |         gp = *(var_20h_2);
                                         |         if (v0 == 0) {
    0x00013858 beqz v0, 0x13924          |             goto label_6;
                                         |         }
                                         | label_1:
    0x0001385c lw t9, -0x75e4(gp)        |         t9 = sym.imp.free;
    0x00013860 move a0, s7               |         a0 = s7;
    0x00013864 jalr t9                   |         t9 ();
    0x00013868 lw gp, 0x20(sp)           |         gp = *(var_20h_2);
    0x0001386c lw t9, -0x75e4(gp)        |         t9 = sym.imp.free;
    0x00013870 move a0, s2               |         a0 = s2;
    0x00013874 jalr t9                   |         t9 ();
    0x00013878 lw gp, 0x20(sp)           |         gp = *(var_20h_2);
                                         | label_0:
    0x0001387c lw a0, 0x48(sp)           |         a0 = *(var_48h_2);
    0x00013880 lw t9, -0x75e4(gp)        |         t9 = sym.imp.free;
    0x00013884 lwx a0, s0(a0)            |         __asm ("lwx a0, s0(a0)");
    0x00013888 jalr t9                   |         t9 ();
    0x0001388c lw gp, 0x20(sp)           |         gp = *(var_20h_2);
    0x00013890 lw a0, 0x44(sp)           |         a0 = *(var_44h_2);
    0x00013894 lw t9, -0x7f4c(gp)        |         t9 = sym.sshkey_free;
    0x00013898 lwx a0, s0(a0)            |         __asm ("lwx a0, s0(a0)");
    0x0001389c bal 0x1e0a4               |         sym_sshkey_free ();
    0x000138a0 lw gp, 0x20(sp)           |         gp = *(var_20h_2);
    0x000138a4 move a0, s1               |         a0 = s1;
    0x000138a8 lw t9, -0x7ec4(gp)        |         t9 = *(gp);
    0x000138ac addiu a1, zero, 1         |         a1 = 1;
    0x000138b0 jalr t9                   |         t9 ();
    0x000138b4 move s1, v0               |         s1 = v0;
    0x000138b8 lw gp, 0x20(sp)           |         gp = *(var_20h_2);
                                         |         if (s3 == v0) {
    0x000138bc beq s3, v0, 0x13944       |             goto label_7;
                                         |         }
    0x000138c0 lw a0, 0x44(sp)           |         a0 = *(var_44h_2);
    0x000138c4 sll s0, s1, 2             |         s0 = s1 << 2;
    0x000138c8 lw v0, 0x6140(s4)         |         v0 = *((s4 + 6224));
    0x000138cc lwx a0, s0(a0)            |         __asm ("lwx a0, s0(a0)");
    0x000138d0 bnez v0, 0x137b4          |         
                                         |     }
    0x000138d4 lw s2, -0x7858(gp)        |     s2 = *((gp - 7702));
    0x000138d8 lw t9, -0x7e6c(gp)        |     t9 = sym.sshkey_write;
    0x000138dc lw a1, (s2)               |     a1 = *(s2);
    0x000138e0 bal 0x1f9d4               |     sym_sshkey_write ();
    0x000138e4 lw v0, 0x48(sp)           |     v0 = *(var_48h_2);
    0x000138e8 lw gp, 0x20(sp)           |     gp = *(var_20h_2);
    0x000138ec lw v1, 0x34(sp)           |     v1 = *(var_34h_2);
    0x000138f0 lwx v0, s0(v0)            |     __asm ("lwx v0, s0(v0)");
    0x000138f4 lw t0, 0x30(sp)           |     t0 = *(var_30h_2);
    0x000138f8 lw a0, (s2)               |     a0 = *(s2);
    0x000138fc lb a3, (v0)               |     a3 = *(v0);
    0x00013900 lw t9, -0x74ac(gp)        |     t9 = sym.imp.__fprintf_chk
                                         |     if (a3 != 0) {
    0x00013904 movz v1, t0, a3           |         v1 = t0;
                                         |     }
                                         |     /* esilref: '&s&s
' */
    0x00013908 addiu a2, fp, -0x80c      |     a2 = fp + -0x80c;
    0x0001390c addiu a1, zero, 1         |     a1 = 1;
    0x00013910 move a3, v1               |     a3 = v1;
    0x00013914 sw v0, 0x10(sp)           |     *(var_10h_2) = v0;
    0x00013918 jalr t9                   |     t9 ();
    0x0001391c lw gp, 0x20(sp)           |     gp = *(var_20h_2);
    0x00013920 b 0x1387c                 |     goto label_0;
                                         | label_6:
    0x00013924 lw t9, -0x786c(gp)        |     t9 = sym.imp.puts;
    0x00013928 move a0, s7               |     a0 = s7;
    0x0001392c jalr t9                   |     t9 ();
    0x00013930 lw gp, 0x20(sp)           |     gp = *(var_20h_2);
    0x00013934 b 0x1385c                 |     goto label_1;
                                         | label_3:
    0x00013938 addiu s6, zero, 1         |     s6 = 1;
    0x0001393c addiu s5, zero, 3         |     s5 = 3;
    0x00013940 b 0x13740                 |     goto label_2;
                                         | label_7:
    0x00013944 lw t9, -0x75e4(gp)        |     t9 = sym.imp.free;
    0x00013948 lw a0, 0x48(sp)           |     a0 = *(var_48h_2);
    0x0001394c jalr t9                   |     t9 ();
    0x00013950 lw gp, 0x20(sp)           |     gp = *(var_20h_2);
    0x00013954 lw t9, -0x75e4(gp)        |     t9 = sym.imp.free;
    0x00013958 lw a0, 0x44(sp)           |     a0 = *(var_44h_2);
    0x0001395c jalr t9                   |     t9 ();
    0x00013960 lw gp, 0x20(sp)           |     gp = *(var_20h_2);
    0x00013964 lw t9, -0x7ea0(gp)        |     t9 = sym.pkcs11_terminate;
    0x00013968 jalr t9                   |     t9 ();
    0x0001396c nop                       |     
    0x00013970 lw gp, 0x20(sp)           |     gp = *(var_20h_2);
    0x00013974 lw t9, -0x7954(gp)        |     t9 = sym.imp.exit;
    0x00013978 move a0, zero             |     a0 = 0;
    0x0001397c jalr t9                   |     t9 ();
                                         | label_5:
    0x00013980 lw v0, -0x7fdc(gp)        |     v0 = *(gp);
    0x00013984 lw t9, -0x7fbc(gp)        |     t9 = sym.sshfatal;
                                         |     /* str.sshkey_fingerprint_fail */
    0x00013988 addiu v0, v0, 0x1f8       |     v0 += aav.0x000001f8;
    0x0001398c sw v0, 0x18(sp)           |     *(var_18h_2) = v0;
    0x00013990 addiu v0, zero, 1         |     v0 = 1;
    0x00013994 sw zero, 0x14(sp)         |     *(var_14h_2) = 0;
    0x00013998 sw v0, 0x10(sp)           |     *(var_10h_2) = v0;
    0x0001399c addiu a3, zero, 1         |     a3 = 1;
    0x000139a0 addiu a2, zero, 0x356     |     a2 = 0x356;
                                         |     do {
    0x000139a4 lw a1, -0x7fdc(gp)        |         a1 = *(gp);
    0x000139a8 lw a0, -0x7fdc(gp)        |         a0 = *(gp);
                                         |         /* str.do_download */
    0x000139ac addiu a1, a1, 0x1c98      |         a1 += 0x1c98;
                                         |         /* str.ssh_keygen.c */
    0x000139b0 addiu a0, a0, -0xe90      |         a0 += -0xe90;
    0x000139b4 bal 0x33940               |         sym_sshfatal ();
                                         | label_4:
    0x000139b8 lw v0, -0x7fdc(gp)        |         v0 = *(gp);
    0x000139bc lw t9, -0x7fbc(gp)        |         t9 = sym.sshfatal;
                                         |         /* str.cannot_read_public_key_from_pkcs11 */
    0x000139c0 addiu v0, v0, -0x394      |         v0 += -0x394;
    0x000139c4 sw v0, 0x18(sp)           |         *(var_18h_2) = v0;
    0x000139c8 addiu v0, zero, 1         |         v0 = 1;
    0x000139cc sw zero, 0x14(sp)         |         *(var_14h_2) = 0;
    0x000139d0 sw v0, 0x10(sp)           |         *(var_10h_2) = v0;
    0x000139d4 move a3, zero             |         a3 = 0;
    0x000139d8 addiu a2, zero, 0x34f     |         a2 = 0x34f;
    0x000139dc b 0x139a4                 |         
                                         |     } while (1);
                                         | }
    ; assembly                           | /* r2dec pseudo code output */
                                         | /* /logs/firmware/unblob_extracted/firmware_extract/4325012-58052244.squashfs_v4_le_extract/usr/bin/ssh-keygen @ 0x139e0 */
                                         | #include <stdint.h>
                                         |  
    ; (fcn) fcn.000139e0 ()              | void fcn_000139e0 () {
    0x000139e0 lui gp, 9                 |     
    0x000139e4 addiu gp, gp, -0x7940     |     
    0x000139e8 addu gp, gp, t9           |     gp += t9;
    0x000139ec addiu sp, sp, -0x138      |     
    0x000139f0 lw v0, -0x773c(gp)        |     v0 = *((gp - 7631));
    0x000139f4 sw s1, 0x124(sp)          |     *(var_124h) = s1;
    0x000139f8 sw gp, 0x28(sp)           |     *(var_28h) = gp;
    0x000139fc sw ra, 0x134(sp)          |     *(var_134h) = ra;
    0x00013a00 sw s4, 0x130(sp)          |     *(var_130h) = s4;
    0x00013a04 sw s3, 0x12c(sp)          |     *(var_12ch) = s3;
    0x00013a08 sw s2, 0x128(sp)          |     *(var_128h) = s2;
    0x00013a0c sw s0, 0x120(sp)          |     *(var_120h) = s0;
    0x00013a10 lw v1, (v0)               |     v1 = *(v0);
    0x00013a14 lw v0, -0x7fcc(gp)        |     v0 = *((gp - 8179));
    0x00013a18 move s1, a0               |     s1 = a0;
    0x00013a1c sw v1, 0x11c(sp)          |     *(var_11ch) = v1;
    0x00013a20 lw v0, 0x5138(v0)         |     v0 = *((v0 + 5198));
    0x00013a24 lw a1, -0x7fdc(gp)        |     a1 = *(gp);
                                         |     if (v0 == 0) {
    0x00013a28 beqz v0, 0x13b8c          |         goto label_5;
                                         |     }
                                         | label_0:
    0x00013a2c lw s0, -0x7fcc(gp)        |     s0 = *((gp - 8179));
    0x00013a30 lw t9, -0x74d8(gp)        |     t9 = sym.imp.__xstat64;
    0x00013a34 addiu a2, sp, 0x38        |     a2 = sp + 0x38;
    0x00013a38 addiu a1, s0, 0x513c      |     a1 = s0 + 0x513c;
    0x00013a3c addiu a0, zero, 3         |     a0 = 3;
    0x00013a40 jalr t9                   |     t9 ();
    0x00013a44 addiu v1, zero, -1        |     v1 = -1;
    0x00013a48 lw gp, 0x28(sp)           |     gp = *(var_28h);
                                         |     if (v0 == v1) {
    0x00013a4c beq v0, v1, 0x13b20       |         goto label_6;
                                         |     }
    0x00013a50 lw t9, -0x7ecc(gp)        |     t9 = sym.sshkey_load_public;
    0x00013a54 move a2, zero             |     a2 = 0;
    0x00013a58 addiu a1, sp, 0x34        |     a1 = sp + 0x34;
    0x00013a5c addiu a0, s0, 0x513c      |     a0 = s0 + 0x513c;
    0x00013a60 bal 0x3229c               |     sym_sshkey_load_public ();
    0x00013a64 lw gp, 0x28(sp)           |     gp = *(var_28h);
    0x00013a68 bnez v0, 0x13b00          |     
                                         |     while (1) {
    0x00013a6c lw v0, -0x7e68(gp)        |         v0 = *(gp);
    0x00013a70 addiu s2, zero, 1         |         s2 = 1;
    0x00013a74 lw s0, (v0)               |         s0 = *(v0);
                                         |         if (s0 == s2) {
    0x00013a78 beql s0, s2, 0x13c50      |             goto label_7;
                                         |         }
    0x00013a7c lw s2, 0x34(sp)           |         s2 = *(var_34h);
    0x00013a80 addiu v0, zero, 2         |         v0 = 2;
                                         |         if (s0 == 0) {
    0x00013a84 beqz s0, 0x13bdc          |             goto label_8;
                                         |         }
    0x00013a88 lw v0, -0x7fdc(gp)        |         v0 = *(gp);
                                         |         if (s0 != v0) {
    0x00013a8c bne s0, v0, 0x13ba8       |             goto label_9;
                                         |         }
    0x00013a90 lw s3, 0x34(sp)           |         s3 = *(var_34h);
    0x00013a94 lw t9, -0x7e64(gp)        |         t9 = sym.sshkey_type_plain;
    0x00013a98 lw a0, (s3)               |         a0 = *(s3);
    0x00013a9c bal 0x1de0c               |         sym_sshkey_type_plain ();
    0x00013aa0 move s1, v0               |         s1 = v0;
    0x00013aa4 lw gp, 0x28(sp)           |         gp = *(var_28h);
                                         |         if (v0 == s2) {
    0x00013aa8 beq v0, s2, 0x13e60       |             goto label_10;
                                         |         }
                                         |         if (v0 == s0) {
    0x00013aac beql v0, s0, 0x13eb0      |             goto label_11;
                                         |         }
    0x00013ab0 lw v0, -0x7858(gp)        |         v0 = *((gp - 7702));
    0x00013ab4 lw t9, -0x7f50(gp)        |         t9 = sym.sshkey_type;
                                         |         if (v0 == 0) {
    0x00013ab8 beqz v0, 0x13eec          |             goto label_12;
                                         |         }
    0x00013abc move a0, s3               |         a0 = s3;
    0x00013ac0 bal 0x1d55c               |         sym_sshkey_type ();
    0x00013ac4 lw gp, 0x28(sp)           |         gp = *(var_28h);
    0x00013ac8 sw v0, 0x1c(sp)           |         *(var_1ch) = v0;
    0x00013acc sw zero, 0x14(sp)         |         *(var_14h) = 0;
    0x00013ad0 lw v0, -0x7fdc(gp)        |         v0 = *(gp);
    0x00013ad4 lw a1, -0x7fdc(gp)        |         a1 = *(gp);
    0x00013ad8 lw a0, -0x7fdc(gp)        |         a0 = *(gp);
                                         |         /* str.unsupported_key_type__s */
    0x00013adc addiu v0, v0, 0x6d8       |         v0 += 0x6d8;
    0x00013ae0 lw t9, -0x7fbc(gp)        |         t9 = sym.sshfatal;
    0x00013ae4 sw v0, 0x18(sp)           |         *(var_18h) = v0;
    0x00013ae8 sw s2, 0x10(sp)           |         *(var_10h) = s2;
    0x00013aec addiu a3, zero, 1         |         a3 = 1;
    0x00013af0 addiu a2, zero, 0x1a1     |         a2 = 0x1a1;
                                         |         /* str.do_convert_to_pem */
    0x00013af4 addiu a1, a1, 0x1bc8      |         a1 += 0x1bc8;
                                         |         /* str.ssh_keygen.c */
    0x00013af8 addiu a0, a0, -0xe90      |         a0 += -0xe90;
    0x00013afc bal 0x33940               |         sym_sshfatal ();
    0x00013b00 lw t9, -0x7f2c(gp)        |         t9 = *(gp);
    0x00013b04 move a1, zero             |         a1 = 0;
    0x00013b08 addiu t9, t9, -0x3b00     |         t9 += -0x3b00;
    0x00013b0c addiu a0, s0, 0x513c      |         a0 = s0 + 0x513c;
    0x00013b10 bal 0xc500                |         fcn_0000c500 ();
    0x00013b14 sw v0, 0x34(sp)           |         *(var_34h) = v0;
    0x00013b18 lw gp, 0x28(sp)           |         gp = *(var_28h);
    0x00013b1c b 0x13a6c                 |         
                                         |     }
                                         | label_6:
    0x00013b20 lw v0, -0x74d0(gp)        |     v0 = *((gp - 7476));
    0x00013b24 lw t9, -0x7418(gp)        |     t9 = sym.imp.__errno_location;
    0x00013b28 addiu s0, s0, 0x513c      |     s0 += 0x513c;
    0x00013b2c lw s1, (v0)               |     s1 = *(v0);
    0x00013b30 jalr t9                   |     t9 ();
    0x00013b34 lw gp, 0x28(sp)           |     gp = *(var_28h);
    0x00013b38 lw t9, -0x7454(gp)        |     t9 = sym.imp.strerror;
    0x00013b3c lw a0, (v0)               |     a0 = *(v0);
    0x00013b40 jalr t9                   |     t9 ();
    0x00013b44 lw gp, 0x28(sp)           |     gp = *(var_28h);
    0x00013b48 sw v0, 0x24(sp)           |     *(var_24h) = v0;
    0x00013b4c sw s0, 0x20(sp)           |     *(var_20h) = s0;
    0x00013b50 lw v0, -0x7fdc(gp)        |     v0 = *(gp);
    0x00013b54 lw a1, -0x7fdc(gp)        |     a1 = *(gp);
                                         |     /* str._s:__s:__s */
    0x00013b58 addiu v0, v0, 0x1bc       |     v0 += aav.0x000001bc;
    0x00013b5c lw a0, -0x7fdc(gp)        |     a0 = *(gp);
    0x00013b60 sw v0, 0x18(sp)           |     *(var_18h) = v0;
    0x00013b64 lw t9, -0x7fbc(gp)        |     t9 = sym.sshfatal;
    0x00013b68 addiu v0, zero, 1         |     v0 = 1;
    0x00013b6c sw s1, 0x1c(sp)           |     *(var_1ch) = s1;
    0x00013b70 sw zero, 0x14(sp)         |     *(var_14h) = 0;
    0x00013b74 sw v0, 0x10(sp)           |     *(var_10h) = v0;
    0x00013b78 move a3, zero             |     a3 = 0;
    0x00013b7c addiu a2, zero, 0x1b0     |     a2 = aav.0x000001b0;
                                         |     /* str.do_convert_to */
    0x00013b80 addiu a1, a1, 0x1c04      |     a1 += 0x1c04;
                                         |     /* str.ssh_keygen.c */
    0x00013b84 addiu a0, a0, -0xe90      |     a0 += -0xe90;
    0x00013b88 bal 0x33940               |     sym_sshfatal ();
                                         | label_5:
    0x00013b8c lw t9, -0x7f2c(gp)        |     t9 = *(gp);
                                         |     /* str.Enter_file_in_which_the_key_is */
    0x00013b90 addiu a1, a1, 0x19c       |     a1 += aav.0x0000019c;
                                         |     /* fcn.00011910 */
    0x00013b94 addiu t9, t9, 0x1910      |     t9 += 0x1910;
    0x00013b98 addiu a0, a0, 0x14        |     a0 += 0x14;
    0x00013b9c bal 0x11910               |     fcn_00011910 ();
    0x00013ba0 lw gp, 0x28(sp)           |     gp = *(var_28h);
    0x00013ba4 b 0x13a2c                 |     goto label_0;
                                         | label_9:
    0x00013ba8 lw a1, -0x7fdc(gp)        |     a1 = *(gp);
    0x00013bac lw a0, -0x7fdc(gp)        |     a0 = *(gp);
                                         |     /* str.unknown_key_format__d */
    0x00013bb0 addiu v0, v0, 0x710       |     v0 += 0x710;
    0x00013bb4 lw t9, -0x7fbc(gp)        |     t9 = sym.sshfatal;
    0x00013bb8 sw s0, 0x1c(sp)           |     *(var_1ch) = s0;
    0x00013bbc sw v0, 0x18(sp)           |     *(var_18h) = v0;
    0x00013bc0 sw zero, 0x14(sp)         |     *(var_14h) = 0;
    0x00013bc4 sw s2, 0x10(sp)           |     *(var_10h) = s2;
    0x00013bc8 addiu a3, zero, 1         |     a3 = 1;
    0x00013bcc addiu a2, zero, 0x1be     |     a2 = 0x1be;
                                         |     /* str.do_convert_to */
    0x00013bd0 addiu a1, a1, 0x1c04      |     a1 += 0x1c04;
                                         |     /* str.ssh_keygen.c */
    0x00013bd4 addiu a0, a0, -0xe90      |     a0 += -0xe90;
    0x00013bd8 bal 0x33940               |     sym_sshfatal ();
                                         | label_8:
    0x00013bdc lw t9, -0x7fb4(gp)        |     t9 = sym.sshbuf_new;
    0x00013be0 lw s3, 0x34(sp)           |     s3 = *(var_34h);
    0x00013be4 bal 0x1b500               |     sym_sshbuf_new ();
    0x00013be8 move s0, v0               |     s0 = v0;
    0x00013bec lw gp, 0x28(sp)           |     gp = *(var_28h);
                                         |     if (v0 == 0) {
    0x00013bf0 beqz v0, 0x13e14          |         goto label_13;
                                         |     }
    0x00013bf4 lw t9, -0x7e60(gp)        |     t9 = sym.sshkey_putb;
    0x00013bf8 move a1, v0               |     a1 = v0;
    0x00013bfc move a0, s3               |     a0 = s3;
    0x00013c00 bal 0x1ec18               |     sym_sshkey_putb ();
    0x00013c04 lw gp, 0x28(sp)           |     gp = *(var_28h);
                                         |     if (v0 == 0) {
    0x00013c08 beqz v0, 0x13cc0          |         goto label_14;
                                         |     }
    0x00013c0c lw t9, -0x7fd0(gp)        |     t9 = sym.ssh_err;
    0x00013c10 move a0, v0               |     a0 = v0;
    0x00013c14 bal 0x1b0f0               |     sym_ssh_err ();
    0x00013c18 lw gp, 0x28(sp)           |     gp = *(var_28h);
    0x00013c1c sw v0, 0x14(sp)           |     *(var_14h) = v0;
    0x00013c20 sw s2, 0x10(sp)           |     *(var_10h) = s2;
    0x00013c24 lw v1, -0x7fdc(gp)        |     v1 = *(gp);
    0x00013c28 lw t9, -0x7fbc(gp)        |     t9 = sym.sshfatal;
                                         |     /* str.put_key */
    0x00013c2c addiu v1, v1, 0x5e0       |     v1 += 0x5e0;
    0x00013c30 sw v1, 0x18(sp)           |     *(var_18h) = v1;
    0x00013c34 addiu a3, zero, 1         |     a3 = 1;
    0x00013c38 addiu a2, zero, 0x162     |     a2 = 0x162;
                                         |     do {
                                         | label_1:
    0x00013c3c lw a1, -0x7fdc(gp)        |         a1 = *(gp);
    0x00013c40 lw a0, -0x7fdc(gp)        |         a0 = *(gp);
                                         |         /* str.do_convert_to_ssh2 */
    0x00013c44 addiu a1, a1, 0x1bf0      |         a1 += 0x1bf0;
                                         |         /* str.ssh_keygen.c */
    0x00013c48 addiu a0, a0, -0xe90      |         a0 += -0xe90;
    0x00013c4c bal 0x33940               |         sym_sshfatal ();
                                         | label_7:
    0x00013c50 lw t9, -0x7e64(gp)        |         t9 = sym.sshkey_type_plain;
    0x00013c54 lw a0, (s2)               |         a0 = *(s2);
    0x00013c58 bal 0x1de0c               |         sym_sshkey_type_plain ();
    0x00013c5c move s1, v0               |         s1 = v0;
    0x00013c60 lw gp, 0x28(sp)           |         gp = *(var_28h);
                                         |         if (v0 == s0) {
    0x00013c64 beq v0, s0, 0x13e38       |             goto label_15;
                                         |         }
    0x00013c68 addiu v0, zero, 2         |         v0 = 2;
    0x00013c6c lw v0, -0x7858(gp)        |         v0 = *((gp - 7702));
                                         |         if (s1 == v0) {
    0x00013c70 beq s1, v0, 0x13f2c       |             goto label_16;
                                         |         }
    0x00013c74 lw t9, -0x7f50(gp)        |         t9 = sym.sshkey_type;
                                         |         if (s1 == 0) {
    0x00013c78 beqz s1, 0x13f78          |             goto label_17;
                                         |         }
    0x00013c7c move a0, s2               |         a0 = s2;
    0x00013c80 bal 0x1d55c               |         sym_sshkey_type ();
    0x00013c84 lw gp, 0x28(sp)           |         gp = *(var_28h);
    0x00013c88 sw v0, 0x1c(sp)           |         *(var_1ch) = v0;
    0x00013c8c sw zero, 0x14(sp)         |         *(var_14h) = 0;
    0x00013c90 lw v0, -0x7fdc(gp)        |         v0 = *(gp);
    0x00013c94 lw a1, -0x7fdc(gp)        |         a1 = *(gp);
    0x00013c98 lw a0, -0x7fdc(gp)        |         a0 = *(gp);
                                         |         /* str.unsupported_key_type__s */
    0x00013c9c addiu v0, v0, 0x6d8       |         v0 += 0x6d8;
    0x00013ca0 lw t9, -0x7fbc(gp)        |         t9 = sym.sshfatal;
    0x00013ca4 sw v0, 0x18(sp)           |         *(var_18h) = v0;
    0x00013ca8 sw s0, 0x10(sp)           |         *(var_10h) = s0;
    0x00013cac addiu a3, zero, 1         |         a3 = 1;
    0x00013cb0 addiu a2, zero, 0x189     |         a2 = 0x189;
                                         |         /* str.do_convert_to_pkcs8 */
    0x00013cb4 addiu a1, a1, 0x1bdc      |         a1 += 0x1bdc;
                                         |         /* str.ssh_keygen.c */
    0x00013cb8 addiu a0, a0, -0xe90      |         a0 += -0xe90;
    0x00013cbc bal 0x33940               |         sym_sshfatal ();
                                         | label_14:
    0x00013cc0 lw t9, -0x7e5c(gp)        |         t9 = sym.sshbuf_dtob64_string;
    0x00013cc4 addiu a1, zero, 1         |         a1 = 1;
    0x00013cc8 move a0, s0               |         a0 = s0;
    0x00013ccc bal 0x298dc               |         sym_sshbuf_dtob64_string ();
    0x00013cd0 move s4, v0               |         s4 = v0;
    0x00013cd4 lw gp, 0x28(sp)           |         gp = *(var_28h);
                                         |         if (v0 != 0) {
    0x00013cd8 beqz v0, 0x13df0          |             
    0x00013cdc lw t9, -0x7f28(gp)        |             t9 = sym.sshkey_size;
    0x00013ce0 move a0, s3               |             a0 = s3;
    0x00013ce4 bal 0x1dc48               |             sym_sshkey_size ();
    0x00013ce8 lw gp, 0x28(sp)           |             gp = *(var_28h);
    0x00013cec move a0, s3               |             a0 = s3;
    0x00013cf0 lw t9, -0x7f50(gp)        |             t9 = sym.sshkey_type;
    0x00013cf4 move s2, v0               |             s2 = v0;
    0x00013cf8 bal 0x1d55c               |             sym_sshkey_type ();
    0x00013cfc lw gp, 0x28(sp)           |             gp = *(var_28h);
    0x00013d00 lw t0, (s1)               |             t0 = *(s1);
    0x00013d04 sw v0, 0x18(sp)           |             *(var_18h) = v0;
    0x00013d08 lw v1, -0x7fcc(gp)        |             v1 = *((gp - 8179));
    0x00013d0c lw v0, -0x7fdc(gp)        |             v0 = *(gp);
    0x00013d10 addiu v1, v1, 0x4cf4      |             v1 += 0x4cf4;
    0x00013d14 addiu s1, sp, 0xdc        |             s1 = sp + 0xdc;
    0x00013d18 lw t9, -0x78c8(gp)        |             t9 = sym.imp.__snprintf_chk;
                                         |             /* str._u_bit__s__converted_by__s__s_from_OpenSSH */
    0x00013d1c addiu v0, v0, 0x604       |             v0 += 0x604;
    0x00013d20 sw v1, 0x20(sp)           |             *(var_20h) = v1;
    0x00013d24 sw t0, 0x1c(sp)           |             *(var_1ch) = t0;
    0x00013d28 addiu a3, zero, 0x3d      |             a3 = 0x3d;
    0x00013d2c addiu a2, zero, 1         |             a2 = 1;
    0x00013d30 addiu a1, zero, 0x3d      |             a1 = 0x3d;
    0x00013d34 move a0, s1               |             a0 = s1;
    0x00013d38 sw s2, 0x14(sp)           |             *(var_14h) = s2;
    0x00013d3c sw v0, 0x10(sp)           |             *(var_10h) = v0;
    0x00013d40 jalr t9                   |             t9 ();
    0x00013d44 lw gp, 0x28(sp)           |             gp = *(var_28h);
    0x00013d48 lw t9, -0x7f4c(gp)        |             t9 = sym.sshkey_free;
    0x00013d4c move a0, s3               |             a0 = s3;
    0x00013d50 bal 0x1e0a4               |             sym_sshkey_free ();
    0x00013d54 lw gp, 0x28(sp)           |             gp = *(var_28h);
    0x00013d58 lw t9, -0x7f9c(gp)        |             t9 = sym.sshbuf_free;
    0x00013d5c lw s2, -0x7858(gp)        |             s2 = *((gp - 7702));
    0x00013d60 move a0, s0               |             a0 = s0;
    0x00013d64 bal 0x1b7ac               |             sym_sshbuf_free ();
    0x00013d68 lw gp, 0x28(sp)           |             gp = *(var_28h);
    0x00013d6c lw a0, (s2)               |             a0 = *(s2);
    0x00013d70 addiu a1, zero, 1         |             a1 = 1;
    0x00013d74 lw s0, -0x7fdc(gp)        |             s0 = *(gp);
    0x00013d78 lw a3, -0x7fdc(gp)        |             a3 = *(gp);
    0x00013d7c lw t9, -0x74ac(gp)        |             t9 = sym.imp.__fprintf_chk
                                         |             /* str._____BEGIN_SSH2_PUBLIC_KEY_____ */
    0x00013d80 addiu a3, a3, 0x630       |             a3 += 0x630;
                                         |             /* esilref: '&s
' */
    0x00013d84 addiu a2, s0, 0x40b0      |             a2 = s0 + 0x40b0;
    0x00013d88 jalr t9                   |             t9 ();
    0x00013d8c lw gp, 0x28(sp)           |             gp = *(var_28h);
    0x00013d90 lw a0, (s2)               |             a0 = *(s2);
    0x00013d94 move a3, s1               |             a3 = s1;
    0x00013d98 lw a2, -0x7fdc(gp)        |             a2 = *(gp);
    0x00013d9c lw t9, -0x74ac(gp)        |             t9 = sym.imp.__fprintf_chk
                                         |             /* str.Comment:___s__n_s */
    0x00013da0 addiu a2, a2, 0x650       |             a2 += 0x650;
    0x00013da4 addiu a1, zero, 1         |             a1 = 1;
    0x00013da8 sw s4, 0x10(sp)           |             *(var_10h) = s4;
    0x00013dac jalr t9                   |             t9 ();
    0x00013db0 lw gp, 0x28(sp)           |             gp = *(var_28h);
    0x00013db4 lw a0, (s2)               |             a0 = *(s2);
                                         |             /* esilref: '&s
' */
    0x00013db8 addiu a2, s0, 0x40b0      |             a2 = s0 + 0x40b0;
    0x00013dbc lw a3, -0x7fdc(gp)        |             a3 = *(gp);
    0x00013dc0 lw t9, -0x74ac(gp)        |             t9 = sym.imp.__fprintf_chk
                                         |             /* str._____END_SSH2_PUBLIC_KEY_____ */
    0x00013dc4 addiu a3, a3, 0x664       |             a3 += 0x664;
    0x00013dc8 addiu a1, zero, 1         |             a1 = 1;
    0x00013dcc jalr t9                   |             t9 ();
    0x00013dd0 lw gp, 0x28(sp)           |             gp = *(var_28h);
    0x00013dd4 lw t9, -0x75e4(gp)        |             t9 = sym.imp.free;
    0x00013dd8 move a0, s4               |             a0 = s4;
    0x00013ddc jalr t9                   |             t9 ();
    0x00013de0 lw gp, 0x28(sp)           |             gp = *(var_28h);
    0x00013de4 lw t9, -0x7954(gp)        |             t9 = sym.imp.exit;
    0x00013de8 move a0, zero             |             a0 = 0;
    0x00013dec jalr t9                   |             t9 ();
                                         |         }
    0x00013df0 lw v0, -0x7fdc(gp)        |         v0 = *(gp);
    0x00013df4 lw t9, -0x7fbc(gp)        |         t9 = sym.sshfatal;
                                         |         /* str.sshbuf_dtob64_string_failed */
    0x00013df8 addiu v0, v0, 0x5e8       |         v0 += aav.0x000005e8;
    0x00013dfc sw v0, 0x18(sp)           |         *(var_18h) = v0;
    0x00013e00 sw zero, 0x14(sp)         |         *(var_14h) = 0;
    0x00013e04 sw s2, 0x10(sp)           |         *(var_10h) = s2;
    0x00013e08 addiu a3, zero, 1         |         a3 = 1;
    0x00013e0c addiu a2, zero, 0x164     |         a2 = aav.0x00000164;
    0x00013e10 b 0x13c3c                 |         
                                         |     } while (1);
                                         | label_13:
    0x00013e14 lw v0, -0x7fdc(gp)        |     v0 = *(gp);
    0x00013e18 lw t9, -0x7fbc(gp)        |     t9 = sym.sshfatal;
                                         |     /* str.sshbuf_new_failed */
    0x00013e1c addiu v0, v0, -0xe5c      |     v0 += -0xe5c;
    0x00013e20 sw v0, 0x18(sp)           |     *(var_18h) = v0;
    0x00013e24 sw zero, 0x14(sp)         |     *(var_14h) = 0;
    0x00013e28 sw s2, 0x10(sp)           |     *(var_10h) = s2;
    0x00013e2c addiu a3, zero, 1         |     a3 = 1;
    0x00013e30 addiu a2, zero, 0x160     |     a2 = aav.0x00000160;
    0x00013e34 b 0x13c3c                 |     goto label_1;
                                         | label_15:
    0x00013e38 lw v0, -0x7858(gp)        |     v0 = *((gp - 7702));
    0x00013e3c lw t9, -0x755c(gp)        |     t9 = sym.imp.PEM_write_DSA_PUBKEY;
    0x00013e40 lw a1, 0xc(s2)            |     a1 = *((s2 + 3));
    0x00013e44 lw a0, (v0)               |     a0 = *(v0);
    0x00013e48 jalr t9                   |     t9 ();
    0x00013e4c lw gp, 0x28(sp)           |     gp = *(var_28h);
                                         |     if (v0 == 0) {
    0x00013e50 beqz v0, 0x13fb4          |         goto label_18;
                                         |     }
                                         |     do {
                                         | label_2:
    0x00013e54 lw t9, -0x7954(gp)        |         t9 = sym.imp.exit;
    0x00013e58 move a0, zero             |         a0 = 0;
    0x00013e5c jalr t9                   |         t9 ();
                                         | label_10:
    0x00013e60 lw v0, -0x7858(gp)        |         v0 = *((gp - 7702));
    0x00013e64 lw t9, -0x755c(gp)        |         t9 = sym.imp.PEM_write_DSA_PUBKEY;
    0x00013e68 lw a1, 0xc(s3)            |         a1 = *((s3 + 3));
    0x00013e6c lw a0, (v0)               |         a0 = *(v0);
    0x00013e70 jalr t9                   |         t9 ();
    0x00013e74 lw gp, 0x28(sp)           |         gp = *(var_28h);
    0x00013e78 bnez v0, 0x13e54          |         
                                         |     } while (v0 != 0);
    0x00013e7c lw v0, -0x7fdc(gp)        |     v0 = *(gp);
    0x00013e80 lw t9, -0x7fbc(gp)        |     t9 = sym.sshfatal;
                                         |     /* str.PEM_write_DSA_PUBKEY_failed */
    0x00013e84 addiu v0, v0, 0x6a0       |     v0 += 0x6a0;
    0x00013e88 sw v0, 0x18(sp)           |     *(var_18h) = v0;
    0x00013e8c sw zero, 0x14(sp)         |     *(var_14h) = 0;
    0x00013e90 sw s1, 0x10(sp)           |     *(var_10h) = s1;
    0x00013e94 move a3, zero             |     a3 = 0;
    0x00013e98 addiu a2, zero, 0x198     |     a2 = aav.0x00000198;
                                         | label_3:
    0x00013e9c lw a1, -0x7fdc(gp)        |     a1 = *(gp);
    0x00013ea0 lw a0, -0x7fdc(gp)        |     a0 = *(gp);
                                         |     /* str.do_convert_to_pem */
    0x00013ea4 addiu a1, a1, 0x1bc8      |     a1 += 0x1bc8;
                                         |     /* str.ssh_keygen.c */
    0x00013ea8 addiu a0, a0, -0xe90      |     a0 += -0xe90;
    0x00013eac bal 0x33940               |     sym_sshfatal ();
                                         | label_11:
    0x00013eb0 lw t9, -0x7700(gp)        |     t9 = sym.imp.PEM_write_EC_PUBKEY;
    0x00013eb4 lw a1, 0x14(s3)           |     a1 = *((s3 + 5));
    0x00013eb8 lw a0, (v0)               |     a0 = *(v0);
    0x00013ebc jalr t9                   |     t9 ();
    0x00013ec0 lw gp, 0x28(sp)           |     gp = *(var_28h);
                                         |     if (v0 != 0) {
    0x00013ec4 bnez v0, 0x13e54          |         goto label_2;
                                         |     }
    0x00013ec8 lw v0, -0x7fdc(gp)        |     v0 = *(gp);
    0x00013ecc lw t9, -0x7fbc(gp)        |     t9 = sym.sshfatal;
                                         |     /* str.PEM_write_EC_PUBKEY_failed */
    0x00013ed0 addiu v0, v0, 0x6bc       |     v0 += 0x6bc;
    0x00013ed4 sw v0, 0x18(sp)           |     *(var_18h) = v0;
    0x00013ed8 sw zero, 0x14(sp)         |     *(var_14h) = 0;
    0x00013edc sw s2, 0x10(sp)           |     *(var_10h) = s2;
    0x00013ee0 move a3, zero             |     a3 = 0;
    0x00013ee4 addiu a2, zero, 0x19d     |     a2 = 0x19d;
    0x00013ee8 b 0x13e9c                 |     goto label_3;
                                         | label_12:
    0x00013eec lw v0, -0x7858(gp)        |     v0 = *((gp - 7702));
    0x00013ef0 lw t9, -0x7914(gp)        |     t9 = sym.imp.PEM_write_RSAPublicKey;
    0x00013ef4 lw a1, 8(s3)              |     a1 = *((s3 + 2));
    0x00013ef8 lw a0, (v0)               |     a0 = *(v0);
    0x00013efc jalr t9                   |     t9 ();
    0x00013f00 lw gp, 0x28(sp)           |     gp = *(var_28h);
                                         |     if (v0 != 0) {
    0x00013f04 bnez v0, 0x13e54          |         goto label_2;
                                         |     }
    0x00013f08 lw v0, -0x7fdc(gp)        |     v0 = *(gp);
    0x00013f0c lw t9, -0x7fbc(gp)        |     t9 = sym.sshfatal;
                                         |     /* str.PEM_write_RSAPublicKey_failed */
    0x00013f10 addiu v0, v0, 0x6f0       |     v0 += 0x6f0;
    0x00013f14 sw v0, 0x18(sp)           |     *(var_18h) = v0;
    0x00013f18 sw zero, 0x14(sp)         |     *(var_14h) = 0;
    0x00013f1c sw s2, 0x10(sp)           |     *(var_10h) = s2;
    0x00013f20 move a3, zero             |     a3 = 0;
    0x00013f24 addiu a2, zero, 0x194     |     a2 = aav.0x00000194;
    0x00013f28 b 0x13e9c                 |     goto label_3;
                                         | label_16:
    0x00013f2c lw t9, -0x7700(gp)        |     t9 = sym.imp.PEM_write_EC_PUBKEY;
    0x00013f30 lw a1, 0x14(s2)           |     a1 = *((s2 + 5));
    0x00013f34 lw a0, (v0)               |     a0 = *(v0);
    0x00013f38 jalr t9                   |     t9 ();
    0x00013f3c lw gp, 0x28(sp)           |     gp = *(var_28h);
                                         |     if (v0 != 0) {
    0x00013f40 bnez v0, 0x13e54          |         goto label_2;
                                         |     }
    0x00013f44 lw v0, -0x7fdc(gp)        |     v0 = *(gp);
    0x00013f48 lw t9, -0x7fbc(gp)        |     t9 = sym.sshfatal;
                                         |     /* str.PEM_write_EC_PUBKEY_failed */
    0x00013f4c addiu v0, v0, 0x6bc       |     v0 += 0x6bc;
    0x00013f50 sw v0, 0x18(sp)           |     *(var_18h) = v0;
    0x00013f54 sw zero, 0x14(sp)         |     *(var_14h) = 0;
    0x00013f58 sw s0, 0x10(sp)           |     *(var_10h) = s0;
    0x00013f5c move a3, zero             |     a3 = 0;
    0x00013f60 addiu a2, zero, 0x185     |     a2 = 0x185;
                                         | label_4:
    0x00013f64 lw a1, -0x7fdc(gp)        |     a1 = *(gp);
    0x00013f68 lw a0, -0x7fdc(gp)        |     a0 = *(gp);
                                         |     /* str.do_convert_to_pkcs8 */
    0x00013f6c addiu a1, a1, 0x1bdc      |     a1 += 0x1bdc;
                                         |     /* str.ssh_keygen.c */
    0x00013f70 addiu a0, a0, -0xe90      |     a0 += -0xe90;
    0x00013f74 bal 0x33940               |     sym_sshfatal ();
                                         | label_17:
    0x00013f78 lw t9, -0x792c(gp)        |     t9 = sym.imp.PEM_write_RSA_PUBKEY;
    0x00013f7c lw a1, 8(s2)              |     a1 = *((s2 + 2));
    0x00013f80 lw a0, (v0)               |     a0 = *(v0);
    0x00013f84 jalr t9                   |     t9 ();
    0x00013f88 lw gp, 0x28(sp)           |     gp = *(var_28h);
                                         |     if (v0 != 0) {
    0x00013f8c bnez v0, 0x13e54          |         goto label_2;
                                         |     }
    0x00013f90 lw v0, -0x7fdc(gp)        |     v0 = *(gp);
    0x00013f94 lw t9, -0x7fbc(gp)        |     t9 = sym.sshfatal;
                                         |     /* str.PEM_write_RSA_PUBKEY_failed */
    0x00013f98 addiu v0, v0, 0x684       |     v0 += 0x684;
    0x00013f9c sw v0, 0x18(sp)           |     *(var_18h) = v0;
    0x00013fa0 sw zero, 0x14(sp)         |     *(var_14h) = 0;
    0x00013fa4 sw s0, 0x10(sp)           |     *(var_10h) = s0;
    0x00013fa8 move a3, zero             |     a3 = 0;
    0x00013fac addiu a2, zero, 0x17c     |     a2 = aav.0x0000017c;
    0x00013fb0 b 0x13f64                 |     goto label_4;
                                         | label_18:
    0x00013fb4 lw v0, -0x7fdc(gp)        |     v0 = *(gp);
    0x00013fb8 lw t9, -0x7fbc(gp)        |     t9 = sym.sshfatal;
                                         |     /* str.PEM_write_DSA_PUBKEY_failed */
    0x00013fbc addiu v0, v0, 0x6a0       |     v0 += 0x6a0;
    0x00013fc0 sw v0, 0x18(sp)           |     *(var_18h) = v0;
    0x00013fc4 sw zero, 0x14(sp)         |     *(var_14h) = 0;
    0x00013fc8 sw s1, 0x10(sp)           |     *(var_10h) = s1;
    0x00013fcc move a3, zero             |     a3 = 0;
    0x00013fd0 addiu a2, zero, 0x180     |     a2 = aav.0x00000180;
    0x00013fd4 b 0x13f64                 |     goto label_4;
                                         | }
    ; assembly                           | /* r2dec pseudo code output */
                                         | /* /logs/firmware/unblob_extracted/firmware_extract/4325012-58052244.squashfs_v4_le_extract/usr/bin/ssh-keygen @ 0x34660 */
                                         | #include <stdint.h>
                                         |  
    ; (fcn) fcn.00034660 ()              | void fcn_00034660 () {
    0x00034660 lui gp, 6                 |     
    0x00034664 addiu gp, gp, 0x7a40      |     
    0x00034668 addu gp, gp, t9           |     gp += t9;
    0x0003466c addiu sp, sp, -0x48       |     
    0x00034670 lw t9, -0x7fc8(gp)        |     t9 = sym.xstrdup;
    0x00034674 sw gp, 0x20(sp)           |     *(var_20h) = gp;
    0x00034678 sw ra, 0x44(sp)           |     *(var_44h) = ra;
    0x0003467c sw s3, 0x38(sp)           |     *(var_38h) = s3;
    0x00034680 sw s2, 0x34(sp)           |     *(var_34h_2) = s2;
    0x00034684 sw s1, 0x30(sp)           |     *(var_30h) = s1;
    0x00034688 sw s0, 0x2c(sp)           |     *(var_2ch) = s0;
    0x0003468c sw s5, 0x40(sp)           |     *(var_40h) = s5;
    0x00034690 sw s4, 0x3c(sp)           |     *(var_3ch) = s4;
    0x00034694 move s1, a0               |     s1 = a0;
    0x00034698 move a0, a1               |     a0 = a1;
    0x0003469c move s2, a2               |     s2 = a2;
    0x000346a0 move s3, a3               |     s3 = a3;
    0x000346a4 bal 0x3b7c4               |     sym_xstrdup ();
    0x000346a8 lw gp, 0x20(sp)           |     gp = *(var_20h);
    0x000346ac move a0, v0               |     a0 = v0;
    0x000346b0 lw t9, -0x7f98(gp)        |     t9 = sym.lowercase;
    0x000346b4 move s0, v0               |     s0 = v0;
    0x000346b8 bal 0x407d8               |     sym_lowercase ();
    0x000346bc lw v0, 0x58(sp)           |     v0 = *(var_10h);
    0x000346c0 lw gp, 0x20(sp)           |     gp = *(var_20h);
                                         |     if (v0 != 0) {
    0x000346c4 beqz v0, 0x34760          |         
    0x000346c8 lw a2, -0x7fdc(gp)        |         a2 = *(gp);
    0x000346cc lw s5, -0x7f94(gp)        |         s5 = sym.host_hash;
                                         |         /* esilref: '&s ' */
    0x000346d0 addiu s4, a2, 0x7b8       |         s4 = a2 + 0x7b8;
    0x000346d4 move a0, s0               |         a0 = s0;
                                         | label_0:
    0x000346d8 move a2, zero             |         a2 = 0;
    0x000346dc move t9, s5               |         t9 = s5;
    0x000346e0 move a1, zero             |         a1 = 0;
    0x000346e4 bal 0x341b4               |         sym_host_hash ();
    0x000346e8 lw gp, 0x20(sp)           |         gp = *(var_20h);
                                         |         if (v0 != 0) {
    0x000346ec bnez v0, 0x347e8          |             goto label_2;
                                         |         }
    0x000346f0 lw v0, -0x7fdc(gp)        |         v0 = *(gp);
    0x000346f4 lw a1, -0x7fdc(gp)        |         a1 = *(gp);
    0x000346f8 lw a0, -0x7fdc(gp)        |         a0 = *(gp);
                                         |         /* str.host_hash_failed */
    0x000346fc addiu v0, v0, 0x460c      |         v0 += 0x460c;
    0x00034700 lw t9, -0x7fac(gp)        |         t9 = sym.sshlog;
    0x00034704 sw v0, 0x18(sp)           |         *(var_18h_2) = v0;
    0x00034708 addiu v0, zero, 2         |         v0 = 2;
    0x0003470c sw v0, 0x10(sp)           |         *(var_10h_2) = v0;
    0x00034710 addiu a3, zero, 1         |         a3 = 1;
    0x00034714 addiu a2, zero, 0x1c1     |         a2 = 0x1c1;
                                         |         /* str.write_host_entry */
    0x00034718 addiu a1, a1, 0x48a4      |         a1 += 0x48a4;
                                         |         /* str.hostfile.c */
    0x0003471c addiu a0, a0, 0x4420      |         a0 += 0x4420;
    0x00034720 sw zero, 0x14(sp)         |         *(var_14h_2) = 0;
    0x00034724 bal 0x3740c               |         sym_sshlog ();
    0x00034728 lw gp, 0x20(sp)           |         gp = *(var_20h);
    0x0003472c lw t9, -0x75e4(gp)        |         t9 = sym.imp.free;
    0x00034730 move a0, s0               |         a0 = s0;
    0x00034734 jalr t9                   |         t9 ();
    0x00034738 lw ra, 0x44(sp)           |         ra = *(var_44h);
    0x0003473c lw s5, 0x40(sp)           |         s5 = *(var_40h);
    0x00034740 lw s4, 0x3c(sp)           |         s4 = *(var_3ch);
    0x00034744 lw s3, 0x38(sp)           |         s3 = *(var_38h);
    0x00034748 lw s2, 0x34(sp)           |         s2 = *(var_34h_2);
    0x0003474c lw s1, 0x30(sp)           |         s1 = *(var_30h);
    0x00034750 lw s0, 0x2c(sp)           |         s0 = *(var_2ch);
    0x00034754 move v0, zero             |         v0 = 0;
    0x00034758 addiu sp, sp, 0x48        |         
    0x0003475c jr ra                     |         return v0;
                                         |     }
    0x00034760 lw t9, -0x74ac(gp)        |     t9 = sym.imp.__fprintf_chk
                                         |     if (s2 == 0) {
    0x00034764 beqz s2, 0x348f4          |         goto label_3;
                                         |     }
    0x00034768 lw a2, -0x7fdc(gp)        |     a2 = *(gp);
    0x0003476c sw s2, 0x10(sp)           |     *(var_10h_2) = s2;
    0x00034770 move a3, s0               |     a3 = s0;
                                         |     /* str._s__s_ */
    0x00034774 addiu a2, a2, 0x4620      |     a2 += 0x4620;
    0x00034778 addiu a1, zero, 1         |     a1 = 1;
    0x0003477c move a0, s1               |     a0 = s1;
    0x00034780 jalr t9                   |     t9 ();
    0x00034784 lw gp, 0x20(sp)           |     gp = *(var_20h);
                                         | label_1:
    0x00034788 lw t9, -0x75e4(gp)        |     t9 = sym.imp.free;
    0x0003478c move a0, s0               |     a0 = s0;
    0x00034790 jalr t9                   |     t9 ();
    0x00034794 lw gp, 0x20(sp)           |     gp = *(var_20h);
    0x00034798 move a1, s1               |     a1 = s1;
    0x0003479c lw t9, -0x7e6c(gp)        |     t9 = sym.sshkey_write;
    0x000347a0 move a0, s3               |     a0 = s3;
    0x000347a4 bal 0x1f9d4               |     sym_sshkey_write ();
    0x000347a8 lw gp, 0x20(sp)           |     gp = *(var_20h);
                                         |     if (v0 != 0) {
    0x000347ac bnez v0, 0x3482c          |         goto label_4;
                                         |     }
    0x000347b0 lw t9, -0x77fc(gp)        |     t9 = sym.imp.fputc;
    0x000347b4 move a1, s1               |     a1 = s1;
    0x000347b8 addiu a0, zero, 0xa       |     a0 = 0xa;
    0x000347bc jalr t9                   |     t9 ();
                                         |     do {
    0x000347c0 lw ra, 0x44(sp)           |         ra = *(var_44h);
    0x000347c4 lw s5, 0x40(sp)           |         s5 = *(var_40h);
    0x000347c8 lw s4, 0x3c(sp)           |         s4 = *(var_3ch);
    0x000347cc lw s3, 0x38(sp)           |         s3 = *(var_38h);
    0x000347d0 lw s2, 0x34(sp)           |         s2 = *(var_34h_2);
    0x000347d4 lw s1, 0x30(sp)           |         s1 = *(var_30h);
    0x000347d8 lw s0, 0x2c(sp)           |         s0 = *(var_2ch);
    0x000347dc addiu v0, zero, 1         |         v0 = 1;
    0x000347e0 addiu sp, sp, 0x48        |         
    0x000347e4 jr ra                     |         return v0;
                                         | label_2:
    0x000347e8 lw t9, -0x74ac(gp)        |         t9 = sym.imp.__fprintf_chk
    0x000347ec move a3, v0               |         a3 = v0;
    0x000347f0 move a2, s4               |         a2 = s4;
    0x000347f4 addiu a1, zero, 1         |         a1 = 1;
    0x000347f8 move a0, s1               |         a0 = s1;
    0x000347fc jalr t9                   |         t9 ();
    0x00034800 lw gp, 0x20(sp)           |         gp = *(var_20h);
    0x00034804 lw t9, -0x75e4(gp)        |         t9 = sym.imp.free;
    0x00034808 move a0, s0               |         a0 = s0;
    0x0003480c jalr t9                   |         t9 ();
    0x00034810 lw gp, 0x20(sp)           |         gp = *(var_20h);
    0x00034814 move a1, s1               |         a1 = s1;
    0x00034818 lw t9, -0x7e6c(gp)        |         t9 = sym.sshkey_write;
    0x0003481c move a0, s3               |         a0 = s3;
    0x00034820 bal 0x1f9d4               |         sym_sshkey_write ();
    0x00034824 lw gp, 0x20(sp)           |         gp = *(var_20h);
                                         |         if (v0 != 0) {
    0x00034828 beqz v0, 0x348b0          |             
                                         | label_4:
    0x0003482c lw t9, -0x7fd0(gp)        |             t9 = sym.ssh_err;
    0x00034830 move a0, v0               |             a0 = v0;
    0x00034834 bal 0x1b0f0               |             sym_ssh_err ();
    0x00034838 lw gp, 0x20(sp)           |             gp = *(var_20h);
    0x0003483c sw v0, 0x14(sp)           |             *(var_14h_2) = v0;
    0x00034840 addiu a3, zero, 1         |             a3 = 1;
    0x00034844 lw v0, -0x7fdc(gp)        |             v0 = *(gp);
    0x00034848 lw a1, -0x7fdc(gp)        |             a1 = *(gp);
    0x0003484c lw a0, -0x7fdc(gp)        |             a0 = *(gp);
                                         |             /* str.sshkey_write */
    0x00034850 addiu v0, v0, 0x4628      |             v0 += 0x4628;
    0x00034854 lw t9, -0x7fac(gp)        |             t9 = sym.sshlog;
    0x00034858 sw v0, 0x18(sp)           |             *(var_18h_2) = v0;
    0x0003485c addiu v0, zero, 2         |             v0 = 2;
    0x00034860 addiu a2, zero, 0x1cf     |             a2 = 0x1cf;
    0x00034864 sw v0, 0x10(sp)           |             *(var_10h_2) = v0;
                                         |             /* str.write_host_entry */
    0x00034868 addiu a1, a1, 0x48a4      |             a1 += 0x48a4;
                                         |             /* str.hostfile.c */
    0x0003486c addiu a0, a0, 0x4420      |             a0 += 0x4420;
    0x00034870 bal 0x3740c               |             sym_sshlog ();
    0x00034874 lw gp, 0x20(sp)           |             gp = *(var_20h);
    0x00034878 move a1, s1               |             a1 = s1;
    0x0003487c lw t9, -0x77fc(gp)        |             t9 = sym.imp.fputc;
    0x00034880 addiu a0, zero, 0xa       |             a0 = 0xa;
    0x00034884 jalr t9                   |             t9 ();
    0x00034888 lw ra, 0x44(sp)           |             ra = *(var_44h);
    0x0003488c lw s5, 0x40(sp)           |             s5 = *(var_40h);
    0x00034890 lw s4, 0x3c(sp)           |             s4 = *(var_3ch);
    0x00034894 lw s3, 0x38(sp)           |             s3 = *(var_38h);
    0x00034898 lw s2, 0x34(sp)           |             s2 = *(var_34h_2);
    0x0003489c lw s1, 0x30(sp)           |             s1 = *(var_30h);
    0x000348a0 lw s0, 0x2c(sp)           |             s0 = *(var_2ch);
    0x000348a4 move v0, zero             |             v0 = 0;
    0x000348a8 addiu sp, sp, 0x48        |             
    0x000348ac jr ra                     |             return v0;
                                         |         }
    0x000348b0 lw t9, -0x77fc(gp)        |         t9 = sym.imp.fputc;
    0x000348b4 addiu a0, zero, 0xa       |         a0 = 0xa;
    0x000348b8 move a1, s1               |         a1 = s1;
    0x000348bc jalr t9                   |         t9 ();
    0x000348c0 lw gp, 0x20(sp)           |         gp = *(var_20h);
    0x000348c4 move a0, s2               |         a0 = s2;
    0x000348c8 lw t9, -0x7fc8(gp)        |         t9 = sym.xstrdup;
    0x000348cc beqz s2, 0x347c0          |         
                                         |     } while (s2 == 0);
    0x000348d0 move s2, zero             |     s2 = 0;
    0x000348d4 bal 0x3b7c4               |     sym_xstrdup ();
    0x000348d8 lw gp, 0x20(sp)           |     gp = *(var_20h);
    0x000348dc move a0, v0               |     a0 = v0;
    0x000348e0 lw t9, -0x7f98(gp)        |     t9 = sym.lowercase;
    0x000348e4 move s0, v0               |     s0 = v0;
    0x000348e8 bal 0x407d8               |     sym_lowercase ();
    0x000348ec move a0, s0               |     a0 = s0;
    0x000348f0 b 0x346d8                 |     goto label_0;
                                         | label_3:
    0x000348f4 lw a2, -0x7fdc(gp)        |     a2 = *(gp);
    0x000348f8 move a3, s0               |     a3 = s0;
                                         |     /* esilref: '&s ' */
    0x000348fc addiu a2, a2, 0x7b8       |     a2 += 0x7b8;
    0x00034900 addiu a1, zero, 1         |     a1 = 1;
    0x00034904 move a0, s1               |     a0 = s1;
    0x00034908 jalr t9                   |     t9 ();
    0x0003490c lw gp, 0x20(sp)           |     gp = *(var_20h);
    0x00034910 b 0x34788                 |     goto label_1;
                                         | }
    ; assembly                           | /* r2dec pseudo code output */
                                         | /* /logs/firmware/unblob_extracted/firmware_extract/4325012-58052244.squashfs_v4_le_extract/usr/bin/ssh-keygen @ 0x38330 */
                                         | #include <stdint.h>
                                         |  
    ; (fcn) fcn.00038330 ()              | void fcn_00038330 () {
    0x00038330 lui gp, 6                 |     
    0x00038334 addiu gp, gp, 0x3d70      |     
    0x00038338 addu gp, gp, t9           |     gp += t9;
    0x0003833c addiu sp, sp, -0x68       |     
    0x00038340 lw t9, -0x77b8(gp)        |     t9 = sym.imp.time;
    0x00038344 sw s2, 0x50(sp)           |     *(var_50h) = s2;
    0x00038348 lw s2, -0x773c(gp)        |     s2 = *((gp - 7631));
    0x0003834c sw gp, 0x38(sp)           |     *(var_38h) = gp;
    0x00038350 sw ra, 0x64(sp)           |     *(var_64h) = ra;
    0x00038354 sw s6, 0x60(sp)           |     *(var_60h) = s6;
    0x00038358 sw s5, 0x5c(sp)           |     *(var_5ch) = s5;
    0x0003835c sw s4, 0x58(sp)           |     *(var_58h) = s4;
    0x00038360 sw s3, 0x54(sp)           |     *(var_54h) = s3;
    0x00038364 sw s1, 0x4c(sp)           |     *(var_4ch) = s1;
    0x00038368 sw s0, 0x48(sp)           |     *(var_48h) = s0;
    0x0003836c lw v0, (s2)               |     v0 = *(s2);
    0x00038370 addiu s0, sp, 0x40        |     s0 = sp + 0x40;
    0x00038374 move s1, a0               |     s1 = a0;
    0x00038378 sw v0, 0x44(sp)           |     *(var_44h) = v0;
    0x0003837c move a0, s0               |     a0 = s0;
    0x00038380 move s3, a1               |     s3 = a1;
    0x00038384 move s4, a2               |     s4 = a2;
    0x00038388 move s5, a3               |     s5 = a3;
    0x0003838c lw s6, 0x80(sp)           |     s6 = *(arg_80h);
    0x00038390 jalr t9                   |     t9 ();
    0x00038394 lw gp, 0x38(sp)           |     gp = *(var_38h);
    0x00038398 lw t9, -0x78a0(gp)        |     t9 = sym.imp.gmtime;
    0x0003839c move a0, s0               |     a0 = s0;
    0x000383a0 jalr t9                   |     t9 ();
    0x000383a4 lw gp, 0x38(sp)           |     gp = *(var_38h);
                                         |     if (v0 == 0) {
    0x000383a8 beqz v0, 0x384cc          |         goto label_0;
                                         |     }
    0x000383ac lw t9, -0x7ec4(gp)        |     t9 = *(gp);
    0x000383b0 lw a0, 0x14(v0)           |     a0 = *((v0 + 5));
    0x000383b4 addiu a1, zero, 0x76c     |     a1 = 0x76c;
    0x000383b8 move s0, v0               |     s0 = v0;
    0x000383bc jalr t9                   |     t9 ();
    0x000383c0 lw v1, 0x7c(sp)           |     v1 = *(arg_7ch);
    0x000383c4 sw s3, 0x24(sp)           |     *(var_24h) = s3;
    0x000383c8 sw v1, 0x34(sp)           |     *(var_34h_2) = v1;
    0x000383cc lw v1, 0x78(sp)           |     v1 = *(arg_78h);
    0x000383d0 sw s5, 0x2c(sp)           |     *(var_2ch_2) = s5;
    0x000383d4 sw v1, 0x30(sp)           |     *(var_30h_2) = v1;
    0x000383d8 sw s4, 0x28(sp)           |     *(var_28h) = s4;
    0x000383dc lw v1, (s0)               |     v1 = *(s0);
    0x000383e0 lw gp, 0x38(sp)           |     gp = *(var_38h);
    0x000383e4 sw v1, 0x20(sp)           |     *(var_20h_2) = v1;
    0x000383e8 lw v1, 4(s0)              |     v1 = *((s0 + 1));
    0x000383ec move s3, v0               |     s3 = v0;
    0x000383f0 sw v1, 0x1c(sp)           |     *(var_1ch) = v1;
    0x000383f4 lw v1, 8(s0)              |     v1 = *((s0 + 2));
    0x000383f8 lw t9, -0x7ec4(gp)        |     t9 = *(gp);
    0x000383fc sw v1, 0x18(sp)           |     *(var_18h) = v1;
    0x00038400 lw v0, 0xc(s0)            |     v0 = *((s0 + 3));
    0x00038404 addiu a1, zero, 1         |     a1 = 1;
    0x00038408 sw v0, 0x14(sp)           |     *(var_14h) = v0;
    0x0003840c lw a0, 0x10(s0)           |     a0 = *((s0 + 4));
    0x00038410 jalr t9                   |     t9 ();
    0x00038414 lw gp, 0x38(sp)           |     gp = *(var_38h);
    0x00038418 sw v0, 0x10(sp)           |     *(var_10h) = v0;
    0x0003841c move a3, s3               |     a3 = s3;
    0x00038420 lw a2, -0x7fdc(gp)        |     a2 = *(gp);
    0x00038424 lw t9, -0x74ac(gp)        |     t9 = sym.imp.__fprintf_chk
                                         |     /* str._04d_02d_02d_02d_02d_02d__u__u__u__u__x_ */
    0x00038428 addiu a2, a2, 0x4b2c      |     a2 += 0x4b2c;
    0x0003842c addiu a1, zero, 1         |     a1 = 1;
    0x00038430 move a0, s1               |     a0 = s1;
    0x00038434 jalr t9                   |     t9 ();
    0x00038438 lw gp, 0x38(sp)           |     gp = *(var_38h);
                                         |     if (v0 < 0) {
    0x0003843c bltz v0, 0x384cc          |         goto label_0;
                                         |     }
    0x00038440 lw t9, -0x76ec(gp)        |     t9 = sym.imp.BN_print_fp;
    0x00038444 move a1, s6               |     a1 = s6;
    0x00038448 move a0, s1               |     a0 = s1;
    0x0003844c jalr t9                   |     t9 ();
    0x00038450 lw gp, 0x38(sp)           |     gp = *(var_38h);
                                         |     if (v0 <= 0) {
    0x00038454 blez v0, 0x384cc          |         goto label_0;
                                         |     }
    0x00038458 lw a2, -0x7fdc(gp)        |     a2 = *(gp);
    0x0003845c lw t9, -0x74ac(gp)        |     t9 = sym.imp.__fprintf_chk
    0x00038460 addiu a2, a2, 0x28c       |     a2 += aav.0x0000028c;
    0x00038464 addiu a1, zero, 1         |     a1 = 1;
    0x00038468 move a0, s1               |     a0 = s1;
    0x0003846c jalr t9                   |     t9 ();
    0x00038470 lw gp, 0x38(sp)           |     gp = *(var_38h);
    0x00038474 move a0, s1               |     a0 = s1;
    0x00038478 lw t9, -0x763c(gp)        |     t9 = sym.imp.fflush;
    0x0003847c move s0, v0               |     s0 = v0;
    0x00038480 jalr t9                   |     t9 ();
    0x00038484 lw gp, 0x38(sp)           |     gp = *(var_38h);
    0x00038488 lw t9, -0x7dd0(gp)        |     t9 = *(gp);
    0x0003848c slti a0, s0, 1            |     a0 = (s0 < 1) ? 1 : 0;
    0x00038490 jalr t9                   |     t9 ();
    0x00038494 lw gp, 0x38(sp)           |     gp = *(var_38h);
                                         |     do {
    0x00038498 lw a0, 0x44(sp)           |         a0 = *(var_44h);
    0x0003849c lw v1, (s2)               |         v1 = *(s2);
    0x000384a0 lw ra, 0x64(sp)           |         ra = *(var_64h);
                                         |         if (a0 != v1) {
    0x000384a4 bne a0, v1, 0x384d4       |             goto label_1;
                                         |         }
    0x000384a8 lw s6, 0x60(sp)           |         s6 = *(var_60h);
    0x000384ac lw s5, 0x5c(sp)           |         s5 = *(var_5ch);
    0x000384b0 lw s4, 0x58(sp)           |         s4 = *(var_58h);
    0x000384b4 lw s3, 0x54(sp)           |         s3 = *(var_54h);
    0x000384b8 lw s2, 0x50(sp)           |         s2 = *(var_50h);
    0x000384bc lw s1, 0x4c(sp)           |         s1 = *(var_4ch);
    0x000384c0 lw s0, 0x48(sp)           |         s0 = *(var_48h);
    0x000384c4 addiu sp, sp, 0x68        |         
    0x000384c8 jr ra                     |         return v0;
                                         | label_0:
    0x000384cc addiu v0, zero, -1        |         v0 = -1;
    0x000384d0 b 0x38498                 |         
                                         |     } while (1);
                                         | label_1:
    0x000384d4 lw t9, -0x77e8(gp)        |     t9 = sym.imp.__stack_chk_fail;
    0x000384d8 jalr t9                   |     t9 ();
    0x000384dc nop                       |     
                                         | }
    ; assembly                               | /* r2dec pseudo code output */
                                             | /* /logs/firmware/unblob_extracted/firmware_extract/4325012-58052244.squashfs_v4_le_extract/usr/bin/ssh-keygen @ 0x38674 */
                                             | #include <stdint.h>
                                             |  
    ; (fcn) fcn.00038674 ()                  | void fcn_00038674 () {
    0x00038674 lui gp, 6                     |     
    0x00038678 addiu gp, gp, 0x3a2c          |     
    0x0003867c addu gp, gp, t9               |     gp += t9;
    0x00038680 addiu sp, sp, -0x1058         |     
    0x00038684 lw v0, -0x7fdc(gp)            |     v0 = *(gp);
    0x00038688 sw s0, 0x103c(sp)             |     *(var_103ch) = s0;
    0x0003868c lw s0, -0x773c(gp)            |     s0 = *((gp - 7631));
    0x00038690 sw gp, 0x28(sp)               |     *(var_28h) = gp;
    0x00038694 sw s3, 0x1048(sp)             |     *(var_1048h) = s3;
    0x00038698 sw s2, 0x1044(sp)             |     *(var_1044h) = s2;
    0x0003869c sw s1, 0x1040(sp)             |     *(var_1040h) = s1;
    0x000386a0 sw ra, 0x1054(sp)             |     *(var_1054h) = ra;
    0x000386a4 sw s5, 0x1050(sp)             |     *(var_1050h) = s5;
    0x000386a8 sw s4, 0x104c(sp)             |     *(var_104ch) = s4;
    0x000386ac lw v1, (s0)                   |     v1 = *(s0);
    0x000386b0 lw t9, -0x78c8(gp)            |     t9 = sym.imp.__snprintf_chk;
                                             |     /* str._s.XXXXXXXXXX */
    0x000386b4 addiu v0, v0, 0x4b64          |     v0 += 0x4b64;
    0x000386b8 addiu s1, sp, 0x34            |     s1 = sp + 0x34;
    0x000386bc sw a0, 0x14(sp)               |     *(var_14h) = a0;
    0x000386c0 move s2, a0                   |     s2 = a0;
    0x000386c4 move s3, a1                   |     s3 = a1;
    0x000386c8 sw v0, 0x10(sp)               |     *(var_10h) = v0;
    0x000386cc addiu a3, zero, 0x1000        |     a3 = 0x1000;
    0x000386d0 addiu a2, zero, 1             |     a2 = 1;
    0x000386d4 addiu a1, zero, 0x1000        |     a1 = 0x1000;
    0x000386d8 move a0, s1                   |     a0 = s1;
    0x000386dc sw v1, 0x1034(sp)             |     *(var_1034h) = v1;
    0x000386e0 jalr t9                       |     t9 ();
    0x000386e4 nop                           |     
    0x000386e8 sltiu v0, v0, 0x1000          |     v0 = (v0 < 0x1000) ? 1 : 0;
    0x000386ec lw gp, 0x28(sp)               |     gp = *(var_28h);
                                             |     if (v0 == 0) {
    0x000386f0 beqz v0, 0x387fc              |         goto label_3;
                                             |     }
    0x000386f4 lw t9, -0x777c(gp)            |     t9 = sym.imp.mkstemp64;
    0x000386f8 move a0, s1                   |     a0 = s1;
    0x000386fc jalr t9                       |     t9 ();
    0x00038700 move s4, v0                   |     s4 = v0;
    0x00038704 addiu v0, zero, -1            |     v0 = -1;
    0x00038708 lw gp, 0x28(sp)               |     gp = *(var_28h);
                                             |     if (s4 == v0) {
    0x0003870c beq s4, v0, 0x38908           |         goto label_4;
                                             |     }
    0x00038710 lw a1, -0x7fdc(gp)            |     a1 = *(gp);
    0x00038714 lw t9, -0x74b8(gp)            |     t9 = sym.imp.fdopen;
    0x00038718 addiu a1, a1, -0xcdc          |     a1 += -0xcdc;
    0x0003871c move a0, s4                   |     a0 = s4;
    0x00038720 jalr t9                       |     t9 ();
    0x00038724 move s5, v0                   |     s5 = v0;
    0x00038728 lw gp, 0x28(sp)               |     gp = *(var_28h);
                                             |     if (v0 == 0) {
    0x0003872c beqz v0, 0x3883c              |         goto label_5;
                                             |     }
    0x00038730 lw a2, -0x7fdc(gp)            |     a2 = *(gp);
    0x00038734 lw t9, -0x74ac(gp)            |     t9 = sym.imp.__fprintf_chk
    0x00038738 move a3, s3                   |     a3 = s3;
                                             |     /* str._lu_n */
    0x0003873c addiu a2, a2, 0x4bd0          |     a2 += 0x4bd0;
    0x00038740 addiu a1, zero, 1             |     a1 = 1;
    0x00038744 move a0, v0                   |     a0 = v0;
    0x00038748 jalr t9                       |     t9 ();
    0x0003874c lw gp, 0x28(sp)               |     gp = *(var_28h);
                                             |     if (v0 > 0) {
    0x00038750 blez v0, 0x38768              |         
    0x00038754 lw t9, -0x76b4(gp)            |         t9 = sym.imp.fclose;
    0x00038758 move a0, s5                   |         a0 = s5;
    0x0003875c jalr t9                       |         t9 ();
    0x00038760 lw gp, 0x28(sp)               |         gp = *(var_28h);
                                             |         if (v0 == 0) {
    0x00038764 beqz v0, 0x388c0              |             goto label_6;
                                             |         }
                                             |     }
                                             | label_1:
    0x00038768 lw t9, -0x7418(gp)            |     t9 = sym.imp.__errno_location;
    0x0003876c jalr t9                       |     t9 ();
    0x00038770 nop                           |     
    0x00038774 lw gp, 0x28(sp)               |     gp = *(var_28h);
    0x00038778 lw t9, -0x7454(gp)            |     t9 = sym.imp.strerror;
    0x0003877c lw a0, (v0)                   |     a0 = *(v0);
    0x00038780 jalr t9                       |     t9 ();
    0x00038784 lw gp, 0x28(sp)               |     gp = *(var_28h);
    0x00038788 sw v0, 0x20(sp)               |     *(var_20h) = v0;
    0x0003878c sw s2, 0x1c(sp)               |     *(var_1ch) = s2;
    0x00038790 lw v0, -0x7fdc(gp)            |     v0 = *(gp);
    0x00038794 lw t9, -0x7fac(gp)            |     t9 = sym.sshlog;
                                             |     /* str.failed_to_write_to_checkpoint_file__s:__s */
    0x00038798 addiu v0, v0, 0x4bfc          |     v0 += 0x4bfc;
    0x0003879c sw v0, 0x18(sp)               |     *(var_18h) = v0;
    0x000387a0 addiu v0, zero, 3             |     v0 = 3;
    0x000387a4 sw zero, 0x14(sp)             |     *(var_14h) = 0;
    0x000387a8 sw v0, 0x10(sp)               |     *(var_10h) = v0;
    0x000387ac move a3, zero                 |     a3 = 0;
    0x000387b0 addiu a2, zero, 0x1de         |     a2 = 0x1de;
                                             | label_2:
    0x000387b4 lw a1, -0x7fdc(gp)            |     a1 = *(gp);
    0x000387b8 lw a0, -0x7fdc(gp)            |     a0 = *(gp);
                                             |     /* str.write_checkpoint */
    0x000387bc addiu a1, a1, 0x51e0          |     a1 += 0x51e0;
                                             |     /* str.moduli.c */
    0x000387c0 addiu a0, a0, 0x4b10          |     a0 += 0x4b10;
    0x000387c4 bal 0x3740c                   |     sym_sshlog ();
    0x000387c8 lw gp, 0x28(sp)               |     gp = *(var_28h);
                                             |     do {
                                             | label_0:
    0x000387cc lw v1, 0x1034(sp)             |         v1 = *(var_1034h);
    0x000387d0 lw v0, (s0)                   |         v0 = *(s0);
    0x000387d4 lw ra, 0x1054(sp)             |         ra = *(var_1054h);
                                             |         if (v1 != v0) {
    0x000387d8 bne v1, v0, 0x38958           |             goto label_7;
                                             |         }
    0x000387dc lw s5, 0x1050(sp)             |         s5 = *(var_1050h);
    0x000387e0 lw s4, 0x104c(sp)             |         s4 = *(var_104ch);
    0x000387e4 lw s3, 0x1048(sp)             |         s3 = *(var_1048h);
    0x000387e8 lw s2, 0x1044(sp)             |         s2 = *(var_1044h);
    0x000387ec lw s1, 0x1040(sp)             |         s1 = *(var_1040h);
    0x000387f0 lw s0, 0x103c(sp)             |         s0 = *(var_103ch);
    0x000387f4 addiu sp, sp, 0x1058          |         
    0x000387f8 jr ra                         |         return v0;
                                             | label_3:
    0x000387fc lw v0, -0x7fdc(gp)            |         v0 = *(gp);
    0x00038800 lw a1, -0x7fdc(gp)            |         a1 = *(gp);
    0x00038804 lw a0, -0x7fdc(gp)            |         a0 = *(gp);
                                             |         /* str.write_checkpoint:_temp_pathname_too_long */
    0x00038808 addiu v0, v0, 0x4b74          |         v0 += 0x4b74;
    0x0003880c lw t9, -0x7fac(gp)            |         t9 = sym.sshlog;
    0x00038810 sw v0, 0x18(sp)               |         *(var_18h) = v0;
    0x00038814 addiu v0, zero, 3             |         v0 = 3;
    0x00038818 sw zero, 0x14(sp)             |         *(var_14h) = 0;
    0x0003881c sw v0, 0x10(sp)               |         *(var_10h) = v0;
    0x00038820 move a3, zero                 |         a3 = 0;
    0x00038824 addiu a2, zero, 0x1cb         |         a2 = 0x1cb;
                                             |         /* str.write_checkpoint */
    0x00038828 addiu a1, a1, 0x51e0          |         a1 += 0x51e0;
                                             |         /* str.moduli.c */
    0x0003882c addiu a0, a0, 0x4b10          |         a0 += 0x4b10;
    0x00038830 bal 0x3740c                   |         sym_sshlog ();
    0x00038834 lw gp, 0x28(sp)               |         gp = *(var_28h);
    0x00038838 b 0x387cc                     |         
                                             |     } while (1);
                                             | label_5:
    0x0003883c lw t9, -0x7418(gp)            |     t9 = sym.imp.__errno_location;
    0x00038840 jalr t9                       |     t9 ();
    0x00038844 nop                           |     
    0x00038848 lw gp, 0x28(sp)               |     gp = *(var_28h);
    0x0003884c lw t9, -0x7454(gp)            |     t9 = sym.imp.strerror;
    0x00038850 lw a0, (v0)                   |     a0 = *(v0);
    0x00038854 jalr t9                       |     t9 ();
    0x00038858 lw gp, 0x28(sp)               |     gp = *(var_28h);
    0x0003885c sw v0, 0x1c(sp)               |     *(var_1ch) = v0;
    0x00038860 move a3, zero                 |     a3 = 0;
    0x00038864 lw v0, -0x7fdc(gp)            |     v0 = *(gp);
    0x00038868 lw a1, -0x7fdc(gp)            |     a1 = *(gp);
    0x0003886c lw a0, -0x7fdc(gp)            |     a0 = *(gp);
                                             |     /* str.write_checkpoint:_fdopen:__s */
    0x00038870 addiu v0, v0, 0x4bb0          |     v0 += 0x4bb0;
    0x00038874 lw t9, -0x7fac(gp)            |     t9 = sym.sshlog;
    0x00038878 sw v0, 0x18(sp)               |     *(var_18h) = v0;
    0x0003887c addiu v0, zero, 3             |     v0 = 3;
    0x00038880 addiu a2, zero, 0x1d3         |     a2 = 0x1d3;
                                             |     /* str.write_checkpoint */
    0x00038884 addiu a1, a1, 0x51e0          |     a1 += 0x51e0;
                                             |     /* str.moduli.c */
    0x00038888 addiu a0, a0, 0x4b10          |     a0 += 0x4b10;
    0x0003888c sw v0, 0x10(sp)               |     *(var_10h) = v0;
    0x00038890 sw zero, 0x14(sp)             |     *(var_14h) = 0;
    0x00038894 bal 0x3740c                   |     sym_sshlog ();
    0x00038898 lw gp, 0x28(sp)               |     gp = *(var_28h);
    0x0003889c lw t9, -0x76f8(gp)            |     t9 = sym.imp.unlink;
    0x000388a0 move a0, s1                   |     a0 = s1;
    0x000388a4 jalr t9                       |     t9 ();
    0x000388a8 lw gp, 0x28(sp)               |     gp = *(var_28h);
    0x000388ac lw t9, -0x779c(gp)            |     t9 = sym.imp.close;
    0x000388b0 move a0, s4                   |     a0 = s4;
    0x000388b4 jalr t9                       |     t9 ();
    0x000388b8 lw gp, 0x28(sp)               |     gp = *(var_28h);
    0x000388bc b 0x387cc                     |     goto label_0;
                                             | label_6:
    0x000388c0 lw t9, -0x753c(gp)            |     t9 = sym.imp.rename;
    0x000388c4 move a1, s2                   |     a1 = s2;
    0x000388c8 move a0, s1                   |     a0 = s1;
    0x000388cc jalr t9                       |     t9 ();
    0x000388d0 lw gp, 0x28(sp)               |     gp = *(var_28h);
                                             |     if (v0 != 0) {
    0x000388d4 bnez v0, 0x38768              |         goto label_1;
                                             |     }
    0x000388d8 lw v0, -0x7fdc(gp)            |     v0 = *(gp);
    0x000388dc lw t9, -0x7fac(gp)            |     t9 = sym.sshlog;
                                             |     /* str.wrote_checkpoint_line__lu_to__s */
    0x000388e0 addiu v0, v0, 0x4bd8          |     v0 += 0x4bd8;
    0x000388e4 sw v0, 0x18(sp)               |     *(var_18h) = v0;
    0x000388e8 addiu v0, zero, 7             |     v0 = 7;
    0x000388ec sw s2, 0x20(sp)               |     *(var_20h) = s2;
    0x000388f0 sw s3, 0x1c(sp)               |     *(var_1ch) = s3;
    0x000388f4 sw zero, 0x14(sp)             |     *(var_14h) = 0;
    0x000388f8 sw v0, 0x10(sp)               |     *(var_10h) = v0;
    0x000388fc move a3, zero                 |     a3 = 0;
    0x00038900 addiu a2, zero, 0x1db         |     a2 = 0x1db;
    0x00038904 b 0x387b4                     |     goto label_2;
                                             | label_4:
    0x00038908 lw t9, -0x7418(gp)            |     t9 = sym.imp.__errno_location;
    0x0003890c jalr t9                       |     t9 ();
    0x00038910 nop                           |     
    0x00038914 lw gp, 0x28(sp)               |     gp = *(var_28h);
    0x00038918 lw t9, -0x7454(gp)            |     t9 = sym.imp.strerror;
    0x0003891c lw a0, (v0)                   |     a0 = *(v0);
    0x00038920 jalr t9                       |     t9 ();
    0x00038924 lw gp, 0x28(sp)               |     gp = *(var_28h);
    0x00038928 sw v0, 0x20(sp)               |     *(var_20h) = v0;
    0x0003892c sw s1, 0x1c(sp)               |     *(var_1ch) = s1;
    0x00038930 lw v0, -0x7fdc(gp)            |     v0 = *(gp);
    0x00038934 lw t9, -0x7fac(gp)            |     t9 = sym.sshlog;
                                             |     /* str.mkstemp__s_:__s */
    0x00038938 addiu v0, v0, 0x4ba0          |     v0 += 0x4ba0;
    0x0003893c sw v0, 0x18(sp)               |     *(var_18h) = v0;
    0x00038940 addiu v0, zero, 3             |     v0 = 3;
    0x00038944 sw zero, 0x14(sp)             |     *(var_14h) = 0;
    0x00038948 sw v0, 0x10(sp)               |     *(var_10h) = v0;
    0x0003894c move a3, zero                 |     a3 = 0;
    0x00038950 addiu a2, zero, 0x1cf         |     a2 = 0x1cf;
    0x00038954 b 0x387b4                     |     goto label_2;
                                             | label_7:
    0x00038958 lw t9, -0x77e8(gp)            |     t9 = sym.imp.__stack_chk_fail;
    0x0003895c jalr t9                       |     t9 ();
    0x00038960 nop                           |     
                                             | }
    ; assembly                               | /* r2dec pseudo code output */
                                             | /* /logs/firmware/unblob_extracted/firmware_extract/4325012-58052244.squashfs_v4_le_extract/usr/bin/ssh-keygen @ 0x47f54 */
                                             | #include <stdint.h>
                                             |  
    ; (fcn) sym.export_dns_rr ()             | void export_dns_rr () {
    0x00047f54 lui gp, 5                     |     
    0x00047f58 addiu gp, gp, 0x414c          |     
    0x00047f5c addu gp, gp, t9               |     gp += t9;
    0x00047f60 addiu sp, sp, -0x78           |     
    0x00047f64 lw v0, -0x773c(gp)            |     v0 = *((gp - 7631));
    0x00047f68 sw fp, 0x70(sp)               |     *(var_70h) = fp;
    0x00047f6c sw s7, 0x6c(sp)               |     *(var_6ch) = s7;
    0x00047f70 sw s6, 0x68(sp)               |     *(var_68h) = s6;
    0x00047f74 sw s5, 0x64(sp)               |     *(var_64h) = s5;
    0x00047f78 sw s4, 0x60(sp)               |     *(var_60h) = s4;
    0x00047f7c sw s3, 0x5c(sp)               |     *(var_5ch) = s3;
    0x00047f80 sw s2, 0x58(sp)               |     *(var_58h) = s2;
    0x00047f84 sw s1, 0x54(sp)               |     *(var_54h) = s1;
    0x00047f88 sw s0, 0x50(sp)               |     *(var_50h) = s0;
    0x00047f8c sw gp, 0x20(sp)               |     *(var_20h) = gp;
    0x00047f90 sw ra, 0x74(sp)               |     *(var_74h) = ra;
    0x00047f94 sw v0, 0x30(sp)               |     *(var_30h) = v0;
    0x00047f98 lw v0, (v0)                   |     v0 = *(v0);
    0x00047f9c lw s3, -0x7b54(gp)            |     s3 = *(gp);
    0x00047fa0 sw v0, 0x4c(sp)               |     *(var_4ch) = v0;
    0x00047fa4 lw v0, -0x7fdc(gp)            |     v0 = *(gp);
    0x00047fa8 lw s0, -0x7fdc(gp)            |     s0 = *(gp);
                                             |     /* str._s_IN_SSHFP__d__d_ */
    0x00047fac addiu v0, v0, 0x6978          |     v0 += 0x6978;
    0x00047fb0 sw v0, 0x38(sp)               |     *(var_38h) = v0;
    0x00047fb4 lw v0, -0x7fdc(gp)            |     v0 = *(gp);
    0x00047fb8 sw a0, 0x34(sp)               |     *(var_34h) = a0;
    0x00047fbc sw a1, 0x2c(sp)               |     *(var_2ch) = a1;
    0x00047fc0 move s1, a2                   |     s1 = a2;
    0x00047fc4 sw a3, 0x84(sp)               |     *(arg_84h) = a3;
    0x00047fc8 sb zero, 0x42(sp)             |     *(var_42h) = 0;
    0x00047fcc move s4, zero                 |     s4 = 0;
    0x00047fd0 addiu s2, zero, 1             |     s2 = 1;
    0x00047fd4 addiu s5, sp, 0x48            |     s5 = sp + 0x48;
    0x00047fd8 addiu s6, sp, 0x44            |     s6 = sp + 0x44;
    0x00047fdc addiu fp, sp, 0x43            |     fp = sp + 0x43;
    0x00047fe0 addiu s7, sp, 0x42            |     s7 = sp + 0x42;
                                             |     /* fcn.00047700 */
    0x00047fe4 addiu s3, s3, 0x7700          |     s3 += 0x7700;
                                             |     /* esilref: '&x' */
    0x00047fe8 addiu s0, s0, 0x5a70          |     s0 += 0x5a70;
    0x00047fec sw v0, 0x3c(sp)               |     *(var_3ch) = v0;
                                             |     do {
    0x00047ff0 lw v0, 0x2c(sp)               |         v0 = *(var_2ch);
    0x00047ff4 move a3, s5                   |         a3 = s5;
    0x00047ff8 sw v0, 0x10(sp)               |         *(var_10h) = v0;
    0x00047ffc move a2, s6                   |         a2 = s6;
    0x00048000 move a1, fp                   |         a1 = fp;
    0x00048004 move a0, s7                   |         a0 = s7;
    0x00048008 move t9, s3                   |         t9 = s3;
    0x0004800c sb s2, 0x43(sp)               |         *(var_43h) = s2;
    0x00048010 bal 0x47700                   |         fcn_00047700 ();
    0x00048014 lw gp, 0x20(sp)               |         gp = *(var_20h);
                                             |         if (v0 != 0) {
    0x00048018 bnez v0, 0x48074              |             goto label_3;
                                             |         }
                                             | label_0:
    0x0004801c addiu v0, zero, 2             |         v0 = 2;
    0x00048020 addiu s2, zero, 2             |         s2 = 2;
    0x00048024 bnel s2, v0, 0x47ff0          |         
                                             |     } while (s2 == v0);
                                             |     if (s4 == 0) {
    0x00048028 beql s4, zero, 0x4814c        |         goto label_4;
                                             |     }
    0x0004802c lw v0, -0x7fdc(gp)            |     v0 = *(gp);
                                             | label_2:
    0x00048030 lw v0, 0x30(sp)               |     v0 = *(var_30h);
    0x00048034 lw a0, 0x4c(sp)               |     a0 = *(var_4ch);
    0x00048038 lw v1, (v0)                   |     v1 = *(v0);
    0x0004803c move v0, s4                   |     v0 = s4;
                                             |     if (a0 != v1) {
    0x00048040 bne a0, v1, 0x48184           |         goto label_5;
                                             |     }
    0x00048044 lw ra, 0x74(sp)               |     ra = *(var_74h);
    0x00048048 lw fp, 0x70(sp)               |     fp = *(var_70h);
    0x0004804c lw s7, 0x6c(sp)               |     s7 = *(var_6ch);
    0x00048050 lw s6, 0x68(sp)               |     s6 = *(var_68h);
    0x00048054 lw s5, 0x64(sp)               |     s5 = *(var_64h);
    0x00048058 lw s4, 0x60(sp)               |     s4 = *(var_60h);
    0x0004805c lw s3, 0x5c(sp)               |     s3 = *(var_5ch);
    0x00048060 lw s2, 0x58(sp)               |     s2 = *(var_58h);
    0x00048064 lw s1, 0x54(sp)               |     s1 = *(var_54h);
    0x00048068 lw s0, 0x50(sp)               |     s0 = *(var_50h);
    0x0004806c addiu sp, sp, 0x78            |     
    0x00048070 jr ra                         |     return v0;
                                             | label_3:
    0x00048074 lw v1, 0x84(sp)               |     v1 = *(arg_84h);
    0x00048078 lbu v0, 0x42(sp)              |     v0 = *(var_42h);
    0x0004807c lbu a0, 0x43(sp)              |     a0 = *(var_43h);
    0x00048080 lw t9, -0x74ac(gp)            |     t9 = sym.imp.__fprintf_chk
                                             |     if (v1 != 0) {
    0x00048084 bnez v1, 0x48110              |         goto label_6;
                                             |     }
    0x00048088 lw a3, 0x34(sp)               |     a3 = *(var_34h);
    0x0004808c lw a2, 0x38(sp)               |     a2 = *(var_38h);
    0x00048090 sw a0, 0x14(sp)               |     *(var_14h) = a0;
    0x00048094 sw v0, 0x10(sp)               |     *(var_10h) = v0;
    0x00048098 addiu a1, zero, 1             |     a1 = 1;
    0x0004809c move a0, s1                   |     a0 = s1;
    0x000480a0 jalr t9                       |     t9 ();
    0x000480a4 lw gp, 0x20(sp)               |     gp = *(var_20h);
                                             | label_1:
    0x000480a8 lw v0, 0x48(sp)               |     v0 = *(var_48h);
    0x000480ac move s4, zero                 |     s4 = 0;
                                             |     if (v0 == 0) {
    0x000480b0 beqz v0, 0x480e4              |         goto label_7;
                                             |     }
                                             |     do {
    0x000480b4 lw a3, 0x44(sp)               |         a3 = *(var_44h);
    0x000480b8 lw t9, -0x74ac(gp)            |         t9 = sym.imp.__fprintf_chk
    0x000480bc move a2, s0                   |         a2 = s0;
    0x000480c0 lbux a3, s4(a3)               |         __asm ("lbux a3, s4(a3)");
    0x000480c4 addiu a1, zero, 1             |         a1 = 1;
    0x000480c8 move a0, s1                   |         a0 = s1;
    0x000480cc jalr t9                       |         t9 ();
    0x000480d0 lw v0, 0x48(sp)               |         v0 = *(var_48h);
    0x000480d4 addiu s4, s4, 1               |         s4++;
    0x000480d8 sltu v0, s4, v0               |         v0 = (s4 < v0) ? 1 : 0;
    0x000480dc lw gp, 0x20(sp)               |         gp = *(var_20h);
    0x000480e0 bnez v0, 0x480b4              |         
                                             |     } while (v0 != 0);
                                             | label_7:
    0x000480e4 lw t9, -0x77fc(gp)            |     t9 = sym.imp.fputc;
    0x000480e8 move a1, s1                   |     a1 = s1;
    0x000480ec addiu a0, zero, 0xa           |     a0 = 0xa;
    0x000480f0 jalr t9                       |     t9 ();
    0x000480f4 lw gp, 0x20(sp)               |     gp = *(var_20h);
    0x000480f8 lw a0, 0x44(sp)               |     a0 = *(var_44h);
    0x000480fc lw t9, -0x75e4(gp)            |     t9 = sym.imp.free;
    0x00048100 addiu s4, zero, 1             |     s4 = 1;
    0x00048104 jalr t9                       |     t9 ();
    0x00048108 lw gp, 0x20(sp)               |     gp = *(var_20h);
    0x0004810c b 0x4801c                     |     goto label_0;
                                             | label_6:
    0x00048110 lw a1, 0x48(sp)               |     a1 = *(var_48h);
    0x00048114 sw v0, 0x18(sp)               |     *(var_18h) = v0;
    0x00048118 addiu v0, zero, 0x2c          |     v0 = 0x2c;
    0x0004811c sw v0, 0x10(sp)               |     *(var_10h) = v0;
    0x00048120 lw v0, 0x3c(sp)               |     v0 = *(var_3ch);
    0x00048124 addiu a1, a1, 2               |     a1 += 2;
    0x00048128 lw a3, 0x34(sp)               |     a3 = *(var_34h);
    0x0004812c sw a0, 0x1c(sp)               |     *(var_1ch) = a0;
    0x00048130 sw a1, 0x14(sp)               |     *(var_14h) = a1;
    0x00048134 addiu a2, v0, 0x6958          |     a2 = v0 + 0x6958;
    0x00048138 addiu a1, zero, 1             |     a1 = 1;
    0x0004813c move a0, s1                   |     a0 = s1;
    0x00048140 jalr t9                       |     t9 ();
    0x00048144 lw gp, 0x20(sp)               |     gp = *(var_20h);
    0x00048148 b 0x480a8                     |     goto label_1;
                                             | label_4:
    0x0004814c lw a1, -0x7fdc(gp)            |     a1 = *(gp);
    0x00048150 lw a0, -0x7fdc(gp)            |     a0 = *(gp);
    0x00048154 lw t9, -0x7fac(gp)            |     t9 = sym.sshlog;
                                             |     /* str.unsupported_algorithm_and_or_digest_type */
    0x00048158 addiu v0, v0, 0x698c          |     v0 += 0x698c;
    0x0004815c sw v0, 0x18(sp)               |     *(var_18h) = v0;
    0x00048160 sw zero, 0x14(sp)             |     *(var_14h) = 0;
    0x00048164 sw s2, 0x10(sp)               |     *(var_10h) = s2;
    0x00048168 addiu a3, zero, 1             |     a3 = 1;
    0x0004816c addiu a2, zero, 0x15e         |     a2 = 0x15e;
                                             |     /* str.export_dns_rr */
    0x00048170 addiu a1, a1, 0x69fc          |     a1 += 0x69fc;
                                             |     /* str.dns.c */
    0x00048174 addiu a0, a0, 0x6700          |     a0 += 0x6700;
    0x00048178 bal 0x3740c                   |     sym_sshlog ();
    0x0004817c lw gp, 0x20(sp)               |     gp = *(var_20h);
    0x00048180 b 0x48030                     |     goto label_2;
                                             | label_5:
    0x00048184 lw t9, -0x77e8(gp)            |     t9 = sym.imp.__stack_chk_fail;
    0x00048188 jalr t9                       |     t9 ();
    0x0004818c nop                           |     
                                             | }
    ; assembly                               | /* r2dec pseudo code output */
                                             | /* /logs/firmware/unblob_extracted/firmware_extract/4325012-58052244.squashfs_v4_le_extract/usr/bin/ssh-keygen @ 0x2f80c */
                                             | #include <stdint.h>
                                             |  
    ; (fcn) sym.krl_dump ()                  | void krl_dump () {
    0x0002f80c lui gp, 7                     |     
    0x0002f810 addiu gp, gp, -0x376c         |     
    0x0002f814 addu gp, gp, t9               |     gp += t9;
    0x0002f818 addiu sp, sp, -0xb8           |     
    0x0002f81c lw v0, -0x773c(gp)            |     v0 = *((gp - 7631));
    0x0002f820 sw ra, 0xb4(sp)               |     *(var_b4h) = ra;
    0x0002f824 sw gp, 0x20(sp)               |     *(var_20h) = gp;
    0x0002f828 sw s2, 0x98(sp)               |     *(var_98h) = s2;
    0x0002f82c sw s1, 0x94(sp)               |     *(var_94h) = s1;
    0x0002f830 sw s0, 0x90(sp)               |     *(var_90h) = s0;
    0x0002f834 move s2, a0                   |     s2 = a0;
    0x0002f838 sw fp, 0xb0(sp)               |     *(var_b0h) = fp;
    0x0002f83c sw s7, 0xac(sp)               |     *(var_ach) = s7;
    0x0002f840 sw s6, 0xa8(sp)               |     *(var_a8h) = s6;
    0x0002f844 sw s5, 0xa4(sp)               |     *(var_a4h) = s5;
    0x0002f848 sw s4, 0xa0(sp)               |     *(var_a0h) = s4;
    0x0002f84c sw s3, 0x9c(sp)               |     *(var_9ch) = s3;
    0x0002f850 lw t9, -0x7c18(gp)            |     t9 = *(gp);
    0x0002f854 sw v0, 0x3c(sp)               |     *(var_3ch) = v0;
    0x0002f858 lw v0, (v0)                   |     v0 = *(v0);
    0x0002f85c move s0, a1                   |     s0 = a1;
    0x0002f860 lw a0, 8(a0)                  |     a0 = *((a0 + 2));
    0x0002f864 lw a1, 0xc(s2)                |     a1 = *((s2 + 3));
    0x0002f868 addiu s1, sp, 0x4c            |     s1 = sp + 0x4c;
    0x0002f86c move a2, s1                   |     a2 = s1;
    0x0002f870 sw v0, 0x8c(sp)               |     *(var_8ch) = v0;
                                             |     /* fcn.0002c2cc */
    0x0002f874 addiu t9, t9, -0x3d34         |     t9 += -0x3d34;
    0x0002f878 sw zero, 0x40(sp)             |     *(var_40h) = 0;
    0x0002f87c bal 0x2c2cc                   |     fcn_0002c2cc ();
    0x0002f880 nop                           |     
    0x0002f884 lw gp, 0x20(sp)               |     gp = *(var_20h);
    0x0002f888 lw v1, 4(s2)                  |     v1 = *((s2 + 1));
    0x0002f88c lw v0, (s2)                   |     v0 = *(s2);
    0x0002f890 lw a2, -0x7fdc(gp)            |     a2 = *(gp);
    0x0002f894 lw t9, -0x74ac(gp)            |     t9 = sym.imp.__fprintf_chk
                                             |     /* str._KRL_version__llu_n */
    0x0002f898 addiu a2, a2, 0x3fe4          |     a2 += 0x3fe4;
    0x0002f89c addiu a1, zero, 1             |     a1 = 1;
    0x0002f8a0 move a0, s0                   |     a0 = s0;
    0x0002f8a4 sw v1, 0x14(sp)               |     *(var_14h) = v1;
    0x0002f8a8 sw v0, 0x10(sp)               |     *(var_10h) = v0;
    0x0002f8ac jalr t9                       |     t9 ();
    0x0002f8b0 lw gp, 0x20(sp)               |     gp = *(var_20h);
    0x0002f8b4 move a3, s1                   |     a3 = s1;
    0x0002f8b8 addiu a1, zero, 1             |     a1 = 1;
    0x0002f8bc lw a2, -0x7fdc(gp)            |     a2 = *(gp);
    0x0002f8c0 lw t9, -0x74ac(gp)            |     t9 = sym.imp.__fprintf_chk
                                             |     /* str._Generated_at__s_n */
    0x0002f8c4 addiu a2, a2, 0x3ff8          |     a2 += 0x3ff8;
    0x0002f8c8 move a0, s0                   |     a0 = s0;
    0x0002f8cc jalr t9                       |     t9 ();
    0x0002f8d0 lw v0, 0x18(s2)               |     v0 = *((s2 + 6));
    0x0002f8d4 lw gp, 0x20(sp)               |     gp = *(var_20h);
                                             |     if (v0 != 0) {
    0x0002f8d8 beqz v0, 0x2f8e8              |         
    0x0002f8dc lb v1, (v0)                   |         v1 = *(v0);
    0x0002f8e0 lw a3, -0x7fdc(gp)            |         a3 = *(gp);
                                             |         if (v1 != 0) {
    0x0002f8e4 bnez v1, 0x2fe68              |             goto label_10;
                                             |         }
                                             |     }
    0x0002f8e8 lw t9, -0x77fc(gp)            |     t9 = sym.imp.fputc;
    0x0002f8ec move a1, s0                   |     a1 = s0;
    0x0002f8f0 addiu a0, zero, 0xa           |     a0 = 0xa;
    0x0002f8f4 jalr t9                       |     t9 ();
    0x0002f8f8 lw s6, 0x1c(s2)               |     s6 = *((s2 + 7));
    0x0002f8fc lw gp, 0x20(sp)               |     gp = *(var_20h);
                                             |     if (s6 != 0) {
    0x0002f900 bnez s6, 0x2f90c              |         goto label_8;
                                             |     }
    0x0002f904 sw zero, 0x30(sp)             |     *(var_30h) = 0;
    0x0002f908 b 0x2fa58                     |     goto label_9;
                                             |     do {
                                             | label_8:
    0x0002f90c lw v0, 8(s6)                  |         v0 = *((s6 + 2));
    0x0002f910 move s6, v0                   |         s6 = v0;
    0x0002f914 bnel v0, zero, 0x2f90c        |         
                                             |     } while (v0 == 0);
    0x0002f918 lw v0, -0x7fdc(gp)            |     v0 = *(gp);
    0x0002f91c lw s1, -0x7c18(gp)            |     s1 = *(gp);
    0x0002f920 sw v0, 0x2c(sp)               |     *(var_2ch) = v0;
    0x0002f924 lw v0, -0x7fdc(gp)            |     v0 = *(gp);
    0x0002f928 lw s3, -0x7fdc(gp)            |     s3 = *(gp);
    0x0002f92c lw s5, -0x7fdc(gp)            |     s5 = *(gp);
                                             |     /* str.sshkey_fingerprint_failed */
    0x0002f930 addiu v0, v0, -0xab0          |     v0 += -0xab0;
    0x0002f934 lw s4, -0x7fdc(gp)            |     s4 = *(gp);
    0x0002f938 sw zero, 0x30(sp)             |     *(var_30h) = 0;
    0x0002f93c addiu fp, sp, 0x40            |     fp = sp + 0x40;
                                             |     /* fcn.0002ae98 */
    0x0002f940 addiu s1, s1, -0x5168         |     s1 += -0x5168;
    0x0002f944 sw v0, 0x34(sp)               |     *(var_34h) = v0;
                                             |     /* str.krl_dump */
    0x0002f948 addiu s3, s3, 0x40e0          |     s3 += 0x40e0;
                                             |     /* str.parse_KRL_key */
    0x0002f94c addiu s5, s5, 0x401c          |     s5 += 0x401c;
    0x0002f950 b 0x2f9dc                     |     
                                             |     while (v0 == 0) {
    0x0002f954 lw t9, -0x7f5c(gp)            |         t9 = sym.sshkey_fingerprint;
    0x0002f958 lw a0, 0x40(sp)               |         a0 = *(var_40h);
    0x0002f95c move a2, zero                 |         a2 = 0;
    0x0002f960 addiu a1, zero, 2             |         a1 = 2;
    0x0002f964 bal 0x1eef8                   |         sym_sshkey_fingerprint ();
    0x0002f968 move s7, v0                   |         s7 = v0;
    0x0002f96c lw gp, 0x20(sp)               |         gp = *(var_20h);
    0x0002f970 sw v0, 0x48(sp)               |         *(var_48h) = v0;
                                             |         if (v0 == 0) {
    0x0002f974 beqz v0, 0x2fe44              |             goto label_11;
                                             |         }
    0x0002f978 lw t9, -0x7e90(gp)            |         t9 = sym.sshkey_ssh_name;
    0x0002f97c lw a0, 0x40(sp)               |         a0 = *(var_40h);
    0x0002f980 bal 0x1d618                   |         sym_sshkey_ssh_name ();
    0x0002f984 lw gp, 0x20(sp)               |         gp = *(var_20h);
    0x0002f988 move a3, s7                   |         a3 = s7;
                                             |         /* str.hash:_SHA256:_s___s_n */
    0x0002f98c addiu a2, s4, 0x402c          |         a2 = s4 + 0x402c;
    0x0002f990 lw t9, -0x74ac(gp)            |         t9 = sym.imp.__fprintf_chk
    0x0002f994 addiu a1, zero, 1             |         a1 = 1;
    0x0002f998 move a0, s0                   |         a0 = s0;
    0x0002f99c sw v0, 0x10(sp)               |         *(var_10h) = v0;
    0x0002f9a0 jalr t9                       |         t9 ();
    0x0002f9a4 lw gp, 0x20(sp)               |         gp = *(var_20h);
    0x0002f9a8 lw t9, -0x75e4(gp)            |         t9 = sym.imp.free;
    0x0002f9ac lw a0, 0x48(sp)               |         a0 = *(var_48h);
    0x0002f9b0 jalr t9                       |         t9 ();
    0x0002f9b4 lw gp, 0x20(sp)               |         gp = *(var_20h);
    0x0002f9b8 lw t9, -0x75e4(gp)            |         t9 = sym.imp.free;
    0x0002f9bc lw a0, 0x40(sp)               |         a0 = *(var_40h);
    0x0002f9c0 jalr t9                       |         t9 ();
    0x0002f9c4 move t9, s1                   |         t9 = s1;
    0x0002f9c8 move a0, s6                   |         a0 = s6;
    0x0002f9cc bal 0x2ae98                   |         fcn_0002ae98 ();
    0x0002f9d0 move s6, v0                   |         s6 = v0;
    0x0002f9d4 lw gp, 0x20(sp)               |         gp = *(var_20h);
                                             |         if (v0 == 0) {
    0x0002f9d8 beqz v0, 0x2fa58              |             goto label_9;
                                             |         }
                                             | label_0:
    0x0002f9dc lw t9, -0x7bf4(gp)            |         t9 = sym.sshkey_from_blob;
    0x0002f9e0 lw a1, 4(s6)                  |         a1 = *((s6 + 1));
    0x0002f9e4 lw a0, (s6)                   |         a0 = *(s6);
    0x0002f9e8 move a2, fp                   |         a2 = fp;
    0x0002f9ec bal 0x22c20                   |         sym_sshkey_from_blob ();
    0x0002f9f0 sw v0, 0x44(sp)               |         *(var_44h) = v0;
    0x0002f9f4 lw gp, 0x20(sp)               |         gp = *(var_20h);
    0x0002f9f8 beqz v0, 0x2f954              |         
                                             |     }
    0x0002f9fc lw t9, -0x7fd0(gp)            |     t9 = sym.ssh_err;
    0x0002fa00 move a0, v0                   |     a0 = v0;
    0x0002fa04 bal 0x1b0f0                   |     sym_ssh_err ();
    0x0002fa08 lw gp, 0x20(sp)               |     gp = *(var_20h);
    0x0002fa0c sw v0, 0x14(sp)               |     *(var_14h) = v0;
    0x0002fa10 addiu v0, zero, 2             |     v0 = 2;
    0x0002fa14 lw t9, -0x7fac(gp)            |     t9 = sym.sshlog;
    0x0002fa18 sw s5, 0x18(sp)               |     *(var_18h) = s5;
    0x0002fa1c sw v0, 0x10(sp)               |     *(var_10h) = v0;
    0x0002fa20 move a3, zero                 |     a3 = 0;
    0x0002fa24 addiu a2, zero, 0x566         |     a2 = 0x566;
                                             | label_7:
    0x0002fa28 lw v0, 0x2c(sp)               |     v0 = *(var_2ch);
    0x0002fa2c move a1, s3                   |     a1 = s3;
    0x0002fa30 addiu a0, v0, 0x3db0          |     a0 = v0 + 0x3db0;
    0x0002fa34 bal 0x3740c                   |     sym_sshlog ();
    0x0002fa38 addiu v0, zero, -4            |     v0 = -4;
    0x0002fa3c move a0, s6                   |     a0 = s6;
    0x0002fa40 move t9, s1                   |     t9 = s1;
    0x0002fa44 sw v0, 0x30(sp)               |     *(var_30h) = v0;
    0x0002fa48 bal 0x2ae98                   |     fcn_0002ae98 ();
    0x0002fa4c move s6, v0                   |     s6 = v0;
    0x0002fa50 lw gp, 0x20(sp)               |     gp = *(var_20h);
                                             |     if (v0 != 0) {
    0x0002fa54 bnez v0, 0x2f9dc              |         goto label_0;
                                             |     }
                                             | label_9:
    0x0002fa58 lw s3, 0x24(s2)               |     s3 = *((s2 + 9));
    0x0002fa5c lw v0, 8(s3)                  |     v0 = *((s3 + 2));
                                             |     if (s3 == 0) {
    0x0002fa60 bnel s3, zero, 0x2fa70        |         goto label_12;
                                             |     }
    0x0002fa64 lw s3, 0x20(s2)               |     s3 = *((s2 + 8));
    0x0002fa68 b 0x2fae4                     |     goto label_13;
                                             |     do {
    0x0002fa6c lw v0, 8(s3)                  |         v0 = *((s3 + 2));
                                             | label_12:
    0x0002fa70 move s3, v0                   |         s3 = v0;
    0x0002fa74 bnel v0, zero, 0x2fa6c        |         
                                             |     } while (v0 == 0);
    0x0002fa78 lw s1, -0x7c18(gp)            |     s1 = *(gp);
    0x0002fa7c lw s4, -0x7fdc(gp)            |     s4 = *(gp);
                                             |     /* fcn.0002ae98 */
    0x0002fa80 addiu s1, s1, -0x5168         |     s1 += -0x5168;
                                             |     /* str.hash:_SHA256:_s_n */
    0x0002fa84 addiu s4, s4, 0x4044          |     s4 += 0x4044;
                                             |     do {
    0x0002fa88 lw t9, -0x7d7c(gp)            |         t9 = sym.tohex;
    0x0002fa8c lw a1, 4(s3)                  |         a1 = *((s3 + 1));
    0x0002fa90 lw a0, (s3)                   |         a0 = *(s3);
    0x0002fa94 bal 0x3f4c4                   |         sym_tohex ();
    0x0002fa98 lw gp, 0x20(sp)               |         gp = *(var_20h);
    0x0002fa9c move a3, v0                   |         a3 = v0;
    0x0002faa0 move a2, s4                   |         a2 = s4;
    0x0002faa4 lw t9, -0x74ac(gp)            |         t9 = sym.imp.__fprintf_chk
    0x0002faa8 addiu a1, zero, 1             |         a1 = 1;
    0x0002faac move a0, s0                   |         a0 = s0;
    0x0002fab0 sw v0, 0x48(sp)               |         *(var_48h) = v0;
    0x0002fab4 jalr t9                       |         t9 ();
    0x0002fab8 lw gp, 0x20(sp)               |         gp = *(var_20h);
    0x0002fabc lw t9, -0x75e4(gp)            |         t9 = sym.imp.free;
    0x0002fac0 lw a0, 0x48(sp)               |         a0 = *(var_48h);
    0x0002fac4 jalr t9                       |         t9 ();
    0x0002fac8 move t9, s1                   |         t9 = s1;
    0x0002facc move a0, s3                   |         a0 = s3;
    0x0002fad0 bal 0x2ae98                   |         fcn_0002ae98 ();
    0x0002fad4 move s3, v0                   |         s3 = v0;
    0x0002fad8 lw gp, 0x20(sp)               |         gp = *(var_20h);
    0x0002fadc bnez v0, 0x2fa88              |         
                                             |     } while (v0 != 0);
    0x0002fae0 lw s3, 0x20(s2)               |     s3 = *((s2 + 8));
                                             | label_13:
    0x0002fae4 lw v0, 8(s3)                  |     v0 = *((s3 + 2));
                                             |     if (s3 == 0) {
    0x0002fae8 bnel s3, zero, 0x2faf8        |         goto label_14;
                                             |     }
    0x0002faec lw s1, 0x28(s2)               |     s1 = *((s2 + 10));
    0x0002faf0 b 0x2fb6c                     |     goto label_15;
                                             |     do {
    0x0002faf4 lw v0, 8(s3)                  |         v0 = *((s3 + 2));
                                             | label_14:
    0x0002faf8 move s3, v0                   |         s3 = v0;
    0x0002fafc bnel v0, zero, 0x2faf4        |         
                                             |     } while (v0 == 0);
    0x0002fb00 lw s1, -0x7c18(gp)            |     s1 = *(gp);
    0x0002fb04 lw s4, -0x7fdc(gp)            |     s4 = *(gp);
                                             |     /* fcn.0002ae98 */
    0x0002fb08 addiu s1, s1, -0x5168         |     s1 += -0x5168;
                                             |     /* str._hash_SHA1:_s_n */
    0x0002fb0c addiu s4, s4, 0x4058          |     s4 += 0x4058;
                                             |     do {
    0x0002fb10 lw t9, -0x7d7c(gp)            |         t9 = sym.tohex;
    0x0002fb14 lw a1, 4(s3)                  |         a1 = *((s3 + 1));
    0x0002fb18 lw a0, (s3)                   |         a0 = *(s3);
    0x0002fb1c bal 0x3f4c4                   |         sym_tohex ();
    0x0002fb20 lw gp, 0x20(sp)               |         gp = *(var_20h);
    0x0002fb24 move a3, v0                   |         a3 = v0;
    0x0002fb28 move a2, s4                   |         a2 = s4;
    0x0002fb2c lw t9, -0x74ac(gp)            |         t9 = sym.imp.__fprintf_chk
    0x0002fb30 addiu a1, zero, 1             |         a1 = 1;
    0x0002fb34 move a0, s0                   |         a0 = s0;
    0x0002fb38 sw v0, 0x48(sp)               |         *(var_48h) = v0;
    0x0002fb3c jalr t9                       |         t9 ();
    0x0002fb40 lw gp, 0x20(sp)               |         gp = *(var_20h);
    0x0002fb44 lw t9, -0x75e4(gp)            |         t9 = sym.imp.free;
    0x0002fb48 lw a0, 0x48(sp)               |         a0 = *(var_48h);
    0x0002fb4c jalr t9                       |         t9 ();
    0x0002fb50 move t9, s1                   |         t9 = s1;
    0x0002fb54 move a0, s3                   |         a0 = s3;
    0x0002fb58 bal 0x2ae98                   |         fcn_0002ae98 ();
    0x0002fb5c move s3, v0                   |         s3 = v0;
    0x0002fb60 lw gp, 0x20(sp)               |         gp = *(var_20h);
    0x0002fb64 bnez v0, 0x2fb10              |         
                                             |     } while (v0 != 0);
    0x0002fb68 lw s1, 0x28(s2)               |     s1 = *((s2 + 10));
                                             | label_15:
    0x0002fb6c lw v0, 0x3c(sp)               |     v0 = *(var_3ch);
                                             |     if (s1 == 0) {
    0x0002fb70 beqz s1, 0x2fd8c              |         goto label_5;
                                             |     }
    0x0002fb74 lw v0, -0x7fdc(gp)            |     v0 = *(gp);
    0x0002fb78 lw s2, -0x7c18(gp)            |     s2 = *(gp);
    0x0002fb7c sw v0, 0x34(sp)               |     *(var_34h) = v0;
    0x0002fb80 lw v0, -0x7fdc(gp)            |     v0 = *(gp);
    0x0002fb84 lw s4, -0x7c18(gp)            |     s4 = *(gp);
    0x0002fb88 lw s3, -0x7fdc(gp)            |     s3 = *(gp);
    0x0002fb8c sw v0, 0x38(sp)               |     *(var_38h) = v0;
                                             |     /* fcn.0002a970 */
    0x0002fb90 addiu v0, s2, -0x5690         |     v0 = s2 + -0x5690;
                                             |     /* fcn.0002a9dc */
    0x0002fb94 addiu s4, s4, -0x5624         |     s4 += -0x5624;
                                             |     /* esilref: '&s' */
    0x0002fb98 addiu s3, s3, -0x964          |     s3 += -aav.0x00000964;
    0x0002fb9c sw v0, 0x2c(sp)               |     *(var_2ch) = v0;
                                             | label_4:
    0x0002fba0 lw t9, -0x77fc(gp)            |     t9 = sym.imp.fputc;
                                             | label_3:
    0x0002fba4 addiu a0, zero, 0xa           |     a0 = 0xa;
    0x0002fba8 move a1, s0                   |     a1 = s0;
    0x0002fbac jalr t9                       |     t9 ();
    0x0002fbb0 lw a0, (s1)                   |     a0 = *(s1);
    0x0002fbb4 lw gp, 0x20(sp)               |     gp = *(var_20h);
                                             |     if (a0 == 0) {
    0x0002fbb8 beqz a0, 0x2fe20              |         goto label_16;
                                             |     }
    0x0002fbbc lw t9, -0x7f5c(gp)            |     t9 = sym.sshkey_fingerprint;
    0x0002fbc0 move a2, zero                 |     a2 = 0;
    0x0002fbc4 addiu a1, zero, 2             |     a1 = 2;
    0x0002fbc8 bal 0x1eef8                   |     sym_sshkey_fingerprint ();
    0x0002fbcc sw v0, 0x48(sp)               |     *(var_48h) = v0;
    0x0002fbd0 lw gp, 0x20(sp)               |     gp = *(var_20h);
                                             |     if (v0 == 0) {
    0x0002fbd4 beqz v0, 0x2fdcc              |         goto label_17;
                                             |     }
    0x0002fbd8 lw t9, -0x7e90(gp)            |     t9 = sym.sshkey_ssh_name;
    0x0002fbdc lw a0, (s1)                   |     a0 = *(s1);
    0x0002fbe0 bal 0x1d618                   |     sym_sshkey_ssh_name ();
    0x0002fbe4 lw gp, 0x20(sp)               |     gp = *(var_20h);
    0x0002fbe8 move a3, v0                   |     a3 = v0;
    0x0002fbec lw v0, 0x48(sp)               |     v0 = *(var_48h);
    0x0002fbf0 lw a2, -0x7fdc(gp)            |     a2 = *(gp);
    0x0002fbf4 lw t9, -0x74ac(gp)            |     t9 = sym.imp.__fprintf_chk
                                             |     /* str._CA_key__s__s_n */
    0x0002fbf8 addiu a2, a2, 0x4078          |     a2 += 0x4078;
    0x0002fbfc addiu a1, zero, 1             |     a1 = 1;
    0x0002fc00 move a0, s0                   |     a0 = s0;
    0x0002fc04 sw v0, 0x10(sp)               |     *(var_10h) = v0;
    0x0002fc08 jalr t9                       |     t9 ();
    0x0002fc0c lw gp, 0x20(sp)               |     gp = *(var_20h);
    0x0002fc10 lw t9, -0x75e4(gp)            |     t9 = sym.imp.free;
    0x0002fc14 lw a0, 0x48(sp)               |     a0 = *(var_48h);
    0x0002fc18 jalr t9                       |     t9 ();
    0x0002fc1c lw gp, 0x20(sp)               |     gp = *(var_20h);
                                             | label_6:
    0x0002fc20 lw s2, 4(s1)                  |     s2 = *((s1 + 1));
    0x0002fc24 lw v0, 0x10(s2)               |     v0 = *((s2 + 4));
                                             |     if (s2 == 0) {
    0x0002fc28 bnel s2, zero, 0x2fc38        |         goto label_18;
                                             |     }
    0x0002fc2c lw s6, 8(s1)                  |     s6 = *((s1 + 2));
    0x0002fc30 b 0x2fce0                     |     goto label_19;
                                             |     do {
    0x0002fc34 lw v0, 0x10(s2)               |         v0 = *((s2 + 4));
                                             | label_18:
    0x0002fc38 move s2, v0                   |         s2 = v0;
    0x0002fc3c bnel v0, zero, 0x2fc34        |         
                                             |     } while (v0 == 0);
    0x0002fc40 lw v0, 0x38(sp)               |     v0 = *(var_38h);
    0x0002fc44 lw s6, -0x7fdc(gp)            |     s6 = *(gp);
    0x0002fc48 addiu s5, v0, 0x4098          |     s5 = v0 + 0x4098;
                                             |     /* str.serial:__llu_n */
    0x0002fc4c addiu s6, s6, 0x4088          |     s6 += 0x4088;
    0x0002fc50 b 0x2fc8c                     |     
                                             |     while (v0 != a0) {
    0x0002fc54 sw a0, 0x18(sp)               |         *(var_18h) = a0;
                                             | label_1:
    0x0002fc58 sw a2, 0x1c(sp)               |         *(var_1ch_2) = a2;
    0x0002fc5c sw a1, 0x14(sp)               |         *(var_14h) = a1;
    0x0002fc60 move a2, s5                   |         a2 = s5;
    0x0002fc64 addiu a1, zero, 1             |         a1 = 1;
    0x0002fc68 move a0, s0                   |         a0 = s0;
    0x0002fc6c sw v0, 0x10(sp)               |         *(var_10h) = v0;
    0x0002fc70 jalr t9                       |         t9 ();
    0x0002fc74 lw t9, 0x2c(sp)               |         t9 = *(var_2ch);
    0x0002fc78 move a0, s2                   |         a0 = s2;
    0x0002fc7c jalr t9                       |         t9 ();
    0x0002fc80 move s2, v0                   |         s2 = v0;
    0x0002fc84 lw gp, 0x20(sp)               |         gp = *(var_20h);
                                             |         if (v0 == 0) {
    0x0002fc88 beqz v0, 0x2fcdc              |             goto label_20;
                                             |         }
                                             | label_2:
    0x0002fc8c lw v0, (s2)                   |         v0 = *(s2);
    0x0002fc90 lw a0, 8(s2)                  |         a0 = *((s2 + 2));
    0x0002fc94 lw a1, 4(s2)                  |         a1 = *((s2 + 1));
    0x0002fc98 lw a2, 0xc(s2)                |         a2 = *((s2 + 3));
    0x0002fc9c lw t9, -0x74ac(gp)            |         t9 = sym.imp.__fprintf_chk
    0x0002fca0 bne v0, a0, 0x2fc54           |         
                                             |     }
    0x0002fca4 sw a0, 0x18(sp)               |     *(var_18h) = a0;
                                             |     if (a1 == a2) {
    0x0002fca8 bnel a1, a2, 0x2fc58          |         goto label_1;
                                             |     }
    0x0002fcac sw a1, 0x14(sp)               |     *(var_14h) = a1;
    0x0002fcb0 move a2, s6                   |     a2 = s6;
    0x0002fcb4 addiu a1, zero, 1             |     a1 = 1;
    0x0002fcb8 move a0, s0                   |     a0 = s0;
    0x0002fcbc sw v0, 0x10(sp)               |     *(var_10h) = v0;
    0x0002fcc0 jalr t9                       |     t9 ();
    0x0002fcc4 lw t9, 0x2c(sp)               |     t9 = *(var_2ch);
    0x0002fcc8 move a0, s2                   |     a0 = s2;
    0x0002fccc jalr t9                       |     t9 ();
    0x0002fcd0 move s2, v0                   |     s2 = v0;
    0x0002fcd4 lw gp, 0x20(sp)               |     gp = *(var_20h);
                                             |     if (v0 != 0) {
    0x0002fcd8 bnez v0, 0x2fc8c              |         goto label_2;
                                             |     }
                                             | label_20:
    0x0002fcdc lw s6, 8(s1)                  |     s6 = *((s1 + 2));
                                             | label_19:
    0x0002fce0 lw v0, 4(s6)                  |     v0 = *((s6 + 1));
                                             |     if (s6 == 0) {
    0x0002fce4 bnel s6, zero, 0x2fcf4        |         goto label_21;
                                             |     }
    0x0002fce8 lw s1, 0xc(s1)                |     s1 = *((s1 + 3));
    0x0002fcec b 0x2fd80                     |     goto label_22;
                                             |     do {
    0x0002fcf0 lw v0, 4(s6)                  |         v0 = *((s6 + 1));
                                             | label_21:
    0x0002fcf4 move s6, v0                   |         s6 = v0;
    0x0002fcf8 bnel v0, zero, 0x2fcf0        |         
                                             |     } while (v0 == 0);
    0x0002fcfc lw v0, 0x34(sp)               |     v0 = *(var_34h);
    0x0002fd00 lui v1, 0x7fff                |     v1 = 0x7fff0000;
    0x0002fd04 addiu s2, sp, 0x44            |     s2 = sp + 0x44;
    0x0002fd08 addiu s7, sp, 0x48            |     s7 = sp + 0x48;
    0x0002fd0c ori fp, v1, 0xffff            |     fp = v1 | 0xffff;
    0x0002fd10 addiu s5, v0, 0x40ac          |     s5 = v0 + 0x40ac;
                                             |     do {
    0x0002fd14 sw fp, 0x44(sp)               |         *(var_44h) = fp;
    0x0002fd18 lw v0, (s6)                   |         v0 = *(s6);
    0x0002fd1c lw t9, -0x7be4(gp)            |         t9 = sym.asmprintf;
    0x0002fd20 move a3, s3                   |         a3 = s3;
    0x0002fd24 move a2, s2                   |         a2 = s2;
    0x0002fd28 move a1, fp                   |         a1 = fp;
    0x0002fd2c move a0, s7                   |         a0 = s7;
    0x0002fd30 sw v0, 0x10(sp)               |         *(var_10h) = v0;
    0x0002fd34 bal 0x44408                   |         sym_asmprintf ();
    0x0002fd38 lw gp, 0x20(sp)               |         gp = *(var_20h);
    0x0002fd3c lw a3, 0x48(sp)               |         a3 = *(var_48h);
    0x0002fd40 move a2, s5                   |         a2 = s5;
    0x0002fd44 lw t9, -0x74ac(gp)            |         t9 = sym.imp.__fprintf_chk
    0x0002fd48 addiu a1, zero, 1             |         a1 = 1;
    0x0002fd4c move a0, s0                   |         a0 = s0;
    0x0002fd50 jalr t9                       |         t9 ();
    0x0002fd54 lw gp, 0x20(sp)               |         gp = *(var_20h);
    0x0002fd58 lw t9, -0x75e4(gp)            |         t9 = sym.imp.free;
    0x0002fd5c lw a0, 0x48(sp)               |         a0 = *(var_48h);
    0x0002fd60 jalr t9                       |         t9 ();
    0x0002fd64 move t9, s4                   |         t9 = s4;
    0x0002fd68 move a0, s6                   |         a0 = s6;
    0x0002fd6c bal 0x2a9dc                   |         fcn_0002a9dc ();
    0x0002fd70 move s6, v0                   |         s6 = v0;
    0x0002fd74 lw gp, 0x20(sp)               |         gp = *(var_20h);
    0x0002fd78 bnez v0, 0x2fd14              |         
                                             |     } while (v0 != 0);
    0x0002fd7c lw s1, 0xc(s1)                |     s1 = *((s1 + 3));
                                             | label_22:
    0x0002fd80 lw t9, -0x77fc(gp)            |     t9 = sym.imp.fputc;
                                             |     if (s1 != 0) {
    0x0002fd84 bnez s1, 0x2fba4              |         goto label_3;
                                             |     }
    0x0002fd88 lw v0, 0x3c(sp)               |     v0 = *(var_3ch);
                                             | label_5:
    0x0002fd8c lw a0, 0x8c(sp)               |     a0 = *(var_8ch);
    0x0002fd90 lw v1, (v0)                   |     v1 = *(v0);
    0x0002fd94 lw v0, 0x30(sp)               |     v0 = *(var_30h);
                                             |     if (a0 != v1) {
    0x0002fd98 bne a0, v1, 0x2fee8           |         goto label_23;
                                             |     }
    0x0002fd9c lw ra, 0xb4(sp)               |     ra = *(var_b4h);
    0x0002fda0 lw fp, 0xb0(sp)               |     fp = *(var_b0h);
    0x0002fda4 lw s7, 0xac(sp)               |     s7 = *(var_ach);
    0x0002fda8 lw s6, 0xa8(sp)               |     s6 = *(var_a8h);
    0x0002fdac lw s5, 0xa4(sp)               |     s5 = *(var_a4h);
    0x0002fdb0 lw s4, 0xa0(sp)               |     s4 = *(var_a0h);
    0x0002fdb4 lw s3, 0x9c(sp)               |     s3 = *(var_9ch);
    0x0002fdb8 lw s2, 0x98(sp)               |     s2 = *(var_98h);
    0x0002fdbc lw s1, 0x94(sp)               |     s1 = *(var_94h);
    0x0002fdc0 lw s0, 0x90(sp)               |     s0 = *(var_90h);
    0x0002fdc4 addiu sp, sp, 0xb8            |     
    0x0002fdc8 jr ra                         |     return v0;
                                             | label_17:
    0x0002fdcc lw v0, -0x7fdc(gp)            |     v0 = *(gp);
    0x0002fdd0 lw a1, -0x7fdc(gp)            |     a1 = *(gp);
    0x0002fdd4 lw a0, -0x7fdc(gp)            |     a0 = *(gp);
                                             |     /* str.sshkey_fingerprint_failed */
    0x0002fdd8 addiu v0, v0, -0xab0          |     v0 += -0xab0;
    0x0002fddc lw t9, -0x7fac(gp)            |     t9 = sym.sshlog;
    0x0002fde0 sw v0, 0x18(sp)               |     *(var_18h) = v0;
    0x0002fde4 addiu v0, zero, 2             |     v0 = 2;
    0x0002fde8 sw v0, 0x10(sp)               |     *(var_10h) = v0;
    0x0002fdec sw zero, 0x14(sp)             |     *(var_14h) = 0;
    0x0002fdf0 move a3, zero                 |     a3 = 0;
    0x0002fdf4 addiu a2, zero, 0x58a         |     a2 = 0x58a;
                                             |     /* str.krl_dump */
    0x0002fdf8 addiu a1, a1, 0x40e0          |     a1 += 0x40e0;
                                             |     /* str.krl.c */
    0x0002fdfc addiu a0, a0, 0x3db0          |     a0 += 0x3db0;
    0x0002fe00 bal 0x3740c                   |     sym_sshlog ();
    0x0002fe04 lw s1, 0xc(s1)                |     s1 = *((s1 + 3));
    0x0002fe08 addiu v0, zero, -4            |     v0 = -4;
    0x0002fe0c lw gp, 0x20(sp)               |     gp = *(var_20h);
    0x0002fe10 sw v0, 0x30(sp)               |     *(var_30h) = v0;
                                             |     if (s1 != 0) {
    0x0002fe14 bnez s1, 0x2fba0              |         goto label_4;
                                             |     }
    0x0002fe18 lw v0, 0x3c(sp)               |     v0 = *(var_3ch);
    0x0002fe1c b 0x2fd8c                     |     goto label_5;
                                             | label_16:
    0x0002fe20 lw a0, -0x7fdc(gp)            |     a0 = *(gp);
    0x0002fe24 lw t9, -0x77a4(gp)            |     t9 = sym.imp.fwrite;
    0x0002fe28 move a3, s0                   |     a3 = s0;
    0x0002fe2c addiu a2, zero, 0xe           |     a2 = 0xe;
    0x0002fe30 addiu a1, zero, 1             |     a1 = 1;
                                             |     /* str._Wildcard_CA_n */
    0x0002fe34 addiu a0, a0, 0x4068          |     a0 += 0x4068;
    0x0002fe38 jalr t9                       |     t9 ();
    0x0002fe3c lw gp, 0x20(sp)               |     gp = *(var_20h);
    0x0002fe40 b 0x2fc20                     |     goto label_6;
                                             | label_11:
    0x0002fe44 lw v0, 0x34(sp)               |     v0 = *(var_34h);
    0x0002fe48 lw t9, -0x7fac(gp)            |     t9 = sym.sshlog;
    0x0002fe4c sw v0, 0x18(sp)               |     *(var_18h) = v0;
    0x0002fe50 addiu v0, zero, 2             |     v0 = 2;
    0x0002fe54 sw zero, 0x14(sp)             |     *(var_14h) = 0;
    0x0002fe58 sw v0, 0x10(sp)               |     *(var_10h) = v0;
    0x0002fe5c move a3, zero                 |     a3 = 0;
    0x0002fe60 addiu a2, zero, 0x56c         |     a2 = 0x56c;
    0x0002fe64 b 0x2fa28                     |     goto label_7;
                                             | label_10:
    0x0002fe68 lui v1, 0x7fff                |     v1 = 0x7fffffff;
    0x0002fe6c ori v1, v1, 0xffff            |     
    0x0002fe70 lw t9, -0x7be4(gp)            |     t9 = sym.asmprintf;
    0x0002fe74 move a1, v1                   |     a1 = v1;
    0x0002fe78 sw v1, 0x44(sp)               |     *(var_44h) = v1;
                                             |     /* esilref: '&s' */
    0x0002fe7c addiu a3, a3, -0x964          |     a3 += -aav.0x00000964;
    0x0002fe80 addiu a2, sp, 0x44            |     a2 = sp + 0x44;
    0x0002fe84 addiu a0, sp, 0x48            |     a0 = sp + 0x48;
    0x0002fe88 sw v0, 0x10(sp)               |     *(var_10h) = v0;
    0x0002fe8c bal 0x44408                   |     sym_asmprintf ();
    0x0002fe90 lw gp, 0x20(sp)               |     gp = *(var_20h);
    0x0002fe94 lw a3, 0x48(sp)               |     a3 = *(var_48h);
    0x0002fe98 addiu a1, zero, 1             |     a1 = 1;
    0x0002fe9c lw a2, -0x7fdc(gp)            |     a2 = *(gp);
    0x0002fea0 lw t9, -0x74ac(gp)            |     t9 = sym.imp.__fprintf_chk
                                             |     /* str._Comment:__s_n */
    0x0002fea4 addiu a2, a2, 0x400c          |     a2 += 0x400c;
    0x0002fea8 move a0, s0                   |     a0 = s0;
    0x0002feac jalr t9                       |     t9 ();
    0x0002feb0 lw gp, 0x20(sp)               |     gp = *(var_20h);
    0x0002feb4 lw t9, -0x75e4(gp)            |     t9 = sym.imp.free;
    0x0002feb8 lw a0, 0x48(sp)               |     a0 = *(var_48h);
    0x0002febc jalr t9                       |     t9 ();
    0x0002fec0 lw gp, 0x20(sp)               |     gp = *(var_20h);
    0x0002fec4 move a1, s0                   |     a1 = s0;
    0x0002fec8 lw t9, -0x77fc(gp)            |     t9 = sym.imp.fputc;
    0x0002fecc addiu a0, zero, 0xa           |     a0 = 0xa;
    0x0002fed0 jalr t9                       |     t9 ();
    0x0002fed4 lw s6, 0x1c(s2)               |     s6 = *((s2 + 7));
    0x0002fed8 lw gp, 0x20(sp)               |     gp = *(var_20h);
                                             |     if (s6 != 0) {
    0x0002fedc bnez s6, 0x2f90c              |         goto label_8;
                                             |     }
    0x0002fee0 sw zero, 0x30(sp)             |     *(var_30h) = 0;
    0x0002fee4 b 0x2fa58                     |     goto label_9;
                                             | label_23:
    0x0002fee8 lw t9, -0x77e8(gp)            |     t9 = sym.imp.__stack_chk_fail;
    0x0002feec jalr t9                       |     t9 ();
    0x0002fef0 nop                           |     
    0x0002fef4 nop                           |     
    0x0002fef8 nop                           |     
    0x0002fefc nop                           |     
                                             | }
    ; assembly                           | /* r2dec pseudo code output */
                                         | /* /logs/firmware/unblob_extracted/firmware_extract/4325012-58052244.squashfs_v4_le_extract/usr/bin/ssh-keygen @ 0x36e6c */
                                         | #include <stdint.h>
                                         |  
    ; (fcn) sym.log_init ()              | void log_init () {
    0x00036e6c lui gp, 6                 |     
    0x00036e70 addiu gp, gp, 0x5234      |     
    0x00036e74 addu gp, gp, t9           |     gp += t9;
    0x00036e78 addiu sp, sp, -0x20       |     
    0x00036e7c lw v0, -0x7fcc(gp)        |     v0 = *((gp - 8179));
    0x00036e80 sw gp, 0x10(sp)           |     *(var_10h) = gp;
    0x00036e84 sw ra, 0x1c(sp)           |     *(var_1ch) = ra;
    0x00036e88 sw a0, 0x6560(v0)         |     *((v0 + 6488)) = a0;
                                         |     if (a0 != 0) {
    0x00036e8c beqz a0, 0x36ea0          |         
    0x00036e90 sltiu v0, a1, 8           |         v0 = (a1 < 8) ? 1 : 0;
    0x00036e94 lw v0, -0x7fcc(gp)        |         v0 = *((gp - 8179));
                                         |         if (v0 == 0) {
    0x00036e98 beqz v0, 0x37020          |             goto label_0;
                                         |         }
    0x00036e9c sw a1, 0x406c(v0)         |         *((v0 + 4123)) = a1;
                                         |     }
    0x00036ea0 lw v0, -0x7fcc(gp)        |     v0 = *((gp - 8179));
    0x00036ea4 sw zero, 0x655c(v0)       |     *((v0 + 6487)) = 0;
    0x00036ea8 lw v0, -0x7fcc(gp)        |     v0 = *((gp - 8179));
    0x00036eac sw zero, 0x6558(v0)       |     *((v0 + 6486)) = 0;
    0x00036eb0 lw v0, -0x7fcc(gp)        |     v0 = *((gp - 8179));
    0x00036eb4 sw a3, 0x4068(v0)         |     *((v0 + 4122)) = a3;
                                         |     if (a3 == 0) {
    0x00036eb8 bnez a3, 0x36ee0          |         
    0x00036ebc sltiu v0, a2, 0xc         |         v0 = (a2 < 0xc) ? 1 : 0;
    0x00036ec0 sll v0, a2, 2             |         v0 = a2 << 2;
                                         |         if (v0 == 0) {
    0x00036ec4 beqz v0, 0x37050          |             goto label_1;
                                         |         }
    0x00036ec8 lw a2, -0x7fdc(gp)        |         a2 = *(gp);
    0x00036ecc addiu a2, a2, 0x4ae0      |         a2 += 0x4ae0;
    0x00036ed0 lwx a2, v0(a2)            |         __asm ("lwx a2, v0(a2)");
    0x00036ed4 addu a2, a2, gp           |         a2 += gp;
    0x00036ed8 jr a2                     |         a2 ();
    0x00036edc nop                       |         
                                         |     }
    0x00036ee0 lw ra, 0x1c(sp)           |     ra = *(var_1ch);
    0x00036ee4 addiu sp, sp, 0x20        |     
    0x00036ee8 jr ra                     |     return v0;
                                         | label_0:
    0x00037020 lw v0, -0x76c4(gp)        |     v0 = *((gp - 7601));
    0x00037024 lw a2, -0x7fdc(gp)        |     a2 = *(gp);
    0x00037028 lw t9, -0x74ac(gp)        |     t9 = sym.imp.__fprintf_chk
    0x0003702c lw a0, (v0)               |     a0 = *(v0);
    0x00037030 move a3, a1               |     a3 = a1;
                                         |     /* str.Unrecognized_internal_syslog_level_code__d_n */
    0x00037034 addiu a2, a2, 0x49a0      |     a2 += 0x49a0;
                                         |     do {
    0x00037038 addiu a1, zero, 1         |         a1 = 1;
    0x0003703c jalr t9                   |         t9 ();
    0x00037040 lw gp, 0x10(sp)           |         gp = *(var_10h);
    0x00037044 lw t9, -0x7954(gp)        |         t9 = sym.imp.exit;
    0x00037048 addiu a0, zero, 1         |         a0 = 1;
    0x0003704c jalr t9                   |         t9 ();
                                         | label_1:
    0x00037050 lw v0, -0x76c4(gp)        |         v0 = *((gp - 7601));
    0x00037054 move a3, a2               |         a3 = a2;
    0x00037058 lw a2, -0x7fdc(gp)        |         a2 = *(gp);
    0x0003705c lw t9, -0x74ac(gp)        |         t9 = sym.imp.__fprintf_chk
    0x00037060 lw a0, (v0)               |         a0 = *(v0);
                                         |         /* str.Unrecognized_internal_syslog_facility_code__d_n */
    0x00037064 addiu a2, a2, 0x49cc      |         a2 += 0x49cc;
    0x00037068 b 0x37038                 |         
                                         |     } while (1);
                                         | }
    ; assembly                               | /* r2dec pseudo code output */
                                             | /* /logs/firmware/unblob_extracted/firmware_extract/4325012-58052244.squashfs_v4_le_extract/usr/bin/ssh-keygen @ 0x3f330 */
                                             | #include <stdint.h>
                                             |  
    ; (fcn) sym.sanitise_stdfd ()            | void sanitise_stdfd () {
    0x0003f330 lui gp, 6                     |     
    0x0003f334 addiu gp, gp, -0x3290         |     
    0x0003f338 addu gp, gp, t9               |     gp += t9;
    0x0003f33c addiu sp, sp, -0x30           |     
    0x0003f340 lw a0, -0x7fdc(gp)            |     a0 = *(gp);
    0x0003f344 lw t9, -0x78b0(gp)            |     t9 = sym.imp.open64;
    0x0003f348 addiu a1, zero, 2             |     a1 = 2;
    0x0003f34c sw gp, 0x10(sp)               |     *(var_10h) = gp;
    0x0003f350 sw s4, 0x28(sp)               |     *(var_28h) = s4;
    0x0003f354 sw ra, 0x2c(sp)               |     *(var_2ch) = ra;
    0x0003f358 sw s3, 0x24(sp)               |     *(var_24h) = s3;
    0x0003f35c sw s2, 0x20(sp)               |     *(var_20h) = s2;
    0x0003f360 sw s1, 0x1c(sp)               |     *(var_1ch) = s1;
    0x0003f364 sw s0, 0x18(sp)               |     *(var_18h) = s0;
                                             |     /* str._dev_null */
    0x0003f368 addiu a0, a0, 0x5c5c          |     a0 += 0x5c5c;
    0x0003f36c jalr t9                       |     t9 ();
    0x0003f370 move s4, v0                   |     s4 = v0;
    0x0003f374 addiu v0, zero, -1            |     v0 = -1;
    0x0003f378 lw gp, 0x10(sp)               |     gp = *(var_10h);
                                             |     if (s4 == v0) {
    0x0003f37c beq s4, v0, 0x3f488           |         goto label_1;
                                             |     }
    0x0003f380 move s0, s4                   |     s0 = s4;
    0x0003f384 addiu s1, zero, -1            |     s1 = -1;
    0x0003f388 addiu s3, zero, 9             |     s3 = 9;
                                             |     do {
                                             | label_0:
    0x0003f38c lw t9, -0x7ec4(gp)            |         t9 = *(gp);
    0x0003f390 move a0, s0                   |         a0 = s0;
    0x0003f394 addiu a1, zero, 1             |         a1 = 1;
    0x0003f398 bal 0x5a4c0                   |         fcn_0005a4c0 ();
    0x0003f39c move s0, v0                   |         s0 = v0;
    0x0003f3a0 slti v0, v0, 3                |         v0 = (v0 < 3) ? 1 : 0;
    0x0003f3a4 lw gp, 0x10(sp)               |         gp = *(var_10h);
                                             |         if (v0 == 0) {
    0x0003f3a8 beqz v0, 0x3f43c              |             goto label_2;
                                             |         }
    0x0003f3ac lw t9, -0x7894(gp)            |         t9 = sym.imp.fcntl;
    0x0003f3b0 addiu a1, zero, 3             |         a1 = 3;
    0x0003f3b4 move a0, s0                   |         a0 = s0;
    0x0003f3b8 jalr t9                       |         t9 ();
    0x0003f3bc lw gp, 0x10(sp)               |         gp = *(var_10h);
    0x0003f3c0 bne v0, s1, 0x3f38c           |         
                                             |     } while (v0 != s1);
    0x0003f3c4 lw t9, -0x7418(gp)            |     t9 = sym.imp.__errno_location;
    0x0003f3c8 jalr t9                       |     t9 ();
    0x0003f3cc nop                           |     
    0x0003f3d0 move s2, v0                   |     s2 = v0;
    0x0003f3d4 lw v0, (v0)                   |     v0 = *(v0);
    0x0003f3d8 lw gp, 0x10(sp)               |     gp = *(var_10h);
                                             |     if (v0 != s3) {
    0x0003f3dc bne v0, s3, 0x3f38c           |         goto label_0;
                                             |     }
    0x0003f3e0 lw t9, -0x7664(gp)            |     t9 = sym.imp.dup2;
    0x0003f3e4 move a1, s0                   |     a1 = s0;
    0x0003f3e8 move a0, s4                   |     a0 = s4;
    0x0003f3ec jalr t9                       |     t9 ();
    0x0003f3f0 lw gp, 0x10(sp)               |     gp = *(var_10h);
                                             |     if (v0 != s1) {
    0x0003f3f4 bne v0, s1, 0x3f38c           |         goto label_0;
                                             |     }
    0x0003f3f8 lw v0, -0x76c4(gp)            |     v0 = *((gp - 7601));
    0x0003f3fc lw t9, -0x7454(gp)            |     t9 = sym.imp.strerror;
    0x0003f400 lw a0, (s2)                   |     a0 = *(s2);
    0x0003f404 lw s0, (v0)                   |     s0 = *(v0);
    0x0003f408 jalr t9                       |     t9 ();
    0x0003f40c lw gp, 0x10(sp)               |     gp = *(var_10h);
    0x0003f410 move a0, s0                   |     a0 = s0;
    0x0003f414 move a3, v0                   |     a3 = v0;
    0x0003f418 lw a2, -0x7fdc(gp)            |     a2 = *(gp);
    0x0003f41c lw t9, -0x74ac(gp)            |     t9 = sym.imp.__fprintf_chk
                                             |     /* str.dup2:__s_n */
    0x0003f420 addiu a2, a2, 0x5c88          |     a2 += 0x5c88;
                                             |     do {
    0x0003f424 addiu a1, zero, 1             |         a1 = 1;
    0x0003f428 jalr t9                       |         t9 ();
    0x0003f42c lw gp, 0x10(sp)               |         gp = *(var_10h);
    0x0003f430 lw t9, -0x7954(gp)            |         t9 = sym.imp.exit;
    0x0003f434 addiu a0, zero, 1             |         a0 = 1;
    0x0003f438 jalr t9                       |         t9 ();
                                             | label_2:
    0x0003f43c slti v0, s4, 3                |         v0 = (s4 < 3) ? 1 : 0;
    0x0003f440 lw ra, 0x2c(sp)               |         ra = *(var_2ch);
                                             |         if (v0 != 0) {
    0x0003f444 beqz v0, 0x3f464              |             
    0x0003f448 lw s4, 0x28(sp)               |             s4 = *(var_28h);
    0x0003f44c lw s3, 0x24(sp)               |             s3 = *(var_24h);
    0x0003f450 lw s2, 0x20(sp)               |             s2 = *(var_20h);
    0x0003f454 lw s1, 0x1c(sp)               |             s1 = *(var_1ch);
    0x0003f458 lw s0, 0x18(sp)               |             s0 = *(var_18h);
    0x0003f45c addiu sp, sp, 0x30            |             
    0x0003f460 jr ra                         |             return v0;
                                             |         }
    0x0003f464 lw s3, 0x24(sp)               |         s3 = *(var_24h);
    0x0003f468 lw s2, 0x20(sp)               |         s2 = *(var_20h);
    0x0003f46c lw s1, 0x1c(sp)               |         s1 = *(var_1ch);
    0x0003f470 lw s0, 0x18(sp)               |         s0 = *(var_18h);
    0x0003f474 move a0, s4                   |         a0 = s4;
    0x0003f478 lw t9, -0x779c(gp)            |         t9 = sym.imp.close;
    0x0003f47c lw s4, 0x28(sp)               |         s4 = *(var_28h);
    0x0003f480 addiu sp, sp, 0x30            |         
    0x0003f484 jr t9                         |         t9 ();
                                             | label_1:
    0x0003f488 lw v0, -0x76c4(gp)            |         v0 = *((gp - 7601));
    0x0003f48c lw t9, -0x7418(gp)            |         t9 = sym.imp.__errno_location;
    0x0003f490 lw s0, (v0)                   |         s0 = *(v0);
    0x0003f494 jalr t9                       |         t9 ();
    0x0003f498 lw gp, 0x10(sp)               |         gp = *(var_10h);
    0x0003f49c lw t9, -0x7454(gp)            |         t9 = sym.imp.strerror;
    0x0003f4a0 lw a0, (v0)                   |         a0 = *(v0);
    0x0003f4a4 jalr t9                       |         t9 ();
    0x0003f4a8 lw gp, 0x10(sp)               |         gp = *(var_10h);
    0x0003f4ac move a0, s0                   |         a0 = s0;
    0x0003f4b0 move a3, v0                   |         a3 = v0;
    0x0003f4b4 lw a2, -0x7fdc(gp)            |         a2 = *(gp);
    0x0003f4b8 lw t9, -0x74ac(gp)            |         t9 = sym.imp.__fprintf_chk
                                             |         /* str.Couldnt_open__dev_null:__s_n */
    0x0003f4bc addiu a2, a2, 0x5c68          |         a2 += 0x5c68;
    0x0003f4c0 b 0x3f424                     |         
                                             |     } while (1);
                                             | }
    ; assembly                               | /* r2dec pseudo code output */
                                             | /* /logs/firmware/unblob_extracted/firmware_extract/4325012-58052244.squashfs_v4_le_extract/usr/bin/ssh-keygen @ 0x28e30 */
                                             | #include <stdint.h>
                                             |  
    ; (fcn) sym.sshbuf_dump_data ()          | void sshbuf_dump_data () {
    0x00028e30 lui gp, 7                     |     
    0x00028e34 addiu gp, gp, 0x3270          |     
    0x00028e38 addu gp, gp, t9               |     gp += t9;
                                             |     if (a1 == 0) {
    0x00028e3c beqz a1, 0x29024              |         goto label_5;
                                             |     }
    0x00028e40 nop                           |     
    0x00028e44 addiu sp, sp, -0x48           |     
    0x00028e48 sw fp, 0x40(sp)               |     *(var_40h) = fp;
    0x00028e4c lw fp, -0x7fdc(gp)            |     fp = *(gp);
    0x00028e50 sw s7, 0x3c(sp)               |     *(var_3ch_3) = s7;
    0x00028e54 sw s5, 0x34(sp)               |     *(var_34h_3) = s5;
    0x00028e58 lw s7, -0x7fdc(gp)            |     s7 = *(gp);
    0x00028e5c lw s5, -0x7fdc(gp)            |     s5 = *(gp);
                                             |     /* str._.4zu:_ */
    0x00028e60 addiu v0, fp, 0x3d70          |     v0 = fp + 0x3d70;
    0x00028e64 sw s6, 0x38(sp)               |     *(var_38h_3) = s6;
    0x00028e68 sw s4, 0x30(sp)               |     *(var_30h_3) = s4;
    0x00028e6c sw s2, 0x28(sp)               |     *(var_28h_2) = s2;
    0x00028e70 sw s1, 0x24(sp)               |     *(var_24h_3) = s1;
    0x00028e74 sw gp, 0x10(sp)               |     *(var_10h_3) = gp;
    0x00028e78 sw ra, 0x44(sp)               |     *(var_44h) = ra;
    0x00028e7c sw s3, 0x2c(sp)               |     *(var_2ch_3) = s3;
    0x00028e80 sw s0, 0x20(sp)               |     *(var_20h_2) = s0;
    0x00028e84 move s2, a2                   |     s2 = a2;
    0x00028e88 move s6, a0                   |     s6 = a0;
    0x00028e8c move s4, a1                   |     s4 = a1;
    0x00028e90 move s1, zero                 |     s1 = 0;
    0x00028e94 sw v0, 0x1c(sp)               |     *(var_1ch_3) = v0;
                                             |     /* esilref: '   ' */
    0x00028e98 addiu s7, s7, 0x3d80          |     s7 += 0x3d80;
                                             |     /* str._02x_ */
    0x00028e9c addiu s5, s5, 0x3d78          |     s5 += aav.0x00003d78;
                                             | label_3:
    0x00028ea0 lw t9, -0x74ac(gp)            |     t9 = sym.imp.__fprintf_chk
    0x00028ea4 lw a2, 0x1c(sp)               |     a2 = *(var_1ch_3);
    0x00028ea8 move a3, s1                   |     a3 = s1;
    0x00028eac addiu a1, zero, 1             |     a1 = 1;
    0x00028eb0 move a0, s2                   |     a0 = s2;
    0x00028eb4 addiu s3, s1, 0x10            |     s3 = s1 + 0x10;
    0x00028eb8 jalr t9                       |     t9 ();
    0x00028ebc sltu v0, s1, s3               |     v0 = (s1 < s3) ? 1 : 0;
    0x00028ec0 lw gp, 0x10(sp)               |     gp = *(var_10h_3);
                                             |     if (v0 == 0) {
    0x00028ec4 beqz v0, 0x2900c              |         goto label_6;
                                             |     }
    0x00028ec8 move s0, s1                   |     s0 = s1;
    0x00028ecc b 0x28ee4                     |     
                                             |     while (v0 != 0) {
    0x00028ed0 lbux a3, s0(s6)               |         __asm ("lbux a3, s0(s6)");
    0x00028ed4 addiu s0, s0, 1               |         s0++;
    0x00028ed8 jalr t9                       |         t9 ();
    0x00028edc lw gp, 0x10(sp)               |         gp = *(var_10h_3);
                                             |         if (s0 == s3) {
    0x00028ee0 beq s0, s3, 0x28f24           |             goto label_7;
                                             |         }
                                             | label_0:
    0x00028ee4 sltu v0, s0, s4               |         v0 = (s0 < s4) ? 1 : 0;
    0x00028ee8 lw t9, -0x74ac(gp)            |         t9 = sym.imp.__fprintf_chk
    0x00028eec move a2, s5                   |         a2 = s5;
    0x00028ef0 addiu a1, zero, 1             |         a1 = 1;
    0x00028ef4 move a0, s2                   |         a0 = s2;
    0x00028ef8 lw v1, -0x77a4(gp)            |         v1 = sym.imp.fwrite;
    0x00028efc bnez v0, 0x28ed0              |         
                                             |     }
    0x00028f00 move a3, s2                   |     a3 = s2;
    0x00028f04 addiu a2, zero, 3             |     a2 = 3;
    0x00028f08 addiu a1, zero, 1             |     a1 = 1;
    0x00028f0c move a0, s7                   |     a0 = s7;
    0x00028f10 move t9, v1                   |     t9 = v1;
    0x00028f14 addiu s0, s0, 1               |     s0++;
    0x00028f18 jalr t9                       |     t9 ();
    0x00028f1c lw gp, 0x10(sp)               |     gp = *(var_10h_3);
                                             |     if (s0 != s3) {
    0x00028f20 bne s0, s3, 0x28ee4           |         goto label_0;
                                             |     }
                                             | label_7:
    0x00028f24 lw t9, -0x77fc(gp)            |     t9 = sym.imp.fputc;
    0x00028f28 move a1, s2                   |     a1 = s2;
    0x00028f2c addiu a0, zero, 0x20          |     a0 = 0x20;
    0x00028f30 jalr t9                       |     t9 ();
    0x00028f34 addiu s0, zero, -0x80         |     s0 = -0x80;
    0x00028f38 lw gp, 0x10(sp)               |     gp = *(var_10h_3);
    0x00028f3c b 0x28f60                     |     goto label_2;
                                             | label_1:
    0x00028f40 lw t9, -0x77fc(gp)            |     t9 = sym.imp.fputc;
    0x00028f44 move a1, s2                   |     a1 = s2;
    0x00028f48 addiu a0, zero, 0x2e          |     a0 = 0x2e;
    0x00028f4c jalr t9                       |     t9 ();
    0x00028f50 lw gp, 0x10(sp)               |     gp = *(var_10h_3);
    0x00028f54 addiu s1, s1, 1               |     s1++;
                                             |     do {
    0x00028f58 lw t9, -0x77fc(gp)            |         t9 = sym.imp.fputc;
                                             |         if (s1 == s3) {
    0x00028f5c beq s1, s3, 0x28fc0           |             goto label_8;
                                             |         }
                                             | label_2:
    0x00028f60 sltu v0, s1, s4               |         v0 = (s1 < s4) ? 1 : 0;
    0x00028f64 beql v0, zero, 0x28f58        |         
                                             |     } while (v0 == 0);
    0x00028f68 addiu s1, s1, 1               |     s1++;
    0x00028f6c lbux fp, s1(s6)               |     __asm ("lbux fp, s1(s6)");
    0x00028f70 and v0, fp, s0                |     v0 = fp & s0;
    0x00028f74 lw t9, -0x7668(gp)            |     t9 = sym.imp.__ctype_b_loc;
                                             |     if (v0 != 0) {
    0x00028f78 bnez v0, 0x28f40              |         goto label_1;
                                             |     }
    0x00028f7c jalr t9                       |     t9 ();
    0x00028f80 nop                           |     
    0x00028f84 lw v0, (v0)                   |     v0 = *(v0);
    0x00028f88 sll v1, fp, 1                 |     v1 = fp << 1;
    0x00028f8c addu v0, v0, v1               |     v0 += v1;
    0x00028f90 lhu v0, (v0)                  |     v0 = *(v0);
    0x00028f94 andi v0, v0, 0x4000           |     v0 &= 0x4000;
    0x00028f98 lw gp, 0x10(sp)               |     gp = *(var_10h_3);
                                             |     if (v0 == 0) {
    0x00028f9c beqz v0, 0x28f40              |         goto label_1;
                                             |     }
    0x00028fa0 lw t9, -0x77fc(gp)            |     t9 = sym.imp.fputc;
    0x00028fa4 move a1, s2                   |     a1 = s2;
    0x00028fa8 move a0, fp                   |     a0 = fp;
    0x00028fac addiu s1, s1, 1               |     s1++;
    0x00028fb0 jalr t9                       |     t9 ();
    0x00028fb4 lw gp, 0x10(sp)               |     gp = *(var_10h_3);
                                             |     if (s1 != s3) {
    0x00028fb8 bne s1, s3, 0x28f60           |         goto label_2;
                                             |     }
                                             | label_4:
    0x00028fbc lw t9, -0x77fc(gp)            |     t9 = sym.imp.fputc;
                                             | label_8:
    0x00028fc0 move a1, s2                   |     a1 = s2;
    0x00028fc4 addiu a0, zero, 0xa           |     a0 = 0xa;
    0x00028fc8 jalr t9                       |     t9 ();
    0x00028fcc sltu v0, s3, s4               |     v0 = (s3 < s4) ? 1 : 0;
    0x00028fd0 move s1, s3                   |     s1 = s3;
    0x00028fd4 lw gp, 0x10(sp)               |     gp = *(var_10h_3);
                                             |     if (v0 != 0) {
    0x00028fd8 bnez v0, 0x28ea0              |         goto label_3;
                                             |     }
    0x00028fdc lw ra, 0x44(sp)               |     ra = *(var_44h);
    0x00028fe0 lw fp, 0x40(sp)               |     fp = *(var_40h);
    0x00028fe4 lw s7, 0x3c(sp)               |     s7 = *(var_3ch_3);
    0x00028fe8 lw s6, 0x38(sp)               |     s6 = *(var_38h_3);
    0x00028fec lw s5, 0x34(sp)               |     s5 = *(var_34h_3);
    0x00028ff0 lw s4, 0x30(sp)               |     s4 = *(var_30h_3);
    0x00028ff4 lw s3, 0x2c(sp)               |     s3 = *(var_2ch_3);
    0x00028ff8 lw s2, 0x28(sp)               |     s2 = *(var_28h_2);
    0x00028ffc lw s1, 0x24(sp)               |     s1 = *(var_24h_3);
    0x00029000 lw s0, 0x20(sp)               |     s0 = *(var_20h_2);
    0x00029004 addiu sp, sp, 0x48            |     
    0x00029008 jr ra                         |     return v0;
                                             | label_6:
    0x0002900c lw t9, -0x77fc(gp)            |     t9 = sym.imp.fputc;
    0x00029010 move a1, s2                   |     a1 = s2;
    0x00029014 addiu a0, zero, 0x20          |     a0 = 0x20;
    0x00029018 jalr t9                       |     t9 ();
    0x0002901c lw gp, 0x10(sp)               |     gp = *(var_10h_3);
    0x00029020 b 0x28fbc                     |     goto label_4;
                                             | label_5:
    0x00029024 jr ra                         |     return v0;
    0x00029028 nop                           |     
                                             | }
    ; assembly                               | /* r2dec pseudo code output */
                                             | /* /logs/firmware/unblob_extracted/firmware_extract/4325012-58052244.squashfs_v4_le_extract/usr/bin/ssh-keygen @ 0x26274 */
                                             | #include <stdint.h>
                                             |  
    ; (fcn) sym.sshkey_dump_ec_point ()      | void sshkey_dump_ec_point () {
    0x00026274 lui gp, 7                     |     
    0x00026278 addiu gp, gp, 0x5e2c          |     
    0x0002627c addu gp, gp, t9               |     gp += t9;
    0x00026280 addiu sp, sp, -0x38           |     
    0x00026284 sw gp, 0x18(sp)               |     *(var_18h) = gp;
    0x00026288 sw ra, 0x34(sp)               |     *(var_34h) = ra;
    0x0002628c sw s3, 0x30(sp)               |     *(var_30h) = s3;
    0x00026290 sw s2, 0x2c(sp)               |     *(var_2ch) = s2;
    0x00026294 sw s1, 0x28(sp)               |     *(var_28h) = s1;
    0x00026298 sw s0, 0x24(sp)               |     *(var_24h) = s0;
    0x0002629c lw t9, -0x7738(gp)            |     t9 = sym.imp.BN_new;
                                             |     if (a1 == 0) {
    0x000262a0 beqz a1, 0x26460              |         goto label_1;
                                             |     }
    0x000262a4 move s3, a0                   |     s3 = a0;
    0x000262a8 move s0, a1                   |     s0 = a1;
    0x000262ac jalr t9                       |     t9 ();
    0x000262b0 move s2, v0                   |     s2 = v0;
    0x000262b4 lw gp, 0x18(sp)               |     gp = *(var_18h);
                                             |     if (v0 == 0) {
    0x000262b8 beqz v0, 0x26358              |         goto label_2;
                                             |     }
    0x000262bc lw t9, -0x7738(gp)            |     t9 = sym.imp.BN_new;
    0x000262c0 jalr t9                       |     t9 ();
    0x000262c4 nop                           |     
    0x000262c8 move s1, v0                   |     s1 = v0;
    0x000262cc lw gp, 0x18(sp)               |     gp = *(var_18h);
                                             |     if (v0 == 0) {
    0x000262d0 beqz v0, 0x26358              |         goto label_2;
                                             |     }
    0x000262d4 lw t9, -0x754c(gp)            |     t9 = sym.imp.EC_GROUP_method_of;
    0x000262d8 move a0, s3                   |     a0 = s3;
    0x000262dc jalr t9                       |     t9 ();
    0x000262e0 lw gp, 0x18(sp)               |     gp = *(var_18h);
    0x000262e4 lw t9, -0x7958(gp)            |     t9 = sym.imp.EC_METHOD_get_field_type;
    0x000262e8 move a0, v0                   |     a0 = v0;
    0x000262ec jalr t9                       |     t9 ();
    0x000262f0 addiu v1, zero, 0x196         |     v1 = 0x196;
    0x000262f4 lw gp, 0x18(sp)               |     gp = *(var_18h);
                                             |     if (v0 == v1) {
    0x000262f8 beq v0, v1, 0x26388           |         goto label_3;
                                             |     }
    0x000262fc lw v0, -0x76c4(gp)            |     v0 = *((gp - 7601));
    0x00026300 lw a3, -0x7fdc(gp)            |     a3 = *(gp);
    0x00026304 lw a2, -0x7fdc(gp)            |     a2 = *(gp);
    0x00026308 lw t9, -0x74ac(gp)            |     t9 = sym.imp.__fprintf_chk
    0x0002630c lw a0, (v0)                   |     a0 = *(v0);
                                             |     /* str.sshkey_dump_ec_point */
    0x00026310 addiu a3, a3, 0x3d54          |     a3 += 0x3d54;
                                             |     /* str._s:_group_is_not_a_prime_field_n */
    0x00026314 addiu a2, a2, 0x3494          |     a2 += 0x3494;
    0x00026318 addiu a1, zero, 1             |     a1 = 1;
    0x0002631c jalr t9                       |     t9 ();
    0x00026320 lw gp, 0x18(sp)               |     gp = *(var_18h);
                                             |     do {
                                             | label_0:
    0x00026324 lw t9, -0x7644(gp)            |         t9 = sym.imp.BN_clear_free;
    0x00026328 move a0, s2                   |         a0 = s2;
    0x0002632c jalr t9                       |         t9 ();
    0x00026330 lw gp, 0x18(sp)               |         gp = *(var_18h);
    0x00026334 lw ra, 0x34(sp)               |         ra = *(var_34h);
    0x00026338 lw s3, 0x30(sp)               |         s3 = *(var_30h);
    0x0002633c lw s2, 0x2c(sp)               |         s2 = *(var_2ch);
    0x00026340 lw s0, 0x24(sp)               |         s0 = *(var_24h);
    0x00026344 move a0, s1                   |         a0 = s1;
    0x00026348 lw t9, -0x7644(gp)            |         t9 = sym.imp.BN_clear_free;
    0x0002634c lw s1, 0x28(sp)               |         s1 = *(var_28h);
    0x00026350 addiu sp, sp, 0x38            |         
    0x00026354 jr t9                         |         t9 ();
                                             | label_2:
    0x00026358 lw v0, -0x76c4(gp)            |         v0 = *((gp - 7601));
    0x0002635c lw a3, -0x7fdc(gp)            |         a3 = *(gp);
    0x00026360 lw a2, -0x7fdc(gp)            |         a2 = *(gp);
    0x00026364 lw t9, -0x74ac(gp)            |         t9 = sym.imp.__fprintf_chk
    0x00026368 lw a0, (v0)                   |         a0 = *(v0);
                                             |         /* str.sshkey_dump_ec_point */
    0x0002636c addiu a3, a3, 0x3d54          |         a3 += 0x3d54;
                                             |         /* str._s:_BN_new_failed_n */
    0x00026370 addiu a2, a2, 0x3480          |         a2 += 0x3480;
    0x00026374 addiu a1, zero, 1             |         a1 = 1;
    0x00026378 jalr t9                       |         t9 ();
    0x0002637c move s1, zero                 |         s1 = 0;
    0x00026380 lw gp, 0x18(sp)               |         gp = *(var_18h);
    0x00026384 b 0x26324                     |         
                                             |     } while (1);
                                             | label_3:
    0x00026388 lw t9, -0x765c(gp)            |     t9 = sym.imp.EC_POINT_get_affine_coordinates_GFp;
    0x0002638c sw zero, 0x10(sp)             |     *(var_10h) = 0;
    0x00026390 move a3, s1                   |     a3 = s1;
    0x00026394 move a2, s2                   |     a2 = s2;
    0x00026398 move a1, s0                   |     a1 = s0;
    0x0002639c move a0, s3                   |     a0 = s3;
    0x000263a0 jalr t9                       |     t9 ();
    0x000263a4 addiu v1, zero, 1             |     v1 = 1;
    0x000263a8 lw gp, 0x18(sp)               |     gp = *(var_18h);
                                             |     if (v0 != v1) {
    0x000263ac beq v0, v1, 0x263dc           |         
    0x000263b0 lw v0, -0x76c4(gp)            |         v0 = *((gp - 7601));
    0x000263b4 lw a3, -0x7fdc(gp)            |         a3 = *(gp);
    0x000263b8 lw a2, -0x7fdc(gp)            |         a2 = *(gp);
    0x000263bc lw t9, -0x74ac(gp)            |         t9 = sym.imp.__fprintf_chk
    0x000263c0 lw a0, (v0)                   |         a0 = *(v0);
                                             |         /* str.sshkey_dump_ec_point */
    0x000263c4 addiu a3, a3, 0x3d54          |         a3 += 0x3d54;
                                             |         /* str._s:_EC_POINT_get_affine_coordinates_GFp_n */
    0x000263c8 addiu a2, a2, 0x34b4          |         a2 += 0x34b4;
    0x000263cc addiu a1, zero, 1             |         a1 = 1;
    0x000263d0 jalr t9                       |         t9 ();
    0x000263d4 lw gp, 0x18(sp)               |         gp = *(var_18h);
    0x000263d8 b 0x26324                     |         goto label_0;
                                             |     }
    0x000263dc lw s0, -0x76c4(gp)            |     s0 = *((gp - 7601));
    0x000263e0 lw a0, -0x7fdc(gp)            |     a0 = *(gp);
    0x000263e4 lw t9, -0x77a4(gp)            |     t9 = sym.imp.fwrite;
    0x000263e8 lw a3, (s0)                   |     a3 = *(s0);
    0x000263ec addiu a2, zero, 2             |     a2 = 2;
    0x000263f0 addiu a1, zero, 1             |     a1 = 1;
                                             |     /* esilref: 'x=' */
    0x000263f4 addiu a0, a0, 0x34e0          |     a0 += 0x34e0;
    0x000263f8 jalr t9                       |     t9 ();
    0x000263fc lw gp, 0x18(sp)               |     gp = *(var_18h);
    0x00026400 lw a0, (s0)                   |     a0 = *(s0);
    0x00026404 lw t9, -0x76ec(gp)            |     t9 = sym.imp.BN_print_fp;
    0x00026408 move a1, s2                   |     a1 = s2;
    0x0002640c jalr t9                       |     t9 ();
    0x00026410 lw gp, 0x18(sp)               |     gp = *(var_18h);
    0x00026414 lw a3, (s0)                   |     a3 = *(s0);
    0x00026418 addiu a2, zero, 3             |     a2 = 3;
    0x0002641c lw a0, -0x7fdc(gp)            |     a0 = *(gp);
    0x00026420 lw t9, -0x77a4(gp)            |     t9 = sym.imp.fwrite;
    0x00026424 addiu a1, zero, 1             |     a1 = 1;
                                             |     /* esilref: '
y=' */
    0x00026428 addiu a0, a0, 0x34e4          |     a0 += 0x34e4;
    0x0002642c jalr t9                       |     t9 ();
    0x00026430 lw gp, 0x18(sp)               |     gp = *(var_18h);
    0x00026434 lw a0, (s0)                   |     a0 = *(s0);
    0x00026438 lw t9, -0x76ec(gp)            |     t9 = sym.imp.BN_print_fp;
    0x0002643c move a1, s1                   |     a1 = s1;
    0x00026440 jalr t9                       |     t9 ();
    0x00026444 lw gp, 0x18(sp)               |     gp = *(var_18h);
    0x00026448 lw a1, (s0)                   |     a1 = *(s0);
    0x0002644c lw t9, -0x77fc(gp)            |     t9 = sym.imp.fputc;
    0x00026450 addiu a0, zero, 0xa           |     a0 = 0xa;
    0x00026454 jalr t9                       |     t9 ();
    0x00026458 lw gp, 0x18(sp)               |     gp = *(var_18h);
    0x0002645c b 0x26324                     |     goto label_0;
                                             | label_1:
    0x00026460 lw v0, -0x76c4(gp)            |     v0 = *((gp - 7601));
    0x00026464 lw a0, -0x7fdc(gp)            |     a0 = *(gp);
    0x00026468 lw ra, 0x34(sp)               |     ra = *(var_34h);
    0x0002646c lw s3, 0x30(sp)               |     s3 = *(var_30h);
    0x00026470 lw s2, 0x2c(sp)               |     s2 = *(var_2ch);
    0x00026474 lw s1, 0x28(sp)               |     s1 = *(var_28h);
    0x00026478 lw s0, 0x24(sp)               |     s0 = *(var_24h);
    0x0002647c lw a3, (v0)                   |     a3 = *(v0);
    0x00026480 lw t9, -0x77a4(gp)            |     t9 = sym.imp.fwrite;
    0x00026484 addiu a2, zero, 0xd           |     a2 = 0xd;
    0x00026488 addiu a1, zero, 1             |     a1 = 1;
                                             |     /* str.point_NULL__n */
    0x0002648c addiu a0, a0, 0x3470          |     a0 += 0x3470;
    0x00026490 addiu sp, sp, 0x38            |     
    0x00026494 jr t9                         |     return t9 ();
                                             | }
    ; assembly                               | /* r2dec pseudo code output */
                                             | /* /logs/firmware/unblob_extracted/firmware_extract/4325012-58052244.squashfs_v4_le_extract/usr/bin/ssh-keygen @ 0x32b14 */
                                             | #include <stdint.h>
                                             |  
    ; (fcn) sym.sshkey_save_public ()        | void sshkey_save_public () {
    0x00032b14 lui gp, 7                     |     
    0x00032b18 addiu gp, gp, -0x6a74         |     
    0x00032b1c addu gp, gp, t9               |     gp += t9;
    0x00032b20 addiu sp, sp, -0x30           |     
    0x00032b24 move v0, a1                   |     v0 = a1;
    0x00032b28 lw t9, -0x78b0(gp)            |     t9 = sym.imp.open64;
    0x00032b2c addiu a1, zero, 0x301         |     a1 = 0x301;
    0x00032b30 sw gp, 0x10(sp)               |     *(var_10h) = gp;
    0x00032b34 sw s3, 0x28(sp)               |     *(var_28h) = s3;
    0x00032b38 sw s2, 0x24(sp)               |     *(var_24h) = s2;
    0x00032b3c sw s1, 0x20(sp)               |     *(var_20h) = s1;
    0x00032b40 sw ra, 0x2c(sp)               |     *(var_2ch) = ra;
    0x00032b44 sw s0, 0x1c(sp)               |     *(var_1ch) = s0;
    0x00032b48 move s1, a0                   |     s1 = a0;
    0x00032b4c move s3, a2                   |     s3 = a2;
    0x00032b50 move a0, v0                   |     a0 = v0;
    0x00032b54 addiu a2, zero, 0x1a4         |     a2 = aav.0x000001a4;
    0x00032b58 jalr t9                       |     t9 ();
    0x00032b5c move s2, v0                   |     s2 = v0;
    0x00032b60 addiu v0, zero, -1            |     v0 = -1;
    0x00032b64 lw gp, 0x10(sp)               |     gp = *(var_10h);
                                             |     if (s2 == v0) {
    0x00032b68 beq s2, v0, 0x32c8c           |         goto label_1;
                                             |     }
    0x00032b6c lw a1, -0x7fdc(gp)            |     a1 = *(gp);
    0x00032b70 lw t9, -0x74b8(gp)            |     t9 = sym.imp.fdopen;
    0x00032b74 addiu a1, a1, -0xcdc          |     a1 += -0xcdc;
    0x00032b78 move a0, s2                   |     a0 = s2;
    0x00032b7c jalr t9                       |     t9 ();
    0x00032b80 move s0, v0                   |     s0 = v0;
    0x00032b84 lw gp, 0x10(sp)               |     gp = *(var_10h);
                                             |     if (v0 == 0) {
    0x00032b88 beqz v0, 0x32c60              |         goto label_2;
                                             |     }
    0x00032b8c lw t9, -0x7e6c(gp)            |     t9 = sym.sshkey_write;
    0x00032b90 move a0, s1                   |     a0 = s1;
    0x00032b94 move a1, v0                   |     a1 = v0;
    0x00032b98 bal 0x1f9d4                   |     sym_sshkey_write ();
    0x00032b9c move s1, v0                   |     s1 = v0;
    0x00032ba0 lw gp, 0x10(sp)               |     gp = *(var_10h);
                                             |     if (v0 != 0) {
    0x00032ba4 bnez v0, 0x32be0              |         goto label_3;
                                             |     }
    0x00032ba8 lw a2, -0x7fdc(gp)            |     a2 = *(gp);
    0x00032bac lw t9, -0x74ac(gp)            |     t9 = sym.imp.__fprintf_chk
    0x00032bb0 move a3, s3                   |     a3 = s3;
                                             |     /* esilref: ' &s
' */
    0x00032bb4 addiu a2, a2, 0x5c80          |     a2 += 0x5c80;
    0x00032bb8 addiu a1, zero, 1             |     a1 = 1;
    0x00032bbc move a0, s0                   |     a0 = s0;
    0x00032bc0 jalr t9                       |     t9 ();
    0x00032bc4 lw gp, 0x10(sp)               |     gp = *(var_10h);
    0x00032bc8 lw t9, -0x7938(gp)            |     t9 = sym.imp.ferror;
    0x00032bcc move a0, s0                   |     a0 = s0;
    0x00032bd0 jalr t9                       |     t9 ();
    0x00032bd4 lw gp, 0x10(sp)               |     gp = *(var_10h);
    0x00032bd8 beqz v0, 0x32c28              |     
                                             |     while (v0 != 0) {
    0x00032bdc addiu s1, zero, -0x18         |         s1 = -0x18;
                                             | label_3:
    0x00032be0 lw t9, -0x7418(gp)            |         t9 = sym.imp.__errno_location;
    0x00032be4 jalr t9                       |         t9 ();
    0x00032be8 nop                           |         
    0x00032bec lw gp, 0x10(sp)               |         gp = *(var_10h);
    0x00032bf0 move a0, s0                   |         a0 = s0;
    0x00032bf4 move s3, v0                   |         s3 = v0;
    0x00032bf8 lw t9, -0x76b4(gp)            |         t9 = sym.imp.fclose;
    0x00032bfc lw s0, (v0)                   |         s0 = *(v0);
    0x00032c00 jalr t9                       |         t9 ();
    0x00032c04 sw s0, (s3)                   |         *(s3) = s0;
                                             | label_0:
    0x00032c08 lw ra, 0x2c(sp)               |         ra = *(var_2ch);
    0x00032c0c move v0, s1                   |         v0 = s1;
    0x00032c10 lw s3, 0x28(sp)               |         s3 = *(var_28h);
    0x00032c14 lw s2, 0x24(sp)               |         s2 = *(var_24h);
    0x00032c18 lw s1, 0x20(sp)               |         s1 = *(var_20h);
    0x00032c1c lw s0, 0x1c(sp)               |         s0 = *(var_1ch);
    0x00032c20 addiu sp, sp, 0x30            |         
    0x00032c24 jr ra                         |         return v0;
    0x00032c28 lw t9, -0x76b4(gp)            |         t9 = sym.imp.fclose;
    0x00032c2c move a0, s0                   |         a0 = s0;
    0x00032c30 jalr t9                       |         t9 ();
    0x00032c34 move s1, v0                   |         s1 = v0;
    0x00032c38 lw gp, 0x10(sp)               |         gp = *(var_10h);
    0x00032c3c bnez v0, 0x32bdc              |         
                                             |     }
    0x00032c40 lw ra, 0x2c(sp)               |     ra = *(var_2ch);
    0x00032c44 move v0, s1                   |     v0 = s1;
    0x00032c48 lw s3, 0x28(sp)               |     s3 = *(var_28h);
    0x00032c4c lw s2, 0x24(sp)               |     s2 = *(var_24h);
    0x00032c50 lw s1, 0x20(sp)               |     s1 = *(var_20h);
    0x00032c54 lw s0, 0x1c(sp)               |     s0 = *(var_1ch);
    0x00032c58 addiu sp, sp, 0x30            |     
    0x00032c5c jr ra                         |     return v0;
                                             | label_2:
    0x00032c60 lw t9, -0x7418(gp)            |     t9 = sym.imp.__errno_location;
    0x00032c64 addiu s1, zero, -0x18         |     s1 = -0x18;
    0x00032c68 jalr t9                       |     t9 ();
    0x00032c6c lw gp, 0x10(sp)               |     gp = *(var_10h);
    0x00032c70 move a0, s2                   |     a0 = s2;
    0x00032c74 move s3, v0                   |     s3 = v0;
    0x00032c78 lw t9, -0x779c(gp)            |     t9 = sym.imp.close;
    0x00032c7c lw s0, (v0)                   |     s0 = *(v0);
    0x00032c80 jalr t9                       |     t9 ();
    0x00032c84 sw s0, (s3)                   |     *(s3) = s0;
    0x00032c88 b 0x32c08                     |     goto label_0;
                                             | label_1:
    0x00032c8c addiu s1, zero, -0x18         |     s1 = -0x18;
    0x00032c90 b 0x32c08                     |     goto label_0;
                                             | }

[*] Function fprintf used 40 times ssh-keygen