[*] Binary protection state of systemd

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


[*] Function sprintf tear down of systemd

    ; assembly                           | /* r2dec pseudo code output */
                                         | /* /logs/firmware/unblob_extracted/firmware_extract/4325012-58052244.squashfs_v4_le_extract/usr/lib/systemd/systemd @ 0x862b4 */
                                         | #include <stdint.h>
                                         |  
    ; (fcn) fcn.000862b4 ()              | void fcn_000862b4 () {
                                         | label_7:
    0x000862b4 lui gp, 0xe               |     
    0x000862b8 addiu gp, gp, -0x3254     |     
    0x000862bc addu gp, gp, t9           |     gp += t9;
    0x000862c0 addiu sp, sp, -0x90       |     
    0x000862c4 sw s3, 0x74(sp)           |     *(var_74h) = s3;
    0x000862c8 lw s3, -0x6f14(gp)        |     s3 = *((gp - 7109));
    0x000862cc sw gp, 0x18(sp)           |     *(var_18h) = gp;
    0x000862d0 sw ra, 0x8c(sp)           |     *(var_8ch) = ra;
    0x000862d4 sw fp, 0x88(sp)           |     *(var_88h) = fp;
    0x000862d8 sw s7, 0x84(sp)           |     *(var_84h) = s7;
    0x000862dc sw s6, 0x80(sp)           |     *(var_80h) = s6;
    0x000862e0 sw s5, 0x7c(sp)           |     *(var_7ch) = s5;
    0x000862e4 sw s4, 0x78(sp)           |     *(var_78h) = s4;
    0x000862e8 sw s2, 0x70(sp)           |     *(var_70h) = s2;
    0x000862ec sw s1, 0x6c(sp)           |     *(var_6ch) = s1;
    0x000862f0 sw s0, 0x68(sp)           |     *(var_68h) = s0;
    0x000862f4 lw v0, (s3)               |     v0 = *(s3);
    0x000862f8 sw zero, 0x28(sp)         |     *(var_28h) = 0;
    0x000862fc sw v0, 0x64(sp)           |     *(var_64h) = v0;
    0x00086300 sw zero, 0x2c(sp)         |     *(var_2ch) = 0;
    0x00086304 sw zero, 0x30(sp)         |     *(var_30h) = 0;
    0x00086308 sw zero, 0x34(sp)         |     *(var_34h) = 0;
    0x0008630c sw zero, 0x38(sp)         |     *(var_38h) = 0;
    0x00086310 sw zero, 0x3c(sp)         |     *(var_3ch) = 0;
    0x00086314 sw zero, 0x40(sp)         |     *(var_40h) = 0;
    0x00086318 sw zero, 0x44(sp)         |     *(var_44h) = 0;
    0x0008631c sw zero, 0x48(sp)         |     *(var_48h) = 0;
    0x00086320 sw zero, 0x4c(sp)         |     *(var_4ch) = 0;
    0x00086324 sw zero, 0x50(sp)         |     *(var_50h) = 0;
    0x00086328 sw zero, 0x54(sp)         |     *(var_54h) = 0;
    0x0008632c sw zero, 0x58(sp)         |     *(var_58h) = 0;
    0x00086330 sw zero, 0x5c(sp)         |     *(var_5ch) = 0;
    0x00086334 sw zero, 0x60(sp)         |     *(var_60h) = 0;
                                         |     if (a2 == 0) {
    0x00086338 beqz a2, 0x866a8          |         goto label_8;
                                         |     }
    0x0008633c lw t9, -0x75f4(gp)        |     t9 = sym.imp.__vasprintf_chk
    0x00086340 move s2, a0               |     s2 = a0;
    0x00086344 move s0, a1               |     s0 = a1;
    0x00086348 addiu a0, sp, 0x28        |     a0 = sp + 0x28;
    0x0008634c addiu a1, zero, 1         |     a1 = 1;
    0x00086350 jalr t9                   |     t9 ();
    0x00086354 lw gp, 0x18(sp)           |     gp = *(var_18h);
                                         |     if (v0 < 0) {
    0x00086358 bltz v0, 0x86510          |         goto label_9;
                                         |     }
    0x0008635c lw a0, -0x7fd8(gp)        |     a0 = sym.imp.log_target_to_string;
    0x00086360 lw t9, -0x70ac(gp)        |     t9 = sym.imp.open_terminal;
    0x00086364 lui a1, 8                 |     a1 = 0x80801;
    0x00086368 addiu a1, a1, 0x801       |     
                                         |     /* esilref: '/dev/console' */
    0x0008636c addiu a0, a0, 0x34f8      |     a0 += 0x34f8;
    0x00086370 jalr t9                   |     t9 ();
    0x00086374 move s1, v0               |     s1 = v0;
    0x00086378 lw gp, 0x18(sp)           |     gp = *(var_18h);
                                         |     if (v0 < 0) {
    0x0008637c bltz v0, 0x8659c          |         goto label_10;
                                         |     }
    0x00086380 andi v0, s0, 1            |     v0 = s0 & 1;
    0x00086384 lw t9, -0x6990(gp)        |     t9 = sym.imp.fd_columns;
                                         |     if (v0 != 0) {
    0x00086388 bnez v0, 0x865a4          |         goto label_11;
                                         |     }
                                         | label_1:
    0x0008638c lw s7, 0x28(sp)           |     s7 = *(var_28h);
                                         | label_2:
    0x00086390 lw s6, -0x7fdc(gp)        |     s6 = *((gp - 8183));
    0x00086394 lbu fp, -0x3414(s6)       |     fp = *((s6 - 13332));
    0x00086398 andi s0, s0, 2            |     s0 &= 2;
                                         |     if (fp == 0) {
    0x0008639c beqz fp, 0x86488          |         goto label_12;
                                         |     }
    0x000863a0 lw v0, -0x7fbc(gp)        |     v0 = *(gp);
                                         |     /* str.eM_re_K */
    0x000863a4 addiu v0, v0, -0x4120     |     v0 += -0x4120;
    0x000863a8 sw v0, 0x2c(sp)           |     *(var_2ch) = v0;
    0x000863ac addiu v0, zero, 6         |     v0 = 6;
    0x000863b0 sw v0, 0x30(sp)           |     *(var_30h) = v0;
                                         |     if (s2 == 0) {
    0x000863b4 beqz s2, 0x86620          |         goto label_13;
                                         |     }
    0x000863b8 lb v0, (s2)               |     v0 = *(s2);
    0x000863bc addiu s4, zero, 2         |     s4 = 2;
    0x000863c0 addiu s5, zero, 1         |     s5 = 1;
                                         |     if (v0 != 0) {
    0x000863c4 bnez v0, 0x8649c          |         goto label_14;
                                         |     }
                                         |     do {
    0x000863c8 addiu v0, sp, 0x68        |         v0 = sp + 0x68;
    0x000863cc sll s5, s5, 3             |         s5 <<= 3;
    0x000863d0 addu s5, v0, s5           |         s5 = v0 + s5;
    0x000863d4 lw v0, -0x7fbc(gp)        |         v0 = *(gp);
                                         |         /* str._________ */
    0x000863d8 addiu v0, v0, -0x40fc     |         v0 += -0x40fc;
    0x000863dc sw v0, -0x3c(s5)          |         *(var_2ch) = v0;
    0x000863e0 addiu v0, zero, 9         |         v0 = 9;
    0x000863e4 sw v0, -0x38(s5)          |         *(var_30h) = v0;
                                         | label_0:
    0x000863e8 lw t9, -0x6dc4(gp)        |         t9 = sym.imp.strlen;
    0x000863ec move a0, s7               |         a0 = s7;
    0x000863f0 jalr t9                   |         t9 ();
    0x000863f4 lw gp, 0x18(sp)           |         gp = *(var_18h);
    0x000863f8 addiu a1, sp, 0x68        |         a1 = sp + 0x68;
    0x000863fc sll a0, s4, 3             |         a0 = s4 << 3;
    0x00086400 addu a0, a1, a0           |         a0 = a1 + a0;
    0x00086404 addiu s2, s4, 1           |         s2 = s4 + 1;
    0x00086408 sw v0, -0x38(a0)          |         *(var_38h) = v0;
    0x0008640c sll v1, s2, 3             |         v1 = s2 << 3;
    0x00086410 lw v0, -0x7fd8(gp)        |         v0 = sym.imp.log_target_to_string;
    0x00086414 addu v1, a1, v1           |         v1 = a1 + v1;
    0x00086418 addiu v0, v0, 0x4288      |         v0 += 0x4288;
    0x0008641c sw s7, -0x3c(a0)          |         *(var_34h) = s7;
    0x00086420 sw v0, -0x3c(v1)          |         *(var_3ch) = v0;
    0x00086424 addiu v0, zero, 1         |         v0 = 1;
    0x00086428 addiu a2, s4, 2           |         a2 = s4 + 2;
    0x0008642c sw v0, -0x38(v1)          |         *(var_40h) = v0;
                                         |         if (fp != 0) {
    0x00086430 beqz fp, 0x86460          |             
                                         | label_3:
    0x00086434 lw t9, -0x694c(gp)        |             t9 = sym.imp.writev;
                                         |             if (s0 != 0) {
    0x00086438 bnez s0, 0x86464          |                 goto label_15;
                                         |             }
    0x0008643c addiu v0, sp, 0x68        |             v0 = sp + 0x68;
    0x00086440 sll a2, a2, 3             |             a2 <<= 3;
    0x00086444 addu a2, v0, a2           |             a2 = v0 + a2;
    0x00086448 lw v0, -0x7fbc(gp)        |             v0 = *(gp);
    0x0008644c addiu v0, v0, -0x4118     |             v0 += -0x4118;
    0x00086450 sw v0, -0x3c(a2)          |             *(var_44h) = v0;
    0x00086454 addiu v0, zero, 3         |             v0 = 3;
    0x00086458 sw v0, -0x38(a2)          |             *(var_48h) = v0;
    0x0008645c addiu a2, s4, 3           |             a2 = s4 + 3;
                                         |         }
                                         | label_4:
    0x00086460 lw t9, -0x694c(gp)        |         t9 = sym.imp.writev;
                                         | label_15:
    0x00086464 sltu s0, zero, s0         |         s0 = (0 < s0) ? 1 : 0;
    0x00086468 addiu a1, sp, 0x2c        |         a1 = sp + 0x2c;
    0x0008646c move a0, s1               |         a0 = s1;
    0x00086470 sb s0, -0x3414(s6)        |         *((s6 - 13332)) = s0;
    0x00086474 jalr t9                   |         t9 ();
    0x00086478 lw gp, 0x18(sp)           |         gp = *(var_18h);
                                         |         if (v0 < 0) {
    0x0008647c bltz v0, 0x8668c          |             goto label_16;
                                         |         }
    0x00086480 move s0, zero             |         s0 = 0;
    0x00086484 b 0x8653c                 |         goto label_5;
                                         | label_12:
    0x00086488 addiu s4, zero, 1         |         s4 = 1;
                                         |         if (s2 == 0) {
    0x0008648c beqz s2, 0x86658          |             goto label_17;
                                         |         }
    0x00086490 lb v0, (s2)               |         v0 = *(s2);
    0x00086494 move s5, zero             |         s5 = 0;
    0x00086498 beqz v0, 0x863c8          |         
                                         |     } while (v0 == 0);
                                         | label_14:
    0x0008649c addiu v1, sp, 0x68        |     v1 = sp + 0x68;
    0x000864a0 sll v0, s5, 3             |     v0 = s5 << 3;
    0x000864a4 addu v0, v1, v0           |     v0 = v1 + v0;
    0x000864a8 lw v1, -0x7fbc(gp)        |     v1 = *(gp);
    0x000864ac lw t9, -0x6dc4(gp)        |     t9 = sym.imp.strlen;
    0x000864b0 addiu v1, v1, -0x4114     |     v1 += -0x4114;
    0x000864b4 sw v1, -0x3c(v0)          |     *(var_2ch) = v1;
    0x000864b8 addiu v1, zero, 1         |     v1 = 1;
    0x000864bc sw v1, -0x38(v0)          |     *(var_30h) = v1;
    0x000864c0 addiu v1, s5, 2           |     v1 = s5 + 2;
    0x000864c4 sw v1, 0x24(sp)           |     *(var_24h_2) = v1;
    0x000864c8 move a0, s2               |     a0 = s2;
    0x000864cc jalr t9                   |     t9 ();
    0x000864d0 sll s4, s4, 3             |     s4 <<= 3;
    0x000864d4 lw gp, 0x18(sp)           |     gp = *(var_18h);
    0x000864d8 addiu a0, sp, 0x68        |     a0 = sp + 0x68;
    0x000864dc addu s4, a0, s4           |     s4 = a0 + s4;
    0x000864e0 lw v1, 0x24(sp)           |     v1 = *(var_24h_2);
    0x000864e4 sw v0, -0x38(s4)          |     *(var_38h) = v0;
    0x000864e8 sll v1, v1, 3             |     v1 <<= 3;
    0x000864ec lw v0, -0x7fbc(gp)        |     v0 = *(gp);
    0x000864f0 addu v1, a0, v1           |     v1 = a0 + v1;
                                         |     /* esilref: '] ' */
    0x000864f4 addiu v0, v0, -0x4110     |     v0 += -0x4110;
    0x000864f8 sw s2, -0x3c(s4)          |     *(var_34h) = s2;
    0x000864fc sw v0, -0x3c(v1)          |     *(var_24h_2) = v0;
    0x00086500 addiu v0, zero, 2         |     v0 = 2;
    0x00086504 addiu s4, s5, 3           |     s4 = s5 + 3;
    0x00086508 sw v0, -0x38(v1)          |     *(var_28h) = v0;
    0x0008650c b 0x863e8                 |     goto label_0;
                                         | label_9:
    0x00086510 lw a3, -0x7fbc(gp)        |     a3 = *(gp);
    0x00086514 lw a1, -0x7fbc(gp)        |     a1 = *(gp);
    0x00086518 lw t9, -0x75f8(gp)        |     t9 = sym.imp.log_oom_internal;
                                         |     /* esilref: 'status_vprintf' */
    0x0008651c addiu a3, a3, -0x40f0     |     a3 += -0x40f0;
    0x00086520 addiu a2, zero, 0x35      |     a2 = 0x35;
                                         |     /* esilref: 'src/core/show-status.c' */
    0x00086524 addiu a1, a1, -0x4139     |     a1 += -0x4139;
    0x00086528 move a0, zero             |     a0 = 0;
    0x0008652c jalr t9                   |     t9 ();
    0x00086530 lw gp, 0x18(sp)           |     gp = *(var_18h);
    0x00086534 move s0, v0               |     s0 = v0;
    0x00086538 addiu s1, zero, -1        |     s1 = -1;
                                         |     do {
                                         | label_5:
    0x0008653c lw t9, -0x6a98(gp)        |         t9 = sym.imp.safe_close;
    0x00086540 move a0, s1               |         a0 = s1;
    0x00086544 jalr t9                   |         t9 ();
    0x00086548 lw gp, 0x18(sp)           |         gp = *(var_18h);
    0x0008654c lw t9, -0x6ba4(gp)        |         t9 = *((gp - 6889));
    0x00086550 lw a0, 0x28(sp)           |         a0 = *(var_28h);
    0x00086554 jalr t9                   |         t9 ();
    0x00086558 lw a0, 0x64(sp)           |         a0 = *(var_64h);
    0x0008655c lw v1, (s3)               |         v1 = *(s3);
    0x00086560 lw gp, 0x18(sp)           |         gp = *(var_18h);
    0x00086564 move v0, s0               |         v0 = s0;
                                         |         if (a0 != v1) {
    0x00086568 bne a0, v1, 0x866dc       |             goto label_18;
                                         |         }
    0x0008656c lw ra, 0x8c(sp)           |         ra = *(var_8ch);
    0x00086570 lw fp, 0x88(sp)           |         fp = *(var_88h);
    0x00086574 lw s7, 0x84(sp)           |         s7 = *(var_84h);
    0x00086578 lw s6, 0x80(sp)           |         s6 = *(var_80h);
    0x0008657c lw s5, 0x7c(sp)           |         s5 = *(var_7ch);
    0x00086580 lw s4, 0x78(sp)           |         s4 = *(var_78h);
    0x00086584 lw s3, 0x74(sp)           |         s3 = *(var_74h);
    0x00086588 lw s2, 0x70(sp)           |         s2 = *(var_70h);
    0x0008658c lw s1, 0x6c(sp)           |         s1 = *(var_6ch);
    0x00086590 lw s0, 0x68(sp)           |         s0 = *(var_68h);
    0x00086594 addiu sp, sp, 0x90        |         
    0x00086598 jr ra                     |         return v0;
                                         | label_10:
    0x0008659c move s0, v0               |         s0 = v0;
    0x000865a0 b 0x8653c                 |         
                                         |     } while (1);
                                         | label_11:
    0x000865a4 move a0, s1               |     a0 = s1;
    0x000865a8 jalr t9                   |     t9 ();
    0x000865ac lw gp, 0x18(sp)           |     gp = *(var_18h);
                                         |     if (v0 <= 0) {
    0x000865b0 blez v0, 0x866d4          |         goto label_19;
                                         |     }
    0x000865b4 addiu v0, v0, -1          |     v0 += -1;
                                         | label_6:
    0x000865b8 lw s5, 0x28(sp)           |     s5 = *(var_28h);
    0x000865bc lw t9, -0x6dc4(gp)        |     t9 = sym.imp.strlen;
    0x000865c0 addiu s4, zero, 9         |     s4 = 9;
    0x000865c4 move a0, s5               |     a0 = s5;
                                         |     if (s2 != 0) {
    0x000865c8 movz s4, zero, s2         |         s4 = 0;
                                         |     }
    0x000865cc subu s4, v0, s4           |     __asm ("subu s4, v0, s4");
    0x000865d0 jalr t9                   |     t9 ();
    0x000865d4 lw gp, 0x18(sp)           |     gp = *(var_18h);
    0x000865d8 sltiu a2, s4, 3           |     a2 = (s4 < 3) ? 1 : 0;
    0x000865dc addiu v1, zero, 3         |     v1 = 3;
                                         |     if (a2 != 0) {
    0x000865e0 movz v1, s4, a2           |         v1 = s4;
                                         |     }
    0x000865e4 lw t9, -0x7588(gp)        |     t9 = sym.imp.ellipsize_mem;
    0x000865e8 addiu a3, zero, 0x32      |     a3 = 0x32;
    0x000865ec move a2, v1               |     a2 = v1;
    0x000865f0 move a1, v0               |     a1 = v0;
    0x000865f4 move a0, s5               |     a0 = s5;
    0x000865f8 jalr t9                   |     t9 ();
    0x000865fc move s7, v0               |     s7 = v0;
    0x00086600 lw gp, 0x18(sp)           |     gp = *(var_18h);
                                         |     if (v0 == 0) {
    0x00086604 beqz v0, 0x8638c          |         goto label_1;
                                         |     }
    0x00086608 lw t9, -0x6ba4(gp)        |     t9 = *((gp - 6889));
    0x0008660c lw a0, 0x28(sp)           |     a0 = *(var_28h);
    0x00086610 jalr t9                   |     t9 ();
    0x00086614 lw gp, 0x18(sp)           |     gp = *(var_18h);
    0x00086618 sw s7, 0x28(sp)           |     *(var_28h) = s7;
    0x0008661c b 0x86390                 |     goto label_2;
                                         | label_13:
    0x00086620 lw t9, -0x6dc4(gp)        |     t9 = sym.imp.strlen;
    0x00086624 move a0, s7               |     a0 = s7;
    0x00086628 jalr t9                   |     t9 ();
    0x0008662c lw gp, 0x18(sp)           |     gp = *(var_18h);
    0x00086630 sw v0, 0x38(sp)           |     *(var_38h) = v0;
    0x00086634 sw s7, 0x34(sp)           |     *(var_34h) = s7;
    0x00086638 lw v0, -0x7fd8(gp)        |     v0 = sym.imp.log_target_to_string;
    0x0008663c addiu a2, zero, 3         |     a2 = 3;
    0x00086640 addiu v0, v0, 0x4288      |     v0 += 0x4288;
    0x00086644 sw v0, 0x3c(sp)           |     *(var_3ch) = v0;
    0x00086648 addiu v0, zero, 1         |     v0 = 1;
    0x0008664c sw v0, 0x40(sp)           |     *(var_40h) = v0;
    0x00086650 addiu s4, zero, 1         |     s4 = 1;
    0x00086654 b 0x86434                 |     goto label_3;
                                         | label_17:
    0x00086658 lw t9, -0x6dc4(gp)        |     t9 = sym.imp.strlen;
    0x0008665c move a0, s7               |     a0 = s7;
    0x00086660 jalr t9                   |     t9 ();
    0x00086664 lw gp, 0x18(sp)           |     gp = *(var_18h);
    0x00086668 sw v0, 0x30(sp)           |     *(var_30h) = v0;
    0x0008666c sw s7, 0x2c(sp)           |     *(var_2ch) = s7;
    0x00086670 lw v0, -0x7fd8(gp)        |     v0 = sym.imp.log_target_to_string;
    0x00086674 addiu a2, zero, 2         |     a2 = 2;
    0x00086678 addiu v0, v0, 0x4288      |     v0 += 0x4288;
    0x0008667c sw v0, 0x34(sp)           |     *(var_34h) = v0;
    0x00086680 addiu v0, zero, 1         |     v0 = 1;
    0x00086684 sw v0, 0x38(sp)           |     *(var_38h) = v0;
    0x00086688 b 0x86460                 |     goto label_4;
                                         | label_16:
    0x0008668c lw t9, -0x6654(gp)        |     t9 = sym.imp.__errno_location;
    0x00086690 jalr t9                   |     t9 ();
    0x00086694 nop                       |     
    0x00086698 lw s0, (v0)               |     s0 = *(v0);
    0x0008669c lw gp, 0x18(sp)           |     gp = *(var_18h);
    0x000866a0 negu s0, s0               |     __asm ("negu s0, s0");
    0x000866a4 b 0x8653c                 |     goto label_5;
                                         | label_8:
    0x000866a8 lw v0, -0x7fbc(gp)        |     v0 = *(gp);
    0x000866ac lw a2, -0x7fbc(gp)        |     a2 = *(gp);
    0x000866b0 lw a1, -0x7fd8(gp)        |     a1 = sym.imp.log_target_to_string;
                                         |     /* str.status_vprintf */
    0x000866b4 addiu v0, v0, -0x40e0     |     v0 += -0x40e0;
    0x000866b8 lw t9, -0x6b04(gp)        |     t9 = sym.imp.log_assert_failed_realm;
    0x000866bc sw v0, 0x10(sp)           |     *(var_10h) = v0;
    0x000866c0 addiu a3, zero, 0x2f      |     a3 = 0x2f;
                                         |     /* esilref: 'src/core/show-status.c' */
    0x000866c4 addiu a2, a2, -0x4139     |     a2 += -0x4139;
                                         |     /* esilref: 'format' */
    0x000866c8 addiu a1, a1, 0x3100      |     a1 += 0x3100;
    0x000866cc move a0, zero             |     a0 = 0;
    0x000866d0 jalr t9                   |     t9 ();
                                         | label_19:
    0x000866d4 addiu v0, zero, 0x4f      |     v0 = 0x4f;
    0x000866d8 b 0x865b8                 |     goto label_6;
                                         | label_18:
    0x000866dc lw t9, -0x7124(gp)        |     t9 = sym.imp.__stack_chk_fail;
    0x000866e0 jalr t9                   |     t9 ();
    0x000866e4 nop                       |     
    0x000866e8 lui gp, 0xe               |     
    0x000866ec addiu gp, gp, -0x3688     |     
    0x000866f0 addu gp, gp, t9           |     gp += t9;
    0x000866f4 addiu sp, sp, -0x30       |     
    0x000866f8 sw s0, 0x28(sp)           |     *(var_28h_2) = s0;
    0x000866fc lw s0, -0x6f14(gp)        |     s0 = *((gp - 7109));
    0x00086700 sw gp, 0x18(sp)           |     *(var_18h_2) = gp;
    0x00086704 sw ra, 0x2c(sp)           |     *(var_2ch_2) = ra;
    0x00086708 sw a3, 0x3c(sp)           |     *(var_3ch_2) = a3;
    0x0008670c lw v0, (s0)               |     v0 = *(s0);
    0x00086710 sw v0, 0x24(sp)           |     *(var_24h) = v0;
    0x00086714 addiu v0, sp, 0x3c        |     v0 = sp + 0x3c;
                                         |     if (a2 != 0) {
    0x00086718 beqz a2, 0x8674c          |         
    0x0008671c lw t9, -0x7a74(gp)        |         t9 = *(gp);
    0x00086720 move a3, v0               |         a3 = v0;
    0x00086724 sw v0, 0x20(sp)           |         *(var_20h) = v0;
    0x00086728 bal 0x862b4               |         fcn_000862b4 ();
                                         |         goto label_7;
    0x0008672c lw a0, 0x24(sp)           |         a0 = *(var_24h);
    0x00086730 lw v1, (s0)               |         v1 = *(s0);
    0x00086734 lw gp, 0x18(sp)           |         gp = *(var_18h_2);
                                         |         if (a0 != v1) {
    0x00086738 bne a0, v1, 0x86778       |             goto label_20;
                                         |         }
    0x0008673c lw ra, 0x2c(sp)           |         ra = *(var_2ch_2);
    0x00086740 lw s0, 0x28(sp)           |         s0 = *(var_28h_2);
    0x00086744 addiu sp, sp, 0x30        |         
    0x00086748 jr ra                     |         return v0;
                                         |     }
    0x0008674c lw v0, -0x7fbc(gp)        |     v0 = *(gp);
    0x00086750 lw a2, -0x7fbc(gp)        |     a2 = *(gp);
    0x00086754 lw a1, -0x7fd8(gp)        |     a1 = sym.imp.log_target_to_string;
                                         |     /* str.status_printf */
    0x00086758 addiu v0, v0, -0x410c     |     v0 += -0x410c;
    0x0008675c lw t9, -0x6b04(gp)        |     t9 = sym.imp.log_assert_failed_realm;
    0x00086760 sw v0, 0x10(sp)           |     *(var_10h_2) = v0;
    0x00086764 addiu a3, zero, 0x71      |     a3 = 0x71;
                                         |     /* esilref: 'src/core/show-status.c' */
    0x00086768 addiu a2, a2, -0x4139     |     a2 += -0x4139;
                                         |     /* esilref: 'format' */
    0x0008676c addiu a1, a1, 0x3100      |     a1 += 0x3100;
    0x00086770 move a0, zero             |     a0 = 0;
    0x00086774 jalr t9                   |     t9 ();
                                         | label_20:
    0x00086778 lw t9, -0x7124(gp)        |     t9 = sym.imp.__stack_chk_fail;
    0x0008677c jalr t9                   |     t9 ();
    0x00086780 nop                       |     
    0x00086784 lui gp, 0xe               |     
    0x00086788 addiu gp, gp, -0x3724     |     
    0x0008678c addu gp, gp, t9           |     gp += t9;
    0x00086790 move a2, a0               |     a2 = a0;
    0x00086794 lw a0, -0x7f80(gp)        |     a0 = *((gp - 8160));
    0x00086798 lw t9, -0x71dc(gp)        |     t9 = sym.imp.string_table_lookup;
    0x0008679c addiu a1, zero, 2         |     a1 = 2;
                                         |     /* esilref: 'name' */
    0x000867a0 addiu a0, a0, -0x5ee8     |     a0 += -0x5ee8;
    0x000867a4 jr t9                     |     return t9 ();
                                         | }
    ; assembly                               | /* r2dec pseudo code output */
                                             | /* /logs/firmware/unblob_extracted/firmware_extract/4325012-58052244.squashfs_v4_le_extract/usr/lib/systemd/systemd @ 0xa72ec */
                                             | #include <stdint.h>
                                             |  
    ; (fcn) fcn.000a72ec ()                  | void fcn_000a72ec () {
    0x000a72ec lui gp, 0xc                   |     
    0x000a72f0 addiu gp, gp, -0x428c         |     
    0x000a72f4 addu gp, gp, t9               |     gp += t9;
    0x000a72f8 addiu sp, sp, -0x48           |     
    0x000a72fc sw s0, 0x34(sp)               |     *(var_34h) = s0;
    0x000a7300 lw s0, -0x6f14(gp)            |     s0 = *((gp - 7109));
    0x000a7304 sw gp, 0x18(sp)               |     *(var_18h_2) = gp;
    0x000a7308 sw ra, 0x44(sp)               |     *(var_44h) = ra;
    0x000a730c sw s3, 0x40(sp)               |     *(var_40h) = s3;
    0x000a7310 sw s2, 0x3c(sp)               |     *(var_3ch) = s2;
    0x000a7314 sw s1, 0x38(sp)               |     *(var_38h) = s1;
    0x000a7318 lw v0, (s0)                   |     v0 = *(s0);
    0x000a731c sw zero, 0x24(sp)             |     *(var_24h) = 0;
    0x000a7320 sw v0, 0x2c(sp)               |     *(var_2ch) = v0;
                                             |     if (a0 == 0) {
    0x000a7324 beql a0, zero, 0xa73d8        |         goto label_2;
                                             |     }
    0x000a7328 lw v0, -0x7fbc(gp)            |     v0 = *(gp);
    0x000a732c move s2, a2                   |     s2 = a2;
                                             |     if (a2 == 0) {
    0x000a7330 beqz a2, 0xa73fc              |         goto label_3;
                                             |     }
    0x000a7334 move a2, a3                   |     a2 = a3;
                                             |     if (a3 == 0) {
    0x000a7338 beqz a3, 0xa7428              |         goto label_4;
                                             |     }
    0x000a733c andi v0, a1, 3                |     v0 = a1 & 3;
    0x000a7340 move s3, a1                   |     s3 = a1;
                                             |     if (v0 != 0) {
    0x000a7344 bnez v0, 0xa738c              |         goto label_5;
                                             |     }
    0x000a7348 move a0, zero                 |     a0 = 0;
    0x000a734c move s1, zero                 |     s1 = 0;
                                             |     do {
                                             | label_0:
    0x000a7350 lw t9, -0x6ba4(gp)            |         t9 = *((gp - 6889));
    0x000a7354 jalr t9                       |         t9 ();
    0x000a7358 nop                           |         
    0x000a735c lw a0, 0x2c(sp)               |         a0 = *(var_2ch);
    0x000a7360 lw v1, (s0)                   |         v1 = *(s0);
    0x000a7364 lw gp, 0x18(sp)               |         gp = *(var_18h_2);
    0x000a7368 move v0, s1                   |         v0 = s1;
                                             |         if (a0 != v1) {
    0x000a736c bne a0, v1, 0xa7460           |             goto label_6;
                                             |         }
    0x000a7370 lw ra, 0x44(sp)               |         ra = *(var_44h);
    0x000a7374 lw s3, 0x40(sp)               |         s3 = *(var_40h);
    0x000a7378 lw s2, 0x3c(sp)               |         s2 = *(var_3ch);
    0x000a737c lw s1, 0x38(sp)               |         s1 = *(var_38h);
    0x000a7380 lw s0, 0x34(sp)               |         s0 = *(var_34h);
    0x000a7384 addiu sp, sp, 0x48            |         
    0x000a7388 jr ra                         |         return v0;
                                             | label_5:
    0x000a738c lw t9, -0x75f4(gp)            |         t9 = sym.imp.__vasprintf_chk
    0x000a7390 addiu a3, sp, 0x58            |         a3 = sp + 0x58;
    0x000a7394 move s1, a0                   |         s1 = a0;
    0x000a7398 sw a3, 0x28(sp)               |         *(var_18h_3) = a3;
    0x000a739c addiu a1, zero, 1             |         a1 = 1;
    0x000a73a0 addiu a0, sp, 0x24            |         a0 = sp + 0x24;
    0x000a73a4 jalr t9                       |         t9 ();
    0x000a73a8 lw gp, 0x18(sp)               |         gp = *(var_18h_2);
                                             |         if (v0 < 0) {
    0x000a73ac bltz v0, 0xa7454              |             goto label_7;
                                             |         }
    0x000a73b0 lw t9, -0x7888(gp)            |         t9 = *(gp);
    0x000a73b4 lw a3, 0x24(sp)               |         a3 = *(var_24h);
    0x000a73b8 move a0, s1                   |         a0 = s1;
    0x000a73bc move a2, s2                   |         a2 = s2;
    0x000a73c0 move a1, s3                   |         a1 = s3;
    0x000a73c4 bal 0xa6bc8                   |         fcn_000a6bc8 ();
    0x000a73c8 move s1, v0                   |         s1 = v0;
    0x000a73cc lw gp, 0x18(sp)               |         gp = *(var_18h_2);
    0x000a73d0 lw a0, 0x24(sp)               |         a0 = *(var_24h);
    0x000a73d4 b 0xa7350                     |         
                                             |     } while (1);
                                             | label_2:
    0x000a73d8 lw a2, -0x7fbc(gp)            |     a2 = *(gp);
    0x000a73dc lw a1, -0x7fbc(gp)            |     a1 = *(gp);
                                             |     /* str.unit_write_settingf */
    0x000a73e0 addiu v0, v0, 0x275c          |     v0 += 0x275c;
    0x000a73e4 lw t9, -0x6b04(gp)            |     t9 = sym.imp.log_assert_failed_realm;
    0x000a73e8 sw v0, 0x10(sp)               |     *(var_10h_2) = v0;
    0x000a73ec addiu a3, zero, 0x1203        |     a3 = 0x1203;
                                             |     /* esilref: 'src/core/unit.c' */
    0x000a73f0 addiu a2, a2, -0x4b1          |     a2 += -0x4b1;
    0x000a73f4 addiu a1, a1, 0x7d4           |     a1 += 0x7d4;
    0x000a73f8 jalr t9                       |     t9 ();
                                             | label_3:
    0x000a73fc lw v0, -0x7fbc(gp)            |     v0 = *(gp);
    0x000a7400 lw a2, -0x7fbc(gp)            |     a2 = *(gp);
    0x000a7404 lw a1, -0x7fc4(gp)            |     a1 = *(gp);
                                             |     /* str.unit_write_settingf */
    0x000a7408 addiu v0, v0, 0x275c          |     v0 += 0x275c;
    0x000a740c lw t9, -0x6b04(gp)            |     t9 = sym.imp.log_assert_failed_realm;
    0x000a7410 sw v0, 0x10(sp)               |     *(var_10h_2) = v0;
    0x000a7414 addiu a3, zero, 0x1204        |     a3 = 0x1204;
                                             |     /* esilref: 'src/core/unit.c' */
    0x000a7418 addiu a2, a2, -0x4b1          |     a2 += -0x4b1;
                                             |     /* esilref: 'name' */
    0x000a741c addiu a1, a1, 0x2c40          |     a1 += 0x2c40;
    0x000a7420 move a0, zero                 |     a0 = 0;
    0x000a7424 jalr t9                       |     t9 ();
                                             | label_4:
    0x000a7428 lw v0, -0x7fbc(gp)            |     v0 = *(gp);
    0x000a742c lw a2, -0x7fbc(gp)            |     a2 = *(gp);
    0x000a7430 lw a1, -0x7fd8(gp)            |     a1 = sym.imp.log_target_to_string;
                                             |     /* str.unit_write_settingf */
    0x000a7434 addiu v0, v0, 0x275c          |     v0 += 0x275c;
    0x000a7438 lw t9, -0x6b04(gp)            |     t9 = sym.imp.log_assert_failed_realm;
    0x000a743c sw v0, 0x10(sp)               |     *(var_10h_2) = v0;
    0x000a7440 addiu a3, zero, 0x1205        |     a3 = 0x1205;
                                             |     /* esilref: 'src/core/unit.c' */
    0x000a7444 addiu a2, a2, -0x4b1          |     a2 += -0x4b1;
                                             |     /* esilref: 'format' */
    0x000a7448 addiu a1, a1, 0x3100          |     a1 += 0x3100;
    0x000a744c move a0, zero                 |     a0 = 0;
    0x000a7450 jalr t9                       |     t9 ();
                                             | label_7:
    0x000a7454 lw a0, 0x24(sp)               |     a0 = *(var_24h);
    0x000a7458 addiu s1, zero, -0xc          |     s1 = -0xc;
    0x000a745c b 0xa7350                     |     goto label_0;
                                             | label_6:
    0x000a7460 lw t9, -0x7124(gp)            |     t9 = sym.imp.__stack_chk_fail;
    0x000a7464 jalr t9                       |     t9 ();
    0x000a7468 nop                           |     
    0x000a746c lui gp, 0xc                   |     
    0x000a7470 addiu gp, gp, -0x440c         |     
    0x000a7474 addu gp, gp, t9               |     gp += t9;
    0x000a7478 addiu sp, sp, -0x38           |     
    0x000a747c sw gp, 0x18(sp)               |     *(var_18h_3) = gp;
    0x000a7480 sw ra, 0x34(sp)               |     *(var_34h_2) = ra;
    0x000a7484 sw s3, 0x30(sp)               |     *(var_30h) = s3;
    0x000a7488 sw s2, 0x2c(sp)               |     *(var_2ch_2) = s2;
    0x000a748c sw s1, 0x28(sp)               |     *(var_28h) = s1;
    0x000a7490 sw s0, 0x24(sp)               |     *(var_24h_2) = s0;
    0x000a7494 lw v0, -0x7fbc(gp)            |     v0 = *(gp);
                                             |     if (a0 == 0) {
    0x000a7498 beqz a0, 0xa765c              |         goto label_8;
                                             |     }
    0x000a749c lw v0, 4(a0)                  |     v0 = *((a0 + 1));
    0x000a74a0 sll v1, v0, 2                 |     v1 = v0 << 2;
    0x000a74a4 lw v0, -0x7e58(gp)            |     v0 = *((gp - 8086));
    0x000a74a8 lwx v0, v1(v0)                |     __asm ("lwx v0, v1(v0)");
    0x000a74ac lw v0, 0x130(v0)              |     v0 = *(v0);
    0x000a74b0 andi v0, v0, 1                |     v0 &= 1;
    0x000a74b4 move s0, a0                   |     s0 = a0;
                                             |     if (v0 == 0) {
    0x000a74b8 beqz v0, 0xa7680              |         goto label_9;
                                             |     }
    0x000a74bc lw v0, (a0)                   |     v0 = *(a0);
    0x000a74c0 lw t9, -0x6f70(gp)            |     t9 = sym.imp.mkdir_p_label;
    0x000a74c4 addiu a1, zero, 0x1ed         |     a1 = 0x1ed;
    0x000a74c8 lw a0, 0xe0(v0)               |     a0 = *((v0 + 56));
    0x000a74cc jalr t9                       |     t9 ();
    0x000a74d0 lw gp, 0x18(sp)               |     gp = *(var_18h_3);
    0x000a74d4 lw v0, (s0)                   |     v0 = *(s0);
    0x000a74d8 lw a1, 0x10(s0)               |     a1 = *((s0 + 4));
    0x000a74dc lw t9, -0x6f60(gp)            |     t9 = sym.imp.path_join_internal;
    0x000a74e0 lw a0, 0xe0(v0)               |     a0 = *((v0 + 56));
    0x000a74e4 addiu a2, zero, -1            |     a2 = -1;
    0x000a74e8 jalr t9                       |     t9 ();
    0x000a74ec move s1, v0                   |     s1 = v0;
    0x000a74f0 lw gp, 0x18(sp)               |     gp = *(var_18h_3);
                                             |     if (v0 == 0) {
    0x000a74f4 beqz v0, 0xa768c              |         goto label_10;
                                             |     }
    0x000a74f8 lw t9, -0x6cd0(gp)            |     t9 = sym.imp.umask;
    0x000a74fc addiu a0, zero, 0x12          |     a0 = 0x12;
    0x000a7500 jalr t9                       |     t9 ();
    0x000a7504 lw gp, 0x18(sp)               |     gp = *(var_18h_3);
    0x000a7508 move a0, s1                   |     a0 = s1;
    0x000a750c move s3, v0                   |     s3 = v0;
    0x000a7510 lw a1, -0x7fbc(gp)            |     a1 = *(gp);
    0x000a7514 lw t9, -0x7638(gp)            |     t9 = sym.imp.fopen64;
                                             |     /* esilref: 'we' */
    0x000a7518 addiu a1, a1, -0x3cc8         |     a1 += -0x3cc8;
    0x000a751c jalr t9                       |     t9 ();
    0x000a7520 move s2, v0                   |     s2 = v0;
    0x000a7524 lw gp, 0x18(sp)               |     gp = *(var_18h_3);
                                             |     if (v0 == 0) {
    0x000a7528 beqz v0, 0xa7630              |         goto label_11;
                                             |     }
    0x000a752c lw t9, -0x6cd0(gp)            |     t9 = sym.imp.umask;
    0x000a7530 andi a0, s3, 0x1ff            |     a0 = s3 & 0x1ff;
    0x000a7534 jalr t9                       |     t9 ();
    0x000a7538 lw gp, 0x18(sp)               |     gp = *(var_18h_3);
    0x000a753c lw a0, 0xa8(s0)               |     a0 = *((s0 + 42));
    0x000a7540 lw t9, -0x6670(gp)            |     t9 = *(gp);
    0x000a7544 move s3, zero                 |     s3 = 0;
    0x000a7548 jalr t9                       |     t9 ();
    0x000a754c lw gp, 0x18(sp)               |     gp = *(var_18h_3);
    0x000a7550 lw a0, 0x80(s0)               |     a0 = *((s0 + 32));
    0x000a7554 lw t9, -0x6ba4(gp)            |     t9 = *((gp - 6889));
    0x000a7558 sw s2, 0xa8(s0)               |     *((s0 + 42)) = s2;
    0x000a755c jalr t9                       |     t9 ();
    0x000a7560 lw gp, 0x18(sp)               |     gp = *(var_18h_3);
    0x000a7564 lw a0, 0x84(s0)               |     a0 = *((s0 + 33));
    0x000a7568 sw s1, 0x80(s0)               |     *((s0 + 32)) = s1;
    0x000a756c lw t9, -0x6ba4(gp)            |     t9 = *((gp - 6889));
    0x000a7570 move s1, zero                 |     s1 = 0;
    0x000a7574 jalr t9                       |     t9 ();
    0x000a7578 lw gp, 0x18(sp)               |     gp = *(var_18h_3);
    0x000a757c lw a0, 0x88(s0)               |     a0 = *((s0 + 34));
    0x000a7580 lw t9, -0x6df8(gp)            |     t9 = sym.imp.strv_free;
    0x000a7584 sw zero, 0x84(s0)             |     *((s0 + 33)) = 0;
    0x000a7588 jalr t9                       |     t9 ();
    0x000a758c lw gp, 0x18(sp)               |     gp = *(var_18h_3);
    0x000a7590 sw v0, 0x88(s0)               |     *((s0 + 34)) = v0;
    0x000a7594 move v0, zero                 |     v0 = 0;
    0x000a7598 move v1, zero                 |     v1 = 0;
    0x000a759c lw t9, -0x7de4(gp)            |     t9 = *(gp);
    0x000a75a0 sw v0, 0xa0(s0)               |     *((s0 + 40)) = v0;
    0x000a75a4 sw v0, 0x98(s0)               |     *((s0 + 38)) = v0;
    0x000a75a8 sw v0, 0x90(s0)               |     *((s0 + 36)) = v0;
    0x000a75ac addiu v0, zero, 1             |     v0 = 1;
    0x000a75b0 sw v1, 0xa4(s0)               |     *((s0 + 41)) = v1;
    0x000a75b4 sw v1, 0x9c(s0)               |     *((s0 + 39)) = v1;
    0x000a75b8 sw v1, 0x94(s0)               |     *((s0 + 37)) = v1;
    0x000a75bc sb v0, 0x349(s0)              |     *((s0 + 841)) = v0;
    0x000a75c0 move a0, s0                   |     a0 = s0;
    0x000a75c4 sw zero, 8(s0)                |     *((s0 + 2)) = 0;
    0x000a75c8 sw zero, 0x1d0(s0)            |     *(s0) = 0;
    0x000a75cc bal 0x9e0f0                   |     fcn_0009e0f0 ();
    0x000a75d0 lw gp, 0x18(sp)               |     gp = *(var_18h_3);
    0x000a75d4 lw t9, -0x7d48(gp)            |     t9 = *(gp);
    0x000a75d8 move a0, s0                   |     a0 = s0;
    0x000a75dc bal 0x9e85c                   |     fcn_0009e85c ();
    0x000a75e0 lw gp, 0x18(sp)               |     gp = *(var_18h_3);
    0x000a75e4 lw a3, 0xa8(s0)               |     a3 = *((s0 + 42));
    0x000a75e8 addiu a2, zero, 0x5c          |     a2 = 0x5c;
    0x000a75ec lw a0, -0x7fbc(gp)            |     a0 = *(gp);
    0x000a75f0 lw t9, -0x702c(gp)            |     t9 = sym.imp.fwrite;
    0x000a75f4 addiu a1, zero, 1             |     a1 = 1;
                                             |     /* str._This_is_a_transient_unit_file__created_programmatically_via_the_systemd_API._Do_not_edit._n */
    0x000a75f8 addiu a0, a0, 0x1438          |     a0 += 0x1438;
    0x000a75fc jalr t9                       |     t9 ();
    0x000a7600 lw gp, 0x18(sp)               |     gp = *(var_18h_3);
                                             |     do {
                                             | label_1:
    0x000a7604 lw t9, -0x6ba4(gp)            |         t9 = *((gp - 6889));
    0x000a7608 move a0, s1                   |         a0 = s1;
    0x000a760c jalr t9                       |         t9 ();
    0x000a7610 lw ra, 0x34(sp)               |         ra = *(var_34h_2);
    0x000a7614 move v0, s3                   |         v0 = s3;
    0x000a7618 lw s2, 0x2c(sp)               |         s2 = *(var_2ch_2);
    0x000a761c lw s3, 0x30(sp)               |         s3 = *(var_30h);
    0x000a7620 lw s1, 0x28(sp)               |         s1 = *(var_28h);
    0x000a7624 lw s0, 0x24(sp)               |         s0 = *(var_24h_2);
    0x000a7628 addiu sp, sp, 0x38            |         
    0x000a762c jr ra                         |         return v0;
                                             | label_11:
    0x000a7630 lw t9, -0x6654(gp)            |         t9 = sym.imp.__errno_location;
    0x000a7634 jalr t9                       |         t9 ();
    0x000a7638 nop                           |         
    0x000a763c lw gp, 0x18(sp)               |         gp = *(var_18h_3);
    0x000a7640 lw v0, (v0)                   |         v0 = *(v0);
    0x000a7644 andi a0, s3, 0x1ff            |         a0 = s3 & 0x1ff;
    0x000a7648 lw t9, -0x6cd0(gp)            |         t9 = sym.imp.umask;
    0x000a764c negu s3, v0                   |         __asm ("negu s3, v0");
    0x000a7650 jalr t9                       |         t9 ();
    0x000a7654 lw gp, 0x18(sp)               |         gp = *(var_18h_3);
    0x000a7658 b 0xa7604                     |         
                                             |     } while (1);
                                             | label_8:
    0x000a765c lw a2, -0x7fbc(gp)            |     a2 = *(gp);
    0x000a7660 lw a1, -0x7fbc(gp)            |     a1 = *(gp);
                                             |     /* str.unit_make_transient */
    0x000a7664 addiu v0, v0, 0x2748          |     v0 += 0x2748;
    0x000a7668 lw t9, -0x6b04(gp)            |     t9 = sym.imp.log_assert_failed_realm;
    0x000a766c sw v0, 0x10(sp)               |     *(var_10h_3) = v0;
    0x000a7670 addiu a3, zero, 0x1218        |     a3 = 0x1218;
                                             |     /* esilref: 'src/core/unit.c' */
    0x000a7674 addiu a2, a2, -0x4b1          |     a2 += -0x4b1;
    0x000a7678 addiu a1, a1, 0x7d4           |     a1 += 0x7d4;
    0x000a767c jalr t9                       |     t9 ();
                                             | label_9:
    0x000a7680 move s1, zero                 |     s1 = 0;
    0x000a7684 addiu s3, zero, -0x7a         |     s3 = -0x7a;
    0x000a7688 b 0xa7604                     |     goto label_1;
                                             | label_10:
    0x000a768c addiu s3, zero, -0xc          |     s3 = -0xc;
    0x000a7690 b 0xa7604                     |     goto label_1;
                                             | }

[*] Function sprintf used 3 times systemd