[*] Binary protection state of gpgv
Full RELRO Canary found NX disabled PIE enabled No RPATH No RUNPATH No Symbols
[*] Function printf tear down of gpgv
; assembly | /* r2dec pseudo code output */
| /* /logs/firmware/unblob_extracted/firmware_extract/4325012-58052244.squashfs_v4_le_extract/usr/bin/gpgv @ 0x23960 */
| #include <stdint.h>
|
; (fcn) sym.ask_for_detached_datafile () | void ask_for_detached_datafile () {
0x00023960 lui gp, 4 |
0x00023964 addiu gp, gp, -0x1830 |
0x00023968 addu gp, gp, t9 | gp += t9;
0x0002396c addiu sp, sp, -0x58 |
0x00023970 lw t9, -0x7b58(gp) | t9 = sym.open_sigfile;
0x00023974 sw s1, 0x34(sp) | *(var_34h) = s1;
0x00023978 lw s1, -0x781c(gp) | s1 = *((gp - 7687));
0x0002397c sw gp, 0x10(sp) | *(var_10h) = gp;
0x00023980 sw s5, 0x44(sp) | *(var_44h) = s5;
0x00023984 lw v0, (s1) | v0 = *(s1);
0x00023988 sw s4, 0x40(sp) | *(var_40h) = s4;
0x0002398c sw s3, 0x3c(sp) | *(var_3ch) = s3;
0x00023990 sw ra, 0x54(sp) | *(var_54h) = ra;
0x00023994 sw fp, 0x50(sp) | *(var_50h) = fp;
0x00023998 sw s7, 0x4c(sp) | *(var_4ch) = s7;
0x0002399c sw s6, 0x48(sp) | *(var_48h) = s6;
0x000239a0 sw s2, 0x38(sp) | *(var_38h) = s2;
0x000239a4 sw s0, 0x30(sp) | *(var_30h) = s0;
0x000239a8 move s3, a0 | s3 = a0;
0x000239ac move s4, a1 | s4 = a1;
0x000239b0 move a0, a2 | a0 = a2;
0x000239b4 addiu a1, sp, 0x18 | a1 = sp + 0x18;
0x000239b8 sw v0, 0x2c(sp) | *(var_2ch) = v0;
0x000239bc move s5, a3 | s5 = a3;
0x000239c0 bal 0x1895c | sym_open_sigfile ();
0x000239c4 lw gp, 0x10(sp) | gp = *(var_10h);
| if (v0 == 0) {
0x000239c8 beqz v0, 0x23a58 | goto label_4;
| }
0x000239cc move s2, v0 | s2 = v0;
0x000239d0 move s0, zero | s0 = 0;
| do {
| label_1:
0x000239d4 lw t9, -0x7bd4(gp) | t9 = *(gp);
0x000239d8 move a2, s2 | a2 = s2;
0x000239dc move a3, s5 | a3 = s5;
0x000239e0 move a1, s4 | a1 = s4;
| /* fcn.00022940 */
0x000239e4 addiu t9, t9, 0x2940 | t9 += 0x2940;
0x000239e8 move a0, s3 | a0 = s3;
0x000239ec bal 0x22940 | fcn_00022940 ();
0x000239f0 lw gp, 0x10(sp) | gp = *(var_10h);
0x000239f4 move a0, s2 | a0 = s2;
0x000239f8 lw t9, -0x7f50(gp) | t9 = sym.iobuf_close;
0x000239fc move s2, zero | s2 = 0;
0x00023a00 bal 0x3f1c0 | sym_iobuf_close ();
0x00023a04 lw gp, 0x10(sp) | gp = *(var_10h);
| label_2:
0x00023a08 lw t9, -0x7f24(gp) | t9 = sym.xfree;
0x00023a0c move a0, s0 | a0 = s0;
0x00023a10 bal 0x3cd20 | sym_xfree ();
0x00023a14 lw a0, 0x2c(sp) | a0 = *(var_2ch);
0x00023a18 lw v1, (s1) | v1 = *(s1);
0x00023a1c lw gp, 0x10(sp) | gp = *(var_10h);
0x00023a20 move v0, s2 | v0 = s2;
| if (a0 != v1) {
0x00023a24 bne a0, v1, 0x23cbc | goto label_5;
| }
0x00023a28 lw ra, 0x54(sp) | ra = *(var_54h);
0x00023a2c lw fp, 0x50(sp) | fp = *(var_50h);
0x00023a30 lw s7, 0x4c(sp) | s7 = *(var_4ch);
0x00023a34 lw s6, 0x48(sp) | s6 = *(var_48h);
0x00023a38 lw s5, 0x44(sp) | s5 = *(var_44h);
0x00023a3c lw s4, 0x40(sp) | s4 = *(var_40h);
0x00023a40 lw s3, 0x3c(sp) | s3 = *(var_3ch);
0x00023a44 lw s2, 0x38(sp) | s2 = *(var_38h);
0x00023a48 lw s1, 0x34(sp) | s1 = *(var_34h);
0x00023a4c lw s0, 0x30(sp) | s0 = *(var_30h);
0x00023a50 addiu sp, sp, 0x58 |
0x00023a54 jr ra | return v0;
| label_4:
0x00023a58 lw v0, -0x7fc8(gp) | v0 = *(gp);
0x00023a5c lw v1, 0x40(v0) | v1 = *((v0 + 16));
0x00023a60 lw a0, -0x7fdc(gp) | a0 = *(gp);
| if (v1 == 0) {
0x00023a64 beqz v1, 0x23ac8 | goto label_6;
| }
0x00023a68 lw v0, (v0) | v0 = *(v0);
0x00023a6c lw a0, -0x7fdc(gp) | a0 = *(gp);
| if (v0 != 0) {
0x00023a70 bnez v0, 0x23ab4 | goto label_7;
| }
| label_0:
0x00023a74 lw t9, -0x7de4(gp) | t9 = sym.iobuf_open;
0x00023a78 move a0, zero | a0 = 0;
0x00023a7c bal 0x3e974 | sym_iobuf_open ();
0x00023a80 move s2, v0 | s2 = v0;
0x00023a84 lw gp, 0x10(sp) | gp = *(var_10h);
0x00023a88 move s0, zero | s0 = 0;
0x00023a8c bnez v0, 0x239d4 |
| } while (v0 != 0);
0x00023a90 lw a3, -0x7fdc(gp) | a3 = *(gp);
0x00023a94 lw a1, -0x7fdc(gp) | a1 = *(gp);
0x00023a98 lw a0, -0x7fdc(gp) | a0 = *(gp);
0x00023a9c lw t9, -0x7944(gp) | t9 = sym.imp.__assert_fail;
| /* str.ask_for_detached_datafile */
0x00023aa0 addiu a3, a3, 0x6f1c | a3 += 0x6f1c;
0x00023aa4 addiu a2, zero, 0x1ec | a2 = aav.0x000001ec;
| /* str..._.._gnupg_1.4.7_g10_plaintext.c */
0x00023aa8 addiu a1, a1, 0x6ec4 | a1 += 0x6ec4;
| /* esilref: 'fp' */
0x00023aac addiu a0, a0, 0x6ee8 | a0 += 0x6ee8;
0x00023ab0 jalr t9 | t9 ();
| label_7:
0x00023ab4 lw t9, -0x7f30(gp) | t9 = sym.g10_log_info;
| /* str.reading_stdin_..._n */
0x00023ab8 addiu a0, a0, 0x6eb0 | a0 += 0x6eb0;
0x00023abc bal 0x384ac | sym_g10_log_info ();
0x00023ac0 lw gp, 0x10(sp) | gp = *(var_10h);
0x00023ac4 b 0x23a74 | goto label_0;
| label_6:
0x00023ac8 lw t9, -0x7c14(gp) | t9 = sym.tty_printf
| /* str.Detached_signature._n */
0x00023acc addiu a0, a0, 0x6e28 | a0 += 0x6e28;
0x00023ad0 bal 0x6438 | sym_tty_printf ()
0x00023ad4 lw gp, 0x10(sp) | gp = *(var_10h);
0x00023ad8 lw t9, -0x7f24(gp) | t9 = sym.xfree;
0x00023adc move a0, zero | a0 = 0;
0x00023ae0 bal 0x3cd20 | sym_xfree ();
0x00023ae4 lw gp, 0x10(sp) | gp = *(var_10h);
0x00023ae8 lw t9, -0x7c04(gp) | t9 = sym.tty_enable_completion;
0x00023aec lw s7, -0x7fdc(gp) | s7 = *(gp);
0x00023af0 lw s6, -0x7fdc(gp) | s6 = *(gp);
0x00023af4 move a0, zero | a0 = 0;
0x00023af8 bal 0x6458 | sym_tty_enable_completion ();
0x00023afc lw gp, 0x10(sp) | gp = *(var_10h);
| /* str.Please_enter_name_of_data_file:_ */
0x00023b00 addiu a1, s7, 0x6e40 | a1 = s7 + 0x6e40;
| /* str.detached_signature.filename */
0x00023b04 addiu a0, s6, 0x6e64 | a0 = s6 + 0x6e64;
0x00023b08 lw t9, -0x7c00(gp) | t9 = sym.cpr_get;
| /* str.Please_enter_name_of_data_file:_ */
0x00023b0c addiu s7, s7, 0x6e40 | s7 += 0x6e40;
0x00023b10 bal 0x22690 | sym_cpr_get ();
0x00023b14 lw gp, 0x10(sp) | gp = *(var_10h);
0x00023b18 move s0, v0 | s0 = v0;
0x00023b1c lw t9, -0x7bf8(gp) | t9 = sym.tty_disable_completion;
| /* str.detached_signature.filename */
0x00023b20 addiu s6, s6, 0x6e64 | s6 += 0x6e64;
0x00023b24 bal 0x6460 | sym_tty_disable_completion ();
0x00023b28 lw gp, 0x10(sp) | gp = *(var_10h);
0x00023b2c lw t9, -0x7bfc(gp) | t9 = sym.cpr_kill_prompt;
0x00023b30 bal 0x227a0 | sym_cpr_kill_prompt ();
0x00023b34 nop |
0x00023b38 lw gp, 0x10(sp) | gp = *(var_10h);
0x00023b3c move a0, s0 | a0 = s0;
0x00023b40 lw t9, -0x7e0c(gp) | t9 = sym.make_filename;
0x00023b44 move a1, zero | a1 = 0;
0x00023b48 bal 0x38944 | sym_make_filename ();
0x00023b4c lw gp, 0x10(sp) | gp = *(var_10h);
0x00023b50 move a0, s0 | a0 = s0;
0x00023b54 lw t9, -0x7f24(gp) | t9 = sym.xfree;
0x00023b58 move s0, v0 | s0 = v0;
0x00023b5c bal 0x3cd20 | sym_xfree ();
0x00023b60 lw gp, 0x10(sp) | gp = *(var_10h);
0x00023b64 lw fp, -0x7fdc(gp) | fp = *(gp);
| /* str.No_such_file__try_again_or_hit_enter_to_quit._n */
0x00023b68 addiu fp, fp, 0x6e80 | fp += 0x6e80;
| label_3:
0x00023b6c lw t9, -0x7de4(gp) | t9 = sym.iobuf_open;
0x00023b70 move a0, s0 | a0 = s0;
0x00023b74 bal 0x3e974 | sym_iobuf_open ();
0x00023b78 move s2, v0 | s2 = v0;
0x00023b7c lw gp, 0x10(sp) | gp = *(var_10h);
| if (v0 == 0) {
0x00023b80 beqz v0, 0x23c04 | goto label_8;
| }
0x00023b84 lw t9, -0x7bf0(gp) | t9 = sym.iobuf_get_fd;
0x00023b88 move a0, v0 | a0 = v0;
0x00023b8c bal 0x40e84 | sym_iobuf_get_fd ();
0x00023b90 lw gp, 0x10(sp) | gp = *(var_10h);
0x00023b94 lw t9, -0x7bec(gp) | t9 = sym.is_secured_file;
0x00023b98 move a0, v0 | a0 = v0;
0x00023b9c bal 0x180c4 | sym_is_secured_file ();
0x00023ba0 lw gp, 0x10(sp) | gp = *(var_10h);
| if (v0 == 0) {
0x00023ba4 beqz v0, 0x239d4 | goto label_1;
| }
0x00023ba8 lw t9, -0x7f50(gp) | t9 = sym.iobuf_close;
0x00023bac move a0, s2 | a0 = s2;
0x00023bb0 bal 0x3f1c0 | sym_iobuf_close ();
0x00023bb4 lw gp, 0x10(sp) | gp = *(var_10h);
0x00023bb8 lw t9, -0x78c4(gp) | t9 = sym.imp.__errno_location;
0x00023bbc jalr t9 | t9 ();
0x00023bc0 nop |
0x00023bc4 addiu v1, zero, 1 | v1 = 1;
0x00023bc8 lw gp, 0x10(sp) | gp = *(var_10h);
0x00023bcc addiu a0, zero, 1 | a0 = 1;
0x00023bd0 sw v1, (v0) | *(v0) = v1;
| do {
0x00023bd4 lw t9, -0x787c(gp) | t9 = sym.imp.strerror;
0x00023bd8 addiu s2, zero, 0x15 | s2 = 0x15;
0x00023bdc jalr t9 | t9 ();
0x00023be0 lw gp, 0x10(sp) | gp = *(var_10h);
0x00023be4 move a2, v0 | a2 = v0;
0x00023be8 move a1, s0 | a1 = s0;
0x00023bec lw a0, -0x7fdc(gp) | a0 = *(gp);
0x00023bf0 lw t9, -0x7f84(gp) | t9 = sym.g10_log_error;
| /* str.cant_open___s:__s_n */
0x00023bf4 addiu a0, a0, 0x3364 | a0 += 0x3364;
0x00023bf8 bal 0x38550 | sym_g10_log_error ();
0x00023bfc lw gp, 0x10(sp) | gp = *(var_10h);
0x00023c00 b 0x23a08 | goto label_2;
| label_8:
0x00023c04 lw t9, -0x78c4(gp) | t9 = sym.imp.__errno_location;
0x00023c08 jalr t9 | t9 ();
0x00023c0c nop |
0x00023c10 lw a0, (v0) | a0 = *(v0);
0x00023c14 addiu v0, zero, 2 | v0 = 2;
0x00023c18 lw gp, 0x10(sp) | gp = *(var_10h);
0x00023c1c bne a0, v0, 0x23bd4 |
| } while (a0 != v0);
0x00023c20 lw t9, -0x7c14(gp) | t9 = sym.tty_printf
0x00023c24 move a0, fp | a0 = fp;
0x00023c28 bal 0x6438 | sym_tty_printf ()
0x00023c2c lw gp, 0x10(sp) | gp = *(var_10h);
0x00023c30 lw t9, -0x7f24(gp) | t9 = sym.xfree;
0x00023c34 move a0, s0 | a0 = s0;
0x00023c38 bal 0x3cd20 | sym_xfree ();
0x00023c3c lw gp, 0x10(sp) | gp = *(var_10h);
0x00023c40 lw t9, -0x7c04(gp) | t9 = sym.tty_enable_completion;
0x00023c44 move a0, zero | a0 = 0;
0x00023c48 bal 0x6458 | sym_tty_enable_completion ();
0x00023c4c lw gp, 0x10(sp) | gp = *(var_10h);
0x00023c50 move a1, s7 | a1 = s7;
0x00023c54 lw t9, -0x7c00(gp) | t9 = sym.cpr_get;
0x00023c58 move a0, s6 | a0 = s6;
0x00023c5c bal 0x22690 | sym_cpr_get ();
0x00023c60 lw gp, 0x10(sp) | gp = *(var_10h);
0x00023c64 lw t9, -0x7bf8(gp) | t9 = sym.tty_disable_completion;
0x00023c68 move s2, v0 | s2 = v0;
0x00023c6c bal 0x6460 | sym_tty_disable_completion ();
0x00023c70 lw gp, 0x10(sp) | gp = *(var_10h);
0x00023c74 lw t9, -0x7bfc(gp) | t9 = sym.cpr_kill_prompt;
0x00023c78 bal 0x227a0 | sym_cpr_kill_prompt ();
0x00023c7c nop |
0x00023c80 lw gp, 0x10(sp) | gp = *(var_10h);
0x00023c84 move a1, zero | a1 = 0;
0x00023c88 lw t9, -0x7e0c(gp) | t9 = sym.make_filename;
0x00023c8c move a0, s2 | a0 = s2;
0x00023c90 bal 0x38944 | sym_make_filename ();
0x00023c94 lw gp, 0x10(sp) | gp = *(var_10h);
0x00023c98 move s0, v0 | s0 = v0;
0x00023c9c lw t9, -0x7f24(gp) | t9 = sym.xfree;
0x00023ca0 move a0, s2 | a0 = s2;
0x00023ca4 bal 0x3cd20 | sym_xfree ();
0x00023ca8 lb v0, (s0) | v0 = *(s0);
0x00023cac lw gp, 0x10(sp) | gp = *(var_10h);
| if (v0 != 0) {
0x00023cb0 bnez v0, 0x23b6c | goto label_3;
| }
0x00023cb4 addiu s2, zero, 0x15 | s2 = 0x15;
0x00023cb8 b 0x23a08 | goto label_2;
| label_5:
0x00023cbc lw t9, -0x7834(gp) | t9 = sym.imp.__stack_chk_fail;
0x00023cc0 jalr t9 | t9 ();
0x00023cc4 nop |
| }
; assembly | /* r2dec pseudo code output */
| /* /logs/firmware/unblob_extracted/firmware_extract/4325012-58052244.squashfs_v4_le_extract/usr/bin/gpgv @ 0x18440 */
| #include <stdint.h>
|
; (fcn) sym.overwrite_filep () | void overwrite_filep () {
0x00018440 lui gp, 5 |
0x00018444 addiu gp, gp, -0x6310 |
0x00018448 addu gp, gp, t9 | gp += t9;
0x0001844c addiu sp, sp, -0x20 |
0x00018450 lw t9, -0x7c2c(gp) | t9 = sym.iobuf_is_pipe_filename;
0x00018454 sw gp, 0x10(sp) | *(var_10h) = gp;
0x00018458 sw s0, 0x18(sp) | *(var_18h) = s0;
0x0001845c sw ra, 0x1c(sp) | *(var_1ch) = ra;
0x00018460 move s0, a0 | s0 = a0;
0x00018464 jalr t9 | t9 ();
0x00018468 lw gp, 0x10(sp) | gp = *(var_10h);
0x0001846c beqz v0, 0x18484 |
| while (v0 != 0) {
| label_0:
0x00018470 addiu v0, zero, 1 | v0 = 1;
| label_1:
0x00018474 lw ra, 0x1c(sp) | ra = *(var_1ch);
| label_2:
0x00018478 lw s0, 0x18(sp) | s0 = *(var_18h);
0x0001847c addiu sp, sp, 0x20 |
0x00018480 jr ra | return v0;
0x00018484 lw t9, -0x78dc(gp) | t9 = sym.imp.access;
0x00018488 move a1, zero | a1 = 0;
0x0001848c move a0, s0 | a0 = s0;
0x00018490 jalr t9 | t9 ();
0x00018494 lw gp, 0x10(sp) | gp = *(var_10h);
0x00018498 bnez v0, 0x18470 |
| }
0x0001849c lw a1, -0x7fdc(gp) | a1 = *(gp);
0x000184a0 lw t9, -0x77e0(gp) | t9 = sym.imp.strcmp;
| /* str._dev_null */
0x000184a4 addiu a1, a1, 0x4f70 | a1 += 0x4f70;
0x000184a8 move a0, s0 | a0 = s0;
0x000184ac jalr t9 | t9 ();
0x000184b0 lw gp, 0x10(sp) | gp = *(var_10h);
| if (v0 == 0) {
0x000184b4 beqz v0, 0x18470 | goto label_0;
| }
0x000184b8 lw v1, -0x7fc8(gp) | v1 = *(gp);
0x000184bc lw v0, 0x44(v1) | v0 = *((v1 + 17));
0x000184c0 addiu v0, zero, 1 | v0 = 1;
| if (v0 == 0) {
0x000184c4 bnel v0, zero, 0x18474 | goto label_1;
| }
0x000184c8 lw a0, 0x48(v1) | a0 = *((v1 + 18));
0x000184cc lw v1, 0x40(v1) | v1 = *((v1 + 16));
0x000184d0 or v1, a0, v1 | v1 = a0 | v1;
0x000184d4 lw ra, 0x1c(sp) | ra = *(var_1ch);
| if (v1 != 0) {
0x000184d8 bnez v1, 0x18478 | goto label_2;
| }
0x000184dc lw a0, -0x7fdc(gp) | a0 = *(gp);
0x000184e0 lw t9, -0x7c14(gp) | t9 = sym.tty_printf
0x000184e4 move a1, s0 | a1 = s0;
| /* str.File___s_exists._ */
0x000184e8 addiu a0, a0, 0x4f7c | a0 += 0x4f7c;
0x000184ec bal 0x6438 | sym_tty_printf ()
0x000184f0 lw gp, 0x10(sp) | gp = *(var_10h);
0x000184f4 lw t9, -0x7c10(gp) | t9 = sym.cpr_enabled;
0x000184f8 bal 0x2265c | sym_cpr_enabled ();
0x000184fc nop |
0x00018500 lw gp, 0x10(sp) | gp = *(var_10h);
0x00018504 bnez v0, 0x18528 |
| while (1) {
0x00018508 lw a1, -0x7fdc(gp) | a1 = *(gp);
0x0001850c lw a0, -0x7fdc(gp) | a0 = *(gp);
0x00018510 lw t9, -0x7c0c(gp) | t9 = sym.cpr_get_answer_is_yes;
| /* str.Overwrite___y_N__ */
0x00018514 addiu a1, a1, 0x4f90 | a1 += 0x4f90;
| /* str.openfile.overwrite.okay */
0x00018518 addiu a0, a0, 0x4fa4 | a0 += 0x4fa4;
0x0001851c bal 0x227dc | sym_cpr_get_answer_is_yes ();
0x00018520 sltu v0, zero, v0 | v0 = (0 < v0) ? 1 : 0;
0x00018524 b 0x18474 | goto label_1;
0x00018528 lw a0, -0x7fdc(gp) | a0 = *(gp);
0x0001852c lw t9, -0x7c14(gp) | t9 = sym.tty_printf
0x00018530 addiu a0, a0, 0x5f60 | a0 += 0x5f60;
0x00018534 bal 0x6438 | sym_tty_printf ()
0x00018538 lw gp, 0x10(sp) | gp = *(var_10h);
0x0001853c b 0x18508 |
| }
| }
; assembly | /* r2dec pseudo code output */
| /* /logs/firmware/unblob_extracted/firmware_extract/4325012-58052244.squashfs_v4_le_extract/usr/bin/gpgv @ 0x26154 */
| #include <stdint.h>
|
; (fcn) sym.print_fingerprint () | void print_fingerprint () {
| label_7:
0x00026154 lui gp, 4 |
0x00026158 addiu gp, gp, -0x4024 |
0x0002615c addu gp, gp, t9 | gp += t9;
0x00026160 addiu sp, sp, -0x60 |
0x00026164 sw s3, 0x4c(sp) | *(var_4ch) = s3;
0x00026168 lw s3, -0x781c(gp) | s3 = *((gp - 7687));
0x0002616c sw gp, 0x18(sp) | *(var_18h) = gp;
0x00026170 sw s6, 0x58(sp) | *(var_58h) = s6;
0x00026174 lw v0, (s3) | v0 = *(s3);
0x00026178 sw s4, 0x50(sp) | *(var_50h) = s4;
0x0002617c sw ra, 0x5c(sp) | *(var_5ch) = ra;
0x00026180 sw s5, 0x54(sp) | *(var_54h) = s5;
0x00026184 sw s2, 0x48(sp) | *(var_48h) = s2;
0x00026188 sw s1, 0x44(sp) | *(var_44h) = s1;
0x0002618c sw s0, 0x40(sp) | *(var_40h) = s0;
0x00026190 move s4, a1 | s4 = a1;
0x00026194 move s6, a0 | s6 = a0;
0x00026198 sw v0, 0x3c(sp) | *(var_3ch) = v0;
| if (a1 == 0) {
0x0002619c beql a1, zero, 0x263cc | goto label_21;
| }
0x000261a0 lw v1, 0x3c(a0) | v1 = *((a0 + 15));
0x000261a4 lw v1, 0x20(a1) | v1 = *((a1 + 8));
0x000261a8 lw v0, 0x28(a1) | v0 = *((a1 + 10));
| if (v1 == v0) {
0x000261ac beql v1, v0, 0x26360 | goto label_22;
| }
0x000261b0 lw v1, 0x24(a1) | v1 = *((a1 + 9));
0x000261b4 andi v0, a2, 0x80 | v0 = a2 & 0x80;
| if (v0 != 0) {
| label_1:
0x000261b8 beql v0, zero, 0x261d8 |
0x000261bc addiu s0, zero, -0x81 | s0 = -0x81;
0x000261c0 lw a0, -0x7fdc(gp) | a0 = *(gp);
| label_6:
0x000261c4 lw t9, -0x7f84(gp) | t9 = sym.g10_log_error;
| /* str.primary_key_is_not_really_primary__n */
0x000261c8 addiu a0, a0, 0x7548 | a0 += 0x7548;
0x000261cc bal 0x38550 | sym_g10_log_error ();
0x000261d0 lw gp, 0x18(sp) | gp = *(var_18h);
0x000261d4 b 0x2632c | goto label_9;
| }
0x000261d8 and s0, a2, s0 | s0 = a2 & s0;
0x000261dc addiu v0, s0, -1 | v0 = s0 + -1;
0x000261e0 sltiu v0, v0, 2 | v0 = (v0 < 2) ? 1 : 0;
0x000261e4 lw t9, -0x7f2c(gp) | t9 = sym.xmalloc_clear;
| if (v0 != 0) {
0x000261e8 bnez v0, 0x26530 | goto label_23;
| }
0x000261ec addiu v0, zero, 3 | v0 = 3;
| label_2:
0x000261f0 lw v0, -0x78e0(gp) | v0 = *((gp - 7736));
| if (s0 == v0) {
0x000261f4 beq s0, v0, 0x265dc | goto label_24;
| }
0x000261f8 lw s5, -0x7fdc(gp) | s5 = *(gp);
0x000261fc lw s2, (v0) | s2 = *(v0);
| /* str.______Key_fingerprint_ */
0x00026200 addiu s5, s5, 0x7514 | s5 += 0x7514;
| label_17:
0x00026204 lw t9, -0x7dc0(gp) | t9 = sym.fingerprint_from_pk;
| if (s4 == 0) {
0x00026208 beqz s4, 0x2639c | goto label_25;
| }
| label_3:
0x0002620c lw t9, -0x7dbc(gp) | t9 = sym.fingerprint_from_sk;
0x00026210 addiu s1, sp, 0x28 | s1 = sp + 0x28;
0x00026214 addiu a2, sp, 0x24 | a2 = sp + 0x24;
0x00026218 move a1, s1 | a1 = s1;
0x0002621c move a0, s4 | a0 = s4;
0x00026220 bal 0x1a648 | sym_fingerprint_from_sk ();
0x00026224 lw gp, 0x18(sp) | gp = *(var_18h);
| label_4:
0x00026228 lw v0, -0x7fc8(gp) | v0 = *(gp);
0x0002622c lw v0, 0x50(v0) | v0 = *((v0 + 20));
| if (v0 != 0) {
0x00026230 beqz v0, 0x26240 |
0x00026234 nop |
| if (s0 == 0) {
0x00026238 beql s0, zero, 0x265ec | goto label_26;
| }
0x0002623c lw a0, -0x7fdc(gp) | a0 = *(gp);
| }
0x00026240 lw t9, -0x793c(gp) | t9 = sym.imp.fputs;
| if (s2 == 0) {
0x00026244 beqz s2, 0x26514 | goto label_27;
| }
0x00026248 move a1, s2 | a1 = s2;
0x0002624c move a0, s5 | a0 = s5;
0x00026250 jalr t9 | t9 ();
0x00026254 lw gp, 0x18(sp) | gp = *(var_18h);
| label_14:
0x00026258 lw v0, 0x24(sp) | v0 = *(var_24h);
0x0002625c addiu v1, zero, 0x14 | v1 = 0x14;
| if (v0 == v1) {
0x00026260 beql v0, v1, 0x2647c | goto label_28;
| }
0x00026264 lw s4, -0x7fdc(gp) | s4 = *(gp);
| if (v0 == 0) {
0x00026268 beqz v0, 0x26310 | goto label_10;
| }
0x0002626c nop |
0x00026270 lw s4, -0x7fdc(gp) | s4 = *(gp);
0x00026274 lw s5, -0x7fdc(gp) | s5 = *(gp);
0x00026278 move s0, zero | s0 = 0;
| /* str.__02X */
0x0002627c addiu s4, s4, 0x59c4 | s4 += 0x59c4;
0x00026280 addiu s5, s5, 0x49fc | s5 += 0x49fc;
0x00026284 b 0x262cc |
| while (s2 != 0) {
0x00026288 lw t9, -0x7920(gp) | t9 = sym.imp.__fprintf_chk
| if (s0 != 0) {
0x0002628c beqz s0, 0x262a0 |
0x00026290 andi v0, s0, 7 | v0 = s0 & 7;
0x00026294 lw t9, -0x7840(gp) | t9 = sym.imp._IO_putc;
| if (v0 == 0) {
0x00026298 beqz v0, 0x263b8 | goto label_29;
| }
| label_5:
0x0002629c lw t9, -0x7920(gp) | t9 = sym.imp.__fprintf_chk
| }
0x000262a0 lbu a3, (s1) | a3 = *(s1);
0x000262a4 move a2, s4 | a2 = s4;
0x000262a8 addiu a1, zero, 1 | a1 = 1;
0x000262ac move a0, s2 | a0 = s2;
0x000262b0 jalr t9 | t9 ();
0x000262b4 lw v0, 0x24(sp) | v0 = *(var_24h);
0x000262b8 addiu s0, s0, 1 | s0++;
0x000262bc sltu v0, s0, v0 | v0 = (s0 < v0) ? 1 : 0;
0x000262c0 lw gp, 0x18(sp) | gp = *(var_18h);
0x000262c4 addiu s1, s1, 1 | s1++;
| if (v0 == 0) {
0x000262c8 beqz v0, 0x26310 | goto label_10;
| }
| label_0:
0x000262cc bnez s2, 0x26288 |
| }
0x000262d0 nop |
0x000262d4 lw t9, -0x7c14(gp) | t9 = sym.tty_printf
| if (s0 != 0) {
0x000262d8 beqz s0, 0x262ec |
0x000262dc andi v0, s0, 7 | v0 = s0 & 7;
| if (v0 == 0) {
0x000262e0 beqz v0, 0x265cc | goto label_30;
| }
0x000262e4 nop |
| label_18:
0x000262e8 lw t9, -0x7c14(gp) | t9 = sym.tty_printf
| }
0x000262ec lbu a1, (s1) | a1 = *(s1);
0x000262f0 move a0, s4 | a0 = s4;
0x000262f4 bal 0x6438 | sym_tty_printf ()
0x000262f8 lw v0, 0x24(sp) | v0 = *(var_24h);
0x000262fc addiu s0, s0, 1 | s0++;
0x00026300 sltu v0, s0, v0 | v0 = (s0 < v0) ? 1 : 0;
0x00026304 lw gp, 0x18(sp) | gp = *(var_18h);
0x00026308 addiu s1, s1, 1 | s1++;
| if (v0 != 0) {
0x0002630c bnez v0, 0x262cc | goto label_0;
| }
| label_10:
0x00026310 lw a0, -0x7fdc(gp) | a0 = *(gp);
| if (s2 == 0) {
0x00026314 beqz s2, 0x26468 | goto label_31;
| }
| label_19:
0x00026318 lw t9, -0x7840(gp) | t9 = sym.imp._IO_putc;
0x0002631c move a1, s2 | a1 = s2;
0x00026320 addiu a0, zero, 0xa | a0 = 0xa;
0x00026324 jalr t9 | t9 ();
0x00026328 lw gp, 0x18(sp) | gp = *(var_18h);
| label_9:
0x0002632c lw v1, 0x3c(sp) | v1 = *(var_3ch);
0x00026330 lw v0, (s3) | v0 = *(s3);
0x00026334 lw ra, 0x5c(sp) | ra = *(var_5ch);
| if (v1 != v0) {
0x00026338 bne v1, v0, 0x26690 | goto label_32;
| }
0x0002633c lw s6, 0x58(sp) | s6 = *(var_58h);
0x00026340 lw s5, 0x54(sp) | s5 = *(var_54h);
0x00026344 lw s4, 0x50(sp) | s4 = *(var_50h);
0x00026348 lw s3, 0x4c(sp) | s3 = *(var_4ch);
0x0002634c lw s2, 0x48(sp) | s2 = *(var_48h);
0x00026350 lw s1, 0x44(sp) | s1 = *(var_44h);
0x00026354 lw s0, 0x40(sp) | s0 = *(var_40h);
0x00026358 addiu sp, sp, 0x60 |
0x0002635c jr ra | return v1;
| label_22:
0x00026360 lw v0, 0x2c(a1) | v0 = *((a1 + 11));
0x00026364 andi v0, a2, 0x80 | v0 = a2 & 0x80;
| if (v1 != v0) {
0x00026368 bne v1, v0, 0x261b8 | goto label_1;
| }
0x0002636c addiu s0, zero, -0x81 | s0 = -0x81;
| label_16:
0x00026370 and s0, a2, s0 | s0 = a2 & s0;
0x00026374 addiu v0, zero, 1 | v0 = 1;
0x00026378 addiu v0, zero, 2 | v0 = 2;
| if (s0 == v0) {
0x0002637c beq s0, v0, 0x26670 | goto label_33;
| }
0x00026380 addiu v0, zero, 3 | v0 = 3;
| if (s0 != v0) {
0x00026384 bne s0, v0, 0x261f0 | goto label_2;
| }
0x00026388 lw s5, -0x7fdc(gp) | s5 = *(gp);
0x0002638c move s2, zero | s2 = 0;
| /* str._Primary_key_fingerprint: */
0x00026390 addiu s5, s5, 0x74f8 | s5 += 0x74f8;
| if (s4 != 0) {
0x00026394 bnez s4, 0x2620c | goto label_3;
| }
| label_8:
0x00026398 lw t9, -0x7dc0(gp) | t9 = sym.fingerprint_from_pk;
| label_25:
0x0002639c addiu s1, sp, 0x28 | s1 = sp + 0x28;
0x000263a0 addiu a2, sp, 0x24 | a2 = sp + 0x24;
0x000263a4 move a1, s1 | a1 = s1;
0x000263a8 move a0, s6 | a0 = s6;
0x000263ac bal 0x1a318 | sym_fingerprint_from_pk ();
0x000263b0 lw gp, 0x18(sp) | gp = *(var_18h);
0x000263b4 b 0x26228 | goto label_4;
| label_29:
0x000263b8 move a1, s2 | a1 = s2;
0x000263bc addiu a0, zero, 0x20 | a0 = 0x20;
0x000263c0 jalr t9 | t9 ();
0x000263c4 lw gp, 0x18(sp) | gp = *(var_18h);
0x000263c8 b 0x2629c | goto label_5;
| label_21:
0x000263cc lw v0, 0x44(a0) | v0 = *((a0 + 17));
| if (v1 == v0) {
0x000263d0 beql v1, v0, 0x26598 | goto label_34;
| }
0x000263d4 lw v1, 0x40(a0) | v1 = *((a0 + 16));
0x000263d8 andi v0, a2, 0x80 | v0 = a2 & 0x80;
| label_15:
0x000263dc lw a0, -0x7fdc(gp) | a0 = *(gp);
| if (v0 == 0) {
0x000263e0 bnel v0, zero, 0x261c4 | goto label_6;
| }
0x000263e4 addiu s0, zero, -0x81 | s0 = -0x81;
0x000263e8 and s0, a2, s0 | s0 = a2 & s0;
0x000263ec addiu v0, s0, -1 | v0 = s0 + -1;
0x000263f0 sltiu v0, v0, 2 | v0 = (v0 < 2) ? 1 : 0;
0x000263f4 addiu v0, zero, 3 | v0 = 3;
| if (v0 == 0) {
0x000263f8 beqz v0, 0x261f0 | goto label_2;
| }
0x000263fc lw t9, -0x7f2c(gp) | t9 = sym.xmalloc_clear;
0x00026400 addiu a0, zero, 0x80 | a0 = 0x80;
0x00026404 bal 0x3cbdc | sym_xmalloc_clear ();
0x00026408 lw gp, 0x18(sp) | gp = *(var_18h);
0x0002640c addiu a1, s6, 0x3c | a1 = s6 + 0x3c;
0x00026410 move a0, v0 | a0 = v0;
0x00026414 lw t9, -0x7e34(gp) | t9 = sym.get_pubkey;
0x00026418 move s1, v0 | s1 = v0;
0x0002641c bal 0xc768 | sym_get_pubkey ();
0x00026420 lw gp, 0x18(sp) | gp = *(var_18h);
0x00026424 ori a2, s0, 0x80 | a2 = s0 | 0x80;
0x00026428 move a1, zero | a1 = 0;
0x0002642c lw t9, -0x7ce4(gp) | t9 = sym.print_fingerprint;
0x00026430 move a0, s1 | a0 = s1;
0x00026434 bal 0x26154 | sym_print_fingerprint ();
| goto label_7;
0x00026438 lw gp, 0x18(sp) | gp = *(var_18h);
0x0002643c lw t9, -0x7e74(gp) | t9 = sym.free_public_key;
0x00026440 move a0, s1 | a0 = s1;
0x00026444 bal 0x91c0 | sym_free_public_key ();
0x00026448 addiu v0, zero, 1 | v0 = 1;
0x0002644c lw gp, 0x18(sp) | gp = *(var_18h);
| if (s0 == v0) {
0x00026450 beq s0, v0, 0x265ac | goto label_35;
| }
0x00026454 lw s5, -0x7fdc(gp) | s5 = *(gp);
0x00026458 addiu s0, zero, 2 | s0 = 2;
| /* str.______Subkey_fingerprint: */
0x0002645c addiu s5, s5, 0x752c | s5 += 0x752c;
0x00026460 move s2, zero | s2 = 0;
0x00026464 b 0x26398 | goto label_8;
| label_31:
0x00026468 lw t9, -0x7c14(gp) | t9 = sym.tty_printf
0x0002646c addiu a0, a0, 0x5f60 | a0 += 0x5f60;
0x00026470 jalr t9 | t9 ();
0x00026474 lw gp, 0x18(sp) | gp = *(var_18h);
0x00026478 b 0x2632c | goto label_9;
| label_28:
0x0002647c lw s6, -0x7fdc(gp) | s6 = *(gp);
0x00026480 move s0, zero | s0 = 0;
0x00026484 addiu s5, zero, 0xa | s5 = 0xa;
| /* str.__02X_02X */
0x00026488 addiu s4, s4, 0x757c | s4 += 0x757c;
0x0002648c addiu s6, s6, 0x49fc | s6 += 0x49fc;
0x00026490 b 0x264d4 | goto label_36;
| label_11:
0x00026494 lw t9, -0x7840(gp) | t9 = sym.imp._IO_putc;
| if (s0 == s5) {
0x00026498 beq s0, s5, 0x26500 | goto label_37;
| }
| label_13:
0x0002649c lbu v0, 1(s1) | v0 = *((s1 + 1));
0x000264a0 lw t9, -0x7920(gp) | t9 = sym.imp.__fprintf_chk
0x000264a4 lbu a3, (s1) | a3 = *(s1);
0x000264a8 move a2, s4 | a2 = s4;
0x000264ac sw v0, 0x10(sp) | *(var_10h) = v0;
0x000264b0 addiu a1, zero, 1 | a1 = 1;
0x000264b4 move a0, s2 | a0 = s2;
0x000264b8 jalr t9 | t9 ();
0x000264bc lw gp, 0x18(sp) | gp = *(var_18h);
| label_12:
0x000264c0 lw v0, 0x24(sp) | v0 = *(var_24h);
0x000264c4 addiu s0, s0, 2 | s0 += 2;
0x000264c8 sltu v0, s0, v0 | v0 = (s0 < v0) ? 1 : 0;
0x000264cc addiu s1, s1, 2 | s1 += 2;
| if (v0 == 0) {
0x000264d0 beqz v0, 0x26310 | goto label_10;
| }
| if (s2 != 0) {
| label_36:
0x000264d4 bnez s2, 0x26494 | goto label_11;
| }
0x000264d8 nop |
0x000264dc lw t9, -0x7c14(gp) | t9 = sym.tty_printf
| if (s0 == s5) {
0x000264e0 beq s0, s5, 0x26660 | goto label_38;
| }
| label_20:
0x000264e4 lw t9, -0x7c14(gp) | t9 = sym.tty_printf
0x000264e8 lbu a2, 1(s1) | a2 = *((s1 + 1));
0x000264ec lbu a1, (s1) | a1 = *(s1);
0x000264f0 move a0, s4 | a0 = s4;
0x000264f4 jalr t9 | t9 ();
0x000264f8 lw gp, 0x18(sp) | gp = *(var_18h);
0x000264fc b 0x264c0 | goto label_12;
| label_37:
0x00026500 move a1, s2 | a1 = s2;
0x00026504 addiu a0, zero, 0x20 | a0 = 0x20;
0x00026508 jalr t9 | t9 ();
0x0002650c lw gp, 0x18(sp) | gp = *(var_18h);
0x00026510 b 0x2649c | goto label_13;
| label_27:
0x00026514 lw a0, -0x7fdc(gp) | a0 = *(gp);
0x00026518 lw t9, -0x7c14(gp) | t9 = sym.tty_printf
0x0002651c move a1, s5 | a1 = s5;
| /* esilref: '&s' */
0x00026520 addiu a0, a0, 0x586c | a0 += aav.0x0000586c;
0x00026524 jalr t9 | t9 ();
0x00026528 lw gp, 0x18(sp) | gp = *(var_18h);
0x0002652c b 0x26258 | goto label_14;
| label_23:
0x00026530 addiu a0, zero, 0x7c | a0 = 0x7c;
0x00026534 bal 0x3cbdc | sym_xmalloc_clear ();
0x00026538 lw gp, 0x18(sp) | gp = *(var_18h);
0x0002653c addiu a1, s4, 0x20 | a1 = s4 + 0x20;
0x00026540 move a0, v0 | a0 = v0;
0x00026544 lw t9, -0x7b34(gp) | t9 = sym.get_seckey;
0x00026548 move s1, v0 | s1 = v0;
0x0002654c bal 0xc980 | sym_get_seckey ();
0x00026550 lw gp, 0x18(sp) | gp = *(var_18h);
0x00026554 ori a2, s0, 0x80 | a2 = s0 | 0x80;
0x00026558 move a1, s1 | a1 = s1;
0x0002655c lw t9, -0x7ce4(gp) | t9 = sym.print_fingerprint;
0x00026560 move a0, zero | a0 = 0;
0x00026564 bal 0x26154 | sym_print_fingerprint ();
| goto label_7;
0x00026568 lw gp, 0x18(sp) | gp = *(var_18h);
0x0002656c lw t9, -0x7b30(gp) | t9 = sym.free_secret_key;
0x00026570 move a0, s1 | a0 = s1;
0x00026574 bal 0x8e08 | sym_free_secret_key ();
0x00026578 addiu v0, zero, 1 | v0 = 1;
0x0002657c lw gp, 0x18(sp) | gp = *(var_18h);
| if (s0 == v0) {
0x00026580 beq s0, v0, 0x265ac | goto label_35;
| }
0x00026584 lw s5, -0x7fdc(gp) | s5 = *(gp);
0x00026588 addiu s0, zero, 2 | s0 = 2;
| /* str.______Subkey_fingerprint: */
0x0002658c addiu s5, s5, 0x752c | s5 += 0x752c;
0x00026590 move s2, zero | s2 = 0;
0x00026594 b 0x2620c | goto label_3;
| label_34:
0x00026598 lw v0, 0x48(a0) | v0 = *((a0 + 18));
0x0002659c andi v0, a2, 0x80 | v0 = a2 & 0x80;
| if (v1 != v0) {
0x000265a0 bne v1, v0, 0x263dc | goto label_15;
| }
0x000265a4 addiu s0, zero, -0x81 | s0 = -0x81;
0x000265a8 b 0x26370 | goto label_16;
| label_35:
0x000265ac lw t9, -0x7d40(gp) | t9 = sym.log_stream;
0x000265b0 addiu s0, zero, 1 | s0 = 1;
0x000265b4 bal 0x382e4 | sym_log_stream ();
0x000265b8 lw gp, 0x18(sp) | gp = *(var_18h);
0x000265bc move s2, v0 | s2 = v0;
0x000265c0 lw s5, -0x7fdc(gp) | s5 = *(gp);
| /* str._____Subkey_fingerprint: */
0x000265c4 addiu s5, s5, 0x74dc | s5 += 0x74dc;
0x000265c8 b 0x26204 | goto label_17;
| label_30:
0x000265cc move a0, s5 | a0 = s5;
0x000265d0 jalr t9 | t9 ();
0x000265d4 lw gp, 0x18(sp) | gp = *(var_18h);
0x000265d8 b 0x262e8 | goto label_18;
| label_24:
0x000265dc lw s5, -0x7fdc(gp) | s5 = *(gp);
0x000265e0 move s2, zero | s2 = 0;
| /* str.______Key_fingerprint_ */
0x000265e4 addiu s5, s5, 0x7514 | s5 += 0x7514;
0x000265e8 b 0x26204 | goto label_17;
| label_26:
0x000265ec lw t9, -0x7848(gp) | t9 = sym.imp.fwrite;
0x000265f0 move a3, s2 | a3 = s2;
0x000265f4 addiu a2, zero, 0xc | a2 = 0xc;
0x000265f8 addiu a1, zero, 1 | a1 = 1;
| /* str.fpr::::::::: */
0x000265fc addiu a0, a0, 0x756c | a0 += aav.0x0000756c;
0x00026600 jalr t9 | t9 ();
0x00026604 lw v0, 0x24(sp) | v0 = *(var_24h);
0x00026608 lw gp, 0x18(sp) | gp = *(var_18h);
| if (v0 == 0) {
0x0002660c beqz v0, 0x26648 | goto label_39;
| }
0x00026610 lw s4, -0x7fdc(gp) | s4 = *(gp);
| /* str._02X */
0x00026614 addiu s4, s4, 0x3d40 | s4 += 0x3d40;
| do {
0x00026618 lw t9, -0x7920(gp) | t9 = sym.imp.__fprintf_chk
0x0002661c lbu a3, (s1) | a3 = *(s1);
0x00026620 move a2, s4 | a2 = s4;
0x00026624 addiu a1, zero, 1 | a1 = 1;
0x00026628 move a0, s2 | a0 = s2;
0x0002662c jalr t9 | t9 ();
0x00026630 lw v0, 0x24(sp) | v0 = *(var_24h);
0x00026634 addiu s0, s0, 1 | s0++;
0x00026638 sltu v0, s0, v0 | v0 = (s0 < v0) ? 1 : 0;
0x0002663c lw gp, 0x18(sp) | gp = *(var_18h);
0x00026640 addiu s1, s1, 1 | s1++;
0x00026644 bnez v0, 0x26618 |
| } while (v0 != 0);
| label_39:
0x00026648 lw t9, -0x7840(gp) | t9 = sym.imp._IO_putc;
0x0002664c move a1, s2 | a1 = s2;
0x00026650 addiu a0, zero, 0x3a | a0 = 0x3a;
0x00026654 jalr t9 | t9 ();
0x00026658 lw gp, 0x18(sp) | gp = *(var_18h);
0x0002665c b 0x26318 | goto label_19;
| label_38:
0x00026660 move a0, s6 | a0 = s6;
0x00026664 jalr t9 | t9 ();
0x00026668 lw gp, 0x18(sp) | gp = *(var_18h);
0x0002666c b 0x264e4 | goto label_20;
| label_33:
0x00026670 lw t9, -0x7d40(gp) | t9 = sym.log_stream;
0x00026674 bal 0x382e4 | sym_log_stream ();
0x00026678 nop |
0x0002667c lw gp, 0x18(sp) | gp = *(var_18h);
0x00026680 move s2, v0 | s2 = v0;
0x00026684 lw s5, -0x7fdc(gp) | s5 = *(gp);
| /* str.Primary_key_fingerprint: */
0x00026688 addiu s5, s5, 0x74c0 | s5 += 0x74c0;
0x0002668c b 0x26204 | goto label_17;
| label_32:
0x00026690 lw t9, -0x7834(gp) | t9 = sym.imp.__stack_chk_fail;
0x00026694 jalr t9 | t9 ();
0x00026698 nop |
0x0002669c lui gp, 4 |
0x000266a0 addiu gp, gp, -0x456c |
0x000266a4 addu gp, gp, t9 | gp += t9;
0x000266a8 lw v0, -0x7fb4(gp) | v0 = *((gp - 8173));
0x000266ac addiu v1, zero, 1 | v1 = 1;
0x000266b0 sw v1, -0x4c88(v0) | *((v0 - 4898)) = v1;
0x000266b4 jr ra | return v1;
0x000266b8 nop |
| }
[*] Function printf used 20 times gpgv