[*] Binary protection state of gpgv

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


[*] Function strcpy tear down of gpgv

    ; assembly                               | /* r2dec pseudo code output */
                                             | /* /logs/firmware/unblob_extracted/firmware_extract/4325012-58052244.squashfs_v4_le_extract/usr/bin/gpgv @ 0x12b44 */
                                             | #include <stdint.h>
                                             |  
    ; (fcn) fcn.00012b44 ()                  | void fcn_00012b44 () {
    0x00012b44 lui gp, 5                     |     
    0x00012b48 addiu gp, gp, -0xa14          |     
    0x00012b4c addu gp, gp, t9               |     gp += t9;
    0x00012b50 lhu v0, (a0)                  |     v0 = *(a0);
    0x00012b54 andi a2, v0, 0x400            |     a2 = v0 & aav.0x00000400;
    0x00012b58 lw a1, 0x28(a0)               |     a1 = *((a0 + 10));
                                             |     if (a2 != 0) {
    0x00012b5c beqz a2, 0x12b70              |         
                                             |         if (a1 == 0) {
    0x00012b60 beqz a1, 0x12d30              |             goto label_0;
                                             |         }
    0x00012b64 nop                           |         
    0x00012b68 lw v0, 8(a1)                  |         v0 = *((a1 + 2));
    0x00012b6c jr ra                         |         return v0;
                                             |     }
    0x00012b70 addiu sp, sp, -0x30           |     
    0x00012b74 sw gp, 0x10(sp)               |     *(var_10h) = gp;
    0x00012b78 sw ra, 0x2c(sp)               |     *(var_2ch) = ra;
    0x00012b7c sw s3, 0x28(sp)               |     *(var_28h_2) = s3;
    0x00012b80 sw s2, 0x24(sp)               |     *(var_24h) = s2;
    0x00012b84 sw s1, 0x20(sp)               |     *(var_20h) = s1;
    0x00012b88 sw s0, 0x1c(sp)               |     *(var_1ch) = s0;
    0x00012b8c addiu v1, zero, 1             |     v1 = 1;
                                             |     if (a1 != 0) {
    0x00012b90 bnez a1, 0x12d04              |         goto label_1;
                                             |     }
    0x00012b94 lw t9, -0x7cc4(gp)            |     t9 = sym.sig_to_notation;
    0x00012b98 ins v0, v1, 0xa, 1            |     __asm ("ins v0, v1, 0xa, 1");
    0x00012b9c sh v0, (a0)                   |     *(a0) = v0;
    0x00012ba0 move s1, a0                   |     s1 = a0;
    0x00012ba4 bal 0x7a7c                    |     sym_sig_to_notation ();
    0x00012ba8 move s3, v0                   |     s3 = v0;
    0x00012bac lw gp, 0x10(sp)               |     gp = *(var_10h);
                                             |     if (v0 == 0) {
    0x00012bb0 beqz v0, 0x12bf8              |         goto label_2;
                                             |     }
    0x00012bb4 lw s2, -0x7fdc(gp)            |     s2 = *(gp);
    0x00012bb8 move s0, v0                   |     s0 = v0;
                                             |     /* str.pka_address_gnupg.org */
    0x00012bbc addiu s2, s2, 0x4110          |     s2 += 0x4110;
    0x00012bc0 lw t9, -0x77e0(gp)            |     t9 = sym.imp.strcmp;
                                             |     do {
    0x00012bc4 lw a0, (s0)                   |         a0 = *(s0);
    0x00012bc8 move a1, s2                   |         a1 = s2;
    0x00012bcc jalr t9                       |         t9 ();
    0x00012bd0 lw gp, 0x10(sp)               |         gp = *(var_10h);
                                             |         if (v0 == 0) {
    0x00012bd4 bnez v0, 0x12bec              |             
    0x00012bd8 lw t9, -0x7cc0(gp)            |             t9 = sym.is_valid_mailbox;
    0x00012bdc lw a0, 4(s0)                  |             a0 = *((s0 + 1));
    0x00012be0 bal 0x18320                   |             sym_is_valid_mailbox ();
    0x00012be4 lw gp, 0x10(sp)               |             gp = *(var_10h);
                                             |             if (v0 != 0) {
    0x00012be8 bnez v0, 0x12c28              |                 goto label_3;
                                             |             }
                                             |         }
    0x00012bec lw s0, 0x18(s0)               |         s0 = *((s0 + 6));
    0x00012bf0 lw t9, -0x77e0(gp)            |         t9 = sym.imp.strcmp;
    0x00012bf4 bnez s0, 0x12bc4              |         
                                             |     } while (s0 != 0);
                                             | label_2:
    0x00012bf8 lw t9, -0x7cbc(gp)            |     t9 = sym.free_notation;
    0x00012bfc move a0, s3                   |     a0 = s3;
    0x00012c00 bal 0x7d70                    |     sym_free_notation ();
    0x00012c04 sw zero, 0x28(s1)             |     *((s1 + 10)) = 0;
    0x00012c08 move v0, zero                 |     v0 = 0;
                                             |     do {
    0x00012c0c lw ra, 0x2c(sp)               |         ra = *(var_2ch);
    0x00012c10 lw s3, 0x28(sp)               |         s3 = *(var_28h_2);
    0x00012c14 lw s2, 0x24(sp)               |         s2 = *(var_24h);
    0x00012c18 lw s1, 0x20(sp)               |         s1 = *(var_20h);
    0x00012c1c lw s0, 0x1c(sp)               |         s0 = *(var_1ch);
    0x00012c20 addiu sp, sp, 0x30            |         
    0x00012c24 jr ra                         |         return v0;
                                             | label_3:
    0x00012c28 lw t9, -0x78a0(gp)            |         t9 = sym.imp.strlen;
    0x00012c2c lw a0, 4(s0)                  |         a0 = *((s0 + 1));
    0x00012c30 jalr t9                       |         t9 ();
    0x00012c34 lw gp, 0x10(sp)               |         gp = *(var_10h);
    0x00012c38 lw t9, -0x7f28(gp)            |         t9 = sym.xmalloc;
    0x00012c3c addiu a0, v0, 0x24            |         a0 = v0 + 0x24;
    0x00012c40 jalr t9                       |         t9 ();
    0x00012c44 lw gp, 0x10(sp)               |         gp = *(var_10h);
    0x00012c48 lw a1, 4(s0)                  |         a1 = *((s0 + 1));
    0x00012c4c addiu s0, v0, 0x20            |         s0 = v0 + 0x20;
    0x00012c50 lw t9, -0x7854(gp)            |         t9 = sym.imp.strcpy
    0x00012c54 move a0, s0                   |         a0 = s0;
    0x00012c58 sw zero, (v0)                 |         *(v0) = 0;
    0x00012c5c sw zero, 4(v0)                |         *((v0 + 1)) = 0;
    0x00012c60 sw zero, 8(v0)                |         *((v0 + 2)) = 0;
    0x00012c64 move s2, v0                   |         s2 = v0;
    0x00012c68 jalr t9                       |         t9 ();
    0x00012c6c lw gp, 0x10(sp)               |         gp = *(var_10h);
    0x00012c70 lw t9, -0x7cbc(gp)            |         t9 = sym.free_notation;
    0x00012c74 move a0, s3                   |         a0 = s3;
    0x00012c78 bal 0x7d70                    |         sym_free_notation ();
    0x00012c7c lw gp, 0x10(sp)               |         gp = *(var_10h);
    0x00012c80 sw s2, 0x28(s1)               |         *((s1 + 10)) = s2;
    0x00012c84 addiu a1, s2, 0xc             |         a1 = s2 + 0xc;
    0x00012c88 lw t9, -0x7cb8(gp)            |         t9 = sym.get_pka_info;
    0x00012c8c move a0, s0                   |         a0 = s0;
    0x00012c90 jalr t9                       |         t9 ();
    0x00012c94 lw gp, 0x10(sp)               |         gp = *(var_10h);
                                             |         if (v0 != 0) {
    0x00012c98 beqz v0, 0x12cdc              |             
    0x00012c9c lw v1, 0x28(s1)               |             v1 = *((s1 + 10));
    0x00012ca0 addiu a0, zero, 1             |             a0 = 1;
    0x00012ca4 sw a0, (v1)                   |             *(v1) = a0;
    0x00012ca8 lb a0, (v0)                   |             a0 = *(v0);
    0x00012cac lw ra, 0x2c(sp)               |             ra = *(var_2ch);
                                             |             if (a0 != 0) {
    0x00012cb0 beqz a0, 0x12cd0              |                 
    0x00012cb4 lw s3, 0x28(sp)               |                 s3 = *(var_28h_2);
    0x00012cb8 lw s2, 0x24(sp)               |                 s2 = *(var_24h);
    0x00012cbc lw s1, 0x20(sp)               |                 s1 = *(var_20h);
    0x00012cc0 lw s0, 0x1c(sp)               |                 s0 = *(var_1ch);
    0x00012cc4 sw v0, 8(v1)                  |                 *((v1 + 2)) = v0;
    0x00012cc8 addiu sp, sp, 0x30            |                 
    0x00012ccc jr ra                         |                 return v0;
                                             |             }
    0x00012cd0 lw t9, -0x7f24(gp)            |             t9 = sym.xfree;
    0x00012cd4 move a0, v0                   |             a0 = v0;
    0x00012cd8 jalr t9                       |             t9 ();
                                             |         }
    0x00012cdc lw a1, 0x28(s1)               |         a1 = *((s1 + 10));
    0x00012ce0 lw ra, 0x2c(sp)               |         ra = *(var_2ch);
                                             |         if (a1 != 0) {
    0x00012ce4 beqz a1, 0x12d28              |             
    0x00012ce8 lw v0, 8(a1)                  |             v0 = *((a1 + 2));
    0x00012cec lw s3, 0x28(sp)               |             s3 = *(var_28h_2);
    0x00012cf0 lw s2, 0x24(sp)               |             s2 = *(var_24h);
    0x00012cf4 lw s1, 0x20(sp)               |             s1 = *(var_20h);
    0x00012cf8 lw s0, 0x1c(sp)               |             s0 = *(var_1ch);
    0x00012cfc addiu sp, sp, 0x30            |             
    0x00012d00 jr ra                         |             return v0;
                                             | label_1:
    0x00012d04 lw a3, -0x7fdc(gp)            |             a3 = *(gp);
    0x00012d08 lw a1, -0x7fdc(gp)            |             a1 = *(gp);
    0x00012d0c lw a0, -0x7fdc(gp)            |             a0 = *(gp);
    0x00012d10 lw t9, -0x7944(gp)            |             t9 = sym.imp.__assert_fail;
                                             |             /* str.pka_uri_from_sig */
    0x00012d14 addiu a3, a3, 0x48e4          |             a3 += 0x48e4;
    0x00012d18 addiu a2, zero, 0x577         |             a2 = 0x577;
                                             |             /* str..._.._gnupg_1.4.7_g10_mainproc.c */
    0x00012d1c addiu a1, a1, 0x3eac          |             a1 += 0x3eac;
                                             |             /* str._sig__pka_info */
    0x00012d20 addiu a0, a0, 0x4100          |             a0 += 0x4100;
    0x00012d24 jalr t9                       |             t9 ();
                                             |         }
    0x00012d28 move v0, zero                 |         v0 = 0;
    0x00012d2c b 0x12c0c                     |         
                                             |     } while (1);
                                             | label_0:
    0x00012d30 move v0, zero                 |     v0 = 0;
    0x00012d34 jr ra                         |     return v0;
                                             | }
    ; assembly                               | /* r2dec pseudo code output */
                                             | /* /logs/firmware/unblob_extracted/firmware_extract/4325012-58052244.squashfs_v4_le_extract/usr/bin/gpgv @ 0x39a58 */
                                             | #include <stdint.h>
                                             |  
    ; (fcn) sym.add_to_strlist ()            | void add_to_strlist () {
    0x00039a58 lui gp, 3                     |     
    0x00039a5c addiu gp, gp, -0x7928         |     
    0x00039a60 addu gp, gp, t9               |     gp += t9;
    0x00039a64 addiu sp, sp, -0x28           |     
    0x00039a68 lw t9, -0x78a0(gp)            |     t9 = sym.imp.strlen;
    0x00039a6c sw ra, 0x24(sp)               |     *(var_24h) = ra;
    0x00039a70 sw s1, 0x20(sp)               |     *(var_20h) = s1;
    0x00039a74 sw s0, 0x1c(sp)               |     *(var_1ch) = s0;
    0x00039a78 sw gp, 0x10(sp)               |     *(var_10h) = gp;
    0x00039a7c move s1, a0                   |     s1 = a0;
    0x00039a80 sw a1, 0x2c(sp)               |     *(arg_2ch) = a1;
    0x00039a84 move a0, a1                   |     a0 = a1;
    0x00039a88 jalr t9                       |     t9 ();
    0x00039a8c lw gp, 0x10(sp)               |     gp = *(var_10h);
    0x00039a90 lw t9, -0x7f28(gp)            |     t9 = sym.xmalloc;
    0x00039a94 addiu a0, v0, 0xc             |     a0 = v0 + 0xc;
    0x00039a98 bal 0x3cb1c                   |     sym_xmalloc ();
    0x00039a9c lw gp, 0x10(sp)               |     gp = *(var_10h);
    0x00039aa0 lw a1, 0x2c(sp)               |     a1 = *(arg_2ch);
    0x00039aa4 addiu a0, v0, 8               |     a0 = v0 + 8;
    0x00039aa8 lw t9, -0x7854(gp)            |     t9 = sym.imp.strcpy
    0x00039aac sw zero, 4(v0)                |     *((v0 + 1)) = 0;
    0x00039ab0 move s0, v0                   |     s0 = v0;
    0x00039ab4 jalr t9                       |     t9 ();
    0x00039ab8 lw v1, (s1)                   |     v1 = *(s1);
    0x00039abc lw ra, 0x24(sp)               |     ra = *(var_24h);
    0x00039ac0 sw v1, (s0)                   |     *(s0) = v1;
    0x00039ac4 move v0, s0                   |     v0 = s0;
    0x00039ac8 sw s0, (s1)                   |     *(s1) = s0;
    0x00039acc lw s1, 0x20(sp)               |     s1 = *(var_20h);
    0x00039ad0 lw s0, 0x1c(sp)               |     s0 = *(var_1ch);
    0x00039ad4 addiu sp, sp, 0x28            |     
    0x00039ad8 jr ra                         |     return v0;
                                             | }
    ; assembly                               | /* r2dec pseudo code output */
                                             | /* /logs/firmware/unblob_extracted/firmware_extract/4325012-58052244.squashfs_v4_le_extract/usr/bin/gpgv @ 0x39adc */
                                             | #include <stdint.h>
                                             |  
    ; (fcn) sym.append_to_strlist ()         | void append_to_strlist () {
    0x00039adc lui gp, 3                     |     
    0x00039ae0 addiu gp, gp, -0x79ac         |     
    0x00039ae4 addu gp, gp, t9               |     gp += t9;
    0x00039ae8 addiu sp, sp, -0x28           |     
    0x00039aec lw t9, -0x78a0(gp)            |     t9 = sym.imp.strlen;
    0x00039af0 sw ra, 0x24(sp)               |     *(var_24h) = ra;
    0x00039af4 sw gp, 0x10(sp)               |     *(var_10h) = gp;
    0x00039af8 sw a1, 0x2c(sp)               |     *(arg_2ch) = a1;
    0x00039afc sw s1, 0x20(sp)               |     *(var_20h) = s1;
    0x00039b00 sw s0, 0x1c(sp)               |     *(var_1ch) = s0;
    0x00039b04 move s1, a0                   |     s1 = a0;
    0x00039b08 move a0, a1                   |     a0 = a1;
    0x00039b0c jalr t9                       |     t9 ();
    0x00039b10 lw gp, 0x10(sp)               |     gp = *(var_10h);
    0x00039b14 lw t9, -0x7f28(gp)            |     t9 = sym.xmalloc;
    0x00039b18 addiu a0, v0, 0xc             |     a0 = v0 + 0xc;
    0x00039b1c bal 0x3cb1c                   |     sym_xmalloc ();
    0x00039b20 lw gp, 0x10(sp)               |     gp = *(var_10h);
    0x00039b24 move s0, v0                   |     s0 = v0;
    0x00039b28 lw a1, 0x2c(sp)               |     a1 = *(arg_2ch);
    0x00039b2c lw t9, -0x7854(gp)            |     t9 = sym.imp.strcpy
    0x00039b30 sw zero, 4(v0)                |     *((v0 + 1)) = 0;
    0x00039b34 addiu a0, v0, 8               |     a0 = v0 + 8;
    0x00039b38 jalr t9                       |     t9 ();
    0x00039b3c sw zero, (s0)                 |     *(s0) = 0;
    0x00039b40 lw v1, (s1)                   |     v1 = *(s1);
    0x00039b44 lw v0, (v1)                   |     v0 = *(v1);
                                             |     if (v1 == 0) {
    0x00039b48 bnel v1, zero, 0x39b58        |         goto label_0;
                                             |     }
    0x00039b4c lw ra, 0x24(sp)               |     ra = *(var_24h);
    0x00039b50 b 0x39b7c                     |     goto label_1;
                                             |     do {
    0x00039b54 lw v0, (v1)                   |         v0 = *(v1);
                                             | label_0:
    0x00039b58 move v1, v0                   |         v1 = v0;
    0x00039b5c bnel v0, zero, 0x39b54        |         
                                             |     } while (v0 == 0);
    0x00039b60 lw ra, 0x24(sp)               |     ra = *(var_24h);
    0x00039b64 sw s0, (v1)                   |     *(v1) = s0;
    0x00039b68 move v0, s0                   |     v0 = s0;
    0x00039b6c lw s1, 0x20(sp)               |     s1 = *(var_20h);
    0x00039b70 lw s0, 0x1c(sp)               |     s0 = *(var_1ch);
    0x00039b74 addiu sp, sp, 0x28            |     
    0x00039b78 jr ra                         |     return v0;
                                             | label_1:
    0x00039b7c sw s0, (s1)                   |     *(s1) = s0;
    0x00039b80 move v0, s0                   |     v0 = s0;
    0x00039b84 lw s1, 0x20(sp)               |     s1 = *(var_20h);
    0x00039b88 lw s0, 0x1c(sp)               |     s0 = *(var_1ch);
    0x00039b8c addiu sp, sp, 0x28            |     
    0x00039b90 jr ra                         |     return v0;
                                             | }
    ; assembly                               | /* r2dec pseudo code output */
                                             | /* /logs/firmware/unblob_extracted/firmware_extract/4325012-58052244.squashfs_v4_le_extract/usr/bin/gpgv @ 0x41634 */
                                             | #include <stdint.h>
                                             |  
    ; (fcn) sym.get_pka_info ()              | void get_pka_info () {
    0x00041634 lui gp, 2                     |     
    0x00041638 addiu gp, gp, 0xafc           |     
    0x0004163c addu gp, gp, t9               |     gp += t9;
    0x00041640 addiu sp, sp, -0x248          |     
    0x00041644 lw t9, -0x7900(gp)            |     t9 = sym.imp.strrchr;
    0x00041648 sw s1, 0x22c(sp)              |     *(var_22ch) = s1;
    0x0004164c lw s1, -0x781c(gp)            |     s1 = *((gp - 7687));
    0x00041650 sw gp, 0x18(sp)               |     *(var_18h) = gp;
    0x00041654 sw s4, 0x238(sp)              |     *(var_238h) = s4;
    0x00041658 lw v0, (s1)                   |     v0 = *(s1);
    0x0004165c sw s2, 0x230(sp)              |     *(var_230h) = s2;
    0x00041660 sw ra, 0x244(sp)              |     *(var_244h) = ra;
    0x00041664 sw s6, 0x240(sp)              |     *(var_240h) = s6;
    0x00041668 sw s5, 0x23c(sp)              |     *(var_23ch) = s5;
    0x0004166c sw s3, 0x234(sp)              |     *(var_234h) = s3;
    0x00041670 sw s0, 0x228(sp)              |     *(var_228h) = s0;
    0x00041674 move s2, a1                   |     s2 = a1;
    0x00041678 sw v0, 0x224(sp)              |     *(var_224h) = v0;
    0x0004167c addiu a1, zero, 0x40          |     a1 = 0x40;
    0x00041680 move s4, a0                   |     s4 = a0;
    0x00041684 jalr t9                       |     t9 ();
    0x00041688 lw gp, 0x18(sp)               |     gp = *(var_18h);
                                             |     if (v0 == 0) {
    0x0004168c beqz v0, 0x417e4              |         goto label_1;
                                             |     }
    0x00041690 move s3, v0                   |     s3 = v0;
                                             |     if (s4 == v0) {
    0x00041694 beq s4, v0, 0x417e4           |         goto label_1;
                                             |     }
    0x00041698 lb v0, 1(v0)                  |     v0 = *((v0 + 1));
    0x0004169c lw t9, -0x78a0(gp)            |     t9 = sym.imp.strlen;
                                             |     if (v0 == 0) {
    0x000416a0 beqz v0, 0x417e4              |         goto label_1;
                                             |     }
    0x000416a4 move a0, s4                   |     a0 = s4;
    0x000416a8 jalr t9                       |     t9 ();
    0x000416ac lw gp, 0x18(sp)               |     gp = *(var_18h);
    0x000416b0 addiu a0, v0, 6               |     a0 = v0 + 6;
    0x000416b4 subu s0, s3, s4               |     __asm ("subu s0, s3, s4");
    0x000416b8 lw t9, -0x786c(gp)            |     t9 = sym.imp.malloc;
    0x000416bc addiu s5, sp, 0x24            |     s5 = sp + 0x24;
    0x000416c0 jalr t9                       |     t9 ();
    0x000416c4 lw gp, 0x18(sp)               |     gp = *(var_18h);
    0x000416c8 move a2, s0                   |     a2 = s0;
    0x000416cc move a1, s4                   |     a1 = s4;
    0x000416d0 lw t9, -0x7818(gp)            |     t9 = sym.imp.memcpy;
    0x000416d4 move a0, v0                   |     a0 = v0;
    0x000416d8 move s6, v0                   |     s6 = v0;
    0x000416dc jalr t9                       |     t9 ();
    0x000416e0 lw gp, 0x18(sp)               |     gp = *(var_18h);
    0x000416e4 addu a2, s6, s0               |     a2 = s6 + s0;
    0x000416e8 addiu a0, a2, 6               |     a0 = a2 + 6;
    0x000416ec lw v0, -0x7d90(gp)            |     v0 = *((gp - 8036));
    0x000416f0 lw t9, -0x7854(gp)            |     t9 = sym.imp.strcpy
                                             |     /* str.._pka. */
    0x000416f4 addiu v1, v0, -0x6590         |     v1 = v0 + -0x6590;
    0x000416f8 lw v0, -0x6590(v0)            |     v0 = *((v0 - 6500));
    0x000416fc lbu a3, 4(v1)                 |     a3 = *((v1 + 4));
    0x00041700 lbu v1, 5(v1)                 |     v1 = *((v1 + 5));
    0x00041704 swl v0, 3(a2)                 |     __asm ("swl v0, 3(a2)");
    0x00041708 swr v0, (a2)                  |     __asm ("swr v0, (a2)");
    0x0004170c addiu a1, s3, 1               |     a1 = s3 + 1;
    0x00041710 sb v1, 5(a2)                  |     *((a2 + 5)) = v1;
    0x00041714 sb a3, 4(a2)                  |     *((a2 + 4)) = a3;
    0x00041718 jalr t9                       |     t9 ();
    0x0004171c lw gp, 0x18(sp)               |     gp = *(var_18h);
    0x00041720 addiu v0, zero, 0x200         |     v0 = aav.0x00000200;
    0x00041724 move a3, s5                   |     a3 = s5;
    0x00041728 lw t9, -0x790c(gp)            |     t9 = sym.imp.__res_query;
    0x0004172c addiu a2, zero, 0x10          |     a2 = 0x10;
    0x00041730 addiu a1, zero, 1             |     a1 = 1;
    0x00041734 move a0, s6                   |     a0 = s6;
    0x00041738 sw v0, 0x10(sp)               |     *(var_10h_2) = v0;
    0x0004173c jalr t9                       |     t9 ();
    0x00041740 lw gp, 0x18(sp)               |     gp = *(var_18h);
    0x00041744 move s0, v0                   |     s0 = v0;
    0x00041748 lw t9, -0x7f24(gp)            |     t9 = sym.xfree;
    0x0004174c move a0, s6                   |     a0 = s6;
    0x00041750 bal 0x3cd20                   |     sym_xfree ();
    0x00041754 sltiu v0, s0, 0xc             |     v0 = (s0 < 0xc) ? 1 : 0;
    0x00041758 lw gp, 0x18(sp)               |     gp = *(var_18h);
                                             |     if (v0 != 0) {
    0x0004175c bnez v0, 0x417e4              |         goto label_1;
                                             |     }
    0x00041760 lw v1, 0x24(sp)               |     v1 = *(var_24h_2);
    0x00041764 ext v1, v1, 0x18, 4           |     __asm ("ext v1, v1, 0x18, 4");
    0x00041768 move s3, zero                 |     s3 = 0;
                                             |     if (v1 == 0) {
    0x0004176c bnel v1, zero, 0x417e8        |         goto label_0;
                                             |     }
    0x00041770 slti v0, s0, 0x201            |     v0 = (s0 < 0x201) ? 1 : 0;
    0x00041774 lhu s3, 0x28(sp)              |     s3 = *(var_28h_2);
                                             |     if (v0 == 0) {
    0x00041778 beqz v0, 0x417e4              |         goto label_1;
                                             |     }
    0x0004177c lhu s4, 0x2a(sp)              |     s4 = *(var_2ah);
    0x00041780 wsbh s4, s4                   |     __asm ("wsbh s4, s4");
    0x00041784 wsbh s3, s3                   |     __asm ("wsbh s3, s3");
    0x00041788 andi s4, s4, 0xffff           |     s4 &= 0xffff;
    0x0004178c andi s3, s3, 0xffff           |     s3 &= 0xffff;
                                             |     if (s4 == 0) {
    0x00041790 beqz s4, 0x417e4              |         goto label_1;
                                             |     }
    0x00041794 addu s5, s5, s0               |     s5 += s0;
    0x00041798 addiu s0, sp, 0x30            |     s0 = sp + 0x30;
                                             |     if (s3 == 0) {
    0x0004179c beqz s3, 0x41820              |         goto label_10;
                                             |     }
    0x000417a0 sltu v0, s0, s5               |     v0 = (s0 < s5) ? 1 : 0;
    0x000417a4 addiu s3, s3, -2              |     s3 += -2;
                                             |     if (v0 == 0) {
    0x000417a8 beqz v0, 0x41820              |         goto label_10;
                                             |     }
    0x000417ac addiu s6, zero, -1            |     s6 = -1;
    0x000417b0 b 0x417cc                     |     
                                             |     while (v0 != s6) {
    0x000417b4 addiu v0, v0, 4               |         v0 += 4;
    0x000417b8 addu s0, s0, v0               |         s0 += v0;
                                             |         if (s3 == s6) {
    0x000417bc beq s3, s6, 0x41820           |             goto label_10;
                                             |         }
    0x000417c0 sltu v1, s0, s5               |         v1 = (s0 < s5) ? 1 : 0;
    0x000417c4 addiu s3, s3, -1              |         s3 += -1;
                                             |         if (v1 == 0) {
    0x000417c8 beqz v1, 0x41820              |             goto label_10;
                                             |         }
    0x000417cc lw t9, -0x791c(gp)            |         t9 = sym.imp.__dn_skipname;
    0x000417d0 move a1, s5                   |         a1 = s5;
    0x000417d4 move a0, s0                   |         a0 = s0;
    0x000417d8 jalr t9                       |         t9 ();
    0x000417dc lw gp, 0x18(sp)               |         gp = *(var_18h);
    0x000417e0 bne v0, s6, 0x417b4           |         
                                             |     }
                                             | label_1:
    0x000417e4 move s3, zero                 |     s3 = 0;
                                             |     do {
                                             | label_0:
    0x000417e8 lw a0, 0x224(sp)              |         a0 = *(var_224h);
    0x000417ec lw v1, (s1)                   |         v1 = *(s1);
    0x000417f0 move v0, s3                   |         v0 = s3;
                                             |         if (a0 != v1) {
    0x000417f4 bne a0, v1, 0x41b44           |             goto label_11;
                                             |         }
    0x000417f8 lw ra, 0x244(sp)              |         ra = *(var_244h);
    0x000417fc lw s6, 0x240(sp)              |         s6 = *(var_240h);
    0x00041800 lw s5, 0x23c(sp)              |         s5 = *(var_23ch);
    0x00041804 lw s4, 0x238(sp)              |         s4 = *(var_238h);
    0x00041808 lw s3, 0x234(sp)              |         s3 = *(var_234h);
    0x0004180c lw s2, 0x230(sp)              |         s2 = *(var_230h);
    0x00041810 lw s1, 0x22c(sp)              |         s1 = *(var_22ch);
    0x00041814 lw s0, 0x228(sp)              |         s0 = *(var_228h);
    0x00041818 addiu sp, sp, 0x248           |         
    0x0004181c jr ra                         |         return v0;
                                             | label_10:
    0x00041820 addiu v0, zero, 1             |         v0 = 1;
    0x00041824 move s3, zero                 |         s3 = 0;
    0x00041828 bne s4, v0, 0x417e8           |         
                                             |     } while (s4 != v0);
    0x0004182c sltu v0, s5, s0               |     v0 = (s5 < s0) ? 1 : 0;
    0x00041830 lw t9, -0x791c(gp)            |     t9 = sym.imp.__dn_skipname;
                                             |     if (v0 != 0) {
    0x00041834 bnez v0, 0x417e8              |         goto label_0;
                                             |     }
    0x00041838 move a1, s5                   |     a1 = s5;
    0x0004183c move a0, s0                   |     a0 = s0;
    0x00041840 jalr t9                       |     t9 ();
    0x00041844 addiu v1, zero, -1            |     v1 = -1;
    0x00041848 lw gp, 0x18(sp)               |     gp = *(var_18h);
                                             |     if (v0 == v1) {
    0x0004184c beq v0, v1, 0x417e4           |         goto label_1;
                                             |     }
    0x00041850 addu s0, s0, v0               |     s0 += v0;
    0x00041854 addiu v0, s5, -0xa            |     v0 = s5 + -0xa;
    0x00041858 sltu v0, s0, v0               |     v0 = (s0 < v0) ? 1 : 0;
    0x0004185c move s3, zero                 |     s3 = 0;
                                             |     if (v0 == 0) {
    0x00041860 beqz v0, 0x417e8              |         goto label_0;
                                             |     }
    0x00041864 lbu v0, 1(s0)                 |     v0 = *((s0 + 1));
    0x00041868 lbu v1, (s0)                  |     v1 = *(s0);
    0x0004186c sll v0, v0, 8                 |     v0 <<= 8;
    0x00041870 or v0, v0, v1                 |     v0 |= v1;
    0x00041874 wsbh v0, v0                   |     __asm ("wsbh v0, v0");
    0x00041878 andi v0, v0, 0xffff           |     v0 &= 0xffff;
    0x0004187c addiu v1, zero, 0x10          |     v1 = 0x10;
                                             |     if (v0 != v1) {
    0x00041880 bne v0, v1, 0x417e8           |         goto label_0;
                                             |     }
    0x00041884 nop                           |     
    0x00041888 lbu v0, 3(s0)                 |     v0 = *((s0 + 3));
    0x0004188c lbu v1, 2(s0)                 |     v1 = *((s0 + 2));
    0x00041890 sll v0, v0, 8                 |     v0 <<= 8;
    0x00041894 or v0, v0, v1                 |     v0 |= v1;
    0x00041898 wsbh v0, v0                   |     __asm ("wsbh v0, v0");
    0x0004189c andi v0, v0, 0xffff           |     v0 &= 0xffff;
    0x000418a0 lw t9, -0x7f28(gp)            |     t9 = sym.xmalloc;
                                             |     if (v0 != s4) {
    0x000418a4 bne v0, s4, 0x417e8           |         goto label_0;
                                             |     }
    0x000418a8 lbu s4, 9(s0)                 |     s4 = *((s0 + 9));
    0x000418ac lbu v0, 8(s0)                 |     v0 = *((s0 + 8));
    0x000418b0 sll s4, s4, 8                 |     s4 <<= 8;
    0x000418b4 or s4, s4, v0                 |     s4 |= v0;
    0x000418b8 wsbh s4, s4                   |     __asm ("wsbh s4, s4");
    0x000418bc andi s4, s4, 0xffff           |     s4 &= 0xffff;
    0x000418c0 addiu a0, s4, 1               |     a0 = s4 + 1;
    0x000418c4 bal 0x3cb1c                   |     sym_xmalloc ();
    0x000418c8 move s3, v0                   |     s3 = v0;
    0x000418cc lw gp, 0x18(sp)               |     gp = *(var_18h);
                                             |     if (s4 == 0) {
    0x000418d0 beqz s4, 0x41b3c              |         goto label_12;
                                             |     }
    0x000418d4 addiu v1, s0, 0xa             |     v1 = s0 + 0xa;
    0x000418d8 sltu v0, v1, s5               |     v0 = (v1 < s5) ? 1 : 0;
    0x000418dc move v0, s3                   |     v0 = s3;
                                             |     if (v0 == 0) {
    0x000418e0 beqz v0, 0x41940              |         goto label_9;
                                             |     }
    0x000418e4 addiu a0, s4, -1              |     a0 = s4 + -1;
                                             | label_4:
    0x000418e8 addiu a3, v1, 1               |     a3 = v1 + 1;
    0x000418ec lbu a2, (v1)                  |     a2 = *(v1);
                                             |     if (a0 == 0) {
    0x000418f0 beqz a0, 0x41940              |         goto label_9;
                                             |     }
                                             |     if (a2 == 0) {
    0x000418f4 beql a2, zero, 0x41ae8        |         goto label_13;
                                             |     }
    0x000418f8 move s4, a0                   |     s4 = a0;
    0x000418fc sltu a0, a3, s5               |     a0 = (a3 < s5) ? 1 : 0;
    0x00041900 addiu a0, v1, 2               |     a0 = v1 + 2;
                                             |     if (a0 == 0) {
    0x00041904 beqz a0, 0x41940              |         goto label_9;
                                             |     }
    0x00041908 addu a1, v1, s4               |     a1 = v1 + s4;
    0x0004190c addu a3, a3, a2               |     a3 += a2;
    0x00041910 b 0x41928                     |     
                                             |     while (a0 != a1) {
                                             |         if (a0 == a3) {
    0x00041914 beql a0, a3, 0x41af0          |             goto label_14;
                                             |         }
    0x00041918 sltu a0, v1, s5               |         a0 = (v1 < s5) ? 1 : 0;
    0x0004191c addiu v1, a0, 1               |         v1 = a0 + 1;
                                             |         if (s5 == a0) {
    0x00041920 beq s5, a0, 0x41940           |             goto label_9;
                                             |         }
    0x00041924 move a0, v1                   |         a0 = v1;
    0x00041928 addiu v0, v0, 1               |         v0++;
    0x0004192c lbu a2, -1(a0)                |         a2 = *((a0 - 1));
    0x00041930 move v1, a0                   |         v1 = a0;
    0x00041934 sb a2, -1(v0)                 |         *((v0 - 1)) = a2;
    0x00041938 subu s4, a1, a0               |         __asm ("subu s4, a1, a0");
    0x0004193c bne a0, a1, 0x41914           |         
                                             |     }
                                             | label_9:
    0x00041940 lw t9, -0x789c(gp)            |     t9 = sym.imp.strchr;
                                             | label_5:
    0x00041944 sb zero, (v0)                 |     *(v0) = 0;
    0x00041948 addiu a1, zero, 0x3b          |     a1 = 0x3b;
    0x0004194c move a0, s3                   |     a0 = s3;
    0x00041950 jalr t9                       |     t9 ();
    0x00041954 move s4, v0                   |     s4 = v0;
    0x00041958 lw gp, 0x18(sp)               |     gp = *(var_18h);
                                             |     if (v0 != 0) {
    0x0004195c beqz v0, 0x419fc              |         
    0x00041960 lw a1, -0x7d90(gp)            |         a1 = *((gp - 8036));
    0x00041964 lw t9, -0x77e0(gp)            |         t9 = sym.imp.strcmp;
    0x00041968 sb zero, (v0)                 |         *(v0) = 0;
                                             |         /* str.vpka1 */
    0x0004196c addiu a1, a1, -0x6588         |         a1 += -0x6588;
    0x00041970 move a0, s3                   |         a0 = s3;
    0x00041974 jalr t9                       |         t9 ();
    0x00041978 addiu s5, s4, 1               |         s5 = s4 + 1;
    0x0004197c lw gp, 0x18(sp)               |         gp = *(var_18h);
                                             |         if (v0 != 0) {
    0x00041980 bnez v0, 0x419fc              |             goto label_3;
                                             |         }
    0x00041984 lw t9, -0x789c(gp)            |         t9 = sym.imp.strchr;
    0x00041988 addiu a1, zero, 0x3b          |         a1 = 0x3b;
    0x0004198c move a0, s5                   |         a0 = s5;
    0x00041990 jalr t9                       |         t9 ();
    0x00041994 lw gp, 0x18(sp)               |         gp = *(var_18h);
                                             |         if (v0 == 0) {
    0x00041998 beqz v0, 0x41b34              |             goto label_15;
                                             |         }
    0x0004199c addiu s0, v0, 1               |         s0 = v0 + 1;
    0x000419a0 sb zero, (v0)                 |         *(v0) = 0;
                                             | label_8:
    0x000419a4 lw a1, -0x7d90(gp)            |         a1 = *((gp - 8036));
    0x000419a8 lw t9, -0x792c(gp)            |         t9 = sym.imp.strncmp;
    0x000419ac addiu a2, zero, 4             |         a2 = 4;
                                             |         /* str.fpr */
    0x000419b0 addiu a1, a1, -0x6580         |         a1 += -fcn.00006580;
    0x000419b4 move a0, s5                   |         a0 = s5;
    0x000419b8 jalr t9                       |         t9 ();
    0x000419bc lw gp, 0x18(sp)               |         gp = *(var_18h);
                                             |         if (v0 != 0) {
    0x000419c0 bnez v0, 0x419fc              |             goto label_3;
                                             |         }
    0x000419c4 addiu a0, s4, 5               |         a0 = s4 + 5;
    0x000419c8 addiu a2, s4, 0x2d            |         a2 = s4 + 0x2d;
    0x000419cc addiu a3, zero, -0x21         |         a3 = -0x21;
                                             | label_2:
    0x000419d0 lb v0, (a0)                   |         v0 = *(a0);
    0x000419d4 andi v1, v0, 0xff             |         v1 = v0 & 0xff;
    0x000419d8 addiu a1, v1, -0x30           |         a1 = v1 + -0x30;
    0x000419dc sltiu a1, a1, 0xa             |         a1 = (a1 < 0xa) ? 1 : 0;
    0x000419e0 lb a1, 1(a0)                  |         a1 = *((a0 + 1));
                                             |         if (a1 == 0) {
    0x000419e4 bnel a1, zero, 0x41a14        |             goto label_16;
                                             |         }
    0x000419e8 and v1, v1, a3                |         v1 &= a3;
    0x000419ec addiu v1, v1, -0x41           |         v1 += -0x41;
    0x000419f0 sltiu v1, v1, 6               |         v1 = (v1 < 6) ? 1 : 0;
    0x000419f4 lb a1, 1(a0)                  |         a1 = *((a0 + 1));
                                             |         if (v1 == 0) {
    0x000419f8 bnel v1, zero, 0x41a14        |             goto label_16;
                                             |         }
                                             |     }
                                             | label_3:
    0x000419fc lw t9, -0x7f24(gp)            |     t9 = sym.xfree;
                                             |     do {
    0x00041a00 move a0, s3                   |         a0 = s3;
    0x00041a04 bal 0x3cd20                   |         sym_xfree ();
    0x00041a08 move s3, zero                 |         s3 = 0;
    0x00041a0c lw gp, 0x18(sp)               |         gp = *(var_18h);
    0x00041a10 b 0x417e8                     |         goto label_0;
                                             | label_16:
    0x00041a14 andi t0, a1, 0xff             |         t0 = a1 & 0xff;
    0x00041a18 addiu v1, t0, -0x30           |         v1 = t0 + -0x30;
    0x00041a1c andi v1, v1, 0xff             |         v1 &= 0xff;
    0x00041a20 sltiu t1, v1, 0xa             |         t1 = (v1 < 0xa) ? 1 : 0;
    0x00041a24 slti t1, v0, 0x3a             |         t1 = (v0 < 0x3a) ? 1 : 0;
                                             |         if (t1 != 0) {
    0x00041a28 bnez t1, 0x41a44              |             goto label_17;
                                             |         }
    0x00041a2c and t1, t0, a3                |         t1 = t0 & a3;
    0x00041a30 addiu t1, t1, -0x41           |         t1 += -0x41;
    0x00041a34 sltiu t1, t1, 6               |         t1 = (t1 < 6) ? 1 : 0;
    0x00041a38 lw t9, -0x7f24(gp)            |         t9 = sym.xfree;
    0x00041a3c beqz t1, 0x41a00              |         
                                             |     } while (t1 == 0);
    0x00041a40 slti t1, v0, 0x3a             |     t1 = (v0 < 0x3a) ? 1 : 0;
                                             | label_17:
    0x00041a44 slti t1, v0, 0x47             |     t1 = (v0 < 0x47) ? 1 : 0;
                                             |     if (t1 == 0) {
    0x00041a48 beqz t1, 0x41b00              |         goto label_18;
                                             |     }
    0x00041a4c sll v0, v0, 4                 |     v0 <<= 4;
    0x00041a50 andi v0, v0, 0xf0             |     v0 &= 0xf0;
                                             | label_6:
    0x00041a54 slti t1, a1, 0x3a             |     t1 = (a1 < 0x3a) ? 1 : 0;
    0x00041a58 addu v0, v0, v1               |     v0 += v1;
                                             |     if (t1 != 0) {
    0x00041a5c bnel t1, zero, 0x41a78        |         
    0x00041a60 slti a1, a1, 0x47             |         a1 = (a1 < 0x47) ? 1 : 0;
    0x00041a64 addiu v1, t0, -0x57           |         v1 = t0 + -0x57;
                                             |         if (a1 == 0) {
    0x00041a68 beqz a1, 0x41b18              |             goto label_19;
                                             |         }
    0x00041a6c addiu v1, t0, -0x37           |         v1 = t0 + -0x37;
    0x00041a70 andi v1, v1, 0xff             |         v1 &= 0xff;
                                             | label_7:
    0x00041a74 addu v0, v0, v1               |         v0 += v1;
                                             |     }
    0x00041a78 addiu a0, a0, 2               |     a0 += 2;
    0x00041a7c sb v0, (s2)                   |     *(s2) = v0;
    0x00041a80 addiu s2, s2, 1               |     s2++;
                                             |     if (a2 != a0) {
    0x00041a84 bne a2, a0, 0x419d0           |         goto label_2;
                                             |     }
                                             |     if (s0 == 0) {
    0x00041a88 beql s0, zero, 0x417e8        |         goto label_0;
                                             |     }
    0x00041a8c sb zero, (s3)                 |     *(s3) = 0;
    0x00041a90 lb v0, (s0)                   |     v0 = *(s0);
    0x00041a94 lw a1, -0x7d90(gp)            |     a1 = *((gp - 8036));
                                             |     if (v0 == 0) {
    0x00041a98 beqz v0, 0x41b2c              |         goto label_20;
                                             |     }
    0x00041a9c lw t9, -0x792c(gp)            |     t9 = sym.imp.strncmp;
    0x00041aa0 addiu a2, zero, 4             |     a2 = 4;
                                             |     /* str.uri */
    0x00041aa4 addiu a1, a1, -0x6578         |     a1 += -0x6578;
    0x00041aa8 move a0, s0                   |     a0 = s0;
    0x00041aac jalr t9                       |     t9 ();
    0x00041ab0 lw gp, 0x18(sp)               |     gp = *(var_18h);
                                             |     if (v0 != 0) {
    0x00041ab4 bnez v0, 0x419fc              |         goto label_3;
                                             |     }
    0x00041ab8 lb v1, 4(s0)                  |     v1 = *((s0 + 4));
    0x00041abc move v0, s3                   |     v0 = s3;
    0x00041ac0 addiu s0, s0, 4               |     s0 += 4;
                                             |     if (v1 == 0) {
    0x00041ac4 beqz v1, 0x41ae0              |         goto label_21;
                                             |     }
    0x00041ac8 addiu v0, v0, 1               |     v0++;
                                             |     do {
    0x00041acc addiu s0, s0, 1               |         s0++;
    0x00041ad0 sb v1, -1(v0)                 |         *((v0 - 1)) = v1;
    0x00041ad4 lb v1, (s0)                   |         v1 = *(s0);
    0x00041ad8 addiu v0, v0, 1               |         v0++;
    0x00041adc bnel v1, zero, 0x41acc        |         
                                             |     } while (v1 == 0);
                                             | label_21:
    0x00041ae0 sb zero, (v0)                 |     *(v0) = 0;
    0x00041ae4 b 0x417e8                     |     goto label_0;
                                             | label_13:
    0x00041ae8 move v1, a3                   |     v1 = a3;
    0x00041aec sltu a0, v1, s5               |     a0 = (v1 < s5) ? 1 : 0;
                                             | label_14:
    0x00041af0 addiu a0, s4, -1              |     a0 = s4 + -1;
                                             |     if (a0 != 0) {
    0x00041af4 bnez a0, 0x418e8              |         goto label_4;
                                             |     }
    0x00041af8 lw t9, -0x789c(gp)            |     t9 = sym.imp.strchr;
    0x00041afc b 0x41944                     |     goto label_5;
                                             |     if (t1 != 0) {
                                             | label_18:
    0x00041b00 beql t1, zero, 0x41b20        |         
    0x00041b04 addiu v0, v0, -0x57           |         v0 += -0x57;
    0x00041b08 addiu v0, v0, -0x37           |         v0 += -0x37;
    0x00041b0c sll v0, v0, 4                 |         v0 <<= 4;
    0x00041b10 andi v0, v0, 0xff             |         v0 &= 0xff;
    0x00041b14 b 0x41a54                     |         goto label_6;
                                             | label_19:
    0x00041b18 andi v1, v1, 0xff             |         v1 &= 0xff;
    0x00041b1c b 0x41a74                     |         goto label_7;
                                             |     }
    0x00041b20 sll v0, v0, 4                 |     v0 <<= 4;
    0x00041b24 andi v0, v0, 0xff             |     v0 &= 0xff;
    0x00041b28 b 0x41a54                     |     goto label_6;
                                             | label_20:
    0x00041b2c sb zero, (s3)                 |     *(s3) = 0;
    0x00041b30 b 0x417e8                     |     goto label_0;
                                             | label_15:
    0x00041b34 move s0, zero                 |     s0 = 0;
    0x00041b38 b 0x419a4                     |     goto label_8;
                                             | label_12:
    0x00041b3c move v0, s3                   |     v0 = s3;
    0x00041b40 b 0x41940                     |     goto label_9;
                                             | label_11:
    0x00041b44 lw t9, -0x7834(gp)            |     t9 = sym.imp.__stack_chk_fail;
    0x00041b48 jalr t9                       |     t9 ();
    0x00041b4c nop                           |     
                                             | }
    ; 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 @ 0x3ecdc */
                                             | #include <stdint.h>
                                             |  
    ; (fcn) sym.iobuf_create ()              | void iobuf_create () {
    0x0003ecdc lui gp, 2                     |     
    0x0003ece0 addiu gp, gp, 0x3454          |     
    0x0003ece4 addu gp, gp, t9               |     gp += t9;
    0x0003ece8 addiu sp, sp, -0x30           |     
    0x0003ecec sw gp, 0x10(sp)               |     *(var_10h) = gp;
    0x0003ecf0 sw ra, 0x2c(sp)               |     *(var_2ch) = ra;
    0x0003ecf4 sw s3, 0x28(sp)               |     *(var_28h) = s3;
    0x0003ecf8 sw s2, 0x24(sp)               |     *(var_24h) = s2;
    0x0003ecfc sw s1, 0x20(sp)               |     *(var_20h) = s1;
    0x0003ed00 sw s0, 0x1c(sp)               |     *(var_1ch) = s0;
    0x0003ed04 addiu v0, zero, 0x2d          |     v0 = 0x2d;
                                             |     if (a0 != 0) {
    0x0003ed08 beqz a0, 0x3ed24              |         
    0x0003ed0c lb v1, (a0)                   |         v1 = *(a0);
    0x0003ed10 move s1, a0                   |         s1 = a0;
                                             |         if (v1 != v0) {
    0x0003ed14 bne v1, v0, 0x3eddc           |             goto label_1;
                                             |         }
    0x0003ed18 lb v0, 1(a0)                  |         v0 = *((a0 + 1));
    0x0003ed1c lw t9, -0x7fdc(gp)            |         t9 = *(gp);
                                             |         if (v0 != 0) {
    0x0003ed20 bnez v0, 0x3ede0              |             goto label_2;
                                             |         }
                                             |     }
    0x0003ed24 lw t9, -0x7970(gp)            |     t9 = sym.iobuf_alloc;
    0x0003ed28 addiu a1, zero, 0x2000        |     a1 = 0x2000;
    0x0003ed2c addiu a0, zero, 2             |     a0 = 2;
    0x0003ed30 bal 0x3e698                   |     sym_iobuf_alloc ();
    0x0003ed34 lw gp, 0x10(sp)               |     gp = *(var_10h);
    0x0003ed38 addiu a0, zero, 0x20          |     a0 = 0x20;
    0x0003ed3c lw t9, -0x7f28(gp)            |     t9 = sym.xmalloc;
    0x0003ed40 move s2, v0                   |     s2 = v0;
    0x0003ed44 bal 0x3cb1c                   |     sym_xmalloc ();
    0x0003ed48 lw gp, 0x10(sp)               |     gp = *(var_10h);
    0x0003ed4c move s0, v0                   |     s0 = v0;
    0x0003ed50 addiu v0, zero, 1             |     v0 = 1;
    0x0003ed54 lw v1, -0x7fdc(gp)            |     v1 = *(gp);
    0x0003ed58 sw v0, (s0)                   |     *(s0) = v0;
    0x0003ed5c sw v0, 0x10(s0)               |     *((s0 + 4)) = v0;
    0x0003ed60 lw a1, 0x5034(v1)             |     a1 = *((v1 + 5133));
                                             |     /* str._stdout_ */
    0x0003ed64 addiu v1, v1, 0x5034          |     v1 += 0x5034;
    0x0003ed68 addiu v0, s0, 0x14            |     v0 = s0 + 0x14;
    0x0003ed6c swl a1, 0x17(s0)              |     __asm ("swl a1, 0x17(s0)");
    0x0003ed70 lw a0, 4(v1)                  |     a0 = *((v1 + 1));
    0x0003ed74 swr a1, (v0)                  |     __asm ("swr a1, (v0)");
    0x0003ed78 lbu v1, 8(v1)                 |     v1 = *((v1 + 8));
    0x0003ed7c swl a0, 7(v0)                 |     __asm ("swl a0, 7(v0)");
    0x0003ed80 swr a0, 4(v0)                 |     __asm ("swr a0, 4(v0)");
    0x0003ed84 sb v1, 8(v0)                  |     *((v0 + 8)) = v1;
    0x0003ed88 lw v0, -0x7974(gp)            |     v0 = *(gp);
    0x0003ed8c lw a3, -0x7d90(gp)            |     a3 = *((gp - 8036));
    0x0003ed90 sw s0, 0x44(s2)               |     *((s2 + 17)) = s0;
    0x0003ed94 lw v1, (v0)                   |     v1 = *(v0);
    0x0003ed98 lw v0, -0x7fdc(gp)            |     v0 = *(gp);
                                             |     /* str.file_filter_fd_ */
    0x0003ed9c addiu a3, a3, -0x6ed8         |     a3 += -0x6ed8;
    0x0003eda0 addiu v0, v0, -0x2884         |     v0 += -0x2884;
    0x0003eda4 sw v0, 0x40(s2)               |     *((s2 + 16)) = v0;
    0x0003eda8 sw a3, 0x5c(s2)               |     *((s2 + 23)) = a3;
    0x0003edac sw zero, 0xc(s0)              |     *((s0 + 3)) = 0;
    0x0003edb0 sw zero, 4(s0)                |     *((s0 + 1)) = 0;
    0x0003edb4 sw zero, 8(s0)                |     *((s0 + 2)) = 0;
                                             |     if (v1 != 0) {
    0x0003edb8 bnez v1, 0x3eec0              |         goto label_3;
                                             |     }
                                             |     do {
                                             | label_0:
    0x0003edbc lw ra, 0x2c(sp)               |         ra = *(var_2ch);
    0x0003edc0 move v0, s2                   |         v0 = s2;
    0x0003edc4 lw s3, 0x28(sp)               |         s3 = *(var_28h);
    0x0003edc8 lw s2, 0x24(sp)               |         s2 = *(var_24h);
    0x0003edcc lw s1, 0x20(sp)               |         s1 = *(var_20h);
    0x0003edd0 lw s0, 0x1c(sp)               |         s0 = *(var_1ch);
    0x0003edd4 addiu sp, sp, 0x30            |         
    0x0003edd8 jr ra                         |         return v0;
                                             | label_1:
    0x0003eddc lw t9, -0x7fdc(gp)            |         t9 = *(gp);
                                             |         /* fcn.0003d6e8 */
                                             | label_2:
    0x0003ede0 addiu t9, t9, -0x2918         |         t9 += -0x2918;
    0x0003ede4 move a0, s1                   |         a0 = s1;
    0x0003ede8 bal 0x3d6e8                   |         fcn_0003d6e8 ();
    0x0003edec lw gp, 0x10(sp)               |         gp = *(var_10h);
    0x0003edf0 move s0, v0                   |         s0 = v0;
    0x0003edf4 addiu v0, zero, -1            |         v0 = -1;
    0x0003edf8 lw a1, -0x7fdc(gp)            |         a1 = *(gp);
                                             |         /* esilref: 'wb' */
    0x0003edfc addiu a1, a1, 0x6d74          |         a1 += 0x6d74;
                                             |         if (s0 != v0) {
    0x0003ee00 bne s0, v0, 0x3eef8           |             goto label_4;
                                             |         }
    0x0003ee04 lw t9, -0x7fdc(gp)            |         t9 = *(gp);
                                             |         /* fcn.0003e3d0 */
    0x0003ee08 addiu t9, t9, -0x1c30         |         t9 += -0x1c30;
    0x0003ee0c move a0, s1                   |         a0 = s1;
    0x0003ee10 bal 0x3e3d0                   |         fcn_0003e3d0 ();
    0x0003ee14 move s3, v0                   |         s3 = v0;
    0x0003ee18 lw gp, 0x10(sp)               |         gp = *(var_10h);
                                             |         if (v0 == s0) {
    0x0003ee1c beq v0, s0, 0x3ef1c           |             goto label_5;
                                             |         }
    0x0003ee20 lw t9, -0x7970(gp)            |         t9 = sym.iobuf_alloc;
    0x0003ee24 addiu a1, zero, 0x2000        |         a1 = 0x2000;
    0x0003ee28 addiu a0, zero, 2             |         a0 = 2;
    0x0003ee2c bal 0x3e698                   |         sym_iobuf_alloc ();
    0x0003ee30 lw gp, 0x10(sp)               |         gp = *(var_10h);
    0x0003ee34 move a0, s1                   |         a0 = s1;
    0x0003ee38 lw t9, -0x78a0(gp)            |         t9 = sym.imp.strlen;
    0x0003ee3c move s2, v0                   |         s2 = v0;
    0x0003ee40 jalr t9                       |         t9 ();
    0x0003ee44 lw gp, 0x10(sp)               |         gp = *(var_10h);
    0x0003ee48 lw t9, -0x7f28(gp)            |         t9 = sym.xmalloc;
    0x0003ee4c addiu a0, v0, 0x18            |         a0 = v0 + 0x18;
    0x0003ee50 bal 0x3cb1c                   |         sym_xmalloc ();
    0x0003ee54 lw gp, 0x10(sp)               |         gp = *(var_10h);
    0x0003ee58 move a1, s1                   |         a1 = s1;
    0x0003ee5c addiu a0, v0, 0x14            |         a0 = v0 + 0x14;
    0x0003ee60 lw t9, -0x7854(gp)            |         t9 = sym.imp.strcpy
    0x0003ee64 sw s3, (v0)                   |         *(v0) = s3;
    0x0003ee68 sw zero, 0x10(v0)             |         *((v0 + 4)) = 0;
    0x0003ee6c move s0, v0                   |         s0 = v0;
    0x0003ee70 jalr t9                       |         t9 ();
    0x0003ee74 lw gp, 0x10(sp)               |         gp = *(var_10h);
    0x0003ee78 lw t9, -0x7e4c(gp)            |         t9 = sym.xstrdup;
    0x0003ee7c move a0, s1                   |         a0 = s1;
    0x0003ee80 bal 0x3cdc8                   |         sym_xstrdup ();
    0x0003ee84 lw gp, 0x10(sp)               |         gp = *(var_10h);
    0x0003ee88 sw v0, 0x4c(s2)               |         *((s2 + 19)) = v0;
    0x0003ee8c sw s0, 0x44(s2)               |         *((s2 + 17)) = s0;
    0x0003ee90 lw v0, -0x7974(gp)            |         v0 = *(gp);
    0x0003ee94 lw a3, -0x7d90(gp)            |         a3 = *((gp - 8036));
    0x0003ee98 lw v1, (v0)                   |         v1 = *(v0);
    0x0003ee9c lw v0, -0x7fdc(gp)            |         v0 = *(gp);
                                             |         /* str.file_filter_fd_ */
    0x0003eea0 addiu a3, a3, -0x6ed8         |         a3 += -0x6ed8;
    0x0003eea4 addiu v0, v0, -0x2884         |         v0 += -0x2884;
    0x0003eea8 sw v0, 0x40(s2)               |         *((s2 + 16)) = v0;
    0x0003eeac sw a3, 0x5c(s2)               |         *((s2 + 23)) = a3;
    0x0003eeb0 sw zero, 0xc(s0)              |         *((s0 + 3)) = 0;
    0x0003eeb4 sw zero, 4(s0)                |         *((s0 + 1)) = 0;
    0x0003eeb8 sw zero, 8(s0)                |         *((s0 + 2)) = 0;
    0x0003eebc beqz v1, 0x3edbc              |         
                                             |     } while (v1 == 0);
                                             | label_3:
    0x0003eec0 lw a0, -0x7d90(gp)            |     a0 = *((gp - 8036));
    0x0003eec4 lw t9, -0x7f5c(gp)            |     t9 = sym.g10_log_debug;
    0x0003eec8 lw a2, 0x58(s2)               |     a2 = *((s2 + 22));
    0x0003eecc lw a1, 0x54(s2)               |     a1 = *((s2 + 21));
                                             |     /* str.iobuf__d._d:_create___s_n */
    0x0003eed0 addiu a0, a0, -0x6b44         |     a0 += -0x6b44;
    0x0003eed4 bal 0x388a0                   |     sym_g10_log_debug ();
    0x0003eed8 lw ra, 0x2c(sp)               |     ra = *(var_2ch);
    0x0003eedc move v0, s2                   |     v0 = s2;
    0x0003eee0 lw s3, 0x28(sp)               |     s3 = *(var_28h);
    0x0003eee4 lw s2, 0x24(sp)               |     s2 = *(var_24h);
    0x0003eee8 lw s1, 0x20(sp)               |     s1 = *(var_20h);
    0x0003eeec lw s0, 0x1c(sp)               |     s0 = *(var_1ch);
    0x0003eef0 addiu sp, sp, 0x30            |     
    0x0003eef4 jr ra                         |     return v0;
                                             | label_4:
    0x0003eef8 lw ra, 0x2c(sp)               |     ra = *(var_2ch);
    0x0003eefc lw s3, 0x28(sp)               |     s3 = *(var_28h);
    0x0003ef00 lw s2, 0x24(sp)               |     s2 = *(var_24h);
    0x0003ef04 lw s1, 0x20(sp)               |     s1 = *(var_20h);
    0x0003ef08 move a0, s0                   |     a0 = s0;
    0x0003ef0c lw t9, -0x796c(gp)            |     t9 = sym.iobuf_fdopen;
    0x0003ef10 lw s0, 0x1c(sp)               |     s0 = *(var_1ch);
    0x0003ef14 addiu sp, sp, 0x30            |     
    0x0003ef18 b 0x3e830                     |     void (*0x3e830)() ();
                                             | label_5:
    0x0003ef1c move s2, zero                 |     s2 = 0;
    0x0003ef20 b 0x3edbc                     |     goto label_0;
                                             | }
    ; assembly                               | /* r2dec pseudo code output */
                                             | /* /logs/firmware/unblob_extracted/firmware_extract/4325012-58052244.squashfs_v4_le_extract/usr/bin/gpgv @ 0x3e974 */
                                             | #include <stdint.h>
                                             |  
    ; (fcn) sym.iobuf_open ()                | void iobuf_open () {
    0x0003e974 lui gp, 2                     |     
    0x0003e978 addiu gp, gp, 0x37bc          |     
    0x0003e97c addu gp, gp, t9               |     gp += t9;
    0x0003e980 addiu sp, sp, -0x38           |     
    0x0003e984 sw gp, 0x18(sp)               |     *(var_18h) = gp;
    0x0003e988 sw ra, 0x34(sp)               |     *(var_34h) = ra;
    0x0003e98c sw s4, 0x30(sp)               |     *(var_30h) = s4;
    0x0003e990 sw s3, 0x2c(sp)               |     *(var_2ch) = s3;
    0x0003e994 sw s2, 0x28(sp)               |     *(var_28h) = s2;
    0x0003e998 sw s1, 0x24(sp)               |     *(var_24h) = s1;
    0x0003e99c sw s0, 0x20(sp)               |     *(var_20h) = s0;
    0x0003e9a0 addiu v0, zero, 0x2d          |     v0 = 0x2d;
                                             |     if (a0 != 0) {
    0x0003e9a4 beqz a0, 0x3e9c0              |         
    0x0003e9a8 lb v1, (a0)                   |         v1 = *(a0);
    0x0003e9ac move s0, a0                   |         s0 = a0;
                                             |         if (v1 != v0) {
    0x0003e9b0 bne v1, v0, 0x3ea78           |             goto label_6;
                                             |         }
    0x0003e9b4 lb v0, 1(a0)                  |         v0 = *((a0 + 1));
    0x0003e9b8 lw t9, -0x7fdc(gp)            |         t9 = *(gp);
                                             |         if (v0 != 0) {
    0x0003e9bc bnez v0, 0x3ea7c              |             goto label_7;
                                             |         }
                                             |     }
    0x0003e9c0 lw t9, -0x7970(gp)            |     t9 = sym.iobuf_alloc;
    0x0003e9c4 addiu a1, zero, 0x2000        |     a1 = 0x2000;
    0x0003e9c8 addiu a0, zero, 1             |     a0 = 1;
    0x0003e9cc bal 0x3e698                   |     sym_iobuf_alloc ();
    0x0003e9d0 lw gp, 0x18(sp)               |     gp = *(var_18h);
    0x0003e9d4 addiu a0, zero, 0x1f          |     a0 = 0x1f;
    0x0003e9d8 lw t9, -0x7f28(gp)            |     t9 = sym.xmalloc;
    0x0003e9dc move s2, v0                   |     s2 = v0;
    0x0003e9e0 bal 0x3cb1c                   |     sym_xmalloc ();
    0x0003e9e4 lw gp, 0x18(sp)               |     gp = *(var_18h);
    0x0003e9e8 move s1, v0                   |     s1 = v0;
    0x0003e9ec sw zero, (v0)                 |     *(v0) = 0;
    0x0003e9f0 lw v1, -0x7d90(gp)            |     v1 = *((gp - 8036));
    0x0003e9f4 addiu v0, zero, 1             |     v0 = 1;
                                             |     /* str._stdin_ */
    0x0003e9f8 addiu s0, v1, -0x7e0c         |     s0 = v1 + -0x7e0c;
    0x0003e9fc lw a0, -0x7e0c(v1)            |     a0 = *((v1 - 8067));
    0x0003ea00 sw v0, 0x10(s1)               |     *((s1 + 4)) = v0;
    0x0003ea04 addiu v0, s1, 0x14            |     v0 = s1 + 0x14;
    0x0003ea08 swl a0, 0x17(s1)              |     __asm ("swl a0, 0x17(s1)");
    0x0003ea0c lw v1, 4(s0)                  |     v1 = *((s0 + 1));
    0x0003ea10 swr a0, (v0)                  |     __asm ("swr a0, (v0)");
    0x0003ea14 swl v1, 7(v0)                 |     __asm ("swl v1, 7(v0)");
    0x0003ea18 swr v1, 4(v0)                 |     __asm ("swr v1, 4(v0)");
    0x0003ea1c lw v0, -0x7fdc(gp)            |     v0 = *(gp);
    0x0003ea20 lw s4, -0x7974(gp)            |     s4 = *(gp);
    0x0003ea24 addiu v0, v0, -0x2884         |     v0 += -0x2884;
    0x0003ea28 sw v0, 0x40(s2)               |     *((s2 + 16)) = v0;
    0x0003ea2c lw v0, -0x7d90(gp)            |     v0 = *((gp - 8036));
    0x0003ea30 lw v1, (s4)                   |     v1 = *(s4);
                                             |     /* str.file_filter_fd_ */
    0x0003ea34 addiu v0, v0, -0x6ed8         |     v0 += -0x6ed8;
    0x0003ea38 sw s1, 0x44(s2)               |     *((s2 + 17)) = s1;
    0x0003ea3c sw v0, 0x5c(s2)               |     *((s2 + 23)) = v0;
    0x0003ea40 move a0, zero                 |     a0 = 0;
    0x0003ea44 sw zero, 0xc(s1)              |     *((s1 + 3)) = 0;
    0x0003ea48 sw zero, 4(s1)                |     *((s1 + 1)) = 0;
    0x0003ea4c sw zero, 8(s1)                |     *((s1 + 2)) = 0;
                                             |     if (v1 != 0) {
    0x0003ea50 bnez v1, 0x3ebb0              |         goto label_8;
                                             |     }
                                             | label_0:
    0x0003ea54 lw ra, 0x34(sp)               |     ra = *(var_34h);
                                             | label_3:
    0x0003ea58 move v0, s2                   |     v0 = s2;
    0x0003ea5c lw s4, 0x30(sp)               |     s4 = *(var_30h);
    0x0003ea60 lw s3, 0x2c(sp)               |     s3 = *(var_2ch);
    0x0003ea64 lw s2, 0x28(sp)               |     s2 = *(var_28h);
    0x0003ea68 lw s1, 0x24(sp)               |     s1 = *(var_24h);
    0x0003ea6c lw s0, 0x20(sp)               |     s0 = *(var_20h);
    0x0003ea70 addiu sp, sp, 0x38            |     
    0x0003ea74 jr ra                         |     return v1;
                                             | label_6:
    0x0003ea78 lw t9, -0x7fdc(gp)            |     t9 = *(gp);
                                             |     /* fcn.0003d6e8 */
                                             | label_7:
    0x0003ea7c addiu t9, t9, -0x2918         |     t9 += -0x2918;
    0x0003ea80 move a0, s0                   |     a0 = s0;
    0x0003ea84 bal 0x3d6e8                   |     fcn_0003d6e8 ();
    0x0003ea88 addiu v1, zero, -1            |     v1 = -1;
    0x0003ea8c lw gp, 0x18(sp)               |     gp = *(var_18h);
                                             |     if (v0 != v1) {
    0x0003ea90 bne v0, v1, 0x3ebf4           |         goto label_9;
                                             |     }
    0x0003ea94 lw v0, -0x7fb4(gp)            |     v0 = *((gp - 8173));
    0x0003ea98 lw s1, -0x48c0(v0)            |     s1 = *((v0 - 4656));
    0x0003ea9c lw s4, -0x7974(gp)            |     s4 = *(gp);
                                             |     if (s1 == 0) {
    0x0003eaa0 beqz s1, 0x3eadc              |         goto label_10;
                                             |     }
    0x0003eaa4 addiu s2, zero, -1            |     s2 = -1;
    0x0003eaa8 lw s3, 4(s1)                  |     s3 = *((s1 + 1));
                                             |     do {
    0x0003eaac lw t9, -0x77e0(gp)            |         t9 = sym.imp.strcmp;
    0x0003eab0 addiu a0, s1, 8               |         a0 = s1 + 8;
    0x0003eab4 move a1, s0                   |         a1 = s0;
                                             |         if (s3 != s2) {
    0x0003eab8 beq s3, s2, 0x3eacc           |             
    0x0003eabc jalr t9                       |             t9 ();
    0x0003eac0 nop                           |             
    0x0003eac4 lw gp, 0x18(sp)               |             gp = *(var_18h);
                                             |             if (v0 == 0) {
    0x0003eac8 beqz v0, 0x3ec24              |                 goto label_11;
                                             |             }
                                             |         }
    0x0003eacc lw s1, (s1)                   |         s1 = *(s1);
    0x0003ead0 lw s3, 4(s1)                  |         s3 = *((s1 + 1));
    0x0003ead4 bnel s1, zero, 0x3eaac        |         
                                             |     } while (s1 == 0);
    0x0003ead8 lw s4, -0x7974(gp)            |     s4 = *(gp);
                                             | label_10:
    0x0003eadc lw v0, (s4)                   |     v0 = *(s4);
    0x0003eae0 lw a0, -0x7d90(gp)            |     a0 = *((gp - 8036));
                                             |     if (v0 != 0) {
    0x0003eae4 bnez v0, 0x3eca4              |         goto label_12;
                                             |     }
                                             | label_4:
    0x0003eae8 lw a1, -0x7fdc(gp)            |     a1 = *(gp);
    0x0003eaec lw t9, -0x7fdc(gp)            |     t9 = *(gp);
                                             |     /* esilref: 'rb' */
    0x0003eaf0 addiu a1, a1, 0x31f8          |     a1 += 0x31f8;
                                             |     /* fcn.0003e3d0 */
    0x0003eaf4 addiu t9, t9, -0x1c30         |     t9 += -0x1c30;
    0x0003eaf8 move a0, s0                   |     a0 = s0;
    0x0003eafc bal 0x3e3d0                   |     fcn_0003e3d0 ();
    0x0003eb00 move s3, v0                   |     s3 = v0;
    0x0003eb04 addiu v0, zero, -1            |     v0 = -1;
    0x0003eb08 lw gp, 0x18(sp)               |     gp = *(var_18h);
                                             |     if (s3 == v0) {
    0x0003eb0c beq s3, v0, 0x3ecd4           |         goto label_13;
                                             |     }
                                             | label_1:
    0x0003eb10 lw t9, -0x7970(gp)            |     t9 = sym.iobuf_alloc;
                                             | label_2:
    0x0003eb14 addiu a1, zero, 0x2000        |     a1 = 0x2000;
    0x0003eb18 addiu a0, zero, 1             |     a0 = 1;
    0x0003eb1c bal 0x3e698                   |     sym_iobuf_alloc ();
    0x0003eb20 lw gp, 0x18(sp)               |     gp = *(var_18h);
    0x0003eb24 move a0, s0                   |     a0 = s0;
    0x0003eb28 lw t9, -0x78a0(gp)            |     t9 = sym.imp.strlen;
    0x0003eb2c move s2, v0                   |     s2 = v0;
    0x0003eb30 jalr t9                       |     t9 ();
    0x0003eb34 lw gp, 0x18(sp)               |     gp = *(var_18h);
    0x0003eb38 lw t9, -0x7f28(gp)            |     t9 = sym.xmalloc;
    0x0003eb3c addiu a0, v0, 0x18            |     a0 = v0 + 0x18;
    0x0003eb40 bal 0x3cb1c                   |     sym_xmalloc ();
    0x0003eb44 lw gp, 0x18(sp)               |     gp = *(var_18h);
    0x0003eb48 move a1, s0                   |     a1 = s0;
    0x0003eb4c addiu a0, v0, 0x14            |     a0 = v0 + 0x14;
    0x0003eb50 lw t9, -0x7854(gp)            |     t9 = sym.imp.strcpy
    0x0003eb54 sw s3, (v0)                   |     *(v0) = s3;
    0x0003eb58 sw zero, 0x10(v0)             |     *((v0 + 4)) = 0;
    0x0003eb5c move s1, v0                   |     s1 = v0;
    0x0003eb60 jalr t9                       |     t9 ();
    0x0003eb64 lw gp, 0x18(sp)               |     gp = *(var_18h);
    0x0003eb68 lw t9, -0x7e4c(gp)            |     t9 = sym.xstrdup;
    0x0003eb6c move a0, s0                   |     a0 = s0;
    0x0003eb70 bal 0x3cdc8                   |     sym_xstrdup ();
    0x0003eb74 lw gp, 0x18(sp)               |     gp = *(var_18h);
    0x0003eb78 sw v0, 0x4c(s2)               |     *((s2 + 19)) = v0;
    0x0003eb7c lw a0, (s1)                   |     a0 = *(s1);
    0x0003eb80 lw v0, -0x7fdc(gp)            |     v0 = *(gp);
    0x0003eb84 lw v1, (s4)                   |     v1 = *(s4);
    0x0003eb88 addiu v0, v0, -0x2884         |     v0 += -0x2884;
    0x0003eb8c sw v0, 0x40(s2)               |     *((s2 + 16)) = v0;
    0x0003eb90 lw v0, -0x7d90(gp)            |     v0 = *((gp - 8036));
    0x0003eb94 sw s1, 0x44(s2)               |     *((s2 + 17)) = s1;
                                             |     /* str.file_filter_fd_ */
    0x0003eb98 addiu v0, v0, -0x6ed8         |     v0 += -0x6ed8;
    0x0003eb9c sw v0, 0x5c(s2)               |     *((s2 + 23)) = v0;
    0x0003eba0 sw zero, 0xc(s1)              |     *((s1 + 3)) = 0;
    0x0003eba4 sw zero, 4(s1)                |     *((s1 + 1)) = 0;
    0x0003eba8 sw zero, 8(s1)                |     *((s1 + 2)) = 0;
                                             |     if (v1 == 0) {
    0x0003ebac beqz v1, 0x3ea54              |         goto label_0;
                                             |     }
                                             | label_8:
    0x0003ebb0 lw a2, 0x58(s2)               |     a2 = *((s2 + 22));
    0x0003ebb4 lw a1, 0x54(s2)               |     a1 = *((s2 + 21));
    0x0003ebb8 sw a0, 0x10(sp)               |     *(var_10h) = a0;
    0x0003ebbc lw a0, -0x7d90(gp)            |     a0 = *((gp - 8036));
    0x0003ebc0 lw t9, -0x7f5c(gp)            |     t9 = sym.g10_log_debug;
    0x0003ebc4 move a3, s0                   |     a3 = s0;
                                             |     /* str.iobuf__d._d:_open___s_fd_d_n */
    0x0003ebc8 addiu a0, a0, -0x6b64         |     a0 += -0x6b64;
    0x0003ebcc bal 0x388a0                   |     sym_g10_log_debug ();
    0x0003ebd0 lw ra, 0x34(sp)               |     ra = *(var_34h);
    0x0003ebd4 move v0, s2                   |     v0 = s2;
    0x0003ebd8 lw s4, 0x30(sp)               |     s4 = *(var_30h);
    0x0003ebdc lw s3, 0x2c(sp)               |     s3 = *(var_2ch);
    0x0003ebe0 lw s2, 0x28(sp)               |     s2 = *(var_28h);
    0x0003ebe4 lw s1, 0x24(sp)               |     s1 = *(var_24h);
    0x0003ebe8 lw s0, 0x20(sp)               |     s0 = *(var_20h);
    0x0003ebec addiu sp, sp, 0x38            |     
    0x0003ebf0 jr ra                         |     return v1;
                                             | label_9:
    0x0003ebf4 lw a1, -0x7fdc(gp)            |     a1 = *(gp);
    0x0003ebf8 lw ra, 0x34(sp)               |     ra = *(var_34h);
    0x0003ebfc lw s4, 0x30(sp)               |     s4 = *(var_30h);
    0x0003ec00 lw s3, 0x2c(sp)               |     s3 = *(var_2ch);
    0x0003ec04 lw s2, 0x28(sp)               |     s2 = *(var_28h);
    0x0003ec08 lw s1, 0x24(sp)               |     s1 = *(var_24h);
    0x0003ec0c lw s0, 0x20(sp)               |     s0 = *(var_20h);
    0x0003ec10 lw t9, -0x796c(gp)            |     t9 = sym.iobuf_fdopen;
                                             |     /* esilref: 'rb' */
    0x0003ec14 addiu a1, a1, 0x31f8          |     a1 += 0x31f8;
    0x0003ec18 move a0, v0                   |     a0 = v0;
    0x0003ec1c addiu sp, sp, 0x38            |     
    0x0003ec20 b 0x3e830                     |     void (*0x3e830)() ();
                                             | label_11:
    0x0003ec24 lw s4, -0x7974(gp)            |     s4 = *(gp);
    0x0003ec28 sw s2, 4(s1)                  |     *((s1 + 1)) = s2;
    0x0003ec2c lw v0, (s4)                   |     v0 = *(s4);
    0x0003ec30 lw a0, -0x7d90(gp)            |     a0 = *((gp - 8036));
                                             |     if (v0 != 0) {
    0x0003ec34 bnez v0, 0x3ecbc              |         goto label_14;
                                             |     }
                                             | label_5:
    0x0003ec38 lw t9, -0x7858(gp)            |     t9 = sym.imp.lseek64;
    0x0003ec3c move a0, s3                   |     a0 = s3;
    0x0003ec40 sw zero, 0x10(sp)             |     *(var_10h) = 0;
    0x0003ec44 move a2, zero                 |     a2 = 0;
    0x0003ec48 move a3, zero                 |     a3 = 0;
    0x0003ec4c jalr t9                       |     t9 ();
    0x0003ec50 addiu a0, zero, -1            |     a0 = -1;
    0x0003ec54 lw gp, 0x18(sp)               |     gp = *(var_18h);
                                             |     if (v0 != a0) {
    0x0003ec58 bne v0, a0, 0x3eb10           |         goto label_1;
                                             |     }
    0x0003ec5c lw t9, -0x7970(gp)            |     t9 = sym.iobuf_alloc;
                                             |     if (v1 != v0) {
    0x0003ec60 bne v1, v0, 0x3eb14           |         goto label_2;
                                             |     }
    0x0003ec64 lw t9, -0x78c4(gp)            |     t9 = sym.imp.__errno_location;
    0x0003ec68 move s2, zero                 |     s2 = 0;
    0x0003ec6c jalr t9                       |     t9 ();
    0x0003ec70 lw gp, 0x18(sp)               |     gp = *(var_18h);
    0x0003ec74 lw t9, -0x787c(gp)            |     t9 = sym.imp.strerror;
    0x0003ec78 lw a0, (v0)                   |     a0 = *(v0);
    0x0003ec7c jalr t9                       |     t9 ();
    0x0003ec80 lw gp, 0x18(sp)               |     gp = *(var_18h);
    0x0003ec84 move a2, v0                   |     a2 = v0;
    0x0003ec88 move a1, s3                   |     a1 = s3;
    0x0003ec8c lw a0, -0x7d90(gp)            |     a0 = *((gp - 8036));
    0x0003ec90 lw t9, -0x7f84(gp)            |     t9 = sym.g10_log_error;
                                             |     /* str.cant_rewind_fd__d:__s_n */
    0x0003ec94 addiu a0, a0, -0x6b9c         |     a0 += -0x6b9c;
    0x0003ec98 bal 0x38550                   |     sym_g10_log_error ();
    0x0003ec9c lw ra, 0x34(sp)               |     ra = *(var_34h);
    0x0003eca0 b 0x3ea58                     |     goto label_3;
                                             | label_12:
    0x0003eca4 lw t9, -0x7f5c(gp)            |     t9 = sym.g10_log_debug;
    0x0003eca8 move a1, s0                   |     a1 = s0;
                                             |     /* str.fd_cache_open___s__not_cached_n */
    0x0003ecac addiu a0, a0, -0x6b84         |     a0 += -0x6b84;
    0x0003ecb0 bal 0x388a0                   |     sym_g10_log_debug ();
    0x0003ecb4 lw gp, 0x18(sp)               |     gp = *(var_18h);
    0x0003ecb8 b 0x3eae8                     |     goto label_4;
                                             | label_14:
    0x0003ecbc lw t9, -0x7f5c(gp)            |     t9 = sym.g10_log_debug;
    0x0003ecc0 move a1, s0                   |     a1 = s0;
                                             |     /* str.fd_cache_open___s__using_cached_fp_n */
    0x0003ecc4 addiu a0, a0, -0x6bc0         |     a0 += -0x6bc0;
    0x0003ecc8 bal 0x388a0                   |     sym_g10_log_debug ();
    0x0003eccc lw gp, 0x18(sp)               |     gp = *(var_18h);
    0x0003ecd0 b 0x3ec38                     |     goto label_5;
                                             | label_13:
    0x0003ecd4 move s2, zero                 |     s2 = 0;
    0x0003ecd8 b 0x3ea54                     |     goto label_0;
                                             | }
    ; assembly                                       | /* r2dec pseudo code output */
                                                     | /* /logs/firmware/unblob_extracted/firmware_extract/4325012-58052244.squashfs_v4_le_extract/usr/bin/gpgv @ 0xdf94 */
                                                     | #include <stdint.h>
                                                     |  
    ; (fcn) sym.keyring_register_filename ()         | void keyring_register_filename () {
    0x0000df94 lui gp, 5                             |     
    0x0000df98 addiu gp, gp, 0x419c                  |     
    0x0000df9c addu gp, gp, t9                       |     gp += t9;
    0x0000dfa0 lw v0, -0x7fb4(gp)                    |     v0 = *((gp - 8173));
    0x0000dfa4 addiu sp, sp, -0x38                   |     
    0x0000dfa8 lw v0, -0x5394(v0)                    |     v0 = *((v0 - 5349));
    0x0000dfac sw gp, 0x10(sp)                       |     *(var_10h) = gp;
    0x0000dfb0 sw ra, 0x34(sp)                       |     *(var_34h) = ra;
    0x0000dfb4 sw s5, 0x30(sp)                       |     *(var_30h) = s5;
    0x0000dfb8 sw s4, 0x2c(sp)                       |     *(var_2ch) = s4;
    0x0000dfbc sw s3, 0x28(sp)                       |     *(var_28h) = s3;
    0x0000dfc0 sw s2, 0x24(sp)                       |     *(var_24h) = s2;
    0x0000dfc4 sw s1, 0x20(sp)                       |     *(var_20h) = s1;
    0x0000dfc8 sw s0, 0x1c(sp)                       |     *(var_1ch) = s0;
    0x0000dfcc lw s3, -0x7fb4(gp)                    |     s3 = *((gp - 8173));
                                                     |     if (v0 != 0) {
    0x0000dfd0 bnez v0, 0xe0f8                       |         goto label_1;
                                                     |     }
    0x0000dfd4 move s1, a0                           |     s1 = a0;
    0x0000dfd8 move s2, a1                           |     s2 = a1;
    0x0000dfdc lw s0, -0x5390(s3)                    |     s0 = *((s3 - 5348));
    0x0000dfe0 move s4, a2                           |     s4 = a2;
                                                     |     if (s0 != 0) {
    0x0000dfe4 bnez s0, 0xdffc                       |         goto label_2;
                                                     |     }
    0x0000dfe8 b 0xe03c                              |     goto label_3;
    0x0000dfec nop                                   |     
                                                     |     do {
    0x0000dff0 lw s0, (s0)                           |         s0 = *(s0);
                                                     |         if (s0 == 0) {
    0x0000dff4 beqz s0, 0xe03c                       |             goto label_3;
                                                     |         }
    0x0000dff8 nop                                   |         
                                                     | label_2:
    0x0000dffc lw t9, -0x7dec(gp)                    |         t9 = sym.compare_filenames;
    0x0000e000 move a1, s1                           |         a1 = s1;
    0x0000e004 addiu a0, s0, 0x14                    |         a0 = s0 + 0x14;
    0x0000e008 jalr t9                               |         t9 ();
    0x0000e00c lw gp, 0x10(sp)                       |         gp = *(var_10h);
    0x0000e010 bnez v0, 0xdff0                       |         
                                                     |     } while (v0 != 0);
    0x0000e014 lw ra, 0x34(sp)                       |     ra = *(var_34h);
    0x0000e018 sw s0, (s4)                           |     *(s4) = s0;
    0x0000e01c lw s5, 0x30(sp)                       |     s5 = *(var_30h);
    0x0000e020 lw s4, 0x2c(sp)                       |     s4 = *(var_2ch);
    0x0000e024 lw s3, 0x28(sp)                       |     s3 = *(var_28h);
    0x0000e028 lw s2, 0x24(sp)                       |     s2 = *(var_24h);
    0x0000e02c lw s1, 0x20(sp)                       |     s1 = *(var_20h);
    0x0000e030 lw s0, 0x1c(sp)                       |     s0 = *(var_1ch);
    0x0000e034 addiu sp, sp, 0x38                    |     
    0x0000e038 jr ra                                 |     return v0;
                                                     | label_3:
    0x0000e03c lw t9, -0x7de8(gp)                    |     t9 = sym.register_secured_file;
    0x0000e040 bnez s2, 0xe0d4                       |     
                                                     |     while (1) {
    0x0000e044 lw t9, -0x78a0(gp)                    |         t9 = sym.imp.strlen;
    0x0000e048 move a0, s1                           |         a0 = s1;
    0x0000e04c jalr t9                               |         t9 ();
    0x0000e050 lw gp, 0x10(sp)                       |         gp = *(var_10h);
    0x0000e054 addiu a0, v0, 0x18                    |         a0 = v0 + 0x18;
    0x0000e058 lw t9, -0x7f28(gp)                    |         t9 = sym.xmalloc;
    0x0000e05c sltu s2, zero, s2                     |         s2 = (0 < s2) ? 1 : 0;
    0x0000e060 jalr t9                               |         t9 ();
    0x0000e064 lw gp, 0x10(sp)                       |         gp = *(var_10h);
    0x0000e068 move a1, s1                           |         a1 = s1;
    0x0000e06c addiu a0, v0, 0x14                    |         a0 = v0 + 0x14;
    0x0000e070 lw s5, -0x7fb4(gp)                    |         s5 = *((gp - 8173));
    0x0000e074 lw t9, -0x7854(gp)                    |         t9 = sym.imp.strcpy
    0x0000e078 move s0, v0                           |         s0 = v0;
    0x0000e07c jalr t9                               |         t9 ();
    0x0000e080 lw v1, -0x5390(s3)                    |         v1 = *((s3 - 5348));
    0x0000e084 lw v0, -0x5398(s5)                    |         v0 = *((s5 - 5350));
    0x0000e088 lw gp, 0x10(sp)                       |         gp = *(var_10h);
    0x0000e08c sw s2, 4(s0)                          |         *((s0 + 1)) = s2;
    0x0000e090 sw zero, 8(s0)                        |         *((s0 + 2)) = 0;
    0x0000e094 sw zero, 0xc(s0)                      |         *((s0 + 3)) = 0;
    0x0000e098 sw zero, 0x10(s0)                     |         *((s0 + 4)) = 0;
    0x0000e09c sw v1, (s0)                           |         *(s0) = v1;
    0x0000e0a0 sw s0, -0x5390(s3)                    |         *((s3 - 5348)) = s0;
                                                     |         if (v0 == 0) {
    0x0000e0a4 beqz v0, 0xe0e4                       |             goto label_4;
                                                     |         }
                                                     | label_0:
    0x0000e0a8 lw ra, 0x34(sp)                       |         ra = *(var_34h);
    0x0000e0ac sw s0, (s4)                           |         *(s4) = s0;
    0x0000e0b0 lw s5, 0x30(sp)                       |         s5 = *(var_30h);
    0x0000e0b4 lw s4, 0x2c(sp)                       |         s4 = *(var_2ch);
    0x0000e0b8 lw s3, 0x28(sp)                       |         s3 = *(var_28h);
    0x0000e0bc lw s2, 0x24(sp)                       |         s2 = *(var_24h);
    0x0000e0c0 lw s1, 0x20(sp)                       |         s1 = *(var_20h);
    0x0000e0c4 lw s0, 0x1c(sp)                       |         s0 = *(var_1ch);
    0x0000e0c8 addiu v0, zero, 1                     |         v0 = 1;
    0x0000e0cc addiu sp, sp, 0x38                    |         
    0x0000e0d0 jr ra                                 |         return v0;
    0x0000e0d4 move a0, s1                           |         a0 = s1;
    0x0000e0d8 bal 0x180bc                           |         sym_register_secured_file ();
    0x0000e0dc lw gp, 0x10(sp)                       |         gp = *(var_10h);
    0x0000e0e0 b 0xe044                              |         
                                                     |     }
                                                     | label_4:
    0x0000e0e4 lw t9, -0x7f2c(gp)                    |     t9 = sym.xmalloc_clear;
    0x0000e0e8 addiu a0, zero, 0x2000                |     a0 = 0x2000;
    0x0000e0ec jalr t9                               |     t9 ();
    0x0000e0f0 sw v0, -0x5398(s5)                    |     *((s5 - 5350)) = v0;
    0x0000e0f4 b 0xe0a8                              |     goto label_0;
                                                     | label_1:
    0x0000e0f8 lw a2, -0x7fdc(gp)                    |     a2 = *(gp);
    0x0000e0fc lw a0, -0x7fdc(gp)                    |     a0 = *(gp);
    0x0000e100 lw t9, -0x7f18(gp)                    |     t9 = sym.g10_log_bug0;
                                                     |     /* str.keyring_register_filename */
    0x0000e104 addiu a2, a2, 0x35c8                  |     a2 += 0x35c8;
    0x0000e108 addiu a1, zero, 0xce                  |     a1 = 0xce;
                                                     |     /* str..._.._gnupg_1.4.7_g10_keyring.c */
    0x0000e10c addiu a0, a0, 0x337c                  |     a0 += 0x337c;
    0x0000e110 jalr t9                               |     return t9 ();
                                                     | }
    ; assembly                               | /* r2dec pseudo code output */
                                             | /* /logs/firmware/unblob_extracted/firmware_extract/4325012-58052244.squashfs_v4_le_extract/usr/bin/gpgv @ 0x3a2fc */
                                             | #include <stdint.h>
                                             |  
    ; (fcn) sym.native_to_utf8 ()            | void native_to_utf8 () {
                                             | label_5:
    0x0003a2fc lui gp, 2                     |     
    0x0003a300 addiu gp, gp, 0x7e34          |     
    0x0003a304 addu gp, gp, t9               |     gp += t9;
    0x0003a308 addiu sp, sp, -0x58           |     
    0x0003a30c lw v0, -0x7fb4(gp)            |     v0 = *((gp - 8173));
    0x0003a310 sw s2, 0x40(sp)               |     *(var_40h) = s2;
    0x0003a314 lw s2, -0x781c(gp)            |     s2 = *((gp - 7687));
    0x0003a318 lw v0, -0x493c(v0)            |     v0 = *((v0 - 4687));
    0x0003a31c sw gp, 0x18(sp)               |     *(var_18h) = gp;
    0x0003a320 lw v1, (s2)                   |     v1 = *(s2);
    0x0003a324 sw ra, 0x54(sp)               |     *(var_54h) = ra;
    0x0003a328 sw s6, 0x50(sp)               |     *(var_50h) = s6;
    0x0003a32c sw s5, 0x4c(sp)               |     *(var_4ch) = s5;
    0x0003a330 sw s4, 0x48(sp)               |     *(var_48h) = s4;
    0x0003a334 sw s3, 0x44(sp)               |     *(var_44h) = s3;
    0x0003a338 sw s1, 0x3c(sp)               |     *(var_3ch) = s1;
    0x0003a33c sw s0, 0x38(sp)               |     *(var_38h) = s0;
    0x0003a340 sw v1, 0x34(sp)               |     *(var_34h) = v1;
    0x0003a344 lw t9, -0x7e4c(gp)            |     t9 = sym.xstrdup;
                                             |     if (v0 != 0) {
    0x0003a348 bnez v0, 0x3a538              |         goto label_9;
                                             |     }
    0x0003a34c lw v0, -0x7fb4(gp)            |     v0 = *((gp - 8173));
    0x0003a350 lw v0, -0x4938(v0)            |     v0 = *((v0 - 4686));
    0x0003a354 move s1, a0                   |     s1 = a0;
                                             |     if (v0 == 0) {
    0x0003a358 beqz v0, 0x3a470              |         goto label_10;
                                             |     }
    0x0003a35c lw s5, -0x7fb4(gp)            |     s5 = *((gp - 8173));
                                             | label_1:
    0x0003a360 lw s4, -0x7d90(gp)            |     s4 = *((gp - 8036));
    0x0003a364 lw t9, -0x7870(gp)            |     t9 = sym.imp.iconv_open;
    0x0003a368 lw a1, -0x5ecc(s5)            |     a1 = *((s5 - 6067));
                                             |     /* str.utf_8 */
    0x0003a36c addiu a0, s4, -0x7dd0         |     a0 = s4 + -0x7dd0;
    0x0003a370 jalr t9                       |     t9 ();
    0x0003a374 move s3, v0                   |     s3 = v0;
    0x0003a378 addiu v0, zero, -1            |     v0 = -1;
    0x0003a37c lw gp, 0x18(sp)               |     gp = *(var_18h);
                                             |     if (s3 == v0) {
    0x0003a380 beq s3, v0, 0x3a54c           |         goto label_11;
                                             |     }
    0x0003a384 lbu v0, (s1)                  |     v0 = *(s1);
    0x0003a388 move v1, s1                   |     v1 = s1;
                                             |     if (v0 == 0) {
    0x0003a38c beqz v0, 0x3a5f0              |         goto label_12;
                                             |     }
    0x0003a390 move s0, zero                 |     s0 = 0;
    0x0003a394 b 0x3a3a4                     |     
                                             |     while (v0 >= 0) {
    0x0003a398 lbu v0, (v1)                  |         v0 = *(v1);
    0x0003a39c addiu s0, s0, 1               |         s0++;
                                             |         if (v0 == 0) {
    0x0003a3a0 beqz v0, 0x3a3bc              |             goto label_13;
                                             |         }
                                             | label_0:
    0x0003a3a4 seb v0, v0                    |         __asm ("seb v0, v0");
    0x0003a3a8 addiu v1, v1, 1               |         v1++;
    0x0003a3ac bgez v0, 0x3a398              |         
                                             |     }
    0x0003a3b0 lbu v0, (v1)                  |     v0 = *(v1);
    0x0003a3b4 addiu s0, s0, 6               |     s0 += 6;
                                             |     if (v0 != 0) {
    0x0003a3b8 bnez v0, 0x3a3a4              |         goto label_0;
                                             |     }
                                             | label_13:
    0x0003a3bc addiu a0, s0, 1               |     a0 = s0 + 1;
                                             | label_7:
    0x0003a3c0 lw t9, -0x7f28(gp)            |     t9 = sym.xmalloc;
    0x0003a3c4 bal 0x3cb1c                   |     sym_xmalloc ();
    0x0003a3c8 nop                           |     
    0x0003a3cc lw gp, 0x18(sp)               |     gp = *(var_18h);
    0x0003a3d0 move a0, s1                   |     a0 = s1;
    0x0003a3d4 sw s1, 0x24(sp)               |     *(var_24h_2) = s1;
    0x0003a3d8 lw t9, -0x78a0(gp)            |     t9 = sym.imp.strlen;
    0x0003a3dc move s6, v0                   |     s6 = v0;
    0x0003a3e0 jalr t9                       |     t9 ();
    0x0003a3e4 lw gp, 0x18(sp)               |     gp = *(var_18h);
    0x0003a3e8 addiu v1, sp, 0x30            |     v1 = sp + 0x30;
    0x0003a3ec sw v1, 0x10(sp)               |     *(var_10h) = v1;
    0x0003a3f0 lw t9, -0x77dc(gp)            |     t9 = sym.imp.iconv;
    0x0003a3f4 addiu a3, sp, 0x28            |     a3 = sp + 0x28;
    0x0003a3f8 addiu a2, sp, 0x2c            |     a2 = sp + 0x2c;
    0x0003a3fc addiu a1, sp, 0x24            |     a1 = sp + 0x24;
    0x0003a400 move a0, s3                   |     a0 = s3;
    0x0003a404 sw v0, 0x2c(sp)               |     *(var_2ch_2) = v0;
    0x0003a408 sw s6, 0x28(sp)               |     *(var_28h) = s6;
    0x0003a40c sw s0, 0x30(sp)               |     *(var_30h_2) = s0;
    0x0003a410 jalr t9                       |     t9 ();
    0x0003a414 addiu v1, zero, -1            |     v1 = -1;
    0x0003a418 lw gp, 0x18(sp)               |     gp = *(var_18h);
                                             |     if (v0 == v1) {
    0x0003a41c beq v0, v1, 0x3a580           |         goto label_14;
                                             |     }
    0x0003a420 lw v0, 0x28(sp)               |     v0 = *(var_28h);
    0x0003a424 sb zero, (v0)                 |     *(v0) = 0;
                                             | label_6:
    0x0003a428 lw t9, -0x77d8(gp)            |     t9 = sym.imp.iconv_close;
    0x0003a42c move a0, s3                   |     a0 = s3;
    0x0003a430 jalr t9                       |     t9 ();
    0x0003a434 lw gp, 0x18(sp)               |     gp = *(var_18h);
                                             | label_4:
    0x0003a438 lw a0, 0x34(sp)               |     a0 = *(var_34h);
    0x0003a43c lw v1, (s2)                   |     v1 = *(s2);
    0x0003a440 move v0, s6                   |     v0 = s6;
                                             |     if (a0 != v1) {
    0x0003a444 bne a0, v1, 0x3a604           |         goto label_15;
                                             |     }
    0x0003a448 lw ra, 0x54(sp)               |     ra = *(var_54h);
    0x0003a44c lw s6, 0x50(sp)               |     s6 = *(var_50h);
    0x0003a450 lw s5, 0x4c(sp)               |     s5 = *(var_4ch);
    0x0003a454 lw s4, 0x48(sp)               |     s4 = *(var_48h);
    0x0003a458 lw s3, 0x44(sp)               |     s3 = *(var_44h);
    0x0003a45c lw s2, 0x40(sp)               |     s2 = *(var_40h);
    0x0003a460 lw s1, 0x3c(sp)               |     s1 = *(var_3ch);
    0x0003a464 lw s0, 0x38(sp)               |     s0 = *(var_38h);
    0x0003a468 addiu sp, sp, 0x58            |     
    0x0003a46c jr ra                         |     return v0;
                                             | label_10:
    0x0003a470 lw v0, -0x7fb4(gp)            |     v0 = *((gp - 8173));
    0x0003a474 lw v0, -0x4940(v0)            |     v0 = *((v0 - 4688));
    0x0003a478 lw s5, -0x7fb4(gp)            |     s5 = *((gp - 8173));
                                             |     if (v0 != 0) {
    0x0003a47c bnez v0, 0x3a360              |         goto label_1;
                                             |     }
    0x0003a480 lbu v0, (a0)                  |     v0 = *(a0);
    0x0003a484 move v1, a0                   |     v1 = a0;
                                             |     if (v0 == 0) {
    0x0003a488 beqz v0, 0x3a5fc              |         goto label_16;
                                             |     }
    0x0003a48c move a0, zero                 |     a0 = 0;
    0x0003a490 b 0x3a4a0                     |     
                                             |     while (v0 >= 0) {
    0x0003a494 lbu v0, (v1)                  |         v0 = *(v1);
    0x0003a498 addiu a0, a0, 1               |         a0++;
                                             |         if (v0 == 0) {
    0x0003a49c beqz v0, 0x3a4b8              |             goto label_17;
                                             |         }
                                             | label_2:
    0x0003a4a0 seb v0, v0                    |         __asm ("seb v0, v0");
    0x0003a4a4 addiu v1, v1, 1               |         v1++;
    0x0003a4a8 bgez v0, 0x3a494              |         
                                             |     }
    0x0003a4ac lbu v0, (v1)                  |     v0 = *(v1);
    0x0003a4b0 addiu a0, a0, 2               |     a0 += 2;
                                             |     if (v0 != 0) {
    0x0003a4b4 bnez v0, 0x3a4a0              |         goto label_2;
                                             |     }
                                             | label_17:
    0x0003a4b8 addiu a0, a0, 1               |     a0++;
                                             | label_8:
    0x0003a4bc lw t9, -0x7f28(gp)            |     t9 = sym.xmalloc;
    0x0003a4c0 bal 0x3cb1c                   |     sym_xmalloc ();
    0x0003a4c4 nop                           |     
    0x0003a4c8 lbu v1, (s1)                  |     v1 = *(s1);
    0x0003a4cc lw gp, 0x18(sp)               |     gp = *(var_18h);
    0x0003a4d0 move s6, v0                   |     s6 = v0;
                                             |     if (v1 == 0) {
    0x0003a4d4 beqz v1, 0x3a530              |         goto label_18;
                                             |     }
    0x0003a4d8 addiu a2, zero, -0x40         |     a2 = -0x40;
    0x0003a4dc addiu a1, zero, -0x80         |     a1 = -0x80;
    0x0003a4e0 b 0x3a4f4                     |     
                                             |     while (a0 >= 0) {
    0x0003a4e4 sb v1, (v0)                   |         *(v0) = v1;
    0x0003a4e8 lbu v1, (s1)                  |         v1 = *(s1);
    0x0003a4ec addiu v0, v0, 1               |         v0++;
                                             |         if (v1 == 0) {
    0x0003a4f0 beqz v1, 0x3a530              |             goto label_18;
                                             |         }
    0x0003a4f4 seb a0, v1                    |         __asm ("seb a0, v1");
                                             | label_3:
    0x0003a4f8 bgezl a0, 0x3a4e4             |         
                                             |     }
    0x0003a4fc addiu s1, s1, 1               |     s1++;
    0x0003a500 srl v1, v1, 6                 |     v1 >>= 6;
    0x0003a504 or v1, v1, a2                 |     v1 |= a2;
    0x0003a508 sb v1, (v0)                   |     *(v0) = v1;
    0x0003a50c lbu v1, (s1)                  |     v1 = *(s1);
    0x0003a510 addiu v0, v0, 2               |     v0 += 2;
    0x0003a514 andi v1, v1, 0x3f             |     v1 &= 0x3f;
    0x0003a518 or v1, v1, a1                 |     v1 |= a1;
    0x0003a51c addiu s1, s1, 1               |     s1++;
    0x0003a520 sb v1, -1(v0)                 |     *((v0 - 1)) = v1;
    0x0003a524 lbu v1, (s1)                  |     v1 = *(s1);
    0x0003a528 seb a0, v1                    |     __asm ("seb a0, v1");
                                             |     if (v1 != 0) {
    0x0003a52c bnez v1, 0x3a4f8              |         goto label_3;
                                             |     }
                                             | label_18:
    0x0003a530 sb zero, (v0)                 |     *(v0) = 0;
    0x0003a534 b 0x3a438                     |     goto label_4;
                                             | label_9:
    0x0003a538 bal 0x3cdc8                   |     sym_xstrdup ();
    0x0003a53c nop                           |     
    0x0003a540 move s6, v0                   |     s6 = v0;
    0x0003a544 lw gp, 0x18(sp)               |     gp = *(var_18h);
    0x0003a548 b 0x3a438                     |     goto label_4;
                                             | label_11:
    0x0003a54c lw t9, -0x7fdc(gp)            |     t9 = *(gp);
    0x0003a550 lw a1, -0x5ecc(s5)            |     a1 = *((s5 - 6067));
    0x0003a554 addiu a2, zero, 1             |     a2 = 1;
                                             |     /* fcn.00039814 */
    0x0003a558 addiu t9, t9, -0x67ec         |     t9 += -0x67ec;
                                             |     /* str.utf_8 */
    0x0003a55c addiu a0, s4, -0x7dd0         |     a0 = s4 + -0x7dd0;
    0x0003a560 bal 0x39814                   |     fcn_00039814 ();
    0x0003a564 lw gp, 0x18(sp)               |     gp = *(var_18h);
    0x0003a568 lw t9, -0x7e40(gp)            |     t9 = sym.native_to_utf8;
    0x0003a56c move a0, s1                   |     a0 = s1;
    0x0003a570 bal 0x3a2fc                   |     sym_native_to_utf8 ();
                                             |     goto label_5;
    0x0003a574 move s6, v0                   |     s6 = v0;
    0x0003a578 lw gp, 0x18(sp)               |     gp = *(var_18h);
    0x0003a57c b 0x3a438                     |     goto label_4;
                                             | label_14:
    0x0003a580 lw s0, -0x7fb4(gp)            |     s0 = *((gp - 8173));
    0x0003a584 lw v0, -0x4950(s0)            |     v0 = *((s0 - 4692));
    0x0003a588 lw t9, -0x78c4(gp)            |     t9 = sym.imp.__errno_location;
    0x0003a58c beqz v0, 0x3a5b0              |     
                                             |     while (1) {
    0x0003a590 lw t9, -0x7854(gp)            |         t9 = sym.imp.strcpy
    0x0003a594 addiu v0, zero, 1             |         v0 = 1;
    0x0003a598 move a1, s1                   |         a1 = s1;
    0x0003a59c move a0, s6                   |         a0 = s6;
    0x0003a5a0 sw v0, -0x4950(s0)            |         *((s0 - 4692)) = v0;
    0x0003a5a4 jalr t9                       |         t9 ();
    0x0003a5a8 lw gp, 0x18(sp)               |         gp = *(var_18h);
    0x0003a5ac b 0x3a428                     |         goto label_6;
    0x0003a5b0 lw s5, -0x5ecc(s5)            |         s5 = *((s5 - 6067));
    0x0003a5b4 jalr t9                       |         t9 ();
    0x0003a5b8 lw gp, 0x18(sp)               |         gp = *(var_18h);
    0x0003a5bc lw t9, -0x787c(gp)            |         t9 = sym.imp.strerror;
    0x0003a5c0 lw a0, (v0)                   |         a0 = *(v0);
    0x0003a5c4 jalr t9                       |         t9 ();
    0x0003a5c8 lw gp, 0x18(sp)               |         gp = *(var_18h);
    0x0003a5cc move a3, v0                   |         a3 = v0;
                                             |         /* str.utf_8 */
    0x0003a5d0 addiu a2, s4, -0x7dd0         |         a2 = s4 + -0x7dd0;
    0x0003a5d4 lw a0, -0x7d90(gp)            |         a0 = *((gp - 8036));
    0x0003a5d8 lw t9, -0x7f30(gp)            |         t9 = sym.g10_log_info;
    0x0003a5dc move a1, s5                   |         a1 = s5;
                                             |         /* str.conversion_from___s_to___s_failed:__s_n */
    0x0003a5e0 addiu a0, a0, -0x7d50         |         a0 += -0x7d50;
    0x0003a5e4 bal 0x384ac                   |         sym_g10_log_info ();
    0x0003a5e8 lw gp, 0x18(sp)               |         gp = *(var_18h);
    0x0003a5ec b 0x3a590                     |         
                                             |     }
                                             | label_12:
    0x0003a5f0 addiu a0, zero, 1             |     a0 = 1;
    0x0003a5f4 move s0, zero                 |     s0 = 0;
    0x0003a5f8 b 0x3a3c0                     |     goto label_7;
                                             | label_16:
    0x0003a5fc addiu a0, zero, 1             |     a0 = 1;
    0x0003a600 b 0x3a4bc                     |     goto label_8;
                                             | label_15:
    0x0003a604 lw t9, -0x7834(gp)            |     t9 = sym.imp.__stack_chk_fail;
    0x0003a608 jalr t9                       |     t9 ();
    0x0003a60c nop                           |     
                                             | }
    ; assembly                               | /* r2dec pseudo code output */
                                             | /* /logs/firmware/unblob_extracted/firmware_extract/4325012-58052244.squashfs_v4_le_extract/usr/bin/gpgv @ 0x3cdc8 */
                                             | #include <stdint.h>
                                             |  
    ; (fcn) sym.xstrdup ()                   | void xstrdup () {
    0x0003cdc8 lui gp, 2                     |     
    0x0003cdcc addiu gp, gp, 0x5368          |     
    0x0003cdd0 addu gp, gp, t9               |     gp += t9;
    0x0003cdd4 addiu sp, sp, -0x20           |     
    0x0003cdd8 lw t9, -0x78a0(gp)            |     t9 = sym.imp.strlen;
    0x0003cddc sw ra, 0x1c(sp)               |     *(var_1ch) = ra;
    0x0003cde0 sw s0, 0x18(sp)               |     *(var_18h) = s0;
    0x0003cde4 sw gp, 0x10(sp)               |     *(var_10h) = gp;
    0x0003cde8 move s0, a0                   |     s0 = a0;
    0x0003cdec jalr t9                       |     t9 ();
    0x0003cdf0 lw gp, 0x10(sp)               |     gp = *(var_10h);
    0x0003cdf4 lw t9, -0x7f28(gp)            |     t9 = sym.xmalloc;
    0x0003cdf8 addiu a0, v0, 1               |     a0 = v0 + 1;
    0x0003cdfc bal 0x3cb1c                   |     sym_xmalloc ();
    0x0003ce00 lw gp, 0x10(sp)               |     gp = *(var_10h);
    0x0003ce04 move a1, s0                   |     a1 = s0;
    0x0003ce08 lw t9, -0x7854(gp)            |     t9 = sym.imp.strcpy
    0x0003ce0c move a0, v0                   |     a0 = v0;
    0x0003ce10 jalr t9                       |     t9 ();
    0x0003ce14 lw ra, 0x1c(sp)               |     ra = *(var_1ch);
    0x0003ce18 lw s0, 0x18(sp)               |     s0 = *(var_18h);
    0x0003ce1c addiu sp, sp, 0x20            |     
    0x0003ce20 jr ra                         |     return;
                                             | }

[*] Function strcpy used 11 times gpgv