[*] Binary protection state of ssh-keygen
Full RELRO Canary found NX enabled PIE enabled No RPATH No RUNPATH No Symbols
[*] Function popen 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 popen used 1 times ssh-keygen