[*] Binary protection state of gpgv
Full RELRO Canary found NX disabled PIE enabled No RPATH No RUNPATH No Symbols
[*] Function sprintf tear down of gpgv
; assembly | /* r2dec pseudo code output */
| /* /logs/firmware/unblob_extracted/firmware_extract/4325012-58052244.squashfs_v4_le_extract/usr/bin/gpgv @ 0x10288 */
| #include <stdint.h>
|
; (fcn) fcn.00010288 () | void fcn_00010288 () {
0x00010288 lui gp, 5 |
0x0001028c addiu gp, gp, 0x1ea8 |
0x00010290 addu gp, gp, t9 | gp += t9;
0x00010294 addiu sp, sp, -0x80 |
0x00010298 sw s4, 0x74(sp) | *(var_74h) = s4;
0x0001029c lw s4, -0x781c(gp) | s4 = *((gp - 7687));
0x000102a0 sw s2, 0x6c(sp) | *(var_6ch) = s2;
0x000102a4 lw s2, -0x7fc8(gp) | s2 = *(gp);
0x000102a8 lw v1, (s4) | v1 = *(s4);
0x000102ac sw gp, 0x20(sp) | *(var_20h) = gp;
0x000102b0 lw v0, (s2) | v0 = *(s2);
0x000102b4 sw v1, 0x5c(sp) | *(var_5ch) = v1;
0x000102b8 addiu v1, zero, 1 | v1 = 1;
0x000102bc sw s3, 0x70(sp) | *(var_70h) = s3;
0x000102c0 sw s1, 0x68(sp) | *(var_68h) = s1;
0x000102c4 sw s0, 0x64(sp) | *(var_64h) = s0;
0x000102c8 sw ra, 0x7c(sp) | *(var_7ch) = ra;
0x000102cc sw s5, 0x78(sp) | *(var_78h) = s5;
0x000102d0 move s1, a0 | s1 = a0;
0x000102d4 move s3, a1 | s3 = a1;
0x000102d8 sw v1, 0x30(a0) | *((a0 + 12)) = v1;
0x000102dc lw s0, 4(a1) | s0 = *((a1 + 1));
| if (v0 != 0) {
0x000102e0 bnez v0, 0x1049c | goto label_7;
| }
| label_1:
0x000102e4 lw t9, -0x7d88(gp) | t9 = sym.is_status_enabled;
0x000102e8 bal 0x21b70 | sym_is_status_enabled ();
0x000102ec nop |
0x000102f0 lw gp, 0x20(sp) | gp = *(var_20h);
| if (v0 != 0) {
0x000102f4 bnez v0, 0x10448 | goto label_8;
| }
| label_0:
0x000102f8 lw a0, 0x24(s2) | a0 = *((s2 + 9));
0x000102fc lbu v0, 9(s0) | v0 = *((s0 + 9));
| if (a0 != 0) {
0x00010300 bnel a0, zero, 0x1039c |
0x00010304 lw v0, 0x1c8(s2) | v0 = *(s2);
0x00010308 lw t9, -0x7f2c(gp) | t9 = sym.xmalloc_clear;
| if (v0 != 0) {
0x0001030c beqz v0, 0x10398 |
0x00010310 addiu a0, zero, 0x34 | a0 = 0x34;
0x00010314 jalr t9 | t9 ();
0x00010318 lw gp, 0x20(sp) | gp = *(var_20h);
0x0001031c lw a1, 0x1c8(s2) | a1 = *(s2);
0x00010320 move a0, v0 | a0 = v0;
0x00010324 lw t9, -0x7d84(gp) | t9 = sym.get_override_session_key;
0x00010328 sw v0, 0x2c(s1) | *((s1 + 11)) = v0;
0x0001032c bal 0x635c | sym_get_override_session_key ();
0x00010330 move s5, v0 | s5 = v0;
0x00010334 lw gp, 0x20(sp) | gp = *(var_20h);
| if (v0 != 0) {
0x00010338 bnez v0, 0x1052c | goto label_9;
| }
| label_3:
0x0001033c lw t9, -0x7f28(gp) | t9 = sym.xmalloc;
0x00010340 addiu a0, zero, 0x14 | a0 = 0x14;
0x00010344 jalr t9 | t9 ();
0x00010348 lw a0, (s0) | a0 = *(s0);
0x0001034c lw v1, 4(s0) | v1 = *((s0 + 1));
0x00010350 lw gp, 0x20(sp) | gp = *(var_20h);
0x00010354 sw a0, 4(v0) | *((v0 + 1)) = a0;
0x00010358 sw v1, 8(v0) | *((v0 + 2)) = v1;
0x0001035c lw v1, (s2) | v1 = *(s2);
0x00010360 lbu a1, 9(s0) | a1 = *((s0 + 9));
0x00010364 lw a0, 0x48(s1) | a0 = *((s1 + 18));
0x00010368 slti v1, v1, 2 | v1 = (v1 < 2) ? 1 : 0;
0x0001036c sw a1, 0xc(v0) | *((v0 + 3)) = a1;
0x00010370 sw zero, 0x10(v0) | *((v0 + 4)) = 0;
0x00010374 sw a0, (v0) | *(v0) = a0;
0x00010378 sw v0, 0x48(s1) | *((s1 + 18)) = v0;
| if (v1 != 0) {
0x0001037c bnez v1, 0x103f4 | goto label_4;
| }
0x00010380 lw a0, -0x7fdc(gp) | a0 = *(gp);
0x00010384 lw t9, -0x7f30(gp) | t9 = sym.g10_log_info;
| /* str.public_key_encrypted_data:_good_DEK_n */
0x00010388 addiu a0, a0, 0x3a98 | a0 += 0x3a98;
0x0001038c jalr t9 | t9 ();
0x00010390 lw gp, 0x20(sp) | gp = *(var_20h);
0x00010394 b 0x103f4 | goto label_4;
| }
0x00010398 lbu v0, 9(s0) | v0 = *((s0 + 9));
| }
0x0001039c addiu v1, v0, -0x10 | v1 = v0 + -0x10;
0x000103a0 sltiu v1, v1, 2 | v1 = (v1 < 2) ? 1 : 0;
0x000103a4 addiu v0, v0, -1 | v0 += -1;
| if (v1 != 0) {
0x000103a8 bnez v1, 0x10434 | goto label_10;
| }
0x000103ac sltiu v0, v0, 3 | v0 = (v0 < 3) ? 1 : 0;
0x000103b0 lw v0, 0x2c(s1) | v0 = *((s1 + 11));
| if (v0 == 0) {
0x000103b4 bnel v0, zero, 0x10438 | goto label_11;
| }
0x000103b8 addiu s2, zero, 4 | s2 = 4;
| do {
0x000103bc lw t9, -0x7f28(gp) | t9 = sym.xmalloc;
0x000103c0 addiu a0, zero, 0x14 | a0 = 0x14;
0x000103c4 jalr t9 | t9 ();
0x000103c8 lw a0, (s0) | a0 = *(s0);
0x000103cc lw v1, 4(s0) | v1 = *((s0 + 1));
0x000103d0 lw gp, 0x20(sp) | gp = *(var_20h);
0x000103d4 sw v1, 8(v0) | *((v0 + 2)) = v1;
0x000103d8 sw a0, 4(v0) | *((v0 + 1)) = a0;
0x000103dc lbu a0, 9(s0) | a0 = *((s0 + 9));
0x000103e0 lw v1, 0x48(s1) | v1 = *((s1 + 18));
0x000103e4 sw a0, 0xc(v0) | *((v0 + 3)) = a0;
0x000103e8 sw s2, 0x10(v0) | *((v0 + 4)) = s2;
0x000103ec sw v1, (v0) | *(v0) = v1;
0x000103f0 sw v0, 0x48(s1) | *((s1 + 18)) = v0;
| label_4:
0x000103f4 lw t9, -0x7dd0(gp) | t9 = sym.free_packet;
| label_2:
0x000103f8 move a0, s3 | a0 = s3;
0x000103fc bal 0x9414 | sym_free_packet ();
0x00010400 lw v1, 0x5c(sp) | v1 = *(var_5ch);
0x00010404 lw v0, (s4) | v0 = *(s4);
0x00010408 lw gp, 0x20(sp) | gp = *(var_20h);
| if (v1 != v0) {
0x0001040c bne v1, v0, 0x105a8 | goto label_12;
| }
0x00010410 lw ra, 0x7c(sp) | ra = *(var_7ch);
0x00010414 lw s5, 0x78(sp) | s5 = *(var_78h);
0x00010418 lw s4, 0x74(sp) | s4 = *(var_74h);
0x0001041c lw s3, 0x70(sp) | s3 = *(var_70h);
0x00010420 lw s2, 0x6c(sp) | s2 = *(var_6ch);
0x00010424 lw s1, 0x68(sp) | s1 = *(var_68h);
0x00010428 lw s0, 0x64(sp) | s0 = *(var_64h);
0x0001042c addiu sp, sp, 0x80 |
0x00010430 jr ra | return v0;
| label_10:
0x00010434 lw v0, 0x2c(s1) | v0 = *((s1 + 11));
| if (v0 == 0) {
| label_11:
0x00010438 beql v0, zero, 0x104c8 | goto label_13;
| }
0x0001043c lw v0, (s0) | v0 = *(s0);
| label_6:
0x00010440 addiu s2, zero, 0x11 | s2 = 0x11;
0x00010444 b 0x103bc |
| } while (1);
| label_8:
0x00010448 lbu v0, 9(s0) | v0 = *((s0 + 9));
0x0001044c lw a3, -0x7fdc(gp) | a3 = *(gp);
0x00010450 sw v0, 0x18(sp) | *(var_18h) = v0;
0x00010454 lw v0, 4(s0) | v0 = *((s0 + 1));
0x00010458 lw t9, -0x794c(gp) | t9 = sym.imp.__sprintf_chk
0x0001045c sw v0, 0x14(sp) | *(var_14h) = v0;
0x00010460 lw v0, (s0) | v0 = *(s0);
0x00010464 addiu s5, sp, 0x28 | s5 = sp + 0x28;
| /* str._08lX_08lX__d_0 */
0x00010468 addiu a3, a3, 0x3a88 | a3 += 0x3a88;
0x0001046c addiu a2, zero, 0x32 | a2 = 0x32;
0x00010470 addiu a1, zero, 1 | a1 = 1;
0x00010474 move a0, s5 | a0 = s5;
0x00010478 sw v0, 0x10(sp) | *(var_10h) = v0;
0x0001047c jalr t9 | t9 ();
0x00010480 lw gp, 0x20(sp) | gp = *(var_20h);
0x00010484 move a1, s5 | a1 = s5;
0x00010488 lw t9, -0x7d80(gp) | t9 = sym.write_status_text;
0x0001048c addiu a0, zero, 0x17 | a0 = 0x17;
0x00010490 bal 0x21b8c | sym_write_status_text ();
0x00010494 lw gp, 0x20(sp) | gp = *(var_20h);
0x00010498 b 0x102f8 | goto label_0;
| label_7:
0x0001049c lw t9, -0x7e48(gp) | t9 = sym.keystr;
0x000104a0 move a0, s0 | a0 = s0;
0x000104a4 bal 0x19920 | sym_keystr ();
0x000104a8 lw gp, 0x20(sp) | gp = *(var_20h);
0x000104ac move a1, v0 | a1 = v0;
0x000104b0 lw a0, -0x7fdc(gp) | a0 = *(gp);
0x000104b4 lw t9, -0x7f30(gp) | t9 = sym.g10_log_info;
| /* str.public_key_is__s_n */
0x000104b8 addiu a0, a0, 0x3a74 | a0 += 0x3a74;
0x000104bc jalr t9 | t9 ();
0x000104c0 lw gp, 0x20(sp) | gp = *(var_20h);
0x000104c4 b 0x102e4 | goto label_1;
| label_13:
0x000104c8 lw v0, 0x1d8(s2) | v0 = *(s2);
| if (v0 == 0) {
0x000104cc bnel v0, zero, 0x10588 | goto label_14;
| }
0x000104d0 lw v0, 4(s0) | v0 = *((s0 + 1));
0x000104d4 lw v0, 0x1d8(s2) | v0 = *(s2);
| if (v0 == 0) {
0x000104d8 bnel v0, zero, 0x10588 | goto label_14;
| }
| label_5:
0x000104dc lw t9, -0x7dd0(gp) | t9 = sym.free_packet;
| if (a0 != 0) {
0x000104e0 bnez a0, 0x103f8 | goto label_2;
| }
0x000104e4 lw t9, -0x7d7c(gp) | t9 = sym.xmalloc_secure_clear;
0x000104e8 addiu a0, zero, 0x34 | a0 = 0x34;
0x000104ec jalr t9 | t9 ();
0x000104f0 lw gp, 0x20(sp) | gp = *(var_20h);
0x000104f4 sw v0, 0x2c(s1) | *((s1 + 11)) = v0;
0x000104f8 move a1, v0 | a1 = v0;
0x000104fc lw t9, -0x7d78(gp) | t9 = sym.get_session_key;
0x00010500 move a0, s0 | a0 = s0;
0x00010504 bal 0x6354 | sym_get_session_key ();
0x00010508 move s5, v0 | s5 = v0;
0x0001050c lw gp, 0x20(sp) | gp = *(var_20h);
| if (v0 == 0) {
0x00010510 beqz v0, 0x1033c | goto label_3;
| }
0x00010514 lw t9, -0x7f24(gp) | t9 = sym.xfree;
0x00010518 lw a0, 0x2c(s1) | a0 = *((s1 + 11));
0x0001051c jalr t9 | t9 ();
0x00010520 lw gp, 0x20(sp) | gp = *(var_20h);
0x00010524 sw zero, 0x2c(s1) | *((s1 + 11)) = 0;
0x00010528 b 0x10540 | goto label_15;
| label_9:
0x0001052c lw t9, -0x7f24(gp) | t9 = sym.xfree;
0x00010530 lw a0, 0x2c(s1) | a0 = *((s1 + 11));
0x00010534 jalr t9 | t9 ();
0x00010538 lw gp, 0x20(sp) | gp = *(var_20h);
0x0001053c sw zero, 0x2c(s1) | *((s1 + 11)) = 0;
| label_15:
0x00010540 addiu v0, zero, -1 | v0 = -1;
0x00010544 lw t9, -0x7dd0(gp) | t9 = sym.free_packet;
| if (s5 == v0) {
0x00010548 beq s5, v0, 0x103f8 | goto label_2;
| }
0x0001054c lw t9, -0x7f28(gp) | t9 = sym.xmalloc;
0x00010550 addiu a0, zero, 0x14 | a0 = 0x14;
0x00010554 jalr t9 | t9 ();
0x00010558 lw a0, (s0) | a0 = *(s0);
0x0001055c lw v1, 4(s0) | v1 = *((s0 + 1));
0x00010560 lw gp, 0x20(sp) | gp = *(var_20h);
0x00010564 sw v1, 8(v0) | *((v0 + 2)) = v1;
0x00010568 sw a0, 4(v0) | *((v0 + 1)) = a0;
0x0001056c lbu a0, 9(s0) | a0 = *((s0 + 9));
0x00010570 lw v1, 0x48(s1) | v1 = *((s1 + 18));
0x00010574 sw a0, 0xc(v0) | *((v0 + 3)) = a0;
0x00010578 sw s5, 0x10(v0) | *((v0 + 4)) = s5;
0x0001057c sw v1, (v0) | *(v0) = v1;
0x00010580 sw v0, 0x48(s1) | *((s1 + 18)) = v0;
0x00010584 b 0x103f4 | goto label_4;
| label_14:
0x00010588 lw t9, -0x7d74(gp) | t9 = sym.seckey_available;
| if (v0 != 0) {
0x0001058c bnez v0, 0x104dc | goto label_5;
| }
0x00010590 move a0, s0 | a0 = s0;
0x00010594 bal 0xcb00 | sym_seckey_available ();
0x00010598 lw gp, 0x20(sp) | gp = *(var_20h);
| if (v0 != 0) {
0x0001059c bnez v0, 0x10440 | goto label_6;
| }
0x000105a0 lw a0, 0x24(s2) | a0 = *((s2 + 9));
0x000105a4 b 0x104dc | goto label_5;
| label_12:
0x000105a8 lw t9, -0x7834(gp) | t9 = sym.imp.__stack_chk_fail;
0x000105ac jalr t9 | t9 ();
0x000105b0 nop |
| }
; assembly | /* r2dec pseudo code output */
| /* /logs/firmware/unblob_extracted/firmware_extract/4325012-58052244.squashfs_v4_le_extract/usr/bin/gpgv @ 0x1090c */
| #include <stdint.h>
|
; (fcn) fcn.0001090c () | void fcn_0001090c () {
0x0001090c lui gp, 5 |
0x00010910 addiu gp, gp, 0x1824 |
0x00010914 addu gp, gp, t9 | gp += t9;
0x00010918 addiu sp, sp, -0x70 |
0x0001091c sw s7, 0x64(sp) | *(var_64h) = s7;
0x00010920 lw s7, -0x781c(gp) | s7 = *((gp - 7687));
0x00010924 sw gp, 0x18(sp) | *(var_18h) = gp;
0x00010928 sw ra, 0x6c(sp) | *(var_6ch) = ra;
0x0001092c lw v0, (s7) | v0 = *(s7);
0x00010930 sw fp, 0x68(sp) | *(var_68h) = fp;
0x00010934 sw s6, 0x60(sp) | *(var_60h) = s6;
0x00010938 sw s5, 0x5c(sp) | *(var_5ch) = s5;
0x0001093c sw s4, 0x58(sp) | *(var_58h) = s4;
0x00010940 sw s3, 0x54(sp) | *(var_54h) = s3;
0x00010944 sw s2, 0x50(sp) | *(var_50h) = s2;
0x00010948 sw s1, 0x4c(sp) | *(var_4ch) = s1;
0x0001094c sw s0, 0x48(sp) | *(var_48h) = s0;
0x00010950 sw v0, 0x44(sp) | *(var_44h) = v0;
0x00010954 lw v0, -0x7fdc(gp) | v0 = *(gp);
| if (a0 == 0) {
0x00010958 beqz a0, 0x10b7c | goto label_5;
| }
0x0001095c lw s5, -0x7fdc(gp) | s5 = *(gp);
0x00010960 lw s4, -0x7fdc(gp) | s4 = *(gp);
0x00010964 lw s3, -0x7fdc(gp) | s3 = *(gp);
0x00010968 sw v0, 0x2c(sp) | *(var_2ch_3) = v0;
| /* str.public_key_decryption_failed:__s_n */
0x0001096c addiu v0, s5, 0x3c14 | v0 = s5 + 0x3c14;
0x00010970 move fp, a0 | fp = a0;
0x00010974 move s2, a1 | s2 = a1;
0x00010978 lw s6, -0x7fdc(gp) | s6 = *(gp);
0x0001097c sw v0, 0x28(sp) | *(var_28h_2) = v0;
| /* str.encrypted_with__s_key__ID__s_n */
0x00010980 addiu s4, s4, 0x3be8 | s4 += 0x3be8;
| /* esilref: '[?]' */
0x00010984 addiu s3, s3, 0x3ba4 | s3 += 0x3ba4;
0x00010988 b 0x10abc |
| if (v0 != 0) {
| while (s2 != 0) {
0x0001098c beql v0, zero, 0x10ab4 |
0x00010990 lw fp, (fp) | fp = *(fp);
0x00010994 lw t9, -0x7d50(gp) | t9 = sym.pubkey_algo_to_string;
| label_0:
0x00010998 lw a0, 0xc(fp) | a0 = *(arg_ch);
0x0001099c addiu s1, fp, 4 | s1 = fp + 4;
0x000109a0 bal 0x271dc | sym_pubkey_algo_to_string ();
0x000109a4 lw gp, 0x18(sp) | gp = *(var_18h);
0x000109a8 addiu a0, zero, 0x80 | a0 = 0x80;
0x000109ac move s5, v0 | s5 = v0;
0x000109b0 lw t9, -0x7f2c(gp) | t9 = sym.xmalloc_clear;
| if (s5 != 0) {
0x000109b4 movz s5, s3, s5 | s5 = s3;
| }
0x000109b8 jalr t9 | t9 ();
0x000109bc lw gp, 0x18(sp) | gp = *(var_18h);
0x000109c0 move s0, v0 | s0 = v0;
0x000109c4 lw v0, 0xc(fp) | v0 = *(arg_ch);
0x000109c8 lw t9, -0x7e34(gp) | t9 = sym.get_pubkey;
0x000109cc sb v0, 0x1f(s0) | *((s0 + 31)) = v0;
0x000109d0 move a1, s1 | a1 = s1;
0x000109d4 move a0, s0 | a0 = s0;
0x000109d8 bal 0xc768 | sym_get_pubkey ();
0x000109dc lw gp, 0x18(sp) | gp = *(var_18h);
| if (v0 != 0) {
0x000109e0 bnez v0, 0x10ad4 | goto label_6;
| }
0x000109e4 lw t9, -0x7d4c(gp) | t9 = sym.nbits_from_pk;
0x000109e8 move a0, s0 | a0 = s0;
0x000109ec bal 0x19f48 | sym_nbits_from_pk ();
0x000109f0 lw gp, 0x18(sp) | gp = *(var_18h);
0x000109f4 move a0, s0 | a0 = s0;
0x000109f8 lw t9, -0x7e6c(gp) | t9 = sym.keystr_from_pk;
0x000109fc sw v0, 0x24(sp) | *(var_24h_3) = v0;
0x00010a00 bal 0x19dd4 | sym_keystr_from_pk ();
0x00010a04 lw gp, 0x18(sp) | gp = *(var_18h);
0x00010a08 lw a0, (s0) | a0 = *(s0);
0x00010a0c lw t9, -0x7d48(gp) | t9 = sym.strtimestamp;
0x00010a10 sw v0, 0x20(sp) | *(var_20h_4) = v0;
0x00010a14 jalr t9 | t9 ();
0x00010a18 lw gp, 0x18(sp) | gp = *(var_18h);
0x00010a1c lw a3, 0x20(sp) | a3 = *(var_20h_4);
0x00010a20 lw a1, 0x24(sp) | a1 = *(var_24h_3);
0x00010a24 lw t9, -0x7f30(gp) | t9 = sym.g10_log_info;
0x00010a28 move a2, s5 | a2 = s5;
0x00010a2c sw v0, 0x10(sp) | *(var_10h_4) = v0;
| /* str.encrypted_with__u_bit__s_key__ID__s__created__s_n */
0x00010a30 addiu a0, s6, 0x3ba8 | a0 = s6 + 0x3ba8;
0x00010a34 jalr t9 | t9 ();
0x00010a38 lw gp, 0x18(sp) | gp = *(var_18h);
0x00010a3c lw t9, -0x7d44(gp) | t9 = sym.get_user_id_native;
0x00010a40 move a0, s1 | a0 = s1;
0x00010a44 bal 0xd254 | sym_get_user_id_native ();
0x00010a48 lw gp, 0x18(sp) | gp = *(var_18h);
0x00010a4c lw t9, -0x7d40(gp) | t9 = sym.log_stream;
0x00010a50 move s1, v0 | s1 = v0;
0x00010a54 jalr t9 | t9 ();
0x00010a58 lw gp, 0x18(sp) | gp = *(var_18h);
0x00010a5c move a3, s1 | a3 = s1;
0x00010a60 addiu a1, zero, 1 | a1 = 1;
0x00010a64 lw a2, -0x7fdc(gp) | a2 = *(gp);
0x00010a68 lw t9, -0x7920(gp) | t9 = sym.imp.__fprintf_chk;
| /* str.________s__n */
0x00010a6c addiu a2, a2, 0x3bdc | a2 += 0x3bdc;
0x00010a70 move a0, v0 | a0 = v0;
0x00010a74 jalr t9 | t9 ();
0x00010a78 lw gp, 0x18(sp) | gp = *(var_18h);
0x00010a7c lw t9, -0x7f24(gp) | t9 = sym.xfree;
0x00010a80 move a0, s1 | a0 = s1;
0x00010a84 jalr t9 | t9 ();
0x00010a88 lw gp, 0x18(sp) | gp = *(var_18h);
0x00010a8c lw t9, -0x7e74(gp) | t9 = sym.free_public_key;
0x00010a90 move a0, s0 | a0 = s0;
0x00010a94 bal 0x91c0 | sym_free_public_key ();
0x00010a98 lw a0, 0x10(fp) | a0 = *(arg_10h);
0x00010a9c addiu v0, zero, 0x11 | v0 = 0x11;
0x00010aa0 lw gp, 0x18(sp) | gp = *(var_18h);
| if (a0 == v0) {
0x00010aa4 beq a0, v0, 0x10b18 | goto label_7;
| }
| label_2:
0x00010aa8 lw t9, -0x7f88(gp) | t9 = sym.g10_errstr;
| if (a0 != 0) {
0x00010aac bnez a0, 0x10bb8 | goto label_8;
| }
| label_3:
0x00010ab0 lw fp, (fp) | fp = *(fp);
| }
| if (fp == 0) {
| label_1:
0x00010ab4 beqz fp, 0x10b7c | goto label_5;
| }
0x00010ab8 nop |
| label_4:
0x00010abc lw v0, 0x10(fp) | v0 = *(arg_10h);
0x00010ac0 bnez s2, 0x1098c |
| }
0x00010ac4 lw t9, -0x7d50(gp) | t9 = sym.pubkey_algo_to_string;
| if (v0 == 0) {
0x00010ac8 beqz v0, 0x10998 | goto label_0;
| }
0x00010acc lw fp, (fp) | fp = *(fp);
0x00010ad0 b 0x10ab4 | goto label_1;
| label_6:
0x00010ad4 lw t9, -0x7e48(gp) | t9 = sym.keystr;
0x00010ad8 move a0, s1 | a0 = s1;
0x00010adc bal 0x19920 | sym_keystr ();
0x00010ae0 lw gp, 0x18(sp) | gp = *(var_18h);
0x00010ae4 move a2, v0 | a2 = v0;
0x00010ae8 move a1, s5 | a1 = s5;
0x00010aec lw t9, -0x7f30(gp) | t9 = sym.g10_log_info;
0x00010af0 move a0, s4 | a0 = s4;
0x00010af4 jalr t9 | t9 ();
0x00010af8 lw gp, 0x18(sp) | gp = *(var_18h);
0x00010afc lw t9, -0x7e74(gp) | t9 = sym.free_public_key;
0x00010b00 move a0, s0 | a0 = s0;
0x00010b04 bal 0x91c0 | sym_free_public_key ();
0x00010b08 lw a0, 0x10(fp) | a0 = *(arg_10h);
0x00010b0c addiu v0, zero, 0x11 | v0 = 0x11;
0x00010b10 lw gp, 0x18(sp) | gp = *(var_18h);
| if (a0 != v0) {
0x00010b14 bne a0, v0, 0x10aa8 | goto label_2;
| }
| label_7:
0x00010b18 lw t9, -0x7d88(gp) | t9 = sym.is_status_enabled;
0x00010b1c bal 0x21b70 | sym_is_status_enabled ();
0x00010b20 nop |
0x00010b24 lw gp, 0x18(sp) | gp = *(var_18h);
| if (v0 == 0) {
0x00010b28 beqz v0, 0x10ab0 | goto label_3;
| }
0x00010b2c lw v0, 8(fp) | v0 = *(arg_8h);
0x00010b30 lw v1, 0x2c(sp) | v1 = *(var_2ch_3);
0x00010b34 sw v0, 0x14(sp) | *(var_14h_2) = v0;
0x00010b38 lw v0, 4(fp) | v0 = *(arg_4h);
0x00010b3c lw t9, -0x794c(gp) | t9 = sym.imp.__sprintf_chk
0x00010b40 addiu s0, sp, 0x30 | s0 = sp + 0x30;
0x00010b44 addiu a3, v1, 0x3c08 | a3 = v1 + 0x3c08;
0x00010b48 addiu a2, zero, 0x14 | a2 = 0x14;
0x00010b4c addiu a1, zero, 1 | a1 = 1;
0x00010b50 move a0, s0 | a0 = s0;
0x00010b54 sw v0, 0x10(sp) | *(var_10h_4) = v0;
0x00010b58 jalr t9 | t9 ();
0x00010b5c lw gp, 0x18(sp) | gp = *(var_18h);
0x00010b60 move a1, s0 | a1 = s0;
0x00010b64 lw t9, -0x7d80(gp) | t9 = sym.write_status_text;
0x00010b68 addiu a0, zero, 0x1b | a0 = 0x1b;
0x00010b6c bal 0x21b8c | sym_write_status_text ();
0x00010b70 lw fp, (fp) | fp = *(fp);
0x00010b74 lw gp, 0x18(sp) | gp = *(var_18h);
| if (fp != 0) {
0x00010b78 bnez fp, 0x10abc | goto label_4;
| }
| label_5:
0x00010b7c lw v1, 0x44(sp) | v1 = *(var_44h);
0x00010b80 lw v0, (s7) | v0 = *(s7);
0x00010b84 lw ra, 0x6c(sp) | ra = *(var_6ch);
| if (v1 == v0) {
0x00010b88 bne v1, v0, 0x10bdc |
0x00010b8c lw fp, 0x68(sp) | fp = *(var_68h);
0x00010b90 lw s7, 0x64(sp) | s7 = *(var_64h);
0x00010b94 lw s6, 0x60(sp) | s6 = *(var_60h);
0x00010b98 lw s5, 0x5c(sp) | s5 = *(var_5ch);
0x00010b9c lw s4, 0x58(sp) | s4 = *(var_58h);
0x00010ba0 lw s3, 0x54(sp) | s3 = *(var_54h);
0x00010ba4 lw s2, 0x50(sp) | s2 = *(var_50h);
0x00010ba8 lw s1, 0x4c(sp) | s1 = *(var_4ch);
0x00010bac lw s0, 0x48(sp) | s0 = *(var_48h);
0x00010bb0 addiu sp, sp, 0x70 |
0x00010bb4 jr ra | return v1;
| label_8:
0x00010bb8 jalr t9 | t9 ();
0x00010bbc nop |
0x00010bc0 lw gp, 0x18(sp) | gp = *(var_18h);
0x00010bc4 lw a0, 0x28(sp) | a0 = *(var_28h_2);
0x00010bc8 lw t9, -0x7f30(gp) | t9 = sym.g10_log_info;
0x00010bcc move a1, v0 | a1 = v0;
0x00010bd0 jalr t9 | t9 ();
0x00010bd4 lw gp, 0x18(sp) | gp = *(var_18h);
0x00010bd8 b 0x10ab0 | goto label_3;
| }
0x00010bdc lw t9, -0x7834(gp) | t9 = sym.imp.__stack_chk_fail;
0x00010be0 jalr t9 | t9 ();
0x00010be4 nop |
| }
; assembly | /* r2dec pseudo code output */
| /* /logs/firmware/unblob_extracted/firmware_extract/4325012-58052244.squashfs_v4_le_extract/usr/bin/gpgv @ 0x10be8 */
| #include <stdint.h>
|
; (fcn) fcn.00010be8 () | void fcn_00010be8 () {
0x00010be8 lui gp, 5 |
0x00010bec addiu gp, gp, 0x1548 |
0x00010bf0 addu gp, gp, t9 | gp += t9;
0x00010bf4 addiu sp, sp, -0x68 |
0x00010bf8 sw s3, 0x54(sp) | *(var_54h_2) = s3;
0x00010bfc sw s2, 0x50(sp) | *(var_50h_2) = s2;
0x00010c00 lw s3, -0x781c(gp) | s3 = *((gp - 7687));
0x00010c04 lw s2, -0x7fc8(gp) | s2 = *(gp);
0x00010c08 sw gp, 0x20(sp) | *(var_20h) = gp;
0x00010c0c lw v1, (s3) | v1 = *(s3);
0x00010c10 lw v0, 4(s2) | v0 = *((s2 + 1));
0x00010c14 sw s4, 0x58(sp) | *(var_58h_2) = s4;
0x00010c18 sw s0, 0x48(sp) | *(var_48h_2) = s0;
0x00010c1c sw ra, 0x64(sp) | *(var_64h_2) = ra;
0x00010c20 sw s6, 0x60(sp) | *(var_60h_2) = s6;
0x00010c24 sw s5, 0x5c(sp) | *(var_5ch_2) = s5;
0x00010c28 sw s1, 0x4c(sp) | *(var_4ch_2) = s1;
0x00010c2c move s0, a0 | s0 = a0;
0x00010c30 move s4, a1 | s4 = a1;
0x00010c34 sw v1, 0x44(sp) | *(var_44h_2) = v1;
0x00010c38 lw t9, -0x7d3c(gp) | t9 = sym.write_status;
| if (v0 != 0) {
0x00010c3c bnez v0, 0x10c88 | goto label_11;
| }
0x00010c40 lw a1, 0x44(a0) | a1 = *((a0 + 17));
0x00010c44 sltiu v0, a1, 2 | v0 = (a1 < 2) ? 1 : 0;
0x00010c48 addiu v0, zero, 1 | v0 = 1;
| if (v0 == 0) {
0x00010c4c beqz v0, 0x10d84 | goto label_12;
| }
| if (a1 == v0) {
0x00010c50 beql a1, v0, 0x10f90 | goto label_13;
| }
0x00010c54 lw a0, -0x7fdc(gp) | a0 = *(gp);
| do {
| label_7:
0x00010c58 lw s1, -0x7f10(gp) | s1 = *(gp);
0x00010c5c lw a0, 0x48(s0) | a0 = *((s0 + 18));
| /* fcn.0001090c */
0x00010c60 addiu s1, s1, 0x90c | s1 += 0x90c;
0x00010c64 move t9, s1 | t9 = s1;
0x00010c68 addiu a1, zero, 1 | a1 = 1;
0x00010c6c bal 0x1090c | fcn_0001090c ();
0x00010c70 lw a0, 0x48(s0) | a0 = *((s0 + 18));
0x00010c74 move t9, s1 | t9 = s1;
0x00010c78 move a1, zero | a1 = 0;
0x00010c7c bal 0x1090c | fcn_0001090c ();
0x00010c80 lw gp, 0x20(sp) | gp = *(var_20h);
0x00010c84 lw t9, -0x7d3c(gp) | t9 = sym.write_status;
| label_11:
0x00010c88 addiu a0, zero, 0x29 | a0 = 0x29;
0x00010c8c bal 0x21e10 | sym_write_status ();
0x00010c90 lw s1, 0x24(s2) | s1 = *((s2 + 9));
0x00010c94 lw gp, 0x20(sp) | gp = *(var_20h);
0x00010c98 lw a2, 0x2c(s0) | a2 = *((s0 + 11));
| if (s1 == 0) {
0x00010c9c bnez s1, 0x10d18 |
| if (a2 == 0) {
0x00010ca0 beql a2, zero, 0x10ec0 | goto label_14;
| }
0x00010ca4 lw v0, 0x30(s0) | v0 = *((s0 + 12));
| label_1:
0x00010ca8 lw t9, -0x7d38(gp) | t9 = sym.decrypt_data;
0x00010cac lw a1, 4(s4) | a1 = *((s4 + 1));
0x00010cb0 move a0, s0 | a0 = s0;
0x00010cb4 bal 0x6364 | sym_decrypt_data ();
0x00010cb8 move s5, v0 | s5 = v0;
0x00010cbc addiu v0, zero, -1 | v0 = -1;
0x00010cc0 lw gp, 0x20(sp) | gp = *(var_20h);
| if (s5 == v0) {
0x00010cc4 beq s5, v0, 0x10eb8 | goto label_15;
| }
0x00010cc8 lw t9, -0x7d3c(gp) | t9 = sym.write_status;
| if (s5 == 0) {
0x00010ccc beqz s5, 0x10d9c | goto label_5;
| }
| label_8:
0x00010cd0 addiu v0, zero, 8 | v0 = 8;
| if (s5 == v0) {
0x00010cd4 beql s5, v0, 0x10f44 | goto label_16;
| }
0x00010cd8 lw v0, 0x1c0(s2) | v0 = *(s2);
| label_6:
0x00010cdc lw t9, -0x7d3c(gp) | t9 = sym.write_status;
0x00010ce0 addiu a0, zero, 0x1d | a0 = 0x1d;
0x00010ce4 bal 0x21e10 | sym_write_status ();
0x00010ce8 lw gp, 0x20(sp) | gp = *(var_20h);
0x00010cec lw t9, -0x7f88(gp) | t9 = sym.g10_errstr;
0x00010cf0 move a0, s5 | a0 = s5;
0x00010cf4 jalr t9 | t9 ();
0x00010cf8 lw gp, 0x20(sp) | gp = *(var_20h);
0x00010cfc move a1, v0 | a1 = v0;
0x00010d00 lw a0, -0x7fdc(gp) | a0 = *(gp);
0x00010d04 lw t9, -0x7f84(gp) | t9 = sym.g10_log_error;
| /* str.decryption_failed:__s_n */
0x00010d08 addiu a0, a0, 0x3d7c | a0 += 0x3d7c;
0x00010d0c jalr t9 | t9 ();
0x00010d10 lw gp, 0x20(sp) | gp = *(var_20h);
0x00010d14 lw a2, 0x2c(s0) | a2 = *((s0 + 11));
| }
| label_0:
0x00010d18 lw t9, -0x7f24(gp) | t9 = sym.xfree;
| label_9:
0x00010d1c move a0, a2 | a0 = a2;
0x00010d20 jalr t9 | t9 ();
0x00010d24 lw gp, 0x20(sp) | gp = *(var_20h);
0x00010d28 move a0, s4 | a0 = s4;
0x00010d2c lw t9, -0x7dd0(gp) | t9 = sym.free_packet;
0x00010d30 sw zero, 0x2c(s0) | *((s0 + 11)) = 0;
0x00010d34 bal 0x9414 | sym_free_packet ();
0x00010d38 lw gp, 0x20(sp) | gp = *(var_20h);
0x00010d3c sw zero, 0x30(s0) | *((s0 + 12)) = 0;
0x00010d40 lw t9, -0x7d3c(gp) | t9 = sym.write_status;
0x00010d44 addiu a0, zero, 0x2a | a0 = 0x2a;
0x00010d48 bal 0x21e10 | sym_write_status ();
0x00010d4c lw v1, 0x44(sp) | v1 = *(var_44h_2);
0x00010d50 lw v0, (s3) | v0 = *(s3);
0x00010d54 lw gp, 0x20(sp) | gp = *(var_20h);
| if (v1 != v0) {
0x00010d58 bne v1, v0, 0x110e4 | goto label_17;
| }
0x00010d5c lw ra, 0x64(sp) | ra = *(var_64h_2);
0x00010d60 lw s6, 0x60(sp) | s6 = *(var_60h_2);
0x00010d64 lw s5, 0x5c(sp) | s5 = *(var_5ch_2);
0x00010d68 lw s4, 0x58(sp) | s4 = *(var_58h_2);
0x00010d6c lw s3, 0x54(sp) | s3 = *(var_54h_2);
0x00010d70 lw s2, 0x50(sp) | s2 = *(var_50h_2);
0x00010d74 lw s1, 0x4c(sp) | s1 = *(var_4ch_2);
0x00010d78 lw s0, 0x48(sp) | s0 = *(var_48h_2);
0x00010d7c addiu sp, sp, 0x68 |
0x00010d80 jr ra | return v0;
| label_12:
0x00010d84 lw a0, -0x7fdc(gp) | a0 = *(gp);
0x00010d88 lw t9, -0x7f30(gp) | t9 = sym.g10_log_info;
| /* str.encrypted_with__lu_passphrases_n */
0x00010d8c addiu a0, a0, 0x3c38 | a0 += 0x3c38;
0x00010d90 jalr t9 | t9 ();
0x00010d94 lw gp, 0x20(sp) | gp = *(var_20h);
0x00010d98 b 0x10c58 |
| } while (1);
| label_5:
0x00010d9c addiu a0, zero, 0x1e | a0 = 0x1e;
0x00010da0 bal 0x21e10 | sym_write_status ();
0x00010da4 lw v0, (s2) | v0 = *(s2);
0x00010da8 slti v0, v0, 2 | v0 = (v0 < 2) ? 1 : 0;
0x00010dac lw gp, 0x20(sp) | gp = *(var_20h);
| if (v0 == 0) {
0x00010db0 beqz v0, 0x10f08 | goto label_18;
| }
0x00010db4 lw v0, 4(s4) | v0 = *((s4 + 1));
0x00010db8 lbu v0, 0xa(v0) | v0 = *((v0 + 10));
| if (v0 != 0) {
0x00010dbc beql v0, zero, 0x10dd0 |
0x00010dc0 lw v0, 0x170(s2) | v0 = *(s2);
| label_3:
0x00010dc4 lw t9, -0x7d3c(gp) | t9 = sym.write_status;
| if (s5 == 0) {
0x00010dc8 beqz s5, 0x10fa4 | goto label_19;
| }
| label_2:
0x00010dcc lw v0, 0x170(s2) | v0 = *(s2);
| }
| if (v0 == 0) {
0x00010dd0 beql v0, zero, 0x10f30 | goto label_20;
| }
0x00010dd4 lw a0, -0x7fdc(gp) | a0 = *(gp);
| label_4:
0x00010dd8 lw v0, 0x1cc(s2) | v0 = *(s2);
0x00010ddc lw a2, 0x2c(s0) | a2 = *((s0 + 11));
| if (v0 == 0) {
0x00010de0 beqz v0, 0x10d18 | goto label_0;
| }
0x00010de4 lw a0, 4(a2) | a0 = *((a2 + 1));
0x00010de8 lw t9, -0x7f28(gp) | t9 = sym.xmalloc;
0x00010dec addiu a0, a0, 0xa | a0 += 0xa;
0x00010df0 sll a0, a0, 1 | a0 <<= 1;
0x00010df4 jalr t9 | t9 ();
0x00010df8 lw gp, 0x20(sp) | gp = *(var_20h);
0x00010dfc lw v1, 0x2c(s0) | v1 = *((s0 + 11));
0x00010e00 move s5, v0 | s5 = v0;
0x00010e04 lw a3, -0x7fdc(gp) | a3 = *(gp);
0x00010e08 lw v0, (v1) | v0 = *(v1);
0x00010e0c lw t9, -0x794c(gp) | t9 = sym.imp.__sprintf_chk
0x00010e10 sw v0, 0x10(sp) | *(var_10h_3) = v0;
| /* esilref: '&d:' */
0x00010e14 addiu a3, a3, 0x3d28 | a3 += 0x3d28;
0x00010e18 addiu a2, zero, -1 | a2 = -1;
0x00010e1c addiu a1, zero, 1 | a1 = 1;
0x00010e20 move a0, s5 | a0 = s5;
0x00010e24 jalr t9 | t9 ();
0x00010e28 lw s2, 0x2c(s0) | s2 = *((s0 + 11));
0x00010e2c lw v0, 4(s2) | v0 = *((s2 + 1));
0x00010e30 lw gp, 0x20(sp) | gp = *(var_20h);
| if (v0 <= 0) {
0x00010e34 blez v0, 0x10e8c | goto label_21;
| }
0x00010e38 lw s6, -0x7fdc(gp) | s6 = *(gp);
| /* str._02X */
0x00010e3c addiu s6, s6, 0x3d40 | s6 += 0x3d40;
| do {
0x00010e40 lw t9, -0x78a0(gp) | t9 = sym.imp.strlen;
0x00010e44 move a0, s5 | a0 = s5;
0x00010e48 jalr t9 | t9 ();
0x00010e4c addu s2, s2, s1 | s2 += s1;
0x00010e50 lw gp, 0x20(sp) | gp = *(var_20h);
0x00010e54 lbu v1, 0x14(s2) | v1 = *((s2 + 20));
0x00010e58 move a3, s6 | a3 = s6;
0x00010e5c lw t9, -0x794c(gp) | t9 = sym.imp.__sprintf_chk
0x00010e60 sw v1, 0x10(sp) | *(var_10h_3) = v1;
0x00010e64 addiu a2, zero, -1 | a2 = -1;
0x00010e68 addiu a1, zero, 1 | a1 = 1;
0x00010e6c addu a0, s5, v0 | a0 = s5 + v0;
0x00010e70 jalr t9 | t9 ();
0x00010e74 lw s2, 0x2c(s0) | s2 = *((s0 + 11));
0x00010e78 addiu s1, s1, 1 | s1++;
0x00010e7c lw v0, 4(s2) | v0 = *((s2 + 1));
0x00010e80 slt v0, s1, v0 | v0 = (s1 < v0) ? 1 : 0;
0x00010e84 lw gp, 0x20(sp) | gp = *(var_20h);
0x00010e88 bnez v0, 0x10e40 |
| } while (v0 != 0);
| label_21:
0x00010e8c lw a0, -0x7fdc(gp) | a0 = *(gp);
0x00010e90 lw t9, -0x7f30(gp) | t9 = sym.g10_log_info;
0x00010e94 move a1, s5 | a1 = s5;
| /* str.session_key:___s_n */
0x00010e98 addiu a0, a0, 0x3d2c | a0 += 0x3d2c;
0x00010e9c jalr t9 | t9 ();
0x00010ea0 lw gp, 0x20(sp) | gp = *(var_20h);
0x00010ea4 move a1, s5 | a1 = s5;
0x00010ea8 lw t9, -0x7d80(gp) | t9 = sym.write_status_text;
0x00010eac addiu a0, zero, 0x34 | a0 = 0x34;
0x00010eb0 bal 0x21b8c | sym_write_status_text ();
0x00010eb4 lw gp, 0x20(sp) | gp = *(var_20h);
| label_15:
0x00010eb8 lw a2, 0x2c(s0) | a2 = *((s0 + 11));
0x00010ebc b 0x10d18 | goto label_0;
| label_14:
0x00010ec0 sw a2, 0x2c(sp) | *(var_2ch_2) = a2;
| if (v0 != 0) {
0x00010ec4 bnez v0, 0x10f88 | goto label_22;
| }
0x00010ec8 lw v0, 0x1c8(s2) | v0 = *(s2);
0x00010ecc lw t9, -0x7f2c(gp) | t9 = sym.xmalloc_clear;
| if (v0 == 0) {
0x00010ed0 beqz v0, 0x10fb4 | goto label_23;
| }
0x00010ed4 addiu a0, zero, 0x34 | a0 = 0x34;
0x00010ed8 jalr t9 | t9 ();
0x00010edc lw gp, 0x20(sp) | gp = *(var_20h);
0x00010ee0 lw a1, 0x1c8(s2) | a1 = *(s2);
0x00010ee4 move a0, v0 | a0 = v0;
0x00010ee8 lw t9, -0x7d84(gp) | t9 = sym.get_override_session_key;
0x00010eec sw v0, 0x2c(s0) | *((s0 + 11)) = v0;
0x00010ef0 bal 0x635c | sym_get_override_session_key ();
0x00010ef4 move s5, v0 | s5 = v0;
0x00010ef8 lw gp, 0x20(sp) | gp = *(var_20h);
| if (v0 != 0) {
0x00010efc bnez v0, 0x11028 | goto label_24;
| }
0x00010f00 lw a2, 0x2c(s0) | a2 = *((s0 + 11));
0x00010f04 b 0x10ca8 | goto label_1;
| label_18:
0x00010f08 lw a0, -0x7fdc(gp) | a0 = *(gp);
0x00010f0c lw t9, -0x7f30(gp) | t9 = sym.g10_log_info;
| /* str.decryption_okay_n */
0x00010f10 addiu a0, a0, 0x3ce4 | a0 += 0x3ce4;
0x00010f14 jalr t9 | t9 ();
0x00010f18 lw v0, 4(s4) | v0 = *((s4 + 1));
0x00010f1c lbu v0, 0xa(v0) | v0 = *((v0 + 10));
0x00010f20 lw gp, 0x20(sp) | gp = *(var_20h);
| if (v0 == 0) {
0x00010f24 beqz v0, 0x10dcc | goto label_2;
| }
0x00010f28 b 0x10dc4 | goto label_3;
0x00010f2c nop |
| label_20:
0x00010f30 lw t9, -0x7f30(gp) | t9 = sym.g10_log_info;
| /* str.WARNING:_message_was_not_integrity_protected_n */
0x00010f34 addiu a0, a0, 0x3cf8 | a0 += 0x3cf8;
0x00010f38 jalr t9 | t9 ();
0x00010f3c lw gp, 0x20(sp) | gp = *(var_20h);
0x00010f40 b 0x10dd8 | goto label_4;
| label_16:
0x00010f44 lw t9, -0x7d3c(gp) | t9 = sym.write_status;
| if (v0 != 0) {
0x00010f48 bnez v0, 0x10d9c | goto label_5;
| }
0x00010f4c lw a0, -0x7fdc(gp) | a0 = *(gp);
0x00010f50 lw t9, -0x7f84(gp) | t9 = sym.g10_log_error;
| /* str.WARNING:_encrypted_message_has_been_manipulated__n */
0x00010f54 addiu a0, a0, 0x3d48 | a0 += 0x3d48;
0x00010f58 jalr t9 | t9 ();
0x00010f5c lw gp, 0x20(sp) | gp = *(var_20h);
0x00010f60 lw t9, -0x7d3c(gp) | t9 = sym.write_status;
0x00010f64 addiu a0, zero, 0x22 | a0 = 0x22;
0x00010f68 bal 0x21e10 | sym_write_status ();
0x00010f6c lw gp, 0x20(sp) | gp = *(var_20h);
0x00010f70 lw t9, -0x7d3c(gp) | t9 = sym.write_status;
0x00010f74 addiu a0, zero, 0x1d | a0 = 0x1d;
0x00010f78 bal 0x21e10 | sym_write_status ();
0x00010f7c lw gp, 0x20(sp) | gp = *(var_20h);
0x00010f80 lw a2, 0x2c(s0) | a2 = *((s0 + 11));
0x00010f84 b 0x10d18 | goto label_0;
| label_22:
0x00010f88 addiu s5, zero, 0x11 | s5 = 0x11;
0x00010f8c b 0x10cdc | goto label_6;
| label_13:
0x00010f90 lw t9, -0x7f30(gp) | t9 = sym.g10_log_info;
| /* str.encrypted_with_1_passphrase_n */
0x00010f94 addiu a0, a0, 0x3c58 | a0 += 0x3c58;
0x00010f98 jalr t9 | t9 ();
0x00010f9c lw gp, 0x20(sp) | gp = *(var_20h);
0x00010fa0 b 0x10c58 | goto label_7;
| label_19:
0x00010fa4 addiu a0, zero, 0x21 | a0 = 0x21;
0x00010fa8 bal 0x21e10 | sym_write_status ();
0x00010fac lw gp, 0x20(sp) | gp = *(var_20h);
0x00010fb0 b 0x10dd8 | goto label_4;
| label_23:
0x00010fb4 lw s5, 0x6c(s2) | s5 = *((s2 + 27));
0x00010fb8 lw t9, -0x7d34(gp) | t9 = sym.check_cipher_algo;
| if (s5 == 0) {
0x00010fbc beqz s5, 0x11050 | goto label_25;
| }
0x00010fc0 lw t9, -0x7d70(gp) | t9 = sym.free_notation;
0x00010fc4 move a0, s5 | a0 = s5;
0x00010fc8 bal 0x63c0 | sym_cipher_algo_to_string ();
0x00010fcc lw gp, 0x20(sp) | gp = *(var_20h);
0x00010fd0 move a1, v0 | a1 = v0;
0x00010fd4 lw a0, -0x7fdc(gp) | a0 = *(gp);
0x00010fd8 lw t9, -0x7f30(gp) | t9 = sym.g10_log_info;
| /* str.assuming__s_encrypted_data_n */
0x00010fdc addiu a0, a0, 0x3c78 | a0 += 0x3c78;
0x00010fe0 jalr t9 | t9 ();
0x00010fe4 lw gp, 0x20(sp) | gp = *(var_20h);
0x00010fe8 move a3, zero | a3 = 0;
| label_10:
0x00010fec lw t9, -0x7d68(gp) | t9 = sym.passphrase_to_dek;
0x00010ff0 move a2, s5 | a2 = s5;
0x00010ff4 sw zero, 0x18(sp) | *(var_18h_2) = 0;
0x00010ff8 sw zero, 0x14(sp) | *(var_14h) = 0;
0x00010ffc sw zero, 0x10(sp) | *(var_10h_3) = 0;
0x00011000 move a1, zero | a1 = 0;
0x00011004 move a0, zero | a0 = 0;
0x00011008 bal 0x637c | sym_passphrase_to_dek ();
0x0001100c move a2, v0 | a2 = v0;
0x00011010 lw gp, 0x20(sp) | gp = *(var_20h);
0x00011014 sw v0, 0x2c(s0) | *((s0 + 11)) = v0;
| if (v0 == 0) {
0x00011018 beqz v0, 0x10ca8 | goto label_1;
| }
0x0001101c addiu v0, zero, 1 | v0 = 1;
0x00011020 sw v0, 8(a2) | *((a2 + 2)) = v0;
0x00011024 b 0x10ca8 | goto label_1;
| label_24:
0x00011028 lw t9, -0x7f24(gp) | t9 = sym.xfree;
0x0001102c lw a0, 0x2c(s0) | a0 = *((s0 + 11));
0x00011030 jalr t9 | t9 ();
0x00011034 addiu v0, zero, -1 | v0 = -1;
0x00011038 lw gp, 0x20(sp) | gp = *(var_20h);
0x0001103c sw zero, 0x2c(s0) | *((s0 + 11)) = 0;
0x00011040 lw a2, 0x2c(sp) | a2 = *(var_2ch_2);
| if (s5 != v0) {
0x00011044 bne s5, v0, 0x10cd0 | goto label_8;
| }
0x00011048 lw t9, -0x7f24(gp) | t9 = sym.xfree;
0x0001104c b 0x10d1c | goto label_9;
| label_25:
0x00011050 addiu a0, zero, 1 | a0 = 1;
0x00011054 bal 0x63d8 | sym_check_cipher_algo ();
0x00011058 lw gp, 0x20(sp) | gp = *(var_20h);
| if (v0 != 0) {
0x0001105c beqz v0, 0x1109c |
0x00011060 lw s5, 0x6c(s2) | s5 = *((s2 + 27));
| if (s5 != 0) {
0x00011064 beql s5, zero, 0x1106c |
0x00011068 lw s5, 0x114(s2) | s5 = *(s2);
| }
0x0001106c lw t9, -0x7d70(gp) | t9 = sym.free_notation;
0x00011070 move a0, s5 | a0 = s5;
0x00011074 bal 0x63c0 | sym_cipher_algo_to_string ();
0x00011078 lw gp, 0x20(sp) | gp = *(var_20h);
0x0001107c move a1, v0 | a1 = v0;
0x00011080 lw a0, -0x7fdc(gp) | a0 = *(gp);
0x00011084 lw t9, -0x7f30(gp) | t9 = sym.g10_log_info;
| /* str.IDEA_cipher_unavailable__optimistically_attempting_to_use__s_instead_n */
0x00011088 addiu a0, a0, 0x3c94 | a0 += 0x3c94;
0x0001108c jalr t9 | t9 ();
0x00011090 lw gp, 0x20(sp) | gp = *(var_20h);
0x00011094 move a3, zero | a3 = 0;
0x00011098 b 0x10fec | goto label_10;
| }
0x0001109c lw v0, 0x110(s2) | v0 = *(s2);
0x000110a0 move a3, zero | a3 = 0;
| if (v0 != 0) {
0x000110a4 bnel v0, zero, 0x110b8 |
0x000110a8 addiu v0, zero, 1 | v0 = 1;
0x000110ac sw zero, 0x30(sp) | *(var_30h_2) = 0;
0x000110b0 sb v0, 0x34(sp) | *(var_34h_2) = v0;
0x000110b4 addiu a3, sp, 0x30 | a3 = sp + 0x30;
| }
0x000110b8 lw a1, -0x7fdc(gp) | a1 = *(gp);
0x000110bc lw a0, -0x7fdc(gp) | a0 = *(gp);
0x000110c0 lw t9, -0x7f30(gp) | t9 = sym.g10_log_info;
0x000110c4 sw a3, 0x2c(sp) | *(var_2ch_2) = a3;
| /* str.IDEA */
0x000110c8 addiu a1, a1, 0x3cdc | a1 += 0x3cdc;
| /* str.assuming__s_encrypted_data_n */
0x000110cc addiu a0, a0, 0x3c78 | a0 += 0x3c78;
0x000110d0 jalr t9 | t9 ();
0x000110d4 addiu s5, zero, 1 | s5 = 1;
0x000110d8 lw gp, 0x20(sp) | gp = *(var_20h);
0x000110dc lw a3, 0x2c(sp) | a3 = *(var_2ch_2);
0x000110e0 b 0x10fec | goto label_10;
| label_17:
0x000110e4 lw t9, -0x7834(gp) | t9 = sym.imp.__stack_chk_fail;
0x000110e8 jalr t9 | t9 ();
0x000110ec nop |
| }
; assembly | /* r2dec pseudo code output */
| /* /logs/firmware/unblob_extracted/firmware_extract/4325012-58052244.squashfs_v4_le_extract/usr/bin/gpgv @ 0x12d38 */
| #include <stdint.h>
|
; (fcn) fcn.00012d38 () | void fcn_00012d38 () {
0x00012d38 lui gp, 5 |
0x00012d3c addiu gp, gp, -0xc08 |
0x00012d40 addu gp, gp, t9 | gp += t9;
0x00012d44 addiu sp, sp, -0x198 |
0x00012d48 lw v0, 4(a1) | v0 = *((a1 + 1));
0x00012d4c sw s3, 0x17c(sp) | *(var_17ch) = s3;
0x00012d50 sw s2, 0x178(sp) | *(var_178h) = s2;
0x00012d54 lw s3, -0x781c(gp) | s3 = *((gp - 7687));
0x00012d58 lw s2, -0x7fc8(gp) | s2 = *(gp);
0x00012d5c sw s1, 0x174(sp) | *(var_174h) = s1;
0x00012d60 lw v1, (s3) | v1 = *(s3);
0x00012d64 lw s1, 0xd8(s2) | s1 = *((s2 + 54));
0x00012d68 sw gp, 0x30(sp) | *(var_30h) = gp;
0x00012d6c sw s0, 0x170(sp) | *(var_170h) = s0;
0x00012d70 sw ra, 0x194(sp) | *(var_194h) = ra;
0x00012d74 sw fp, 0x190(sp) | *(var_190h) = fp;
0x00012d78 sw s7, 0x18c(sp) | *(var_18ch) = s7;
0x00012d7c sw s6, 0x188(sp) | *(var_188h) = s6;
0x00012d80 sw s5, 0x184(sp) | *(var_184h) = s5;
0x00012d84 sw s4, 0x180(sp) | *(var_180h) = s4;
0x00012d88 sw v1, 0x16c(sp) | *(var_16ch) = v1;
0x00012d8c lw s0, 4(v0) | s0 = *((v0 + 1));
0x00012d90 sw zero, 0x60(sp) | *(var_60h) = 0;
0x00012d94 sw zero, 0x64(sp) | *(var_64h) = 0;
| if (s1 != 0) {
0x00012d98 bnez s1, 0x132d4 | goto label_49;
| }
0x00012d9c lw v0, 0x34(a0) | v0 = *((a0 + 13));
0x00012da0 move s5, a0 | s5 = a0;
| if (v0 == 0) {
0x00012da4 beqz v0, 0x140c4 | goto label_50;
| }
0x00012da8 lw v1, 4(v0) | v1 = *((v0 + 1));
0x00012dac move s4, a1 | s4 = a1;
0x00012db0 addiu a0, zero, 2 | a0 = 2;
0x00012db4 lw a1, (v1) | a1 = *(v1);
0x00012db8 addiu a0, zero, 4 | a0 = 4;
| if (a1 == a0) {
0x00012dbc beq a1, a0, 0x13290 | goto label_51;
| }
0x00012dc0 addiu a0, zero, 0x3f | a0 = 0x3f;
| if (a1 == a0) {
0x00012dc4 beq a1, a0, 0x132f0 | goto label_52;
| }
0x00012dc8 lw a0, -0x7fdc(gp) | a0 = *(gp);
| if (a1 != a0) {
0x00012dcc bne a1, a0, 0x13240 | goto label_7;
| }
0x00012dd0 lw a0, 4(v1) | a0 = *((v1 + 1));
0x00012dd4 addiu v1, zero, 1 | v1 = 1;
0x00012dd8 lw a0, (a0) | a0 = *(a0);
0x00012ddc lw a0, -0x7fdc(gp) | a0 = *(gp);
| if (a0 != v1) {
0x00012de0 bne a0, v1, 0x13240 | goto label_7;
| }
0x00012de4 lw v0, (v0) | v0 = *(v0);
0x00012de8 lw t9, -0x7f84(gp) | t9 = sym.g10_log_error;
| if (v0 == 0) {
0x00012dec beqz v0, 0x13244 | goto label_53;
| }
0x00012df0 lw v1, 4(v0) | v1 = *((v0 + 1));
0x00012df4 lw a0, (v1) | a0 = *(v1);
0x00012df8 lw a0, -0x7fdc(gp) | a0 = *(gp);
| if (a0 != a1) {
0x00012dfc bne a0, a1, 0x13244 | goto label_53;
| }
0x00012e00 lw a0, 4(v1) | a0 = *((v1 + 1));
0x00012e04 addiu v1, zero, 3 | v1 = 3;
0x00012e08 lw a0, (a0) | a0 = *(a0);
0x00012e0c lw a0, -0x7fdc(gp) | a0 = *(gp);
| if (a0 == v1) {
0x00012e10 bnel a0, v1, 0x13244 | goto label_53;
| }
0x00012e14 lw v0, (v0) | v0 = *(v0);
0x00012e18 addiu v1, zero, 2 | v1 = 2;
| if (v0 == 0) {
0x00012e1c beqz v0, 0x1323c | goto label_11;
| }
0x00012e20 lw a0, 4(v0) | a0 = *((v0 + 1));
0x00012e24 lw a0, (a0) | a0 = *(a0);
0x00012e28 lw a0, -0x7fdc(gp) | a0 = *(gp);
| if (a0 == v1) {
0x00012e2c bnel a0, v1, 0x13244 | goto label_53;
| }
0x00012e30 addiu a0, zero, 2 | a0 = 2;
0x00012e34 b 0x12e44 |
| while (v0 == 0) {
0x00012e38 lw v1, (v1) | v1 = *(v1);
0x00012e3c lw a0, -0x7fdc(gp) | a0 = *(gp);
| if (v1 == a0) {
0x00012e40 bnel v1, a0, 0x13240 | goto label_7;
| }
0x00012e44 lw v0, (v0) | v0 = *(v0);
0x00012e48 lw v1, 4(v0) | v1 = *((v0 + 1));
0x00012e4c bnel v0, zero, 0x12e38 |
| }
0x00012e50 lw t9, -0x7d50(gp) | t9 = sym.pubkey_algo_to_string;
| label_5:
0x00012e54 lbu a0, 0x16(s0) | a0 = *((s0 + 22));
0x00012e58 bal 0x271dc | sym_pubkey_algo_to_string ();
0x00012e5c lw gp, 0x30(sp) | gp = *(var_30h);
0x00012e60 lw t9, -0x7cb4(gp) | t9 = sym.keystrlen;
0x00012e64 move s6, v0 | s6 = v0;
0x00012e68 bal 0x198c0 | sym_keystrlen ();
0x00012e6c sltiu v0, v0, 9 | v0 = (v0 < 9) ? 1 : 0;
0x00012e70 lw gp, 0x30(sp) | gp = *(var_30h);
| if (v0 != 0) {
0x00012e74 bnez v0, 0x13368 | goto label_54;
| }
0x00012e78 lw t9, -0x7cb0(gp) | t9 = sym.asctimestamp;
0x00012e7c lw a0, 0xc(s0) | a0 = *((s0 + 3));
0x00012e80 jalr t9 | t9 ();
0x00012e84 lw gp, 0x30(sp) | gp = *(var_30h);
0x00012e88 move a1, v0 | a1 = v0;
0x00012e8c lw a0, -0x7fdc(gp) | a0 = *(gp);
0x00012e90 lw t9, -0x7f30(gp) | t9 = sym.g10_log_info;
| /* str.Signature_made__s_n */
0x00012e94 addiu a0, a0, 0x41e4 | a0 += 0x41e4;
0x00012e98 jalr t9 | t9 ();
0x00012e9c lw gp, 0x30(sp) | gp = *(var_30h);
| if (s6 == 0) {
0x00012ea0 beqz s6, 0x13c1c | goto label_55;
| }
| label_35:
0x00012ea4 lw t9, -0x7e48(gp) | t9 = sym.keystr;
0x00012ea8 addiu v0, s0, 4 | v0 = s0 + 4;
0x00012eac move a0, v0 | a0 = v0;
0x00012eb0 sw v0, 0x44(sp) | *(var_44h_2) = v0;
0x00012eb4 bal 0x19920 | sym_keystr ();
0x00012eb8 lw gp, 0x30(sp) | gp = *(var_30h);
0x00012ebc move a2, v0 | a2 = v0;
0x00012ec0 move a1, s6 | a1 = s6;
0x00012ec4 lw a0, -0x7fdc(gp) | a0 = *(gp);
0x00012ec8 lw t9, -0x7f30(gp) | t9 = sym.g10_log_info;
| /* str._______________using__s_key__s_n */
0x00012ecc addiu a0, a0, 0x41f8 | a0 += 0x41f8;
0x00012ed0 jalr t9 | t9 ();
0x00012ed4 lw gp, 0x30(sp) | gp = *(var_30h);
| label_12:
0x00012ed8 addiu v0, sp, 0x64 | v0 = sp + 0x64;
0x00012edc sw v0, 0x50(sp) | *(var_50h) = v0;
0x00012ee0 sw v0, 0x10(sp) | *(var_10h_2) = v0;
0x00012ee4 lw v0, -0x7f10(gp) | v0 = *(gp);
0x00012ee8 addiu a3, sp, 0x60 | a3 = sp + 0x60;
| /* fcn.00011688 */
0x00012eec addiu t9, v0, 0x1688 | t9 = v0 + 0x1688;
0x00012ef0 sw a3, 0x4c(sp) | *(var_4ch) = a3;
0x00012ef4 move a2, zero | a2 = 0;
0x00012ef8 move a1, s4 | a1 = s4;
0x00012efc move a0, s5 | a0 = s5;
0x00012f00 sw t9, 0x48(sp) | *(var_48h) = t9;
0x00012f04 bal 0x11688 | fcn_00011688 ();
0x00012f08 move s6, v0 | s6 = v0;
0x00012f0c addiu v0, zero, 9 | v0 = 9;
0x00012f10 lw gp, 0x30(sp) | gp = *(var_30h);
| if (s6 == v0) {
0x00012f14 beq s6, v0, 0x133bc | goto label_56;
| }
| label_17:
0x00012f18 addiu v1, zero, 5 | v1 = 5;
| if (s6 != 0) {
0x00012f1c bnez s6, 0x13580 | goto label_57;
| }
0x00012f20 lhu v0, (s0) | v0 = *(s0);
| label_48:
0x00012f24 andi v0, v0, 0x200 | v0 &= aav.0x00000200;
0x00012f28 addiu v0, zero, 0x41 | v0 = 0x41;
| if (v0 != 0) {
0x00012f2c bnez v0, 0x13b64 | goto label_58;
| }
0x00012f30 lw s6, 0x60(sp) | s6 = *(var_60h);
0x00012f34 lw v1, 0x64(sp) | v1 = *(var_64h);
| if (s6 != 0) {
0x00012f38 bnez s6, 0x13614 | goto label_59;
| }
0x00012f3c addiu v0, zero, 0x46 | v0 = 0x46;
0x00012f40 addiu fp, zero, 4 | fp = 4;
| if (v1 == 0) {
0x00012f44 movn fp, v0, v1 | fp = v0;
| }
0x00012f48 sw fp, 0x40(sp) | *(var_40h_2) = fp;
| label_13:
0x00012f4c lw t9, -0x7e58(gp) | t9 = sym.get_pubkeyblock;
0x00012f50 lw a0, 0x44(sp) | a0 = *(var_44h_2);
0x00012f54 bal 0xb484 | sym_get_pubkeyblock ();
0x00012f58 lw gp, 0x30(sp) | gp = *(var_30h);
0x00012f5c lw v1, 8(s0) | v1 = *((s0 + 2));
0x00012f60 addiu a0, sp, 0x8c | a0 = sp + 0x8c;
0x00012f64 sw v1, 0x14(sp) | *(var_14h) = v1;
0x00012f68 lw a3, -0x7fdc(gp) | a3 = *(gp);
0x00012f6c lw v1, 4(s0) | v1 = *((s0 + 1));
0x00012f70 lw t9, -0x794c(gp) | t9 = sym.imp.__sprintf_chk
0x00012f74 sw a0, 0x3c(sp) | *(var_3ch_2) = a0;
0x00012f78 move s5, v0 | s5 = v0;
0x00012f7c sw v1, 0x10(sp) | *(var_10h_2) = v1;
| /* str._08lX_08lX__uncertain__ */
0x00012f80 addiu a3, a3, 0x4254 | a3 += 0x4254;
0x00012f84 addiu a2, zero, 0x32 | a2 = 0x32;
0x00012f88 addiu a1, zero, 1 | a1 = 1;
0x00012f8c jalr t9 | t9 ();
0x00012f90 lw gp, 0x30(sp) | gp = *(var_30h);
| if (s5 == 0) {
0x00012f94 beqz s5, 0x13cb0 | goto label_60;
| }
0x00012f98 lw v0, -0x7fdc(gp) | v0 = *(gp);
0x00012f9c move s7, s5 | s7 = s5;
0x00012fa0 sw v0, 0x50(sp) | *(var_50h) = v0;
0x00012fa4 lw v0, -0x7fdc(gp) | v0 = *(gp);
0x00012fa8 move s4, zero | s4 = 0;
| /* str.___s__n */
0x00012fac addiu v0, v0, 0x42bc | v0 += 0x42bc;
0x00012fb0 sw v0, 0x48(sp) | *(var_48h) = v0;
0x00012fb4 lw v0, -0x7fdc(gp) | v0 = *(gp);
0x00012fb8 addiu fp, zero, 6 | fp = 6;
| /* str.Good_signature_from___s_ */
0x00012fbc addiu v0, v0, 0x42a0 | v0 += 0x42a0;
0x00012fc0 sw v0, 0x4c(sp) | *(var_4ch) = v0;
0x00012fc4 lw v0, -0x7fdc(gp) | v0 = *(gp);
| /* str.BAD_signature_from___s_ */
0x00012fc8 addiu v0, v0, 0x426c | v0 += 0x426c;
0x00012fcc sw v0, 0x54(sp) | *(var_54h) = v0;
0x00012fd0 b 0x13028 |
| while (v0 == fp) {
0x00012fd4 lw s7, (s7) | s7 = *(s7);
| if (v0 != a1) {
0x00012fd8 bnel v0, a1, 0x13020 |
0x00012fdc lw a1, 4(a0) | a1 = *((a0 + 1));
0x00012fe0 lw v0, 0x40(a1) | v0 = *((a1 + 16));
| if (v0 == 0) {
0x00012fe4 beql v0, zero, 0x13020 | goto label_61;
| }
0x00012fe8 lw s7, (s7) | s7 = *(s7);
0x00012fec lw v0, 0x30(a1) | v0 = *((a1 + 12));
0x00012ff0 lw s7, (s7) | s7 = *(s7);
| if (v0 == 0) {
0x00012ff4 bnel v0, zero, 0x13020 | goto label_61;
| }
0x00012ff8 lw v0, 0x34(a1) | v0 = *((a1 + 13));
0x00012ffc lw s7, (s7) | s7 = *(s7);
| if (v0 == 0) {
0x00013000 bnel v0, zero, 0x13020 | goto label_61;
| }
0x00013004 lw v0, 0x2c(a1) | v0 = *((a1 + 11));
| if (v0 == 0) {
0x00013008 beql v0, zero, 0x13020 | goto label_61;
| }
0x0001300c lw s7, (s7) | s7 = *(s7);
0x00013010 lw v0, 0x10(a1) | v0 = *((a1 + 4));
| if (v0 == 0) {
0x00013014 beqz v0, 0x1367c | goto label_62;
| }
0x00013018 nop |
| label_18:
0x0001301c lw s7, (s7) | s7 = *(s7);
| }
| if (s7 == 0) {
| label_61:
0x00013020 beqz s7, 0x13044 | goto label_63;
| }
0x00013024 nop |
| label_0:
0x00013028 lw a0, 4(s7) | a0 = *((s7 + 1));
0x0001302c lw v0, (a0) | v0 = *(a0);
0x00013030 addiu a1, zero, 0xd | a1 = 0xd;
0x00013034 bnel v0, fp, 0x12fd4 |
| }
0x00013038 lw s7, (s7) | s7 = *(s7);
0x0001303c lw s4, 4(a0) | s4 = *((a0 + 1));
| if (s7 != 0) {
0x00013040 bnez s7, 0x13028 | goto label_0;
| }
| if (s1 == 0) {
| label_63:
0x00013044 beql s1, zero, 0x138e4 | goto label_64;
| }
0x00013048 move s1, s5 | s1 = s5;
0x0001304c lw t9, -0x7ea4(gp) | t9 = sym.release_kbnode;
| if (s6 != 0) {
0x00013050 bnez s6, 0x13b28 | goto label_65;
| }
0x00013054 lw v0, 0x154(s2) | v0 = *(s2);
0x00013058 andi v0, v0, 0x200 | v0 &= aav.0x00000200;
0x0001305c lw v0, -0x7fdc(gp) | v0 = *(gp);
| if (v0 != 0) {
0x00013060 bnez v0, 0x1379c | goto label_66;
| }
0x00013064 lw fp, -0x7fdc(gp) | fp = *(gp);
0x00013068 sw v0, 0x3c(sp) | *(var_3ch_2) = v0;
| /* str.revoked */
0x0001306c addiu v0, fp, 0x4128 | v0 = fp + 0x4128;
0x00013070 sw v0, 0x40(sp) | *(var_40h_2) = v0;
0x00013074 lw v0, -0x7fdc(gp) | v0 = *(gp);
0x00013078 lw s6, -0x7fdc(gp) | s6 = *(gp);
| /* str.expired */
0x0001307c addiu v0, v0, 0x4130 | v0 += 0x4130;
0x00013080 move s7, s5 | s7 = s5;
0x00013084 addiu s1, zero, 0xd | s1 = 0xd;
| /* str.___s__n */
0x00013088 addiu s6, s6, 0x42bc | s6 += 0x42bc;
0x0001308c sw v0, 0x48(sp) | *(var_48h) = v0;
0x00013090 b 0x1316c | goto label_67;
| label_2:
0x00013094 lw t9, -0x7cac(gp) | t9 = sym.dump_attribs;
| if (a1 != 0) {
0x00013098 beqz a1, 0x13160 |
| label_4:
0x0001309c move a2, zero | a2 = 0;
0x000130a0 move a1, s4 | a1 = s4;
0x000130a4 bal 0x26124 | sym_dump_attribs ();
0x000130a8 lw v0, 0x154(s2) | v0 = *(s2);
0x000130ac andi v0, v0, 1 | v0 &= 1;
0x000130b0 lw gp, 0x30(sp) | gp = *(var_30h);
| if (v0 != 0) {
0x000130b4 bnez v0, 0x13e1c | goto label_68;
| }
0x000130b8 lw v0, 4(s7) | v0 = *((s7 + 1));
0x000130bc lw a0, 4(v0) | a0 = *((v0 + 1));
| label_43:
0x000130c0 lw a1, 4(a0) | a1 = *((a0 + 1));
| label_3:
0x000130c4 lw t9, -0x7e2c(gp) | t9 = sym.utf8_to_native;
0x000130c8 move a2, zero | a2 = 0;
0x000130cc addiu a0, a0, 0x4c | a0 += 0x4c;
0x000130d0 jalr t9 | t9 ();
0x000130d4 lw gp, 0x30(sp) | gp = *(var_30h);
0x000130d8 move a1, v0 | a1 = v0;
0x000130dc move fp, v0 | fp = v0;
0x000130e0 lw v0, 0x3c(sp) | v0 = *(var_3ch_2);
0x000130e4 lw t9, -0x7f30(gp) | t9 = sym.g10_log_info;
0x000130e8 addiu a0, v0, 0x42d0 | a0 = v0 + 0x42d0;
0x000130ec jalr t9 | t9 ();
0x000130f0 lw gp, 0x30(sp) | gp = *(var_30h);
0x000130f4 lw t9, -0x7f24(gp) | t9 = sym.xfree;
0x000130f8 move a0, fp | a0 = fp;
0x000130fc jalr t9 | t9 ();
0x00013100 lw v0, 0x154(s2) | v0 = *(s2);
0x00013104 andi v0, v0, 0x20 | v0 &= 0x20;
0x00013108 lw gp, 0x30(sp) | gp = *(var_30h);
| if (v0 == 0) {
0x0001310c beqz v0, 0x13cf4 | goto label_69;
| }
0x00013110 lw v0, 4(s7) | v0 = *((s7 + 1));
0x00013114 lw a1, 4(v0) | a1 = *((v0 + 1));
0x00013118 lw v0, 0x30(a1) | v0 = *((a1 + 12));
0x0001311c lw fp, 0x40(sp) | fp = *(var_40h_2);
| if (v0 == 0) {
0x00013120 bnez v0, 0x13134 |
0x00013124 lw v0, 0x34(a1) | v0 = *((a1 + 13));
0x00013128 lw t9, -0x7ca8(gp) | t9 = sym.get_validity;
| if (v0 == 0) {
0x0001312c beqz v0, 0x13e4c | goto label_70;
| }
0x00013130 lw fp, 0x48(sp) | fp = *(var_48h);
| }
| label_44:
0x00013134 lw t9, -0x7d40(gp) | t9 = sym.log_stream;
0x00013138 jalr t9 | t9 ();
0x0001313c nop |
0x00013140 lw gp, 0x30(sp) | gp = *(var_30h);
0x00013144 move a3, fp | a3 = fp;
0x00013148 move a2, s6 | a2 = s6;
0x0001314c lw t9, -0x7920(gp) | t9 = sym.imp.__fprintf_chk;
0x00013150 addiu a1, zero, 1 | a1 = 1;
0x00013154 move a0, v0 | a0 = v0;
0x00013158 jalr t9 | t9 ();
0x0001315c lw gp, 0x30(sp) | gp = *(var_30h);
| }
| label_40:
0x00013160 lw s7, (s7) | s7 = *(s7);
| do {
| label_1:
0x00013164 lw t9, -0x7ea4(gp) | t9 = sym.release_kbnode;
| if (s7 == 0) {
0x00013168 beqz s7, 0x1379c | goto label_66;
| }
| label_67:
0x0001316c lw v0, 4(s7) | v0 = *((s7 + 1));
0x00013170 lw a0, (v0) | a0 = *(v0);
0x00013174 lw s7, (s7) | s7 = *(s7);
0x00013178 bnel a0, s1, 0x13164 |
| } while (a0 == s1);
0x0001317c lw a0, 4(v0) | a0 = *((v0 + 1));
0x00013180 lw v0, 0x30(a0) | v0 = *((a0 + 12));
0x00013184 lw v0, 0x154(s2) | v0 = *(s2);
| if (v0 != 0) {
0x00013188 bnel v0, zero, 0x1319c |
0x0001318c lw v0, 0x34(a0) | v0 = *((a0 + 13));
| if (v0 == 0) {
0x00013190 beql v0, zero, 0x131ac | goto label_71;
| }
0x00013194 lw v0, 0x2c(a0) | v0 = *((a0 + 11));
0x00013198 lw v0, 0x154(s2) | v0 = *(s2);
| }
0x0001319c andi v0, v0, 0x40 | v0 &= 0x40;
| if (v0 == 0) {
0x000131a0 beql v0, zero, 0x13164 | goto label_1;
| }
0x000131a4 lw s7, (s7) | s7 = *(s7);
0x000131a8 lw v0, 0x2c(a0) | v0 = *((a0 + 11));
| label_71:
0x000131ac lw a1, 0x10(a0) | a1 = *((a0 + 4));
| if (v0 != 0) {
0x000131b0 bnez v0, 0x13094 | goto label_2;
| }
| if (a1 == 0) {
0x000131b4 beql a1, zero, 0x130c4 | goto label_3;
| }
0x000131b8 lw a1, 4(a0) | a1 = *((a0 + 1));
0x000131bc lw t9, -0x7cac(gp) | t9 = sym.dump_attribs;
0x000131c0 b 0x1309c | goto label_4;
| label_8:
0x000131c4 addiu a2, zero, 0x3f | a2 = 0x3f;
| label_9:
0x000131c8 addiu v1, zero, 3 | v1 = 3;
| if (v1 != a2) {
0x000131cc bne v1, a2, 0x1323c | goto label_11;
| }
0x000131d0 lw a0, 4(a0) | a0 = *((a0 + 1));
0x000131d4 lw a0, (a0) | a0 = *(a0);
0x000131d8 lw a0, -0x7fdc(gp) | a0 = *(gp);
| if (a0 == v1) {
0x000131dc bnel a0, v1, 0x13240 | goto label_7;
| }
0x000131e0 lw v0, (v0) | v0 = *(v0);
0x000131e4 addiu v1, zero, 2 | v1 = 2;
| if (v0 == 0) {
0x000131e8 beqz v0, 0x1323c | goto label_11;
| }
0x000131ec lw a0, 4(v0) | a0 = *((v0 + 1));
0x000131f0 lw a0, (a0) | a0 = *(a0);
0x000131f4 move v1, zero | v1 = 0;
| if (a0 != v1) {
0x000131f8 bne a0, v1, 0x1323c | goto label_11;
| }
0x000131fc addiu a2, zero, 2 | a2 = 2;
0x00013200 b 0x13214 |
| while (v0 != 0) {
0x00013204 lw a0, 4(v0) | a0 = *((v0 + 1));
0x00013208 lw a0, (a0) | a0 = *(a0);
| if (a0 != a2) {
0x0001320c bne a0, a2, 0x13220 | goto label_72;
| }
0x00013210 nop |
0x00013214 lw v0, (v0) | v0 = *(v0);
0x00013218 addiu v1, v1, 1 | v1++;
0x0001321c bnez v0, 0x13204 |
| }
| label_72:
0x00013220 lw t9, -0x7d50(gp) | t9 = sym.pubkey_algo_to_string;
| if (v1 == a1) {
0x00013224 beq v1, a1, 0x12e54 | goto label_5;
| }
0x00013228 lw a0, -0x7fdc(gp) | a0 = *(gp);
0x0001322c lw t9, -0x7f30(gp) | t9 = sym.g10_log_info;
| /* str.number_of_one_pass_packets_does_not_match_number_of_signature_packets_n */
0x00013230 addiu a0, a0, 0x4170 | a0 += 0x4170;
0x00013234 jalr t9 | t9 ();
0x00013238 lw gp, 0x30(sp) | gp = *(var_30h);
| label_11:
0x0001323c lw a0, -0x7fdc(gp) | a0 = *(gp);
| label_7:
0x00013240 lw t9, -0x7f84(gp) | t9 = sym.g10_log_error;
| /* str.cant_handle_this_ambiguous_signature_data_n */
| label_53:
0x00013244 addiu a0, a0, 0x41b8 | a0 += 0x41b8;
0x00013248 jalr t9 | t9 ();
0x0001324c lw gp, 0x30(sp) | gp = *(var_30h);
| label_6:
0x00013250 lw a0, 0x16c(sp) | a0 = *(var_16ch);
0x00013254 lw v1, (s3) | v1 = *(s3);
0x00013258 move v0, s1 | v0 = s1;
| if (a0 != v1) {
0x0001325c bne a0, v1, 0x140b8 | goto label_73;
| }
0x00013260 lw ra, 0x194(sp) | ra = *(var_194h);
0x00013264 lw fp, 0x190(sp) | fp = *(var_190h);
0x00013268 lw s7, 0x18c(sp) | s7 = *(var_18ch);
0x0001326c lw s6, 0x188(sp) | s6 = *(var_188h);
0x00013270 lw s5, 0x184(sp) | s5 = *(var_184h);
0x00013274 lw s4, 0x180(sp) | s4 = *(var_180h);
0x00013278 lw s3, 0x17c(sp) | s3 = *(var_17ch);
0x0001327c lw s2, 0x178(sp) | s2 = *(var_178h);
0x00013280 lw s1, 0x174(sp) | s1 = *(var_174h);
0x00013284 lw s0, 0x170(sp) | s0 = *(var_170h);
0x00013288 addiu sp, sp, 0x198 |
0x0001328c jr ra | return v0;
| label_51:
0x00013290 lw v0, (v0) | v0 = *(v0);
0x00013294 lw t9, -0x7d50(gp) | t9 = sym.pubkey_algo_to_string;
| if (v0 == 0) {
0x00013298 beqz v0, 0x12e54 | goto label_5;
| }
0x0001329c lw a0, 4(v0) | a0 = *((v0 + 1));
0x000132a0 lw v1, (a0) | v1 = *(a0);
0x000132a4 addiu a1, zero, 2 | a1 = 2;
| if (v1 != a1) {
0x000132a8 bne v1, a1, 0x13338 | goto label_74;
| }
0x000132ac lw v0, (v0) | v0 = *(v0);
0x000132b0 b 0x132c4 |
| while (v0 == 0) {
0x000132b4 lw v1, (a0) | v1 = *(a0);
0x000132b8 addiu a1, zero, 0x3f | a1 = 0x3f;
| if (v1 == a1) {
0x000132bc bnel v1, a1, 0x1333c | goto label_75;
| }
0x000132c0 lw v0, (v0) | v0 = *(v0);
0x000132c4 lw a0, 4(v0) | a0 = *((v0 + 1));
0x000132c8 bnel v0, zero, 0x132b4 |
| }
0x000132cc lw t9, -0x7d50(gp) | t9 = sym.pubkey_algo_to_string;
0x000132d0 b 0x12e54 | goto label_5;
| label_49:
0x000132d4 lw a0, -0x7fdc(gp) | a0 = *(gp);
0x000132d8 lw t9, -0x7f30(gp) | t9 = sym.g10_log_info;
| /* str.signature_verification_suppressed_n */
0x000132dc addiu a0, a0, 0x414c | a0 += 0x414c;
0x000132e0 jalr t9 | t9 ();
0x000132e4 move s1, zero | s1 = 0;
0x000132e8 lw gp, 0x30(sp) | gp = *(var_30h);
0x000132ec b 0x13250 | goto label_6;
| label_52:
0x000132f0 lw v0, (v0) | v0 = *(v0);
0x000132f4 lw a0, -0x7fdc(gp) | a0 = *(gp);
| if (v0 == 0) {
0x000132f8 beqz v0, 0x13240 | goto label_7;
| }
0x000132fc lw a0, 4(v0) | a0 = *((v0 + 1));
0x00013300 lw v1, (a0) | v1 = *(a0);
0x00013304 addiu a1, zero, 1 | a1 = 1;
| if (v1 != a1) {
0x00013308 bne v1, a1, 0x131c4 | goto label_8;
| }
0x0001330c addiu a2, zero, 4 | a2 = 4;
0x00013310 b 0x13324 | goto label_76;
| label_10:
0x00013314 lw a0, 4(v0) | a0 = *((v0 + 1));
0x00013318 lw v1, (a0) | v1 = *(a0);
0x0001331c addiu a2, zero, 0x3f | a2 = 0x3f;
| if (v1 == a2) {
0x00013320 bnel v1, a2, 0x131c8 | goto label_9;
| }
| label_76:
0x00013324 lw v0, (v0) | v0 = *(v0);
0x00013328 addiu a1, a1, 1 | a1++;
| if (v0 != 0) {
0x0001332c bnez v0, 0x13314 | goto label_10;
| }
0x00013330 lw a0, -0x7fdc(gp) | a0 = *(gp);
0x00013334 b 0x13240 | goto label_7;
| label_74:
0x00013338 addiu a1, zero, 0x3f | a1 = 0x3f;
| label_75:
0x0001333c addiu v1, zero, 3 | v1 = 3;
| if (v1 != a1) {
0x00013340 bne v1, a1, 0x1323c | goto label_11;
| }
0x00013344 lw a0, 4(a0) | a0 = *((a0 + 1));
0x00013348 lw a0, (a0) | a0 = *(a0);
0x0001334c lw a0, -0x7fdc(gp) | a0 = *(gp);
| if (a0 == v1) {
0x00013350 bnel a0, v1, 0x13240 | goto label_7;
| }
0x00013354 lw v0, (v0) | v0 = *(v0);
0x00013358 lw t9, -0x7d50(gp) | t9 = sym.pubkey_algo_to_string;
| if (v0 == 0) {
0x0001335c beqz v0, 0x12e54 | goto label_5;
| }
0x00013360 lw a0, -0x7fdc(gp) | a0 = *(gp);
0x00013364 b 0x13240 | goto label_7;
| label_54:
0x00013368 lw t9, -0x7cb0(gp) | t9 = sym.asctimestamp;
0x0001336c lw a0, 0xc(s0) | a0 = *((s0 + 3));
0x00013370 jalr t9 | t9 ();
0x00013374 move s7, v0 | s7 = v0;
0x00013378 lw gp, 0x30(sp) | gp = *(var_30h);
| if (s6 == 0) {
0x0001337c beqz s6, 0x13c10 | goto label_77;
| }
| label_34:
0x00013380 lw t9, -0x7e48(gp) | t9 = sym.keystr;
0x00013384 addiu v0, s0, 4 | v0 = s0 + 4;
0x00013388 move a0, v0 | a0 = v0;
0x0001338c sw v0, 0x44(sp) | *(var_44h_2) = v0;
0x00013390 bal 0x19920 | sym_keystr ();
0x00013394 lw gp, 0x30(sp) | gp = *(var_30h);
0x00013398 move a3, v0 | a3 = v0;
0x0001339c move a2, s6 | a2 = s6;
0x000133a0 lw a0, -0x7fdc(gp) | a0 = *(gp);
0x000133a4 lw t9, -0x7f30(gp) | t9 = sym.g10_log_info;
0x000133a8 move a1, s7 | a1 = s7;
| /* str.Signature_made__s_using__s_key_ID__s_n */
0x000133ac addiu a0, a0, 0x4218 | a0 += 0x4218;
0x000133b0 jalr t9 | t9 ();
0x000133b4 lw gp, 0x30(sp) | gp = *(var_30h);
0x000133b8 b 0x12ed8 | goto label_12;
| label_56:
0x000133bc lhu v0, (s0) | v0 = *(s0);
0x000133c0 andi v0, v0, 0x100 | v0 &= aav.0x00000100;
| if (v0 == 0) {
0x000133c4 beql v0, zero, 0x13498 | goto label_78;
| }
0x000133c8 lw v0, 0x130(s2) | v0 = *(s2);
0x000133cc addiu v0, sp, 0x6c | v0 = sp + 0x6c;
0x000133d0 sw v0, 0x40(sp) | *(var_40h_2) = v0;
0x000133d4 lw s7, -0x7fdc(gp) | s7 = *(gp);
0x000133d8 lw v0, -0x7ca4(gp) | v0 = *(gp);
0x000133dc sw zero, 0x68(sp) | *(var_68h) = 0;
0x000133e0 addiu fp, sp, 0x68 | fp = sp + 0x68;
| /* str.Key_available_at:_ */
0x000133e4 addiu s7, s7, 0x4240 | s7 += 0x4240;
0x000133e8 sw v0, 0x54(sp) | *(var_54h) = v0;
0x000133ec b 0x13460 |
| while (v0 != 0) {
0x000133f0 lw t9, -0x7f30(gp) | t9 = sym.g10_log_info;
0x000133f4 sw a1, 0x3c(sp) | *(var_3ch_2) = a1;
0x000133f8 move a0, s7 | a0 = s7;
0x000133fc jalr t9 | t9 ();
0x00013400 lw gp, 0x30(sp) | gp = *(var_30h);
0x00013404 lw t9, -0x7d40(gp) | t9 = sym.log_stream;
0x00013408 jalr t9 | t9 ();
0x0001340c nop |
0x00013410 lw gp, 0x30(sp) | gp = *(var_30h);
0x00013414 lw a2, 0x6c(sp) | a2 = *(var_6ch);
0x00013418 lw a1, 0x3c(sp) | a1 = *(var_3ch_2);
0x0001341c lw t9, -0x7d04(gp) | t9 = sym.print_utf8_string;
0x00013420 move a0, v0 | a0 = v0;
0x00013424 jalr t9 | t9 ();
0x00013428 lw gp, 0x30(sp) | gp = *(var_30h);
0x0001342c lw t9, -0x7d40(gp) | t9 = sym.log_stream;
0x00013430 jalr t9 | t9 ();
0x00013434 nop |
0x00013438 lw gp, 0x30(sp) | gp = *(var_30h);
0x0001343c move a1, v0 | a1 = v0;
0x00013440 lw t9, -0x7840(gp) | t9 = sym.imp._IO_putc;
0x00013444 addiu a0, zero, 0xa | a0 = 0xa;
0x00013448 jalr t9 | t9 ();
0x0001344c lw v0, 0x130(s2) | v0 = *(s2);
0x00013450 addiu v1, zero, 0x18 | v1 = 0x18;
0x00013454 andi v0, v0, 0x18 | v0 &= 0x18;
0x00013458 lw gp, 0x30(sp) | gp = *(var_30h);
| if (v0 == v1) {
0x0001345c beq v0, v1, 0x13ba4 | goto label_79;
| }
| label_33:
0x00013460 lw t9, -0x7f34(gp) | t9 = sym.enum_sig_subpkt;
0x00013464 lw a0, 0x2c(s0) | a0 = *((s0 + 11));
0x00013468 lw a2, 0x40(sp) | a2 = *(var_40h_2);
0x0001346c addiu a1, zero, 0x18 | a1 = 0x18;
0x00013470 sw zero, 0x10(sp) | *(var_10h_2) = 0;
0x00013474 move a3, fp | a3 = fp;
0x00013478 bal 0x1c758 | sym_enum_sig_subpkt ();
0x0001347c move a1, v0 | a1 = v0;
0x00013480 lw gp, 0x30(sp) | gp = *(var_30h);
0x00013484 bnez v0, 0x133f0 |
| }
0x00013488 addiu v0, zero, 9 | v0 = 9;
0x0001348c addiu v1, zero, 5 | v1 = 5;
| if (s6 == v0) {
0x00013490 bne s6, v0, 0x13580 |
0x00013494 lw v0, 0x130(s2) | v0 = *(s2);
| label_78:
0x00013498 addiu v1, zero, 0x28 | v1 = 0x28;
0x0001349c andi v0, v0, 0x28 | v0 &= 0x28;
0x000134a0 lw t9, -0x7f10(gp) | t9 = *(gp);
| if (v0 == v1) {
0x000134a4 beq v0, v1, 0x13d5c | goto label_80;
| }
| label_42:
0x000134a8 lw a1, 0x12c(s2) | a1 = *(s2);
0x000134ac addiu v0, zero, 9 | v0 = 9;
| if (a1 != 0) {
0x000134b0 beqz a1, 0x134c8 |
0x000134b4 lw v0, 0x130(s2) | v0 = *(s2);
0x000134b8 andi v0, v0, 8 | v0 &= 8;
0x000134bc lw s6, -0x7ca4(gp) | s6 = *(gp);
| if (v0 != 0) {
0x000134c0 bnez v0, 0x13624 | goto label_81;
| }
| label_16:
0x000134c4 addiu v0, zero, 9 | v0 = 9;
| }
0x000134c8 sw v0, 0x28(sp) | *(var_28h_2) = v0;
0x000134cc lw v0, 0xc(s0) | v0 = *((s0 + 3));
0x000134d0 lw a3, -0x7fdc(gp) | a3 = *(gp);
0x000134d4 sw v0, 0x24(sp) | *(var_24h_2) = v0;
0x000134d8 lbu v0, 0x15(s0) | v0 = *((s0 + 21));
0x000134dc lw t9, -0x794c(gp) | t9 = sym.imp.__sprintf_chk
0x000134e0 sw v0, 0x20(sp) | *(var_20h) = v0;
0x000134e4 lbu v0, 0x17(s0) | v0 = *((s0 + 23));
0x000134e8 addiu s1, sp, 0xc0 | s1 = sp + 0xc0;
0x000134ec sw v0, 0x1c(sp) | *(var_1ch) = v0;
0x000134f0 lbu v0, 0x16(s0) | v0 = *((s0 + 22));
| /* str._08lX_08lX__d__d__02x__lu__d */
0x000134f4 addiu a3, a3, 0x4360 | a3 += 0x4360;
0x000134f8 sw v0, 0x18(sp) | *(var_18h_2) = v0;
0x000134fc lw v0, 8(s0) | v0 = *((s0 + 2));
0x00013500 addiu a2, zero, 0x32 | a2 = 0x32;
0x00013504 sw v0, 0x14(sp) | *(var_14h) = v0;
0x00013508 lw v0, 4(s0) | v0 = *((s0 + 1));
0x0001350c addiu a1, zero, 1 | a1 = 1;
0x00013510 move a0, s1 | a0 = s1;
0x00013514 sw v0, 0x10(sp) | *(var_10h_2) = v0;
0x00013518 jalr t9 | t9 ();
0x0001351c lw gp, 0x30(sp) | gp = *(var_30h);
0x00013520 move a1, s1 | a1 = s1;
0x00013524 lw t9, -0x7d80(gp) | t9 = sym.write_status_text;
0x00013528 addiu a0, zero, 6 | a0 = 6;
0x0001352c bal 0x21b8c | sym_write_status_text ();
0x00013530 lw gp, 0x30(sp) | gp = *(var_30h);
| label_14:
0x00013534 lw t9, -0x7d80(gp) | t9 = sym.write_status_text;
0x00013538 move a1, s1 | a1 = s1;
0x0001353c addiu a0, zero, 0x1a | a0 = 0x1a;
0x00013540 sb zero, 0xd0(sp) | *(var_d0h) = 0;
0x00013544 bal 0x21b8c | sym_write_status_text ();
0x00013548 lw gp, 0x30(sp) | gp = *(var_30h);
0x0001354c addiu s6, zero, 9 | s6 = 9;
0x00013550 lw t9, -0x7f88(gp) | t9 = sym.g10_errstr;
| label_15:
0x00013554 move a0, s6 | a0 = s6;
0x00013558 jalr t9 | t9 ();
0x0001355c lw gp, 0x30(sp) | gp = *(var_30h);
0x00013560 move a1, v0 | a1 = v0;
0x00013564 move s1, s6 | s1 = s6;
0x00013568 lw a0, -0x7fdc(gp) | a0 = *(gp);
0x0001356c lw t9, -0x7f84(gp) | t9 = sym.g10_log_error;
| /* str.Cant_check_signature:__s_n */
0x00013570 addiu a0, a0, 0x4380 | a0 += 0x4380;
0x00013574 jalr t9 | t9 ();
0x00013578 lw gp, 0x30(sp) | gp = *(var_30h);
0x0001357c b 0x13250 | goto label_6;
| }
| label_57:
0x00013580 addiu v0, zero, 8 | v0 = 8;
0x00013584 sw v1, 0x40(sp) | *(var_40h_2) = v1;
| if (s6 == v0) {
0x00013588 beq s6, v0, 0x12f4c | goto label_13;
| }
0x0001358c sw s6, 0x28(sp) | *(var_28h_2) = s6;
0x00013590 lw v0, 0xc(s0) | v0 = *((s0 + 3));
0x00013594 lw a3, -0x7fdc(gp) | a3 = *(gp);
0x00013598 sw v0, 0x24(sp) | *(var_24h_2) = v0;
0x0001359c lbu v0, 0x15(s0) | v0 = *((s0 + 21));
0x000135a0 lw t9, -0x794c(gp) | t9 = sym.imp.__sprintf_chk
0x000135a4 sw v0, 0x20(sp) | *(var_20h) = v0;
0x000135a8 lbu v0, 0x17(s0) | v0 = *((s0 + 23));
0x000135ac addiu s1, sp, 0xc0 | s1 = sp + 0xc0;
0x000135b0 sw v0, 0x1c(sp) | *(var_1ch) = v0;
0x000135b4 lbu v0, 0x16(s0) | v0 = *((s0 + 22));
| /* str._08lX_08lX__d__d__02x__lu__d */
0x000135b8 addiu a3, a3, 0x4360 | a3 += 0x4360;
0x000135bc sw v0, 0x18(sp) | *(var_18h_2) = v0;
0x000135c0 lw v0, 8(s0) | v0 = *((s0 + 2));
0x000135c4 addiu a2, zero, 0x32 | a2 = 0x32;
0x000135c8 sw v0, 0x14(sp) | *(var_14h) = v0;
0x000135cc lw v0, 4(s0) | v0 = *((s0 + 1));
0x000135d0 addiu a1, zero, 1 | a1 = 1;
0x000135d4 move a0, s1 | a0 = s1;
0x000135d8 sw v0, 0x10(sp) | *(var_10h_2) = v0;
0x000135dc jalr t9 | t9 ();
0x000135e0 lw gp, 0x30(sp) | gp = *(var_30h);
0x000135e4 move a1, s1 | a1 = s1;
0x000135e8 lw t9, -0x7d80(gp) | t9 = sym.write_status_text;
0x000135ec addiu a0, zero, 6 | a0 = 6;
0x000135f0 bal 0x21b8c | sym_write_status_text ();
0x000135f4 addiu v0, zero, 9 | v0 = 9;
0x000135f8 lw gp, 0x30(sp) | gp = *(var_30h);
| if (s6 == v0) {
0x000135fc beq s6, v0, 0x13534 | goto label_14;
| }
0x00013600 addiu v0, zero, 0x34 | v0 = 0x34;
0x00013604 lw t9, -0x7f88(gp) | t9 = sym.g10_errstr;
| if (s6 != v0) {
0x00013608 bne s6, v0, 0x13554 | goto label_15;
| }
0x0001360c move s1, s6 | s1 = s6;
0x00013610 b 0x13250 | goto label_6;
| label_59:
0x00013614 addiu v0, zero, 0x42 | v0 = 0x42;
0x00013618 move s6, zero | s6 = 0;
0x0001361c sw v0, 0x40(sp) | *(var_40h_2) = v0;
0x00013620 b 0x12f4c | goto label_13;
| label_81:
0x00013624 lw t9, -0x7ca0(gp) | t9 = sym.keyserver_import_keyid;
0x00013628 lw a0, 0x44(sp) | a0 = *(var_44h_2);
0x0001362c lw v0, (s6) | v0 = *(s6);
0x00013630 addiu v0, v0, 1 | v0++;
0x00013634 sw v0, (s6) | *(s6) = v0;
0x00013638 bal 0x634c | sym_keyserver_import_keyid ();
0x0001363c lw v1, (s6) | v1 = *(s6);
0x00013640 lw gp, 0x30(sp) | gp = *(var_30h);
0x00013644 addiu v1, v1, -1 | v1 += -1;
0x00013648 sw v1, (s6) | *(s6) = v1;
| if (v0 != 0) {
0x0001364c bnez v0, 0x134c4 | goto label_16;
| }
0x00013650 lw v0, 0x50(sp) | v0 = *(var_50h);
0x00013654 lw a3, 0x4c(sp) | a3 = *(var_4ch);
0x00013658 lw t9, 0x48(sp) | t9 = *(var_48h);
0x0001365c sw v0, 0x10(sp) | *(var_10h_2) = v0;
0x00013660 move a2, zero | a2 = 0;
0x00013664 move a1, s4 | a1 = s4;
0x00013668 move a0, s5 | a0 = s5;
0x0001366c jalr t9 | t9 ();
0x00013670 move s6, v0 | s6 = v0;
0x00013674 lw gp, 0x30(sp) | gp = *(var_30h);
0x00013678 b 0x12f18 | goto label_17;
| label_62:
0x0001367c lw t9, -0x7ca8(gp) | t9 = sym.get_validity;
| if (s4 == 0) {
0x00013680 beqz s4, 0x140e8 | goto label_82;
| }
0x00013684 move a0, s4 | a0 = s4;
0x00013688 bal 0x631c | sym_get_validity ();
0x0001368c sb zero, 0x9d(sp) | *(var_9dh) = 0;
0x00013690 lw a0, 4(s7) | a0 = *((s7 + 1));
0x00013694 lw gp, 0x30(sp) | gp = *(var_30h);
0x00013698 addiu t1, zero, -1 | t1 = -1;
0x0001369c lw a0, 4(a0) | a0 = *((a0 + 1));
0x000136a0 lw t9, -0x7c9c(gp) | t9 = sym.write_status_text_and_buffer;
0x000136a4 addiu a2, a0, 0x4c | a2 = a0 + 0x4c;
0x000136a8 lw a3, 4(a0) | a3 = *((a0 + 1));
0x000136ac lw a1, 0x3c(sp) | a1 = *(var_3ch_2);
0x000136b0 lw a0, 0x40(sp) | a0 = *(var_40h_2);
0x000136b4 sw t1, 0x10(sp) | *(var_10h_2) = t1;
0x000136b8 sw v0, 0x58(sp) | *(var_58h) = v0;
0x000136bc bal 0x22334 | sym_write_status_text_and_buffer ();
0x000136c0 lw v0, 4(s7) | v0 = *((s7 + 1));
0x000136c4 lw gp, 0x30(sp) | gp = *(var_30h);
0x000136c8 move a2, zero | a2 = 0;
0x000136cc lw v0, 4(v0) | v0 = *((v0 + 1));
0x000136d0 lw t9, -0x7e2c(gp) | t9 = sym.utf8_to_native;
0x000136d4 addiu a0, v0, 0x4c | a0 = v0 + 0x4c;
0x000136d8 lw a1, 4(v0) | a1 = *((v0 + 1));
0x000136dc jalr t9 | t9 ();
0x000136e0 lw gp, 0x30(sp) | gp = *(var_30h);
| if (s6 != 0) {
0x000136e4 bnez s6, 0x13b84 | goto label_83;
| }
0x000136e8 lhu a0, (s0) | a0 = *(s0);
0x000136ec lw t9, -0x7f30(gp) | t9 = sym.g10_log_info;
0x000136f0 andi a0, a0, 0x200 | a0 &= aav.0x00000200;
0x000136f4 move a1, v0 | a1 = v0;
0x000136f8 sw v0, 0x5c(sp) | *(var_5ch) = v0;
| if (a0 == 0) {
0x000136fc beqz a0, 0x13b70 | goto label_84;
| }
0x00013700 lw v0, 0x50(sp) | v0 = *(var_50h);
0x00013704 addiu a0, v0, 0x4284 | a0 = v0 + 0x4284;
0x00013708 jalr t9 | t9 ();
0x0001370c lw gp, 0x30(sp) | gp = *(var_30h);
0x00013710 lw v0, 0x5c(sp) | v0 = *(var_5ch);
| label_32:
0x00013714 lw t9, -0x7f24(gp) | t9 = sym.xfree;
0x00013718 move a0, v0 | a0 = v0;
0x0001371c jalr t9 | t9 ();
0x00013720 lw gp, 0x30(sp) | gp = *(var_30h);
0x00013724 lw v0, 0x154(s2) | v0 = *(s2);
0x00013728 andi v0, v0, 0x20 | v0 &= 0x20;
0x0001372c lw t9, -0x7d40(gp) | t9 = sym.log_stream;
| if (v0 == 0) {
0x00013730 beqz v0, 0x13ab0 | goto label_85;
| }
0x00013734 addiu s1, s1, 1 | s1++;
0x00013738 jalr t9 | t9 ();
0x0001373c lw gp, 0x30(sp) | gp = *(var_30h);
0x00013740 lw a0, 0x58(sp) | a0 = *(var_58h);
0x00013744 lw t9, -0x7c98(gp) | t9 = sym.trust_value_to_string;
0x00013748 sw v0, 0x58(sp) | *(var_58h) = v0;
0x0001374c bal 0x6324 | sym_trust_value_to_string ();
0x00013750 lw gp, 0x30(sp) | gp = *(var_30h);
0x00013754 lw t1, 0x58(sp) | t1 = *(var_58h);
0x00013758 lw a2, 0x48(sp) | a2 = *(var_48h);
0x0001375c lw t9, -0x7920(gp) | t9 = sym.imp.__fprintf_chk;
0x00013760 move a3, v0 | a3 = v0;
0x00013764 addiu a1, zero, 1 | a1 = 1;
0x00013768 move a0, t1 | a0 = t1;
0x0001376c jalr t9 | t9 ();
0x00013770 lw gp, 0x30(sp) | gp = *(var_30h);
0x00013774 b 0x1301c | goto label_18;
| label_20:
0x00013778 jalr t9 | t9 ();
0x0001377c nop |
0x00013780 lw gp, 0x30(sp) | gp = *(var_30h);
0x00013784 move a1, v0 | a1 = v0;
0x00013788 lw t9, -0x7904(gp) | t9 = sym.imp.fputc;
0x0001378c addiu a0, zero, 0xa | a0 = 0xa;
0x00013790 jalr t9 | t9 ();
0x00013794 lw gp, 0x30(sp) | gp = *(var_30h);
0x00013798 lw t9, -0x7ea4(gp) | t9 = sym.release_kbnode;
| label_66:
0x0001379c move a0, s5 | a0 = s5;
0x000137a0 bal 0xfd24 | sym_release_kbnode ();
0x000137a4 lw gp, 0x30(sp) | gp = *(var_30h);
| label_21:
0x000137a8 lw v0, 0x154(s2) | v0 = *(s2);
0x000137ac andi v0, v0, 2 | v0 &= 2;
0x000137b0 lw t9, -0x7c94(gp) | t9 = sym.show_policy_url;
| if (v0 == 0) {
0x000137b4 beqz v0, 0x13b08 | goto label_86;
| }
0x000137b8 addiu a2, zero, 1 | a2 = 1;
0x000137bc move a1, zero | a1 = 0;
0x000137c0 move a0, s0 | a0 = s0;
0x000137c4 bal 0x259b8 | sym_show_policy_url ();
0x000137c8 lw gp, 0x30(sp) | gp = *(var_30h);
| label_29:
0x000137cc lw v0, 0x154(s2) | v0 = *(s2);
0x000137d0 andi v0, v0, 0x10 | v0 &= 0x10;
0x000137d4 lw t9, -0x7c90(gp) | t9 = sym.show_keyserver_url;
| if (v0 == 0) {
0x000137d8 beqz v0, 0x13af0 | goto label_87;
| }
0x000137dc addiu a2, zero, 1 | a2 = 1;
0x000137e0 move a1, zero | a1 = 0;
0x000137e4 move a0, s0 | a0 = s0;
0x000137e8 bal 0x25be0 | sym_show_keyserver_url ();
0x000137ec lw gp, 0x30(sp) | gp = *(var_30h);
| label_28:
0x000137f0 lw a3, 0x154(s2) | a3 = *(s2);
0x000137f4 andi v0, a3, 0xc | v0 = a3 & 0xc;
0x000137f8 lw t9, -0x7c8c(gp) | t9 = sym.show_notation;
| if (v0 == 0) {
0x000137fc beqz v0, 0x13ad4 | goto label_88;
| }
0x00013800 ext a3, a3, 2, 2 | __asm ("ext a3, a3, 2, 2");
0x00013804 addiu a2, zero, 1 | a2 = 1;
0x00013808 move a1, zero | a1 = 0;
0x0001380c move a0, s0 | a0 = s0;
0x00013810 bal 0x25e7c | sym_show_notation ();
0x00013814 lw gp, 0x30(sp) | gp = *(var_30h);
| label_27:
0x00013818 lw t9, -0x7d88(gp) | t9 = sym.is_status_enabled;
0x0001381c bal 0x21b70 | sym_is_status_enabled ();
0x00013820 nop |
0x00013824 lw gp, 0x30(sp) | gp = *(var_30h);
| if (v0 != 0) {
0x00013828 bnez v0, 0x13d1c | goto label_89;
| }
| label_41:
0x0001382c lw v0, 0x154(s2) | v0 = *(s2);
0x00013830 andi v0, v0, 0x80 | v0 &= 0x80;
0x00013834 lw t9, -0x7f10(gp) | t9 = *(gp);
| if (v0 != 0) {
0x00013838 bnez v0, 0x13c9c | goto label_90;
| }
| label_38:
0x0001383c lw t9, -0x7c88(gp) | t9 = sym.check_signatures_trust;
0x00013840 move a0, s0 | a0 = s0;
0x00013844 bal 0x630c | sym_check_signatures_trust ();
0x00013848 lw gp, 0x30(sp) | gp = *(var_30h);
0x0001384c move s1, v0 | s1 = v0;
| label_22:
0x00013850 lhu v0, (s0) | v0 = *(s0);
0x00013854 andi v0, v0, 0x200 | v0 &= aav.0x00000200;
0x00013858 lw a0, 0x10(s0) | a0 = *((s0 + 4));
| if (v0 != 0) {
0x0001385c bnez v0, 0x13a78 | goto label_91;
| }
0x00013860 lw t9, -0x7cb0(gp) | t9 = sym.asctimestamp;
| if (a0 != 0) {
0x00013864 bnez a0, 0x13b3c | goto label_92;
| }
| label_31:
0x00013868 lw v0, (s2) | v0 = *(s2);
| if (v0 != 0) {
0x0001386c beqz v0, 0x138c0 |
0x00013870 nop |
| label_25:
0x00013874 lbu v0, 0x15(s0) | v0 = *((s0 + 21));
0x00013878 lw s4, -0x7fdc(gp) | s4 = *(gp);
| if (v0 == 0) {
0x0001387c beqz v0, 0x13b20 | goto label_93;
| }
0x00013880 addiu v1, zero, 1 | v1 = 1;
0x00013884 lw s4, -0x7fdc(gp) | s4 = *(gp);
| if (v0 == v1) {
0x00013888 beq v0, v1, 0x13e14 | goto label_94;
| }
0x0001388c lw s4, -0x7fdc(gp) | s4 = *(gp);
| /* str.unknown */
0x00013890 addiu s4, s4, 0x3850 | s4 += 0x3850;
| label_30:
0x00013894 lw t9, -0x7c84(gp) | t9 = sym.digest_algo_to_string;
0x00013898 lbu a0, 0x17(s0) | a0 = *((s0 + 23));
0x0001389c bal 0x27db8 | sym_digest_algo_to_string ();
0x000138a0 lw gp, 0x30(sp) | gp = *(var_30h);
0x000138a4 move a2, v0 | a2 = v0;
0x000138a8 move a1, s4 | a1 = s4;
0x000138ac lw a0, -0x7fdc(gp) | a0 = *(gp);
0x000138b0 lw t9, -0x7f30(gp) | t9 = sym.g10_log_info;
| /* str._s_signature__digest_algorithm__s_n */
0x000138b4 addiu a0, a0, 0x433c | a0 += 0x433c;
0x000138b8 jalr t9 | t9 ();
0x000138bc lw gp, 0x30(sp) | gp = *(var_30h);
| }
0x000138c0 lw v1, -0x7fd0(gp) | v1 = *(gp);
| if (s1 == 0) {
0x000138c4 beqz s1, 0x13250 | goto label_6;
| }
| label_26:
0x000138c8 lw v0, 0x40(s2) | v0 = *((s2 + 16));
0x000138cc addiu a0, zero, 1 | a0 = 1;
0x000138d0 sw a0, (v1) | *(v1) = a0;
| if (v0 == 0) {
0x000138d4 beqz v0, 0x13250 | goto label_6;
| }
0x000138d8 lw t9, -0x7f90(gp) | t9 = sym.g10_exit;
0x000138dc bal 0x62b4 | sym_g10_exit ();
0x000138e0 nop |
| label_64:
0x000138e4 addiu a0, zero, 0xd | a0 = 0xd;
0x000138e8 b 0x138f4 |
| if (s1 == 0) {
| while (v1 == a0) {
| label_19:
0x000138ec beql s1, zero, 0x13a40 | goto label_95;
| }
0x000138f0 lw v1, 4(s5) | v1 = *((s5 + 1));
0x000138f4 lw v0, 4(s1) | v0 = *((s1 + 1));
0x000138f8 lw v1, (v0) | v1 = *(v0);
0x000138fc lw s1, (s1) | s1 = *(s1);
0x00013900 bnel v1, a0, 0x138ec |
| }
0x00013904 lw v0, 4(v0) | v0 = *((v0 + 1));
0x00013908 lw v0, 0x10(v0) | v0 = *((v0 + 4));
0x0001390c lw s1, (s1) | s1 = *(s1);
| if (v0 == 0) {
0x00013910 bnel v0, zero, 0x138ec | goto label_19;
| }
| label_23:
0x00013914 lw v1, 0xe4(s2) | v1 = *((s2 + 57));
| label_24:
0x00013918 addiu v0, zero, 3 | v0 = 3;
| if (v1 != v0) {
0x0001391c beql v1, v0, 0x13924 |
0x00013920 sb zero, 0x9d(sp) | *(var_9dh) = 0;
| }
0x00013924 lw v0, 4(s1) | v0 = *((s1 + 1));
0x00013928 lw t9, -0x7c9c(gp) | t9 = sym.write_status_text_and_buffer;
0x0001392c lw a1, 0x3c(sp) | a1 = *(var_3ch_2);
0x00013930 lw v0, 4(v0) | v0 = *((v0 + 1));
0x00013934 lw a0, 0x40(sp) | a0 = *(var_40h_2);
0x00013938 addiu a2, v0, 0x4c | a2 = v0 + 0x4c;
0x0001393c lw a3, 4(v0) | a3 = *((v0 + 1));
0x00013940 addiu v0, zero, -1 | v0 = -1;
0x00013944 sw v0, 0x10(sp) | *(var_10h_2) = v0;
0x00013948 bal 0x22334 | sym_write_status_text_and_buffer ();
0x0001394c lw v0, 4(s1) | v0 = *((s1 + 1));
0x00013950 lw gp, 0x30(sp) | gp = *(var_30h);
0x00013954 move a2, zero | a2 = 0;
0x00013958 lw v0, 4(v0) | v0 = *((v0 + 1));
0x0001395c lw t9, -0x7e2c(gp) | t9 = sym.utf8_to_native;
0x00013960 addiu a0, v0, 0x4c | a0 = v0 + 0x4c;
0x00013964 lw a1, 4(v0) | a1 = *((v0 + 1));
0x00013968 jalr t9 | t9 ();
0x0001396c lw gp, 0x30(sp) | gp = *(var_30h);
| label_39:
0x00013970 lw t9, -0x7f30(gp) | t9 = sym.g10_log_info;
| if (s6 != 0) {
0x00013974 bnez s6, 0x13c3c | goto label_96;
| }
0x00013978 lhu v1, (s0) | v1 = *(s0);
0x0001397c andi v1, v1, 0x200 | v1 &= aav.0x00000200;
0x00013980 move a1, v0 | a1 = v0;
| if (v1 == 0) {
0x00013984 beqz v1, 0x13c28 | goto label_97;
| }
0x00013988 lw a0, -0x7fdc(gp) | a0 = *(gp);
| /* str.Expired_signature_from___s_ */
0x0001398c addiu a0, a0, 0x4284 | a0 += 0x4284;
0x00013990 jalr t9 | t9 ();
0x00013994 lw gp, 0x30(sp) | gp = *(var_30h);
| label_36:
0x00013998 lw v1, 0xe4(s2) | v1 = *((s2 + 57));
0x0001399c addiu v0, zero, 3 | v0 = 3;
0x000139a0 lw t9, -0x7d40(gp) | t9 = sym.log_stream;
| if (v1 == v0) {
0x000139a4 beq v1, v0, 0x13778 | goto label_20;
| }
| if (s1 == 0) {
0x000139a8 beqz s1, 0x13778 | goto label_20;
| }
0x000139ac nop |
| label_37:
0x000139b0 jalr t9 | t9 ();
0x000139b4 nop |
0x000139b8 lw gp, 0x30(sp) | gp = *(var_30h);
0x000139bc move a1, v0 | a1 = v0;
0x000139c0 lw t9, -0x7840(gp) | t9 = sym.imp._IO_putc;
0x000139c4 addiu a0, zero, 0x20 | a0 = 0x20;
0x000139c8 jalr t9 | t9 ();
0x000139cc lw gp, 0x30(sp) | gp = *(var_30h);
0x000139d0 lw t9, -0x7d40(gp) | t9 = sym.log_stream;
0x000139d4 jalr t9 | t9 ();
0x000139d8 nop |
0x000139dc lw gp, 0x30(sp) | gp = *(var_30h);
0x000139e0 move a3, v0 | a3 = v0;
0x000139e4 addiu a2, zero, 0xb | a2 = 0xb;
0x000139e8 lw a0, -0x7fdc(gp) | a0 = *(gp);
0x000139ec lw t9, -0x7848(gp) | t9 = sym.imp.fwrite;
0x000139f0 addiu a1, zero, 1 | a1 = 1;
| /* str._uncertain_ */
0x000139f4 addiu a0, a0, 0x42c4 | a0 += 0x42c4;
0x000139f8 jalr t9 | t9 ();
0x000139fc lw gp, 0x30(sp) | gp = *(var_30h);
0x00013a00 lw t9, -0x7d40(gp) | t9 = sym.log_stream;
0x00013a04 jalr t9 | t9 ();
0x00013a08 nop |
0x00013a0c lw gp, 0x30(sp) | gp = *(var_30h);
0x00013a10 move a1, v0 | a1 = v0;
0x00013a14 lw t9, -0x7904(gp) | t9 = sym.imp.fputc;
0x00013a18 addiu a0, zero, 0xa | a0 = 0xa;
0x00013a1c jalr t9 | t9 ();
0x00013a20 lw gp, 0x30(sp) | gp = *(var_30h);
0x00013a24 lw t9, -0x7ea4(gp) | t9 = sym.release_kbnode;
0x00013a28 move a0, s5 | a0 = s5;
0x00013a2c bal 0xfd24 | sym_release_kbnode ();
0x00013a30 lw gp, 0x30(sp) | gp = *(var_30h);
| if (s6 == 0) {
0x00013a34 beqz s6, 0x137a8 | goto label_21;
| }
0x00013a38 move s1, s6 | s1 = s6;
0x00013a3c b 0x13850 | goto label_22;
| label_95:
0x00013a40 addiu v0, zero, 0xd | v0 = 0xd;
0x00013a44 lw v1, (v1) | v1 = *(v1);
0x00013a48 move s1, s5 | s1 = s5;
| if (v1 == v0) {
0x00013a4c beq v1, v0, 0x13914 | goto label_23;
| }
0x00013a50 addiu v1, zero, 0xd | v1 = 0xd;
0x00013a54 lw s1, (s1) | s1 = *(s1);
| do {
| if (s1 == 0) {
0x00013a58 beql s1, zero, 0x13cb4 | goto label_98;
| }
0x00013a5c lw s1, -0x7fdc(gp) | s1 = *(gp);
0x00013a60 lw v0, 4(s1) | v0 = *((s1 + 1));
0x00013a64 lw v0, (v0) | v0 = *(v0);
0x00013a68 lw s1, (s1) | s1 = *(s1);
0x00013a6c bnel v0, v1, 0x13a58 |
| } while (v0 == v1);
0x00013a70 lw v1, 0xe4(s2) | v1 = *((s2 + 57));
0x00013a74 b 0x13918 | goto label_24;
| label_91:
0x00013a78 lw t9, -0x7cb0(gp) | t9 = sym.asctimestamp;
0x00013a7c addiu s1, zero, 1 | s1 = 1;
0x00013a80 jalr t9 | t9 ();
0x00013a84 lw gp, 0x30(sp) | gp = *(var_30h);
0x00013a88 move a1, v0 | a1 = v0;
0x00013a8c lw a0, -0x7fdc(gp) | a0 = *(gp);
0x00013a90 lw t9, -0x7f30(gp) | t9 = sym.g10_log_info;
| /* str.Signature_expired__s_n */
0x00013a94 addiu a0, a0, 0x430c | a0 += 0x430c;
0x00013a98 jalr t9 | t9 ();
0x00013a9c lw v0, (s2) | v0 = *(s2);
0x00013aa0 lw gp, 0x30(sp) | gp = *(var_30h);
| if (v0 != 0) {
0x00013aa4 bnez v0, 0x13874 | goto label_25;
| }
0x00013aa8 lw v1, -0x7fd0(gp) | v1 = *(gp);
0x00013aac b 0x138c8 | goto label_26;
| label_85:
0x00013ab0 addiu s1, s1, 1 | s1++;
0x00013ab4 jalr t9 | t9 ();
0x00013ab8 lw gp, 0x30(sp) | gp = *(var_30h);
0x00013abc move a1, v0 | a1 = v0;
0x00013ac0 lw t9, -0x7904(gp) | t9 = sym.imp.fputc;
0x00013ac4 addiu a0, zero, 0xa | a0 = 0xa;
0x00013ac8 jalr t9 | t9 ();
0x00013acc lw gp, 0x30(sp) | gp = *(var_30h);
0x00013ad0 b 0x1301c | goto label_18;
| label_88:
0x00013ad4 move a3, zero | a3 = 0;
0x00013ad8 addiu a2, zero, 2 | a2 = 2;
0x00013adc move a1, zero | a1 = 0;
0x00013ae0 move a0, s0 | a0 = s0;
0x00013ae4 bal 0x25e7c | sym_show_notation ();
0x00013ae8 lw gp, 0x30(sp) | gp = *(var_30h);
0x00013aec b 0x13818 | goto label_27;
| label_87:
0x00013af0 addiu a2, zero, 2 | a2 = 2;
0x00013af4 move a1, zero | a1 = 0;
0x00013af8 move a0, s0 | a0 = s0;
0x00013afc bal 0x25be0 | sym_show_keyserver_url ();
0x00013b00 lw gp, 0x30(sp) | gp = *(var_30h);
0x00013b04 b 0x137f0 | goto label_28;
| label_86:
0x00013b08 addiu a2, zero, 2 | a2 = 2;
0x00013b0c move a1, zero | a1 = 0;
0x00013b10 move a0, s0 | a0 = s0;
0x00013b14 bal 0x259b8 | sym_show_policy_url ();
0x00013b18 lw gp, 0x30(sp) | gp = *(var_30h);
0x00013b1c b 0x137cc | goto label_29;
| /* str.binary */
| label_93:
0x00013b20 addiu s4, s4, 0x4138 | s4 += 0x4138;
0x00013b24 b 0x13894 | goto label_30;
| label_65:
0x00013b28 move a0, s5 | a0 = s5;
0x00013b2c bal 0xfd24 | sym_release_kbnode ();
0x00013b30 move s1, s6 | s1 = s6;
0x00013b34 lw gp, 0x30(sp) | gp = *(var_30h);
0x00013b38 b 0x13850 | goto label_22;
| label_92:
0x00013b3c jalr t9 | t9 ();
0x00013b40 nop |
0x00013b44 lw gp, 0x30(sp) | gp = *(var_30h);
0x00013b48 move a1, v0 | a1 = v0;
0x00013b4c lw a0, -0x7fdc(gp) | a0 = *(gp);
0x00013b50 lw t9, -0x7f30(gp) | t9 = sym.g10_log_info;
| /* str.Signature_expires__s_n */
0x00013b54 addiu a0, a0, 0x4324 | a0 += 0x4324;
0x00013b58 jalr t9 | t9 ();
0x00013b5c lw gp, 0x30(sp) | gp = *(var_30h);
0x00013b60 b 0x13868 | goto label_31;
| label_58:
0x00013b64 move s6, zero | s6 = 0;
0x00013b68 sw v0, 0x40(sp) | *(var_40h_2) = v0;
0x00013b6c b 0x12f4c | goto label_13;
| label_84:
0x00013b70 lw a0, 0x4c(sp) | a0 = *(var_4ch);
0x00013b74 jalr t9 | t9 ();
0x00013b78 lw gp, 0x30(sp) | gp = *(var_30h);
0x00013b7c lw v0, 0x5c(sp) | v0 = *(var_5ch);
0x00013b80 b 0x13714 | goto label_32;
| label_83:
0x00013b84 lw t9, -0x7f30(gp) | t9 = sym.g10_log_info;
0x00013b88 lw a0, 0x54(sp) | a0 = *(var_54h);
0x00013b8c move a1, v0 | a1 = v0;
0x00013b90 sw v0, 0x5c(sp) | *(var_5ch) = v0;
0x00013b94 jalr t9 | t9 ();
0x00013b98 lw gp, 0x30(sp) | gp = *(var_30h);
0x00013b9c lw v0, 0x5c(sp) | v0 = *(var_5ch);
0x00013ba0 b 0x13714 | goto label_32;
| label_79:
0x00013ba4 lw t9, -0x7c80(gp) | t9 = sym.parse_preferred_keyserver;
0x00013ba8 move a0, s0 | a0 = s0;
0x00013bac bal 0x6390 | sym_parse_preferred_keyserver ();
0x00013bb0 move v1, v0 | v1 = v0;
0x00013bb4 lw gp, 0x30(sp) | gp = *(var_30h);
| if (v0 == 0) {
0x00013bb8 beqz v0, 0x13460 | goto label_33;
| }
0x00013bbc lw a2, 0x54(sp) | a2 = *(var_54h);
0x00013bc0 lw t9, -0x7ca0(gp) | t9 = sym.keyserver_import_keyid;
0x00013bc4 lw a0, 0x44(sp) | a0 = *(var_44h_2);
0x00013bc8 lw v0, (a2) | v0 = *(a2);
0x00013bcc move a1, v1 | a1 = v1;
0x00013bd0 addiu v0, v0, 1 | v0++;
0x00013bd4 sw v1, 0x3c(sp) | *(var_3ch_2) = v1;
0x00013bd8 sw v0, (a2) | *(a2) = v0;
0x00013bdc bal 0x634c | sym_keyserver_import_keyid ();
0x00013be0 lw a2, 0x54(sp) | a2 = *(var_54h);
0x00013be4 lw gp, 0x30(sp) | gp = *(var_30h);
0x00013be8 lw v1, 0x3c(sp) | v1 = *(var_3ch_2);
0x00013bec lw a0, (a2) | a0 = *(a2);
0x00013bf0 addiu a0, a0, -1 | a0 += -1;
0x00013bf4 sw a0, (a2) | *(a2) = a0;
| if (v0 == 0) {
0x00013bf8 beqz v0, 0x14070 | goto label_99;
| }
0x00013bfc lw t9, -0x7c7c(gp) | t9 = sym.free_keyserver_spec;
0x00013c00 move a0, v1 | a0 = v1;
0x00013c04 bal 0x63a0 | sym_free_keyserver_spec ();
0x00013c08 lw gp, 0x30(sp) | gp = *(var_30h);
0x00013c0c b 0x13460 | goto label_33;
| label_77:
0x00013c10 lw s6, -0x7fdc(gp) | s6 = *(gp);
0x00013c14 addiu s6, s6, 0x239c | s6 += 0x239c;
0x00013c18 b 0x13380 | goto label_34;
| label_55:
0x00013c1c lw s6, -0x7fdc(gp) | s6 = *(gp);
0x00013c20 addiu s6, s6, 0x239c | s6 += 0x239c;
0x00013c24 b 0x12ea4 | goto label_35;
| label_97:
0x00013c28 lw a0, -0x7fdc(gp) | a0 = *(gp);
| /* str.Good_signature_from___s_ */
0x00013c2c addiu a0, a0, 0x42a0 | a0 += 0x42a0;
0x00013c30 jalr t9 | t9 ();
0x00013c34 lw gp, 0x30(sp) | gp = *(var_30h);
0x00013c38 b 0x13998 | goto label_36;
| label_96:
0x00013c3c lw a0, -0x7fdc(gp) | a0 = *(gp);
0x00013c40 move a1, v0 | a1 = v0;
| /* str.BAD_signature_from___s_ */
0x00013c44 addiu a0, a0, 0x426c | a0 += 0x426c;
0x00013c48 jalr t9 | t9 ();
0x00013c4c lw v1, 0xe4(s2) | v1 = *((s2 + 57));
0x00013c50 addiu v0, zero, 3 | v0 = 3;
0x00013c54 lw gp, 0x30(sp) | gp = *(var_30h);
| if (v1 == v0) {
0x00013c58 beq v1, v0, 0x13c64 | goto label_100;
| }
0x00013c5c lw t9, -0x7d40(gp) | t9 = sym.log_stream;
| if (s1 != 0) {
0x00013c60 bnez s1, 0x139b0 | goto label_37;
| }
| label_100:
0x00013c64 lw t9, -0x7d40(gp) | t9 = sym.log_stream;
0x00013c68 move s1, s6 | s1 = s6;
0x00013c6c jalr t9 | t9 ();
0x00013c70 lw gp, 0x30(sp) | gp = *(var_30h);
0x00013c74 move a1, v0 | a1 = v0;
0x00013c78 lw t9, -0x7904(gp) | t9 = sym.imp.fputc;
0x00013c7c addiu a0, zero, 0xa | a0 = 0xa;
0x00013c80 jalr t9 | t9 ();
0x00013c84 lw gp, 0x30(sp) | gp = *(var_30h);
0x00013c88 lw t9, -0x7ea4(gp) | t9 = sym.release_kbnode;
0x00013c8c move a0, s5 | a0 = s5;
0x00013c90 bal 0xfd24 | sym_release_kbnode ();
0x00013c94 lw gp, 0x30(sp) | gp = *(var_30h);
0x00013c98 b 0x13850 | goto label_22;
| /* fcn.00012b44 */
| label_90:
0x00013c9c addiu t9, t9, 0x2b44 | t9 += 0x2b44;
0x00013ca0 move a0, s0 | a0 = s0;
0x00013ca4 bal 0x12b44 | fcn_00012b44 ();
0x00013ca8 lw gp, 0x30(sp) | gp = *(var_30h);
0x00013cac b 0x1383c | goto label_38;
| label_60:
0x00013cb0 lw s1, -0x7fdc(gp) | s1 = *(gp);
| label_98:
0x00013cb4 lw t9, -0x7c9c(gp) | t9 = sym.write_status_text_and_buffer;
0x00013cb8 addiu v0, zero, -1 | v0 = -1;
0x00013cbc lw a1, 0x3c(sp) | a1 = *(var_3ch_2);
0x00013cc0 lw a0, 0x40(sp) | a0 = *(var_40h_2);
| /* esilref: '[?]' */
0x00013cc4 addiu a2, s1, 0x3ba4 | a2 = s1 + 0x3ba4;
0x00013cc8 addiu a3, zero, 3 | a3 = 3;
0x00013ccc sw v0, 0x10(sp) | *(var_10h_2) = v0;
0x00013cd0 sb zero, 0x9d(sp) | *(var_9dh) = 0;
0x00013cd4 bal 0x22334 | sym_write_status_text_and_buffer ();
0x00013cd8 lw gp, 0x30(sp) | gp = *(var_30h);
| /* esilref: '[?]' */
0x00013cdc addiu a0, s1, 0x3ba4 | a0 = s1 + 0x3ba4;
0x00013ce0 lw t9, -0x7e4c(gp) | t9 = sym.xstrdup;
0x00013ce4 move s1, zero | s1 = 0;
0x00013ce8 jalr t9 | t9 ();
0x00013cec lw gp, 0x30(sp) | gp = *(var_30h);
0x00013cf0 b 0x13970 | goto label_39;
| label_69:
0x00013cf4 lw t9, -0x7d40(gp) | t9 = sym.log_stream;
0x00013cf8 jalr t9 | t9 ();
0x00013cfc nop |
0x00013d00 lw gp, 0x30(sp) | gp = *(var_30h);
0x00013d04 move a1, v0 | a1 = v0;
0x00013d08 lw t9, -0x7904(gp) | t9 = sym.imp.fputc;
0x00013d0c addiu a0, zero, 0xa | a0 = 0xa;
0x00013d10 jalr t9 | t9 ();
0x00013d14 lw gp, 0x30(sp) | gp = *(var_30h);
0x00013d18 b 0x13160 | goto label_40;
| label_89:
0x00013d1c lw t9, -0x7f2c(gp) | t9 = sym.xmalloc_clear;
0x00013d20 addiu a0, zero, 0x80 | a0 = 0x80;
0x00013d24 jalr t9 | t9 ();
0x00013d28 lw gp, 0x30(sp) | gp = *(var_30h);
0x00013d2c lw a1, 0x44(sp) | a1 = *(var_44h_2);
0x00013d30 move a0, v0 | a0 = v0;
0x00013d34 lw t9, -0x7e34(gp) | t9 = sym.get_pubkey;
0x00013d38 move s5, v0 | s5 = v0;
0x00013d3c bal 0xc768 | sym_get_pubkey ();
0x00013d40 lw gp, 0x30(sp) | gp = *(var_30h);
| if (v0 == 0) {
0x00013d44 beqz v0, 0x13e70 | goto label_101;
| }
| label_45:
0x00013d48 lw t9, -0x7e74(gp) | t9 = sym.free_public_key;
0x00013d4c move a0, s5 | a0 = s5;
0x00013d50 bal 0x91c0 | sym_free_public_key ();
0x00013d54 lw gp, 0x30(sp) | gp = *(var_30h);
0x00013d58 b 0x1382c | goto label_41;
| /* fcn.00012b44 */
| label_80:
0x00013d5c addiu t9, t9, 0x2b44 | t9 += 0x2b44;
0x00013d60 move a0, s0 | a0 = s0;
0x00013d64 bal 0x12b44 | fcn_00012b44 ();
0x00013d68 lw gp, 0x30(sp) | gp = *(var_30h);
| if (v0 == 0) {
0x00013d6c beqz v0, 0x134a8 | goto label_42;
| }
0x00013d70 lw t9, -0x7c78(gp) | t9 = sym.parse_keyserver_uri;
0x00013d74 move a3, zero | a3 = 0;
0x00013d78 move a2, zero | a2 = 0;
0x00013d7c addiu a1, zero, 1 | a1 = 1;
0x00013d80 move a0, v0 | a0 = v0;
0x00013d84 bal 0x6398 | sym_parse_keyserver_uri ();
0x00013d88 move s6, v0 | s6 = v0;
0x00013d8c lw gp, 0x30(sp) | gp = *(var_30h);
| if (v0 == 0) {
0x00013d90 beqz v0, 0x134a8 | goto label_42;
| }
0x00013d94 lw s7, -0x7ca4(gp) | s7 = *(gp);
0x00013d98 move a1, v0 | a1 = v0;
0x00013d9c lw t9, -0x7ca0(gp) | t9 = sym.keyserver_import_keyid;
0x00013da0 lw v0, (s7) | v0 = *(s7);
0x00013da4 lw a0, 0x44(sp) | a0 = *(var_44h_2);
0x00013da8 addiu v0, v0, 1 | v0++;
0x00013dac sw v0, (s7) | *(s7) = v0;
0x00013db0 bal 0x634c | sym_keyserver_import_keyid ();
0x00013db4 lw gp, 0x30(sp) | gp = *(var_30h);
0x00013db8 lw v1, (s7) | v1 = *(s7);
0x00013dbc move fp, v0 | fp = v0;
0x00013dc0 lw t9, -0x7c7c(gp) | t9 = sym.free_keyserver_spec;
0x00013dc4 addiu v1, v1, -1 | v1 += -1;
0x00013dc8 move a0, s6 | a0 = s6;
0x00013dcc sw v1, (s7) | *(s7) = v1;
0x00013dd0 bal 0x63a0 | sym_free_keyserver_spec ();
0x00013dd4 lw gp, 0x30(sp) | gp = *(var_30h);
| if (fp != 0) {
0x00013dd8 bnez fp, 0x134a8 | goto label_42;
| }
0x00013ddc lw v0, 0x50(sp) | v0 = *(var_50h);
0x00013de0 lw a3, 0x4c(sp) | a3 = *(var_4ch);
0x00013de4 lw t9, 0x48(sp) | t9 = *(var_48h);
0x00013de8 sw v0, 0x10(sp) | *(var_10h_2) = v0;
0x00013dec move a2, zero | a2 = 0;
0x00013df0 move a1, s4 | a1 = s4;
0x00013df4 move a0, s5 | a0 = s5;
0x00013df8 jalr t9 | t9 ();
0x00013dfc move s6, v0 | s6 = v0;
0x00013e00 addiu v0, zero, 9 | v0 = 9;
0x00013e04 lw gp, 0x30(sp) | gp = *(var_30h);
| if (s6 == v0) {
0x00013e08 beq s6, v0, 0x134a8 | goto label_42;
| }
0x00013e0c b 0x12f18 | goto label_17;
0x00013e10 nop |
| /* str.textmode */
| label_94:
0x00013e14 addiu s4, s4, 0x4140 | s4 += 0x4140;
0x00013e18 b 0x13894 | goto label_30;
| label_68:
0x00013e1c lw v0, 4(s7) | v0 = *((s7 + 1));
0x00013e20 lw t9, -0x7c74(gp) | t9 = sym.show_photos;
0x00013e24 move a3, zero | a3 = 0;
0x00013e28 lw v0, 4(v0) | v0 = *((v0 + 1));
0x00013e2c move a2, s4 | a2 = s4;
0x00013e30 lw a0, 8(v0) | a0 = *((v0 + 2));
0x00013e34 lw a1, 0xc(v0) | a1 = *((v0 + 3));
0x00013e38 bal 0x63a8 | sym_show_photos ();
0x00013e3c lw v0, 4(s7) | v0 = *((s7 + 1));
0x00013e40 lw gp, 0x30(sp) | gp = *(var_30h);
0x00013e44 lw a0, 4(v0) | a0 = *((v0 + 1));
0x00013e48 b 0x130c0 | goto label_43;
| label_70:
0x00013e4c move a0, s4 | a0 = s4;
0x00013e50 bal 0x631c | sym_get_validity ();
0x00013e54 lw gp, 0x30(sp) | gp = *(var_30h);
0x00013e58 lw t9, -0x7c98(gp) | t9 = sym.trust_value_to_string;
0x00013e5c move a0, v0 | a0 = v0;
0x00013e60 bal 0x6324 | sym_trust_value_to_string ();
0x00013e64 move fp, v0 | fp = v0;
0x00013e68 lw gp, 0x30(sp) | gp = *(var_30h);
0x00013e6c b 0x13134 | goto label_44;
| label_101:
0x00013e70 lw t9, -0x7dc0(gp) | t9 = sym.fingerprint_from_pk;
0x00013e74 addiu a2, sp, 0x6c | a2 = sp + 0x6c;
0x00013e78 addiu s6, sp, 0x78 | s6 = sp + 0x78;
0x00013e7c sw a2, 0x40(sp) | *(var_40h_2) = a2;
0x00013e80 sw s6, 0x3c(sp) | *(var_3ch_2) = s6;
0x00013e84 move a1, s6 | a1 = s6;
0x00013e88 move a0, s5 | a0 = s5;
0x00013e8c bal 0x1a318 | sym_fingerprint_from_pk ();
0x00013e90 lw v0, 0x6c(sp) | v0 = *(var_6ch);
0x00013e94 lw gp, 0x30(sp) | gp = *(var_30h);
| if (v0 == 0) {
0x00013e98 beqz v0, 0x14064 | goto label_102;
| }
0x00013e9c lw v0, -0x7fdc(gp) | v0 = *(gp);
0x00013ea0 addiu s1, sp, 0xc0 | s1 = sp + 0xc0;
0x00013ea4 move s7, zero | s7 = 0;
0x00013ea8 move s4, s1 | s4 = s1;
| /* str._02X */
0x00013eac addiu fp, v0, 0x3d40 | fp = v0 + 0x3d40;
| do {
0x00013eb0 lbu v0, (s6) | v0 = *(s6);
0x00013eb4 lw t9, -0x794c(gp) | t9 = sym.imp.__sprintf_chk
0x00013eb8 move a0, s4 | a0 = s4;
0x00013ebc sw v0, 0x10(sp) | *(var_10h_2) = v0;
0x00013ec0 move a3, fp | a3 = fp;
0x00013ec4 addiu a2, zero, 0xaa | a2 = 0xaa;
0x00013ec8 addiu a1, zero, 1 | a1 = 1;
0x00013ecc jalr t9 | t9 ();
0x00013ed0 lw v0, 0x6c(sp) | v0 = *(var_6ch);
0x00013ed4 addiu s7, s7, 1 | s7++;
0x00013ed8 sltu v0, s7, v0 | v0 = (s7 < v0) ? 1 : 0;
0x00013edc lw gp, 0x30(sp) | gp = *(var_30h);
0x00013ee0 addiu s6, s6, 1 | s6++;
0x00013ee4 addiu s4, s4, 2 | s4 += 2;
0x00013ee8 bnez v0, 0x13eb0 |
| } while (v0 != 0);
| label_47:
0x00013eec lw t9, -0x7d48(gp) | t9 = sym.strtimestamp;
0x00013ef0 lw a0, 0xc(s0) | a0 = *((s0 + 3));
0x00013ef4 jalr t9 | t9 ();
0x00013ef8 lbu v1, 0x15(s0) | v1 = *((s0 + 21));
0x00013efc lw gp, 0x30(sp) | gp = *(var_30h);
0x00013f00 sw v1, 0x28(sp) | *(var_28h_2) = v1;
0x00013f04 lbu v1, 0x17(s0) | v1 = *((s0 + 23));
0x00013f08 lw a3, -0x7fdc(gp) | a3 = *(gp);
0x00013f0c sw v1, 0x24(sp) | *(var_24h_2) = v1;
0x00013f10 lbu v1, 0x16(s0) | v1 = *((s0 + 22));
0x00013f14 lw t9, -0x794c(gp) | t9 = sym.imp.__sprintf_chk
0x00013f18 sw v1, 0x20(sp) | *(var_20h) = v1;
0x00013f1c lbu v1, 0x14(s0) | v1 = *((s0 + 20));
0x00013f20 move a0, s4 | a0 = s4;
0x00013f24 sw v1, 0x1c(sp) | *(var_1ch) = v1;
0x00013f28 lw v1, 0x10(s0) | v1 = *((s0 + 4));
| /* str.__s__lu__lu__d_0__d__d__02X_ */
0x00013f2c addiu a3, a3, 0x42ec | a3 += 0x42ec;
0x00013f30 sw v1, 0x18(sp) | *(var_18h_2) = v1;
0x00013f34 lw v1, 0xc(s0) | v1 = *((s0 + 3));
0x00013f38 addiu a2, zero, 0xaa | a2 = 0xaa;
0x00013f3c sw v1, 0x14(sp) | *(var_14h) = v1;
0x00013f40 addiu a1, zero, 1 | a1 = 1;
0x00013f44 sw v0, 0x10(sp) | *(var_10h_2) = v0;
0x00013f48 jalr t9 | t9 ();
0x00013f4c lw gp, 0x30(sp) | gp = *(var_30h);
0x00013f50 lw t9, -0x78a0(gp) | t9 = sym.imp.strlen;
0x00013f54 move a0, s4 | a0 = s4;
0x00013f58 jalr t9 | t9 ();
0x00013f5c lbu v1, 0x4c(s5) | v1 = *((s5 + 76));
0x00013f60 lw gp, 0x30(sp) | gp = *(var_30h);
0x00013f64 addu s4, s4, v0 | s4 += v0;
| if (v1 == 0) {
0x00013f68 beqz v1, 0x13fd8 | goto label_103;
| }
| label_46:
0x00013f6c lw v0, 0x6c(sp) | v0 = *(var_6ch);
0x00013f70 lw v0, -0x7fdc(gp) | v0 = *(gp);
| if (v0 == 0) {
0x00013f74 beqz v0, 0x13fc0 | goto label_104;
| }
0x00013f78 lw s6, 0x3c(sp) | s6 = *(var_3ch_2);
0x00013f7c move fp, zero | fp = 0;
| /* str._02X */
0x00013f80 addiu s7, v0, 0x3d40 | s7 = v0 + 0x3d40;
| do {
0x00013f84 lbu v0, (s6) | v0 = *(s6);
0x00013f88 lw t9, -0x794c(gp) | t9 = sym.imp.__sprintf_chk
0x00013f8c move a0, s4 | a0 = s4;
0x00013f90 sw v0, 0x10(sp) | *(var_10h_2) = v0;
0x00013f94 move a3, s7 | a3 = s7;
0x00013f98 addiu a2, zero, -1 | a2 = -1;
0x00013f9c addiu a1, zero, 1 | a1 = 1;
0x00013fa0 jalr t9 | t9 ();
0x00013fa4 lw v0, 0x6c(sp) | v0 = *(var_6ch);
0x00013fa8 addiu fp, fp, 1 | fp++;
0x00013fac sltu v0, fp, v0 | v0 = (fp < v0) ? 1 : 0;
0x00013fb0 lw gp, 0x30(sp) | gp = *(var_30h);
0x00013fb4 addiu s6, s6, 1 | s6++;
0x00013fb8 addiu s4, s4, 2 | s4 += 2;
0x00013fbc bnez v0, 0x13f84 |
| } while (v0 != 0);
| label_104:
0x00013fc0 lw t9, -0x7d80(gp) | t9 = sym.write_status_text;
0x00013fc4 move a1, s1 | a1 = s1;
0x00013fc8 addiu a0, zero, 0x15 | a0 = 0x15;
0x00013fcc bal 0x21b8c | sym_write_status_text ();
0x00013fd0 lw gp, 0x30(sp) | gp = *(var_30h);
0x00013fd4 b 0x13d48 | goto label_45;
| label_103:
0x00013fd8 lw v1, 0x3c(s5) | v1 = *((s5 + 15));
0x00013fdc lw v0, 0x40(s5) | v0 = *((s5 + 16));
0x00013fe0 lw t9, -0x7e74(gp) | t9 = sym.free_public_key;
0x00013fe4 move a0, s5 | a0 = s5;
0x00013fe8 sw v1, 0x70(sp) | *(var_70h) = v1;
0x00013fec sw v0, 0x74(sp) | *(var_74h) = v0;
0x00013ff0 bal 0x91c0 | sym_free_public_key ();
0x00013ff4 lw gp, 0x30(sp) | gp = *(var_30h);
0x00013ff8 lw t9, -0x7f2c(gp) | t9 = sym.xmalloc_clear;
0x00013ffc addiu a0, zero, 0x80 | a0 = 0x80;
0x00014000 jalr t9 | t9 ();
0x00014004 lw gp, 0x30(sp) | gp = *(var_30h);
0x00014008 addiu a1, sp, 0x70 | a1 = sp + 0x70;
0x0001400c move a0, v0 | a0 = v0;
0x00014010 lw t9, -0x7e34(gp) | t9 = sym.get_pubkey;
0x00014014 move s5, v0 | s5 = v0;
0x00014018 bal 0xc768 | sym_get_pubkey ();
0x0001401c lw gp, 0x30(sp) | gp = *(var_30h);
| if (v0 != 0) {
0x00014020 beqz v0, 0x14048 |
0x00014024 addiu v0, zero, 0x14 | v0 = 0x14;
0x00014028 sw v0, 0x6c(sp) | *(var_6ch) = v0;
0x0001402c lw v0, 0x3c(sp) | v0 = *(var_3ch_2);
0x00014030 sw zero, 0x78(sp) | *(var_78h) = 0;
0x00014034 sw zero, 4(v0) | *((v0 + 1)) = 0;
0x00014038 sw zero, 8(v0) | *((v0 + 2)) = 0;
0x0001403c sw zero, 0xc(v0) | *((v0 + 3)) = 0;
0x00014040 sw zero, 0x10(v0) | *((v0 + 4)) = 0;
0x00014044 b 0x13f6c | goto label_46;
| }
0x00014048 lw t9, -0x7dc0(gp) | t9 = sym.fingerprint_from_pk;
0x0001404c lw a2, 0x40(sp) | a2 = *(var_40h_2);
0x00014050 lw a1, 0x3c(sp) | a1 = *(var_3ch_2);
0x00014054 move a0, s5 | a0 = s5;
0x00014058 bal 0x1a318 | sym_fingerprint_from_pk ();
0x0001405c lw gp, 0x30(sp) | gp = *(var_30h);
0x00014060 b 0x13f6c | goto label_46;
| label_102:
0x00014064 addiu s1, sp, 0xc0 | s1 = sp + 0xc0;
0x00014068 move s4, s1 | s4 = s1;
0x0001406c b 0x13eec | goto label_47;
| label_99:
0x00014070 lw v0, 0x50(sp) | v0 = *(var_50h);
0x00014074 lw a3, 0x4c(sp) | a3 = *(var_4ch);
0x00014078 lw t9, 0x48(sp) | t9 = *(var_48h);
0x0001407c move a2, zero | a2 = 0;
0x00014080 move a1, s4 | a1 = s4;
0x00014084 move a0, s5 | a0 = s5;
0x00014088 sw v0, 0x10(sp) | *(var_10h_2) = v0;
0x0001408c jalr t9 | t9 ();
0x00014090 lw gp, 0x30(sp) | gp = *(var_30h);
0x00014094 lw v1, 0x3c(sp) | v1 = *(var_3ch_2);
0x00014098 move s6, v0 | s6 = v0;
0x0001409c lw t9, -0x7c7c(gp) | t9 = sym.free_keyserver_spec;
0x000140a0 move a0, v1 | a0 = v1;
0x000140a4 bal 0x63a0 | sym_free_keyserver_spec ();
0x000140a8 lw gp, 0x30(sp) | gp = *(var_30h);
| if (s6 != 0) {
0x000140ac bnez s6, 0x13460 | goto label_33;
| }
0x000140b0 lhu v0, (s0) | v0 = *(s0);
0x000140b4 b 0x12f24 | goto label_48;
| label_73:
0x000140b8 lw t9, -0x7834(gp) | t9 = sym.imp.__stack_chk_fail;
0x000140bc jalr t9 | t9 ();
0x000140c0 nop |
| label_50:
0x000140c4 lw a3, -0x7fdc(gp) | a3 = *(gp);
0x000140c8 lw a1, -0x7fdc(gp) | a1 = *(gp);
0x000140cc lw a0, -0x7fdc(gp) | a0 = *(gp);
0x000140d0 lw t9, -0x7944(gp) | t9 = sym.imp.__assert_fail;
| /* str.check_sig_and_print */
0x000140d4 addiu a3, a3, 0x48f8 | a3 += 0x48f8;
0x000140d8 addiu a2, zero, 0x5bc | a2 = 0x5bc;
| /* str..._.._gnupg_1.4.7_g10_mainproc.c */
0x000140dc addiu a1, a1, 0x3eac | a1 += 0x3eac;
0x000140e0 addiu a0, a0, 0x4fe0 | a0 += 0x4fe0;
0x000140e4 jalr t9 | t9 ();
| label_82:
0x000140e8 lw a3, -0x7fdc(gp) | a3 = *(gp);
0x000140ec lw a1, -0x7fdc(gp) | a1 = *(gp);
0x000140f0 lw a0, -0x7fdc(gp) | a0 = *(gp);
0x000140f4 lw t9, -0x7944(gp) | t9 = sym.imp.__assert_fail;
| /* str.check_sig_and_print */
0x000140f8 addiu a3, a3, 0x48f8 | a3 += 0x48f8;
0x000140fc addiu a2, zero, 0x69b | a2 = 0x69b;
| /* str..._.._gnupg_1.4.7_g10_mainproc.c */
0x00014100 addiu a1, a1, 0x3eac | a1 += 0x3eac;
| /* esilref: 'pk' */
0x00014104 addiu a0, a0, 0x2c00 | a0 += 0x2c00;
0x00014108 jalr t9 | return t9 ();
| }
; assembly | /* r2dec pseudo code output */
| /* /logs/firmware/unblob_extracted/firmware_extract/4325012-58052244.squashfs_v4_le_extract/usr/bin/gpgv @ 0x19034 */
| #include <stdint.h>
|
; (fcn) fcn.00019034 () | void fcn_00019034 () {
0x00019034 lui gp, 5 |
0x00019038 addiu gp, gp, -0x6f04 |
0x0001903c addu gp, gp, t9 | gp += t9;
0x00019040 addiu sp, sp, -0x30 |
0x00019044 sw gp, 0x20(sp) | *(var_18h) = gp;
0x00019048 sw s0, 0x28(sp) | *(var_20h) = s0;
0x0001904c sw ra, 0x2c(sp) | *(var_24h) = ra;
0x00019050 move s0, a0 | s0 = a0;
0x00019054 sw a1, 0x34(sp) | *(arg_34h) = a1;
| if (a1 >= 0) {
0x00019058 bltz a1, 0x190bc |
0x0001905c lw t9, -0x78b4(gp) | t9 = sym.imp.gmtime;
0x00019060 addiu a0, sp, 0x34 | a0 = sp + 0x34;
0x00019064 jalr t9 | t9 ();
0x00019068 lw v1, 0xc(v0) | v1 = *((v0 + 3));
0x0001906c lw gp, 0x20(sp) | gp = *(var_18h);
0x00019070 sw v1, 0x18(sp) | *(var_10h) = v1;
0x00019074 lw v1, 0x10(v0) | v1 = *((v0 + 4));
0x00019078 lw a3, -0x7fdc(gp) | a3 = *(gp);
0x0001907c addiu v1, v1, 1 | v1++;
0x00019080 sw v1, 0x14(sp) | *(var_14h) = v1;
0x00019084 lw v0, 0x14(v0) | v0 = *((v0 + 5));
0x00019088 lw t9, -0x794c(gp) | t9 = sym.imp.__sprintf_chk
0x0001908c addiu v0, v0, 0x76c | v0 += 0x76c;
0x00019090 move a0, s0 | a0 = s0;
| /* str._04d__02d__02d */
0x00019094 addiu a3, a3, 0x5184 | a3 += 0x5184;
0x00019098 addiu a2, zero, -1 | a2 = -1;
0x0001909c sw v0, 0x10(sp) | *(var_10h_2) = v0;
0x000190a0 addiu a1, zero, 1 | a1 = 1;
0x000190a4 jalr t9 | t9 ();
0x000190a8 lw ra, 0x2c(sp) | ra = *(var_24h);
0x000190ac move v0, s0 | v0 = s0;
0x000190b0 lw s0, 0x28(sp) | s0 = *(var_20h);
0x000190b4 addiu sp, sp, 0x30 |
0x000190b8 jr ra | return v0;
| }
0x000190bc lw v1, -0x7fdc(gp) | v1 = *(gp);
| /* str.__________ */
0x000190c0 addiu v0, v1, 0x5178 | v0 = v1 + 0x5178;
0x000190c4 lw a1, 0x5178(v1) | a1 = *((v1 + 5214));
0x000190c8 lw a0, 4(v0) | a0 = *((v0 + 1));
0x000190cc lhu v1, 8(v0) | v1 = *((v0 + 4));
0x000190d0 lbu v0, 0xa(v0) | v0 = *((v0 + 10));
0x000190d4 sw a1, (s0) | *(s0) = a1;
0x000190d8 sb v0, 0xa(s0) | *((s0 + 10)) = v0;
0x000190dc sw a0, 4(s0) | *((s0 + 1)) = a0;
0x000190e0 sh v1, 8(s0) | *((s0 + 4)) = v1;
0x000190e4 lw ra, 0x2c(sp) | ra = *(var_24h);
0x000190e8 move v0, s0 | v0 = s0;
0x000190ec lw s0, 0x28(sp) | s0 = *(var_20h);
0x000190f0 addiu sp, sp, 0x30 |
0x000190f4 jr ra | return v0;
| }
; assembly | /* r2dec pseudo code output */
| /* /logs/firmware/unblob_extracted/firmware_extract/4325012-58052244.squashfs_v4_le_extract/usr/bin/gpgv @ 0x23edc */
| #include <stdint.h>
|
; (fcn) fcn.00023edc () | void fcn_00023edc () {
0x00023edc lui gp, 4 |
0x00023ee0 addiu gp, gp, -0x1dac |
0x00023ee4 addu gp, gp, t9 | gp += t9;
0x00023ee8 addiu sp, sp, -0x50 |
0x00023eec sw s5, 0x44(sp) | *(var_44h_3) = s5;
0x00023ef0 lw s5, -0x781c(gp) | s5 = *((gp - 7687));
0x00023ef4 sw gp, 0x18(sp) | *(var_18h_2) = gp;
0x00023ef8 sw s4, 0x40(sp) | *(var_40h_3) = s4;
0x00023efc lw v0, (s5) | v0 = *(s5);
0x00023f00 sw s2, 0x38(sp) | *(var_38h_3) = s2;
0x00023f04 sw s0, 0x30(sp) | *(var_30h_2) = s0;
0x00023f08 sw ra, 0x4c(sp) | *(var_4ch_3) = ra;
0x00023f0c sw s6, 0x48(sp) | *(var_48h_3) = s6;
0x00023f10 sw s3, 0x3c(sp) | *(var_3ch_3) = s3;
0x00023f14 sw s1, 0x34(sp) | *(var_34h_3) = s1;
0x00023f18 move s4, a2 | s4 = a2;
0x00023f1c move s0, a0 | s0 = a0;
0x00023f20 move s2, a3 | s2 = a3;
0x00023f24 sw v0, 0x2c(sp) | *(var_2ch_2) = v0;
0x00023f28 sw zero, (a2) | *(a2) = 0;
| if (a2 != 0) {
0x00023f2c bnel a2, zero, 0x23f30 |
| }
0x00023f30 sw zero, (s2) | *(s2) = 0;
| if (s2 != 0) {
0x00023f34 bnel s2, zero, 0x23f38 |
| }
0x00023f38 lw a2, (s0) | a2 = *(s0);
0x00023f3c lw s1, (a1) | s1 = *(a1);
0x00023f40 sltu v0, s1, a2 | v0 = (s1 < a2) ? 1 : 0;
0x00023f44 subu s1, a2, s1 | __asm ("subu s1, a2, s1");
| if (v0 == 0) {
0x00023f48 beqz v0, 0x23f98 | goto label_2;
| }
0x00023f4c addiu v0, zero, 1 | v0 = 1;
0x00023f50 lw s3, -0x7fdc(gp) | s3 = *(gp);
| if (s1 == v0) {
0x00023f54 beq s1, v0, 0x240dc | goto label_3;
| }
0x00023f58 lw s3, -0x7fdc(gp) | s3 = *(gp);
| /* str.public_key__s_is__lu_seconds_newer_than_the_signature_n */
0x00023f5c addiu s3, s3, 0x6f70 | s3 += 0x6f70;
| do {
0x00023f60 lw t9, -0x7e6c(gp) | t9 = sym.keystr_from_pk;
0x00023f64 move a0, s0 | a0 = s0;
0x00023f68 bal 0x19dd4 | sym_keystr_from_pk ();
0x00023f6c lw gp, 0x18(sp) | gp = *(var_18h_2);
0x00023f70 move a1, v0 | a1 = v0;
0x00023f74 move a2, s1 | a2 = s1;
0x00023f78 lw t9, -0x7f30(gp) | t9 = sym.g10_log_info;
0x00023f7c move a0, s3 | a0 = s3;
0x00023f80 bal 0x384ac | sym_g10_log_info ();
0x00023f84 lw gp, 0x18(sp) | gp = *(var_18h_2);
0x00023f88 lw v0, -0x7fc8(gp) | v0 = *(gp);
0x00023f8c lw v0, 0x1b4(v0) | v0 = *(v0);
0x00023f90 addiu v0, zero, 0x28 | v0 = 0x28;
| if (v0 != 0) {
0x00023f94 beqz v0, 0x240a8 |
| label_2:
0x00023f98 lw t9, -0x7ea0(gp) | t9 = sym.make_timestamp;
0x00023f9c bal 0x38c7c | sym_make_timestamp ();
0x00023fa0 nop |
0x00023fa4 lw a2, (s0) | a2 = *(s0);
0x00023fa8 move s3, v0 | s3 = v0;
0x00023fac sltu v0, v0, a2 | v0 = (v0 < a2) ? 1 : 0;
0x00023fb0 lw gp, 0x18(sp) | gp = *(var_18h_2);
| if (v0 != 0) {
0x00023fb4 beqz v0, 0x24008 |
0x00023fb8 subu s1, a2, s3 | __asm ("subu s1, a2, s3");
0x00023fbc addiu v0, zero, 1 | v0 = 1;
0x00023fc0 lw s6, -0x7fdc(gp) | s6 = *(gp);
| if (s1 == v0) {
0x00023fc4 beq s1, v0, 0x240e4 | goto label_4;
| }
0x00023fc8 lw s6, -0x7fdc(gp) | s6 = *(gp);
| /* str.key__s_was_created__lu_seconds_in_the_future__time_warp_or_clock_problem__n */
0x00023fcc addiu s6, s6, 0x6ff4 | s6 += 0x6ff4;
| label_0:
0x00023fd0 lw t9, -0x7e6c(gp) | t9 = sym.keystr_from_pk;
0x00023fd4 move a0, s0 | a0 = s0;
0x00023fd8 bal 0x19dd4 | sym_keystr_from_pk ();
0x00023fdc lw gp, 0x18(sp) | gp = *(var_18h_2);
0x00023fe0 move a1, v0 | a1 = v0;
0x00023fe4 move a2, s1 | a2 = s1;
0x00023fe8 lw t9, -0x7f30(gp) | t9 = sym.g10_log_info;
0x00023fec move a0, s6 | a0 = s6;
0x00023ff0 bal 0x384ac | sym_g10_log_info ();
0x00023ff4 lw gp, 0x18(sp) | gp = *(var_18h_2);
0x00023ff8 lw v0, -0x7fc8(gp) | v0 = *(gp);
0x00023ffc lw v0, 0x1b4(v0) | v0 = *(v0);
0x00024000 addiu v0, zero, 0x28 | v0 = 0x28;
| if (v0 == 0) {
0x00024004 beqz v0, 0x240a8 | goto label_5;
| }
| }
0x00024008 lw v0, 4(s0) | v0 = *((s0 + 1));
| if (v0 != 0) {
0x0002400c beql v0, zero, 0x2408c |
0x00024010 lw v0, 0x28(s0) | v0 = *((s0 + 10));
0x00024014 sltu s3, v0, s3 | s3 = (v0 < s3) ? 1 : 0;
| if (s3 == 0) {
0x00024018 beql s3, zero, 0x2408c | goto label_6;
| }
0x0002401c lw v0, 0x28(s0) | v0 = *((s0 + 10));
0x00024020 lw v1, -0x7fc8(gp) | v1 = *(gp);
0x00024024 lw v1, (v1) | v1 = *(v1);
0x00024028 lw t9, -0x7e6c(gp) | t9 = sym.keystr_from_pk;
| if (v1 != 0) {
0x0002402c bnez v1, 0x240ec | goto label_7;
| }
| label_1:
0x00024030 lw a3, -0x7fdc(gp) | a3 = *(gp);
0x00024034 lw t9, -0x794c(gp) | t9 = sym.imp.__sprintf_chk
0x00024038 addiu s1, sp, 0x20 | s1 = sp + 0x20;
| /* esilref: '&lu' */
0x0002403c addiu a3, a3, 0x4eb0 | a3 += 0x4eb0;
0x00024040 addiu a2, zero, 0xb | a2 = 0xb;
0x00024044 addiu a1, zero, 1 | a1 = 1;
0x00024048 move a0, s1 | a0 = s1;
0x0002404c sw v0, 0x10(sp) | *(var_58h_2) = v0;
0x00024050 jalr t9 | t9 ();
0x00024054 lw gp, 0x18(sp) | gp = *(var_18h_2);
0x00024058 move a1, s1 | a1 = s1;
0x0002405c lw t9, -0x7d80(gp) | t9 = sym.write_status_text;
0x00024060 addiu a0, zero, 9 | a0 = 9;
0x00024064 bal 0x21b8c | sym_write_status_text ();
0x00024068 lw gp, 0x18(sp) | gp = *(var_18h_2);
0x0002406c lw t9, -0x7d3c(gp) | t9 = sym.write_status;
0x00024070 addiu a0, zero, 0x40 | a0 = 0x40;
0x00024074 bal 0x21e10 | sym_write_status ();
0x00024078 lw gp, 0x18(sp) | gp = *(var_18h_2);
| if (s4 != 0) {
0x0002407c beqz s4, 0x24088 |
0x00024080 addiu v0, zero, 1 | v0 = 1;
0x00024084 sw v0, (s4) | *(s4) = v0;
| }
0x00024088 lw v0, 0x28(s0) | v0 = *((s0 + 10));
| }
| if (v0 == 0) {
| label_6:
0x0002408c beqz v0, 0x240a8 | goto label_5;
| }
0x00024090 nop |
0x00024094 move v0, zero | v0 = 0;
| if (s2 == 0) {
0x00024098 beqz s2, 0x240a8 | goto label_5;
| }
0x0002409c addiu v0, zero, 1 | v0 = 1;
0x000240a0 sw v0, (s2) | *(s2) = v0;
0x000240a4 move v0, zero | v0 = 0;
| }
| label_5:
0x000240a8 lw a0, 0x2c(sp) | a0 = *(var_2ch_2);
0x000240ac lw v1, (s5) | v1 = *(s5);
0x000240b0 lw ra, 0x4c(sp) | ra = *(var_4ch_3);
| if (a0 != v1) {
0x000240b4 bne a0, v1, 0x24130 | goto label_8;
| }
0x000240b8 lw s6, 0x48(sp) | s6 = *(var_48h_3);
0x000240bc lw s5, 0x44(sp) | s5 = *(var_44h_3);
0x000240c0 lw s4, 0x40(sp) | s4 = *(var_40h_3);
0x000240c4 lw s3, 0x3c(sp) | s3 = *(var_3ch_3);
0x000240c8 lw s2, 0x38(sp) | s2 = *(var_38h_3);
0x000240cc lw s1, 0x34(sp) | s1 = *(var_34h_3);
0x000240d0 lw s0, 0x30(sp) | s0 = *(var_30h_2);
0x000240d4 addiu sp, sp, 0x50 |
0x000240d8 jr ra | return v0;
| /* str.public_key__s_is__lu_second_newer_than_the_signature_n */
| label_3:
0x000240dc addiu s3, s3, 0x6f38 | s3 += 0x6f38;
0x000240e0 b 0x23f60 |
| } while (1);
| /* str.key__s_was_created__lu_second_in_the_future__time_warp_or_clock_problem__n */
| label_4:
0x000240e4 addiu s6, s6, 0x6fa8 | s6 += 0x6fa8;
0x000240e8 b 0x23fd0 | goto label_0;
| label_7:
0x000240ec move a0, s0 | a0 = s0;
0x000240f0 bal 0x19dd4 | sym_keystr_from_pk ();
0x000240f4 lw gp, 0x18(sp) | gp = *(var_18h_2);
0x000240f8 lw a0, 4(s0) | a0 = *((s0 + 1));
0x000240fc lw t9, -0x7cb0(gp) | t9 = sym.asctimestamp;
0x00024100 move s1, v0 | s1 = v0;
0x00024104 bal 0x38ee4 | sym_asctimestamp ();
0x00024108 lw gp, 0x18(sp) | gp = *(var_18h_2);
0x0002410c move a2, v0 | a2 = v0;
0x00024110 move a1, s1 | a1 = s1;
0x00024114 lw a0, -0x7fdc(gp) | a0 = *(gp);
0x00024118 lw t9, -0x7f30(gp) | t9 = sym.g10_log_info;
| /* str.NOTE:_signature_key__s_expired__s_n */
0x0002411c addiu a0, a0, 0x7040 | a0 += 0x7040;
0x00024120 bal 0x384ac | sym_g10_log_info ();
0x00024124 lw gp, 0x18(sp) | gp = *(var_18h_2);
0x00024128 lw v0, 4(s0) | v0 = *((s0 + 1));
0x0002412c b 0x24030 | goto label_1;
| label_8:
0x00024130 lw t9, -0x7834(gp) | t9 = sym.imp.__stack_chk_fail;
0x00024134 jalr t9 | t9 ();
0x00024138 nop |
| }
; assembly | /* r2dec pseudo code output */
| /* /logs/firmware/unblob_extracted/firmware_extract/4325012-58052244.squashfs_v4_le_extract/usr/bin/gpgv @ 0x186f4 */
| #include <stdint.h>
|
; (fcn) sym.ask_outfile_name () | void ask_outfile_name () {
0x000186f4 lui gp, 5 |
0x000186f8 addiu gp, gp, -0x65c4 |
0x000186fc addu gp, gp, t9 | gp += t9;
0x00018700 lw a2, -0x7fc8(gp) | a2 = *(gp);
0x00018704 addiu sp, sp, -0x30 |
0x00018708 lw a2, 0x40(a2) | a2 = *((a2 + 16));
0x0001870c sw gp, 0x18(sp) | *(var_18h) = gp;
0x00018710 sw ra, 0x2c(sp) | *(var_2ch) = ra;
0x00018714 sw s2, 0x28(sp) | *(var_28h) = s2;
0x00018718 sw s1, 0x24(sp) | *(var_24h) = s1;
0x0001871c sw s0, 0x20(sp) | *(var_20h) = s0;
0x00018720 lw ra, 0x2c(sp) | ra = *(var_2ch);
| if (a2 == 0) {
0x00018724 bnel a2, zero, 0x18918 | goto label_0;
| }
0x00018728 lw t9, -0x7f28(gp) | t9 = sym.xmalloc;
| if (a0 == 0) {
0x0001872c beqz a0, 0x1873c | goto label_1;
| }
0x00018730 lw t9, -0x7c08(gp) | t9 = sym.make_printable_string;
0x00018734 bnez a1, 0x18818 |
| while (v0 == 0) {
0x00018738 lw t9, -0x7f28(gp) | t9 = sym.xmalloc;
| label_1:
0x0001873c addiu a0, zero, 0x1c | a0 = 0x1c;
0x00018740 jalr t9 | t9 ();
0x00018744 lw gp, 0x18(sp) | gp = *(var_18h);
0x00018748 move s1, v0 | s1 = v0;
0x0001874c addiu a2, zero, -1 | a2 = -1;
0x00018750 lw v0, -0x7fdc(gp) | v0 = *(gp);
0x00018754 lw a3, -0x7fdc(gp) | a3 = *(gp);
0x00018758 lw t9, -0x794c(gp) | t9 = sym.imp.__sprintf_chk
| /* str.Enter_new_filename */
0x0001875c addiu v0, v0, 0x5004 | v0 += 0x5004;
| /* str._s:_ */
0x00018760 addiu a3, a3, 0x502c | a3 += 0x502c;
0x00018764 addiu a1, zero, 1 | a1 = 1;
0x00018768 move a0, s1 | a0 = s1;
0x0001876c sw v0, 0x10(sp) | *(var_10h) = v0;
0x00018770 jalr t9 | t9 ();
0x00018774 lw gp, 0x18(sp) | gp = *(var_18h);
0x00018778 move a0, zero | a0 = 0;
0x0001877c lw t9, -0x7c04(gp) | t9 = sym.tty_enable_completion;
0x00018780 move s2, zero | s2 = 0;
0x00018784 bal 0x6458 | sym_tty_enable_completion ();
0x00018788 lw gp, 0x18(sp) | gp = *(var_18h);
0x0001878c move a1, s1 | a1 = s1;
0x00018790 lw a0, -0x7fdc(gp) | a0 = *(gp);
0x00018794 lw t9, -0x7c00(gp) | t9 = sym.cpr_get;
| /* str.openfile.askoutname */
0x00018798 addiu a0, a0, 0x5018 | a0 += 0x5018;
0x0001879c bal 0x22690 | sym_cpr_get ();
0x000187a0 lw gp, 0x18(sp) | gp = *(var_18h);
0x000187a4 lw t9, -0x7bfc(gp) | t9 = sym.cpr_kill_prompt;
0x000187a8 move s0, v0 | s0 = v0;
0x000187ac bal 0x227a0 | sym_cpr_kill_prompt ();
0x000187b0 lw gp, 0x18(sp) | gp = *(var_18h);
0x000187b4 lw t9, -0x7bf8(gp) | t9 = sym.tty_disable_completion;
0x000187b8 bal 0x6460 | sym_tty_disable_completion ();
0x000187bc nop |
0x000187c0 lw gp, 0x18(sp) | gp = *(var_18h);
0x000187c4 lw t9, -0x7f24(gp) | t9 = sym.xfree;
0x000187c8 move a0, s1 | a0 = s1;
0x000187cc jalr t9 | t9 ();
0x000187d0 lb v0, (s0) | v0 = *(s0);
0x000187d4 lw gp, 0x18(sp) | gp = *(var_18h);
| if (v0 != 0) {
0x000187d8 bnez v0, 0x188e0 | goto label_2;
| }
0x000187dc lw t9, -0x7f24(gp) | t9 = sym.xfree;
0x000187e0 move a0, s0 | a0 = s0;
0x000187e4 jalr t9 | t9 ();
0x000187e8 lw gp, 0x18(sp) | gp = *(var_18h);
0x000187ec move a0, zero | a0 = 0;
0x000187f0 lw t9, -0x7f24(gp) | t9 = sym.xfree;
0x000187f4 move s0, zero | s0 = 0;
0x000187f8 jalr t9 | t9 ();
0x000187fc lw ra, 0x2c(sp) | ra = *(var_2ch);
0x00018800 move v0, s0 | v0 = s0;
0x00018804 lw s2, 0x28(sp) | s2 = *(var_28h);
0x00018808 lw s1, 0x24(sp) | s1 = *(var_24h);
0x0001880c lw s0, 0x20(sp) | s0 = *(var_20h);
0x00018810 addiu sp, sp, 0x30 |
0x00018814 jr ra | return v0;
0x00018818 move a2, zero | a2 = 0;
0x0001881c jalr t9 | t9 ();
0x00018820 move s2, v0 | s2 = v0;
0x00018824 lw gp, 0x18(sp) | gp = *(var_18h);
0x00018828 beqz v0, 0x18738 |
| }
0x0001882c lw t9, -0x78a0(gp) | t9 = sym.imp.strlen;
0x00018830 move a0, v0 | a0 = v0;
0x00018834 jalr t9 | t9 ();
0x00018838 lw gp, 0x18(sp) | gp = *(var_18h);
0x0001883c lw t9, -0x7f28(gp) | t9 = sym.xmalloc;
0x00018840 addiu a0, v0, 0x1c | a0 = v0 + 0x1c;
0x00018844 jalr t9 | t9 ();
0x00018848 lw gp, 0x18(sp) | gp = *(var_18h);
0x0001884c move s1, v0 | s1 = v0;
0x00018850 move a0, v0 | a0 = v0;
0x00018854 lw v0, -0x7fdc(gp) | v0 = *(gp);
0x00018858 lw a3, -0x7fdc(gp) | a3 = *(gp);
| /* str.Enter_new_filename */
0x0001885c addiu v0, v0, 0x5004 | v0 += 0x5004;
0x00018860 lw t9, -0x794c(gp) | t9 = sym.imp.__sprintf_chk
| /* str._s___s_:_ */
0x00018864 addiu a3, a3, 0x4ff8 | a3 += 0x4ff8;
0x00018868 addiu a2, zero, -1 | a2 = -1;
0x0001886c addiu a1, zero, 1 | a1 = 1;
0x00018870 sw s2, 0x14(sp) | *(var_14h) = s2;
0x00018874 sw v0, 0x10(sp) | *(var_10h) = v0;
0x00018878 jalr t9 | t9 ();
0x0001887c lw gp, 0x18(sp) | gp = *(var_18h);
0x00018880 lw t9, -0x7c04(gp) | t9 = sym.tty_enable_completion;
0x00018884 move a0, zero | a0 = 0;
0x00018888 bal 0x6458 | sym_tty_enable_completion ();
0x0001888c lw gp, 0x18(sp) | gp = *(var_18h);
0x00018890 move a1, s1 | a1 = s1;
0x00018894 lw a0, -0x7fdc(gp) | a0 = *(gp);
0x00018898 lw t9, -0x7c00(gp) | t9 = sym.cpr_get;
| /* str.openfile.askoutname */
0x0001889c addiu a0, a0, 0x5018 | a0 += 0x5018;
0x000188a0 bal 0x22690 | sym_cpr_get ();
0x000188a4 lw gp, 0x18(sp) | gp = *(var_18h);
0x000188a8 lw t9, -0x7bfc(gp) | t9 = sym.cpr_kill_prompt;
0x000188ac move s0, v0 | s0 = v0;
0x000188b0 bal 0x227a0 | sym_cpr_kill_prompt ();
0x000188b4 lw gp, 0x18(sp) | gp = *(var_18h);
0x000188b8 lw t9, -0x7bf8(gp) | t9 = sym.tty_disable_completion;
0x000188bc bal 0x6460 | sym_tty_disable_completion ();
0x000188c0 nop |
0x000188c4 lw gp, 0x18(sp) | gp = *(var_18h);
0x000188c8 lw t9, -0x7f24(gp) | t9 = sym.xfree;
0x000188cc move a0, s1 | a0 = s1;
0x000188d0 jalr t9 | t9 ();
0x000188d4 lb v0, (s0) | v0 = *(s0);
0x000188d8 lw gp, 0x18(sp) | gp = *(var_18h);
| if (v0 == 0) {
0x000188dc beqz v0, 0x18934 | goto label_3;
| }
| label_2:
0x000188e0 lw t9, -0x7f24(gp) | t9 = sym.xfree;
0x000188e4 move a0, s2 | a0 = s2;
0x000188e8 jalr t9 | t9 ();
0x000188ec lw gp, 0x18(sp) | gp = *(var_18h);
| do {
0x000188f0 lw t9, -0x7bf4(gp) | t9 = sym.trim_spaces;
0x000188f4 move a0, s0 | a0 = s0;
0x000188f8 jalr t9 | t9 ();
0x000188fc lw ra, 0x2c(sp) | ra = *(var_2ch);
0x00018900 move v0, s0 | v0 = s0;
0x00018904 lw s2, 0x28(sp) | s2 = *(var_28h);
0x00018908 lw s1, 0x24(sp) | s1 = *(var_24h);
0x0001890c lw s0, 0x20(sp) | s0 = *(var_20h);
0x00018910 addiu sp, sp, 0x30 |
0x00018914 jr ra | return v0;
| label_0:
0x00018918 move s0, zero | s0 = 0;
0x0001891c move v0, s0 | v0 = s0;
0x00018920 lw s2, 0x28(sp) | s2 = *(var_28h);
0x00018924 lw s1, 0x24(sp) | s1 = *(var_24h);
0x00018928 lw s0, 0x20(sp) | s0 = *(var_20h);
0x0001892c addiu sp, sp, 0x30 |
0x00018930 jr ra | return v0;
| label_3:
0x00018934 lw t9, -0x7f24(gp) | t9 = sym.xfree;
0x00018938 move a0, s0 | a0 = s0;
0x0001893c jalr t9 | t9 ();
0x00018940 lw gp, 0x18(sp) | gp = *(var_18h);
0x00018944 move a0, zero | a0 = 0;
0x00018948 lw t9, -0x7f24(gp) | t9 = sym.xfree;
0x0001894c move s0, s2 | s0 = s2;
0x00018950 jalr t9 | t9 ();
0x00018954 lw gp, 0x18(sp) | gp = *(var_18h);
0x00018958 b 0x188f0 |
| } while (1);
| }
; assembly | /* r2dec pseudo code output */
| /* /logs/firmware/unblob_extracted/firmware_extract/4325012-58052244.squashfs_v4_le_extract/usr/bin/gpgv @ 0x1a0ec */
| #include <stdint.h>
|
; (fcn) sym.colon_datestr_from_pk () | void colon_datestr_from_pk () {
0x0001a0ec lui gp, 5 |
0x0001a0f0 addiu gp, gp, -0x7fbc |
0x0001a0f4 addu gp, gp, t9 | gp += t9;
0x0001a0f8 lw v0, -0x7fc8(gp) | v0 = *(gp);
0x0001a0fc addiu sp, sp, -0x28 |
0x0001a100 lw a1, (a0) | a1 = *(a0);
0x0001a104 lw v0, 0x1b0(v0) | v0 = *(v0);
0x0001a108 sw gp, 0x18(sp) | *(var_18h) = gp;
0x0001a10c sw ra, 0x24(sp) | *(var_24h) = ra;
0x0001a110 sw s0, 0x20(sp) | *(var_20h) = s0;
0x0001a114 lw a0, -0x7fb4(gp) | a0 = *((gp - 8173));
| if (v0 == 0) {
0x0001a118 bnez v0, 0x1a138 |
0x0001a11c lw t9, -0x7bd4(gp) | t9 = *(gp);
0x0001a120 lw ra, 0x24(sp) | ra = *(var_24h);
0x0001a124 lw s0, 0x20(sp) | s0 = *(var_20h);
0x0001a128 addiu a0, a0, -0x4dd4 | a0 += -0x4dd4;
| /* fcn.00019034 */
0x0001a12c addiu t9, t9, -0x6fcc | t9 += -0x6fcc;
0x0001a130 addiu sp, sp, 0x28 |
0x0001a134 b 0x19034 | void (*0x19034)() ();
| }
0x0001a138 lw s0, -0x7fb4(gp) | s0 = *((gp - 8173));
0x0001a13c lw a3, -0x7fdc(gp) | a3 = *(gp);
0x0001a140 lw t9, -0x794c(gp) | t9 = sym.imp.__sprintf_chk
0x0001a144 sw a1, 0x10(sp) | *(var_10h) = a1;
0x0001a148 addiu a0, s0, -0x4e44 | a0 = s0 + -0x4e44;
| /* esilref: '&lu' */
0x0001a14c addiu a3, a3, 0x4eb0 | a3 += 0x4eb0;
0x0001a150 addiu a2, zero, 0xf | a2 = 0xf;
0x0001a154 addiu a1, zero, 1 | a1 = 1;
0x0001a158 jalr t9 | t9 ();
0x0001a15c lw ra, 0x24(sp) | ra = *(var_24h);
0x0001a160 addiu v0, s0, -0x4e44 | v0 = s0 + -0x4e44;
0x0001a164 lw s0, 0x20(sp) | s0 = *(var_20h);
0x0001a168 addiu sp, sp, 0x28 |
0x0001a16c jr ra | return v0;
| }
; assembly | /* r2dec pseudo code output */
| /* /logs/firmware/unblob_extracted/firmware_extract/4325012-58052244.squashfs_v4_le_extract/usr/bin/gpgv @ 0x1a1f4 */
| #include <stdint.h>
|
; (fcn) sym.colon_datestr_from_sig () | void colon_datestr_from_sig () {
0x0001a1f4 lui gp, 4 |
0x0001a1f8 addiu gp, gp, 0x7f3c |
0x0001a1fc addu gp, gp, t9 | gp += t9;
0x0001a200 lw v0, -0x7fc8(gp) | v0 = *(gp);
0x0001a204 addiu sp, sp, -0x28 |
0x0001a208 lw a1, 0xc(a0) | a1 = *((a0 + 3));
0x0001a20c lw v0, 0x1b0(v0) | v0 = *(v0);
0x0001a210 sw gp, 0x18(sp) | *(var_18h) = gp;
0x0001a214 sw ra, 0x24(sp) | *(var_24h) = ra;
0x0001a218 sw s0, 0x20(sp) | *(var_20h) = s0;
0x0001a21c lw a0, -0x7fb4(gp) | a0 = *((gp - 8173));
| if (v0 == 0) {
0x0001a220 bnez v0, 0x1a240 |
0x0001a224 lw t9, -0x7bd4(gp) | t9 = *(gp);
0x0001a228 lw ra, 0x24(sp) | ra = *(var_24h);
0x0001a22c lw s0, 0x20(sp) | s0 = *(var_20h);
0x0001a230 addiu a0, a0, -0x4df4 | a0 += -0x4df4;
| /* fcn.00019034 */
0x0001a234 addiu t9, t9, -0x6fcc | t9 += -0x6fcc;
0x0001a238 addiu sp, sp, 0x28 |
0x0001a23c b 0x19034 | void (*0x19034)() ();
| }
0x0001a240 lw s0, -0x7fb4(gp) | s0 = *((gp - 8173));
0x0001a244 lw a3, -0x7fdc(gp) | a3 = *(gp);
0x0001a248 lw t9, -0x794c(gp) | t9 = sym.imp.__sprintf_chk
0x0001a24c sw a1, 0x10(sp) | *(var_10h) = a1;
0x0001a250 addiu a0, s0, -0x4e64 | a0 = s0 + -0x4e64;
| /* esilref: '&lu' */
0x0001a254 addiu a3, a3, 0x4eb0 | a3 += 0x4eb0;
0x0001a258 addiu a2, zero, 0xf | a2 = 0xf;
0x0001a25c addiu a1, zero, 1 | a1 = 1;
0x0001a260 jalr t9 | t9 ();
0x0001a264 lw ra, 0x24(sp) | ra = *(var_24h);
0x0001a268 addiu v0, s0, -0x4e64 | v0 = s0 + -0x4e64;
0x0001a26c lw s0, 0x20(sp) | s0 = *(var_20h);
0x0001a270 addiu sp, sp, 0x28 |
0x0001a274 jr ra | return v0;
| }
; assembly | /* r2dec pseudo code output */
| /* /logs/firmware/unblob_extracted/firmware_extract/4325012-58052244.squashfs_v4_le_extract/usr/bin/gpgv @ 0x1a170 */
| #include <stdint.h>
|
; (fcn) sym.colon_datestr_from_sk () | void colon_datestr_from_sk () {
0x0001a170 lui gp, 4 |
0x0001a174 addiu gp, gp, 0x7fc0 |
0x0001a178 addu gp, gp, t9 | gp += t9;
0x0001a17c lw v0, -0x7fc8(gp) | v0 = *(gp);
0x0001a180 addiu sp, sp, -0x28 |
0x0001a184 lw a1, (a0) | a1 = *(a0);
0x0001a188 lw v0, 0x1b0(v0) | v0 = *(v0);
0x0001a18c sw gp, 0x18(sp) | *(var_18h) = gp;
0x0001a190 sw ra, 0x24(sp) | *(var_24h) = ra;
0x0001a194 sw s0, 0x20(sp) | *(var_20h) = s0;
0x0001a198 lw a0, -0x7fb4(gp) | a0 = *((gp - 8173));
| if (v0 == 0) {
0x0001a19c bnez v0, 0x1a1bc |
0x0001a1a0 lw t9, -0x7bd4(gp) | t9 = *(gp);
0x0001a1a4 lw ra, 0x24(sp) | ra = *(var_24h);
0x0001a1a8 lw s0, 0x20(sp) | s0 = *(var_20h);
0x0001a1ac addiu a0, a0, -0x4de4 | a0 += -0x4de4;
| /* fcn.00019034 */
0x0001a1b0 addiu t9, t9, -0x6fcc | t9 += -0x6fcc;
0x0001a1b4 addiu sp, sp, 0x28 |
0x0001a1b8 b 0x19034 | void (*0x19034)() ();
| }
0x0001a1bc lw s0, -0x7fb4(gp) | s0 = *((gp - 8173));
0x0001a1c0 lw a3, -0x7fdc(gp) | a3 = *(gp);
0x0001a1c4 lw t9, -0x794c(gp) | t9 = sym.imp.__sprintf_chk
0x0001a1c8 sw a1, 0x10(sp) | *(var_10h) = a1;
0x0001a1cc addiu a0, s0, -0x4e54 | a0 = s0 + -0x4e54;
| /* esilref: '&lu' */
0x0001a1d0 addiu a3, a3, 0x4eb0 | a3 += 0x4eb0;
0x0001a1d4 addiu a2, zero, 0xf | a2 = 0xf;
0x0001a1d8 addiu a1, zero, 1 | a1 = 1;
0x0001a1dc jalr t9 | t9 ();
0x0001a1e0 lw ra, 0x24(sp) | ra = *(var_24h);
0x0001a1e4 addiu v0, s0, -0x4e54 | v0 = s0 + -0x4e54;
0x0001a1e8 lw s0, 0x20(sp) | s0 = *(var_20h);
0x0001a1ec addiu sp, sp, 0x28 |
0x0001a1f0 jr ra | return v0;
| }
; assembly | /* r2dec pseudo code output */
| /* /logs/firmware/unblob_extracted/firmware_extract/4325012-58052244.squashfs_v4_le_extract/usr/bin/gpgv @ 0x1a278 */
| #include <stdint.h>
|
; (fcn) sym.colon_expirestr_from_sig () | void colon_expirestr_from_sig () {
0x0001a278 lui gp, 4 |
0x0001a27c addiu gp, gp, 0x7eb8 |
0x0001a280 addu gp, gp, t9 | gp += t9;
0x0001a284 addiu sp, sp, -0x28 |
0x0001a288 lw a1, 0x10(a0) | a1 = *((a0 + 4));
0x0001a28c sw gp, 0x18(sp) | *(var_18h) = gp;
0x0001a290 sw ra, 0x24(sp) | *(var_24h) = ra;
0x0001a294 sw s0, 0x20(sp) | *(var_20h) = s0;
0x0001a298 lw v0, -0x7fc8(gp) | v0 = *(gp);
| if (a1 != 0) {
0x0001a29c beqz a1, 0x1a300 |
0x0001a2a0 lw v0, 0x1b0(v0) | v0 = *(v0);
0x0001a2a4 lw a0, -0x7fb4(gp) | a0 = *((gp - 8173));
| if (v0 == 0) {
0x0001a2a8 bnez v0, 0x1a2c8 |
0x0001a2ac lw t9, -0x7bd4(gp) | t9 = *(gp);
0x0001a2b0 lw ra, 0x24(sp) | ra = *(var_24h);
0x0001a2b4 lw s0, 0x20(sp) | s0 = *(var_20h);
0x0001a2b8 addiu a0, a0, -0x4e14 | a0 += -0x4e14;
| /* fcn.00019034 */
0x0001a2bc addiu t9, t9, -0x6fcc | t9 += -0x6fcc;
0x0001a2c0 addiu sp, sp, 0x28 |
0x0001a2c4 b 0x19034 | void (*0x19034)() ();
| }
0x0001a2c8 lw s0, -0x7fb4(gp) | s0 = *((gp - 8173));
0x0001a2cc lw a3, -0x7fdc(gp) | a3 = *(gp);
0x0001a2d0 lw t9, -0x794c(gp) | t9 = sym.imp.__sprintf_chk
0x0001a2d4 sw a1, 0x10(sp) | *(var_10h) = a1;
0x0001a2d8 addiu a0, s0, -0x4e74 | a0 = s0 + -0x4e74;
| /* esilref: '&lu' */
0x0001a2dc addiu a3, a3, 0x4eb0 | a3 += 0x4eb0;
0x0001a2e0 addiu a2, zero, 0xf | a2 = 0xf;
0x0001a2e4 addiu a1, zero, 1 | a1 = 1;
0x0001a2e8 jalr t9 | t9 ();
0x0001a2ec lw ra, 0x24(sp) | ra = *(var_24h);
0x0001a2f0 addiu v0, s0, -0x4e74 | v0 = s0 + -0x4e74;
0x0001a2f4 lw s0, 0x20(sp) | s0 = *(var_20h);
0x0001a2f8 addiu sp, sp, 0x28 |
0x0001a2fc jr ra | return v0;
| }
0x0001a300 lw ra, 0x24(sp) | ra = *(var_24h);
0x0001a304 lw v0, -0x7fdc(gp) | v0 = *(gp);
0x0001a308 lw s0, 0x20(sp) | s0 = *(var_20h);
0x0001a30c addiu v0, v0, 0x4b84 | v0 += 0x4b84;
0x0001a310 addiu sp, sp, 0x28 |
0x0001a314 jr ra | return v0;
| }
; assembly | /* r2dec pseudo code output */
| /* /logs/firmware/unblob_extracted/firmware_extract/4325012-58052244.squashfs_v4_le_extract/usr/bin/gpgv @ 0x1a05c */
| #include <stdint.h>
|
; (fcn) sym.colon_strtime () | void colon_strtime () {
0x0001a05c lui gp, 5 |
0x0001a060 addiu gp, gp, -0x7f2c |
0x0001a064 addu gp, gp, t9 | gp += t9;
0x0001a068 addiu sp, sp, -0x28 |
0x0001a06c sw gp, 0x18(sp) | *(var_18h) = gp;
0x0001a070 sw ra, 0x24(sp) | *(var_24h) = ra;
0x0001a074 sw s0, 0x20(sp) | *(var_20h) = s0;
0x0001a078 lw v1, -0x7fc8(gp) | v1 = *(gp);
| if (a0 != 0) {
0x0001a07c beqz a0, 0x1a0d4 |
0x0001a080 lw v1, 0x1b0(v1) | v1 = *(v1);
0x0001a084 lw ra, 0x24(sp) | ra = *(var_24h);
| if (v1 == 0) {
0x0001a088 bnez v1, 0x1a09c |
0x0001a08c lw s0, 0x20(sp) | s0 = *(var_20h);
0x0001a090 lw t9, -0x7d48(gp) | t9 = sym.strtimestamp;
0x0001a094 addiu sp, sp, 0x28 |
0x0001a098 b 0x38df8 | void (*0x38df8)() ();
| }
0x0001a09c lw s0, -0x7fb4(gp) | s0 = *((gp - 8173));
0x0001a0a0 lw a3, -0x7fdc(gp) | a3 = *(gp);
0x0001a0a4 lw t9, -0x794c(gp) | t9 = sym.imp.__sprintf_chk
0x0001a0a8 sw a0, 0x10(sp) | *(var_10h) = a0;
| /* esilref: '&lu' */
0x0001a0ac addiu a3, a3, 0x4eb0 | a3 += 0x4eb0;
0x0001a0b0 addiu a0, s0, -0x4e34 | a0 = s0 + -0x4e34;
0x0001a0b4 addiu a2, zero, 0xf | a2 = 0xf;
0x0001a0b8 addiu a1, zero, 1 | a1 = 1;
0x0001a0bc jalr t9 | t9 ();
0x0001a0c0 lw ra, 0x24(sp) | ra = *(var_24h);
0x0001a0c4 addiu v0, s0, -0x4e34 | v0 = s0 + -0x4e34;
0x0001a0c8 lw s0, 0x20(sp) | s0 = *(var_20h);
0x0001a0cc addiu sp, sp, 0x28 |
0x0001a0d0 jr ra | return v0;
| }
0x0001a0d4 lw ra, 0x24(sp) | ra = *(var_24h);
0x0001a0d8 lw v0, -0x7fdc(gp) | v0 = *(gp);
0x0001a0dc lw s0, 0x20(sp) | s0 = *(var_20h);
0x0001a0e0 addiu v0, v0, 0x4b84 | v0 += 0x4b84;
0x0001a0e4 addiu sp, sp, 0x28 |
0x0001a0e8 jr ra | return v0;
| }
; assembly | /* r2dec pseudo code output */
| /* /logs/firmware/unblob_extracted/firmware_extract/4325012-58052244.squashfs_v4_le_extract/usr/bin/gpgv @ 0x3d3b4 */
| #include <stdint.h>
|
; (fcn) sym.g10_errstr () | void g10_errstr () {
0x0003d3b4 lui gp, 2 |
0x0003d3b8 addiu gp, gp, 0x4d7c |
0x0003d3bc addu gp, gp, t9 | gp += t9;
0x0003d3c0 addiu sp, sp, -0x28 |
0x0003d3c4 addiu v0, a0, 1 | v0 = a0 + 1;
0x0003d3c8 sltiu v1, v0, 0x3c | v1 = (v0 < 0x3c) ? 1 : 0;
0x0003d3cc sw gp, 0x18(sp) | *(var_18h) = gp;
0x0003d3d0 sw ra, 0x24(sp) | *(var_24h) = ra;
0x0003d3d4 sw s0, 0x20(sp) | *(var_20h) = s0;
0x0003d3d8 sll v1, v0, 2 | v1 = v0 << 2;
| if (v1 == 0) {
0x0003d3dc beqz v1, 0x3d6bc | goto label_0;
| }
0x0003d3e0 lw v0, -0x7d90(gp) | v0 = *((gp - 8036));
0x0003d3e4 addiu v0, v0, -0x6ffc | v0 += -0x6ffc;
0x0003d3e8 lwx v0, v1(v0) | __asm ("lwx v0, v1(v0)");
0x0003d3ec addu v0, v0, gp | v0 += gp;
0x0003d3f0 jr v0 | v0 ();
0x0003d3f4 nop |
| do {
0x0003d400 lw ra, 0x24(sp) | ra = *(var_24h);
0x0003d404 lw s0, 0x20(sp) | s0 = *(var_20h);
0x0003d408 addiu sp, sp, 0x28 |
0x0003d40c jr ra | return v0;
| label_0:
0x0003d6bc lw s0, -0x7fb4(gp) | s0 = *((gp - 8173));
0x0003d6c0 lw a3, -0x7d90(gp) | a3 = *((gp - 8036));
0x0003d6c4 lw t9, -0x794c(gp) | t9 = sym.imp.__sprintf_chk
0x0003d6c8 sw a0, 0x10(sp) | *(var_10h) = a0;
| /* str.g10err_d */
0x0003d6cc addiu a3, a3, -0x7008 | a3 += -0x7008;
0x0003d6d0 addiu a2, zero, 0x32 | a2 = 0x32;
0x0003d6d4 addiu a1, zero, 1 | a1 = 1;
0x0003d6d8 addiu a0, s0, -0x48fc | a0 = s0 + -0x48fc;
0x0003d6dc jalr t9 | t9 ();
0x0003d6e0 addiu v0, s0, -0x48fc | v0 = s0 + -0x48fc;
0x0003d6e4 b 0x3d400 |
| } while (1);
| }
; assembly | /* r2dec pseudo code output */
| /* /logs/firmware/unblob_extracted/firmware_extract/4325012-58052244.squashfs_v4_le_extract/usr/bin/gpgv @ 0x22cb4 */
| #include <stdint.h>
|
; (fcn) sym.handle_plaintext () | void handle_plaintext () {
0x00022cb4 lui gp, 4 |
0x00022cb8 addiu gp, gp, -0xb84 |
0x00022cbc addu gp, gp, t9 | gp += t9;
0x00022cc0 lw v0, -0x781c(gp) | v0 = *((gp - 7687));
0x00022cc4 addiu sp, sp, -0x88 |
0x00022cc8 lw v1, (v0) | v1 = *(v0);
0x00022ccc sw v0, 0x20(sp) | *(var_20h) = v0;
0x00022cd0 lw v0, 0xc(a0) | v0 = *((a0 + 3));
0x00022cd4 sw gp, 0x18(sp) | *(var_18h) = gp;
0x00022cd8 sw s5, 0x74(sp) | *(var_74h) = s5;
0x00022cdc sw s4, 0x70(sp) | *(var_70h) = s4;
0x00022ce0 sw s2, 0x68(sp) | *(var_68h) = s2;
0x00022ce4 sw s0, 0x60(sp) | *(var_60h) = s0;
0x00022ce8 sw ra, 0x84(sp) | *(var_84h) = ra;
0x00022cec sw fp, 0x80(sp) | *(var_80h) = fp;
0x00022cf0 sw s7, 0x7c(sp) | *(var_7ch) = s7;
0x00022cf4 sw s6, 0x78(sp) | *(var_78h) = s6;
0x00022cf8 sw s3, 0x6c(sp) | *(var_6ch) = s3;
0x00022cfc sw s1, 0x64(sp) | *(var_64h) = s1;
0x00022d00 move s0, a0 | s0 = a0;
0x00022d04 move s2, a1 | s2 = a1;
0x00022d08 move s5, a3 | s5 = a3;
0x00022d0c sw v1, 0x5c(sp) | *(var_5ch) = v1;
0x00022d10 addiu s4, v0, -0x74 | s4 = v0 + -0x74;
| if (a2 == 0) {
0x00022d14 beqz a2, 0x230cc | goto label_35;
| }
0x00022d18 move s3, zero | s3 = 0;
0x00022d1c move s1, zero | s1 = 0;
| label_5:
0x00022d20 lbu v0, 9(s0) | v0 = *((s0 + 9));
| if (v0 != 0) {
| label_6:
0x00022d24 bnez v0, 0x22e9c | goto label_36;
| }
0x00022d28 nop |
0x00022d2c sltiu v0, s4, 2 | v0 = (s4 < 2) ? 1 : 0;
| if (s5 != 0) {
0x00022d30 bnez s5, 0x23868 | goto label_37;
| }
0x00022d34 lw t9, -0x7f28(gp) | t9 = sym.xmalloc;
| if (v0 == 0) {
0x00022d38 beqz v0, 0x23618 | goto label_38;
| }
0x00022d3c lw v0, (s0) | v0 = *(s0);
0x00022d40 lw s6, -0x7fc8(gp) | s6 = *(gp);
| if (v0 == 0) {
0x00022d44 beqz v0, 0x2300c | goto label_14;
| }
0x00022d48 lw s4, -0x7fb4(gp) | s4 = *((gp - 8173));
0x00022d4c addiu s5, zero, -1 | s5 = -1;
0x00022d50 addiu s7, zero, 0xd | s7 = 0xd;
0x00022d54 b 0x22e20 |
| while (v1 == 0) {
0x00022d58 lw a3, 0x14(a0) | a3 = *((a0 + 5));
0x00022d5c addiu a1, v1, 1 | a1 = v1 + 1;
0x00022d60 sltu v1, a1, v1 | v1 = (a1 < v1) ? 1 : 0;
0x00022d64 lw a2, 0x34(a0) | a2 = *((a0 + 13));
0x00022d68 addu v1, v1, a3 | v1 += a3;
0x00022d6c addiu a3, v0, 1 | a3 = v0 + 1;
0x00022d70 sw a1, 0x10(a0) | *((a0 + 4)) = a1;
0x00022d74 sw v1, 0x14(a0) | *((a0 + 5)) = v1;
0x00022d78 sw a3, 0x2c(a0) | *((a0 + 11)) = a3;
0x00022d7c lbux v0, v0(a2) | __asm ("lbux v0, v0(a2)");
| label_0:
0x00022d80 lw a0, (s2) | a0 = *(s2);
| if (a0 != 0) {
0x00022d84 beqz a0, 0x22dac |
0x00022d88 nop |
0x00022d8c lw v1, 0x10(a0) | v1 = *((a0 + 4));
0x00022d90 lw a1, 0x14(a0) | a1 = *((a0 + 5));
0x00022d94 lw t9, -0x7be4(gp) | t9 = sym.md_write;
| if (v1 == a1) {
0x00022d98 beq v1, a1, 0x22fd8 | goto label_39;
| }
| label_4:
0x00022d9c addu a1, a0, v1 | a1 = a0 + v1;
0x00022da0 addiu v1, v1, 1 | v1++;
0x00022da4 sw v1, 0x10(a0) | *((a0 + 4)) = v1;
0x00022da8 sb v0, 0x18(a1) | *((a1 + 24)) = v0;
| }
| if (v0 != s7) {
0x00022dac beql v0, s7, 0x22e14 |
0x00022db0 lw v0, (s0) | v0 = *(s0);
| if (s1 == 0) {
0x00022db4 beql s1, zero, 0x22e14 | goto label_40;
| }
0x00022db8 lw v0, (s0) | v0 = *(s0);
0x00022dbc lw a2, 0x18(s6) | a2 = *((s6 + 6));
0x00022dc0 lw a0, 0x1c(s6) | a0 = *((s6 + 7));
0x00022dc4 or v1, a2, a0 | v1 = a2 | a0;
0x00022dc8 lw v1, -0x4c98(s4) | v1 = *((s4 - 4902));
| if (v1 != 0) {
0x00022dcc beqz v1, 0x22df8 |
0x00022dd0 lw a3, -0x4c94(s4) | a3 = *((s4 - 4901));
0x00022dd4 addiu a1, v1, 1 | a1 = v1 + 1;
0x00022dd8 sltu v1, a1, v1 | v1 = (a1 < v1) ? 1 : 0;
0x00022ddc addu v1, v1, a3 | v1 += a3;
0x00022de0 slt a3, a0, v1 | a3 = (a0 < v1) ? 1 : 0;
0x00022de4 sw a1, -0x4c98(s4) | *((s4 - 4902)) = a1;
0x00022de8 sw v1, -0x4c94(s4) | *((s4 - 4901)) = v1;
| if (a3 != 0) {
0x00022dec bnez a3, 0x237f0 | goto label_41;
| }
0x00022df0 sltu a1, a2, a1 | a1 = (a2 < a1) ? 1 : 0;
| if (v1 == a0) {
0x00022df4 beq v1, a0, 0x23924 | goto label_42;
| }
| }
0x00022df8 lw t9, -0x7840(gp) | t9 = sym.imp._IO_putc;
| label_30:
0x00022dfc move a1, s1 | a1 = s1;
0x00022e00 move a0, v0 | a0 = v0;
0x00022e04 jalr t9 | t9 ();
0x00022e08 lw gp, 0x18(sp) | gp = *(var_18h);
| if (v0 == s5) {
0x00022e0c beq v0, s5, 0x22f98 | goto label_10;
| }
0x00022e10 lw v0, (s0) | v0 = *(s0);
| }
| label_40:
0x00022e14 addiu v0, v0, -1 | v0 += -1;
0x00022e18 sw v0, (s0) | *(s0) = v0;
| if (v0 == 0) {
0x00022e1c beqz v0, 0x2300c | goto label_14;
| }
0x00022e20 lw a0, 4(s0) | a0 = *((s0 + 1));
0x00022e24 lw v0, 0x20(a0) | v0 = *((a0 + 8));
0x00022e28 lw t9, -0x7c38(gp) | t9 = sym.iobuf_readbyte;
| if (v0 != 0) {
0x00022e2c bnez v0, 0x22e48 | goto label_43;
| }
0x00022e30 lw v0, 0x2c(a0) | v0 = *((a0 + 11));
0x00022e34 lw v1, 0x30(a0) | v1 = *((a0 + 12));
0x00022e38 sltu v1, v0, v1 | v1 = (v0 < v1) ? 1 : 0;
0x00022e3c lw v1, 0x10(a0) | v1 = *((a0 + 4));
0x00022e40 bnel v1, zero, 0x22d58 |
| }
0x00022e44 lw t9, -0x7c38(gp) | t9 = sym.iobuf_readbyte;
| label_43:
0x00022e48 bal 0x3fb3c | sym_iobuf_readbyte ();
0x00022e4c nop |
0x00022e50 lw gp, 0x18(sp) | gp = *(var_18h);
| if (v0 != s5) {
0x00022e54 bne v0, s5, 0x22d80 | goto label_0;
| }
0x00022e58 lw a0, -0x7fdc(gp) | a0 = *(gp);
0x00022e5c lw t9, -0x7f84(gp) | t9 = sym.g10_log_error;
0x00022e60 lw a1, (s0) | a1 = *(s0);
| /* str.Problem_reading_source___u_bytes_remaining__n */
0x00022e64 addiu a0, a0, 0x6da4 | a0 += 0x6da4;
0x00022e68 bal 0x38550 | sym_g10_log_error ();
0x00022e6c lw gp, 0x18(sp) | gp = *(var_18h);
0x00022e70 addiu s0, zero, 0x15 | s0 = 0x15;
| label_27:
0x00022e74 lw t9, -0x7f24(gp) | t9 = sym.xfree;
| if (s1 == 0) {
0x00022e78 beqz s1, 0x2307c | goto label_44;
| }
| label_3:
0x00022e7c lw v0, -0x78e0(gp) | v0 = *((gp - 7736));
0x00022e80 lw v0, (v0) | v0 = *(v0);
0x00022e84 lw t9, -0x7910(gp) | t9 = sym.imp.fclose;
| if (v0 == s1) {
0x00022e88 beq v0, s1, 0x23078 | goto label_9;
| }
0x00022e8c move a0, s1 | a0 = s1;
0x00022e90 jalr t9 | t9 ();
0x00022e94 lw gp, 0x18(sp) | gp = *(var_18h);
0x00022e98 b 0x23078 | goto label_9;
| label_36:
0x00022e9c lw s6, -0x7fc8(gp) | s6 = *(gp);
| if (s5 != 0) {
0x00022ea0 bnez s5, 0x23268 | goto label_45;
| }
0x00022ea4 sltiu v0, s4, 2 | v0 = (s4 < 2) ? 1 : 0;
0x00022ea8 lw s4, -0x7fb4(gp) | s4 = *((gp - 8173));
| if (v0 == 0) {
0x00022eac beqz v0, 0x23468 | goto label_46;
| }
0x00022eb0 addiu s5, zero, -1 | s5 = -1;
0x00022eb4 addiu s7, zero, 0xd | s7 = 0xd;
| label_2:
0x00022eb8 lw a0, 4(s0) | a0 = *((s0 + 1));
| do {
| label_1:
0x00022ebc lw v0, 0x20(a0) | v0 = *((a0 + 8));
0x00022ec0 lw t9, -0x7c38(gp) | t9 = sym.iobuf_readbyte;
| if (v0 != 0) {
0x00022ec4 bnez v0, 0x235dc | goto label_47;
| }
0x00022ec8 lw v0, 0x2c(a0) | v0 = *((a0 + 11));
0x00022ecc lw v1, 0x30(a0) | v1 = *((a0 + 12));
0x00022ed0 sltu v1, v0, v1 | v1 = (v0 < v1) ? 1 : 0;
| if (v1 == 0) {
0x00022ed4 beqz v1, 0x235dc | goto label_47;
| }
0x00022ed8 nop |
0x00022edc lw v1, 0x10(a0) | v1 = *((a0 + 4));
0x00022ee0 lw a3, 0x14(a0) | a3 = *((a0 + 5));
0x00022ee4 addiu a1, v1, 1 | a1 = v1 + 1;
0x00022ee8 sltu v1, a1, v1 | v1 = (a1 < v1) ? 1 : 0;
0x00022eec lw a2, 0x34(a0) | a2 = *((a0 + 13));
0x00022ef0 addu v1, v1, a3 | v1 += a3;
0x00022ef4 addiu a3, v0, 1 | a3 = v0 + 1;
0x00022ef8 sw a1, 0x10(a0) | *((a0 + 4)) = a1;
0x00022efc sw v1, 0x14(a0) | *((a0 + 5)) = v1;
0x00022f00 sw a3, 0x2c(a0) | *((a0 + 11)) = a3;
0x00022f04 lbux v0, v0(a2) | __asm ("lbux v0, v0(a2)");
| label_18:
0x00022f08 lw a0, (s2) | a0 = *(s2);
| if (a0 != 0) {
0x00022f0c beqz a0, 0x22f34 |
0x00022f10 nop |
0x00022f14 lw v1, 0x10(a0) | v1 = *((a0 + 4));
0x00022f18 lw a1, 0x14(a0) | a1 = *((a0 + 5));
| if (v1 == a1) {
0x00022f1c beql v1, a1, 0x235f4 | goto label_48;
| }
0x00022f20 lw t9, -0x7be4(gp) | t9 = sym.md_write;
| label_19:
0x00022f24 addu a1, a0, v1 | a1 = a0 + v1;
0x00022f28 addiu v1, v1, 1 | v1++;
0x00022f2c sw v1, 0x10(a0) | *((a0 + 4)) = v1;
0x00022f30 sb v0, 0x18(a1) | *((a1 + 24)) = v0;
| }
0x00022f34 beql v0, s7, 0x22ebc |
| } while (v0 == s7);
0x00022f38 lw a0, 4(s0) | a0 = *((s0 + 1));
| if (s1 == 0) {
0x00022f3c beql s1, zero, 0x22ebc | goto label_1;
| }
0x00022f40 lw a0, 4(s0) | a0 = *((s0 + 1));
0x00022f44 lw a2, 0x18(s6) | a2 = *((s6 + 6));
0x00022f48 lw a0, 0x1c(s6) | a0 = *((s6 + 7));
0x00022f4c or v1, a2, a0 | v1 = a2 | a0;
0x00022f50 lw v1, -0x4c98(s4) | v1 = *((s4 - 4902));
| if (v1 != 0) {
0x00022f54 beqz v1, 0x22f80 |
0x00022f58 lw a3, -0x4c94(s4) | a3 = *((s4 - 4901));
0x00022f5c addiu a1, v1, 1 | a1 = v1 + 1;
0x00022f60 sltu v1, a1, v1 | v1 = (a1 < v1) ? 1 : 0;
0x00022f64 addu v1, v1, a3 | v1 += a3;
0x00022f68 slt a3, a0, v1 | a3 = (a0 < v1) ? 1 : 0;
0x00022f6c sw a1, -0x4c98(s4) | *((s4 - 4902)) = a1;
0x00022f70 sw v1, -0x4c94(s4) | *((s4 - 4901)) = v1;
| if (a3 != 0) {
0x00022f74 bnez a3, 0x237f0 | goto label_41;
| }
0x00022f78 sltu a1, a2, a1 | a1 = (a2 < a1) ? 1 : 0;
| if (v1 == a0) {
0x00022f7c beq v1, a0, 0x23934 | goto label_49;
| }
| }
0x00022f80 lw t9, -0x7840(gp) | t9 = sym.imp._IO_putc;
| label_32:
0x00022f84 move a1, s1 | a1 = s1;
0x00022f88 move a0, v0 | a0 = v0;
0x00022f8c jalr t9 | t9 ();
0x00022f90 lw gp, 0x18(sp) | gp = *(var_18h);
| if (v0 != s5) {
0x00022f94 bne v0, s5, 0x22eb8 | goto label_2;
| }
| label_10:
0x00022f98 lw t9, -0x78c4(gp) | t9 = sym.imp.__errno_location;
0x00022f9c addiu s0, zero, 0x16 | s0 = 0x16;
0x00022fa0 jalr t9 | t9 ();
0x00022fa4 lw gp, 0x18(sp) | gp = *(var_18h);
0x00022fa8 lw t9, -0x787c(gp) | t9 = sym.imp.strerror;
0x00022fac lw a0, (v0) | a0 = *(v0);
0x00022fb0 jalr t9 | t9 ();
0x00022fb4 lw gp, 0x18(sp) | gp = *(var_18h);
0x00022fb8 move a2, v0 | a2 = v0;
0x00022fbc move a1, s3 | a1 = s3;
0x00022fc0 lw a0, -0x7fdc(gp) | a0 = *(gp);
0x00022fc4 lw t9, -0x7f84(gp) | t9 = sym.g10_log_error;
| /* str.Error_writing_to___s:__s_n */
0x00022fc8 addiu a0, a0, 0x6df4 | a0 += 0x6df4;
0x00022fcc bal 0x38550 | sym_g10_log_error ();
0x00022fd0 lw gp, 0x18(sp) | gp = *(var_18h);
0x00022fd4 b 0x22e7c | goto label_3;
| label_39:
0x00022fd8 sw v0, 0x24(sp) | *(var_24h) = v0;
0x00022fdc move a2, zero | a2 = 0;
0x00022fe0 move a1, zero | a1 = 0;
0x00022fe4 bal 0x28014 | sym_md_write ();
0x00022fe8 lw a0, (s2) | a0 = *(s2);
0x00022fec lw gp, 0x18(sp) | gp = *(var_18h);
0x00022ff0 lw v0, 0x24(sp) | v0 = *(var_24h);
0x00022ff4 lw v1, 0x10(a0) | v1 = *((a0 + 4));
0x00022ff8 b 0x22d9c | goto label_4;
| label_20:
0x00022ffc lw t9, -0x7f24(gp) | t9 = sym.xfree;
0x00023000 move a0, s4 | a0 = s4;
0x00023004 bal 0x3cd20 | sym_xfree ();
0x00023008 lw gp, 0x18(sp) | gp = *(var_18h);
| label_14:
0x0002300c move s0, zero | s0 = 0;
| if (s1 != 0) {
0x00023010 beqz s1, 0x23078 |
0x00023014 lw v0, -0x78e0(gp) | v0 = *((gp - 7736));
0x00023018 lw v0, (v0) | v0 = *(v0);
0x0002301c lw t9, -0x7910(gp) | t9 = sym.imp.fclose;
| if (v0 == s1) {
0x00023020 beq v0, s1, 0x23078 | goto label_9;
| }
0x00023024 move a0, s1 | a0 = s1;
0x00023028 jalr t9 | t9 ();
0x0002302c move s0, v0 | s0 = v0;
0x00023030 lw gp, 0x18(sp) | gp = *(var_18h);
| if (v0 == 0) {
0x00023034 beqz v0, 0x23078 | goto label_9;
| }
0x00023038 lw t9, -0x78c4(gp) | t9 = sym.imp.__errno_location;
0x0002303c addiu s0, zero, 0x16 | s0 = 0x16;
0x00023040 jalr t9 | t9 ();
0x00023044 lw gp, 0x18(sp) | gp = *(var_18h);
0x00023048 lw t9, -0x787c(gp) | t9 = sym.imp.strerror;
0x0002304c lw a0, (v0) | a0 = *(v0);
0x00023050 jalr t9 | t9 ();
0x00023054 lw gp, 0x18(sp) | gp = *(var_18h);
0x00023058 move a2, v0 | a2 = v0;
0x0002305c move a1, s3 | a1 = s3;
0x00023060 lw a0, -0x7fdc(gp) | a0 = *(gp);
0x00023064 lw t9, -0x7f84(gp) | t9 = sym.g10_log_error;
| /* str.Error_closing___s:__s_n */
0x00023068 addiu a0, a0, 0x6e10 | a0 += 0x6e10;
0x0002306c bal 0x38550 | sym_g10_log_error ();
0x00023070 lw gp, 0x18(sp) | gp = *(var_18h);
0x00023074 b 0x23078 |
| }
| label_9:
0x00023078 lw t9, -0x7f24(gp) | t9 = sym.xfree;
| label_44:
0x0002307c move a0, s3 | a0 = s3;
0x00023080 bal 0x3cd20 | sym_xfree ();
0x00023084 lw v0, 0x20(sp) | v0 = *(var_20h);
0x00023088 lw a0, 0x5c(sp) | a0 = *(var_5ch);
0x0002308c lw gp, 0x18(sp) | gp = *(var_18h);
0x00023090 lw v1, (v0) | v1 = *(v0);
0x00023094 move v0, s0 | v0 = s0;
| if (a0 != v1) {
0x00023098 bne a0, v1, 0x23954 | goto label_50;
| }
0x0002309c lw ra, 0x84(sp) | ra = *(var_84h);
0x000230a0 lw fp, 0x80(sp) | fp = *(var_80h);
0x000230a4 lw s7, 0x7c(sp) | s7 = *(var_7ch);
0x000230a8 lw s6, 0x78(sp) | s6 = *(var_78h);
0x000230ac lw s5, 0x74(sp) | s5 = *(var_74h);
0x000230b0 lw s4, 0x70(sp) | s4 = *(var_70h);
0x000230b4 lw s3, 0x6c(sp) | s3 = *(var_6ch);
0x000230b8 lw s2, 0x68(sp) | s2 = *(var_68h);
0x000230bc lw s1, 0x64(sp) | s1 = *(var_64h);
0x000230c0 lw s0, 0x60(sp) | s0 = *(var_60h);
0x000230c4 addiu sp, sp, 0x88 |
0x000230c8 jr ra | return v0;
| label_35:
0x000230cc lw t9, -0x7d88(gp) | t9 = sym.is_status_enabled;
0x000230d0 bal 0x21b70 | sym_is_status_enabled ();
0x000230d4 nop |
0x000230d8 lw gp, 0x18(sp) | gp = *(var_18h);
| if (v0 != 0) {
0x000230dc bnez v0, 0x2374c | goto label_51;
| }
| label_25:
0x000230e0 lw s1, -0x7fc8(gp) | s1 = *(gp);
0x000230e4 lw s3, 0x10(s1) | s3 = *((s1 + 4));
0x000230e8 lw t9, -0x78a0(gp) | t9 = sym.imp.strlen;
| if (s3 == 0) {
0x000230ec beqz s3, 0x231fc | goto label_52;
| }
0x000230f0 move a0, s3 | a0 = s3;
0x000230f4 jalr t9 | t9 ();
0x000230f8 lw gp, 0x18(sp) | gp = *(var_18h);
0x000230fc lw t9, -0x7f28(gp) | t9 = sym.xmalloc;
0x00023100 addiu a0, v0, 1 | a0 = v0 + 1;
0x00023104 bal 0x3cb1c | sym_xmalloc ();
0x00023108 lw gp, 0x18(sp) | gp = *(var_18h);
0x0002310c lw a1, 0x10(s1) | a1 = *((s1 + 4));
0x00023110 move a0, v0 | a0 = v0;
0x00023114 lw t9, -0x7854(gp) | t9 = sym.imp.strcpy;
0x00023118 move s3, v0 | s3 = v0;
0x0002311c jalr t9 | t9 ();
0x00023120 lw gp, 0x18(sp) | gp = *(var_18h);
| label_8:
0x00023124 lw t9, -0x7c2c(gp) | t9 = sym.iobuf_is_pipe_filename;
0x00023128 move a0, s3 | a0 = s3;
0x0002312c bal 0x3e7c0 | sym_iobuf_is_pipe_filename ();
0x00023130 lw gp, 0x18(sp) | gp = *(var_18h);
| if (v0 != 0) {
0x00023134 bnez v0, 0x231e4 | goto label_53;
| }
0x00023138 lb v0, (s3) | v0 = *(s3);
0x0002313c lw t9, -0x7b64(gp) | t9 = sym.overwrite_filep;
| if (v0 != 0) {
0x00023140 bnez v0, 0x23184 | goto label_54;
| }
0x00023144 lw v0, -0x78e0(gp) | v0 = *((gp - 7736));
0x00023148 b 0x231e8 | goto label_55;
| do {
0x0002314c lw t9, -0x7b60(gp) | t9 = sym.ask_outfile_name;
0x00023150 move a1, zero | a1 = 0;
0x00023154 move a0, zero | a0 = 0;
0x00023158 bal 0x186f4 | sym_ask_outfile_name ();
0x0002315c lw gp, 0x18(sp) | gp = *(var_18h);
0x00023160 lw t9, -0x7f24(gp) | t9 = sym.xfree;
| if (v0 == 0) {
0x00023164 beqz v0, 0x23884 | goto label_56;
| }
0x00023168 lb v1, (v0) | v1 = *(v0);
0x0002316c move a0, s3 | a0 = s3;
| if (v1 == 0) {
0x00023170 beqz v1, 0x23884 | goto label_56;
| }
0x00023174 move s3, v0 | s3 = v0;
0x00023178 bal 0x3cd20 | sym_xfree ();
0x0002317c lw gp, 0x18(sp) | gp = *(var_18h);
0x00023180 lw t9, -0x7b64(gp) | t9 = sym.overwrite_filep;
| label_54:
0x00023184 move a0, s3 | a0 = s3;
0x00023188 bal 0x18440 | sym_overwrite_filep ();
0x0002318c lw gp, 0x18(sp) | gp = *(var_18h);
0x00023190 beqz v0, 0x2314c |
| } while (v0 == 0);
0x00023194 lw t9, -0x7e08(gp) | t9 = sym.is_secured_filename;
| label_7:
0x00023198 move a0, s3 | a0 = s3;
0x0002319c bal 0x180cc | sym_is_secured_filename ();
0x000231a0 lw gp, 0x18(sp) | gp = *(var_18h);
| if (v0 != 0) {
0x000231a4 bnez v0, 0x23590 | goto label_57;
| }
0x000231a8 lw a1, -0x7fdc(gp) | a1 = *(gp);
0x000231ac lw t9, -0x7918(gp) | t9 = sym.imp.fopen64;
| /* esilref: 'wb' */
0x000231b0 addiu a1, a1, 0x6d74 | a1 += 0x6d74;
0x000231b4 move a0, s3 | a0 = s3;
0x000231b8 jalr t9 | t9 ();
0x000231bc move s1, v0 | s1 = v0;
0x000231c0 lw gp, 0x18(sp) | gp = *(var_18h);
| if (v0 != 0) {
0x000231c4 bnez v0, 0x22d20 | goto label_5;
| }
0x000231c8 lw t9, -0x78c4(gp) | t9 = sym.imp.__errno_location;
0x000231cc addiu s0, zero, 0x19 | s0 = 0x19;
0x000231d0 jalr t9 | t9 ();
0x000231d4 lw gp, 0x18(sp) | gp = *(var_18h);
0x000231d8 lw a0, (v0) | a0 = *(v0);
0x000231dc lw t9, -0x787c(gp) | t9 = sym.imp.strerror;
0x000231e0 b 0x235b0 | goto label_58;
| label_53:
0x000231e4 lw v0, -0x78e0(gp) | v0 = *((gp - 7736));
| label_55:
0x000231e8 lw s1, (v0) | s1 = *(v0);
0x000231ec lbu v0, 9(s0) | v0 = *((s0 + 9));
| if (s1 == 0) {
0x000231f0 bnel s1, zero, 0x22d24 | goto label_6;
| }
0x000231f4 lw t9, -0x7e08(gp) | t9 = sym.is_secured_filename;
0x000231f8 b 0x23198 | goto label_7;
| label_52:
0x000231fc lw s6, 0x14(s0) | s6 = *((s0 + 5));
0x00023200 addiu v0, zero, 8 | v0 = 8;
0x00023204 lw a1, -0x7fdc(gp) | a1 = *(gp);
| if (s6 == v0) {
0x00023208 beq s6, v0, 0x23558 | goto label_59;
| }
| label_17:
0x0002320c lbu v0, 0x228(s1) | v0 = *(s1);
0x00023210 andi v0, v0, 2 | v0 &= 2;
0x00023214 lw t9, -0x7e2c(gp) | t9 = sym.utf8_to_native;
| if (v0 != 0) {
0x00023218 bnez v0, 0x2344c | goto label_60;
| }
0x0002321c lw t9, -0x7c60(gp) | t9 = sym.iobuf_get_real_fname;
0x00023220 lw a0, 4(s0) | a0 = *((s0 + 1));
0x00023224 bal 0x41108 | sym_iobuf_get_real_fname ();
0x00023228 lw gp, 0x18(sp) | gp = *(var_18h);
0x0002322c lw t9, -0x7b5c(gp) | t9 = sym.make_outfile_name;
0x00023230 move a0, v0 | a0 = v0;
0x00023234 bal 0x18540 | sym_make_outfile_name ();
0x00023238 move s3, v0 | s3 = v0;
0x0002323c lw gp, 0x18(sp) | gp = *(var_18h);
| if (v0 != 0) {
0x00023240 bnez v0, 0x23124 | goto label_8;
| }
0x00023244 lw t9, -0x7b60(gp) | t9 = sym.ask_outfile_name;
0x00023248 lw a1, 0x14(s0) | a1 = *((s0 + 5));
0x0002324c addiu a0, s0, 0x18 | a0 = s0 + 0x18;
0x00023250 bal 0x186f4 | sym_ask_outfile_name ();
0x00023254 move s3, v0 | s3 = v0;
0x00023258 lw gp, 0x18(sp) | gp = *(var_18h);
| if (v0 != 0) {
0x0002325c bnez v0, 0x23124 | goto label_8;
| }
0x00023260 addiu s0, zero, 0x19 | s0 = 0x19;
0x00023264 b 0x23078 | goto label_9;
| label_45:
0x00023268 lw s5, -0x7fb4(gp) | s5 = *((gp - 8173));
0x0002326c move s4, zero | s4 = 0;
0x00023270 addiu s7, zero, -1 | s7 = -1;
| label_11:
0x00023274 lw a0, 4(s0) | a0 = *((s0 + 1));
0x00023278 lw v0, 0x20(a0) | v0 = *((a0 + 8));
0x0002327c lw t9, -0x7c38(gp) | t9 = sym.iobuf_readbyte;
| if (v0 != 0) {
0x00023280 bnez v0, 0x233b0 | goto label_61;
| }
| label_12:
0x00023284 lw v1, 0x2c(a0) | v1 = *((a0 + 11));
0x00023288 lw v0, 0x30(a0) | v0 = *((a0 + 12));
0x0002328c sltu v0, v1, v0 | v0 = (v1 < v0) ? 1 : 0;
0x00023290 lw t9, -0x7c38(gp) | t9 = sym.iobuf_readbyte;
| if (v0 == 0) {
0x00023294 beqz v0, 0x233b0 | goto label_61;
| }
0x00023298 lw v0, 0x10(a0) | v0 = *((a0 + 4));
0x0002329c lw a3, 0x14(a0) | a3 = *((a0 + 5));
0x000232a0 addiu a1, v0, 1 | a1 = v0 + 1;
0x000232a4 sltu v0, a1, v0 | v0 = (a1 < v0) ? 1 : 0;
0x000232a8 lw a2, 0x34(a0) | a2 = *((a0 + 13));
0x000232ac addu v0, v0, a3 | v0 += a3;
0x000232b0 addiu a3, v1, 1 | a3 = v1 + 1;
0x000232b4 sw a1, 0x10(a0) | *((a0 + 4)) = a1;
0x000232b8 sw v0, 0x14(a0) | *((a0 + 5)) = v0;
0x000232bc sw a3, 0x2c(a0) | *((a0 + 11)) = a3;
0x000232c0 lbux fp, v1(a2) | __asm ("lbux fp, v1(a2)");
| if (s1 == 0) {
| label_13:
0x000232c4 beql s1, zero, 0x23324 | goto label_62;
| }
0x000232c8 lw a0, (s2) | a0 = *(s2);
0x000232cc lw a2, 0x18(s6) | a2 = *((s6 + 6));
0x000232d0 lw a0, 0x1c(s6) | a0 = *((s6 + 7));
0x000232d4 or v0, a2, a0 | v0 = a2 | a0;
0x000232d8 lw v0, -0x4c98(s5) | v0 = *((s5 - 4902));
| if (v0 != 0) {
0x000232dc beqz v0, 0x23308 |
0x000232e0 lw a3, -0x4c94(s5) | a3 = *((s5 - 4901));
0x000232e4 addiu a1, v0, 1 | a1 = v0 + 1;
0x000232e8 sltu v0, a1, v0 | v0 = (a1 < v0) ? 1 : 0;
0x000232ec addu v0, v0, a3 | v0 += a3;
0x000232f0 slt a3, a0, v0 | a3 = (a0 < v0) ? 1 : 0;
0x000232f4 sw a1, -0x4c98(s5) | *((s5 - 4902)) = a1;
0x000232f8 sw v0, -0x4c94(s5) | *((s5 - 4901)) = v0;
| if (a3 != 0) {
0x000232fc bnez a3, 0x237f0 | goto label_41;
| }
0x00023300 sltu a1, a2, a1 | a1 = (a2 < a1) ? 1 : 0;
| if (v0 == a0) {
0x00023304 beq v0, a0, 0x237e8 | goto label_63;
| }
| }
0x00023308 lw t9, -0x7840(gp) | t9 = sym.imp._IO_putc;
| label_26:
0x0002330c move a1, s1 | a1 = s1;
0x00023310 move a0, fp | a0 = fp;
0x00023314 jalr t9 | t9 ();
0x00023318 lw gp, 0x18(sp) | gp = *(var_18h);
| if (v0 == s7) {
0x0002331c beq v0, s7, 0x22f98 | goto label_10;
| }
0x00023320 lw a0, (s2) | a0 = *(s2);
| label_62:
0x00023324 addiu v0, zero, 2 | v0 = 2;
| if (a0 == 0) {
0x00023328 beqz a0, 0x23274 | goto label_11;
| }
| if (s4 == v0) {
0x0002332c beql s4, v0, 0x233cc | goto label_64;
| }
0x00023330 lw v0, 0x10(a0) | v0 = *((a0 + 4));
0x00023334 addiu v0, zero, 0xd | v0 = 0xd;
| if (s4 == 0) {
0x00023338 beqz s4, 0x23408 | goto label_65;
| }
0x0002333c addiu v0, zero, 0xa | v0 = 0xa;
| if (fp != v0) {
0x00023340 beql fp, v0, 0x233a0 |
0x00023344 lw a0, 4(s0) | a0 = *((s0 + 1));
0x00023348 lw v0, 0x10(a0) | v0 = *((a0 + 4));
0x0002334c lw a1, 0x14(a0) | a1 = *((a0 + 5));
0x00023350 lw t9, -0x7be4(gp) | t9 = sym.md_write;
| if (v0 == a1) {
0x00023354 beq v0, a1, 0x23908 | goto label_66;
| }
| label_29:
0x00023358 addu a2, a0, v0 | a2 = a0 + v0;
0x0002335c addiu a3, zero, 0xd | a3 = 0xd;
0x00023360 addiu v0, v0, 1 | v0++;
0x00023364 addiu a1, zero, 0xd | a1 = 0xd;
0x00023368 sw v0, 0x10(a0) | *((a0 + 4)) = v0;
0x0002336c sb a3, 0x18(a2) | *((a2 + 24)) = a3;
| if (fp == a1) {
0x00023370 beq fp, a1, 0x23444 | goto label_67;
| }
0x00023374 lw a1, 0x14(a0) | a1 = *((a0 + 5));
0x00023378 addu a1, a0, v0 | a1 = a0 + v0;
| if (v0 != a1) {
0x0002337c bne v0, a1, 0x23430 | goto label_68;
| }
0x00023380 lw t9, -0x7be4(gp) | t9 = sym.md_write;
| label_16:
0x00023384 move a2, zero | a2 = 0;
0x00023388 move a1, zero | a1 = 0;
0x0002338c bal 0x28014 | sym_md_write ();
0x00023390 lw a0, (s2) | a0 = *(s2);
0x00023394 lw gp, 0x18(sp) | gp = *(var_18h);
0x00023398 lw v0, 0x10(a0) | v0 = *((a0 + 4));
0x0002339c b 0x2342c | goto label_69;
| }
| label_15:
0x000233a0 lw v0, 0x20(a0) | v0 = *((a0 + 8));
0x000233a4 addiu s4, zero, 2 | s4 = 2;
| if (v0 == 0) {
0x000233a8 beqz v0, 0x23284 | goto label_12;
| }
0x000233ac lw t9, -0x7c38(gp) | t9 = sym.iobuf_readbyte;
| label_61:
0x000233b0 bal 0x3fb3c | sym_iobuf_readbyte ();
0x000233b4 nop |
0x000233b8 move fp, v0 | fp = v0;
0x000233bc lw gp, 0x18(sp) | gp = *(var_18h);
| if (v0 != s7) {
0x000233c0 bne v0, s7, 0x232c4 | goto label_13;
| }
0x000233c4 sw zero, 4(s0) | *((s0 + 1)) = 0;
0x000233c8 b 0x2300c | goto label_14;
| label_64:
0x000233cc lw a1, 0x14(a0) | a1 = *((a0 + 5));
0x000233d0 lw t9, -0x7be4(gp) | t9 = sym.md_write;
| if (v0 == a1) {
0x000233d4 beq v0, a1, 0x2372c | goto label_70;
| }
| label_24:
0x000233d8 addu a2, a0, v0 | a2 = a0 + v0;
0x000233dc addiu a3, zero, 0xd | a3 = 0xd;
0x000233e0 addiu v0, v0, 1 | v0++;
0x000233e4 sw v0, 0x10(a0) | *((a0 + 4)) = v0;
0x000233e8 sb a3, 0x18(a2) | *((a2 + 24)) = a3;
| if (v0 == a1) {
0x000233ec beq v0, a1, 0x2370c | goto label_71;
| }
| label_23:
0x000233f0 addu a1, a0, v0 | a1 = a0 + v0;
0x000233f4 addiu v0, v0, 1 | v0++;
0x000233f8 sw v0, 0x10(a0) | *((a0 + 4)) = v0;
0x000233fc addiu v0, zero, 0xa | v0 = 0xa;
0x00023400 sb v0, 0x18(a1) | *((a1 + 24)) = v0;
0x00023404 addiu v0, zero, 0xd | v0 = 0xd;
| label_65:
0x00023408 addiu v0, zero, 0xa | v0 = 0xa;
| if (fp == v0) {
0x0002340c beq fp, v0, 0x23444 | goto label_67;
| }
| if (fp == v0) {
0x00023410 beql fp, v0, 0x233a0 | goto label_15;
| }
0x00023414 lw a0, 4(s0) | a0 = *((s0 + 1));
0x00023418 lw a0, (s2) | a0 = *(s2);
0x0002341c lw v0, 0x10(a0) | v0 = *((a0 + 4));
0x00023420 lw a1, 0x14(a0) | a1 = *((a0 + 5));
0x00023424 lw t9, -0x7be4(gp) | t9 = sym.md_write;
| if (v0 == a1) {
0x00023428 beq v0, a1, 0x23384 | goto label_16;
| }
| label_69:
0x0002342c addu a1, a0, v0 | a1 = a0 + v0;
| label_68:
0x00023430 addiu v0, v0, 1 | v0++;
0x00023434 sw v0, 0x10(a0) | *((a0 + 4)) = v0;
0x00023438 move s4, zero | s4 = 0;
0x0002343c sb fp, 0x18(a1) | *((a1 + 24)) = fp;
0x00023440 b 0x23274 | goto label_11;
| label_67:
0x00023444 addiu s4, zero, 1 | s4 = 1;
0x00023448 b 0x23274 | goto label_11;
| label_60:
0x0002344c move a2, zero | a2 = 0;
0x00023450 move a1, s6 | a1 = s6;
0x00023454 addiu a0, s0, 0x18 | a0 = s0 + 0x18;
0x00023458 bal 0x3a610 | sym_utf8_to_native ();
0x0002345c move s3, v0 | s3 = v0;
0x00023460 lw gp, 0x18(sp) | gp = *(var_18h);
0x00023464 b 0x23124 | goto label_8;
| label_46:
0x00023468 lw t9, -0x7f28(gp) | t9 = sym.xmalloc;
0x0002346c ori a0, zero, 0x8000 | a0 = 0x8000;
0x00023470 bal 0x3cb1c | sym_xmalloc ();
0x00023474 lw gp, 0x18(sp) | gp = *(var_18h);
0x00023478 move s4, v0 | s4 = v0;
0x0002347c addiu s7, zero, -1 | s7 = -1;
0x00023480 lw s6, -0x7fc8(gp) | s6 = *(gp);
0x00023484 lw s5, -0x7fb4(gp) | s5 = *((gp - 8173));
0x00023488 lw t9, -0x7f64(gp) | t9 = sym.iobuf_read;
| do {
0x0002348c lw a0, 4(s0) | a0 = *((s0 + 1));
0x00023490 ori a2, zero, 0x8000 | a2 = 0x8000;
0x00023494 move a1, s4 | a1 = s4;
0x00023498 bal 0x3fc68 | sym_iobuf_read ();
0x0002349c move fp, v0 | fp = v0;
0x000234a0 lw gp, 0x18(sp) | gp = *(var_18h);
| if (v0 == s7) {
0x000234a4 beq v0, s7, 0x23540 | goto label_72;
| }
0x000234a8 lw a0, (s2) | a0 = *(s2);
0x000234ac lw t9, -0x7be4(gp) | t9 = sym.md_write;
| if (a0 != 0) {
0x000234b0 beqz a0, 0x234c4 |
0x000234b4 move a2, v0 | a2 = v0;
0x000234b8 move a1, s4 | a1 = s4;
0x000234bc bal 0x28014 | sym_md_write ();
0x000234c0 lw gp, 0x18(sp) | gp = *(var_18h);
| }
0x000234c4 ori v0, zero, 0x8000 | v0 = 0x8000;
| if (s1 != 0) {
0x000234c8 beqz s1, 0x23534 |
0x000234cc lw a3, 0x18(s6) | a3 = *((s6 + 6));
0x000234d0 lw a2, 0x1c(s6) | a2 = *((s6 + 7));
0x000234d4 or v0, a3, a2 | v0 = a3 | a2;
0x000234d8 lw a1, -0x4c98(s5) | a1 = *((s5 - 4902));
| if (v0 != 0) {
0x000234dc beqz v0, 0x23510 |
0x000234e0 lw t0, -0x4c94(s5) | t0 = *((s5 - 4901));
0x000234e4 addu a1, fp, a1 | a1 = fp + a1;
0x000234e8 sra v0, fp, 0x1f | v0 = fp >> 0x1f;
0x000234ec sltu a0, a1, fp | a0 = (a1 < fp) ? 1 : 0;
0x000234f0 addu v0, v0, t0 | v0 += t0;
0x000234f4 addu v0, a0, v0 | v0 = a0 + v0;
0x000234f8 slt a0, a2, v0 | a0 = (a2 < v0) ? 1 : 0;
0x000234fc sw a1, -0x4c98(s5) | *((s5 - 4902)) = a1;
0x00023500 sw v0, -0x4c94(s5) | *((s5 - 4901)) = v0;
| if (a0 != 0) {
0x00023504 bnez a0, 0x238d0 | goto label_73;
| }
0x00023508 sltu a1, a3, a1 | a1 = (a3 < a1) ? 1 : 0;
| if (v0 == a2) {
0x0002350c beq v0, a2, 0x238c8 | goto label_74;
| }
| }
0x00023510 lw t9, -0x7848(gp) | t9 = sym.imp.fwrite;
| label_28:
0x00023514 move a3, s1 | a3 = s1;
0x00023518 move a2, fp | a2 = fp;
0x0002351c addiu a1, zero, 1 | a1 = 1;
0x00023520 move a0, s4 | a0 = s4;
0x00023524 jalr t9 | t9 ();
0x00023528 lw gp, 0x18(sp) | gp = *(var_18h);
| if (fp != v0) {
0x0002352c bne fp, v0, 0x23818 | goto label_75;
| }
0x00023530 ori v0, zero, 0x8000 | v0 = 0x8000;
| }
0x00023534 slt v1, fp, v0 | v1 = (fp < v0) ? 1 : 0;
0x00023538 lw t9, -0x7f64(gp) | t9 = sym.iobuf_read;
0x0002353c beqz v1, 0x2348c |
| } while (v1 == 0);
| label_72:
0x00023540 lw t9, -0x7f24(gp) | t9 = sym.xfree;
0x00023544 move a0, s4 | a0 = s4;
0x00023548 bal 0x3cd20 | sym_xfree ();
0x0002354c lw gp, 0x18(sp) | gp = *(var_18h);
0x00023550 sw zero, 4(s0) | *((s0 + 1)) = 0;
0x00023554 b 0x2300c | goto label_14;
| label_59:
0x00023558 lw t9, -0x782c(gp) | t9 = sym.imp.memcmp;
0x0002355c addiu a2, zero, 8 | a2 = 8;
| /* str._CONSOLE */
0x00023560 addiu a1, a1, 0x3d94 | a1 += 0x3d94;
0x00023564 addiu a0, s0, 0x18 | a0 = s0 + 0x18;
0x00023568 jalr t9 | t9 ();
0x0002356c lw gp, 0x18(sp) | gp = *(var_18h);
| if (v0 != 0) {
0x00023570 bnez v0, 0x2320c | goto label_17;
| }
0x00023574 lw a0, -0x7fdc(gp) | a0 = *(gp);
0x00023578 lw t9, -0x7f30(gp) | t9 = sym.g10_log_info;
| /* str.data_not_saved__use_option____output__to_save_it_n */
0x0002357c addiu a0, a0, 0x6d24 | a0 += 0x6d24;
0x00023580 bal 0x384ac | sym_g10_log_info ();
0x00023584 move s1, zero | s1 = 0;
0x00023588 lw gp, 0x18(sp) | gp = *(var_18h);
0x0002358c b 0x22d20 | goto label_5;
| label_57:
0x00023590 lw t9, -0x78c4(gp) | t9 = sym.imp.__errno_location;
0x00023594 addiu s0, zero, 0x19 | s0 = 0x19;
0x00023598 jalr t9 | t9 ();
0x0002359c lw gp, 0x18(sp) | gp = *(var_18h);
0x000235a0 addiu v1, zero, 1 | v1 = 1;
0x000235a4 addiu a0, zero, 1 | a0 = 1;
0x000235a8 lw t9, -0x787c(gp) | t9 = sym.imp.strerror;
0x000235ac sw v1, (v0) | *(v0) = v1;
| label_58:
0x000235b0 jalr t9 | t9 ();
0x000235b4 nop |
0x000235b8 lw gp, 0x18(sp) | gp = *(var_18h);
0x000235bc move a2, v0 | a2 = v0;
0x000235c0 move a1, s3 | a1 = s3;
0x000235c4 lw a0, -0x7fdc(gp) | a0 = *(gp);
0x000235c8 lw t9, -0x7f84(gp) | t9 = sym.g10_log_error;
| /* str.error_creating___s:__s_n */
0x000235cc addiu a0, a0, 0x6d58 | a0 += 0x6d58;
0x000235d0 bal 0x38550 | sym_g10_log_error ();
0x000235d4 lw gp, 0x18(sp) | gp = *(var_18h);
0x000235d8 b 0x23078 | goto label_9;
| label_47:
0x000235dc bal 0x3fb3c | sym_iobuf_readbyte ();
0x000235e0 nop |
0x000235e4 lw gp, 0x18(sp) | gp = *(var_18h);
| if (v0 != s5) {
0x000235e8 bne v0, s5, 0x22f08 | goto label_18;
| }
0x000235ec sw zero, 4(s0) | *((s0 + 1)) = 0;
0x000235f0 b 0x2300c | goto label_14;
| label_48:
0x000235f4 sw v0, 0x24(sp) | *(var_24h) = v0;
0x000235f8 move a2, zero | a2 = 0;
0x000235fc move a1, zero | a1 = 0;
0x00023600 bal 0x28014 | sym_md_write ();
0x00023604 lw a0, (s2) | a0 = *(s2);
0x00023608 lw gp, 0x18(sp) | gp = *(var_18h);
0x0002360c lw v0, 0x24(sp) | v0 = *(var_24h);
0x00023610 lw v1, 0x10(a0) | v1 = *((a0 + 4));
0x00023614 b 0x22f24 | goto label_19;
| label_38:
0x00023618 ori a0, zero, 0x8000 | a0 = 0x8000;
0x0002361c bal 0x3cb1c | sym_xmalloc ();
0x00023620 lw v1, (s0) | v1 = *(s0);
0x00023624 lw gp, 0x18(sp) | gp = *(var_18h);
0x00023628 move s4, v0 | s4 = v0;
| if (v1 == 0) {
0x0002362c beqz v1, 0x22ffc | goto label_20;
| }
0x00023630 ori s7, zero, 0x8000 | s7 = 0x8000;
0x00023634 lw s6, -0x7fc8(gp) | s6 = *(gp);
0x00023638 lw s5, -0x7fb4(gp) | s5 = *((gp - 8173));
0x0002363c b 0x236b0 | goto label_76;
| label_21:
0x00023640 lw a1, 0x1c(s6) | a1 = *((s6 + 7));
0x00023644 or v0, a2, a1 | v0 = a2 | a1;
0x00023648 lw a0, -0x4c98(s5) | a0 = *((s5 - 4902));
| if (v0 != 0) {
0x0002364c beqz v0, 0x23680 |
0x00023650 lw a3, -0x4c94(s5) | a3 = *((s5 - 4901));
0x00023654 addu a0, fp, a0 | a0 = fp + a0;
0x00023658 sra v0, fp, 0x1f | v0 = fp >> 0x1f;
0x0002365c sltu v1, a0, fp | v1 = (a0 < fp) ? 1 : 0;
0x00023660 addu v0, v0, a3 | v0 += a3;
0x00023664 addu v0, v1, v0 | v0 = v1 + v0;
0x00023668 slt v1, a1, v0 | v1 = (a1 < v0) ? 1 : 0;
0x0002366c sw a0, -0x4c98(s5) | *((s5 - 4902)) = a0;
0x00023670 sw v0, -0x4c94(s5) | *((s5 - 4901)) = v0;
| if (v1 != 0) {
0x00023674 bnez v1, 0x238d0 | goto label_73;
| }
0x00023678 sltu a0, a2, a0 | a0 = (a2 < a0) ? 1 : 0;
| if (v0 == a1) {
0x0002367c beq v0, a1, 0x23944 | goto label_77;
| }
| }
0x00023680 lw t9, -0x7848(gp) | t9 = sym.imp.fwrite;
| label_33:
0x00023684 move a3, s1 | a3 = s1;
0x00023688 move a2, fp | a2 = fp;
0x0002368c addiu a1, zero, 1 | a1 = 1;
0x00023690 move a0, s4 | a0 = s4;
0x00023694 jalr t9 | t9 ();
0x00023698 lw gp, 0x18(sp) | gp = *(var_18h);
| if (fp != v0) {
0x0002369c bne fp, v0, 0x23818 | goto label_75;
| }
| label_22:
0x000236a0 lw v1, (s0) | v1 = *(s0);
0x000236a4 subu v1, v1, v0 | __asm ("subu v1, v1, v0");
0x000236a8 sw v1, (s0) | *(s0) = v1;
| if (v1 == 0) {
0x000236ac beqz v1, 0x22ffc | goto label_20;
| }
| label_76:
0x000236b0 ori v0, zero, 0x8001 | v0 = 0x8001;
0x000236b4 sltu a2, v1, v0 | a2 = (v1 < v0) ? 1 : 0;
0x000236b8 lw t9, -0x7f64(gp) | t9 = sym.iobuf_read;
| if (a2 != 0) {
0x000236bc movz v1, s7, a2 | v1 = s7;
| }
0x000236c0 lw a0, 4(s0) | a0 = *((s0 + 1));
0x000236c4 move a2, v1 | a2 = v1;
0x000236c8 move a1, s4 | a1 = s4;
0x000236cc bal 0x3fc68 | sym_iobuf_read ();
0x000236d0 move fp, v0 | fp = v0;
0x000236d4 addiu v0, zero, -1 | v0 = -1;
0x000236d8 lw gp, 0x18(sp) | gp = *(var_18h);
| if (fp == v0) {
0x000236dc beq fp, v0, 0x23898 | goto label_78;
| }
0x000236e0 lw a0, (s2) | a0 = *(s2);
0x000236e4 lw t9, -0x7be4(gp) | t9 = sym.md_write;
| if (a0 != 0) {
0x000236e8 beqz a0, 0x236fc |
0x000236ec move a2, fp | a2 = fp;
0x000236f0 move a1, s4 | a1 = s4;
0x000236f4 bal 0x28014 | sym_md_write ();
0x000236f8 lw gp, 0x18(sp) | gp = *(var_18h);
| }
0x000236fc lw a2, 0x18(s6) | a2 = *((s6 + 6));
| if (s1 == 0) {
0x00023700 bnel s1, zero, 0x23640 | goto label_21;
| }
0x00023704 move v0, fp | v0 = fp;
0x00023708 b 0x236a0 | goto label_22;
| label_71:
0x0002370c lw t9, -0x7be4(gp) | t9 = sym.md_write;
0x00023710 move a2, zero | a2 = 0;
0x00023714 move a1, zero | a1 = 0;
0x00023718 bal 0x28014 | sym_md_write ();
0x0002371c lw a0, (s2) | a0 = *(s2);
0x00023720 lw gp, 0x18(sp) | gp = *(var_18h);
0x00023724 lw v0, 0x10(a0) | v0 = *((a0 + 4));
0x00023728 b 0x233f0 | goto label_23;
| label_70:
0x0002372c move a1, zero | a1 = 0;
0x00023730 move a2, zero | a2 = 0;
0x00023734 bal 0x28014 | sym_md_write ();
0x00023738 lw a0, (s2) | a0 = *(s2);
0x0002373c lw gp, 0x18(sp) | gp = *(var_18h);
0x00023740 lw v0, 0x10(a0) | v0 = *((a0 + 4));
0x00023744 lw a1, 0x14(a0) | a1 = *((a0 + 5));
0x00023748 b 0x233d8 | goto label_24;
| label_51:
0x0002374c lw v1, 0x10(s0) | v1 = *((s0 + 4));
0x00023750 lbu v0, 0xc(s0) | v0 = *((s0 + 12));
0x00023754 lw a3, -0x7fdc(gp) | a3 = *(gp);
0x00023758 lw t9, -0x794c(gp) | t9 = sym.imp.__sprintf_chk
0x0002375c addiu s1, sp, 0x28 | s1 = sp + 0x28;
| /* str._X__lu_ */
0x00023760 addiu a3, a3, 0x6d1c | a3 += 0x6d1c;
0x00023764 addiu a2, zero, 0x32 | a2 = 0x32;
0x00023768 addiu a1, zero, 1 | a1 = 1;
0x0002376c move a0, s1 | a0 = s1;
0x00023770 sw v1, 0x14(sp) | *(var_14h) = v1;
0x00023774 sw v0, 0x10(sp) | *(var_10h) = v0;
0x00023778 jalr t9 | t9 ();
0x0002377c lw gp, 0x18(sp) | gp = *(var_18h);
0x00023780 lw a3, 0x14(s0) | a3 = *((s0 + 5));
0x00023784 addiu a2, s0, 0x18 | a2 = s0 + 0x18;
0x00023788 lw t9, -0x7c9c(gp) | t9 = sym.write_status_text_and_buffer;
0x0002378c sw zero, 0x10(sp) | *(var_10h) = 0;
0x00023790 move a1, s1 | a1 = s1;
0x00023794 addiu a0, zero, 0x49 | a0 = 0x49;
0x00023798 bal 0x22334 | sym_write_status_text_and_buffer ();
0x0002379c lbu v0, 9(s0) | v0 = *((s0 + 9));
0x000237a0 lw gp, 0x18(sp) | gp = *(var_18h);
| if (v0 != 0) {
0x000237a4 bnez v0, 0x230e0 | goto label_25;
| }
0x000237a8 lw a3, -0x7fdc(gp) | a3 = *(gp);
0x000237ac lw v0, (s0) | v0 = *(s0);
0x000237b0 lw t9, -0x794c(gp) | t9 = sym.imp.__sprintf_chk
| /* esilref: '&lu' */
0x000237b4 addiu a3, a3, 0x4eb0 | a3 += 0x4eb0;
0x000237b8 addiu a2, zero, 0x32 | a2 = 0x32;
0x000237bc addiu a1, zero, 1 | a1 = 1;
0x000237c0 move a0, s1 | a0 = s1;
0x000237c4 sw v0, 0x10(sp) | *(var_10h) = v0;
0x000237c8 jalr t9 | t9 ();
0x000237cc lw gp, 0x18(sp) | gp = *(var_18h);
0x000237d0 move a1, s1 | a1 = s1;
0x000237d4 lw t9, -0x7d80(gp) | t9 = sym.write_status_text;
0x000237d8 addiu a0, zero, 0x4a | a0 = 0x4a;
0x000237dc bal 0x21b8c | sym_write_status_text ();
0x000237e0 lw gp, 0x18(sp) | gp = *(var_18h);
0x000237e4 b 0x230e0 | goto label_25;
| label_63:
0x000237e8 lw t9, -0x7840(gp) | t9 = sym.imp._IO_putc;
| if (a1 == 0) {
0x000237ec beqz a1, 0x2330c | goto label_26;
| }
| label_41:
0x000237f0 lw a2, -0x7fdc(gp) | a2 = *(gp);
| label_31:
0x000237f4 lw a0, -0x7fdc(gp) | a0 = *(gp);
0x000237f8 lw t9, -0x7f84(gp) | t9 = sym.g10_log_error;
| /* str.exceeded___max_output_limit_n */
0x000237fc addiu a2, a2, 0x6dd4 | a2 += 0x6dd4;
0x00023800 move a1, s3 | a1 = s3;
| /* str.Error_writing_to___s:__s_n */
0x00023804 addiu a0, a0, 0x6df4 | a0 += 0x6df4;
0x00023808 bal 0x38550 | sym_g10_log_error ();
0x0002380c addiu s0, zero, 0x16 | s0 = 0x16;
0x00023810 lw gp, 0x18(sp) | gp = *(var_18h);
0x00023814 b 0x22e7c | goto label_3;
| label_75:
0x00023818 lw t9, -0x78c4(gp) | t9 = sym.imp.__errno_location;
0x0002381c addiu s0, zero, 0x16 | s0 = 0x16;
0x00023820 jalr t9 | t9 ();
0x00023824 lw gp, 0x18(sp) | gp = *(var_18h);
0x00023828 lw t9, -0x787c(gp) | t9 = sym.imp.strerror;
0x0002382c lw a0, (v0) | a0 = *(v0);
0x00023830 jalr t9 | t9 ();
0x00023834 lw gp, 0x18(sp) | gp = *(var_18h);
0x00023838 move a2, v0 | a2 = v0;
0x0002383c move a1, s3 | a1 = s3;
0x00023840 lw a0, -0x7fdc(gp) | a0 = *(gp);
0x00023844 lw t9, -0x7f84(gp) | t9 = sym.g10_log_error;
| /* str.Error_writing_to___s:__s_n */
0x00023848 addiu a0, a0, 0x6df4 | a0 += 0x6df4;
0x0002384c bal 0x38550 | sym_g10_log_error ();
0x00023850 lw gp, 0x18(sp) | gp = *(var_18h);
0x00023854 lw t9, -0x7f24(gp) | t9 = sym.xfree;
0x00023858 move a0, s4 | a0 = s4;
0x0002385c bal 0x3cd20 | sym_xfree ();
0x00023860 lw gp, 0x18(sp) | gp = *(var_18h);
0x00023864 b 0x22e7c | goto label_3;
| label_37:
0x00023868 lw a0, -0x7fdc(gp) | a0 = *(gp);
0x0002386c lw t9, -0x7f84(gp) | t9 = sym.g10_log_error;
| /* str.clearsig_encountered_while_not_expected_n */
0x00023870 addiu a0, a0, 0x6d78 | a0 += 0x6d78;
0x00023874 bal 0x38550 | sym_g10_log_error ();
0x00023878 addiu s0, zero, 0x27 | s0 = 0x27;
0x0002387c lw gp, 0x18(sp) | gp = *(var_18h);
0x00023880 b 0x22e74 | goto label_27;
| label_56:
0x00023884 move a0, v0 | a0 = v0;
0x00023888 bal 0x3cd20 | sym_xfree ();
0x0002388c addiu s0, zero, 0x19 | s0 = 0x19;
0x00023890 lw gp, 0x18(sp) | gp = *(var_18h);
0x00023894 b 0x23078 | goto label_9;
| label_78:
0x00023898 lw a0, -0x7fdc(gp) | a0 = *(gp);
0x0002389c lw t9, -0x7f84(gp) | t9 = sym.g10_log_error;
0x000238a0 lw a1, (s0) | a1 = *(s0);
| /* str.Problem_reading_source___u_bytes_remaining__n */
0x000238a4 addiu a0, a0, 0x6da4 | a0 += 0x6da4;
0x000238a8 bal 0x38550 | sym_g10_log_error ();
0x000238ac lw gp, 0x18(sp) | gp = *(var_18h);
0x000238b0 move a0, s4 | a0 = s4;
0x000238b4 lw t9, -0x7f24(gp) | t9 = sym.xfree;
0x000238b8 addiu s0, zero, 0x15 | s0 = 0x15;
0x000238bc bal 0x3cd20 | sym_xfree ();
0x000238c0 lw gp, 0x18(sp) | gp = *(var_18h);
0x000238c4 b 0x22e74 | goto label_27;
| label_74:
0x000238c8 lw t9, -0x7848(gp) | t9 = sym.imp.fwrite;
| if (a1 == 0) {
0x000238cc beqz a1, 0x23514 | goto label_28;
| }
| label_73:
0x000238d0 lw a2, -0x7fdc(gp) | a2 = *(gp);
| label_34:
0x000238d4 lw a0, -0x7fdc(gp) | a0 = *(gp);
0x000238d8 lw t9, -0x7f84(gp) | t9 = sym.g10_log_error;
| /* str.exceeded___max_output_limit_n */
0x000238dc addiu a2, a2, 0x6dd4 | a2 += 0x6dd4;
0x000238e0 move a1, s3 | a1 = s3;
| /* str.Error_writing_to___s:__s_n */
0x000238e4 addiu a0, a0, 0x6df4 | a0 += 0x6df4;
0x000238e8 bal 0x38550 | sym_g10_log_error ();
0x000238ec lw gp, 0x18(sp) | gp = *(var_18h);
0x000238f0 move a0, s4 | a0 = s4;
0x000238f4 lw t9, -0x7f24(gp) | t9 = sym.xfree;
0x000238f8 addiu s0, zero, 0x16 | s0 = 0x16;
0x000238fc bal 0x3cd20 | sym_xfree ();
0x00023900 lw gp, 0x18(sp) | gp = *(var_18h);
0x00023904 b 0x22e7c | goto label_3;
| label_66:
0x00023908 move a2, zero | a2 = 0;
0x0002390c move a1, zero | a1 = 0;
0x00023910 bal 0x28014 | sym_md_write ();
0x00023914 lw a0, (s2) | a0 = *(s2);
0x00023918 lw gp, 0x18(sp) | gp = *(var_18h);
0x0002391c lw v0, 0x10(a0) | v0 = *((a0 + 4));
0x00023920 b 0x23358 | goto label_29;
| label_42:
0x00023924 lw t9, -0x7840(gp) | t9 = sym.imp._IO_putc;
| if (a1 == 0) {
0x00023928 beqz a1, 0x22dfc | goto label_30;
| }
0x0002392c lw a2, -0x7fdc(gp) | a2 = *(gp);
0x00023930 b 0x237f4 | goto label_31;
| label_49:
0x00023934 lw t9, -0x7840(gp) | t9 = sym.imp._IO_putc;
| if (a1 == 0) {
0x00023938 beqz a1, 0x22f84 | goto label_32;
| }
0x0002393c lw a2, -0x7fdc(gp) | a2 = *(gp);
0x00023940 b 0x237f4 | goto label_31;
| label_77:
0x00023944 lw t9, -0x7848(gp) | t9 = sym.imp.fwrite;
| if (a0 == 0) {
0x00023948 beqz a0, 0x23684 | goto label_33;
| }
0x0002394c lw a2, -0x7fdc(gp) | a2 = *(gp);
0x00023950 b 0x238d4 | goto label_34;
| label_50:
0x00023954 lw t9, -0x7834(gp) | t9 = sym.imp.__stack_chk_fail;
0x00023958 jalr t9 | t9 ();
0x0002395c nop |
| }
; assembly | /* r2dec pseudo code output */
| /* /logs/firmware/unblob_extracted/firmware_extract/4325012-58052244.squashfs_v4_le_extract/usr/bin/gpgv @ 0x3e830 */
| #include <stdint.h>
|
; (fcn) sym.iobuf_fdopen () | void iobuf_fdopen () {
0x0003e830 lui gp, 2 |
0x0003e834 addiu gp, gp, 0x3900 |
0x0003e838 addu gp, gp, t9 | gp += t9;
0x0003e83c addiu sp, sp, -0x38 |
0x0003e840 lw t9, -0x789c(gp) | t9 = sym.imp.strchr;
0x0003e844 move v0, a1 | v0 = a1;
0x0003e848 addiu a1, zero, 0x77 | a1 = 0x77;
0x0003e84c sw ra, 0x34(sp) | *(var_2ch) = ra;
0x0003e850 sw gp, 0x18(sp) | *(var_10h) = gp;
0x0003e854 sw s4, 0x30(sp) | *(var_28h) = s4;
0x0003e858 sw s3, 0x2c(sp) | *(var_24h) = s3;
0x0003e85c sw s2, 0x28(sp) | *(var_20h) = s2;
0x0003e860 sw s1, 0x24(sp) | *(var_1ch) = s1;
0x0003e864 move s2, a0 | s2 = a0;
0x0003e868 sw s0, 0x20(sp) | *(var_20h_2) = s0;
0x0003e86c move a0, v0 | a0 = v0;
0x0003e870 jalr t9 | t9 ();
0x0003e874 lw gp, 0x18(sp) | gp = *(var_10h);
0x0003e878 addiu s3, zero, 1 | s3 = 1;
0x0003e87c addiu a0, zero, 2 | a0 = 2;
0x0003e880 lw t9, -0x7970(gp) | t9 = sym.iobuf_alloc;
0x0003e884 addiu a1, zero, 0x2000 | a1 = 0x2000;
| if (v0 != 0) {
0x0003e888 movz a0, s3, v0 | a0 = s3;
| }
0x0003e88c bal 0x3e698 | sym_iobuf_alloc ();
0x0003e890 lw gp, 0x18(sp) | gp = *(var_10h);
0x0003e894 addiu a0, zero, 0x2c | a0 = 0x2c;
0x0003e898 lw t9, -0x7f28(gp) | t9 = sym.xmalloc;
0x0003e89c move s1, v0 | s1 = v0;
0x0003e8a0 bal 0x3cb1c | sym_xmalloc ();
0x0003e8a4 lw gp, 0x18(sp) | gp = *(var_10h);
0x0003e8a8 addiu s4, v0, 0x14 | s4 = v0 + 0x14;
0x0003e8ac sw s2, (v0) | *(v0) = s2;
0x0003e8b0 lw a3, -0x7d90(gp) | a3 = *((gp - 8036));
0x0003e8b4 lw t9, -0x794c(gp) | t9 = sym.imp.__sprintf_chk
0x0003e8b8 sw s3, 0x10(v0) | *((v0 + 4)) = s3;
| /* str._fd__d_ */
0x0003e8bc addiu a3, a3, -0x6be4 | a3 += -0x6be4;
0x0003e8c0 sw s2, 0x10(sp) | *(var_10h_2) = s2;
0x0003e8c4 addiu a2, zero, -1 | a2 = -1;
0x0003e8c8 addiu a1, zero, 1 | a1 = 1;
0x0003e8cc move a0, s4 | a0 = s4;
0x0003e8d0 move s0, v0 | s0 = v0;
0x0003e8d4 jalr t9 | t9 ();
0x0003e8d8 lw gp, 0x18(sp) | gp = *(var_10h);
0x0003e8dc sw s0, 0x44(s1) | *((s1 + 17)) = s0;
0x0003e8e0 lw v0, -0x7974(gp) | v0 = *(gp);
0x0003e8e4 lw v1, (v0) | v1 = *(v0);
0x0003e8e8 lw v0, -0x7fdc(gp) | v0 = *(gp);
0x0003e8ec addiu v0, v0, -0x2884 | v0 += -0x2884;
0x0003e8f0 sw v0, 0x40(s1) | *((s1 + 16)) = v0;
0x0003e8f4 lw v0, -0x7d90(gp) | v0 = *((gp - 8036));
| /* str.file_filter_fd_ */
0x0003e8f8 addiu v0, v0, -0x6ed8 | v0 += -0x6ed8;
0x0003e8fc sw v0, 0x5c(s1) | *((s1 + 23)) = v0;
0x0003e900 sw zero, 0xc(s0) | *((s0 + 3)) = 0;
0x0003e904 sw zero, 4(s0) | *((s0 + 1)) = 0;
0x0003e908 sw zero, 8(s0) | *((s0 + 2)) = 0;
0x0003e90c bnez v1, 0x3e950 |
| while (1) {
0x0003e910 lw t9, -0x7fdc(gp) | t9 = *(gp);
0x0003e914 move a0, s1 | a0 = s1;
0x0003e918 move a3, zero | a3 = 0;
0x0003e91c addiu a2, zero, 1 | a2 = 1;
| /* fcn.0003e4bc */
0x0003e920 addiu t9, t9, -0x1b44 | t9 += -0x1b44;
0x0003e924 addiu a1, zero, 3 | a1 = 3;
0x0003e928 bal 0x3e4bc | fcn_0003e4bc ();
0x0003e92c lw ra, 0x34(sp) | ra = *(var_2ch);
0x0003e930 move v0, s1 | v0 = s1;
0x0003e934 lw s4, 0x30(sp) | s4 = *(var_28h);
0x0003e938 lw s3, 0x2c(sp) | s3 = *(var_24h);
0x0003e93c lw s2, 0x28(sp) | s2 = *(var_20h);
0x0003e940 lw s1, 0x24(sp) | s1 = *(var_1ch);
0x0003e944 lw s0, 0x20(sp) | s0 = *(var_20h_2);
0x0003e948 addiu sp, sp, 0x38 |
0x0003e94c jr ra | return v0;
0x0003e950 lw a0, -0x7d90(gp) | a0 = *((gp - 8036));
0x0003e954 lw t9, -0x7f5c(gp) | t9 = sym.g10_log_debug;
0x0003e958 lw a2, 0x58(s1) | a2 = *((s1 + 22));
0x0003e95c lw a1, 0x54(s1) | a1 = *((s1 + 21));
0x0003e960 move a3, s4 | a3 = s4;
| /* str.iobuf__d._d:_fdopen___s_n */
0x0003e964 addiu a0, a0, -0x6bdc | a0 += -0x6bdc;
0x0003e968 bal 0x388a0 | sym_g10_log_debug ();
0x0003e96c lw gp, 0x18(sp) | gp = *(var_10h);
0x0003e970 b 0x3e910 |
| }
| }
; assembly | /* r2dec pseudo code output */
| /* /logs/firmware/unblob_extracted/firmware_extract/4325012-58052244.squashfs_v4_le_extract/usr/bin/gpgv @ 0x198c0 */
| #include <stdint.h>
|
; (fcn) sym.keystrlen () | void keystrlen () {
0x000198c0 lui gp, 5 |
0x000198c4 addiu gp, gp, -0x7790 |
0x000198c8 addu gp, gp, t9 | gp += t9;
0x000198cc lw v0, -0x7fc8(gp) | v0 = *(gp);
0x000198d0 addiu sp, sp, -0x20 |
0x000198d4 lw v0, 0xf0(v0) | v0 = *((v0 + 60));
0x000198d8 sw gp, 0x10(sp) | *(var_10h) = gp;
0x000198dc sltiu v1, v0, 4 | v1 = (v0 < 4) ? 1 : 0;
0x000198e0 sw ra, 0x1c(sp) | *(var_1ch) = ra;
0x000198e4 sll v1, v0, 2 | v1 = v0 << 2;
| if (v1 != 0) {
0x000198e8 beqz v1, 0x19904 |
0x000198ec lw v0, -0x7fdc(gp) | v0 = *(gp);
0x000198f0 lw ra, 0x1c(sp) | ra = *(var_1ch);
0x000198f4 addiu v0, v0, 0x5228 | v0 += 0x5228;
0x000198f8 addiu sp, sp, 0x20 |
0x000198fc lwx v0, v1(v0) | __asm ("lwx v0, v1(v0)");
0x00019900 jr ra | return v0;
| }
0x00019904 lw a2, -0x7fdc(gp) | a2 = *(gp);
0x00019908 lw a0, -0x7fdc(gp) | a0 = *(gp);
0x0001990c lw t9, -0x7f18(gp) | t9 = sym.g10_log_bug0;
| /* str.keystrlen */
0x00019910 addiu a2, a2, 0x52b8 | a2 += 0x52b8;
0x00019914 addiu a1, zero, 0xa6 | a1 = 0xa6;
| /* str..._.._gnupg_1.4.7_g10_keyid.c */
0x00019918 addiu a0, a0, 0x5194 | a0 += 0x5194;
0x0001991c bal 0x38750 | return sym_g10_log_bug0 ();
| }
; assembly | /* r2dec pseudo code output */
| /* /logs/firmware/unblob_extracted/firmware_extract/4325012-58052244.squashfs_v4_le_extract/usr/bin/gpgv @ 0x19920 */
| #include <stdint.h>
|
; (fcn) sym.keystr () | void keystr () {
0x00019920 lui gp, 5 |
0x00019924 addiu gp, gp, -0x77f0 |
0x00019928 addu gp, gp, t9 | gp += t9;
0x0001992c lw v0, -0x7fc8(gp) | v0 = *(gp);
0x00019930 addiu sp, sp, -0x28 |
0x00019934 addiu v1, zero, 1 | v1 = 1;
0x00019938 lw v0, 0xf0(v0) | v0 = *((v0 + 60));
0x0001993c sw gp, 0x18(sp) | *(var_18h) = gp;
0x00019940 sw ra, 0x24(sp) | *(var_24h) = ra;
0x00019944 sw s0, 0x20(sp) | *(var_20h) = s0;
| if (v0 == v1) {
0x00019948 beql v0, v1, 0x199e4 | goto label_2;
| }
0x0001994c lw v0, (a0) | v0 = *(a0);
0x00019950 addiu v1, zero, 2 | v1 = 2;
| if (v0 == 0) {
0x00019954 beqz v0, 0x199c8 | goto label_3;
| }
0x00019958 addiu v1, zero, 3 | v1 = 3;
| if (v0 != v1) {
0x0001995c beq v0, v1, 0x1998c |
0x00019960 lw s0, -0x7fb4(gp) | s0 = *((gp - 8173));
| if (v0 != v1) {
0x00019964 bne v0, v1, 0x19a40 | goto label_4;
| }
0x00019968 lw v0, (a0) | v0 = *(a0);
0x0001996c lw v1, 4(a0) | v1 = *((a0 + 1));
0x00019970 lw t9, -0x794c(gp) | t9 = sym.imp.__sprintf_chk
| if (v0 == 0) {
0x00019974 beqz v0, 0x19a38 | goto label_5;
| }
0x00019978 lw a3, -0x7fdc(gp) | a3 = *(gp);
0x0001997c sw v1, 0x14(sp) | *(var_14h) = v1;
0x00019980 sw v0, 0x10(sp) | *(var_10h_2) = v0;
| /* str.0x_08lX_08lX */
0x00019984 addiu a3, a3, 0x51c4 | a3 += 0x51c4;
0x00019988 b 0x19a04 | goto label_6;
| }
0x0001998c lw v0, 4(a0) | v0 = *((a0 + 1));
0x00019990 lw s0, -0x7fb4(gp) | s0 = *((gp - 8173));
0x00019994 lw t9, -0x794c(gp) | t9 = sym.imp.__sprintf_chk
0x00019998 sw v0, 0x10(sp) | *(var_10h_2) = v0;
| label_1:
0x0001999c lw a3, -0x7fdc(gp) | a3 = *(gp);
| /* str.0x_08lX */
0x000199a0 addiu a3, a3, 0x51bc | a3 += 0x51bc;
| do {
| label_0:
0x000199a4 addiu a0, s0, -0x4dc4 | a0 = s0 + -0x4dc4;
0x000199a8 addiu a2, zero, 0x13 | a2 = 0x13;
0x000199ac addiu a1, zero, 1 | a1 = 1;
0x000199b0 jalr t9 | t9 ();
0x000199b4 lw ra, 0x24(sp) | ra = *(var_24h);
0x000199b8 addiu v0, s0, -0x4dc4 | v0 = s0 + -0x4dc4;
0x000199bc lw s0, 0x20(sp) | s0 = *(var_20h);
0x000199c0 addiu sp, sp, 0x28 |
0x000199c4 jr ra | return v1;
| label_3:
0x000199c8 lw v0, 4(a0) | v0 = *((a0 + 1));
0x000199cc lw a3, -0x7fdc(gp) | a3 = *(gp);
0x000199d0 lw s0, -0x7fb4(gp) | s0 = *((gp - 8173));
0x000199d4 lw t9, -0x794c(gp) | t9 = sym.imp.__sprintf_chk
0x000199d8 sw v0, 0x10(sp) | *(var_10h_2) = v0;
| /* str._08lX */
0x000199dc addiu a3, a3, 0x51b4 | a3 += 0x51b4;
0x000199e0 b 0x199a4 |
| } while (1);
| label_2:
0x000199e4 lw v1, 4(a0) | v1 = *((a0 + 1));
0x000199e8 lw s0, -0x7fb4(gp) | s0 = *((gp - 8173));
0x000199ec lw t9, -0x794c(gp) | t9 = sym.imp.__sprintf_chk
| if (v0 != 0) {
0x000199f0 beqz v0, 0x19a28 |
0x000199f4 lw a3, -0x7fdc(gp) | a3 = *(gp);
0x000199f8 sw v1, 0x14(sp) | *(var_14h) = v1;
0x000199fc sw v0, 0x10(sp) | *(var_10h_2) = v0;
| /* str._08lX_08lX */
0x00019a00 addiu a3, a3, 0x3c08 | a3 += 0x3c08;
| label_6:
0x00019a04 addiu a0, s0, -0x4dc4 | a0 = s0 + -0x4dc4;
0x00019a08 addiu a2, zero, 0x13 | a2 = 0x13;
0x00019a0c addiu a1, zero, 1 | a1 = 1;
0x00019a10 jalr t9 | t9 ();
0x00019a14 lw ra, 0x24(sp) | ra = *(var_24h);
0x00019a18 addiu v0, s0, -0x4dc4 | v0 = s0 + -0x4dc4;
0x00019a1c lw s0, 0x20(sp) | s0 = *(var_20h);
0x00019a20 addiu sp, sp, 0x28 |
0x00019a24 jr ra | return v1;
| }
0x00019a28 lw a3, -0x7fdc(gp) | a3 = *(gp);
0x00019a2c sw v1, 0x10(sp) | *(var_10h_2) = v1;
| /* str._08lX */
0x00019a30 addiu a3, a3, 0x51b4 | a3 += 0x51b4;
0x00019a34 b 0x199a4 | goto label_0;
| label_5:
0x00019a38 sw v1, 0x10(sp) | *(var_10h_2) = v1;
0x00019a3c b 0x1999c | goto label_1;
| label_4:
0x00019a40 lw a2, -0x7fdc(gp) | a2 = *(gp);
0x00019a44 lw a0, -0x7fdc(gp) | a0 = *(gp);
0x00019a48 lw t9, -0x7f18(gp) | t9 = sym.g10_log_bug0;
| /* str.keystr */
0x00019a4c addiu a2, a2, 0x52b0 | a2 += 0x52b0;
0x00019a50 addiu a1, zero, 0xc8 | a1 = 0xc8;
| /* str..._.._gnupg_1.4.7_g10_keyid.c */
0x00019a54 addiu a0, a0, 0x5194 | a0 += 0x5194;
0x00019a58 bal 0x38750 | return sym_g10_log_bug0 ();
| }
; assembly | /* r2dec pseudo code output */
| /* /logs/firmware/unblob_extracted/firmware_extract/4325012-58052244.squashfs_v4_le_extract/usr/bin/gpgv @ 0x19bf4 */
| #include <stdint.h>
|
; (fcn) sym.keystr_from_sk () | void keystr_from_sk () {
0x00019bf4 lui gp, 5 |
0x00019bf8 addiu gp, gp, -0x7ac4 |
0x00019bfc addu gp, gp, t9 | gp += t9;
0x00019c00 addiu sp, sp, -0x20 |
0x00019c04 lw t9, -0x7e5c(gp) | t9 = sym.keyid_from_sk;
0x00019c08 move a1, zero | a1 = 0;
0x00019c0c sw s0, 0x18(sp) | *(var_18h_2) = s0;
0x00019c10 sw ra, 0x1c(sp) | *(var_1ch_3) = ra;
0x00019c14 sw gp, 0x10(sp) | *(var_10h_4) = gp;
0x00019c18 move s0, a0 | s0 = a0;
0x00019c1c bal 0x19a5c | sym_keyid_from_sk ();
0x00019c20 lw gp, 0x10(sp) | gp = *(var_10h_4);
0x00019c24 lw ra, 0x1c(sp) | ra = *(var_1ch_3);
0x00019c28 addiu a0, s0, 0x28 | a0 = s0 + 0x28;
0x00019c2c lw t9, -0x7e48(gp) | t9 = sym.keystr;
0x00019c30 lw s0, 0x18(sp) | s0 = *(var_18h_2);
0x00019c34 addiu sp, sp, 0x20 |
0x00019c38 b 0x19920 | return void (*0x19920)() ();
| }
; assembly | /* r2dec pseudo code output */
| /* /logs/firmware/unblob_extracted/firmware_extract/4325012-58052244.squashfs_v4_le_extract/usr/bin/gpgv @ 0x19dd4 */
| #include <stdint.h>
|
; (fcn) sym.keystr_from_pk () | void keystr_from_pk () {
0x00019dd4 lui gp, 5 |
0x00019dd8 addiu gp, gp, -0x7ca4 |
0x00019ddc addu gp, gp, t9 | gp += t9;
0x00019de0 addiu sp, sp, -0x20 |
0x00019de4 lw t9, -0x7eb4(gp) | t9 = sym.keyid_from_pk;
0x00019de8 move a1, zero | a1 = 0;
0x00019dec sw s0, 0x18(sp) | *(var_18h) = s0;
0x00019df0 sw ra, 0x1c(sp) | *(var_1ch) = ra;
0x00019df4 sw gp, 0x10(sp) | *(var_10h) = gp;
0x00019df8 move s0, a0 | s0 = a0;
0x00019dfc bal 0x19c3c | sym_keyid_from_pk ();
0x00019e00 lw gp, 0x10(sp) | gp = *(var_10h);
0x00019e04 lw ra, 0x1c(sp) | ra = *(var_1ch);
0x00019e08 addiu a0, s0, 0x44 | a0 = s0 + 0x44;
0x00019e0c lw t9, -0x7e48(gp) | t9 = sym.keystr;
0x00019e10 lw s0, 0x18(sp) | s0 = *(var_18h);
0x00019e14 addiu sp, sp, 0x20 |
0x00019e18 b 0x19920 | return void (*0x19920)() ();
| }
; assembly | /* r2dec pseudo code output */
| /* /logs/firmware/unblob_extracted/firmware_extract/4325012-58052244.squashfs_v4_le_extract/usr/bin/gpgv @ 0x1e620 */
| #include <stdint.h>
|
; (fcn) sym.make_attribute_uidname () | void make_attribute_uidname () {
0x0001e620 lui gp, 4 |
0x0001e624 addiu gp, gp, 0x3b10 |
0x0001e628 addu gp, gp, t9 | gp += t9;
0x0001e62c addiu sp, sp, -0x40 |
0x0001e630 sltiu a1, a1, 0x47 | a1 = (a1 < 0x47) ? 1 : 0;
0x0001e634 sw s2, 0x38(sp) | *(var_38h) = s2;
0x0001e638 lw s2, -0x781c(gp) | s2 = *((gp - 7687));
0x0001e63c sw gp, 0x18(sp) | *(var_18h) = gp;
0x0001e640 sw ra, 0x3c(sp) | *(var_3ch) = ra;
0x0001e644 lw v0, (s2) | v0 = *(s2);
0x0001e648 sw s1, 0x34(sp) | *(var_34h) = s1;
0x0001e64c sw s0, 0x30(sp) | *(var_30h) = s0;
0x0001e650 sw v0, 0x2c(sp) | *(var_2ch) = v0;
0x0001e654 move s0, a0 | s0 = a0;
| if (a1 != 0) {
0x0001e658 bnez a1, 0x1e7a8 | goto label_3;
| }
0x0001e65c lw v0, 0xc(a0) | v0 = *((a0 + 3));
0x0001e660 addiu s1, a0, 0x4c | s1 = a0 + 0x4c;
| if (v0 <= 0) {
0x0001e664 blez v0, 0x1e70c | goto label_4;
| }
0x0001e668 addiu v1, zero, 1 | v1 = 1;
0x0001e66c lw v1, 0x14(a0) | v1 = *((a0 + 5));
| if (v0 == v1) {
0x0001e670 bnel v0, v1, 0x1e6e0 | goto label_5;
| }
0x0001e674 lw a0, 8(a0) | a0 = *((a0 + 2));
0x0001e678 lbu v1, (a0) | v1 = *(a0);
0x0001e67c lw a3, -0x7fdc(gp) | a3 = *(gp);
| if (v1 == v0) {
0x0001e680 beq v1, v0, 0x1e724 | goto label_6;
| }
0x0001e684 lw v0, 8(a0) | v0 = *((a0 + 2));
0x0001e688 lw t9, -0x794c(gp) | t9 = sym.imp.__sprintf_chk
0x0001e68c sw v0, 0x10(sp) | *(var_f0h) = v0;
| /* str._unknown_attribute_of_size__lu_ */
0x0001e690 addiu a3, a3, 0x5ddc | a3 += 0x5ddc;
| label_0:
0x0001e694 addiu a2, zero, -1 | a2 = -1;
0x0001e698 addiu a1, zero, 1 | a1 = 1;
0x0001e69c move a0, s1 | a0 = s1;
0x0001e6a0 jalr t9 | t9 ();
0x0001e6a4 lw gp, 0x18(sp) | gp = *(var_18h);
| do {
| label_2:
0x0001e6a8 lw t9, -0x78a0(gp) | t9 = sym.imp.strlen;
0x0001e6ac move a0, s1 | a0 = s1;
0x0001e6b0 jalr t9 | t9 ();
0x0001e6b4 lw a0, 0x2c(sp) | a0 = *(var_2ch);
0x0001e6b8 lw v1, (s2) | v1 = *(s2);
0x0001e6bc lw gp, 0x18(sp) | gp = *(var_18h);
0x0001e6c0 sw v0, 4(s0) | *((s0 + 1)) = v0;
| if (a0 != v1) {
0x0001e6c4 bne a0, v1, 0x1e7cc | goto label_7;
| }
0x0001e6c8 lw ra, 0x3c(sp) | ra = *(var_3ch);
0x0001e6cc lw s2, 0x38(sp) | s2 = *(var_38h);
0x0001e6d0 lw s1, 0x34(sp) | s1 = *(var_34h);
0x0001e6d4 lw s0, 0x30(sp) | s0 = *(var_30h);
0x0001e6d8 addiu sp, sp, 0x40 |
0x0001e6dc jr ra | return v0;
| label_5:
0x0001e6e0 lw a3, -0x7fdc(gp) | a3 = *(gp);
0x0001e6e4 lw t9, -0x794c(gp) | t9 = sym.imp.__sprintf_chk
0x0001e6e8 sw v1, 0x14(sp) | *(var_f4h) = v1;
0x0001e6ec sw v0, 0x10(sp) | *(var_f0h) = v0;
| /* str.__d_attributes_of_size__lu_ */
0x0001e6f0 addiu a3, a3, 0x5d94 | a3 += sym._init;
| label_1:
0x0001e6f4 addiu a2, zero, -1 | a2 = -1;
0x0001e6f8 addiu a1, zero, 1 | a1 = 1;
0x0001e6fc move a0, s1 | a0 = s1;
0x0001e700 jalr t9 | t9 ();
0x0001e704 lw gp, 0x18(sp) | gp = *(var_18h);
0x0001e708 b 0x1e6a8 |
| } while (1);
| label_4:
0x0001e70c lw v0, 0x14(a0) | v0 = *((a0 + 5));
0x0001e710 lw a3, -0x7fdc(gp) | a3 = *(gp);
0x0001e714 lw t9, -0x794c(gp) | t9 = sym.imp.__sprintf_chk
0x0001e718 sw v0, 0x10(sp) | *(var_f0h) = v0;
| /* str._bad_attribute_packet_of_size__lu_ */
0x0001e71c addiu a3, a3, 0x5d70 | a3 += 0x5d70;
0x0001e720 b 0x1e694 | goto label_0;
| label_6:
0x0001e724 lw t9, -0x7b9c(gp) | t9 = sym.parse_image_header;
0x0001e728 addiu a2, sp, 0x28 | a2 = sp + 0x28;
0x0001e72c addiu a1, sp, 0x27 | a1 = sp + 0x27;
0x0001e730 bal 0x63b0 | sym_parse_image_header ();
0x0001e734 lw gp, 0x18(sp) | gp = *(var_18h);
| if (v0 != 0) {
0x0001e738 beqz v0, 0x1e76c |
0x0001e73c lw t9, -0x7b98(gp) | t9 = sym.image_type_to_string;
0x0001e740 lbu a0, 0x27(sp) | a0 = *(var_27h);
0x0001e744 addiu a1, zero, 1 | a1 = 1;
0x0001e748 bal 0x63b8 | sym_image_type_to_string ();
0x0001e74c lw gp, 0x18(sp) | gp = *(var_18h);
0x0001e750 lw v1, 0x28(sp) | v1 = *(var_28h_2);
0x0001e754 sw v0, 0x10(sp) | *(var_f0h) = v0;
0x0001e758 lw a3, -0x7fdc(gp) | a3 = *(gp);
0x0001e75c lw t9, -0x794c(gp) | t9 = sym.imp.__sprintf_chk
0x0001e760 sw v1, 0x14(sp) | *(var_f4h) = v1;
| /* str.__.20s_image_of_size__lu_ */
0x0001e764 addiu a3, a3, 0x5db0 | a3 += 0x5db0;
0x0001e768 b 0x1e6f4 | goto label_1;
| }
0x0001e76c lw v1, -0x7fdc(gp) | v1 = *(gp);
| /* str._invalid_image_ */
0x0001e770 addiu v0, v1, 0x5dcc | v0 = v1 + 0x5dcc;
0x0001e774 lw v1, 0x5dcc(v1) | v1 = *((v1 + 6003));
0x0001e778 lw a0, 4(v0) | a0 = *((v0 + 1));
0x0001e77c swl v1, 3(s1) | __asm ("swl v1, 3(s1)");
0x0001e780 swr v1, (s1) | __asm ("swr v1, (s1)");
0x0001e784 swl a0, 7(s1) | __asm ("swl a0, 7(s1)");
0x0001e788 lw v1, 8(v0) | v1 = *((v0 + 2));
0x0001e78c swr a0, 4(s1) | __asm ("swr a0, 4(s1)");
0x0001e790 swl v1, 0xb(s1) | __asm ("swl v1, 0xb(s1)");
0x0001e794 lw v0, 0xc(v0) | v0 = *((v0 + 3));
0x0001e798 swr v1, 8(s1) | __asm ("swr v1, 8(s1)");
0x0001e79c swl v0, 0xf(s1) | __asm ("swl v0, 0xf(s1)");
0x0001e7a0 swr v0, 0xc(s1) | __asm ("swr v0, 0xc(s1)");
0x0001e7a4 b 0x1e6a8 | goto label_2;
| label_3:
0x0001e7a8 lw a3, -0x7fdc(gp) | a3 = *(gp);
0x0001e7ac lw a1, -0x7fdc(gp) | a1 = *(gp);
0x0001e7b0 lw a0, -0x7fdc(gp) | a0 = *(gp);
0x0001e7b4 lw t9, -0x7944(gp) | t9 = sym.imp.__assert_fail;
| /* str.make_attribute_uidname */
0x0001e7b8 addiu a3, a3, 0x6524 | a3 += 0x6524;
0x0001e7bc addiu a2, zero, 0x7fd | a2 = 0x7fd;
| /* str..._.._gnupg_1.4.7_g10_parse_packet.c */
0x0001e7c0 addiu a1, a1, 0x5d34 | a1 += 0x5d34;
| /* str.max_namelen___70 */
0x0001e7c4 addiu a0, a0, 0x5d5c | a0 += 0x5d5c;
0x0001e7c8 jalr t9 | t9 ();
| label_7:
0x0001e7cc lw t9, -0x7834(gp) | t9 = sym.imp.__stack_chk_fail;
0x0001e7d0 jalr t9 | t9 ();
0x0001e7d4 nop |
| }
; assembly | /* r2dec pseudo code output */
| /* /logs/firmware/unblob_extracted/firmware_extract/4325012-58052244.squashfs_v4_le_extract/usr/bin/gpgv @ 0x39320 */
| #include <stdint.h>
|
; (fcn) sym.make_printable_string () | void make_printable_string () {
0x00039320 lui gp, 3 |
0x00039324 addiu gp, gp, -0x71f0 |
0x00039328 addu gp, gp, t9 | gp += t9;
0x0003932c addiu sp, sp, -0x48 |
0x00039330 sw gp, 0x18(sp) | *(var_18h) = gp;
0x00039334 sw ra, 0x44(sp) | *(var_44h) = ra;
0x00039338 sw fp, 0x40(sp) | *(var_40h) = fp;
0x0003933c sw s7, 0x3c(sp) | *(var_3ch) = s7;
0x00039340 sw s6, 0x38(sp) | *(var_38h) = s6;
0x00039344 sw s5, 0x34(sp) | *(var_34h) = s5;
0x00039348 sw s4, 0x30(sp) | *(var_30h) = s4;
0x0003934c sw s3, 0x2c(sp) | *(var_2ch) = s3;
0x00039350 sw s2, 0x28(sp) | *(var_28h) = s2;
0x00039354 sw s1, 0x24(sp) | *(var_24h) = s1;
0x00039358 sw s0, 0x20(sp) | *(var_20h) = s0;
0x0003935c move s0, a0 | s0 = a0;
| if (a1 == 0) {
0x00039360 beqz a1, 0x39548 | goto label_2;
| }
0x00039364 move s4, a2 | s4 = a2;
0x00039368 addu s2, a0, a1 | s2 = a0 + a1;
0x0003936c move v0, a0 | v0 = a0;
0x00039370 addiu a3, zero, -9 | a3 = -9;
0x00039374 addiu a0, zero, 1 | a0 = 1;
0x00039378 addiu a2, zero, 0x5c | a2 = 0x5c;
0x0003937c lbu v1, (v0) | v1 = *(v0);
| do {
0x00039380 sltiu a1, v1, 0x20 | a1 = (v1 < 0x20) ? 1 : 0;
0x00039384 addiu a1, v1, -0xa | a1 = v1 + -0xa;
| if (a1 != 0) {
0x00039388 bnez a1, 0x394b8 | goto label_3;
| }
0x0003938c addiu a1, v1, -0x7f | a1 = v1 + -0x7f;
0x00039390 sltiu a1, a1, 0x21 | a1 = (a1 < 0x21) ? 1 : 0;
0x00039394 addiu a0, a0, 4 | a0 += 4;
| if (a1 != 0) {
0x00039398 bnel a1, zero, 0x393b8 |
| if (v1 == s4) {
0x0003939c beql v1, s4, 0x393b8 | goto label_1;
| }
0x000393a0 addiu a0, a0, 4 | a0 += 4;
| if (s4 == 0) {
0x000393a4 beql s4, zero, 0x393b8 | goto label_1;
| }
0x000393a8 addiu a0, a0, 1 | a0++;
| if (v1 == a2) {
0x000393ac beql v1, a2, 0x393b8 | goto label_1;
| }
0x000393b0 addiu a0, a0, 4 | a0 += 4;
0x000393b4 addiu a0, a0, 1 | a0++;
| }
| label_1:
0x000393b8 addiu v0, v0, 1 | v0++;
0x000393bc lbu v1, (v0) | v1 = *(v0);
0x000393c0 bnel s2, v0, 0x39380 |
| } while (s2 == v0);
0x000393c4 lw t9, -0x7f28(gp) | t9 = sym.xmalloc;
0x000393c8 addiu s5, zero, 0x5c | s5 = 0x5c;
0x000393cc bal 0x3cb1c | sym_xmalloc ();
0x000393d0 lw gp, 0x18(sp) | gp = *(var_18h);
0x000393d4 move fp, v0 | fp = v0;
0x000393d8 move s1, v0 | s1 = v0;
0x000393dc lw s7, -0x7d90(gp) | s7 = *((gp - 8036));
0x000393e0 addiu s3, zero, 0xa | s3 = 0xa;
0x000393e4 addiu s6, zero, 0xd | s6 = 0xd;
| /* str.x_02x */
0x000393e8 addiu s7, s7, -0x7dec | s7 += -0x7dec;
0x000393ec lbu v0, (s0) | v0 = *(s0);
| do {
0x000393f0 sltiu v1, v0, 0x20 | v1 = (v0 < 0x20) ? 1 : 0;
0x000393f4 sb s5, (s1) | *(s1) = s5;
| if (v1 == 0) {
0x000393f8 bnel v1, zero, 0x39474 | goto label_4;
| }
0x000393fc addiu v1, v0, -0x7f | v1 = v0 + -0x7f;
0x00039400 sltiu v1, v1, 0x21 | v1 = (v1 < 0x21) ? 1 : 0;
0x00039404 sb s5, (s1) | *(s1) = s5;
| if (v1 == 0) {
0x00039408 bnel v1, zero, 0x39474 | goto label_4;
| }
| if (v0 == s4) {
0x0003940c beql v0, s4, 0x39474 | goto label_4;
| }
0x00039410 sb s5, (s1) | *(s1) = s5;
| if (s4 != 0) {
0x00039414 beql s4, zero, 0x3942c |
0x00039418 sb v0, (s1) | *(s1) = v0;
0x0003941c addiu v1, zero, 0x5c | v1 = 0x5c;
| if (v0 == v1) {
0x00039420 beql v0, v1, 0x39474 | goto label_4;
| }
0x00039424 sb s5, (s1) | *(s1) = s5;
0x00039428 sb v0, (s1) | *(s1) = v0;
| }
0x0003942c addiu s1, s1, 1 | s1++;
| label_0:
0x00039430 addiu s0, s0, 1 | s0++;
0x00039434 lbu v0, (s0) | v0 = *(s0);
0x00039438 bnel s2, s0, 0x393f0 |
| } while (s2 == s0);
0x0003943c sb zero, (s1) | *(s1) = 0;
0x00039440 lw ra, 0x44(sp) | ra = *(var_44h);
0x00039444 move v0, fp | v0 = fp;
0x00039448 lw s7, 0x3c(sp) | s7 = *(var_3ch);
0x0003944c lw fp, 0x40(sp) | fp = *(var_40h);
0x00039450 lw s6, 0x38(sp) | s6 = *(var_38h);
0x00039454 lw s5, 0x34(sp) | s5 = *(var_34h);
0x00039458 lw s4, 0x30(sp) | s4 = *(var_30h);
0x0003945c lw s3, 0x2c(sp) | s3 = *(var_2ch);
0x00039460 lw s2, 0x28(sp) | s2 = *(var_28h);
0x00039464 lw s1, 0x24(sp) | s1 = *(var_24h);
0x00039468 lw s0, 0x20(sp) | s0 = *(var_20h);
0x0003946c addiu sp, sp, 0x48 |
0x00039470 jr ra | return v0;
| label_4:
0x00039474 lbu v0, (s0) | v0 = *(s0);
| if (v0 != s3) {
0x00039478 beql v0, s3, 0x394cc |
0x0003947c addiu v0, zero, 0x6e | v0 = 0x6e;
0x00039480 addiu v1, zero, 0xc | v1 = 0xc;
| if (v0 == s6) {
0x00039484 beq v0, s6, 0x394d8 | goto label_5;
| }
0x00039488 addiu v1, zero, 0xb | v1 = 0xb;
| if (v0 == v1) {
0x0003948c beq v0, v1, 0x394e8 | goto label_6;
| }
0x00039490 addiu v1, zero, 8 | v1 = 8;
| if (v0 == v1) {
0x00039494 beq v0, v1, 0x394f8 | goto label_7;
| }
| if (v0 == v1) {
0x00039498 beql v0, v1, 0x39518 | goto label_8;
| }
0x0003949c addiu v0, zero, 0x62 | v0 = 0x62;
0x000394a0 lw t9, -0x794c(gp) | t9 = sym.imp.__sprintf_chk
| if (v0 != 0) {
0x000394a4 bnez v0, 0x39524 | goto label_9;
| }
0x000394a8 addiu v0, zero, 0x30 | v0 = 0x30;
0x000394ac sb v0, 1(s1) | *((s1 + 1)) = v0;
0x000394b0 addiu s1, s1, 2 | s1 += 2;
0x000394b4 b 0x39430 | goto label_0;
| label_3:
0x000394b8 sltiu a1, a1, 4 | a1 = (a1 < 4) ? 1 : 0;
| if (a1 == 0) {
0x000394bc beql a1, zero, 0x39508 | goto label_10;
| }
0x000394c0 and v1, v1, a3 | v1 &= a3;
0x000394c4 addiu a0, a0, 2 | a0 += 2;
0x000394c8 b 0x393b8 | goto label_1;
| }
0x000394cc sb v0, 1(s1) | *((s1 + 1)) = v0;
0x000394d0 addiu s1, s1, 2 | s1 += 2;
0x000394d4 b 0x39430 | goto label_0;
| label_5:
0x000394d8 addiu v0, zero, 0x72 | v0 = 0x72;
0x000394dc sb v0, 1(s1) | *((s1 + 1)) = v0;
0x000394e0 addiu s1, s1, 2 | s1 += 2;
0x000394e4 b 0x39430 | goto label_0;
| label_6:
0x000394e8 addiu v0, zero, 0x66 | v0 = 0x66;
0x000394ec sb v0, 1(s1) | *((s1 + 1)) = v0;
0x000394f0 addiu s1, s1, 2 | s1 += 2;
0x000394f4 b 0x39430 | goto label_0;
| label_7:
0x000394f8 addiu v0, zero, 0x76 | v0 = 0x76;
0x000394fc sb v0, 1(s1) | *((s1 + 1)) = v0;
0x00039500 addiu s1, s1, 2 | s1 += 2;
0x00039504 b 0x39430 | goto label_0;
| if (v1 == 0) {
| label_10:
0x00039508 beql v1, zero, 0x393b8 | goto label_1;
| }
0x0003950c addiu a0, a0, 2 | a0 += 2;
0x00039510 addiu a0, a0, 4 | a0 += 4;
0x00039514 b 0x393b8 | goto label_1;
| label_8:
0x00039518 sb v0, 1(s1) | *((s1 + 1)) = v0;
0x0003951c addiu s1, s1, 2 | s1 += 2;
0x00039520 b 0x39430 | goto label_0;
| label_9:
0x00039524 addiu a0, s1, 1 | a0 = s1 + 1;
0x00039528 sw v0, 0x10(sp) | *(var_10h) = v0;
0x0003952c move a3, s7 | a3 = s7;
0x00039530 addiu a2, zero, -1 | a2 = -1;
0x00039534 addiu a1, zero, 1 | a1 = 1;
0x00039538 jalr t9 | t9 ();
0x0003953c addiu s1, s1, 4 | s1 += 4;
0x00039540 lw gp, 0x18(sp) | gp = *(var_18h);
0x00039544 b 0x39430 | goto label_0;
| label_2:
0x00039548 lw t9, -0x7f28(gp) | t9 = sym.xmalloc;
0x0003954c addiu a0, zero, 1 | a0 = 1;
0x00039550 bal 0x3cb1c | sym_xmalloc ();
0x00039554 move s1, v0 | s1 = v0;
0x00039558 move fp, v0 | fp = v0;
0x0003955c sb zero, (s1) | *(s1) = 0;
0x00039560 lw ra, 0x44(sp) | ra = *(var_44h);
0x00039564 move v0, fp | v0 = fp;
0x00039568 lw s7, 0x3c(sp) | s7 = *(var_3ch);
0x0003956c lw fp, 0x40(sp) | fp = *(var_40h);
0x00039570 lw s6, 0x38(sp) | s6 = *(var_38h);
0x00039574 lw s5, 0x34(sp) | s5 = *(var_34h);
0x00039578 lw s4, 0x30(sp) | s4 = *(var_30h);
0x0003957c lw s3, 0x2c(sp) | s3 = *(var_2ch);
0x00039580 lw s2, 0x28(sp) | s2 = *(var_28h);
0x00039584 lw s1, 0x24(sp) | s1 = *(var_24h);
0x00039588 lw s0, 0x20(sp) | s0 = *(var_20h);
0x0003958c addiu sp, sp, 0x48 |
0x00039590 jr ra | return v0;
| }
; assembly | /* r2dec pseudo code output */
| /* /logs/firmware/unblob_extracted/firmware_extract/4325012-58052244.squashfs_v4_le_extract/usr/bin/gpgv @ 0x284b8 */
| #include <stdint.h>
|
; (fcn) sym.md_start_debug () | void md_start_debug () {
0x000284b8 lui gp, 4 |
0x000284bc addiu gp, gp, -0x6388 |
0x000284c0 addu gp, gp, t9 | gp += t9;
0x000284c4 addiu sp, sp, -0x50 |
0x000284c8 lw v0, 4(a0) | v0 = *((a0 + 1));
0x000284cc sw s0, 0x40(sp) | *(var_40h) = s0;
0x000284d0 lw s0, -0x781c(gp) | s0 = *((gp - 7687));
0x000284d4 sw gp, 0x18(sp) | *(var_18h_2) = gp;
0x000284d8 sw ra, 0x4c(sp) | *(var_4ch) = ra;
0x000284dc lw v1, (s0) | v1 = *(s0);
0x000284e0 sw s2, 0x48(sp) | *(var_48h) = s2;
0x000284e4 sw s1, 0x44(sp) | *(var_44h) = s1;
0x000284e8 sw v1, 0x3c(sp) | *(var_3ch) = v1;
0x000284ec lw t9, -0x7f5c(gp) | t9 = sym.g10_log_debug;
| if (v0 == 0) {
0x000284f0 beqz v0, 0x28528 | goto label_1;
| }
0x000284f4 lw a0, -0x7fdc(gp) | a0 = *(gp);
| /* str.Oops:_md_debug_already_started_n */
0x000284f8 addiu a0, a0, 0x77e8 | a0 += 0x77e8;
0x000284fc bal 0x388a0 | sym_g10_log_debug ();
0x00028500 lw gp, 0x18(sp) | gp = *(var_18h_2);
| do {
| label_0:
0x00028504 lw v1, 0x3c(sp) | v1 = *(var_3ch);
0x00028508 lw v0, (s0) | v0 = *(s0);
0x0002850c lw ra, 0x4c(sp) | ra = *(var_4ch);
| if (v1 != v0) {
0x00028510 bne v1, v0, 0x285a8 | goto label_2;
| }
0x00028514 lw s2, 0x48(sp) | s2 = *(var_48h);
0x00028518 lw s1, 0x44(sp) | s1 = *(var_44h);
0x0002851c lw s0, 0x40(sp) | s0 = *(var_40h);
0x00028520 addiu sp, sp, 0x50 |
0x00028524 jr ra | return v0;
| label_1:
0x00028528 lw v1, -0x7fb4(gp) | v1 = *((gp - 8173));
0x0002852c lw a3, -0x7fdc(gp) | a3 = *(gp);
0x00028530 move t0, a1 | t0 = a1;
0x00028534 lw v0, -0x4a24(v1) | v0 = *((v1 - 4745));
0x00028538 lw t9, -0x794c(gp) | t9 = sym.imp.__sprintf_chk
0x0002853c addiu v0, v0, 1 | v0++;
0x00028540 addiu s2, sp, 0x20 | s2 = sp + 0x20;
0x00028544 move s1, a0 | s1 = a0;
| /* str.dbgmd__05d._.10s */
0x00028548 addiu a3, a3, 0x7808 | a3 += 0x7808;
0x0002854c addiu a2, zero, 0x19 | a2 = 0x19;
0x00028550 addiu a1, zero, 1 | a1 = 1;
0x00028554 move a0, s2 | a0 = s2;
0x00028558 sw t0, 0x14(sp) | *(var_14h) = t0;
0x0002855c sw v0, -0x4a24(v1) | *((v1 - 4745)) = v0;
0x00028560 sw v0, 0x10(sp) | *(var_10h_2) = v0;
0x00028564 jalr t9 | t9 ();
0x00028568 lw gp, 0x18(sp) | gp = *(var_18h_2);
0x0002856c move a0, s2 | a0 = s2;
0x00028570 lw a1, -0x7fdc(gp) | a1 = *(gp);
0x00028574 lw t9, -0x7918(gp) | t9 = sym.imp.fopen64;
| /* esilref: 'wb' */
0x00028578 addiu a1, a1, 0x6d74 | a1 += 0x6d74;
0x0002857c jalr t9 | t9 ();
0x00028580 lw gp, 0x18(sp) | gp = *(var_18h_2);
0x00028584 sw v0, 4(s1) | *((s1 + 1)) = v0;
0x00028588 bnez v0, 0x28504 |
| } while (v0 != 0);
0x0002858c lw a0, -0x7fdc(gp) | a0 = *(gp);
0x00028590 lw t9, -0x7f5c(gp) | t9 = sym.g10_log_debug;
0x00028594 move a1, s2 | a1 = s2;
| /* str.md_debug:_cant_open__s_n */
0x00028598 addiu a0, a0, 0x781c | a0 += 0x781c;
0x0002859c bal 0x388a0 | sym_g10_log_debug ();
0x000285a0 lw gp, 0x18(sp) | gp = *(var_18h_2);
0x000285a4 b 0x28504 | goto label_0;
| label_2:
0x000285a8 lw t9, -0x7834(gp) | t9 = sym.imp.__stack_chk_fail;
0x000285ac jalr t9 | t9 ();
0x000285b0 nop |
| }
; assembly | /* r2dec pseudo code output */
| /* /logs/firmware/unblob_extracted/firmware_extract/4325012-58052244.squashfs_v4_le_extract/usr/bin/gpgv @ 0x17d78 */
| #include <stdint.h>
|
; (fcn) sym.progress_filter () | void progress_filter () {
0x00017d78 lui gp, 5 |
0x00017d7c addiu gp, gp, -0x5c48 |
0x00017d80 addu gp, gp, t9 | gp += t9;
0x00017d84 addiu sp, sp, -0x80 |
0x00017d88 addiu v0, zero, 1 | v0 = 1;
0x00017d8c sw s1, 0x6c(sp) | *(var_6ch) = s1;
0x00017d90 lw s1, -0x781c(gp) | s1 = *((gp - 7687));
0x00017d94 sw gp, 0x20(sp) | *(var_20h) = gp;
0x00017d98 sw s3, 0x74(sp) | *(var_74h) = s3;
0x00017d9c lw v1, (s1) | v1 = *(s1);
0x00017da0 sw s0, 0x68(sp) | *(var_68h) = s0;
0x00017da4 sw ra, 0x7c(sp) | *(var_7ch) = ra;
0x00017da8 sw s4, 0x78(sp) | *(var_78h) = s4;
0x00017dac sw s2, 0x70(sp) | *(var_70h) = s2;
0x00017db0 move s0, a0 | s0 = a0;
0x00017db4 lw s3, 0x90(sp) | s3 = *(var_10h);
0x00017db8 sw v1, 0x64(sp) | *(var_64h) = v1;
0x00017dbc addiu v0, zero, 3 | v0 = 3;
| if (a1 == v0) {
0x00017dc0 beq a1, v0, 0x17e10 | goto label_5;
| }
0x00017dc4 addiu v0, zero, 2 | v0 = 2;
| if (a1 == v0) {
0x00017dc8 beq a1, v0, 0x17ea0 | goto label_6;
| }
0x00017dcc lw t9, -0x7f24(gp) | t9 = sym.xfree;
| if (a1 == v0) {
0x00017dd0 beq a1, v0, 0x17f64 | goto label_7;
| }
0x00017dd4 addiu v0, zero, 5 | v0 = 5;
0x00017dd8 move s2, zero | s2 = 0;
| if (a1 == v0) {
0x00017ddc beq a1, v0, 0x17e84 | goto label_8;
| }
| do {
| label_0:
0x00017de0 lw a0, 0x64(sp) | a0 = *(var_64h);
0x00017de4 lw v1, (s1) | v1 = *(s1);
0x00017de8 move v0, s2 | v0 = s2;
| if (a0 != v1) {
0x00017dec bne a0, v1, 0x17fb0 | goto label_9;
| }
0x00017df0 lw ra, 0x7c(sp) | ra = *(var_7ch);
0x00017df4 lw s4, 0x78(sp) | s4 = *(var_78h);
0x00017df8 lw s3, 0x74(sp) | s3 = *(var_74h);
0x00017dfc lw s2, 0x70(sp) | s2 = *(var_70h);
0x00017e00 lw s1, 0x6c(sp) | s1 = *(var_6ch);
0x00017e04 lw s0, 0x68(sp) | s0 = *(var_68h);
0x00017e08 addiu sp, sp, 0x80 |
0x00017e0c jr ra | return v0;
| label_5:
0x00017e10 lw t9, -0x7ea0(gp) | t9 = sym.make_timestamp;
0x00017e14 sw zero, 8(a0) | *((a0 + 2)) = 0;
0x00017e18 sw zero, 0xc(a0) | *((a0 + 3)) = 0;
0x00017e1c jalr t9 | t9 ();
0x00017e20 lw v1, (s0) | v1 = *(s0);
0x00017e24 lw gp, 0x20(sp) | gp = *(var_20h);
0x00017e28 sw v0, 4(s0) | *((s0 + 1)) = v0;
| if (v1 == 0) {
0x00017e2c beqz v1, 0x17e94 | goto label_10;
| }
| label_1:
0x00017e30 lw t0, 0x10(s0) | t0 = *((s0 + 4));
0x00017e34 lw v0, 0xc(s0) | v0 = *((s0 + 3));
0x00017e38 lw a3, -0x7fdc(gp) | a3 = *(gp);
0x00017e3c lw t9, -0x794c(gp) | t9 = sym.imp.__sprintf_chk
0x00017e40 addiu s0, sp, 0x30 | s0 = sp + 0x30;
| /* str._.20s____lu__lu */
0x00017e44 addiu a3, a3, 0x4ea4 | a3 += 0x4ea4;
0x00017e48 addiu a2, zero, 0x32 | a2 = 0x32;
0x00017e4c addiu a1, zero, 1 | a1 = 1;
0x00017e50 move a0, s0 | a0 = s0;
0x00017e54 sw t0, 0x18(sp) | *(var_18h) = t0;
0x00017e58 sw v1, 0x10(sp) | *(var_10h_2) = v1;
0x00017e5c sw v0, 0x14(sp) | *(var_14h) = v0;
0x00017e60 jalr t9 | t9 ();
0x00017e64 lw gp, 0x20(sp) | gp = *(var_20h);
0x00017e68 move a1, s0 | a1 = s0;
0x00017e6c addiu a0, zero, 0x32 | a0 = 0x32;
0x00017e70 lw t9, -0x7d80(gp) | t9 = sym.write_status_text;
0x00017e74 move s2, zero | s2 = 0;
0x00017e78 bal 0x21b8c | sym_write_status_text ();
0x00017e7c lw gp, 0x20(sp) | gp = *(var_20h);
0x00017e80 b 0x17de0 |
| } while (1);
| label_8:
0x00017e84 lw v0, -0x7fdc(gp) | v0 = *(gp);
| /* str.progress_filter */
0x00017e88 addiu v0, v0, 0x4eb4 | v0 += 0x4eb4;
0x00017e8c sw v0, (a3) | *(a3) = v0;
0x00017e90 b 0x17de0 | goto label_0;
| label_10:
0x00017e94 lw v1, -0x7fdc(gp) | v1 = *(gp);
0x00017e98 addiu v1, v1, 0x239c | v1 += 0x239c;
0x00017e9c b 0x17e30 | goto label_1;
| label_6:
0x00017ea0 lw t9, -0x7ea0(gp) | t9 = sym.make_timestamp;
0x00017ea4 sw a3, 0x2c(sp) | *(var_2ch_3) = a3;
0x00017ea8 move s2, a2 | s2 = a2;
0x00017eac jalr t9 | t9 ();
0x00017eb0 lw gp, 0x20(sp) | gp = *(var_20h);
0x00017eb4 lw a3, 0x2c(sp) | a3 = *(var_2ch_3);
0x00017eb8 lw a2, (s3) | a2 = *(s3);
0x00017ebc lw t9, -0x7f64(gp) | t9 = sym.iobuf_read;
0x00017ec0 move a0, s2 | a0 = s2;
0x00017ec4 move a1, a3 | a1 = a3;
0x00017ec8 move s4, v0 | s4 = v0;
0x00017ecc jalr t9 | t9 ();
0x00017ed0 move s2, v0 | s2 = v0;
0x00017ed4 lw gp, 0x20(sp) | gp = *(var_20h);
| if (v0 < 0) {
0x00017ed8 bltz v0, 0x17f7c | goto label_11;
| }
0x00017edc lw v0, 0xc(s0) | v0 = *((s0 + 3));
0x00017ee0 addu v0, v0, s2 | v0 += s2;
0x00017ee4 sw v0, 0xc(s0) | *((s0 + 3)) = v0;
0x00017ee8 sw s2, (s3) | *(s3) = s2;
0x00017eec move s2, zero | s2 = 0;
| label_4:
0x00017ef0 lw v0, 4(s0) | v0 = *((s0 + 1));
| if (v0 == s4) {
| label_2:
0x00017ef4 beq v0, s4, 0x17de0 | goto label_0;
| }
0x00017ef8 nop |
0x00017efc lw v1, 0xc(s0) | v1 = *((s0 + 3));
0x00017f00 lw v0, (s0) | v0 = *(s0);
| if (v0 == 0) {
| do {
0x00017f04 beql v0, zero, 0x17fa0 | goto label_12;
| }
0x00017f08 lw v0, -0x7fdc(gp) | v0 = *(gp);
| label_3:
0x00017f0c lw t0, 0x10(s0) | t0 = *((s0 + 4));
0x00017f10 lw a3, -0x7fdc(gp) | a3 = *(gp);
0x00017f14 lw t9, -0x794c(gp) | t9 = sym.imp.__sprintf_chk
0x00017f18 addiu s3, sp, 0x30 | s3 = sp + 0x30;
| /* str._.20s____lu__lu */
0x00017f1c addiu a3, a3, 0x4ea4 | a3 += 0x4ea4;
0x00017f20 addiu a2, zero, 0x32 | a2 = 0x32;
0x00017f24 addiu a1, zero, 1 | a1 = 1;
0x00017f28 move a0, s3 | a0 = s3;
0x00017f2c sw t0, 0x18(sp) | *(var_18h) = t0;
0x00017f30 sw v1, 0x14(sp) | *(var_14h) = v1;
0x00017f34 sw v0, 0x10(sp) | *(var_10h_2) = v0;
0x00017f38 jalr t9 | t9 ();
0x00017f3c lw gp, 0x20(sp) | gp = *(var_20h);
0x00017f40 move a1, s3 | a1 = s3;
0x00017f44 lw t9, -0x7d80(gp) | t9 = sym.write_status_text;
0x00017f48 addiu a0, zero, 0x32 | a0 = 0x32;
0x00017f4c bal 0x21b8c | sym_write_status_text ();
0x00017f50 lw v0, 0xc(s0) | v0 = *((s0 + 3));
0x00017f54 lw gp, 0x20(sp) | gp = *(var_20h);
0x00017f58 sw s4, 4(s0) | *((s0 + 1)) = s4;
0x00017f5c sw v0, 8(s0) | *((s0 + 2)) = v0;
0x00017f60 b 0x17de0 | goto label_0;
| label_7:
0x00017f64 lw a0, (a0) | a0 = *(a0);
0x00017f68 move s2, zero | s2 = 0;
0x00017f6c jalr t9 | t9 ();
0x00017f70 lw gp, 0x20(sp) | gp = *(var_20h);
0x00017f74 sw zero, (s0) | *(s0) = 0;
0x00017f78 b 0x17de0 | goto label_0;
| label_11:
0x00017f7c addiu v0, zero, -1 | v0 = -1;
0x00017f80 sw zero, (s3) | *(s3) = 0;
| if (s2 != v0) {
0x00017f84 bne s2, v0, 0x17fa8 | goto label_13;
| }
0x00017f88 lw v1, 0xc(s0) | v1 = *((s0 + 3));
0x00017f8c lw v0, 8(s0) | v0 = *((s0 + 2));
0x00017f90 lw v0, (s0) | v0 = *(s0);
0x00017f94 bnel v1, v0, 0x17f04 |
| } while (v1 == v0);
0x00017f98 lw v0, 4(s0) | v0 = *((s0 + 1));
0x00017f9c b 0x17ef4 | goto label_2;
| label_12:
0x00017fa0 addiu v0, v0, 0x239c | v0 += 0x239c;
0x00017fa4 b 0x17f0c | goto label_3;
| label_13:
0x00017fa8 addiu s2, zero, -1 | s2 = -1;
0x00017fac b 0x17ef0 | goto label_4;
| label_9:
0x00017fb0 lw t9, -0x7834(gp) | t9 = sym.imp.__stack_chk_fail;
0x00017fb4 jalr t9 | t9 ();
0x00017fb8 nop |
| }
; assembly | /* r2dec pseudo code output */
| /* /logs/firmware/unblob_extracted/firmware_extract/4325012-58052244.squashfs_v4_le_extract/usr/bin/gpgv @ 0x25be0 */
| #include <stdint.h>
|
; (fcn) sym.show_keyserver_url () | void show_keyserver_url () {
0x00025be0 lui gp, 4 |
0x00025be4 addiu gp, gp, -0x3ab0 |
0x00025be8 addu gp, gp, t9 | gp += t9;
0x00025bec lw v0, -0x781c(gp) | v0 = *((gp - 7687));
0x00025bf0 addiu sp, sp, -0xa8 |
0x00025bf4 sw v0, 0x38(sp) | *(var_38h_2) = v0;
0x00025bf8 lw v0, (v0) | v0 = *(v0);
0x00025bfc sw gp, 0x20(sp) | *(var_20h) = gp;
0x00025c00 sw s5, 0x94(sp) | *(var_94h) = s5;
0x00025c04 sw s3, 0x8c(sp) | *(var_8ch) = s3;
0x00025c08 sw s0, 0x80(sp) | *(var_80h) = s0;
0x00025c0c sw ra, 0xa4(sp) | *(var_a4h) = ra;
0x00025c10 sw fp, 0xa0(sp) | *(var_a0h) = fp;
0x00025c14 sw s7, 0x9c(sp) | *(var_9ch) = s7;
0x00025c18 sw s6, 0x98(sp) | *(var_98h) = s6;
0x00025c1c sw s4, 0x90(sp) | *(var_90h) = s4;
0x00025c20 sw s2, 0x88(sp) | *(var_88h) = s2;
0x00025c24 sw s1, 0x84(sp) | *(var_84h) = s1;
0x00025c28 move s3, a2 | s3 = a2;
0x00025c2c move s5, a0 | s5 = a0;
0x00025c30 move s0, a1 | s0 = a1;
0x00025c34 sw v0, 0x7c(sp) | *(var_7ch) = v0;
0x00025c38 sw zero, 0x4c(sp) | *(var_4ch_2) = 0;
| if (a2 != 0) {
0x00025c3c bnez a2, 0x25e58 | goto label_3;
| }
0x00025c40 lw v0, -0x78e0(gp) | v0 = *((gp - 7736));
0x00025c44 lw v0, (v0) | v0 = *(v0);
0x00025c48 sw v0, 0x28(sp) | *(var_28h_2) = v0;
| label_2:
0x00025c4c lw v0, -0x7fdc(gp) | v0 = *(gp);
0x00025c50 lw s1, -0x78e0(gp) | s1 = *((gp - 7736));
| /* str.Critical_preferred_keyserver:_ */
0x00025c54 addiu v0, v0, 0x7444 | v0 += 0x7444;
0x00025c58 sw v0, 0x2c(sp) | *(var_2ch_2) = v0;
0x00025c5c lw v0, -0x7fdc(gp) | v0 = *(gp);
0x00025c60 addiu fp, sp, 0x4c | fp = sp + 0x4c;
| /* str.Preferred_keyserver:_ */
0x00025c64 addiu v0, v0, 0x7464 | v0 += 0x7464;
0x00025c68 sw v0, 0x30(sp) | *(var_30h_3) = v0;
0x00025c6c lw v0, -0x7fdc(gp) | v0 = *(gp);
0x00025c70 addiu s7, sp, 0x48 | s7 = sp + 0x48;
0x00025c74 sw v0, 0x34(sp) | *(var_34h_2) = v0;
0x00025c78 lw v0, -0x7fdc(gp) | v0 = *(gp);
0x00025c7c addiu s4, sp, 0x50 | s4 = sp + 0x50;
| /* str._d__u__u_ */
0x00025c80 addiu v0, v0, 0x747c | v0 += 0x747c;
0x00025c84 sw v0, 0x3c(sp) | *(var_3ch_2) = v0;
| do {
| label_0:
0x00025c88 lw t9, -0x7f34(gp) | t9 = sym.enum_sig_subpkt;
0x00025c8c lw a0, 0x2c(s5) | a0 = *((s5 + 11));
0x00025c90 move a3, fp | a3 = fp;
0x00025c94 sw s4, 0x10(sp) | *(var_10h_2) = s4;
0x00025c98 move a2, s7 | a2 = s7;
0x00025c9c addiu a1, zero, 0x18 | a1 = 0x18;
0x00025ca0 bal 0x1c758 | sym_enum_sig_subpkt ();
0x00025ca4 move s2, v0 | s2 = v0;
0x00025ca8 lw gp, 0x20(sp) | gp = *(var_20h);
| if (v0 == 0) {
0x00025cac beqz v0, 0x25e18 | goto label_4;
| }
0x00025cb0 addiu v0, zero, 2 | v0 = 2;
| if (s3 != v0) {
0x00025cb4 bne s3, v0, 0x25d40 | goto label_5;
| }
0x00025cb8 nop |
| label_1:
0x00025cbc lw v0, 0x50(sp) | v0 = *(var_50h_2);
0x00025cc0 lw v1, 0x48(sp) | v1 = *(var_48h_2);
0x00025cc4 addiu a2, zero, 3 | a2 = 3;
0x00025cc8 addiu a1, zero, 1 | a1 = 1;
| if (v0 == 0) {
0x00025ccc movn a1, a2, v0 | a1 = a2;
| }
0x00025cd0 sltiu a0, v1, 0x101 | a0 = (v1 < 0x101) ? 1 : 0;
0x00025cd4 move v0, a1 | v0 = a1;
0x00025cd8 beqz a0, 0x25c88 |
| } while (a0 == 0);
0x00025cdc lw t9, -0x794c(gp) | t9 = sym.imp.__sprintf_chk
0x00025ce0 addiu t2, sp, 0x54 | t2 = sp + 0x54;
0x00025ce4 lw a3, 0x3c(sp) | a3 = *(var_3ch_2);
0x00025ce8 sw v0, 0x14(sp) | *(var_14h) = v0;
0x00025cec addiu v0, zero, 0x18 | v0 = 0x18;
0x00025cf0 move a0, t2 | a0 = t2;
0x00025cf4 addiu a2, zero, 0x28 | a2 = 0x28;
0x00025cf8 addiu a1, zero, 1 | a1 = 1;
0x00025cfc sw t2, 0x44(sp) | *(var_44h_4) = t2;
0x00025d00 sw v1, 0x18(sp) | *(var_18h_3) = v1;
0x00025d04 sw v1, 0x40(sp) | *(var_40h_4) = v1;
0x00025d08 sw v0, 0x10(sp) | *(var_10h_2) = v0;
0x00025d0c jalr t9 | t9 ();
0x00025d10 lw gp, 0x20(sp) | gp = *(var_20h);
0x00025d14 lw v1, 0x40(sp) | v1 = *(var_40h_4);
0x00025d18 lw t2, 0x44(sp) | t2 = *(var_44h_4);
0x00025d1c lw t9, -0x7c9c(gp) | t9 = sym.write_status_text_and_buffer;
0x00025d20 sw zero, 0x10(sp) | *(var_10h_2) = 0;
0x00025d24 move a3, v1 | a3 = v1;
0x00025d28 move a2, s2 | a2 = s2;
0x00025d2c move a1, t2 | a1 = t2;
0x00025d30 addiu a0, zero, 0x4d | a0 = 0x4d;
0x00025d34 bal 0x22334 | sym_write_status_text_and_buffer ();
0x00025d38 lw gp, 0x20(sp) | gp = *(var_20h);
0x00025d3c b 0x25c88 | goto label_0;
| label_5:
0x00025d40 lw a1, 0x50(sp) | a1 = *(var_50h_2);
| if (s0 <= 0) {
0x00025d44 blez s0, 0x25d6c | goto label_6;
| }
0x00025d48 move s6, zero | s6 = 0;
| do {
0x00025d4c lw t9, -0x7840(gp) | t9 = sym.imp._IO_putc;
0x00025d50 lw a1, (s1) | a1 = *(s1);
0x00025d54 addiu a0, zero, 0x20 | a0 = 0x20;
0x00025d58 addiu s6, s6, 1 | s6++;
0x00025d5c jalr t9 | t9 ();
0x00025d60 lw gp, 0x20(sp) | gp = *(var_20h);
0x00025d64 bne s0, s6, 0x25d4c |
| } while (s0 != s6);
0x00025d68 lw a1, 0x50(sp) | a1 = *(var_50h_2);
| label_6:
0x00025d6c lw v0, 0x30(sp) | v0 = *(var_30h_3);
0x00025d70 lw v1, 0x2c(sp) | v1 = *(var_2ch_2);
| if (a1 == 0) {
0x00025d74 movn v0, v1, a1 | v0 = v1;
| }
0x00025d78 move a1, v0 | a1 = v0;
| if (s3 != 0) {
0x00025d7c beqz s3, 0x25dc8 |
0x00025d80 lw v0, 0x34(sp) | v0 = *(var_34h_2);
0x00025d84 lw t9, -0x7f30(gp) | t9 = sym.g10_log_info;
0x00025d88 addiu a0, v0, 0x586c | a0 = v0 + aav.0x0000586c;
0x00025d8c bal 0x384ac | sym_g10_log_info ();
0x00025d90 lw gp, 0x20(sp) | gp = *(var_20h);
0x00025d94 lw s6, 0x28(sp) | s6 = *(var_28h_2);
0x00025d98 lw a2, 0x48(sp) | a2 = *(var_48h_2);
0x00025d9c lw t9, -0x7d04(gp) | t9 = sym.print_utf8_string;
0x00025da0 move a1, s2 | a1 = s2;
0x00025da4 move a0, s6 | a0 = s6;
0x00025da8 bal 0x39308 | sym_print_utf8_string ();
0x00025dac lw gp, 0x20(sp) | gp = *(var_20h);
0x00025db0 move a1, s6 | a1 = s6;
0x00025db4 lw t9, -0x7904(gp) | t9 = sym.imp.fputc;
0x00025db8 addiu a0, zero, 0xa | a0 = 0xa;
0x00025dbc jalr t9 | t9 ();
0x00025dc0 lw gp, 0x20(sp) | gp = *(var_20h);
0x00025dc4 b 0x25cbc | goto label_1;
| }
0x00025dc8 move a2, v0 | a2 = v0;
0x00025dcc lw v0, 0x34(sp) | v0 = *(var_34h_2);
0x00025dd0 lw t9, -0x78e4(gp) | t9 = sym.imp.__printf_chk;
0x00025dd4 addiu a1, v0, 0x586c | a1 = v0 + aav.0x0000586c;
0x00025dd8 addiu a0, zero, 1 | a0 = 1;
0x00025ddc jalr t9 | t9 ();
0x00025de0 lw gp, 0x20(sp) | gp = *(var_20h);
0x00025de4 move a1, s2 | a1 = s2;
0x00025de8 lw s2, 0x28(sp) | s2 = *(var_28h_2);
0x00025dec lw a2, 0x48(sp) | a2 = *(var_48h_2);
0x00025df0 lw t9, -0x7d04(gp) | t9 = sym.print_utf8_string;
0x00025df4 move a0, s2 | a0 = s2;
0x00025df8 bal 0x39308 | sym_print_utf8_string ();
0x00025dfc lw gp, 0x20(sp) | gp = *(var_20h);
0x00025e00 move a1, s2 | a1 = s2;
0x00025e04 lw t9, -0x7904(gp) | t9 = sym.imp.fputc;
0x00025e08 addiu a0, zero, 0xa | a0 = 0xa;
0x00025e0c jalr t9 | t9 ();
0x00025e10 lw gp, 0x20(sp) | gp = *(var_20h);
0x00025e14 b 0x25c88 | goto label_0;
| label_4:
0x00025e18 lw v0, 0x38(sp) | v0 = *(var_38h_2);
0x00025e1c lw v1, 0x7c(sp) | v1 = *(var_7ch);
0x00025e20 lw v0, (v0) | v0 = *(v0);
0x00025e24 lw ra, 0xa4(sp) | ra = *(var_a4h);
| if (v1 == v0) {
0x00025e28 bne v1, v0, 0x25e70 |
0x00025e2c lw fp, 0xa0(sp) | fp = *(var_a0h);
0x00025e30 lw s7, 0x9c(sp) | s7 = *(var_9ch);
0x00025e34 lw s6, 0x98(sp) | s6 = *(var_98h);
0x00025e38 lw s5, 0x94(sp) | s5 = *(var_94h);
0x00025e3c lw s4, 0x90(sp) | s4 = *(var_90h);
0x00025e40 lw s3, 0x8c(sp) | s3 = *(var_8ch);
0x00025e44 lw s2, 0x88(sp) | s2 = *(var_88h);
0x00025e48 lw s1, 0x84(sp) | s1 = *(var_84h);
0x00025e4c lw s0, 0x80(sp) | s0 = *(var_80h);
0x00025e50 addiu sp, sp, 0xa8 |
0x00025e54 jr ra | return v0;
| label_3:
0x00025e58 lw t9, -0x7d40(gp) | t9 = sym.log_stream;
0x00025e5c bal 0x382e4 | sym_log_stream ();
0x00025e60 nop |
0x00025e64 sw v0, 0x28(sp) | *(var_28h_2) = v0;
0x00025e68 lw gp, 0x20(sp) | gp = *(var_20h);
0x00025e6c b 0x25c4c | goto label_2;
| }
0x00025e70 lw t9, -0x7834(gp) | t9 = sym.imp.__stack_chk_fail;
0x00025e74 jalr t9 | t9 ();
0x00025e78 nop |
| }
; assembly | /* r2dec pseudo code output */
| /* /logs/firmware/unblob_extracted/firmware_extract/4325012-58052244.squashfs_v4_le_extract/usr/bin/gpgv @ 0x24644 */
| #include <stdint.h>
|
; (fcn) sym.signature_check2 () | void signature_check2 () {
0x00024644 lui gp, 4 |
0x00024648 addiu gp, gp, -0x2514 |
0x0002464c addu gp, gp, t9 | gp += t9;
0x00024650 addiu sp, sp, -0x58 |
0x00024654 lw t9, -0x7f2c(gp) | t9 = sym.xmalloc_clear;
0x00024658 sw s2, 0x38(sp) | *(var_38h_5) = s2;
0x0002465c lw s2, -0x781c(gp) | s2 = *((gp - 7687));
0x00024660 sw gp, 0x20(sp) | *(var_20h_3) = gp;
0x00024664 sw ra, 0x54(sp) | *(var_54h_3) = ra;
0x00024668 lw v0, (s2) | v0 = *(s2);
0x0002466c sw fp, 0x50(sp) | *(var_50h_3) = fp;
0x00024670 sw s7, 0x4c(sp) | *(var_4ch_4) = s7;
0x00024674 sw s6, 0x48(sp) | *(var_48h_4) = s6;
0x00024678 sw s5, 0x44(sp) | *(var_44h_5) = s5;
0x0002467c sw s4, 0x40(sp) | *(var_40h_5) = s4;
0x00024680 sw s3, 0x3c(sp) | *(var_3ch_5) = s3;
0x00024684 sw s1, 0x34(sp) | *(var_34h_5) = s1;
0x00024688 sw s0, 0x30(sp) | *(var_30h_4) = s0;
0x0002468c move s1, a0 | s1 = a0;
0x00024690 sw v0, 0x2c(sp) | *(var_2ch_4) = v0;
0x00024694 addiu a0, zero, 0x80 | a0 = 0x80;
0x00024698 move s3, a1 | s3 = a1;
0x0002469c move s5, a2 | s5 = a2;
0x000246a0 move s6, a3 | s6 = a3;
0x000246a4 lw s7, 0x68(sp) | s7 = *(var_10h_3);
0x000246a8 lw fp, 0x6c(sp) | fp = *(var_6ch);
0x000246ac bal 0x3cbdc | sym_xmalloc_clear ();
0x000246b0 lw gp, 0x20(sp) | gp = *(var_20h_3);
0x000246b4 lbu a0, 0x17(s1) | a0 = *((s1 + 23));
0x000246b8 lw t9, -0x7d6c(gp) | t9 = sym.check_digest_algo;
0x000246bc move s4, v0 | s4 = v0;
0x000246c0 bal 0x27e48 | sym_check_digest_algo ();
0x000246c4 move s0, v0 | s0 = v0;
0x000246c8 lw gp, 0x20(sp) | gp = *(var_20h_3);
0x000246cc beqz v0, 0x24720 |
| while (v0 != 0) {
| label_1:
0x000246d0 lw t9, -0x7e74(gp) | t9 = sym.free_public_key;
0x000246d4 move a0, s4 | a0 = s4;
0x000246d8 bal 0x91c0 | sym_free_public_key ();
0x000246dc lw gp, 0x20(sp) | gp = *(var_20h_3);
| label_0:
0x000246e0 lw a0, 0x2c(sp) | a0 = *(var_2ch_4);
0x000246e4 lw v1, (s2) | v1 = *(s2);
0x000246e8 move v0, s0 | v0 = s0;
| if (a0 != v1) {
0x000246ec bne a0, v1, 0x24c5c | goto label_11;
| }
0x000246f0 lw ra, 0x54(sp) | ra = *(var_54h_3);
0x000246f4 lw fp, 0x50(sp) | fp = *(var_50h_3);
0x000246f8 lw s7, 0x4c(sp) | s7 = *(var_4ch_4);
0x000246fc lw s6, 0x48(sp) | s6 = *(var_48h_4);
0x00024700 lw s5, 0x44(sp) | s5 = *(var_44h_5);
0x00024704 lw s4, 0x40(sp) | s4 = *(var_40h_5);
0x00024708 lw s3, 0x3c(sp) | s3 = *(var_3ch_5);
0x0002470c lw s2, 0x38(sp) | s2 = *(var_38h_5);
0x00024710 lw s1, 0x34(sp) | s1 = *(var_34h_5);
0x00024714 lw s0, 0x30(sp) | s0 = *(var_30h_4);
0x00024718 addiu sp, sp, 0x58 |
0x0002471c jr ra | return v0;
0x00024720 lw t9, -0x7e8c(gp) | t9 = sym.check_pubkey_algo;
0x00024724 lbu a0, 0x16(s1) | a0 = *((s1 + 22));
0x00024728 bal 0x27418 | sym_check_pubkey_algo ();
0x0002472c move s0, v0 | s0 = v0;
0x00024730 lw gp, 0x20(sp) | gp = *(var_20h_3);
0x00024734 bnez v0, 0x246d0 |
| }
0x00024738 lw t9, -0x7b48(gp) | t9 = sym.md_algo_present;
0x0002473c lbu a1, 0x17(s1) | a1 = *((s1 + 23));
0x00024740 move a0, s3 | a0 = s3;
0x00024744 bal 0x282e8 | sym_md_algo_present ();
0x00024748 lw gp, 0x20(sp) | gp = *(var_20h_3);
| if (v0 == 0) {
0x0002474c bnez v0, 0x2477c |
0x00024750 lw a0, -0x7fdc(gp) | a0 = *(gp);
0x00024754 lw t9, -0x7f30(gp) | t9 = sym.g10_log_info;
| /* str.WARNING:_signature_digest_conflict_in_message_n */
0x00024758 addiu a0, a0, 0x70a8 | a0 += 0x70a8;
0x0002475c bal 0x384ac | sym_g10_log_info ();
0x00024760 lw gp, 0x20(sp) | gp = *(var_20h_3);
| label_10:
0x00024764 lw t9, -0x7e74(gp) | t9 = sym.free_public_key;
| label_8:
0x00024768 move a0, s4 | a0 = s4;
0x0002476c bal 0x91c0 | sym_free_public_key ();
0x00024770 addiu s0, zero, 1 | s0 = 1;
0x00024774 lw gp, 0x20(sp) | gp = *(var_20h_3);
0x00024778 b 0x246e0 | goto label_0;
| }
0x0002477c lw t9, -0x7e34(gp) | t9 = sym.get_pubkey;
0x00024780 addiu a1, s1, 4 | a1 = s1 + 4;
0x00024784 move a0, s4 | a0 = s4;
0x00024788 bal 0xc768 | sym_get_pubkey ();
0x0002478c lw gp, 0x20(sp) | gp = *(var_20h_3);
| if (v0 != 0) {
0x00024790 bnez v0, 0x24a84 | goto label_12;
| }
0x00024794 lw v0, 0x30(s4) | v0 = *((s4 + 12));
| if (v0 == 0) {
0x00024798 bnez v0, 0x247ac |
0x0002479c nop |
0x000247a0 lbu v0, 0x4c(s4) | v0 = *((s4 + 76));
0x000247a4 lw t9, -0x7e74(gp) | t9 = sym.free_public_key;
| if (v0 == 0) {
0x000247a8 beqz v0, 0x24bbc | goto label_13;
| }
| }
0x000247ac lw t9, -0x7bd4(gp) | t9 = *(gp);
| if (s5 != 0) {
0x000247b0 beqz s5, 0x247bc |
0x000247b4 lw v0, 4(s4) | v0 = *((s4 + 1));
0x000247b8 sw v0, (s5) | *(s5) = v0;
| }
0x000247bc sw fp, 0x14(sp) | *(var_14h_3) = fp;
0x000247c0 sw s7, 0x10(sp) | *(var_10h_6) = s7;
0x000247c4 move a3, s6 | a3 = s6;
0x000247c8 move a2, s3 | a2 = s3;
0x000247cc move a1, s1 | a1 = s1;
| /* fcn.0002413c */
0x000247d0 addiu t9, t9, 0x413c | t9 += 0x413c;
0x000247d4 move a0, s4 | a0 = s4;
0x000247d8 bal 0x2413c | fcn_0002413c ();
0x000247dc move s0, v0 | s0 = v0;
0x000247e0 lw gp, 0x20(sp) | gp = *(var_20h_3);
| if (v0 != 0) {
0x000247e4 bnez v0, 0x246d0 | goto label_1;
| }
0x000247e8 lbu v0, 0x4c(s4) | v0 = *((s4 + 76));
0x000247ec lw t9, -0x7e74(gp) | t9 = sym.free_public_key;
| if (v0 == 0) {
0x000247f0 bnez v0, 0x24804 |
0x000247f4 lbu v0, 0x38(s4) | v0 = *((s4 + 56));
0x000247f8 sltiu v1, v0, 2 | v1 = (v0 < 2) ? 1 : 0;
0x000247fc lw t9, -0x7e6c(gp) | t9 = sym.keystr_from_pk;
| if (v1 == 0) {
0x00024800 bnel v1, zero, 0x24bd0 | goto label_14;
| }
| }
| label_9:
0x00024804 move a0, s4 | a0 = s4;
0x00024808 bal 0x91c0 | sym_free_public_key ();
0x0002480c lbu v0, 0x15(s1) | v0 = *((s1 + 21));
0x00024810 sltiu v0, v0, 2 | v0 = (v0 < 2) ? 1 : 0;
0x00024814 lw gp, 0x20(sp) | gp = *(var_20h_3);
| if (v0 == 0) {
0x00024818 beqz v0, 0x246e0 | goto label_0;
| }
0x0002481c lw t9, -0x7d88(gp) | t9 = sym.is_status_enabled;
0x00024820 bal 0x21b70 | sym_is_status_enabled ();
0x00024824 nop |
0x00024828 lw gp, 0x20(sp) | gp = *(var_20h_3);
| if (v0 == 0) {
0x0002482c beqz v0, 0x246e0 | goto label_0;
| }
0x00024830 lw t9, -0x7f4c(gp) | t9 = sym.pubkey_get_nsig;
0x00024834 lbu a0, 0x16(s1) | a0 = *((s1 + 22));
0x00024838 lw s5, 0xc(s1) | s5 = *((s1 + 3));
0x0002483c bal 0x27620 | sym_pubkey_get_nsig ();
0x00024840 lw gp, 0x20(sp) | gp = *(var_20h_3);
0x00024844 move a1, zero | a1 = 0;
0x00024848 addiu a0, zero, 3 | a0 = 3;
0x0002484c lw t9, -0x7d2c(gp) | t9 = sym.md_open;
0x00024850 move s4, v0 | s4 = v0;
0x00024854 bal 0x27ed8 | sym_md_open ();
0x00024858 lw a1, 0x10(s3) | a1 = *((s3 + 4));
0x0002485c lw v1, 0x14(s3) | v1 = *((s3 + 5));
0x00024860 lw gp, 0x20(sp) | gp = *(var_20h_3);
0x00024864 move s6, v0 | s6 = v0;
| if (a1 == v1) {
0x00024868 beq a1, v1, 0x24b0c | goto label_15;
| }
| label_3:
0x0002486c addiu a0, a1, 1 | a0 = a1 + 1;
0x00024870 sw a0, 0x10(s3) | *((s3 + 4)) = a0;
0x00024874 addu a1, s3, a1 | a1 = s3 + a1;
0x00024878 lbu v0, 0x16(s1) | v0 = *((s1 + 22));
0x0002487c sb v0, 0x18(a1) | *((a1 + 24)) = v0;
| if (a0 == v1) {
0x00024880 beq a0, v1, 0x24ae8 | goto label_16;
| }
| label_2:
0x00024884 addiu v0, a0, 1 | v0 = a0 + 1;
0x00024888 sw v0, 0x10(s3) | *((s3 + 4)) = v0;
0x0002488c addu a0, s3, a0 | a0 = s3 + a0;
0x00024890 lbu a1, 0x17(s1) | a1 = *((s1 + 23));
0x00024894 sb a1, 0x18(a0) | *((a0 + 24)) = a1;
| if (v0 == v1) {
0x00024898 beq v0, v1, 0x24b98 | goto label_17;
| }
| label_7:
0x0002489c addu a1, s3, v0 | a1 = s3 + v0;
0x000248a0 srl a0, s5, 0x18 | a0 = s5 >> 0x18;
0x000248a4 addiu v0, v0, 1 | v0++;
0x000248a8 sw v0, 0x10(s3) | *((s3 + 4)) = v0;
0x000248ac sb a0, 0x18(a1) | *((a1 + 24)) = a0;
| if (v0 == v1) {
0x000248b0 beq v0, v1, 0x24b74 | goto label_18;
| }
| label_6:
0x000248b4 addu a1, s3, v0 | a1 = s3 + v0;
0x000248b8 srl a0, s5, 0x10 | a0 = s5 >> 0x10;
0x000248bc addiu v0, v0, 1 | v0++;
0x000248c0 sw v0, 0x10(s3) | *((s3 + 4)) = v0;
0x000248c4 sb a0, 0x18(a1) | *((a1 + 24)) = a0;
| if (v0 == v1) {
0x000248c8 beq v0, v1, 0x24b50 | goto label_19;
| }
| label_5:
0x000248cc addu a1, s3, v0 | a1 = s3 + v0;
0x000248d0 srl a0, s5, 8 | a0 = s5 >> 8;
0x000248d4 addiu v0, v0, 1 | v0++;
0x000248d8 sw v0, 0x10(s3) | *((s3 + 4)) = v0;
0x000248dc sb a0, 0x18(a1) | *((a1 + 24)) = a0;
| if (v0 == v1) {
0x000248e0 beq v0, v1, 0x24b30 | goto label_20;
| }
| label_4:
0x000248e4 addu v1, s3, v0 | v1 = s3 + v0;
0x000248e8 addiu v0, v0, 1 | v0++;
0x000248ec sw v0, 0x10(s3) | *((s3 + 4)) = v0;
0x000248f0 sb s5, 0x18(v1) | *((v1 + 24)) = s5;
| if (s4 <= 0) {
0x000248f4 blez s4, 0x2499c | goto label_21;
| }
0x000248f8 addiu s3, s1, 0x38 | s3 = s1 + 0x38;
0x000248fc move s5, zero | s5 = 0;
0x00024900 addiu fp, sp, 0x28 | fp = sp + 0x28;
0x00024904 lw t9, -0x7db0(gp) | t9 = sym.mpi_get_nbits;
0x00024908 lw a0, (s3) | a0 = *(s3);
0x0002490c bal 0x317a8 | sym_mpi_get_nbits ();
0x00024910 lw v1, 0x10(s6) | v1 = *((s6 + 4));
0x00024914 lw a1, 0x14(s6) | a1 = *((s6 + 5));
0x00024918 lw gp, 0x20(sp) | gp = *(var_20h_3);
0x0002491c sw v0, 0x28(sp) | *(var_28h_2) = v0;
| if (v1 == a1) {
0x00024920 beq v1, a1, 0x24ac0 | void (*0x24ac0)() ();
| }
| label_21:
0x0002499c lw t9, -0x7bd8(gp) | t9 = sym.md_final;
0x000249a0 move a0, s6 | a0 = s6;
0x000249a4 bal 0x28148 | sym_md_final ();
0x000249a8 lw gp, 0x20(sp) | gp = *(var_20h_3);
0x000249ac move a1, zero | a1 = 0;
0x000249b0 lw t9, -0x7da0(gp) | t9 = sym.md_read;
0x000249b4 move a0, s6 | a0 = s6;
0x000249b8 bal 0x281e0 | sym_md_read ();
0x000249bc lw gp, 0x20(sp) | gp = *(var_20h_3);
0x000249c0 addiu a1, zero, 0x14 | a1 = 0x14;
0x000249c4 lw t9, -0x7b44(gp) | t9 = sym.make_radix64_string;
0x000249c8 move a0, v0 | a0 = v0;
0x000249cc bal 0x178b4 | sym_make_radix64_string ();
0x000249d0 lw gp, 0x20(sp) | gp = *(var_20h_3);
0x000249d4 move a0, v0 | a0 = v0;
0x000249d8 lw t9, -0x78a0(gp) | t9 = sym.imp.strlen;
0x000249dc move s3, v0 | s3 = v0;
0x000249e0 jalr t9 | t9 ();
0x000249e4 lw gp, 0x20(sp) | gp = *(var_20h_3);
0x000249e8 lw t9, -0x7f28(gp) | t9 = sym.xmalloc;
0x000249ec addiu a0, v0, 0x3c | a0 = v0 + 0x3c;
0x000249f0 bal 0x3cb1c | sym_xmalloc ();
0x000249f4 lw gp, 0x20(sp) | gp = *(var_20h_3);
0x000249f8 lw a0, 0xc(s1) | a0 = *((s1 + 3));
0x000249fc lw t9, -0x7d48(gp) | t9 = sym.strtimestamp;
0x00024a00 move s4, v0 | s4 = v0;
0x00024a04 bal 0x38df8 | sym_strtimestamp ();
0x00024a08 lw gp, 0x20(sp) | gp = *(var_20h_3);
0x00024a0c lw v1, 0xc(s1) | v1 = *((s1 + 3));
0x00024a10 addiu a2, zero, -1 | a2 = -1;
0x00024a14 lw a3, -0x7fdc(gp) | a3 = *(gp);
0x00024a18 lw t9, -0x794c(gp) | t9 = sym.imp.__sprintf_chk
| /* str._s__s__lu */
0x00024a1c addiu a3, a3, 0x71a4 | a3 += 0x71a4;
0x00024a20 sw v1, 0x18(sp) | *(var_18h_5) = v1;
0x00024a24 addiu a1, zero, 1 | a1 = 1;
0x00024a28 move a0, s4 | a0 = s4;
0x00024a2c sw v0, 0x14(sp) | *(var_14h_3) = v0;
0x00024a30 sw s3, 0x10(sp) | *(var_10h_6) = s3;
0x00024a34 jalr t9 | t9 ();
0x00024a38 lw gp, 0x20(sp) | gp = *(var_20h_3);
0x00024a3c move a1, s4 | a1 = s4;
0x00024a40 lw t9, -0x7d80(gp) | t9 = sym.write_status_text;
0x00024a44 addiu a0, zero, 0x16 | a0 = 0x16;
0x00024a48 bal 0x21b8c | sym_write_status_text ();
0x00024a4c lw gp, 0x20(sp) | gp = *(var_20h_3);
0x00024a50 lw t9, -0x7f24(gp) | t9 = sym.xfree;
0x00024a54 move a0, s4 | a0 = s4;
0x00024a58 bal 0x3cd20 | sym_xfree ();
0x00024a5c lw gp, 0x20(sp) | gp = *(var_20h_3);
0x00024a60 lw t9, -0x7f24(gp) | t9 = sym.xfree;
0x00024a64 move a0, s3 | a0 = s3;
0x00024a68 bal 0x3cd20 | sym_xfree ();
0x00024a6c lw gp, 0x20(sp) | gp = *(var_20h_3);
0x00024a70 lw t9, -0x7d08(gp) | t9 = sym.md_close;
0x00024a74 move a0, s6 | a0 = s6;
0x00024a78 bal 0x287a4 | sym_md_close ();
0x00024a7c lw gp, 0x20(sp) | gp = *(var_20h_3);
0x00024a80 b 0x246e0 | goto label_0;
| label_12:
0x00024a84 lw t9, -0x7e74(gp) | t9 = sym.free_public_key;
0x00024a88 move a0, s4 | a0 = s4;
0x00024a8c bal 0x91c0 | sym_free_public_key ();
0x00024a90 addiu s0, zero, 9 | s0 = 9;
0x00024a94 lw gp, 0x20(sp) | gp = *(var_20h_3);
0x00024a98 b 0x246e0 | goto label_0;
| label_16:
0x00024ae8 lw t9, -0x7be4(gp) | t9 = sym.md_write;
0x00024aec move a0, s3 | a0 = s3;
0x00024af0 move a2, zero | a2 = 0;
0x00024af4 move a1, zero | a1 = 0;
0x00024af8 bal 0x28014 | sym_md_write ();
0x00024afc lw gp, 0x20(sp) | gp = *(var_20h_3);
0x00024b00 lw a0, 0x10(s3) | a0 = *((s3 + 4));
0x00024b04 lw v1, 0x14(s3) | v1 = *((s3 + 5));
0x00024b08 b 0x24884 | goto label_2;
| label_15:
0x00024b0c lw t9, -0x7be4(gp) | t9 = sym.md_write;
0x00024b10 move a1, zero | a1 = 0;
0x00024b14 move a2, zero | a2 = 0;
0x00024b18 move a0, s3 | a0 = s3;
0x00024b1c bal 0x28014 | sym_md_write ();
0x00024b20 lw gp, 0x20(sp) | gp = *(var_20h_3);
0x00024b24 lw a1, 0x10(s3) | a1 = *((s3 + 4));
0x00024b28 lw v1, 0x14(s3) | v1 = *((s3 + 5));
0x00024b2c b 0x2486c | goto label_3;
| label_20:
0x00024b30 lw t9, -0x7be4(gp) | t9 = sym.md_write;
0x00024b34 move a2, zero | a2 = 0;
0x00024b38 move a1, zero | a1 = 0;
0x00024b3c move a0, s3 | a0 = s3;
0x00024b40 bal 0x28014 | sym_md_write ();
0x00024b44 lw gp, 0x20(sp) | gp = *(var_20h_3);
0x00024b48 lw v0, 0x10(s3) | v0 = *((s3 + 4));
0x00024b4c b 0x248e4 | goto label_4;
| label_19:
0x00024b50 lw t9, -0x7be4(gp) | t9 = sym.md_write;
0x00024b54 move a2, zero | a2 = 0;
0x00024b58 move a1, zero | a1 = 0;
0x00024b5c move a0, s3 | a0 = s3;
0x00024b60 bal 0x28014 | sym_md_write ();
0x00024b64 lw gp, 0x20(sp) | gp = *(var_20h_3);
0x00024b68 lw v0, 0x10(s3) | v0 = *((s3 + 4));
0x00024b6c lw v1, 0x14(s3) | v1 = *((s3 + 5));
0x00024b70 b 0x248cc | goto label_5;
| label_18:
0x00024b74 lw t9, -0x7be4(gp) | t9 = sym.md_write;
0x00024b78 move a2, zero | a2 = 0;
0x00024b7c move a1, zero | a1 = 0;
0x00024b80 move a0, s3 | a0 = s3;
0x00024b84 bal 0x28014 | sym_md_write ();
0x00024b88 lw gp, 0x20(sp) | gp = *(var_20h_3);
0x00024b8c lw v0, 0x10(s3) | v0 = *((s3 + 4));
0x00024b90 lw v1, 0x14(s3) | v1 = *((s3 + 5));
0x00024b94 b 0x248b4 | goto label_6;
| label_17:
0x00024b98 lw t9, -0x7be4(gp) | t9 = sym.md_write;
0x00024b9c move a2, zero | a2 = 0;
0x00024ba0 move a1, zero | a1 = 0;
0x00024ba4 move a0, s3 | a0 = s3;
0x00024ba8 bal 0x28014 | sym_md_write ();
0x00024bac lw gp, 0x20(sp) | gp = *(var_20h_3);
0x00024bb0 lw v0, 0x10(s3) | v0 = *((s3 + 4));
0x00024bb4 lw v1, 0x14(s3) | v1 = *((s3 + 5));
0x00024bb8 b 0x2489c | goto label_7;
| label_13:
0x00024bbc move a0, s4 | a0 = s4;
0x00024bc0 bal 0x91c0 | sym_free_public_key ();
0x00024bc4 addiu s0, zero, 6 | s0 = 6;
0x00024bc8 lw gp, 0x20(sp) | gp = *(var_20h_3);
0x00024bcc b 0x246e0 | goto label_0;
| label_14:
0x00024bd0 move a0, s4 | a0 = s4;
| if (v0 != 0) {
0x00024bd4 bnez v0, 0x24c34 | goto label_22;
| }
0x00024bd8 bal 0x19dd4 | sym_keystr_from_pk ();
0x00024bdc nop |
0x00024be0 lw gp, 0x20(sp) | gp = *(var_20h_3);
0x00024be4 move a1, v0 | a1 = v0;
0x00024be8 lw a0, -0x7fdc(gp) | a0 = *(gp);
0x00024bec lw t9, -0x7f30(gp) | t9 = sym.g10_log_info;
| /* str.WARNING:_signing_subkey__s_is_not_cross_certified_n */
0x00024bf0 addiu a0, a0, 0x70d8 | a0 += 0x70d8;
0x00024bf4 bal 0x384ac | sym_g10_log_info ();
0x00024bf8 lw gp, 0x20(sp) | gp = *(var_20h_3);
0x00024bfc lw a1, -0x7fdc(gp) | a1 = *(gp);
0x00024c00 lw a0, -0x7fdc(gp) | a0 = *(gp);
0x00024c04 lw t9, -0x7f30(gp) | t9 = sym.g10_log_info;
| /* str.http:__www.gnupg.org_faq_subkey_cross_certify.html */
0x00024c08 addiu a1, a1, 0x710c | a1 += 0x710c;
| /* str.please_see__s_for_more_information_n */
0x00024c0c addiu a0, a0, 0x7140 | a0 += 0x7140;
0x00024c10 bal 0x384ac | sym_g10_log_info ();
0x00024c14 lw gp, 0x20(sp) | gp = *(var_20h_3);
0x00024c18 lw v0, -0x7fc8(gp) | v0 = *(gp);
0x00024c1c lbu v0, 0x228(v0) | v0 = *(v0);
0x00024c20 andi v0, v0, 1 | v0 &= 1;
0x00024c24 lw t9, -0x7e74(gp) | t9 = sym.free_public_key;
| if (v0 != 0) {
0x00024c28 bnez v0, 0x24768 | goto label_8;
| }
0x00024c2c b 0x24804 | goto label_9;
0x00024c30 nop |
| label_22:
0x00024c34 bal 0x19dd4 | sym_keystr_from_pk ();
0x00024c38 nop |
0x00024c3c lw gp, 0x20(sp) | gp = *(var_20h_3);
0x00024c40 move a1, v0 | a1 = v0;
0x00024c44 lw a0, -0x7fdc(gp) | a0 = *(gp);
0x00024c48 lw t9, -0x7f30(gp) | t9 = sym.g10_log_info;
| /* str.WARNING:_signing_subkey__s_has_an_invalid_cross_certification_n */
0x00024c4c addiu a0, a0, 0x7164 | a0 += 0x7164;
0x00024c50 bal 0x384ac | sym_g10_log_info ();
0x00024c54 lw gp, 0x20(sp) | gp = *(var_20h_3);
0x00024c58 b 0x24764 | goto label_10;
| label_11:
0x00024c5c lw t9, -0x7834(gp) | t9 = sym.imp.__stack_chk_fail;
0x00024c60 jalr t9 | t9 ();
0x00024c64 nop |
| }
; assembly | /* r2dec pseudo code output */
| /* /logs/firmware/unblob_extracted/firmware_extract/4325012-58052244.squashfs_v4_le_extract/usr/bin/gpgv @ 0x38df8 */
| #include <stdint.h>
|
; (fcn) sym.strtimestamp () | void strtimestamp () {
0x00038df8 lui gp, 3 |
0x00038dfc addiu gp, gp, -0x6cc8 |
0x00038e00 addu gp, gp, t9 | gp += t9;
0x00038e04 addiu sp, sp, -0x40 |
0x00038e08 sw s0, 0x34(sp) | *(var_34h) = s0;
0x00038e0c lw s0, -0x781c(gp) | s0 = *((gp - 7687));
0x00038e10 sw gp, 0x20(sp) | *(var_20h_2) = gp;
0x00038e14 sw ra, 0x3c(sp) | *(var_24h) = ra;
0x00038e18 lw v0, (s0) | v0 = *(s0);
0x00038e1c sw s1, 0x38(sp) | *(var_20h) = s1;
0x00038e20 sw a0, 0x28(sp) | *(var_10h) = a0;
0x00038e24 sw v0, 0x2c(sp) | *(var_2ch) = v0;
0x00038e28 lw t9, -0x78b4(gp) | t9 = sym.imp.gmtime;
| if (a0 < 0) {
0x00038e2c bltz a0, 0x38ea4 | goto label_0;
| }
0x00038e30 addiu a0, sp, 0x28 | a0 = sp + 0x28;
0x00038e34 jalr t9 | t9 ();
0x00038e38 lw v1, 0xc(v0) | v1 = *((v0 + 3));
0x00038e3c lw gp, 0x20(sp) | gp = *(var_20h_2);
0x00038e40 sw v1, 0x18(sp) | *(var_18h_3) = v1;
0x00038e44 lw v1, 0x10(v0) | v1 = *((v0 + 4));
0x00038e48 lw s1, -0x7fb4(gp) | s1 = *((gp - 8173));
0x00038e4c addiu v1, v1, 1 | v1++;
0x00038e50 sw v1, 0x14(sp) | *(var_14h) = v1;
0x00038e54 lw v0, 0x14(v0) | v0 = *((v0 + 5));
0x00038e58 lw a3, -0x7fdc(gp) | a3 = *(gp);
0x00038e5c addiu v0, v0, 0x76c | v0 += 0x76c;
0x00038e60 lw t9, -0x794c(gp) | t9 = sym.imp.__sprintf_chk
| /* str._04d__02d__02d */
0x00038e64 addiu a3, a3, 0x5184 | a3 += 0x5184;
0x00038e68 sw v0, 0x10(sp) | *(var_10h_3) = v0;
0x00038e6c addiu a2, zero, 0x10 | a2 = 0x10;
0x00038e70 addiu a1, zero, 1 | a1 = 1;
0x00038e74 addiu a0, s1, -0x4984 | a0 = s1 + -0x4984;
0x00038e78 jalr t9 | t9 ();
0x00038e7c lw gp, 0x20(sp) | gp = *(var_20h_2);
0x00038e80 addiu v0, s1, -0x4984 | v0 = s1 + -0x4984;
| do {
0x00038e84 lw a0, 0x2c(sp) | a0 = *(var_2ch);
0x00038e88 lw v1, (s0) | v1 = *(s0);
0x00038e8c lw ra, 0x3c(sp) | ra = *(var_24h);
| if (a0 != v1) {
0x00038e90 bne a0, v1, 0x38ed8 | goto label_1;
| }
0x00038e94 lw s1, 0x38(sp) | s1 = *(var_20h);
0x00038e98 lw s0, 0x34(sp) | s0 = *(var_34h);
0x00038e9c addiu sp, sp, 0x40 |
0x00038ea0 jr ra | return v1;
| label_0:
0x00038ea4 lw a0, -0x7fdc(gp) | a0 = *(gp);
0x00038ea8 lw s1, -0x7fb4(gp) | s1 = *((gp - 8173));
| /* str.__________ */
0x00038eac addiu v1, a0, 0x5178 | v1 = a0 + 0x5178;
0x00038eb0 addiu v0, s1, -0x4984 | v0 = s1 + -0x4984;
0x00038eb4 lw a2, 0x5178(a0) | a2 = *((a0 + 5214));
0x00038eb8 lw a1, 4(v1) | a1 = *((v1 + 1));
0x00038ebc lhu a0, 8(v1) | a0 = *((v1 + 4));
0x00038ec0 lbu v1, 0xa(v1) | v1 = *((v1 + 10));
0x00038ec4 sw a2, -0x4984(s1) | *((s1 - 4705)) = a2;
0x00038ec8 sw a1, 4(v0) | *((v0 + 1)) = a1;
0x00038ecc sh a0, 8(v0) | *((v0 + 4)) = a0;
0x00038ed0 sb v1, 0xa(v0) | *((v0 + 10)) = v1;
0x00038ed4 b 0x38e84 |
| } while (1);
| label_1:
0x00038ed8 lw t9, -0x7834(gp) | t9 = sym.imp.__stack_chk_fail;
0x00038edc jalr t9 | t9 ();
0x00038ee0 nop |
| }
; assembly | /* r2dec pseudo code output */
| /* /logs/firmware/unblob_extracted/firmware_extract/4325012-58052244.squashfs_v4_le_extract/usr/bin/gpgv @ 0x38c94 */
| #include <stdint.h>
|
; (fcn) sym.strtimevalue () | void strtimevalue () {
0x00038c94 lui gp, 3 |
0x00038c98 addiu gp, gp, -0x6b64 |
0x00038c9c addu gp, gp, t9 | gp += t9;
0x00038ca0 lui v1, 0x8888 | v1 = 0x88888889;
0x00038ca4 ori v1, v1, 0x8889 |
0x00038ca8 multu a0, v1 | __asm ("multu a0, v1");
0x00038cac mfhi a2 | __asm ("mfhi a2");
0x00038cb0 lui a1, 0xaaaa | a1 = 0xaaaaaaab;
0x00038cb4 ori a1, a1, 0xaaab |
0x00038cb8 addiu sp, sp, -0x38 |
0x00038cbc lw t9, -0x794c(gp) | t9 = sym.imp.__sprintf_chk
0x00038cc0 srl a2, a2, 5 | a2 >>= 5;
0x00038cc4 multu a2, v1 | __asm ("multu a2, v1");
0x00038cc8 mfhi v1 | __asm ("mfhi v1");
0x00038ccc sw s0, 0x28(sp) | *(var_28h) = s0;
0x00038cd0 move s0, a0 | s0 = a0;
0x00038cd4 lui a0, 0x6719 | a0 = 0x6719f361;
0x00038cd8 ori a0, a0, 0xf361 |
0x00038cdc srl v1, v1, 5 | v1 >>= 5;
0x00038ce0 multu v1, a1 | __asm ("multu v1, a1");
0x00038ce4 mfhi a1 | __asm ("mfhi a1");
0x00038ce8 sw s2, 0x30(sp) | *(var_30h) = s2;
0x00038cec sll t0, v1, 4 | t0 = v1 << 4;
0x00038cf0 subu t0, t0, v1 | __asm ("subu t0, t0, v1");
0x00038cf4 sw s1, 0x2c(sp) | *(var_2ch) = s1;
0x00038cf8 srl a1, a1, 4 | a1 >>= 4;
0x00038cfc multu a1, a0 | __asm ("multu a1, a0");
0x00038d00 mfhi a0 | __asm ("mfhi a0");
0x00038d04 sll a3, a1, 1 | a3 = a1 << 1;
0x00038d08 addu a3, a3, a1 | a3 += a1;
0x00038d0c sll a3, a3, 3 | a3 <<= 3;
0x00038d10 lw s1, -0x7fb4(gp) | s1 = *((gp - 8173));
0x00038d14 subu v0, a1, a0 | __asm ("subu v0, a1, a0");
0x00038d18 srl v0, v0, 1 | v0 >>= 1;
0x00038d1c addu a0, a0, v0 | a0 += v0;
0x00038d20 srl s2, a0, 8 | s2 = a0 >> 8;
0x00038d24 addiu v0, zero, 0x16d | v0 = 0x16d;
0x00038d28 mul t1, s2, v0 | __asm ("mul t1, s2, v0");
0x00038d2c subu v1, v1, a3 | __asm ("subu v1, v1, a3");
0x00038d30 sll t0, t0, 2 | t0 <<= 2;
0x00038d34 lw a3, -0x7d90(gp) | a3 = *((gp - 8036));
0x00038d38 subu a2, a2, t0 | __asm ("subu a2, a2, t0");
0x00038d3c subu s2, a1, t1 | __asm ("subu s2, a1, t1");
0x00038d40 srl a0, a0, 8 | a0 >>= 8;
0x00038d44 sw gp, 0x20(sp) | *(var_20h) = gp;
0x00038d48 sw a2, 0x1c(sp) | *(var_1ch) = a2;
0x00038d4c sw a0, 0x10(sp) | *(var_10h) = a0;
0x00038d50 sw ra, 0x34(sp) | *(var_34h) = ra;
0x00038d54 sw v1, 0x18(sp) | *(var_18h) = v1;
0x00038d58 sw s2, 0x14(sp) | *(var_14h) = s2;
| /* str._uy_ud_uh_um */
0x00038d5c addiu a3, a3, -0x7e04 | a3 += -0x7e04;
0x00038d60 addiu a2, zero, 0x1e | a2 = 0x1e;
0x00038d64 addiu a1, zero, 1 | a1 = 1;
0x00038d68 addiu a0, s1, -0x4974 | a0 = s1 + -0x4974;
0x00038d6c jalr t9 | t9 ();
0x00038d70 lui v0, 0x1e1 | v0 = 0x1e13380;
0x00038d74 addiu v0, v0, 0x3380 |
0x00038d78 sltu s0, s0, v0 | s0 = (s0 < v0) ? 1 : 0;
0x00038d7c lw gp, 0x20(sp) | gp = *(var_20h);
| if (s0 != 0) {
0x00038d80 beqz s0, 0x38ddc |
0x00038d84 lw t9, -0x789c(gp) | t9 = sym.imp.strchr;
| if (s2 == 0) {
0x00038d88 bnez s2, 0x38db4 |
0x00038d8c addiu a0, s1, -0x4974 | a0 = s1 + -0x4974;
0x00038d90 addiu a1, zero, 0x64 | a1 = 0x64;
0x00038d94 jalr t9 | t9 ();
0x00038d98 lw ra, 0x34(sp) | ra = *(var_34h);
0x00038d9c lw s2, 0x30(sp) | s2 = *(var_30h);
0x00038da0 lw s1, 0x2c(sp) | s1 = *(var_2ch);
0x00038da4 lw s0, 0x28(sp) | s0 = *(var_28h);
0x00038da8 addiu v0, v0, 1 | v0++;
0x00038dac addiu sp, sp, 0x38 |
0x00038db0 jr ra | return v0;
| }
0x00038db4 addiu a0, s1, -0x4974 | a0 = s1 + -0x4974;
0x00038db8 addiu a1, zero, 0x79 | a1 = 0x79;
0x00038dbc jalr t9 | t9 ();
0x00038dc0 lw ra, 0x34(sp) | ra = *(var_34h);
0x00038dc4 lw s2, 0x30(sp) | s2 = *(var_30h);
0x00038dc8 lw s1, 0x2c(sp) | s1 = *(var_2ch);
0x00038dcc lw s0, 0x28(sp) | s0 = *(var_28h);
0x00038dd0 addiu v0, v0, 1 | v0++;
0x00038dd4 addiu sp, sp, 0x38 |
0x00038dd8 jr ra | return v0;
| }
0x00038ddc lw ra, 0x34(sp) | ra = *(var_34h);
0x00038de0 addiu v0, s1, -0x4974 | v0 = s1 + -0x4974;
0x00038de4 lw s2, 0x30(sp) | s2 = *(var_30h);
0x00038de8 lw s1, 0x2c(sp) | s1 = *(var_2ch);
0x00038dec lw s0, 0x28(sp) | s0 = *(var_28h);
0x00038df0 addiu sp, sp, 0x38 |
0x00038df4 jr ra | return v0;
| }
; assembly | /* r2dec pseudo code output */
| /* /logs/firmware/unblob_extracted/firmware_extract/4325012-58052244.squashfs_v4_le_extract/usr/bin/gpgv @ 0x3a610 */
| #include <stdint.h>
|
; (fcn) sym.utf8_to_native () | void utf8_to_native () {
| label_11:
0x0003a610 lui gp, 2 |
0x0003a614 addiu gp, gp, 0x7b20 |
0x0003a618 addu gp, gp, t9 | gp += t9;
0x0003a61c lw v0, -0x781c(gp) | v0 = *((gp - 7687));
0x0003a620 addiu sp, sp, -0x98 |
0x0003a624 lw v1, -0x7fdc(gp) | v1 = *(gp);
0x0003a628 sw v0, 0x4c(sp) | *(var_4ch) = v0;
0x0003a62c lw v0, (v0) | v0 = *(v0);
0x0003a630 sw a1, 0x9c(sp) | *(arg_9ch) = a1;
0x0003a634 sw v0, 0x6c(sp) | *(var_6ch) = v0;
0x0003a638 lw v0, -0x7d90(gp) | v0 = *((gp - 8036));
0x0003a63c lw a3, -0x7fb4(gp) | a3 = *((gp - 8173));
0x0003a640 addiu v0, v0, -0x7d00 | v0 += -0x7d00;
0x0003a644 sw v0, 0x38(sp) | *(var_38h) = v0;
0x0003a648 lw v0, -0x7d90(gp) | v0 = *((gp - 8036));
0x0003a64c sw gp, 0x18(sp) | *(var_18h) = gp;
0x0003a650 addiu v0, v0, -0x7cc8 | v0 += -0x7cc8;
0x0003a654 sw v0, 0x48(sp) | *(var_48h) = v0;
0x0003a658 lw v0, 0x9c(sp) | v0 = *(arg_9ch);
0x0003a65c sw s5, 0x84(sp) | *(var_84h) = s5;
0x0003a660 sw s2, 0x78(sp) | *(var_78h) = s2;
0x0003a664 sw ra, 0x94(sp) | *(var_94h) = ra;
0x0003a668 sw fp, 0x90(sp) | *(var_90h) = fp;
0x0003a66c sw s7, 0x8c(sp) | *(var_8ch) = s7;
0x0003a670 sw s6, 0x88(sp) | *(var_88h) = s6;
0x0003a674 sw s4, 0x80(sp) | *(var_80h) = s4;
0x0003a678 sw s3, 0x7c(sp) | *(var_7ch) = s3;
0x0003a67c sw s1, 0x74(sp) | *(var_74h) = s1;
0x0003a680 sw s0, 0x70(sp) | *(var_70h) = s0;
0x0003a684 sw v1, 0x30(sp) | *(var_30h) = v1;
0x0003a688 sw a3, 0x3c(sp) | *(var_3ch) = a3;
0x0003a68c sw a0, 0x2c(sp) | *(var_2ch) = a0;
0x0003a690 sw a2, 0xa0(sp) | *(arg_a0h) = a2;
0x0003a694 move t2, zero | t2 = 0;
0x0003a698 move s2, zero | s2 = 0;
0x0003a69c sw zero, 0x24(sp) | *(var_24h) = 0;
| /* esilref: '\x&x' */
0x0003a6a0 addiu s5, v1, 0x53a0 | s5 = v1 + 0x53a0;
| if (v0 == 0) {
0x0003a6a4 beqz v0, 0x3a778 | goto label_14;
| }
| label_0:
0x0003a6a8 lw v0, -0x7d90(gp) | v0 = *((gp - 8036));
0x0003a6ac lw s7, 0x2c(sp) | s7 = *(var_2ch);
0x0003a6b0 sw v0, 0x34(sp) | *(var_34h) = v0;
0x0003a6b4 lw v0, -0x7fb4(gp) | v0 = *((gp - 8173));
0x0003a6b8 lw fp, 0x24(sp) | fp = *(var_24h);
0x0003a6bc sw v0, 0x28(sp) | *(var_28h) = v0;
0x0003a6c0 lw v0, 0x9c(sp) | v0 = *(arg_9ch);
0x0003a6c4 move s1, zero | s1 = 0;
0x0003a6c8 addu s4, s7, v0 | s4 = s7 + v0;
0x0003a6cc move s0, zero | s0 = 0;
0x0003a6d0 move t1, zero | t1 = 0;
| do {
0x0003a6d4 lbu v0, (s7) | v0 = *(s7);
| if (t2 == 0) {
0x0003a6d8 beqz t2, 0x3a820 | goto label_15;
| }
0x0003a6dc seb a0, v0 | __asm ("seb a0, v0");
0x0003a6e0 addiu a0, v0, 0x40 | a0 = v0 + 0x40;
| if (a0 < 0) {
0x0003a6e4 bltz a0, 0x3a7e4 | goto label_16;
| }
0x0003a6e8 addiu s3, s0, 1 | s3 = s0 + 1;
| if (t1 != 0) {
0x0003a6ec bnez t1, 0x3a800 | goto label_4;
| }
0x0003a6f0 lw v1, 0xa0(sp) | v1 = *(arg_a0h);
| label_3:
0x0003a6f4 addiu a0, zero, -1 | a0 = -1;
0x0003a6f8 sltiu a0, v0, 0x20 | a0 = (v0 < 0x20) ? 1 : 0;
| if (v1 != a0) {
0x0003a6fc beq v1, a0, 0x3a728 |
0x0003a700 addiu a0, zero, 0x7f | a0 = 0x7f;
| if (a0 != 0) {
0x0003a704 bnez a0, 0x3a934 | goto label_17;
| }
| if (v0 == a0) {
0x0003a708 beq v0, a0, 0x3aba4 | goto label_18;
| }
0x0003a70c nop |
| if (v0 == v1) {
0x0003a710 beq v0, v1, 0x3a934 | goto label_17;
| }
0x0003a714 nop |
0x0003a718 addiu a0, zero, 0x5c | a0 = 0x5c;
| if (v1 == 0) {
0x0003a71c beqz v1, 0x3a728 | goto label_19;
| }
| if (v0 == a0) {
0x0003a720 beq v0, a0, 0x3aba4 | goto label_18;
| }
0x0003a724 nop |
| }
| label_19:
0x0003a728 addiu s1, s1, 1 | s1++;
| if (fp != 0) {
0x0003a72c beqz fp, 0x3a738 |
0x0003a730 sb v0, (fp) | *(fp) = v0;
0x0003a734 addiu fp, fp, 1 | fp++;
| }
0x0003a738 move t2, zero | t2 = 0;
0x0003a73c move t1, zero | t1 = 0;
| label_2:
0x0003a740 addiu s7, s7, 1 | s7++;
0x0003a744 bne s7, s4, 0x3a6d4 |
| } while (s7 != s4);
0x0003a748 nop |
0x0003a74c lw v0, 0x24(sp) | v0 = *(var_24h);
0x0003a750 sw t2, 0x28(sp) | *(var_28h) = t2;
| if (v0 != 0) {
0x0003a754 bnez v0, 0x3a78c | goto label_20;
| }
| label_1:
0x0003a758 lw t9, -0x7f28(gp) | t9 = sym.xmalloc;
0x0003a75c addiu a0, s1, 1 | a0 = s1 + 1;
0x0003a760 bal 0x3cb1c | sym_xmalloc ();
0x0003a764 sw v0, 0x24(sp) | *(var_24h) = v0;
0x0003a768 lw v0, 0x9c(sp) | v0 = *(arg_9ch);
0x0003a76c lw gp, 0x18(sp) | gp = *(var_18h);
0x0003a770 lw t2, 0x28(sp) | t2 = *(var_28h);
| if (v0 != 0) {
0x0003a774 bnez v0, 0x3a6a8 | goto label_0;
| }
| label_14:
0x0003a778 lw v0, 0x24(sp) | v0 = *(var_24h);
0x0003a77c lw fp, 0x24(sp) | fp = *(var_24h);
0x0003a780 move s1, zero | s1 = 0;
0x0003a784 sw t2, 0x28(sp) | *(var_28h) = t2;
| if (v0 == 0) {
0x0003a788 beqz v0, 0x3a758 | goto label_1;
| }
| label_20:
0x0003a78c lw v0, 0x3c(sp) | v0 = *(var_3ch);
0x0003a790 lw v0, -0x4940(v0) | v0 = *((v0 - 4688));
0x0003a794 lw s3, -0x7fb4(gp) | s3 = *((gp - 8173));
| if (v0 != 0) {
0x0003a798 bnez v0, 0x3ad68 | goto label_21;
| }
0x0003a79c sb zero, (fp) | *(fp) = 0;
| label_12:
0x0003a7a0 lw v0, 0x4c(sp) | v0 = *(var_4ch);
0x0003a7a4 lw a0, 0x6c(sp) | a0 = *(var_6ch);
0x0003a7a8 lw v1, (v0) | v1 = *(v0);
0x0003a7ac lw v0, 0x24(sp) | v0 = *(var_24h);
| if (a0 != v1) {
0x0003a7b0 bne a0, v1, 0x3af30 | goto label_22;
| }
0x0003a7b4 lw ra, 0x94(sp) | ra = *(var_94h);
0x0003a7b8 lw fp, 0x90(sp) | fp = *(var_90h);
0x0003a7bc lw s7, 0x8c(sp) | s7 = *(var_8ch);
0x0003a7c0 lw s6, 0x88(sp) | s6 = *(var_88h);
0x0003a7c4 lw s5, 0x84(sp) | s5 = *(var_84h);
0x0003a7c8 lw s4, 0x80(sp) | s4 = *(var_80h);
0x0003a7cc lw s3, 0x7c(sp) | s3 = *(var_7ch);
0x0003a7d0 lw s2, 0x78(sp) | s2 = *(var_78h);
0x0003a7d4 lw s1, 0x74(sp) | s1 = *(var_74h);
0x0003a7d8 lw s0, 0x70(sp) | s0 = *(var_70h);
0x0003a7dc addiu sp, sp, 0x98 |
0x0003a7e0 jr ra | return v0;
| label_16:
0x0003a7e4 andi a0, a0, 0xff | a0 &= 0xff;
0x0003a7e8 sltiu a0, a0, 0x3e | a0 = (a0 < 0x3e) ? 1 : 0;
| if (a0 == 0) {
0x0003a7ec beqz a0, 0x3aae4 | goto label_23;
| }
0x0003a7f0 nop |
0x0003a7f4 andi a0, v0, 0xe0 | a0 = v0 & 0xe0;
| if (t1 == 0) {
0x0003a7f8 beqz t1, 0x3a838 | goto label_24;
| }
0x0003a7fc addiu s3, s0, 1 | s3 = s0 + 1;
| if (fp != 0) {
| label_4:
0x0003a800 bnez fp, 0x3aa70 | goto label_25;
| }
0x0003a804 nop |
| label_5:
0x0003a808 sll s3, s3, 2 | s3 <<= 2;
0x0003a80c addu s1, s1, s3 | s1 += s3;
0x0003a810 addiu t2, zero, 1 | t2 = 1;
0x0003a814 move s0, zero | s0 = 0;
0x0003a818 move t1, zero | t1 = 0;
0x0003a81c b 0x3a740 | goto label_2;
| label_15:
0x0003a820 xori a0, v0, 0x80 | a0 = v0 ^ 0x80;
| if (t1 != 0) {
0x0003a824 bnez t1, 0x3a8ac | goto label_26;
| }
0x0003a828 seb a0, v0 | __asm ("seb a0, v0");
0x0003a82c lw v1, 0xa0(sp) | v1 = *(arg_a0h);
| if (a0 >= 0) {
0x0003a830 bgez a0, 0x3a6f4 | goto label_3;
| }
0x0003a834 andi a0, v0, 0xe0 | a0 = v0 & 0xe0;
| label_24:
0x0003a838 addiu a1, zero, 0xc0 | a1 = 0xc0;
0x0003a83c andi a0, v0, 0xf0 | a0 = v0 & 0xf0;
| if (a0 == a1) {
0x0003a840 beq a0, a1, 0x3ab24 | goto label_27;
| }
0x0003a844 addiu a1, zero, 0xe0 | a1 = 0xe0;
0x0003a848 andi a0, v0, 0xf8 | a0 = v0 & 0xf8;
| if (a0 == a1) {
0x0003a84c beq a0, a1, 0x3ab60 | goto label_28;
| }
0x0003a850 addiu a1, zero, 0xf0 | a1 = 0xf0;
0x0003a854 andi a0, v0, 0xfc | a0 = v0 & 0xfc;
| if (a0 == a1) {
0x0003a858 beq a0, a1, 0x3abc0 | goto label_29;
| }
0x0003a85c addiu a1, zero, 0xf8 | a1 = 0xf8;
0x0003a860 andi a0, v0, 0xfe | a0 = v0 & 0xfe;
| if (a0 == a1) {
0x0003a864 beq a0, a1, 0x3ac08 | goto label_30;
| }
0x0003a868 addiu a1, zero, 0xfc | a1 = 0xfc;
| if (a0 == a1) {
0x0003a86c beql a0, a1, 0x3ac7c | goto label_31;
| }
0x0003a870 andi s2, v0, 1 | s2 = v0 & 1;
0x0003a874 lw t9, -0x794c(gp) | t9 = sym.imp.__sprintf_chk
| if (fp != 0) {
0x0003a878 beqz fp, 0x3a89c |
0x0003a87c move a0, fp | a0 = fp;
0x0003a880 sw v0, 0x10(sp) | *(var_10h) = v0;
0x0003a884 move a3, s5 | a3 = s5;
0x0003a888 addiu a2, zero, -1 | a2 = -1;
0x0003a88c addiu a1, zero, 1 | a1 = 1;
0x0003a890 jalr t9 | t9 ();
0x0003a894 lw gp, 0x18(sp) | gp = *(var_18h);
0x0003a898 addiu fp, fp, 4 | fp += 4;
| }
0x0003a89c addiu s1, s1, 4 | s1 += 4;
0x0003a8a0 addiu t2, zero, 1 | t2 = 1;
0x0003a8a4 move t1, zero | t1 = 0;
0x0003a8a8 b 0x3a740 | goto label_2;
| label_26:
0x0003a8ac addiu t3, s0, 1 | t3 = s0 + 1;
0x0003a8b0 sltiu a0, a0, 0x40 | a0 = (a0 < 0x40) ? 1 : 0;
0x0003a8b4 move s3, t3 | s3 = t3;
| if (a0 == 0) {
0x0003a8b8 beqz a0, 0x3a800 | goto label_4;
| }
0x0003a8bc addiu v1, sp, 0x70 | v1 = sp + 0x70;
0x0003a8c0 addu s0, v1, s0 | s0 = v1 + s0;
0x0003a8c4 sll s2, s2, 6 | s2 <<= 6;
0x0003a8c8 andi a0, v0, 0x3f | a0 = v0 & 0x3f;
0x0003a8cc addiu t1, t1, -1 | t1 += -1;
0x0003a8d0 sb v0, -0xc(s0) | *((s0 - 12)) = v0;
0x0003a8d4 or s2, a0, s2 | s2 = a0 | s2;
| if (t1 == 0) {
0x0003a8d8 bnez t1, 0x3a92c |
0x0003a8dc lw v0, 0x28(sp) | v0 = *(var_28h);
0x0003a8e0 lw t2, -0x493c(v0) | t2 = *((v0 - 4687));
| if (t2 == 0) {
0x0003a8e4 beql t2, zero, 0x3ab3c | goto label_32;
| }
0x0003a8e8 lw v0, 0x3c(sp) | v0 = *(var_3ch);
0x0003a8ec addiu v0, sp, 0x64 | v0 = sp + 0x64;
| if (fp != 0) {
0x0003a8f0 bnez fp, 0x3abe8 | goto label_33;
| }
| label_10:
0x0003a8f4 addu s1, s1, t3 | s1 += t3;
| label_8:
0x0003a8f8 move t2, zero | t2 = 0;
0x0003a8fc move s0, zero | s0 = 0;
0x0003a900 b 0x3a740 | goto label_2;
| label_6:
0x0003a904 lw v0, -0x4938(v0) | v0 = *((v0 - 4686));
0x0003a908 move a0, zero | a0 = 0;
| if (v0 != 0) {
0x0003a90c bnez v0, 0x3ac20 | goto label_34;
| }
0x0003a910 addiu v0, s2, -0x80 | v0 = s2 + -0x80;
0x0003a914 sltiu v0, v0, 0x80 | v0 = (v0 < 0x80) ? 1 : 0;
| if (v0 == 0) {
0x0003a918 beqz v0, 0x3ac90 | goto label_35;
| }
0x0003a91c nop |
0x0003a920 addiu s1, s1, 1 | s1++;
| if (fp != 0) {
0x0003a924 bnez fp, 0x3aca8 | goto label_36;
| }
0x0003a928 move t2, fp | t2 = fp;
| }
0x0003a92c move s0, t3 | s0 = t3;
0x0003a930 b 0x3a740 | goto label_2;
| if (fp == 0) {
| label_17:
0x0003a934 beql fp, zero, 0x3ab78 | goto label_37;
| }
0x0003a938 sltiu a0, v0, 0xe | a0 = (v0 < 0xe) ? 1 : 0;
0x0003a93c addiu v0, zero, 0x5c | v0 = 0x5c;
| label_7:
0x0003a940 sb v0, (fp) | *(fp) = v0;
0x0003a944 lbu a1, (s7) | a1 = *(s7);
0x0003a948 sltiu v0, a1, 0xe | v0 = (a1 < 0xe) ? 1 : 0;
0x0003a94c addiu a0, fp, 1 | a0 = fp + 1;
| if (v0 != 0) {
0x0003a950 beqz v0, 0x3aa38 |
0x0003a954 lw v1, 0x38(sp) | v1 = *(var_38h);
0x0003a958 sll v0, a1, 2 | v0 = a1 << 2;
0x0003a95c lwx v0, v0(v1) | __asm ("lwx v0, v0(v1)");
0x0003a960 addu v0, v0, gp | v0 += gp;
0x0003a964 jr v0 | v0 ();
0x0003a968 nop |
| }
0x0003aa38 addiu s1, s1, 4 | s1 += 4;
| if (a0 == 0) {
0x0003aa3c beqz a0, 0x3abd8 | goto label_38;
| }
0x0003aa40 lw v0, 0x34(sp) | v0 = *(var_34h);
0x0003aa44 lw t9, -0x794c(gp) | t9 = sym.imp.__sprintf_chk
0x0003aa48 sw a1, 0x10(sp) | *(var_10h) = a1;
0x0003aa4c addiu a3, v0, -0x7dec | a3 = v0 + -0x7dec;
0x0003aa50 addiu a2, zero, -1 | a2 = -1;
0x0003aa54 addiu a1, zero, 1 | a1 = 1;
0x0003aa58 jalr t9 | t9 ();
0x0003aa5c addiu fp, fp, 4 | fp += 4;
0x0003aa60 lw gp, 0x18(sp) | gp = *(var_18h);
0x0003aa64 move t2, zero | t2 = 0;
0x0003aa68 move t1, zero | t1 = 0;
0x0003aa6c b 0x3a740 | goto label_2;
| if (s0 == 0) {
| label_25:
0x0003aa70 beql s0, zero, 0x3aab8 | goto label_39;
| }
0x0003aa74 move s0, fp | s0 = fp;
0x0003aa78 sll s0, s0, 2 | s0 <<= 2;
0x0003aa7c addiu s6, sp, 0x64 | s6 = sp + 0x64;
0x0003aa80 addu s0, fp, s0 | s0 = fp + s0;
| do {
0x0003aa84 lbu v0, (s6) | v0 = *(s6);
0x0003aa88 lw t9, -0x794c(gp) | t9 = sym.imp.__sprintf_chk
0x0003aa8c move a0, fp | a0 = fp;
0x0003aa90 sw v0, 0x10(sp) | *(var_10h) = v0;
0x0003aa94 move a3, s5 | a3 = s5;
0x0003aa98 addiu a2, zero, -1 | a2 = -1;
0x0003aa9c addiu a1, zero, 1 | a1 = 1;
0x0003aaa0 addiu fp, fp, 4 | fp += 4;
0x0003aaa4 jalr t9 | t9 ();
0x0003aaa8 addiu s6, s6, 1 | s6++;
0x0003aaac lw gp, 0x18(sp) | gp = *(var_18h);
0x0003aab0 bne s0, fp, 0x3aa84 |
| } while (s0 != fp);
0x0003aab4 lbu v0, (s7) | v0 = *(s7);
| label_39:
0x0003aab8 sw v0, 0x10(sp) | *(var_10h) = v0;
0x0003aabc lw v0, 0x30(sp) | v0 = *(var_30h);
0x0003aac0 lw t9, -0x794c(gp) | t9 = sym.imp.__sprintf_chk
0x0003aac4 addiu a3, v0, 0x53a0 | a3 = v0 + 0x53a0;
0x0003aac8 addiu a2, zero, -1 | a2 = -1;
0x0003aacc addiu a1, zero, 1 | a1 = 1;
0x0003aad0 move a0, s0 | a0 = s0;
0x0003aad4 jalr t9 | t9 ();
0x0003aad8 addiu fp, s0, 4 | fp = s0 + 4;
0x0003aadc lw gp, 0x18(sp) | gp = *(var_18h);
0x0003aae0 b 0x3a808 | goto label_5;
| label_23:
0x0003aae4 lw t9, -0x794c(gp) | t9 = sym.imp.__sprintf_chk
| if (fp != 0) {
0x0003aae8 beqz fp, 0x3ab1c |
0x0003aaec sw t2, 0x44(sp) | *(var_44h) = t2;
0x0003aaf0 sw t1, 0x40(sp) | *(var_40h) = t1;
0x0003aaf4 move a0, fp | a0 = fp;
0x0003aaf8 sw v0, 0x10(sp) | *(var_10h) = v0;
0x0003aafc move a3, s5 | a3 = s5;
0x0003ab00 addiu a2, zero, -1 | a2 = -1;
0x0003ab04 addiu a1, zero, 1 | a1 = 1;
0x0003ab08 jalr t9 | t9 ();
0x0003ab0c lw gp, 0x18(sp) | gp = *(var_18h);
0x0003ab10 lw t2, 0x44(sp) | t2 = *(var_44h);
0x0003ab14 lw t1, 0x40(sp) | t1 = *(var_40h);
0x0003ab18 addiu fp, fp, 4 | fp += 4;
| }
0x0003ab1c addiu s1, s1, 4 | s1 += 4;
0x0003ab20 b 0x3a740 | goto label_2;
| label_27:
0x0003ab24 andi s2, v0, 0x1f | s2 = v0 & 0x1f;
0x0003ab28 sb v0, 0x64(sp) | *(var_64h) = v0;
0x0003ab2c move t2, zero | t2 = 0;
0x0003ab30 addiu s0, zero, 1 | s0 = 1;
0x0003ab34 addiu t1, zero, 1 | t1 = 1;
0x0003ab38 b 0x3a740 | goto label_2;
| label_32:
0x0003ab3c lw t1, -0x4940(v0) | t1 = *((v0 - 4688));
| if (t1 == 0) {
0x0003ab40 beql t1, zero, 0x3a904 | goto label_6;
| }
0x0003ab44 lw v0, -0x7fb4(gp) | v0 = *((gp - 8173));
0x0003ab48 addiu v0, sp, 0x64 | v0 = sp + 0x64;
| if (fp != 0) {
0x0003ab4c bnez fp, 0x3ac5c | goto label_40;
| }
0x0003ab50 addu s1, s1, t3 | s1 += t3;
| label_9:
0x0003ab54 move s0, zero | s0 = 0;
0x0003ab58 move t1, zero | t1 = 0;
0x0003ab5c b 0x3a740 | goto label_2;
| label_28:
0x0003ab60 andi s2, v0, 0xf | s2 = v0 & 0xf;
0x0003ab64 sb v0, 0x64(sp) | *(var_64h) = v0;
0x0003ab68 move t2, zero | t2 = 0;
0x0003ab6c addiu s0, zero, 1 | s0 = 1;
0x0003ab70 addiu t1, zero, 2 | t1 = 2;
0x0003ab74 b 0x3a740 | goto label_2;
| label_37:
0x0003ab78 lw v1, 0x48(sp) | v1 = *(var_48h);
| if (a0 == 0) {
0x0003ab7c beqz a0, 0x3abac | goto label_41;
| }
0x0003ab80 sll v0, v0, 2 | v0 <<= 2;
0x0003ab84 lwx v0, v0(v1) | __asm ("lwx v0, v0(v1)");
0x0003ab88 addu v0, v0, gp | v0 += gp;
0x0003ab8c jr v0 | v0 ();
0x0003ab90 nop |
| label_18:
0x0003aba4 addiu v0, zero, 0x5c | v0 = 0x5c;
| if (fp != 0) {
0x0003aba8 bnez fp, 0x3a940 | goto label_7;
| }
| label_41:
0x0003abac addiu s1, s1, 4 | s1 += 4;
0x0003abb0 move t2, zero | t2 = 0;
0x0003abb4 move fp, zero | fp = 0;
0x0003abb8 move t1, zero | t1 = 0;
0x0003abbc b 0x3a740 | goto label_2;
| label_29:
0x0003abc0 andi s2, v0, 7 | s2 = v0 & 7;
0x0003abc4 sb v0, 0x64(sp) | *(var_64h) = v0;
0x0003abc8 move t2, zero | t2 = 0;
0x0003abcc addiu s0, zero, 1 | s0 = 1;
0x0003abd0 addiu t1, zero, 3 | t1 = 3;
0x0003abd4 b 0x3a740 | goto label_2;
| label_38:
0x0003abd8 move fp, zero | fp = 0;
0x0003abdc move t2, zero | t2 = 0;
0x0003abe0 move t1, zero | t1 = 0;
0x0003abe4 b 0x3a740 | goto label_2;
| label_33:
0x0003abe8 addu a1, fp, t3 | a1 = fp + t3;
| do {
0x0003abec lbu a0, (v0) | a0 = *(v0);
0x0003abf0 addiu fp, fp, 1 | fp++;
0x0003abf4 addiu v0, v0, 1 | v0++;
0x0003abf8 sb a0, -1(fp) | *((fp - 1)) = a0;
0x0003abfc bne fp, a1, 0x3abec |
| } while (fp != a1);
0x0003ac00 addu s1, s1, t3 | s1 += t3;
0x0003ac04 b 0x3a8f8 | goto label_8;
| label_30:
0x0003ac08 andi s2, v0, 3 | s2 = v0 & 3;
0x0003ac0c sb v0, 0x64(sp) | *(var_64h) = v0;
0x0003ac10 move t2, zero | t2 = 0;
0x0003ac14 addiu s0, zero, 1 | s0 = 1;
0x0003ac18 addiu t1, zero, 4 | t1 = 4;
0x0003ac1c b 0x3a740 | goto label_2;
| label_34:
0x0003ac20 addiu a2, zero, 0x80 | a2 = 0x80;
0x0003ac24 b 0x3ac30 |
| while (a1 == s2) {
0x0003ac28 addiu v0, v0, 2 | v0 += 2;
| if (a0 == a2) {
0x0003ac2c beq a0, a2, 0x3ad08 | goto label_42;
| }
0x0003ac30 lhu a1, (v0) | a1 = *(v0);
0x0003ac34 addiu a0, a0, 1 | a0++;
0x0003ac38 bnel a1, s2, 0x3ac28 |
| }
0x0003ac3c addiu a0, a0, -0x80 | a0 += -0x80;
| if (fp != 0) {
0x0003ac40 beqz fp, 0x3ac4c |
0x0003ac44 sb a0, (fp) | *(fp) = a0;
0x0003ac48 addiu fp, fp, 1 | fp++;
| }
0x0003ac4c addiu s1, s1, 1 | s1++;
0x0003ac50 move t2, zero | t2 = 0;
0x0003ac54 move s0, t3 | s0 = t3;
0x0003ac58 b 0x3a740 | goto label_2;
| label_40:
0x0003ac5c addu a1, fp, t3 | a1 = fp + t3;
| do {
0x0003ac60 lbu a0, (v0) | a0 = *(v0);
0x0003ac64 addiu fp, fp, 1 | fp++;
0x0003ac68 addiu v0, v0, 1 | v0++;
0x0003ac6c sb a0, -1(fp) | *((fp - 1)) = a0;
0x0003ac70 bne fp, a1, 0x3ac60 |
| } while (fp != a1);
0x0003ac74 addu s1, s1, t3 | s1 += t3;
0x0003ac78 b 0x3ab54 | goto label_9;
| label_31:
0x0003ac7c sb v0, 0x64(sp) | *(var_64h) = v0;
0x0003ac80 move t2, zero | t2 = 0;
0x0003ac84 addiu s0, zero, 1 | s0 = 1;
0x0003ac88 addiu t1, zero, 5 | t1 = 5;
0x0003ac8c b 0x3a740 | goto label_2;
| label_35:
0x0003ac90 sll s6, t3, 2 | s6 = t3 << 2;
| if (fp == 0) {
0x0003ac94 bnez fp, 0x3acb8 |
0x0003ac98 addu s1, s1, s6 | s1 += s6;
0x0003ac9c move t2, zero | t2 = 0;
0x0003aca0 move s0, zero | s0 = 0;
0x0003aca4 b 0x3a740 | goto label_2;
| label_36:
0x0003aca8 sb s2, (fp) | *(fp) = s2;
0x0003acac move s0, t3 | s0 = t3;
0x0003acb0 addiu fp, fp, 1 | fp++;
0x0003acb4 b 0x3a740 | goto label_2;
| }
0x0003acb8 addiu s3, sp, 0x64 | s3 = sp + 0x64;
0x0003acbc addu s0, fp, s6 | s0 = fp + s6;
| do {
0x0003acc0 lbu v0, (s3) | v0 = *(s3);
0x0003acc4 lw t9, -0x794c(gp) | t9 = sym.imp.__sprintf_chk
0x0003acc8 sw t1, 0x40(sp) | *(var_40h) = t1;
0x0003accc move a0, fp | a0 = fp;
0x0003acd0 sw v0, 0x10(sp) | *(var_10h) = v0;
0x0003acd4 move a3, s5 | a3 = s5;
0x0003acd8 addiu a2, zero, -1 | a2 = -1;
0x0003acdc addiu a1, zero, 1 | a1 = 1;
0x0003ace0 addiu fp, fp, 4 | fp += 4;
0x0003ace4 jalr t9 | t9 ();
0x0003ace8 addiu s3, s3, 1 | s3++;
0x0003acec lw gp, 0x18(sp) | gp = *(var_18h);
0x0003acf0 lw t1, 0x40(sp) | t1 = *(var_40h);
0x0003acf4 bne fp, s0, 0x3acc0 |
| } while (fp != s0);
0x0003acf8 addu s1, s1, s6 | s1 += s6;
0x0003acfc move t2, zero | t2 = 0;
0x0003ad00 move s0, zero | s0 = 0;
0x0003ad04 b 0x3a740 | goto label_2;
| label_42:
0x0003ad08 sll s0, t3, 2 | s0 = t3 << 2;
| if (fp != 0) {
0x0003ad0c bnel fp, zero, 0x3ad18 |
0x0003ad10 sll t3, t3, 2 | t3 <<= 2;
0x0003ad14 b 0x3a8f4 | goto label_10;
| }
0x0003ad18 addiu s3, sp, 0x64 | s3 = sp + 0x64;
0x0003ad1c addu s0, fp, s0 | s0 = fp + s0;
| do {
0x0003ad20 lbu v0, (s3) | v0 = *(s3);
0x0003ad24 lw t9, -0x794c(gp) | t9 = sym.imp.__sprintf_chk
0x0003ad28 sw t3, 0x44(sp) | *(var_44h) = t3;
0x0003ad2c sw t1, 0x40(sp) | *(var_40h) = t1;
0x0003ad30 move a0, fp | a0 = fp;
0x0003ad34 sw v0, 0x10(sp) | *(var_10h) = v0;
0x0003ad38 move a3, s5 | a3 = s5;
0x0003ad3c addiu a2, zero, -1 | a2 = -1;
0x0003ad40 addiu a1, zero, 1 | a1 = 1;
0x0003ad44 addiu fp, fp, 4 | fp += 4;
0x0003ad48 jalr t9 | t9 ();
0x0003ad4c addiu s3, s3, 1 | s3++;
0x0003ad50 lw gp, 0x18(sp) | gp = *(var_18h);
0x0003ad54 lw t1, 0x40(sp) | t1 = *(var_40h);
0x0003ad58 lw t3, 0x44(sp) | t3 = *(var_44h);
0x0003ad5c bne fp, s0, 0x3ad20 |
| } while (fp != s0);
0x0003ad60 sll t3, t3, 2 | t3 <<= 2;
0x0003ad64 b 0x3a8f4 | goto label_10;
| label_21:
0x0003ad68 lw s2, -0x7d90(gp) | s2 = *((gp - 8036));
0x0003ad6c lw t9, -0x7870(gp) | t9 = sym.imp.iconv_open;
0x0003ad70 lw a0, -0x5ecc(s3) | a0 = *((s3 - 6067));
0x0003ad74 sb zero, (fp) | *(fp) = 0;
| /* str.utf_8 */
0x0003ad78 addiu a1, s2, -0x7dd0 | a1 = s2 + -0x7dd0;
0x0003ad7c jalr t9 | t9 ();
0x0003ad80 addiu s4, zero, -1 | s4 = -1;
0x0003ad84 lw gp, 0x18(sp) | gp = *(var_18h);
0x0003ad88 move s0, v0 | s0 = v0;
| if (v0 == s4) {
0x0003ad8c beq v0, s4, 0x3aec8 | goto label_43;
| }
0x0003ad90 lw a2, 0x24(sp) | a2 = *(var_24h);
0x0003ad94 subu v1, fp, a2 | __asm ("subu v1, fp, a2");
0x0003ad98 addiu v0, v1, 1 | v0 = v1 + 1;
0x0003ad9c sll a0, v0, 4 | a0 = v0 << 4;
0x0003ada0 ext a1, v0, 0, 0x1c | __asm ("ext a1, v0, 0, 0x1c");
0x0003ada4 sw v1, 0x5c(sp) | *(var_5ch) = v1;
0x0003ada8 sw a2, 0x54(sp) | *(var_54h) = a2;
0x0003adac sw a0, 0x60(sp) | *(var_60h) = a0;
| if (a1 != v0) {
0x0003adb0 bne a1, v0, 0x3af14 | goto label_44;
| }
0x0003adb4 lw t9, -0x7f28(gp) | t9 = sym.xmalloc;
0x0003adb8 bal 0x3cb1c | sym_xmalloc ();
0x0003adbc nop |
0x0003adc0 lw gp, 0x18(sp) | gp = *(var_18h);
0x0003adc4 move s1, v0 | s1 = v0;
0x0003adc8 addiu v0, sp, 0x60 | v0 = sp + 0x60;
0x0003adcc lw t9, -0x77dc(gp) | t9 = sym.imp.iconv;
0x0003add0 sw v0, 0x10(sp) | *(var_10h) = v0;
0x0003add4 addiu a3, sp, 0x58 | a3 = sp + 0x58;
0x0003add8 addiu a2, sp, 0x5c | a2 = sp + 0x5c;
0x0003addc addiu a1, sp, 0x54 | a1 = sp + 0x54;
0x0003ade0 move a0, s0 | a0 = s0;
0x0003ade4 sw s1, 0x58(sp) | *(var_58h) = s1;
0x0003ade8 jalr t9 | t9 ();
0x0003adec lw gp, 0x18(sp) | gp = *(var_18h);
| if (v0 != s4) {
0x0003adf0 bne v0, s4, 0x3ae68 | goto label_45;
| }
0x0003adf4 lw s4, -0x7fb4(gp) | s4 = *((gp - 8173));
0x0003adf8 lw v0, -0x4954(s4) | v0 = *((s4 - 4693));
0x0003adfc lw t9, -0x78c4(gp) | t9 = sym.imp.__errno_location;
| if (v0 == 0) {
0x0003ae00 beqz v0, 0x3ae88 | goto label_46;
| }
| label_13:
0x0003ae04 lw t9, -0x7f24(gp) | t9 = sym.xfree;
0x0003ae08 lw a0, 0x24(sp) | a0 = *(var_24h);
0x0003ae0c addiu s2, zero, 1 | s2 = 1;
0x0003ae10 sw s2, -0x4954(s4) | *((s4 - 4693)) = s2;
0x0003ae14 bal 0x3cd20 | sym_xfree ();
0x0003ae18 lw gp, 0x18(sp) | gp = *(var_18h);
0x0003ae1c lw t9, -0x7f24(gp) | t9 = sym.xfree;
0x0003ae20 move a0, s1 | a0 = s1;
0x0003ae24 bal 0x3cd20 | sym_xfree ();
0x0003ae28 lw gp, 0x18(sp) | gp = *(var_18h);
0x0003ae2c lw s1, 0x3c(sp) | s1 = *(var_3ch);
0x0003ae30 lw a2, 0xa0(sp) | a2 = *(arg_a0h);
0x0003ae34 lw t9, -0x7e2c(gp) | t9 = sym.utf8_to_native;
0x0003ae38 lw a1, 0x9c(sp) | a1 = *(arg_9ch);
0x0003ae3c lw a0, 0x2c(sp) | a0 = *(var_2ch);
0x0003ae40 sw zero, -0x4940(s1) | *((s1 - 4688)) = 0;
0x0003ae44 bal 0x3a610 | sym_utf8_to_native ();
| goto label_11;
0x0003ae48 lw gp, 0x18(sp) | gp = *(var_18h);
0x0003ae4c sw v0, 0x24(sp) | *(var_24h) = v0;
0x0003ae50 sw s2, -0x4940(s1) | *((s1 - 4688)) = s2;
| do {
0x0003ae54 lw t9, -0x77d8(gp) | t9 = sym.imp.iconv_close;
0x0003ae58 move a0, s0 | a0 = s0;
0x0003ae5c jalr t9 | t9 ();
0x0003ae60 lw gp, 0x18(sp) | gp = *(var_18h);
0x0003ae64 b 0x3a7a0 | goto label_12;
| label_45:
0x0003ae68 lw v0, 0x58(sp) | v0 = *(var_58h);
0x0003ae6c lw t9, -0x7f24(gp) | t9 = sym.xfree;
0x0003ae70 lw a0, 0x24(sp) | a0 = *(var_24h);
0x0003ae74 sb zero, (v0) | *(v0) = 0;
0x0003ae78 sw s1, 0x24(sp) | *(var_24h) = s1;
0x0003ae7c bal 0x3cd20 | sym_xfree ();
0x0003ae80 lw gp, 0x18(sp) | gp = *(var_18h);
0x0003ae84 b 0x3ae54 |
| } while (1);
| label_46:
0x0003ae88 lw s3, -0x5ecc(s3) | s3 = *((s3 - 6067));
0x0003ae8c jalr t9 | t9 ();
0x0003ae90 lw gp, 0x18(sp) | gp = *(var_18h);
0x0003ae94 lw t9, -0x787c(gp) | t9 = sym.imp.strerror;
0x0003ae98 lw a0, (v0) | a0 = *(v0);
0x0003ae9c jalr t9 | t9 ();
0x0003aea0 lw gp, 0x18(sp) | gp = *(var_18h);
0x0003aea4 move a3, v0 | a3 = v0;
0x0003aea8 move a2, s3 | a2 = s3;
0x0003aeac lw a0, -0x7d90(gp) | a0 = *((gp - 8036));
0x0003aeb0 lw t9, -0x7f30(gp) | t9 = sym.g10_log_info;
| /* str.utf_8 */
0x0003aeb4 addiu a1, s2, -0x7dd0 | a1 = s2 + -0x7dd0;
| /* str.conversion_from___s_to___s_failed:__s_n */
0x0003aeb8 addiu a0, a0, -0x7d50 | a0 += -0x7d50;
0x0003aebc bal 0x384ac | sym_g10_log_info ();
0x0003aec0 lw gp, 0x18(sp) | gp = *(var_18h);
0x0003aec4 b 0x3ae04 | goto label_13;
| label_43:
0x0003aec8 lw t9, -0x7fdc(gp) | t9 = *(gp);
0x0003aecc lw a0, -0x5ecc(s3) | a0 = *((s3 - 6067));
0x0003aed0 addiu a2, zero, 1 | a2 = 1;
| /* fcn.00039814 */
0x0003aed4 addiu t9, t9, -0x67ec | t9 += -0x67ec;
| /* str.utf_8 */
0x0003aed8 addiu a1, s2, -0x7dd0 | a1 = s2 + -0x7dd0;
0x0003aedc bal 0x39814 | fcn_00039814 ();
0x0003aee0 lw gp, 0x18(sp) | gp = *(var_18h);
0x0003aee4 lw t9, -0x7f24(gp) | t9 = sym.xfree;
0x0003aee8 lw a0, 0x24(sp) | a0 = *(var_24h);
0x0003aeec bal 0x3cd20 | sym_xfree ();
0x0003aef0 lw gp, 0x18(sp) | gp = *(var_18h);
0x0003aef4 lw a2, 0xa0(sp) | a2 = *(arg_a0h);
0x0003aef8 lw a1, 0x9c(sp) | a1 = *(arg_9ch);
0x0003aefc lw t9, -0x7e2c(gp) | t9 = sym.utf8_to_native;
0x0003af00 lw a0, 0x2c(sp) | a0 = *(var_2ch);
0x0003af04 bal 0x3a610 | sym_utf8_to_native ();
| goto label_11;
0x0003af08 sw v0, 0x24(sp) | *(var_24h) = v0;
0x0003af0c lw gp, 0x18(sp) | gp = *(var_18h);
0x0003af10 b 0x3a7a0 | goto label_12;
| label_44:
0x0003af14 lw a2, -0x7d90(gp) | a2 = *((gp - 8036));
0x0003af18 lw a0, -0x7d90(gp) | a0 = *((gp - 8036));
0x0003af1c lw t9, -0x7f18(gp) | t9 = sym.g10_log_bug0;
| /* str.utf8_to_native */
0x0003af20 addiu a2, a2, -0x7c90 | a2 += -0x7c90;
0x0003af24 addiu a1, zero, 0x3f0 | a1 = 0x3f0;
| /* str..._.._gnupg_1.4.7_util_strgutil.c */
0x0003af28 addiu a0, a0, -0x7d24 | a0 += -0x7d24;
0x0003af2c bal 0x38750 | sym_g10_log_bug0 ();
| label_22:
0x0003af30 lw t9, -0x7834(gp) | t9 = sym.imp.__stack_chk_fail;
0x0003af34 jalr t9 | t9 ();
0x0003af38 nop |
| }
; assembly | /* r2dec pseudo code output */
| /* /logs/firmware/unblob_extracted/firmware_extract/4325012-58052244.squashfs_v4_le_extract/usr/bin/gpgv @ 0x21b8c */
| #include <stdint.h>
|
; (fcn) sym.write_status_text () | void write_status_text () {
| label_3:
0x00021b8c lui gp, 4 |
0x00021b90 addiu gp, gp, 0x5a4 |
0x00021b94 addu gp, gp, t9 | gp += t9;
0x00021b98 addiu sp, sp, -0x30 |
0x00021b9c sw s1, 0x1c(sp) | *(var_1ch) = s1;
0x00021ba0 lw s1, -0x7fb4(gp) | s1 = *((gp - 8173));
0x00021ba4 sw gp, 0x10(sp) | *(var_10h) = gp;
0x00021ba8 sw ra, 0x2c(sp) | *(var_2ch) = ra;
0x00021bac lw a3, -0x4c9c(s1) | a3 = *((s1 - 4903));
0x00021bb0 sw s4, 0x28(sp) | *(var_28h) = s4;
0x00021bb4 sw s3, 0x24(sp) | *(var_24h) = s3;
0x00021bb8 sw s2, 0x20(sp) | *(var_20h) = s2;
0x00021bbc sw s0, 0x18(sp) | *(var_18h) = s0;
0x00021bc0 lw v0, -0x7ca4(gp) | v0 = *(gp);
| if (a3 == 0) {
0x00021bc4 beqz a3, 0x21c80 | goto label_4;
| }
0x00021bc8 move s2, a0 | s2 = a0;
0x00021bcc lw v0, (v0) | v0 = *(v0);
0x00021bd0 move s0, a1 | s0 = a1;
| if (v0 != 0) {
0x00021bd4 beqz v0, 0x21c00 |
0x00021bd8 addiu v0, a0, -0x24 | v0 = a0 + -0x24;
0x00021bdc sltiu v1, v0, 0x22 | v1 = (v0 < 0x22) ? 1 : 0;
0x00021be0 sll v1, v0, 2 | v1 = v0 << 2;
| if (v1 == 0) {
0x00021be4 beqz v1, 0x21c80 | goto label_4;
| }
0x00021be8 lw v0, -0x7fdc(gp) | v0 = *(gp);
0x00021bec addiu v0, v0, 0x6b50 | v0 += 0x6b50;
0x00021bf0 lwx v0, v1(v0) | __asm ("lwx v0, v1(v0)");
0x00021bf4 addu v0, v0, gp | v0 += gp;
0x00021bf8 jr v0 | v0 ();
0x00021bfc nop |
| }
0x00021c00 lw a0, -0x7fdc(gp) | a0 = *(gp);
0x00021c04 lw t9, -0x7848(gp) | t9 = sym.imp.fwrite;
0x00021c08 addiu a2, zero, 9 | a2 = 9;
0x00021c0c addiu a1, zero, 1 | a1 = 1;
| /* str._GNUPG:__ */
0x00021c10 addiu a0, a0, 0x6b44 | a0 += 0x6b44;
0x00021c14 jalr t9 | t9 ();
0x00021c18 lw gp, 0x10(sp) | gp = *(var_10h);
0x00021c1c lw t9, -0x7bd4(gp) | t9 = *(gp);
| /* fcn.00021598 */
0x00021c20 addiu t9, t9, 0x1598 | t9 += 0x1598;
0x00021c24 move a0, s2 | a0 = s2;
0x00021c28 bal 0x21598 | fcn_00021598 ();
0x00021c2c lw gp, 0x10(sp) | gp = *(var_10h);
0x00021c30 lw a1, -0x4c9c(s1) | a1 = *((s1 - 4903));
0x00021c34 lw t9, -0x793c(gp) | t9 = sym.imp.fputs;
0x00021c38 move a0, v0 | a0 = v0;
0x00021c3c jalr t9 | t9 ();
0x00021c40 lw gp, 0x10(sp) | gp = *(var_10h);
0x00021c44 bnez s0, 0x21ca0 |
| while (v0 == 0) {
0x00021c48 lw t9, -0x7840(gp) | t9 = sym.imp._IO_putc;
| label_0:
0x00021c4c lw a1, -0x4c9c(s1) | a1 = *((s1 - 4903));
0x00021c50 addiu a0, zero, 0xa | a0 = 0xa;
0x00021c54 jalr t9 | t9 ();
0x00021c58 lw gp, 0x10(sp) | gp = *(var_10h);
0x00021c5c lw t9, -0x77fc(gp) | t9 = sym.imp.fflush;
0x00021c60 lw a0, -0x4c9c(s1) | a0 = *((s1 - 4903));
0x00021c64 jalr t9 | t9 ();
0x00021c68 lw gp, 0x10(sp) | gp = *(var_10h);
| if (v0 != 0) {
0x00021c6c beqz v0, 0x21c80 |
0x00021c70 lw v0, -0x7fc8(gp) | v0 = *(gp);
0x00021c74 lw v0, 0x214(v0) | v0 = *(v0);
0x00021c78 lw t9, -0x7f90(gp) | t9 = sym.g10_exit;
| if (v0 != 0) {
0x00021c7c bnez v0, 0x21d44 | goto label_5;
| }
| }
| label_4:
0x00021c80 lw ra, 0x2c(sp) | ra = *(var_2ch);
0x00021c84 lw s4, 0x28(sp) | s4 = *(var_28h);
0x00021c88 lw s3, 0x24(sp) | s3 = *(var_24h);
0x00021c8c lw s2, 0x20(sp) | s2 = *(var_20h);
0x00021c90 lw s1, 0x1c(sp) | s1 = *(var_1ch);
0x00021c94 lw s0, 0x18(sp) | s0 = *(var_18h);
0x00021c98 addiu sp, sp, 0x30 |
0x00021c9c jr ra | return v1;
0x00021ca0 lw t9, -0x7840(gp) | t9 = sym.imp._IO_putc;
0x00021ca4 lw a1, -0x4c9c(s1) | a1 = *((s1 - 4903));
0x00021ca8 addiu a0, zero, 0x20 | a0 = 0x20;
0x00021cac jalr t9 | t9 ();
0x00021cb0 lb v0, (s0) | v0 = *(s0);
0x00021cb4 lw gp, 0x10(sp) | gp = *(var_10h);
0x00021cb8 beqz v0, 0x21c48 |
| }
0x00021cbc lw s3, -0x7fdc(gp) | s3 = *(gp);
0x00021cc0 lw s4, -0x7fdc(gp) | s4 = *(gp);
0x00021cc4 addiu s2, zero, 0xa | s2 = 0xa;
| /* esilref: '\r' */
0x00021cc8 addiu s3, s3, 0x4c28 | s3 += 0x4c28;
| /* esilref: '\n' */
0x00021ccc addiu s4, s4, 0x4c24 | s4 += 0x4c24;
0x00021cd0 b 0x21cf0 | goto label_6;
| label_1:
0x00021cd4 lbu a0, (s0) | a0 = *(s0);
0x00021cd8 jalr t9 | t9 ();
0x00021cdc lw gp, 0x10(sp) | gp = *(var_10h);
| label_2:
0x00021ce0 addiu s0, s0, 1 | s0++;
0x00021ce4 lb v0, (s0) | v0 = *(s0);
0x00021ce8 lw t9, -0x7840(gp) | t9 = sym.imp._IO_putc;
| if (v0 == 0) {
0x00021cec beqz v0, 0x21c4c | goto label_0;
| }
| label_6:
0x00021cf0 lw a1, -0x4c9c(s1) | a1 = *((s1 - 4903));
| if (v0 == s2) {
0x00021cf4 beq v0, s2, 0x21d24 | goto label_7;
| }
0x00021cf8 addiu v1, zero, 0xd | v1 = 0xd;
0x00021cfc lw t9, -0x7840(gp) | t9 = sym.imp._IO_putc;
| if (v0 != v1) {
0x00021d00 bne v0, v1, 0x21cd4 | goto label_1;
| }
0x00021d04 lw t9, -0x7848(gp) | t9 = sym.imp.fwrite;
0x00021d08 move a3, a1 | a3 = a1;
0x00021d0c addiu a2, zero, 2 | a2 = 2;
0x00021d10 addiu a1, zero, 1 | a1 = 1;
0x00021d14 move a0, s3 | a0 = s3;
0x00021d18 jalr t9 | t9 ();
0x00021d1c lw gp, 0x10(sp) | gp = *(var_10h);
0x00021d20 b 0x21ce0 | goto label_2;
| label_7:
0x00021d24 lw t9, -0x7848(gp) | t9 = sym.imp.fwrite;
0x00021d28 move a3, a1 | a3 = a1;
0x00021d2c addiu a2, zero, 2 | a2 = 2;
0x00021d30 addiu a1, zero, 1 | a1 = 1;
0x00021d34 move a0, s4 | a0 = s4;
0x00021d38 jalr t9 | t9 ();
0x00021d3c lw gp, 0x10(sp) | gp = *(var_10h);
0x00021d40 b 0x21ce0 | goto label_2;
| label_5:
0x00021d44 move a0, zero | a0 = 0;
0x00021d48 bal 0x62b4 | sym_g10_exit ();
0x00021d4c lui gp, 4 |
0x00021d50 addiu gp, gp, 0x3e4 |
0x00021d54 addu gp, gp, t9 | gp += t9;
0x00021d58 addiu sp, sp, -0x68 |
0x00021d5c addiu v0, zero, 0xa | v0 = 0xa;
0x00021d60 sw s0, 0x5c(sp) | *(var_5ch) = s0;
0x00021d64 lw s0, -0x781c(gp) | s0 = *((gp - 7687));
0x00021d68 sw gp, 0x18(sp) | *(var_18h_2) = gp;
0x00021d6c sw s1, 0x60(sp) | *(var_60h) = s1;
0x00021d70 lw v1, (s0) | v1 = *(s0);
0x00021d74 sw ra, 0x64(sp) | *(var_64h) = ra;
0x00021d78 sw v1, 0x54(sp) | *(var_54h) = v1;
0x00021d7c lw t9, -0x794c(gp) | t9 = sym.imp.__sprintf_chk
0x00021d80 addiu s1, sp, 0x20 | s1 = sp + 0x20;
| if (a1 == v0) {
0x00021d84 beq a1, v0, 0x21de0 | goto label_8;
| }
0x00021d88 lw a3, -0x7fdc(gp) | a3 = *(gp);
0x00021d8c sw a1, 0x14(sp) | *(var_14h) = a1;
0x00021d90 sw a0, 0x10(sp) | *(var_10h_2) = a0;
| /* str._.20s__c_0_0 */
0x00021d94 addiu a3, a3, 0x6be8 | a3 += 0x6be8;
0x00021d98 addiu a2, zero, 0x32 | a2 = 0x32;
0x00021d9c addiu a1, zero, 1 | a1 = 1;
0x00021da0 move a0, s1 | a0 = s1;
0x00021da4 jalr t9 | t9 ();
0x00021da8 lw gp, 0x18(sp) | gp = *(var_18h_2);
| do {
0x00021dac lw t9, -0x7d80(gp) | t9 = sym.write_status_text;
0x00021db0 move a1, s1 | a1 = s1;
0x00021db4 addiu a0, zero, 0x32 | a0 = 0x32;
0x00021db8 bal 0x21b8c | sym_write_status_text ();
| goto label_3;
0x00021dbc lw v1, 0x54(sp) | v1 = *(var_54h);
0x00021dc0 lw v0, (s0) | v0 = *(s0);
0x00021dc4 lw gp, 0x18(sp) | gp = *(var_18h_2);
| if (v1 != v0) {
0x00021dc8 bne v1, v0, 0x21e04 | goto label_9;
| }
0x00021dcc lw ra, 0x64(sp) | ra = *(var_64h);
0x00021dd0 lw s1, 0x60(sp) | s1 = *(var_60h);
0x00021dd4 lw s0, 0x5c(sp) | s0 = *(var_5ch);
0x00021dd8 addiu sp, sp, 0x68 |
0x00021ddc jr ra | return v1;
| label_8:
0x00021de0 lw a3, -0x7fdc(gp) | a3 = *(gp);
0x00021de4 sw a0, 0x10(sp) | *(var_10h_2) = a0;
| /* str._.20s_X_100_100 */
0x00021de8 addiu a3, a3, 0x6bd8 | a3 += 0x6bd8;
0x00021dec addiu a2, zero, 0x32 | a2 = 0x32;
0x00021df0 addiu a1, zero, 1 | a1 = 1;
0x00021df4 move a0, s1 | a0 = s1;
0x00021df8 jalr t9 | t9 ();
0x00021dfc lw gp, 0x18(sp) | gp = *(var_18h_2);
0x00021e00 b 0x21dac |
| } while (1);
| label_9:
0x00021e04 lw t9, -0x7834(gp) | t9 = sym.imp.__stack_chk_fail;
0x00021e08 jalr t9 | t9 ();
0x00021e0c nop |
| }
; assembly | /* r2dec pseudo code output */
| /* /logs/firmware/unblob_extracted/firmware_extract/4325012-58052244.squashfs_v4_le_extract/usr/bin/gpgv @ 0x22334 */
| #include <stdint.h>
|
; (fcn) sym.write_status_text_and_buffer () | void write_status_text_and_buffer () {
0x00022334 lui gp, 4 |
0x00022338 addiu gp, gp, -0x204 |
0x0002233c addu gp, gp, t9 | gp += t9;
0x00022340 addiu sp, sp, -0x50 |
0x00022344 sw s1, 0x2c(sp) | *(var_2ch_2) = s1;
0x00022348 lw s1, -0x7fb4(gp) | s1 = *((gp - 8173));
0x0002234c sw gp, 0x10(sp) | *(var_10h_3) = gp;
0x00022350 sw fp, 0x48(sp) | *(var_10h_2) = fp;
0x00022354 lw v1, -0x4c9c(s1) | v1 = *((s1 - 4903));
0x00022358 sw ra, 0x4c(sp) | *(var_4ch) = ra;
0x0002235c sw s7, 0x44(sp) | *(var_44h) = s7;
0x00022360 sw s6, 0x40(sp) | *(var_40h) = s6;
0x00022364 sw s5, 0x3c(sp) | *(var_3ch) = s5;
0x00022368 sw s4, 0x38(sp) | *(var_38h) = s4;
0x0002236c sw s3, 0x34(sp) | *(var_34h_2) = s3;
0x00022370 sw s2, 0x30(sp) | *(var_30h) = s2;
0x00022374 sw s0, 0x28(sp) | *(var_28h_2) = s0;
0x00022378 sw a1, 0x54(sp) | *(var_1ch_2) = a1;
0x0002237c lw fp, 0x60(sp) | fp = *(var_28h);
| if (v1 == 0) {
0x00022380 beqz v1, 0x22440 | goto label_12;
| }
0x00022384 lw v0, -0x7ca4(gp) | v0 = *(gp);
0x00022388 move s5, a2 | s5 = a2;
0x0002238c lw v0, (v0) | v0 = *(v0);
0x00022390 move s7, a3 | s7 = a3;
| if (v0 == 0) {
0x00022394 beqz v0, 0x22470 | goto label_13;
| }
0x00022398 addiu v0, a0, -0x24 | v0 = a0 + -0x24;
0x0002239c sltiu a1, v0, 0x22 | a1 = (v0 < 0x22) ? 1 : 0;
0x000223a0 sll a1, v0, 2 | a1 = v0 << 2;
| if (a1 == 0) {
0x000223a4 beqz a1, 0x22440 | goto label_12;
| }
0x000223a8 lw v0, -0x7fdc(gp) | v0 = *(gp);
0x000223ac addiu v0, v0, 0x6c88 | v0 += 0x6c88;
0x000223b0 lwx v0, a1(v0) | __asm ("lwx v0, a1(v0)");
0x000223b4 addu v0, v0, gp | v0 += gp;
0x000223b8 jr v0 | v0 ();
0x000223bc nop |
| label_0:
0x000223c0 move t4, zero | t4 = 0;
| if (s0 != 0) {
0x000223c4 bnez s0, 0x225f0 | goto label_14;
| }
| label_9:
0x000223c8 move s7, v0 | s7 = v0;
| if (s5 == v1) {
0x000223cc beq s5, v1, 0x225d8 | goto label_15;
| }
0x000223d0 move s6, v1 | s6 = v1;
0x000223d4 lw t9, -0x7848(gp) | t9 = sym.imp.fwrite;
| label_6:
0x000223d8 sw t4, 0x18(sp) | *(var_18h_3) = t4;
0x000223dc move a3, a1 | a3 = a1;
0x000223e0 addiu a2, zero, 1 | a2 = 1;
0x000223e4 subu a1, s6, s5 | __asm ("subu a1, s6, s5");
0x000223e8 move a0, s5 | a0 = s5;
0x000223ec jalr t9 | t9 ();
0x000223f0 lw gp, 0x10(sp) | gp = *(var_10h_3);
0x000223f4 lw a1, -0x4c9c(s1) | a1 = *((s1 - 4903));
0x000223f8 lw t4, 0x18(sp) | t4 = *(var_18h_3);
| if (s0 != 0) {
0x000223fc bnez s0, 0x22598 | goto label_16;
| }
| if (t4 == 0) {
| label_7:
0x00022400 beqz t4, 0x22578 | goto label_17;
| }
0x00022404 nop |
0x00022408 lw t9, -0x7840(gp) | t9 = sym.imp._IO_putc;
| if (s7 != 0) {
0x0002240c bnez s7, 0x225fc | goto label_18;
| }
| do {
| label_5:
0x00022410 addiu a0, zero, 0xa | a0 = 0xa;
0x00022414 jalr t9 | t9 ();
0x00022418 lw gp, 0x10(sp) | gp = *(var_10h_3);
0x0002241c lw t9, -0x77fc(gp) | t9 = sym.imp.fflush;
0x00022420 lw a0, -0x4c9c(s1) | a0 = *((s1 - 4903));
0x00022424 jalr t9 | t9 ();
0x00022428 lw gp, 0x10(sp) | gp = *(var_10h_3);
| if (v0 != 0) {
0x0002242c beqz v0, 0x22440 |
0x00022430 lw v0, -0x7fc8(gp) | v0 = *(gp);
0x00022434 lw v0, 0x214(v0) | v0 = *(v0);
0x00022438 lw t9, -0x7f90(gp) | t9 = sym.g10_exit;
| if (v0 != 0) {
0x0002243c bnez v0, 0x22618 | goto label_19;
| }
| }
| label_12:
0x00022440 lw ra, 0x4c(sp) | ra = *(var_4ch);
0x00022444 lw fp, 0x48(sp) | fp = *(var_10h_2);
0x00022448 lw s7, 0x44(sp) | s7 = *(var_44h);
0x0002244c lw s6, 0x40(sp) | s6 = *(var_40h);
0x00022450 lw s5, 0x3c(sp) | s5 = *(var_3ch);
0x00022454 lw s4, 0x38(sp) | s4 = *(var_38h);
0x00022458 lw s3, 0x34(sp) | s3 = *(var_34h_2);
0x0002245c lw s2, 0x30(sp) | s2 = *(var_30h);
0x00022460 lw s1, 0x2c(sp) | s1 = *(var_2ch_2);
0x00022464 lw s0, 0x28(sp) | s0 = *(var_28h_2);
0x00022468 addiu sp, sp, 0x50 |
0x0002246c jr ra | return v1;
| label_13:
0x00022470 addiu v0, zero, -1 | v0 = -1;
0x00022474 addiu s4, zero, 0x1f | s4 = 0x1f;
| if (fp == v0) {
0x00022478 beq fp, v0, 0x22570 | goto label_20;
| }
0x0002247c addiu s4, zero, 0x20 | s4 = 0x20;
| label_3:
0x00022480 lw t9, -0x7bd4(gp) | t9 = *(gp);
| /* fcn.00021598 */
0x00022484 addiu t9, t9, 0x1598 | t9 += 0x1598;
0x00022488 addiu s0, zero, 1 | s0 = 1;
0x0002248c bal 0x21598 | fcn_00021598 ();
0x00022490 lw gp, 0x10(sp) | gp = *(var_10h_3);
0x00022494 sw v0, 0x1c(sp) | *(var_1ch_3) = v0;
0x00022498 lw s2, -0x7fdc(gp) | s2 = *(gp);
0x0002249c lw a0, -0x7fdc(gp) | a0 = *(gp);
| /* str.___02X */
0x000224a0 addiu v0, s2, 0x6c80 | v0 = s2 + 0x6c80;
0x000224a4 sw a0, 0x20(sp) | *(var_20h_3) = a0;
0x000224a8 sw v0, 0x24(sp) | *(var_24h_3) = v0;
| label_11:
0x000224ac lw v0, 0x20(sp) | v0 = *(var_20h_3);
0x000224b0 lw t9, -0x7920(gp) | t9 = sym.imp.__fprintf_chk;
0x000224b4 lw a3, 0x1c(sp) | a3 = *(var_1ch_3);
0x000224b8 addiu a1, zero, 1 | a1 = 1;
0x000224bc addiu a2, v0, 0x6c70 | a2 = v0 + 0x6c70;
0x000224c0 move a0, v1 | a0 = v1;
0x000224c4 jalr t9 | t9 ();
0x000224c8 lw gp, 0x10(sp) | gp = *(var_10h_3);
0x000224cc lw a1, -0x4c9c(s1) | a1 = *((s1 - 4903));
| if (s0 == 0) {
0x000224d0 beqz s0, 0x225d0 | goto label_21;
| }
0x000224d4 lw v0, 0x54(sp) | v0 = *(var_1ch_2);
0x000224d8 lw t9, -0x793c(gp) | t9 = sym.imp.fputs;
| if (v0 == 0) {
0x000224dc beqz v0, 0x225d0 | goto label_21;
| }
0x000224e0 move a0, v0 | a0 = v0;
0x000224e4 jalr t9 | t9 ();
0x000224e8 lw gp, 0x10(sp) | gp = *(var_10h_3);
0x000224ec lw t9, -0x78a0(gp) | t9 = sym.imp.strlen;
0x000224f0 lw a0, 0x54(sp) | a0 = *(var_1ch_2);
0x000224f4 jalr t9 | t9 ();
0x000224f8 lw gp, 0x10(sp) | gp = *(var_10h_3);
0x000224fc lw a1, -0x4c9c(s1) | a1 = *((s1 - 4903));
0x00022500 move s2, v0 | s2 = v0;
| label_8:
0x00022504 lw t9, -0x7840(gp) | t9 = sym.imp._IO_putc;
0x00022508 beqz s7, 0x22410 |
| } while (s7 == 0);
0x0002250c addiu s3, zero, 0x25 | s3 = 0x25;
| label_4:
0x00022510 move s6, s5 | s6 = s5;
0x00022514 b 0x2255c | goto label_22;
| label_1:
0x00022518 slt v1, s4, v0 | v1 = (s4 < v0) ? 1 : 0;
0x0002251c addiu s0, zero, 1 | s0 = 1;
| if (v1 != 0) {
0x00022520 beqz v1, 0x2252c |
0x00022524 xori v0, v0, 0x7f | v0 ^= 0x7f;
0x00022528 sltiu s0, v0, 1 | s0 = (v0 < 1) ? 1 : 0;
| }
| label_2:
0x0002252c addiu v0, s7, -1 | v0 = s7 + -1;
| if (fp != 0) {
0x00022530 beqz fp, 0x22544 |
0x00022534 addiu s2, s2, 1 | s2++;
0x00022538 sltu v0, fp, s2 | v0 = (fp < s2) ? 1 : 0;
0x0002253c addiu v0, s7, -1 | v0 = s7 + -1;
| if (v0 != 0) {
0x00022540 bnez v0, 0x225e0 | goto label_23;
| }
| }
0x00022544 addiu v1, s6, 1 | v1 = s6 + 1;
| if (v0 == 0) {
0x00022548 beqz v0, 0x223c0 | goto label_0;
| }
0x0002254c move t4, zero | t4 = 0;
| if (s0 != 0) {
0x00022550 bnez s0, 0x22588 | goto label_10;
| }
0x00022554 move s7, v0 | s7 = v0;
0x00022558 move s6, v1 | s6 = v1;
| label_22:
0x0002255c lb v0, (s6) | v0 = *(s6);
0x00022560 andi v0, v0, 0xff | v0 &= 0xff;
| if (v0 != s3) {
0x00022564 bne v0, s3, 0x22518 | goto label_1;
| }
0x00022568 addiu s0, zero, 1 | s0 = 1;
0x0002256c b 0x2252c | goto label_2;
| label_20:
0x00022570 move fp, zero | fp = 0;
0x00022574 b 0x22480 | goto label_3;
| label_17:
0x00022578 move s5, s6 | s5 = s6;
| if (s7 != 0) {
0x0002257c bnez s7, 0x22510 | goto label_4;
| }
0x00022580 lw t9, -0x7840(gp) | t9 = sym.imp._IO_putc;
0x00022584 b 0x22410 | goto label_5;
| label_10:
0x00022588 addiu s0, zero, 1 | s0 = 1;
| if (s5 != s6) {
0x0002258c beq s5, s6, 0x2259c |
0x00022590 lw t9, -0x7848(gp) | t9 = sym.imp.fwrite;
0x00022594 b 0x223d8 | goto label_6;
| label_16:
0x00022598 move s5, s6 | s5 = s6;
| }
0x0002259c lw t9, -0x7920(gp) | t9 = sym.imp.__fprintf_chk;
0x000225a0 lbu a3, (s5) | a3 = *(s5);
0x000225a4 lw a2, 0x24(sp) | a2 = *(var_24h_3);
0x000225a8 sw t4, 0x18(sp) | *(var_18h_3) = t4;
0x000225ac move a0, a1 | a0 = a1;
0x000225b0 addiu a1, zero, 1 | a1 = 1;
0x000225b4 jalr t9 | t9 ();
0x000225b8 addiu s6, s5, 1 | s6 = s5 + 1;
0x000225bc lw gp, 0x10(sp) | gp = *(var_10h_3);
0x000225c0 lw a1, -0x4c9c(s1) | a1 = *((s1 - 4903));
0x000225c4 addiu s7, s7, -1 | s7 += -1;
0x000225c8 lw t4, 0x18(sp) | t4 = *(var_18h_3);
0x000225cc b 0x22400 | goto label_7;
| label_21:
0x000225d0 move s2, zero | s2 = 0;
0x000225d4 b 0x22504 | goto label_8;
| label_15:
0x000225d8 move s6, s5 | s6 = s5;
0x000225dc b 0x22400 | goto label_7;
| label_23:
0x000225e0 move v1, s6 | v1 = s6;
0x000225e4 move v0, s7 | v0 = s7;
0x000225e8 addiu t4, zero, 1 | t4 = 1;
| if (s0 == 0) {
0x000225ec beqz s0, 0x223c8 | goto label_9;
| }
| label_14:
0x000225f0 addiu s6, v1, -1 | s6 = v1 + -1;
0x000225f4 addiu s7, v0, 1 | s7 = v0 + 1;
0x000225f8 b 0x22588 | goto label_10;
| label_18:
0x000225fc addiu a0, zero, 0xa | a0 = 0xa;
0x00022600 jalr t9 | t9 ();
0x00022604 move s5, s6 | s5 = s6;
0x00022608 lw gp, 0x10(sp) | gp = *(var_10h_3);
0x0002260c lw v1, -0x4c9c(s1) | v1 = *((s1 - 4903));
0x00022610 move s0, zero | s0 = 0;
0x00022614 b 0x224ac | goto label_11;
| label_19:
0x00022618 move a0, zero | a0 = 0;
0x0002261c bal 0x62b4 | return sym_g10_exit ();
| }
[*] Function sprintf used 48 times gpgv