[*] Binary protection state of ssh-keygen

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


[*] Function strcat 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 @ 0x330d0 */
                                             | #include <stdint.h>
                                             |  
    ; (fcn) sym.cipher_init ()               | void cipher_init () {
    0x000330d0 lui gp, 7                     |     
    0x000330d4 addiu gp, gp, -0x7030         |     
    0x000330d8 addu gp, gp, t9               |     gp += t9;
    0x000330dc addiu sp, sp, -0x40           |     
    0x000330e0 lw t9, -0x7504(gp)            |     t9 = sym.imp.calloc;
    0x000330e4 sw gp, 0x18(sp)               |     *(var_18h) = gp;
    0x000330e8 sw s5, 0x34(sp)               |     *(var_34h) = s5;
    0x000330ec sw s4, 0x30(sp)               |     *(var_30h) = s4;
    0x000330f0 sw s3, 0x2c(sp)               |     *(var_2ch) = s3;
    0x000330f4 sw s2, 0x28(sp)               |     *(var_28h) = s2;
    0x000330f8 sw s1, 0x24(sp)               |     *(var_24h) = s1;
    0x000330fc sw ra, 0x3c(sp)               |     *(var_3ch) = ra;
    0x00033100 sw s6, 0x38(sp)               |     *(var_38h) = s6;
    0x00033104 sw s0, 0x20(sp)               |     *(var_20h) = s0;
    0x00033108 move s3, a0                   |     s3 = a0;
    0x0003310c sw zero, (a0)                 |     *(a0) = 0;
    0x00033110 move s1, a1                   |     s1 = a1;
    0x00033114 addiu a0, zero, 0x118         |     a0 = aav.0x00000118;
    0x00033118 addiu a1, zero, 1             |     a1 = 1;
    0x0003311c move s5, a2                   |     s5 = a2;
    0x00033120 move s4, a3                   |     s4 = a3;
    0x00033124 lw s2, 0x58(sp)               |     s2 = *(arg_58h);
    0x00033128 jalr t9                       |     t9 ();
    0x0003312c lw gp, 0x18(sp)               |     gp = *(var_18h);
                                             |     if (v0 == 0) {
    0x00033130 beqz v0, 0x3334c              |         goto label_7;
                                             |     }
    0x00033134 lw v1, 0x14(s1)               |     v1 = *((s1 + 5));
    0x00033138 move s0, v0                   |     s0 = v0;
    0x0003313c lw v0, 8(s1)                  |     v0 = *((s1 + 2));
    0x00033140 andi a0, v1, 8                |     a0 = v1 & 8;
    0x00033144 sltu a1, zero, a0             |     a1 = (0 < a0) ? 1 : 0;
    0x00033148 sltu v0, s4, v0               |     v0 = (s4 < v0) ? 1 : 0;
    0x0003314c sw a1, (s0)                   |     *(s0) = a1;
    0x00033150 sw s2, 4(s0)                  |     *((s0 + 1)) = s2;
                                             |     if (v0 != 0) {
    0x00033154 bnez v0, 0x331dc              |         goto label_8;
                                             |     }
    0x00033158 lw v0, 0x50(sp)               |     v0 = *(arg_50h);
                                             |     if (v0 == 0) {
    0x0003315c beql v0, zero, 0x33230        |         goto label_9;
                                             |     }
    0x00033160 andi v1, v1, 2                |     v1 &= 2;
    0x00033164 lw v0, 0xc(s1)                |     v0 = *((s1 + 3));
    0x00033168 lw a1, 0x54(sp)               |     a1 = *(arg_54h);
                                             |     if (v0 != 0) {
    0x0003316c bnez v0, 0x331d0              |         goto label_10;
                                             |     }
    0x00033170 andi v1, v1, 2                |     v1 &= 2;
                                             |     if (v1 == 0) {
    0x00033174 beql v1, zero, 0x33310        |         goto label_11;
                                             |     }
    0x00033178 lw v0, 4(s1)                  |     v0 = *((s1 + 1));
    0x0003317c sw s1, 0x114(s0)              |     *(s0) = s1;
                                             |     do {
    0x00033180 lw t9, -0x7bac(gp)            |         t9 = sym.chachapoly_new;
    0x00033184 move a1, s4                   |         a1 = s4;
    0x00033188 move a0, s5                   |         a0 = s5;
    0x0003318c bal 0x4c6b0                   |         sym_chachapoly_new ();
    0x00033190 lw gp, 0x18(sp)               |         gp = *(var_18h);
    0x00033194 sw v0, 0xc(s0)                |         *((s0 + 3)) = v0;
                                             |         if (v0 != 0) {
    0x00033198 beqz v0, 0x331dc              |             
                                             | label_1:
    0x0003319c sw s0, (s3)                   |             *(s3) = s0;
                                             | label_0:
    0x000331a0 lw ra, 0x3c(sp)               |             ra = *(var_3ch);
    0x000331a4 move s1, zero                 |             s1 = 0;
    0x000331a8 move v0, s1                   |             v0 = s1;
    0x000331ac lw s6, 0x38(sp)               |             s6 = *(var_38h);
    0x000331b0 lw s5, 0x34(sp)               |             s5 = *(var_34h);
    0x000331b4 lw s4, 0x30(sp)               |             s4 = *(var_30h);
    0x000331b8 lw s3, 0x2c(sp)               |             s3 = *(var_2ch);
    0x000331bc lw s2, 0x28(sp)               |             s2 = *(var_28h);
    0x000331c0 lw s1, 0x24(sp)               |             s1 = *(var_24h);
    0x000331c4 lw s0, 0x20(sp)               |             s0 = *(var_20h);
    0x000331c8 addiu sp, sp, 0x40            |             
    0x000331cc jr ra                         |             return v0;
                                             | label_10:
    0x000331d0 sltu v0, a1, v0               |             v0 = (a1 < v0) ? 1 : 0;
    0x000331d4 andi v1, v1, 2                |             v1 &= 2;
                                             |             if (v0 == 0) {
    0x000331d8 beqz v0, 0x33230              |                 goto label_9;
                                             |             }
                                             |         }
                                             | label_8:
    0x000331dc lw a0, 8(s0)                  |         a0 = *((s0 + 2));
                                             | label_3:
    0x000331e0 addiu s1, zero, -0xa          |         s1 = -0xa;
                                             | label_2:
    0x000331e4 lw t9, -0x7850(gp)            |         t9 = sym.imp.EVP_CIPHER_CTX_free;
    0x000331e8 jalr t9                       |         t9 ();
    0x000331ec nop                           |         
    0x000331f0 lw gp, 0x18(sp)               |         gp = *(var_18h);
    0x000331f4 addiu a1, zero, 0x118         |         a1 = aav.0x00000118;
    0x000331f8 lw t9, -0x7fc4(gp)            |         t9 = sym.freezero;
    0x000331fc move a0, s0                   |         a0 = s0;
    0x00033200 jalr t9                       |         t9 ();
                                             | label_6:
    0x00033204 lw ra, 0x3c(sp)               |         ra = *(var_3ch);
    0x00033208 move v0, s1                   |         v0 = s1;
    0x0003320c lw s6, 0x38(sp)               |         s6 = *(var_38h);
    0x00033210 lw s5, 0x34(sp)               |         s5 = *(var_34h);
    0x00033214 lw s4, 0x30(sp)               |         s4 = *(var_30h);
    0x00033218 lw s3, 0x2c(sp)               |         s3 = *(var_2ch);
    0x0003321c lw s2, 0x28(sp)               |         s2 = *(var_28h);
    0x00033220 lw s1, 0x24(sp)               |         s1 = *(var_24h);
    0x00033224 lw s0, 0x20(sp)               |         s0 = *(var_20h);
    0x00033228 addiu sp, sp, 0x40            |         
    0x0003322c jr ra                         |         return v0;
                                             | label_9:
    0x00033230 sw s1, 0x114(s0)              |         *(s0) = s1;
    0x00033234 bnez v1, 0x33180              |         
                                             |     } while (v1 != 0);
                                             | label_4:
    0x00033238 sw s0, (s3)                   |     *(s3) = s0;
                                             |     if (a0 == 0) {
    0x0003323c bnel a0, zero, 0x331a0        |         goto label_0;
                                             |     }
    0x00033240 lw t9, 0x18(s1)               |     t9 = *((s1 + 6));
    0x00033244 jalr t9                       |     t9 ();
    0x00033248 nop                           |     
    0x0003324c lw gp, 0x18(sp)               |     gp = *(var_18h);
    0x00033250 lw t9, -0x7774(gp)            |     t9 = sym.imp.EVP_CIPHER_CTX_new;
    0x00033254 move s6, v0                   |     s6 = v0;
    0x00033258 jalr t9                       |     t9 ();
    0x0003325c move a0, v0                   |     a0 = v0;
    0x00033260 lw gp, 0x18(sp)               |     gp = *(var_18h);
    0x00033264 sw v0, 8(s0)                  |     *((s0 + 2)) = v0;
                                             |     if (v0 == 0) {
    0x00033268 beqz v0, 0x33328              |         goto label_12;
                                             |     }
    0x0003326c xori s2, s2, 1                |     s2 ^= 1;
    0x00033270 lw t9, -0x7468(gp)            |     t9 = sym.imp.EVP_CipherInit;
    0x00033274 sltiu s2, s2, 1               |     s2 = (s2 < 1) ? 1 : 0;
    0x00033278 lw a3, 0x50(sp)               |     a3 = *(arg_50h);
    0x0003327c sw s2, 0x10(sp)               |     *(var_10h) = s2;
    0x00033280 move a2, zero                 |     a2 = 0;
    0x00033284 move a1, s6                   |     a1 = s6;
    0x00033288 jalr t9                       |     t9 ();
    0x0003328c lw gp, 0x18(sp)               |     gp = *(var_18h);
                                             |     if (v0 == 0) {
    0x00033290 beqz v0, 0x33304              |         goto label_13;
                                             |     }
    0x00033294 lw v0, 0x10(s1)               |     v0 = *((s1 + 4));
    0x00033298 lw a0, 8(s0)                  |     a0 = *((s0 + 2));
                                             |     if (v0 != 0) {
    0x0003329c beqz v0, 0x332c0              |         
    0x000332a0 lw t9, -0x7550(gp)            |         t9 = sym.imp.EVP_CIPHER_CTX_ctrl;
    0x000332a4 lw a3, 0x50(sp)               |         a3 = *(arg_50h);
    0x000332a8 addiu a2, zero, -1            |         a2 = -1;
    0x000332ac addiu a1, zero, 0x12          |         a1 = 0x12;
    0x000332b0 jalr t9                       |         t9 ();
    0x000332b4 lw gp, 0x18(sp)               |         gp = *(var_18h);
    0x000332b8 lw a0, 8(s0)                  |         a0 = *((s0 + 2));
                                             |         if (v0 == 0) {
    0x000332bc beqz v0, 0x33308              |             goto label_14;
                                             |         }
                                             |     }
    0x000332c0 lw t9, -0x749c(gp)            |     t9 = sym.imp.EVP_CIPHER_CTX_key_length;
    0x000332c4 jalr t9                       |     t9 ();
    0x000332c8 nop                           |     
    0x000332cc lw gp, 0x18(sp)               |     gp = *(var_18h);
    0x000332d0 lw a0, 8(s0)                  |     a0 = *((s0 + 2));
                                             |     if (v0 > 0) {
    0x000332d4 blez v0, 0x332e0              |         
    0x000332d8 lw t9, -0x7764(gp)            |         t9 = sym.imp.EVP_CIPHER_CTX_set_key_length;
                                             |         if (v0 != s4) {
    0x000332dc bne v0, s4, 0x33330           |             goto label_15;
                                             |         }
                                             |     }
                                             | label_5:
    0x000332e0 lw t9, -0x7468(gp)            |     t9 = sym.imp.EVP_CipherInit;
    0x000332e4 addiu v0, zero, -1            |     v0 = -1;
    0x000332e8 sw v0, 0x10(sp)               |     *(var_10h) = v0;
    0x000332ec move a3, zero                 |     a3 = 0;
    0x000332f0 move a2, s5                   |     a2 = s5;
    0x000332f4 move a1, zero                 |     a1 = 0;
    0x000332f8 jalr t9                       |     t9 ();
    0x000332fc lw gp, 0x18(sp)               |     gp = *(var_18h);
                                             |     if (v0 != 0) {
    0x00033300 bnez v0, 0x3319c              |         goto label_1;
                                             |     }
                                             | label_13:
    0x00033304 lw a0, 8(s0)                  |     a0 = *((s0 + 2));
                                             | label_14:
    0x00033308 addiu s1, zero, -0x16         |     s1 = -0x16;
    0x0003330c b 0x331e4                     |     goto label_2;
                                             | label_11:
    0x00033310 lw v1, 0x54(sp)               |     v1 = *(arg_54h);
    0x00033314 sltu v0, v1, v0               |     v0 = (v1 < v0) ? 1 : 0;
    0x00033318 lw a0, 8(s0)                  |     a0 = *((s0 + 2));
                                             |     if (v0 == 0) {
    0x0003331c bnel v0, zero, 0x331e0        |         goto label_3;
                                             |     }
    0x00033320 sw s1, 0x114(s0)              |     *(s0) = s1;
    0x00033324 b 0x33238                     |     goto label_4;
                                             | label_12:
    0x00033328 addiu s1, zero, -2            |     s1 = -2;
    0x0003332c b 0x331e4                     |     goto label_2;
                                             | label_15:
    0x00033330 move a1, s4                   |     a1 = s4;
    0x00033334 jalr t9                       |     t9 ();
    0x00033338 lw gp, 0x18(sp)               |     gp = *(var_18h);
    0x0003333c lw a0, 8(s0)                  |     a0 = *((s0 + 2));
                                             |     if (v0 != 0) {
    0x00033340 bnez v0, 0x332e0              |         goto label_5;
                                             |     }
    0x00033344 addiu s1, zero, -0x16         |     s1 = -0x16;
    0x00033348 b 0x331e4                     |     goto label_2;
                                             | label_7:
    0x0003334c addiu s1, zero, -2            |     s1 = -2;
    0x00033350 b 0x33204                     |     goto label_6;
                                             | }
    ; assembly                               | /* r2dec pseudo code output */
                                             | /* /logs/firmware/unblob_extracted/firmware_extract/4325012-58052244.squashfs_v4_le_extract/usr/bin/ssh-keygen @ 0x2e608 */
                                             | #include <stdint.h>
                                             |  
    ; (fcn) sym.ssh_krl_from_blob ()         | void ssh_krl_from_blob () {
    0x0002e608 lui gp, 7                     |     
    0x0002e60c addiu gp, gp, -0x2568         |     
    0x0002e610 addu gp, gp, t9               |     gp += t9;
    0x0002e614 addiu sp, sp, -0x130          |     
    0x0002e618 lw t9, -0x7f8c(gp)            |     t9 = sym.sshbuf_len;
    0x0002e61c sw s3, 0x114(sp)              |     *(var_114h) = s3;
    0x0002e620 lw s3, -0x773c(gp)            |     s3 = *((gp - 7631));
    0x0002e624 sw gp, 0x38(sp)               |     *(var_38h) = gp;
    0x0002e628 sw fp, 0x128(sp)              |     *(var_128h) = fp;
    0x0002e62c sw s7, 0x124(sp)              |     *(var_124h) = s7;
    0x0002e630 sw s5, 0x11c(sp)              |     *(var_11ch) = s5;
    0x0002e634 sw s2, 0x110(sp)              |     *(var_110h) = s2;
    0x0002e638 sw ra, 0x12c(sp)              |     *(var_12ch) = ra;
    0x0002e63c sw s6, 0x120(sp)              |     *(var_120h) = s6;
    0x0002e640 sw s4, 0x118(sp)              |     *(var_118h) = s4;
    0x0002e644 sw s1, 0x10c(sp)              |     *(var_10ch) = s1;
    0x0002e648 sw s0, 0x108(sp)              |     *(var_108h) = s0;
    0x0002e64c lw v0, (s3)                   |     v0 = *(s3);
    0x0002e650 sw zero, 0x80(sp)             |     *(var_80h) = 0;
    0x0002e654 sw zero, (a1)                 |     *(a1) = 0;
    0x0002e658 sw v0, 0x104(sp)              |     *(var_104h) = v0;
    0x0002e65c sw zero, 0x84(sp)             |     *(var_84h) = 0;
    0x0002e660 move s5, a1                   |     s5 = a1;
    0x0002e664 move s2, a0                   |     s2 = a0;
    0x0002e668 move fp, a2                   |     fp = a2;
    0x0002e66c move s7, a3                   |     s7 = a3;
    0x0002e670 bal 0x1bec4                   |     sym_sshbuf_len ();
    0x0002e674 sltiu v0, v0, 8               |     v0 = (v0 < 8) ? 1 : 0;
    0x0002e678 lw gp, 0x38(sp)               |     gp = *(var_38h);
                                             |     if (v0 != 0) {
    0x0002e67c bnez v0, 0x2eae4              |         goto label_13;
                                             |     }
    0x0002e680 lw t9, -0x7f88(gp)            |     t9 = sym.sshbuf_ptr;
    0x0002e684 move a0, s2                   |     a0 = s2;
    0x0002e688 bal 0x1c0a4                   |     sym_sshbuf_ptr ();
    0x0002e68c lw gp, 0x38(sp)               |     gp = *(var_38h);
    0x0002e690 addiu a2, zero, 8             |     a2 = 8;
    0x0002e694 move a0, v0                   |     a0 = v0;
    0x0002e698 lw a1, -0x7fdc(gp)            |     a1 = *(gp);
    0x0002e69c lw t9, -0x7474(gp)            |     t9 = sym.imp.memcmp;
                                             |     /* str.SSHKRL_n */
    0x0002e6a0 addiu a1, a1, 0x40c0          |     a1 += 0x40c0;
    0x0002e6a4 jalr t9                       |     t9 ();
    0x0002e6a8 lw gp, 0x38(sp)               |     gp = *(var_38h);
                                             |     if (v0 != 0) {
    0x0002e6ac bnez v0, 0x2eae4              |         goto label_13;
                                             |     }
    0x0002e6b0 lw t9, -0x7f44(gp)            |     t9 = sym.sshbuf_fromb;
    0x0002e6b4 move a0, s2                   |     a0 = s2;
    0x0002e6b8 bal 0x1b904                   |     sym_sshbuf_fromb ();
    0x0002e6bc move s0, v0                   |     s0 = v0;
    0x0002e6c0 lw gp, 0x38(sp)               |     gp = *(var_38h);
                                             |     if (v0 == 0) {
    0x0002e6c4 beqz v0, 0x2e7c8              |         goto label_14;
                                             |     }
    0x0002e6c8 lw t9, -0x7f84(gp)            |     t9 = sym.sshbuf_consume;
    0x0002e6cc addiu a1, zero, 8             |     a1 = 8;
    0x0002e6d0 move a0, v0                   |     a0 = v0;
    0x0002e6d4 bal 0x1c56c                   |     sym_sshbuf_consume ();
    0x0002e6d8 move s1, v0                   |     s1 = v0;
    0x0002e6dc lw gp, 0x38(sp)               |     gp = *(var_38h);
                                             |     if (v0 == 0) {
    0x0002e6e0 beqz v0, 0x2e768              |         goto label_15;
                                             |     }
    0x0002e6e4 move s4, zero                 |     s4 = 0;
                                             |     do {
                                             | label_0:
    0x0002e6e8 lw t9, -0x75e4(gp)            |         t9 = sym.imp.free;
                                             | label_2:
    0x0002e6ec move a0, s4                   |         a0 = s4;
    0x0002e6f0 jalr t9                       |         t9 ();
    0x0002e6f4 lw gp, 0x38(sp)               |         gp = *(var_38h);
    0x0002e6f8 lw t9, -0x7f4c(gp)            |         t9 = sym.sshkey_free;
    0x0002e6fc lw a0, 0x84(sp)               |         a0 = *(var_84h);
    0x0002e700 bal 0x1e0a4                   |         sym_sshkey_free ();
    0x0002e704 lw gp, 0x38(sp)               |         gp = *(var_38h);
    0x0002e708 lw t9, -0x7f9c(gp)            |         t9 = sym.sshbuf_free;
    0x0002e70c move a0, s0                   |         a0 = s0;
    0x0002e710 bal 0x1b7ac                   |         sym_sshbuf_free ();
    0x0002e714 lw gp, 0x38(sp)               |         gp = *(var_38h);
    0x0002e718 lw t9, -0x7f9c(gp)            |         t9 = sym.sshbuf_free;
    0x0002e71c lw a0, 0x80(sp)               |         a0 = *(var_80h);
    0x0002e720 bal 0x1b7ac                   |         sym_sshbuf_free ();
    0x0002e724 lw gp, 0x38(sp)               |         gp = *(var_38h);
                                             | label_3:
    0x0002e728 lw a0, 0x104(sp)              |         a0 = *(var_104h);
    0x0002e72c lw v1, (s3)                   |         v1 = *(s3);
    0x0002e730 move v0, s1                   |         v0 = s1;
                                             |         if (a0 != v1) {
    0x0002e734 bne a0, v1, 0x2f0e4           |             goto label_16;
                                             |         }
    0x0002e738 lw ra, 0x12c(sp)              |         ra = *(var_12ch);
    0x0002e73c lw fp, 0x128(sp)              |         fp = *(var_128h);
    0x0002e740 lw s7, 0x124(sp)              |         s7 = *(var_124h);
    0x0002e744 lw s6, 0x120(sp)              |         s6 = *(var_120h);
    0x0002e748 lw s5, 0x11c(sp)              |         s5 = *(var_11ch);
    0x0002e74c lw s4, 0x118(sp)              |         s4 = *(var_118h);
    0x0002e750 lw s3, 0x114(sp)              |         s3 = *(var_114h);
    0x0002e754 lw s2, 0x110(sp)              |         s2 = *(var_110h);
    0x0002e758 lw s1, 0x10c(sp)              |         s1 = *(var_10ch);
    0x0002e75c lw s0, 0x108(sp)              |         s0 = *(var_108h);
    0x0002e760 addiu sp, sp, 0x130           |         
    0x0002e764 jr ra                         |         return v0;
                                             | label_15:
    0x0002e768 lw t9, -0x7dd4(gp)            |         t9 = sym.ssh_krl_init;
    0x0002e76c bal 0x2c384                   |         sym_ssh_krl_init ();
    0x0002e770 nop                           |         
    0x0002e774 move s6, v0                   |         s6 = v0;
    0x0002e778 lw gp, 0x38(sp)               |         gp = *(var_38h);
                                             |         if (v0 == 0) {
    0x0002e77c beqz v0, 0x2e80c              |             goto label_17;
                                             |         }
    0x0002e780 lw t9, -0x7f90(gp)            |         t9 = sym.sshbuf_get_u32;
    0x0002e784 addiu a1, sp, 0x90            |         a1 = sp + 0x90;
    0x0002e788 move a0, s0                   |         a0 = s0;
    0x0002e78c bal 0x275dc                   |         sym_sshbuf_get_u32 ();
    0x0002e790 move s1, v0                   |         s1 = v0;
    0x0002e794 lw gp, 0x38(sp)               |         gp = *(var_38h);
                                             |         if (v0 != 0) {
    0x0002e798 bnez v0, 0x2e7f0              |             goto label_1;
                                             |         }
    0x0002e79c lw v1, 0x90(sp)               |         v1 = *(var_90h);
    0x0002e7a0 addiu v0, zero, 1             |         v0 = 1;
    0x0002e7a4 lw t9, -0x7c18(gp)            |         t9 = *(gp);
                                             |         if (v1 == v0) {
    0x0002e7a8 beq v1, v0, 0x2e7d4           |             goto label_18;
                                             |         }
                                             |         /* fcn.0002bb54 */
    0x0002e7ac addiu t9, t9, -0x44ac         |         t9 += -0x44ac;
    0x0002e7b0 move a0, s6                   |         a0 = s6;
    0x0002e7b4 bal 0x2bb54                   |         fcn_0002bb54 ();
    0x0002e7b8 move s4, zero                 |         s4 = 0;
    0x0002e7bc lw gp, 0x38(sp)               |         gp = *(var_38h);
    0x0002e7c0 addiu s1, zero, -4            |         s1 = -4;
    0x0002e7c4 b 0x2e6e8                     |         
                                             |     } while (1);
                                             | label_14:
    0x0002e7c8 move s4, zero                 |     s4 = 0;
    0x0002e7cc addiu s1, zero, -2            |     s1 = -2;
    0x0002e7d0 b 0x2e6e8                     |     goto label_0;
                                             | label_18:
    0x0002e7d4 lw t9, -0x7c90(gp)            |     t9 = sym.sshbuf_get_u64;
    0x0002e7d8 move a1, s6                   |     a1 = s6;
    0x0002e7dc move a0, s0                   |     a0 = s0;
    0x0002e7e0 bal 0x27538                   |     sym_sshbuf_get_u64 ();
    0x0002e7e4 move s1, v0                   |     s1 = v0;
    0x0002e7e8 lw gp, 0x38(sp)               |     gp = *(var_38h);
    0x0002e7ec beqz v0, 0x2e850              |     
                                             |     while (v0 != 0) {
                                             | label_1:
    0x0002e7f0 lw t9, -0x7c18(gp)            |         t9 = *(gp);
                                             |         /* fcn.0002bb54 */
    0x0002e7f4 addiu t9, t9, -0x44ac         |         t9 += -0x44ac;
    0x0002e7f8 move a0, s6                   |         a0 = s6;
    0x0002e7fc bal 0x2bb54                   |         fcn_0002bb54 ();
    0x0002e800 move s4, zero                 |         s4 = 0;
    0x0002e804 lw gp, 0x38(sp)               |         gp = *(var_38h);
    0x0002e808 b 0x2e6e8                     |         goto label_0;
                                             | label_17:
    0x0002e80c lw v0, -0x7fdc(gp)            |         v0 = *(gp);
    0x0002e810 lw a1, -0x7fdc(gp)            |         a1 = *(gp);
    0x0002e814 lw a0, -0x7fdc(gp)            |         a0 = *(gp);
                                             |         /* str.alloc_failed */
    0x0002e818 addiu v0, v0, 0x3e44          |         v0 += 0x3e44;
    0x0002e81c lw t9, -0x7fac(gp)            |         t9 = sym.sshlog;
    0x0002e820 sw v0, 0x18(sp)               |         *(var_18h) = v0;
    0x0002e824 addiu v0, zero, 2             |         v0 = 2;
    0x0002e828 sw zero, 0x14(sp)             |         *(var_14h) = 0;
    0x0002e82c sw v0, 0x10(sp)               |         *(var_10h) = v0;
    0x0002e830 addiu a3, zero, 1             |         a3 = 1;
    0x0002e834 addiu a2, zero, 0x3f3         |         a2 = 0x3f3;
                                             |         /* str.ssh_krl_from_blob */
    0x0002e838 addiu a1, a1, 0x4140          |         a1 += 0x4140;
                                             |         /* str.krl.c */
    0x0002e83c addiu a0, a0, 0x3db0          |         a0 += 0x3db0;
    0x0002e840 bal 0x3740c                   |         sym_sshlog ();
    0x0002e844 move s4, zero                 |         s4 = 0;
    0x0002e848 lw gp, 0x38(sp)               |         gp = *(var_38h);
    0x0002e84c b 0x2e6e8                     |         goto label_0;
    0x0002e850 lw t9, -0x7c90(gp)            |         t9 = sym.sshbuf_get_u64;
    0x0002e854 addiu a1, s6, 8               |         a1 = s6 + 8;
    0x0002e858 move a0, s0                   |         a0 = s0;
    0x0002e85c bal 0x27538                   |         sym_sshbuf_get_u64 ();
    0x0002e860 move s1, v0                   |         s1 = v0;
    0x0002e864 lw gp, 0x38(sp)               |         gp = *(var_38h);
    0x0002e868 bnez v0, 0x2e7f0              |         
                                             |     }
    0x0002e86c lw t9, -0x7c90(gp)            |     t9 = sym.sshbuf_get_u64;
    0x0002e870 addiu a1, s6, 0x10            |     a1 = s6 + 0x10;
    0x0002e874 move a0, s0                   |     a0 = s0;
    0x0002e878 bal 0x27538                   |     sym_sshbuf_get_u64 ();
    0x0002e87c move s1, v0                   |     s1 = v0;
    0x0002e880 lw gp, 0x38(sp)               |     gp = *(var_38h);
                                             |     if (v0 != 0) {
    0x0002e884 bnez v0, 0x2e7f0              |         goto label_1;
                                             |     }
    0x0002e888 lw t9, -0x7d98(gp)            |     t9 = sym.sshbuf_get_string_direct;
    0x0002e88c move a2, zero                 |     a2 = 0;
    0x0002e890 move a1, zero                 |     a1 = 0;
    0x0002e894 move a0, s0                   |     a0 = s0;
    0x0002e898 bal 0x27b7c                   |     sym_sshbuf_get_string_direct ();
    0x0002e89c move s1, v0                   |     s1 = v0;
    0x0002e8a0 lw gp, 0x38(sp)               |     gp = *(var_38h);
                                             |     if (v0 != 0) {
    0x0002e8a4 bnez v0, 0x2e7f0              |         goto label_1;
                                             |     }
    0x0002e8a8 lw t9, -0x7f40(gp)            |     t9 = sym.sshbuf_get_cstring;
    0x0002e8ac move a2, zero                 |     a2 = 0;
    0x0002e8b0 addiu a1, s6, 0x18            |     a1 = s6 + 0x18;
    0x0002e8b4 move a0, s0                   |     a0 = s0;
    0x0002e8b8 bal 0x27d60                   |     sym_sshbuf_get_cstring ();
    0x0002e8bc move s1, v0                   |     s1 = v0;
    0x0002e8c0 lw gp, 0x38(sp)               |     gp = *(var_38h);
                                             |     if (v0 != 0) {
    0x0002e8c4 bnez v0, 0x2e7f0              |         goto label_1;
                                             |     }
    0x0002e8c8 lw t9, -0x7c18(gp)            |     t9 = *(gp);
    0x0002e8cc addiu s1, sp, 0xc4            |     s1 = sp + 0xc4;
    0x0002e8d0 lw a0, 8(s6)                  |     a0 = *((s6 + 2));
    0x0002e8d4 lw a1, 0xc(s6)                |     a1 = *((s6 + 3));
                                             |     /* fcn.0002c2cc */
    0x0002e8d8 addiu t9, t9, -0x3d34         |     t9 += -0x3d34;
    0x0002e8dc move a2, s1                   |     a2 = s1;
    0x0002e8e0 bal 0x2c2cc                   |     fcn_0002c2cc ();
    0x0002e8e4 lw v1, 0x18(s6)               |     v1 = *((s6 + 6));
    0x0002e8e8 lw gp, 0x38(sp)               |     gp = *(var_38h);
    0x0002e8ec lw t0, (s6)                   |     t0 = *(s6);
    0x0002e8f0 lb v0, (v1)                   |     v0 = *(v1);
    0x0002e8f4 lw t1, 4(s6)                  |     t1 = *((s6 + 1));
                                             |     if (v0 != 0) {
    0x0002e8f8 bnez v0, 0x2eb48              |         goto label_19;
                                             |     }
    0x0002e8fc lw v0, -0x7fdc(gp)            |     v0 = *(gp);
    0x0002e900 addiu v0, v0, 0x5744          |     v0 += 0x5744;
                                             | label_4:
    0x0002e904 sw v0, 0x2c(sp)               |     *(var_2ch) = v0;
    0x0002e908 lw v0, -0x7fdc(gp)            |     v0 = *(gp);
    0x0002e90c lw t2, -0x7fdc(gp)            |     t2 = *(gp);
    0x0002e910 lw a0, -0x7fdc(gp)            |     a0 = *(gp);
                                             |     /* str.KRL_version__llu_generated_at__s_s_s */
    0x0002e914 addiu v0, v0, 0x3e54          |     v0 += 0x3e54;
    0x0002e918 lw t9, -0x7fac(gp)            |     t9 = sym.sshlog;
    0x0002e91c sw v0, 0x18(sp)               |     *(var_18h) = v0;
    0x0002e920 addiu v0, zero, 5             |     v0 = 5;
                                             |     /* str.ssh_krl_from_blob */
    0x0002e924 addiu a1, a0, 0x4140          |     a1 = a0 + 0x4140;
    0x0002e928 sw t2, 0x48(sp)               |     *(var_48h) = t2;
    0x0002e92c move a3, zero                 |     a3 = 0;
    0x0002e930 addiu a2, zero, 0x407         |     a2 = 0x407;
    0x0002e934 sw v1, 0x30(sp)               |     *(var_30h) = v1;
    0x0002e938 sw t0, 0x20(sp)               |     *(var_20h) = t0;
    0x0002e93c sw t1, 0x24(sp)               |     *(var_24h) = t1;
    0x0002e940 sw a0, 0x4c(sp)               |     *(var_4ch) = a0;
    0x0002e944 sw s1, 0x28(sp)               |     *(var_28h) = s1;
                                             |     /* str.krl.c */
    0x0002e948 addiu a0, t2, 0x3db0          |     a0 = t2 + 0x3db0;
    0x0002e94c sw v0, 0x10(sp)               |     *(var_10h) = v0;
    0x0002e950 sw zero, 0x14(sp)             |     *(var_14h) = 0;
    0x0002e954 bal 0x3740c                   |     sym_sshlog ();
    0x0002e958 lw gp, 0x38(sp)               |     gp = *(var_38h);
    0x0002e95c lw t9, -0x7f8c(gp)            |     t9 = sym.sshbuf_len;
    0x0002e960 move a0, s2                   |     a0 = s2;
    0x0002e964 bal 0x1bec4                   |     sym_sshbuf_len ();
    0x0002e968 lw gp, 0x38(sp)               |     gp = *(var_38h);
    0x0002e96c move a0, s0                   |     a0 = s0;
    0x0002e970 lw t9, -0x7f8c(gp)            |     t9 = sym.sshbuf_len;
    0x0002e974 move s1, v0                   |     s1 = v0;
    0x0002e978 bal 0x1bec4                   |     sym_sshbuf_len ();
    0x0002e97c sltu v0, s1, v0               |     v0 = (s1 < v0) ? 1 : 0;
    0x0002e980 lw gp, 0x38(sp)               |     gp = *(var_38h);
                                             |     if (v0 != 0) {
    0x0002e984 bnez v0, 0x2eb28              |         goto label_20;
                                             |     }
    0x0002e988 lw t9, -0x7f8c(gp)            |     t9 = sym.sshbuf_len;
    0x0002e98c move a0, s2                   |     a0 = s2;
    0x0002e990 bal 0x1bec4                   |     sym_sshbuf_len ();
    0x0002e994 lw gp, 0x38(sp)               |     gp = *(var_38h);
    0x0002e998 move a0, s0                   |     a0 = s0;
    0x0002e99c sw v0, 0x50(sp)               |     *(var_50h) = v0;
    0x0002e9a0 lw t9, -0x7f8c(gp)            |     t9 = sym.sshbuf_len;
    0x0002e9a4 move s4, zero                 |     s4 = 0;
    0x0002e9a8 bal 0x1bec4                   |     sym_sshbuf_len ();
    0x0002e9ac sw v0, 0x54(sp)               |     *(var_54h) = v0;
    0x0002e9b0 addiu t3, sp, 0x7e            |     t3 = sp + 0x7e;
    0x0002e9b4 move v0, zero                 |     v0 = 0;
    0x0002e9b8 addiu t1, sp, 0x8c            |     t1 = sp + 0x8c;
    0x0002e9bc addiu t0, sp, 0x88            |     t0 = sp + 0x88;
    0x0002e9c0 addiu t2, sp, 0x84            |     t2 = sp + 0x84;
    0x0002e9c4 lw gp, 0x38(sp)               |     gp = *(var_38h);
    0x0002e9c8 sw s6, 0x44(sp)               |     *(var_44h) = s6;
    0x0002e9cc sw s5, 0x58(sp)               |     *(var_58h) = s5;
    0x0002e9d0 sw fp, 0x5c(sp)               |     *(var_5ch) = fp;
    0x0002e9d4 sw s7, 0x13c(sp)              |     *(arg_13ch) = s7;
    0x0002e9d8 sw zero, 0x40(sp)             |     *(var_40h) = 0;
    0x0002e9dc move s7, v0                   |     s7 = v0;
    0x0002e9e0 move fp, t3                   |     fp = t3;
    0x0002e9e4 move s5, t1                   |     s5 = t1;
    0x0002e9e8 move s6, t0                   |     s6 = t0;
    0x0002e9ec move s1, t2                   |     s1 = t2;
                                             | label_8:
    0x0002e9f0 lw t9, -0x7f8c(gp)            |     t9 = sym.sshbuf_len;
                                             |     do {
    0x0002e9f4 move a0, s0                   |         a0 = s0;
    0x0002e9f8 bal 0x1bec4                   |         sym_sshbuf_len ();
    0x0002e9fc lw gp, 0x38(sp)               |         gp = *(var_38h);
                                             |         if (v0 == 0) {
    0x0002ea00 beqz v0, 0x2eb64              |             goto label_21;
                                             |         }
    0x0002ea04 lw t9, -0x7e44(gp)            |         t9 = sym.sshbuf_get_u8;
    0x0002ea08 move a1, fp                   |         a1 = fp;
    0x0002ea0c move a0, s0                   |         a0 = s0;
    0x0002ea10 bal 0x27700                   |         sym_sshbuf_get_u8 ();
    0x0002ea14 lw gp, 0x38(sp)               |         gp = *(var_38h);
                                             |         if (v0 != 0) {
    0x0002ea18 bnez v0, 0x2eb54              |             goto label_6;
                                             |         }
    0x0002ea1c lw t9, -0x7d98(gp)            |         t9 = sym.sshbuf_get_string_direct;
    0x0002ea20 move a2, s5                   |         a2 = s5;
    0x0002ea24 move a1, s6                   |         a1 = s6;
    0x0002ea28 move a0, s0                   |         a0 = s0;
    0x0002ea2c bal 0x27b7c                   |         sym_sshbuf_get_string_direct ();
    0x0002ea30 lw gp, 0x38(sp)               |         gp = *(var_38h);
                                             |         if (v0 != 0) {
    0x0002ea34 bnez v0, 0x2eb54              |             goto label_6;
                                             |         }
    0x0002ea38 lbu v0, 0x7e(sp)              |         v0 = *(var_7eh);
    0x0002ea3c addiu v1, zero, 4             |         v1 = 4;
    0x0002ea40 lw v0, 0x40(sp)               |         v0 = *(var_40h);
                                             |         if (v0 == v1) {
    0x0002ea44 beq v0, v1, 0x2ef78           |             goto label_22;
                                             |         }
    0x0002ea48 lw t9, -0x7f8c(gp)            |         t9 = sym.sshbuf_len;
    0x0002ea4c beqz v0, 0x2e9f4              |         
                                             |     } while (v0 == 0);
    0x0002ea50 lw v0, -0x7fdc(gp)            |     v0 = *(gp);
    0x0002ea54 lw s6, 0x44(sp)               |     s6 = *(var_44h);
                                             |     /* str.KRL_contains_non_signature_section_after_signature */
    0x0002ea58 addiu v0, v0, 0x3e7c          |     v0 += 0x3e7c;
    0x0002ea5c sw v0, 0x18(sp)               |     *(var_18h) = v0;
    0x0002ea60 lw t9, -0x7fac(gp)            |     t9 = sym.sshlog;
    0x0002ea64 addiu v0, zero, 2             |     v0 = 2;
    0x0002ea68 sw s7, 0x40(sp)               |     *(var_40h) = s7;
    0x0002ea6c sw zero, 0x14(sp)             |     *(var_14h) = 0;
    0x0002ea70 sw v0, 0x10(sp)               |     *(var_10h) = v0;
    0x0002ea74 move a3, zero                 |     a3 = 0;
    0x0002ea78 addiu a2, zero, 0x41c         |     a2 = aav.0x0000041c;
                                             | label_7:
    0x0002ea7c lw v0, 0x4c(sp)               |     v0 = *(var_4ch);
    0x0002ea80 addiu s1, zero, -4            |     s1 = -4;
    0x0002ea84 addiu a1, v0, 0x4140          |     a1 = v0 + 0x4140;
    0x0002ea88 lw v0, 0x48(sp)               |     v0 = *(var_48h);
    0x0002ea8c addiu a0, v0, 0x3db0          |     a0 = v0 + 0x3db0;
    0x0002ea90 bal 0x3740c                   |     sym_sshlog ();
    0x0002ea94 lw gp, 0x38(sp)               |     gp = *(var_38h);
                                             | label_5:
    0x0002ea98 lw t9, -0x7c18(gp)            |     t9 = *(gp);
                                             |     /* fcn.0002bb54 */
    0x0002ea9c addiu t9, t9, -0x44ac         |     t9 += -0x44ac;
    0x0002eaa0 move a0, s6                   |     a0 = s6;
    0x0002eaa4 bal 0x2bb54                   |     fcn_0002bb54 ();
    0x0002eaa8 lw gp, 0x38(sp)               |     gp = *(var_38h);
                                             | label_10:
    0x0002eaac lw v0, 0x40(sp)               |     v0 = *(var_40h);
    0x0002eab0 lw t9, -0x75e4(gp)            |     t9 = sym.imp.free;
                                             |     if (v0 == 0) {
    0x0002eab4 beqz v0, 0x2e6ec              |         goto label_2;
                                             |     }
    0x0002eab8 sll s5, v0, 2                 |     s5 = v0 << 2;
    0x0002eabc move s2, s4                   |     s2 = s4;
    0x0002eac0 addu s5, s5, s4               |     s5 += s4;
                                             |     do {
    0x0002eac4 lw t9, -0x7f4c(gp)            |         t9 = sym.sshkey_free;
    0x0002eac8 lw a0, (s2)                   |         a0 = *(s2);
    0x0002eacc addiu s2, s2, 4               |         s2 += 4;
    0x0002ead0 bal 0x1e0a4                   |         sym_sshkey_free ();
    0x0002ead4 lw gp, 0x38(sp)               |         gp = *(var_38h);
    0x0002ead8 bne s2, s5, 0x2eac4           |         
                                             |     } while (s2 != s5);
    0x0002eadc lw t9, -0x75e4(gp)            |     t9 = sym.imp.free;
    0x0002eae0 b 0x2e6ec                     |     goto label_2;
                                             | label_13:
    0x0002eae4 lw v0, -0x7fdc(gp)            |     v0 = *(gp);
    0x0002eae8 lw a1, -0x7fdc(gp)            |     a1 = *(gp);
    0x0002eaec lw a0, -0x7fdc(gp)            |     a0 = *(gp);
                                             |     /* str.not_a_KRL */
    0x0002eaf0 addiu v0, v0, 0x3e38          |     v0 += 0x3e38;
    0x0002eaf4 lw t9, -0x7fac(gp)            |     t9 = sym.sshlog;
    0x0002eaf8 sw v0, 0x18(sp)               |     *(var_18h) = v0;
    0x0002eafc addiu v0, zero, 7             |     v0 = 7;
    0x0002eb00 sw zero, 0x14(sp)             |     *(var_14h) = 0;
    0x0002eb04 sw v0, 0x10(sp)               |     *(var_10h) = v0;
    0x0002eb08 addiu a3, zero, 1             |     a3 = 1;
    0x0002eb0c addiu a2, zero, 0x3e6         |     a2 = 0x3e6;
                                             |     /* str.ssh_krl_from_blob */
    0x0002eb10 addiu a1, a1, 0x4140          |     a1 += 0x4140;
                                             |     /* str.krl.c */
    0x0002eb14 addiu a0, a0, 0x3db0          |     a0 += 0x3db0;
    0x0002eb18 bal 0x3740c                   |     sym_sshlog ();
    0x0002eb1c addiu s1, zero, -0x32         |     s1 = -0x32;
    0x0002eb20 lw gp, 0x38(sp)               |     gp = *(var_38h);
    0x0002eb24 b 0x2e728                     |     goto label_3;
                                             | label_20:
    0x0002eb28 lw t9, -0x7c18(gp)            |     t9 = *(gp);
                                             |     /* fcn.0002bb54 */
    0x0002eb2c addiu t9, t9, -0x44ac         |     t9 += -0x44ac;
    0x0002eb30 move a0, s6                   |     a0 = s6;
    0x0002eb34 bal 0x2bb54                   |     fcn_0002bb54 ();
    0x0002eb38 move s4, zero                 |     s4 = 0;
    0x0002eb3c lw gp, 0x38(sp)               |     gp = *(var_38h);
    0x0002eb40 addiu s1, zero, -1            |     s1 = -1;
    0x0002eb44 b 0x2e6e8                     |     goto label_0;
                                             | label_19:
    0x0002eb48 lw v0, -0x7fdc(gp)            |     v0 = *(gp);
                                             |     /* esilref: ': ' */
    0x0002eb4c addiu v0, v0, 0x440           |     v0 += aav.0x00000440;
    0x0002eb50 b 0x2e904                     |     goto label_4;
                                             | label_6:
    0x0002eb54 lw s6, 0x44(sp)               |     s6 = *(var_44h);
    0x0002eb58 sw s7, 0x40(sp)               |     *(var_40h) = s7;
                                             |     do {
    0x0002eb5c move s1, v0                   |         s1 = v0;
    0x0002eb60 b 0x2ea98                     |         goto label_5;
                                             | label_21:
    0x0002eb64 lw t9, -0x7f8c(gp)            |         t9 = sym.sshbuf_len;
    0x0002eb68 sw s7, 0x40(sp)               |         *(var_40h) = s7;
    0x0002eb6c move a0, s0                   |         a0 = s0;
    0x0002eb70 lw s6, 0x44(sp)               |         s6 = *(var_44h);
    0x0002eb74 lw s5, 0x58(sp)               |         s5 = *(var_58h);
    0x0002eb78 lw fp, 0x5c(sp)               |         fp = *(var_5ch);
    0x0002eb7c lw s7, 0x13c(sp)              |         s7 = *(arg_13ch);
    0x0002eb80 bal 0x1bec4                   |         sym_sshbuf_len ();
    0x0002eb84 lw gp, 0x38(sp)               |         gp = *(var_38h);
                                             |         if (v0 != 0) {
    0x0002eb88 bnez v0, 0x2ef70              |             goto label_23;
                                             |         }
    0x0002eb8c lw t9, -0x7f9c(gp)            |         t9 = sym.sshbuf_free;
    0x0002eb90 move a0, s0                   |         a0 = s0;
    0x0002eb94 bal 0x1b7ac                   |         sym_sshbuf_free ();
    0x0002eb98 lw gp, 0x38(sp)               |         gp = *(var_38h);
    0x0002eb9c lw t9, -0x7f44(gp)            |         t9 = sym.sshbuf_fromb;
    0x0002eba0 move a0, s2                   |         a0 = s2;
    0x0002eba4 bal 0x1b904                   |         sym_sshbuf_fromb ();
    0x0002eba8 move s0, v0                   |         s0 = v0;
    0x0002ebac lw gp, 0x38(sp)               |         gp = *(var_38h);
                                             |         if (v0 == 0) {
    0x0002ebb0 beqz v0, 0x2ef68              |             goto label_24;
                                             |         }
    0x0002ebb4 lw v0, 0x50(sp)               |         v0 = *(var_50h);
    0x0002ebb8 lw v1, 0x54(sp)               |         v1 = *(var_54h);
    0x0002ebbc lw t9, -0x7f84(gp)            |         t9 = sym.sshbuf_consume;
    0x0002ebc0 subu a1, v0, v1               |         __asm ("subu a1, v0, v1");
    0x0002ebc4 move a0, s0                   |         a0 = s0;
    0x0002ebc8 bal 0x1c56c                   |         sym_sshbuf_consume ();
    0x0002ebcc lw gp, 0x38(sp)               |         gp = *(var_38h);
    0x0002ebd0 bnez v0, 0x2eb5c              |         
                                             |     } while (v0 != 0);
    0x0002ebd4 lw v0, -0x7fdc(gp)            |     v0 = *(gp);
    0x0002ebd8 sw s4, 0x44(sp)               |     *(var_44h) = s4;
    0x0002ebdc addiu v0, v0, 0x40cc          |     v0 += 0x40cc;
    0x0002ebe0 sw v0, 0x64(sp)               |     *(var_64h) = v0;
    0x0002ebe4 lw v0, -0x7c18(gp)            |     v0 = *(gp);
    0x0002ebe8 sw s5, 0x70(sp)               |     *(var_70h) = s5;
    0x0002ebec addiu v0, v0, -0x496c         |     v0 += -0x496c;
    0x0002ebf0 sw v0, 0x54(sp)               |     *(var_54h) = v0;
    0x0002ebf4 lw v0, -0x7fdc(gp)            |     v0 = *(gp);
    0x0002ebf8 sw fp, 0x74(sp)               |     *(var_74h) = fp;
                                             |     /* str.Unsupported_KRL_certificate_section__u */
    0x0002ebfc addiu v0, v0, 0x3ef0          |     v0 += 0x3ef0;
    0x0002ec00 sw v0, 0x6c(sp)               |     *(var_6ch) = v0;
    0x0002ec04 sw s7, 0x13c(sp)              |     *(arg_13ch) = s7;
    0x0002ec08 lw v0, -0x7fdc(gp)            |     v0 = *(gp);
    0x0002ec0c lw s5, -0x7fdc(gp)            |     s5 = *(gp);
    0x0002ec10 sw v0, 0x68(sp)               |     *(var_68h) = v0;
    0x0002ec14 lw t9, -0x7f8c(gp)            |     t9 = sym.sshbuf_len;
    0x0002ec18 move a0, s0                   |     a0 = s0;
    0x0002ec1c bal 0x1bec4                   |     sym_sshbuf_len ();
    0x0002ec20 lw gp, 0x38(sp)               |     gp = *(var_38h);
                                             |     if (v0 == 0) {
    0x0002ec24 beqz v0, 0x2f174              |         goto label_25;
                                             |     }
    0x0002ec28 lw t9, -0x7f9c(gp)            |     t9 = sym.sshbuf_free;
    0x0002ec2c lw a0, 0x80(sp)               |     a0 = *(var_80h);
    0x0002ec30 bal 0x1b7ac                   |     sym_sshbuf_free ();
    0x0002ec34 lw gp, 0x38(sp)               |     gp = *(var_38h);
    0x0002ec38 addiu a1, sp, 0x7e            |     a1 = sp + 0x7e;
    0x0002ec3c move a0, s0                   |     a0 = s0;
    0x0002ec40 lw t9, -0x7e44(gp)            |     t9 = sym.sshbuf_get_u8;
    0x0002ec44 sw zero, 0x80(sp)             |     *(var_80h) = 0;
    0x0002ec48 bal 0x27700                   |     sym_sshbuf_get_u8 ();
    0x0002ec4c move s1, v0                   |     s1 = v0;
    0x0002ec50 lw gp, 0x38(sp)               |     gp = *(var_38h);
                                             |     if (v0 == 0) {
    0x0002ec54 bnez v0, 0x2ed40              |         
    0x0002ec58 lw t9, -0x7f3c(gp)            |         t9 = sym.sshbuf_froms;
    0x0002ec5c addiu a1, sp, 0x80            |         a1 = sp + 0x80;
    0x0002ec60 move a0, s0                   |         a0 = s0;
    0x0002ec64 bal 0x28a64                   |         sym_sshbuf_froms ();
    0x0002ec68 move s1, v0                   |         s1 = v0;
    0x0002ec6c lw gp, 0x38(sp)               |         gp = *(var_38h);
                                             |         if (v0 != 0) {
    0x0002ec70 bnez v0, 0x2ed40              |             goto label_26;
                                             |         }
    0x0002ec74 lbu v1, 0x7e(sp)              |         v1 = *(var_7eh);
    0x0002ec78 addiu v0, v1, -1              |         v0 = v1 + -1;
    0x0002ec7c andi v0, v0, 0xff             |         v0 &= 0xff;
    0x0002ec80 sltiu a0, v0, 5               |         a0 = (v0 < 5) ? 1 : 0;
    0x0002ec84 sll v0, v0, 2                 |         v0 <<= 2;
                                             |         if (a0 == 0) {
    0x0002ec88 beqz a0, 0x2f1cc              |             goto label_27;
                                             |         }
    0x0002ec8c lw v1, 0x64(sp)               |         v1 = *(var_64h);
    0x0002ec90 lwx v0, v0(v1)                |         __asm ("lwx v0, v0(v1)");
    0x0002ec94 addu v0, v0, gp               |         v0 += gp;
    0x0002ec98 jr v0                         |         v0 ();
    0x0002ec9c nop                           |         
                                             |     }
                                             | label_26:
    0x0002ed40 lw s4, 0x44(sp)               |     s4 = *(var_44h);
    0x0002ed44 b 0x2ea98                     |     goto label_5;
                                             | label_24:
    0x0002ef68 addiu s1, zero, -2            |     s1 = -2;
    0x0002ef6c b 0x2ea98                     |     goto label_5;
                                             | label_23:
    0x0002ef70 addiu s1, zero, -1            |     s1 = -1;
    0x0002ef74 b 0x2ea98                     |     goto label_5;
                                             | label_22:
    0x0002ef78 lw t9, -0x7bf4(gp)            |     t9 = sym.sshkey_from_blob;
    0x0002ef7c lw a1, 0x8c(sp)               |     a1 = *(var_8ch);
    0x0002ef80 lw a0, 0x88(sp)               |     a0 = *(var_88h);
    0x0002ef84 move a2, s1                   |     a2 = s1;
    0x0002ef88 bal 0x22c20                   |     sym_sshkey_from_blob ();
    0x0002ef8c lw gp, 0x38(sp)               |     gp = *(var_38h);
                                             |     if (v0 != 0) {
    0x0002ef90 bnez v0, 0x2f154              |         goto label_28;
                                             |     }
    0x0002ef94 lw t9, -0x7f8c(gp)            |     t9 = sym.sshbuf_len;
    0x0002ef98 move a0, s2                   |     a0 = s2;
    0x0002ef9c bal 0x1bec4                   |     sym_sshbuf_len ();
    0x0002efa0 lw gp, 0x38(sp)               |     gp = *(var_38h);
    0x0002efa4 move a0, s0                   |     a0 = s0;
    0x0002efa8 lw t9, -0x7f8c(gp)            |     t9 = sym.sshbuf_len;
    0x0002efac sw v0, 0x40(sp)               |     *(var_40h) = v0;
    0x0002efb0 bal 0x1bec4                   |     sym_sshbuf_len ();
    0x0002efb4 lw v1, 0x40(sp)               |     v1 = *(var_40h);
    0x0002efb8 sltu v0, v1, v0               |     v0 = (v1 < v0) ? 1 : 0;
    0x0002efbc lw gp, 0x38(sp)               |     gp = *(var_38h);
                                             |     if (v0 != 0) {
    0x0002efc0 bnez v0, 0x2f144              |         goto label_29;
                                             |     }
    0x0002efc4 lw t9, -0x7f8c(gp)            |     t9 = sym.sshbuf_len;
    0x0002efc8 move a0, s2                   |     a0 = s2;
    0x0002efcc bal 0x1bec4                   |     sym_sshbuf_len ();
    0x0002efd0 lw gp, 0x38(sp)               |     gp = *(var_38h);
    0x0002efd4 move a0, s0                   |     a0 = s0;
    0x0002efd8 lw t9, -0x7f8c(gp)            |     t9 = sym.sshbuf_len;
    0x0002efdc sw v0, 0x40(sp)               |     *(var_40h) = v0;
    0x0002efe0 bal 0x1bec4                   |     sym_sshbuf_len ();
    0x0002efe4 lw gp, 0x38(sp)               |     gp = *(var_38h);
    0x0002efe8 lw v1, 0x40(sp)               |     v1 = *(var_40h);
    0x0002efec move a2, s5                   |     a2 = s5;
    0x0002eff0 lw t9, -0x7d98(gp)            |     t9 = sym.sshbuf_get_string_direct;
    0x0002eff4 subu v0, v1, v0               |     __asm ("subu v0, v1, v0");
    0x0002eff8 move a1, s6                   |     a1 = s6;
    0x0002effc move a0, s0                   |     a0 = s0;
    0x0002f000 sw v0, 0x40(sp)               |     *(var_40h) = v0;
    0x0002f004 bal 0x27b7c                   |     sym_sshbuf_get_string_direct ();
    0x0002f008 lw gp, 0x38(sp)               |     gp = *(var_38h);
                                             |     if (v0 != 0) {
    0x0002f00c bnez v0, 0x2f154              |         goto label_28;
                                             |     }
    0x0002f010 lw v1, 0x84(sp)               |     v1 = *(var_84h);
    0x0002f014 lw a1, 0x88(sp)               |     a1 = *(var_88h);
    0x0002f018 lw a2, 0x8c(sp)               |     a2 = *(var_8ch);
    0x0002f01c lw t9, -0x7f88(gp)            |     t9 = sym.sshbuf_ptr;
    0x0002f020 sw v1, 0x68(sp)               |     *(var_68h) = v1;
    0x0002f024 sw a1, 0x64(sp)               |     *(var_64h) = a1;
    0x0002f028 sw a2, 0x60(sp)               |     *(var_60h) = a2;
    0x0002f02c move a0, s2                   |     a0 = s2;
    0x0002f030 bal 0x1c0a4                   |     sym_sshbuf_ptr ();
    0x0002f034 lw gp, 0x38(sp)               |     gp = *(var_38h);
    0x0002f038 lw v1, 0x40(sp)               |     v1 = *(var_40h);
    0x0002f03c lw a2, 0x60(sp)               |     a2 = *(var_60h);
    0x0002f040 sw v1, 0x10(sp)               |     *(var_10h) = v1;
    0x0002f044 lw v1, 0x68(sp)               |     v1 = *(var_68h);
    0x0002f048 lw t9, -0x7e48(gp)            |     t9 = sym.sshkey_verify;
    0x0002f04c lw a1, 0x64(sp)               |     a1 = *(var_64h);
    0x0002f050 sw zero, 0x1c(sp)             |     *(var_1ch) = 0;
    0x0002f054 sw zero, 0x18(sp)             |     *(var_18h) = 0;
    0x0002f058 sw zero, 0x14(sp)             |     *(var_14h) = 0;
    0x0002f05c move a3, v0                   |     a3 = v0;
    0x0002f060 move a0, v1                   |     a0 = v1;
    0x0002f064 bal 0x20ce0                   |     sym_sshkey_verify ();
    0x0002f068 lw gp, 0x38(sp)               |     gp = *(var_38h);
                                             |     if (v0 != 0) {
    0x0002f06c bnez v0, 0x2eb54              |         goto label_6;
                                             |     }
    0x0002f070 move a2, s4                   |     a2 = s4;
                                             |     if (s7 == 0) {
    0x0002f074 beqz s7, 0x2f0f0              |         goto label_30;
                                             |     }
    0x0002f078 move v1, zero                 |     v1 = 0;
    0x0002f07c b 0x2f08c                     |     
                                             |     while (v0 == 0) {
    0x0002f080 addiu v1, v1, 1               |         v1++;
    0x0002f084 addiu a2, a2, 4               |         a2 += 4;
                                             |         if (s7 == v1) {
    0x0002f088 beq s7, v1, 0x2f0f0           |             goto label_30;
                                             |         }
    0x0002f08c lw t9, -0x7e80(gp)            |         t9 = sym.sshkey_equal;
    0x0002f090 lw a0, (a2)                   |         a0 = *(a2);
    0x0002f094 lw a1, 0x84(sp)               |         a1 = *(var_84h);
    0x0002f098 sw v1, 0x60(sp)               |         *(var_60h) = v1;
    0x0002f09c sw a2, 0x40(sp)               |         *(var_40h) = a2;
    0x0002f0a0 bal 0x1ea90                   |         sym_sshkey_equal ();
    0x0002f0a4 lw gp, 0x38(sp)               |         gp = *(var_38h);
    0x0002f0a8 lw a2, 0x40(sp)               |         a2 = *(var_40h);
    0x0002f0ac lw v1, 0x60(sp)               |         v1 = *(var_60h);
    0x0002f0b0 beqz v0, 0x2f080              |         
                                             |     }
    0x0002f0b4 lw v0, -0x7fdc(gp)            |     v0 = *(gp);
    0x0002f0b8 sw s7, 0x40(sp)               |     *(var_40h) = s7;
                                             |     /* str.KRL_signed_more_than_once_with_the_same_key */
    0x0002f0bc addiu v0, v0, 0x3eb0          |     v0 += 0x3eb0;
    0x0002f0c0 sw v0, 0x18(sp)               |     *(var_18h) = v0;
    0x0002f0c4 addiu v0, zero, 2             |     v0 = 2;
    0x0002f0c8 lw s6, 0x44(sp)               |     s6 = *(var_44h);
    0x0002f0cc lw t9, -0x7fac(gp)            |     t9 = sym.sshlog;
    0x0002f0d0 sw zero, 0x14(sp)             |     *(var_14h) = 0;
    0x0002f0d4 sw v0, 0x10(sp)               |     *(var_10h) = v0;
    0x0002f0d8 move a3, zero                 |     a3 = 0;
    0x0002f0dc addiu a2, zero, 0x43c         |     a2 = 0x43c;
    0x0002f0e0 b 0x2ea7c                     |     goto label_7;
                                             | label_16:
    0x0002f0e4 lw t9, -0x77e8(gp)            |     t9 = sym.imp.__stack_chk_fail;
    0x0002f0e8 jalr t9                       |     t9 ();
    0x0002f0ec nop                           |     
                                             | label_30:
    0x0002f0f0 lw t9, -0x7d0c(gp)            |     t9 = sym.recallocarray;
    0x0002f0f4 addiu t0, s7, 1               |     t0 = s7 + 1;
    0x0002f0f8 addiu a3, zero, 4             |     a3 = 4;
    0x0002f0fc move a2, t0                   |     a2 = t0;
    0x0002f100 sw t0, 0x40(sp)               |     *(var_40h) = t0;
    0x0002f104 move a1, s7                   |     a1 = s7;
    0x0002f108 move a0, s4                   |     a0 = s4;
    0x0002f10c jalr t9                       |     t9 ();
    0x0002f110 lw gp, 0x38(sp)               |     gp = *(var_38h);
                                             |     if (v0 != 0) {
    0x0002f114 beqz v0, 0x2f164              |         
    0x0002f118 sll v1, s7, 2                 |         v1 = s7 << 2;
    0x0002f11c addu v1, v0, v1               |         v1 = v0 + v1;
    0x0002f120 lw t0, 0x40(sp)               |         t0 = *(var_40h);
    0x0002f124 lw a0, 0x84(sp)               |         a0 = *(var_84h);
    0x0002f128 move s4, v0                   |         s4 = v0;
    0x0002f12c addiu v0, zero, 1             |         v0 = 1;
    0x0002f130 sw a0, (v1)                   |         *(v1) = a0;
    0x0002f134 move s7, t0                   |         s7 = t0;
    0x0002f138 sw zero, 0x84(sp)             |         *(var_84h) = 0;
    0x0002f13c sw v0, 0x40(sp)               |         *(var_40h) = v0;
    0x0002f140 b 0x2e9f0                     |         goto label_8;
                                             | label_29:
    0x0002f144 sw s7, 0x40(sp)               |         *(var_40h) = s7;
    0x0002f148 lw s6, 0x44(sp)               |         s6 = *(var_44h);
    0x0002f14c addiu s1, zero, -1            |         s1 = -1;
    0x0002f150 b 0x2ea98                     |         goto label_5;
                                             | label_28:
    0x0002f154 sw s7, 0x40(sp)               |         *(var_40h) = s7;
    0x0002f158 lw s6, 0x44(sp)               |         s6 = *(var_44h);
    0x0002f15c addiu s1, zero, -4            |         s1 = -4;
    0x0002f160 b 0x2ea98                     |         goto label_5;
                                             |     }
    0x0002f164 sw s7, 0x40(sp)               |     *(var_40h) = s7;
    0x0002f168 lw s6, 0x44(sp)               |     s6 = *(var_44h);
    0x0002f16c addiu s1, zero, -2            |     s1 = -2;
    0x0002f170 b 0x2ea98                     |     goto label_5;
                                             | label_25:
    0x0002f174 lw v0, 0x40(sp)               |     v0 = *(var_40h);
    0x0002f178 lw s4, 0x44(sp)               |     s4 = *(var_44h);
    0x0002f17c sll s1, v0, 2                 |     s1 = v0 << 2;
    0x0002f180 lw v0, -0x7dbc(gp)            |     v0 = sym.ssh_krl_check_key;
    0x0002f184 lw s5, 0x70(sp)               |     s5 = *(var_70h);
    0x0002f188 lw fp, 0x74(sp)               |     fp = *(var_74h);
    0x0002f18c lw s7, 0x13c(sp)              |     s7 = *(arg_13ch);
    0x0002f190 sw s0, 0x50(sp)               |     *(var_50h) = s0;
    0x0002f194 addu s1, s1, s4               |     s1 += s4;
    0x0002f198 move s2, zero                 |     s2 = 0;
    0x0002f19c sw v0, 0x44(sp)               |     *(var_44h) = v0;
    0x0002f1a0 move s0, s4                   |     s0 = s4;
                                             |     do {
                                             | label_9:
    0x0002f1a4 lw t9, 0x44(sp)               |         t9 = *(var_44h);
                                             |         if (s0 == s1) {
    0x0002f1a8 beq s0, s1, 0x2f234           |             goto label_31;
                                             |         }
    0x0002f1ac lw a1, (s0)                   |         a1 = *(s0);
    0x0002f1b0 move a0, s6                   |         a0 = s6;
    0x0002f1b4 jalr t9                       |         t9 ();
    0x0002f1b8 lw gp, 0x38(sp)               |         gp = *(var_38h);
                                             |         if (v0 != 0) {
    0x0002f1bc bnez v0, 0x2f218              |             goto label_32;
                                             |         }
    0x0002f1c0 addiu s2, zero, 1             |         s2 = 1;
    0x0002f1c4 addiu s0, s0, 4               |         s0 += 4;
    0x0002f1c8 b 0x2f1a4                     |         
                                             |     } while (1);
                                             | label_27:
    0x0002f1cc lw v0, -0x7fdc(gp)            |     v0 = *(gp);
    0x0002f1d0 lw t9, -0x7fac(gp)            |     t9 = sym.sshlog;
                                             |     /* str.Unsupported_KRL_section__u */
    0x0002f1d4 addiu v0, v0, 0x3f48          |     v0 += 0x3f48;
    0x0002f1d8 sw v0, 0x18(sp)               |     *(var_18h) = v0;
    0x0002f1dc addiu v0, zero, 2             |     v0 = 2;
    0x0002f1e0 sw v0, 0x10(sp)               |     *(var_10h) = v0;
    0x0002f1e4 lw v0, 0x4c(sp)               |     v0 = *(var_4ch);
    0x0002f1e8 sw v1, 0x1c(sp)               |     *(var_1ch) = v1;
    0x0002f1ec addiu a1, v0, 0x4140          |     a1 = v0 + 0x4140;
    0x0002f1f0 lw v0, 0x48(sp)               |     v0 = *(var_48h);
    0x0002f1f4 sw zero, 0x14(sp)             |     *(var_14h) = 0;
    0x0002f1f8 move a3, zero                 |     a3 = 0;
    0x0002f1fc addiu a2, zero, 0x482         |     a2 = 0x482;
    0x0002f200 addiu a0, v0, 0x3db0          |     a0 = v0 + 0x3db0;
    0x0002f204 lw s4, 0x44(sp)               |     s4 = *(var_44h);
    0x0002f208 addiu s1, zero, -4            |     s1 = -4;
    0x0002f20c bal 0x3740c                   |     sym_sshlog ();
    0x0002f210 lw gp, 0x38(sp)               |     gp = *(var_38h);
    0x0002f214 b 0x2ea98                     |     goto label_5;
                                             | label_32:
    0x0002f218 lw t9, -0x7f4c(gp)            |     t9 = sym.sshkey_free;
    0x0002f21c lw a0, (s0)                   |     a0 = *(s0);
    0x0002f220 addiu s0, s0, 4               |     s0 += 4;
    0x0002f224 bal 0x1e0a4                   |     sym_sshkey_free ();
    0x0002f228 lw gp, 0x38(sp)               |     gp = *(var_38h);
    0x0002f22c sw zero, -4(s0)               |     *((s0 - 1)) = 0;
    0x0002f230 b 0x2f1a4                     |     goto label_9;
                                             | label_31:
    0x0002f234 lw v0, 0x40(sp)               |     v0 = *(var_40h);
    0x0002f238 lw s0, 0x50(sp)               |     s0 = *(var_50h);
                                             |     if (v0 == 0) {
    0x0002f23c beqz v0, 0x2f34c              |         goto label_33;
                                             |     }
    0x0002f240 lw v0, -0x7fdc(gp)            |     v0 = *(gp);
                                             |     if (s2 == 0) {
    0x0002f244 beqz s2, 0x2f30c              |         goto label_34;
                                             |     }
                                             |     if (s7 == 0) {
                                             | label_12:
    0x0002f248 beql s7, zero, 0x2f2b0        |         goto label_35;
                                             |     }
    0x0002f24c sw s6, (s5)                   |     *(s5) = s6;
    0x0002f250 sw s5, 0x44(sp)               |     *(var_44h) = s5;
    0x0002f254 move s1, zero                 |     s1 = 0;
    0x0002f258 move s5, s0                   |     s5 = s0;
    0x0002f25c sll v0, s1, 2                 |     v0 = s1 << 2;
                                             | label_11:
    0x0002f260 addu s0, fp, v0               |     s0 = fp + v0;
    0x0002f264 move s2, zero                 |     s2 = 0;
                                             |     do {
    0x0002f268 lw v0, 0x40(sp)               |         v0 = *(var_40h);
    0x0002f26c sll a0, s2, 2                 |         a0 = s2 << 2;
                                             |         if (s2 == v0) {
    0x0002f270 beq s2, v0, 0x2f2b8           |             goto label_36;
                                             |         }
    0x0002f274 lwx a0, a0(s4)                |         __asm ("lwx a0, a0(s4)");
    0x0002f278 lw t9, -0x7e80(gp)            |         t9 = sym.sshkey_equal;
                                             |         if (a0 != 0) {
    0x0002f27c beqz a0, 0x2f290              |             
    0x0002f280 lw a1, (s0)                   |             a1 = *(s0);
    0x0002f284 bal 0x1ea90                   |             sym_sshkey_equal ();
    0x0002f288 lw gp, 0x38(sp)               |             gp = *(var_38h);
                                             |             if (v0 != 0) {
    0x0002f28c bnez v0, 0x2f2a4              |                 goto label_37;
                                             |             }
                                             |         }
    0x0002f290 addiu s2, s2, 1               |         s2++;
    0x0002f294 b 0x2f268                     |         
                                             |     } while (1);
                                             | label_37:
    0x0002f2a4 move s0, s5                   |     s0 = s5;
    0x0002f2a8 lw s5, 0x44(sp)               |     s5 = *(var_44h);
    0x0002f2ac sw s6, (s5)                   |     *(s5) = s6;
                                             | label_35:
    0x0002f2b0 move s1, zero                 |     s1 = 0;
    0x0002f2b4 b 0x2eaac                     |     goto label_10;
                                             | label_36:
    0x0002f2b8 addiu s1, s1, 1               |     s1++;
    0x0002f2bc sll v0, s1, 2                 |     v0 = s1 << 2;
                                             |     if (s7 != s1) {
    0x0002f2c0 bne s7, s1, 0x2f260           |         goto label_11;
                                             |     }
    0x0002f2c4 lw v0, -0x7fdc(gp)            |     v0 = *(gp);
    0x0002f2c8 lw t9, -0x7fac(gp)            |     t9 = sym.sshlog;
                                             |     /* str.KRL_not_signed_with_any_trusted_key */
    0x0002f2cc addiu v0, v0, 0x3fb0          |     v0 += 0x3fb0;
    0x0002f2d0 sw v0, 0x18(sp)               |     *(var_18h) = v0;
    0x0002f2d4 addiu v0, zero, 2             |     v0 = 2;
    0x0002f2d8 sw v0, 0x10(sp)               |     *(var_10h) = v0;
    0x0002f2dc lw v0, 0x4c(sp)               |     v0 = *(var_4ch);
    0x0002f2e0 sw zero, 0x14(sp)             |     *(var_14h) = 0;
    0x0002f2e4 addiu a1, v0, 0x4140          |     a1 = v0 + 0x4140;
    0x0002f2e8 lw v0, 0x48(sp)               |     v0 = *(var_48h);
    0x0002f2ec move a3, zero                 |     a3 = 0;
    0x0002f2f0 addiu a2, zero, 0x4ac         |     a2 = aav.0x000004ac;
    0x0002f2f4 addiu a0, v0, 0x3db0          |     a0 = v0 + 0x3db0;
    0x0002f2f8 bal 0x3740c                   |     sym_sshlog ();
    0x0002f2fc move s0, s5                   |     s0 = s5;
    0x0002f300 lw gp, 0x38(sp)               |     gp = *(var_38h);
    0x0002f304 addiu s1, zero, -0x15         |     s1 = -0x15;
    0x0002f308 b 0x2ea98                     |     goto label_5;
                                             | label_34:
    0x0002f30c lw t9, -0x7fac(gp)            |     t9 = sym.sshlog;
                                             |     /* str.All_keys_used_to_sign_KRL_were_revoked */
    0x0002f310 addiu v0, v0, 0x3f88          |     v0 += 0x3f88;
    0x0002f314 sw v0, 0x18(sp)               |     *(var_18h) = v0;
    0x0002f318 addiu v0, zero, 2             |     v0 = 2;
    0x0002f31c sw v0, 0x10(sp)               |     *(var_10h) = v0;
    0x0002f320 lw v0, 0x4c(sp)               |     v0 = *(var_4ch);
    0x0002f324 sw zero, 0x14(sp)             |     *(var_14h) = 0;
    0x0002f328 addiu a1, v0, 0x4140          |     a1 = v0 + 0x4140;
    0x0002f32c lw v0, 0x48(sp)               |     v0 = *(var_48h);
    0x0002f330 move a3, zero                 |     a3 = 0;
    0x0002f334 addiu a2, zero, 0x498         |     a2 = aav.0x00000498;
    0x0002f338 addiu a0, v0, 0x3db0          |     a0 = v0 + 0x3db0;
    0x0002f33c bal 0x3740c                   |     sym_sshlog ();
    0x0002f340 addiu s1, zero, -0x33         |     s1 = -0x33;
    0x0002f344 lw gp, 0x38(sp)               |     gp = *(var_38h);
    0x0002f348 b 0x2ea98                     |     goto label_5;
                                             | label_33:
    0x0002f34c move s1, zero                 |     s1 = 0;
                                             |     if (s2 != 0) {
    0x0002f350 bnez s2, 0x2f248              |         goto label_12;
                                             |     }
    0x0002f354 sw s6, (s5)                   |     *(s5) = s6;
    0x0002f358 b 0x2eaac                     |     goto label_10;
                                             | }

[*] Function strcat used 1 times ssh-keygen