[*] Binary protection state of systemd-run-generator

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


[*] Function fprintf tear down of systemd-run-generator

    ; assembly                           | /* r2dec pseudo code output */
                                         | /* /logs/firmware/unblob_extracted/firmware_extract/4325012-58052244.squashfs_v4_le_extract/usr/lib/systemd/system-generators/systemd-run-generator @ 0x111c */
                                         | #include <stdint.h>
                                         |  
    ; (fcn) fcn.0000111c ()              | void fcn_0000111c () {
    0x0000111c lui gp, 2                 |     
    0x00001120 addiu gp, gp, -0x610c     |     
    0x00001124 addu gp, gp, t9           |     gp += t9;
    0x00001128 addiu sp, sp, -0x60       |     
    0x0000112c sw s3, 0x44(sp)           |     *(var_44h) = s3;
    0x00001130 sw s0, 0x38(sp)           |     *(var_38h) = s0;
    0x00001134 lw s3, -0x7f7c(gp)        |     s3 = *((gp - 8159));
    0x00001138 lw s0, -0x7fd8(gp)        |     s0 = *((gp - 8182));
    0x0000113c sw fp, 0x58(sp)           |     *(var_58h) = fp;
    0x00001140 sw ra, 0x5c(sp)           |     *(var_5ch) = ra;
    0x00001144 sw s7, 0x54(sp)           |     *(var_54h) = s7;
    0x00001148 sw s6, 0x50(sp)           |     *(var_50h) = s6;
    0x0000114c sw s5, 0x4c(sp)           |     *(var_4ch) = s5;
    0x00001150 sw s4, 0x48(sp)           |     *(var_48h) = s4;
    0x00001154 sw s2, 0x40(sp)           |     *(var_40h) = s2;
    0x00001158 sw s1, 0x3c(sp)           |     *(var_3ch) = s1;
    0x0000115c sw gp, 0x20(sp)           |     *(var_20h) = gp;
    0x00001160 move fp, sp               |     fp = sp;
    0x00001164 lw v1, (s3)               |     v1 = *(s3);
    0x00001168 lw v0, 0x3118(s0)         |     v0 = *((s0 + 3142));
    0x0000116c sw v1, 0x34(fp)           |     *(arg_34h) = v1;
                                         |     if (v0 == 0) {
    0x00001170 beql v0, zero, 0x141c     |         goto label_12;
                                         |     }
    0x00001174 lw v0, -0x7fd8(gp)        |     v0 = *((gp - 8182));
    0x00001178 lw v0, (v0)               |     v0 = *(v0);
    0x0000117c lw v0, -0x7fd8(gp)        |     v0 = *((gp - 8182));
                                         |     if (v0 == 0) {
    0x00001180 beqz v0, 0x141c           |         goto label_12;
                                         |     }
    0x00001184 lw v0, -0x7fd8(gp)        |     v0 = *((gp - 8182));
                                         | label_0:
    0x00001188 sw v0, 0x2c(fp)           |     *(arg_2ch) = v0;
    0x0000118c lw s1, 0x311c(v0)         |     s1 = *((v0 + 3143));
    0x00001190 lw t9, -0x7f70(gp)        |     t9 = sym.imp.strlen;
                                         |     if (s1 == 0) {
    0x00001194 beqz s1, 0x179c           |         goto label_13;
                                         |     }
    0x00001198 move a0, s1               |     a0 = s1;
    0x0000119c jalr t9                   |     t9 ();
    0x000011a0 lui a0, 0x40              |     a0 = 0x400000;
    0x000011a4 addiu v1, v0, 0x1d        |     v1 = v0 + 0x1d;
    0x000011a8 addiu a0, a0, 1           |     a0++;
    0x000011ac sltu v1, v1, a0           |     v1 = (v1 < a0) ? 1 : 0;
    0x000011b0 lw gp, 0x20(fp)           |     gp = *(arg_20h);
                                         |     if (v1 == 0) {
    0x000011b4 beqz v1, 0x1770           |         goto label_14;
                                         |     }
    0x000011b8 addiu v0, v0, 0x24        |     v0 += 0x24;
    0x000011bc srl v0, v0, 3             |     v0 >>= 3;
    0x000011c0 sll v0, v0, 3             |     v0 <<= 3;
    0x000011c4 subu sp, sp, v0           |     
    0x000011c8 lw t9, -0x7f4c(gp)        |     t9 = sym.imp.stpcpy;
    0x000011cc addiu s4, sp, 0x20        |     s4 = sp + 0x20;
    0x000011d0 move a1, s1               |     a1 = s1;
    0x000011d4 move a0, s4               |     a0 = s4;
    0x000011d8 jalr t9                   |     t9 ();
    0x000011dc lw gp, 0x20(fp)           |     gp = *(arg_20h);
    0x000011e0 lw a0, -0x7fdc(gp)        |     a0 = *((gp - 8183));
    0x000011e4 addiu v1, a0, 0x1fd4      |     v1 = a0 + str._kernel_command_line.service;
    0x000011e8 lw a1, 0x1fd4(a0)         |     a1 = *(a0);
    0x000011ec lw a0, 4(v1)              |     a0 = *((v1 + 1));
    0x000011f0 swl a1, 3(v0)             |     __asm ("swl a1, 3(v0)");
    0x000011f4 swr a1, (v0)              |     __asm ("swr a1, (v0)");
    0x000011f8 swl a0, 7(v0)             |     __asm ("swl a0, 7(v0)");
    0x000011fc lw a1, 8(v1)              |     a1 = *((v1 + 2));
    0x00001200 swr a0, 4(v0)             |     __asm ("swr a0, 4(v0)");
    0x00001204 swl a1, 0xb(v0)           |     __asm ("swl a1, 0xb(v0)");
    0x00001208 lw a0, 0xc(v1)            |     a0 = *((v1 + 3));
    0x0000120c swr a1, 8(v0)             |     __asm ("swr a1, 8(v0)");
    0x00001210 swl a0, 0xf(v0)           |     __asm ("swl a0, 0xf(v0)");
    0x00001214 lw a2, 0x10(v1)           |     a2 = *((v1 + 4));
    0x00001218 swr a0, 0xc(v0)           |     __asm ("swr a0, 0xc(v0)");
    0x0000121c lw a1, 0x14(v1)           |     a1 = *((v1 + 5));
    0x00001220 swl a2, 0x13(v0)          |     __asm ("swl a2, 0x13(v0)");
    0x00001224 lw a0, 0x18(v1)           |     a0 = *((v1 + 6));
    0x00001228 swr a2, 0x10(v0)          |     __asm ("swr a2, 0x10(v0)");
    0x0000122c swl a1, 0x17(v0)          |     __asm ("swl a1, 0x17(v0)");
    0x00001230 swr a1, 0x14(v0)          |     __asm ("swr a1, 0x14(v0)");
    0x00001234 lbu v1, 0x1c(v1)          |     v1 = *((v1 + 28));
    0x00001238 swl a0, 0x1b(v0)          |     __asm ("swl a0, 0x1b(v0)");
    0x0000123c swr a0, 0x18(v0)          |     __asm ("swr a0, 0x18(v0)");
    0x00001240 sb v1, 0x1c(v0)           |     *((v0 + 28)) = v1;
    0x00001244 addiu v0, v0, 0x1c        |     v0 += 0x1c;
                                         | label_6:
    0x00001248 lw a1, -0x7fdc(gp)        |     a1 = *((gp - 8183));
    0x0000124c lw t9, -0x7fa8(gp)        |     t9 = sym.imp.fopen64;
    0x00001250 sb zero, (v0)             |     *(v0) = 0;
    0x00001254 addiu a1, a1, 0x1cdc      |     a1 += 0x1cdc;
    0x00001258 move a0, s4               |     a0 = s4;
    0x0000125c jalr t9                   |     t9 ();
    0x00001260 move s1, v0               |     s1 = v0;
    0x00001264 lw gp, 0x20(fp)           |     gp = *(arg_20h);
                                         |     if (v0 == 0) {
    0x00001268 beqz v0, 0x1664           |         goto label_15;
                                         |     }
    0x0000126c lw a0, -0x7fdc(gp)        |     a0 = *((gp - 8183));
    0x00001270 lw t9, -0x7f88(gp)        |     t9 = sym.imp.fwrite;
    0x00001274 move a3, v0               |     a3 = v0;
    0x00001278 addiu a2, zero, 0xac      |     a2 = 0xac;
    0x0000127c addiu a1, zero, 1         |     a1 = 1;
    0x00001280 addiu a0, a0, 0x1d04      |     a0 += str._Automatically_generated_by_systemd_run_generator_n_n_Unit__nDescriptionCommand_from_Kernel_Command_Line_nDocumentationman:systemd_run_generator_8__nSourcePath_proc_cmdline_n;
    0x00001284 jalr t9                   |     t9 ();
    0x00001288 lw gp, 0x20(fp)           |     gp = *(arg_20h);
    0x0000128c lw v0, -0x7fd8(gp)        |     v0 = *((gp - 8182));
    0x00001290 lw s6, -0x7fdc(gp)        |     s6 = *((gp - 8183));
    0x00001294 lw t9, -0x7f28(gp)        |     t9 = sym.imp.strcmp_ptr;
    0x00001298 lw s2, 0x3114(v0)         |     s2 = *((v0 + 3141));
    0x0000129c addiu a1, s6, 0x1db4      |     a1 = s6 + str.none;
    0x000012a0 move a0, s2               |     a0 = s2;
    0x000012a4 jalr t9                   |     t9 ();
    0x000012a8 lw gp, 0x20(fp)           |     gp = *(arg_20h);
                                         |     if (v0 != 0) {
    0x000012ac beqz v0, 0x12d8           |         
                                         |         if (s2 == 0) {
    0x000012b0 beql s2, zero, 0x16a4     |             goto label_16;
                                         |         }
    0x000012b4 lw s2, -0x7fdc(gp)        |         s2 = *((gp - 8183));
                                         | label_3:
    0x000012b8 lw a2, -0x7fdc(gp)        |         a2 = *((gp - 8183));
    0x000012bc lw t9, -0x7f2c(gp)        |         t9 = sym.imp.__fprintf_chk
    0x000012c0 move a3, s2               |         a3 = s2;
    0x000012c4 addiu a2, a2, 0x1dbc      |         a2 += str.SuccessAction_s_n;
    0x000012c8 addiu a1, zero, 1         |         a1 = 1;
    0x000012cc move a0, s1               |         a0 = s1;
    0x000012d0 jalr t9                   |         t9 ();
    0x000012d4 lw gp, 0x20(fp)           |         gp = *(arg_20h);
                                         |     }
    0x000012d8 lw v0, -0x7fd8(gp)        |     v0 = *((gp - 8182));
    0x000012dc lw t9, -0x7f28(gp)        |     t9 = sym.imp.strcmp_ptr;
    0x000012e0 addiu a1, s6, 0x1db4      |     a1 = s6 + str.none;
    0x000012e4 lw s2, 0x3110(v0)         |     s2 = *((v0 + 3140));
    0x000012e8 move a0, s2               |     a0 = s2;
    0x000012ec jalr t9                   |     t9 ();
    0x000012f0 lw gp, 0x20(fp)           |     gp = *(arg_20h);
                                         |     if (v0 != 0) {
    0x000012f4 bnez v0, 0x1434           |         goto label_17;
                                         |     }
                                         | label_2:
    0x000012f8 lw a0, -0x7fdc(gp)        |     a0 = *((gp - 8183));
    0x000012fc lw t9, -0x7f88(gp)        |     t9 = sym.imp.fwrite;
    0x00001300 move a3, s1               |     a3 = s1;
    0x00001304 addiu a2, zero, 0x37      |     a2 = 0x37;
    0x00001308 addiu a1, zero, 1         |     a1 = 1;
    0x0000130c addiu a0, a0, 0x1de4      |     a0 += str._n_Service__nTypeoneshot_nStandardOutputjournalconsole_n;
    0x00001310 jalr t9                   |     t9 ();
    0x00001314 lw s0, 0x3118(s0)         |     s0 = *((s0 + 3142));
    0x00001318 lw gp, 0x20(fp)           |     gp = *(arg_20h);
                                         |     if (s0 == 0) {
    0x0000131c beqz s0, 0x1460           |         goto label_18;
                                         |     }
    0x00001320 lw a0, (s0)               |     a0 = *(s0);
    0x00001324 lw s6, -0x7fdc(gp)        |     s6 = *((gp - 8183));
                                         |     if (a0 == 0) {
    0x00001328 beqz a0, 0x1460           |         goto label_18;
                                         |     }
    0x0000132c lw s2, -0x7fdc(gp)        |     s2 = *((gp - 8183));
    0x00001330 lw s7, -0x7fdc(gp)        |     s7 = *((gp - 8183));
    0x00001334 addiu s6, s6, 0x1e1c      |     s6 += 0x1e1c;
    0x00001338 addiu s2, s2, 0x1e20      |     s2 += 0x1e20;
    0x0000133c addiu s7, s7, 0x1e24      |     s7 += str.ExecStart_s_n;
    0x00001340 b 0x1384                  |     
                                         |     while (v0 != 0) {
    0x00001344 lw t9, -0x7f2c(gp)        |         t9 = sym.imp.__fprintf_chk
    0x00001348 move a3, v0               |         a3 = v0;
    0x0000134c move a2, s7               |         a2 = s7;
    0x00001350 addiu a1, zero, 1         |         a1 = 1;
    0x00001354 move a0, s1               |         a0 = s1;
    0x00001358 jalr t9                   |         t9 ();
    0x0000135c lw gp, 0x20(fp)           |         gp = *(arg_20h);
    0x00001360 move a0, s5               |         a0 = s5;
    0x00001364 lw t9, -0x7f58(gp)        |         t9 = sym.imp.free;
    0x00001368 addiu s0, s0, 4           |         s0 += 4;
    0x0000136c jalr t9                   |         t9 ();
    0x00001370 lw gp, 0x20(fp)           |         gp = *(arg_20h);
                                         |         if (s0 == 0) {
    0x00001374 beqz s0, 0x1460           |             goto label_18;
                                         |         }
    0x00001378 lw a0, (s0)               |         a0 = *(s0);
    0x0000137c lw t9, -0x7fa4(gp)        |         t9 = sym.imp.fflush_and_check;
                                         |         if (a0 == 0) {
    0x00001380 beqz a0, 0x1464           |             goto label_19;
                                         |         }
    0x00001384 lw t9, -0x7f68(gp)        |         t9 = sym.imp.strreplace;
    0x00001388 move a2, s6               |         a2 = s6;
    0x0000138c move a1, s2               |         a1 = s2;
    0x00001390 jalr t9                   |         t9 ();
    0x00001394 move s5, v0               |         s5 = v0;
    0x00001398 lw gp, 0x20(fp)           |         gp = *(arg_20h);
    0x0000139c bnez v0, 0x1344           |         
                                         |     }
    0x000013a0 lw a3, -0x7fdc(gp)        |     a3 = *((gp - 8183));
    0x000013a4 lw a1, -0x7fdc(gp)        |     a1 = *((gp - 8183));
    0x000013a8 lw t9, -0x7fa0(gp)        |     t9 = sym.imp.log_oom_internal;
    0x000013ac addiu a3, a3, 0x2110      |     a3 += 0x2110;
    0x000013b0 addiu a2, zero, 0x5e      |     a2 = 0x5e;
    0x000013b4 addiu a1, a1, 0x1c97      |     a1 += 0x1c97;
    0x000013b8 move a0, zero             |     a0 = 0;
    0x000013bc jalr t9                   |     t9 ();
    0x000013c0 lw gp, 0x20(fp)           |     gp = *(arg_20h);
    0x000013c4 move s0, v0               |     s0 = v0;
                                         | label_1:
    0x000013c8 lw t9, -0x7f24(gp)        |     t9 = sym.imp.safe_fclose;
    0x000013cc move a0, s1               |     a0 = s1;
    0x000013d0 jalr t9                   |     t9 ();
    0x000013d4 lw a0, 0x34(fp)           |     a0 = *(arg_34h);
    0x000013d8 lw v1, (s3)               |     v1 = *(s3);
    0x000013dc lw gp, 0x20(fp)           |     gp = *(arg_20h);
    0x000013e0 move v0, s0               |     v0 = s0;
                                         |     if (a0 != v1) {
    0x000013e4 bne a0, v1, 0x1824        |         goto label_20;
                                         |     }
    0x000013e8 move sp, fp               |     
    0x000013ec lw ra, 0x5c(sp)           |     ra = *(var_54h);
    0x000013f0 lw fp, 0x58(sp)           |     fp = *(var_50h);
    0x000013f4 lw s7, 0x54(sp)           |     s7 = *(var_4ch);
    0x000013f8 lw s6, 0x50(sp)           |     s6 = *(var_48h);
    0x000013fc lw s5, 0x4c(sp)           |     s5 = *(var_44h);
    0x00001400 lw s4, 0x48(sp)           |     s4 = *(var_40h);
    0x00001404 lw s3, 0x44(sp)           |     s3 = *(var_3ch);
    0x00001408 lw s2, 0x40(sp)           |     s2 = *(var_38h);
    0x0000140c lw s1, 0x3c(sp)           |     s1 = *(var_3ch_2);
    0x00001410 lw s0, 0x38(sp)           |     s0 = *(var_38h_2);
    0x00001414 addiu sp, sp, 0x60        |     
    0x00001418 jr ra                     |     return v0;
                                         | label_12:
    0x0000141c lw v0, 0x3114(v0)         |     v0 = *((v0 + 3141));
    0x00001420 lw v0, -0x7fd8(gp)        |     v0 = *((gp - 8182));
                                         |     if (v0 != 0) {
    0x00001424 bnez v0, 0x1188           |         goto label_0;
                                         |     }
    0x00001428 move s1, zero             |     s1 = 0;
                                         |     do {
    0x0000142c move s0, zero             |         s0 = 0;
    0x00001430 b 0x13c8                  |         goto label_1;
                                         |         if (s2 == 0) {
                                         | label_17:
    0x00001434 beql s2, zero, 0x16ac     |             goto label_21;
                                         |         }
    0x00001438 lw s2, -0x7fdc(gp)        |         s2 = *((gp - 8183));
                                         | label_4:
    0x0000143c lw a2, -0x7fdc(gp)        |         a2 = *((gp - 8183));
    0x00001440 lw t9, -0x7f2c(gp)        |         t9 = sym.imp.__fprintf_chk
    0x00001444 move a3, s2               |         a3 = s2;
    0x00001448 addiu a2, a2, 0x1dd0      |         a2 += str.FailureAction_s_n;
    0x0000144c addiu a1, zero, 1         |         a1 = 1;
    0x00001450 move a0, s1               |         a0 = s1;
    0x00001454 jalr t9                   |         t9 ();
    0x00001458 lw gp, 0x20(fp)           |         gp = *(arg_20h);
    0x0000145c b 0x12f8                  |         goto label_2;
                                         | label_18:
    0x00001460 lw t9, -0x7fa4(gp)        |         t9 = sym.imp.fflush_and_check;
                                         | label_19:
    0x00001464 move a0, s1               |         a0 = s1;
    0x00001468 jalr t9                   |         t9 ();
    0x0000146c move s0, v0               |         s0 = v0;
    0x00001470 lw gp, 0x20(fp)           |         gp = *(arg_20h);
                                         |         if (v0 < 0) {
    0x00001474 bltz v0, 0x1730           |             goto label_22;
                                         |         }
    0x00001478 lw v0, 0x2c(fp)           |         v0 = *(arg_2ch);
    0x0000147c lw s0, 0x311c(v0)         |         s0 = *((v0 + 3143));
    0x00001480 lw t9, -0x7f70(gp)        |         t9 = sym.imp.strlen;
                                         |         if (s0 == 0) {
    0x00001484 beqz s0, 0x1804           |             goto label_23;
                                         |         }
    0x00001488 move a0, s0               |         a0 = s0;
    0x0000148c jalr t9                   |         t9 ();
    0x00001490 lui a0, 0x40              |         a0 = 0x400000;
    0x00001494 addiu v1, v0, 0x1c        |         v1 = v0 + 0x1c;
    0x00001498 addiu a0, a0, 1           |         a0++;
    0x0000149c sltu v1, v1, a0           |         v1 = (v1 < a0) ? 1 : 0;
    0x000014a0 lw gp, 0x20(fp)           |         gp = *(arg_20h);
                                         |         if (v1 == 0) {
    0x000014a4 beqz v1, 0x17d4           |             goto label_24;
                                         |         }
    0x000014a8 addiu v0, v0, 0x23        |         v0 += 0x23;
    0x000014ac srl v0, v0, 3             |         v0 >>= 3;
    0x000014b0 sll v0, v0, 3             |         v0 <<= 3;
    0x000014b4 subu sp, sp, v0           |         
    0x000014b8 lw t9, -0x7f4c(gp)        |         t9 = sym.imp.stpcpy;
    0x000014bc addiu s2, sp, 0x20        |         s2 = sp + 0x20;
    0x000014c0 move a1, s0               |         a1 = s0;
    0x000014c4 move a0, s2               |         a0 = s2;
    0x000014c8 jalr t9                   |         t9 ();
    0x000014cc lw gp, 0x20(fp)           |         gp = *(arg_20h);
    0x000014d0 lw a0, -0x7fdc(gp)        |         a0 = *((gp - 8183));
    0x000014d4 addiu v1, a0, 0x1fb8      |         v1 = a0 + str._kernel_command_line.target;
    0x000014d8 lw a1, 0x1fb8(a0)         |         a1 = *(a0);
    0x000014dc lw a0, 4(v1)              |         a0 = *((v1 + 1));
    0x000014e0 swl a1, 3(v0)             |         __asm ("swl a1, 3(v0)");
    0x000014e4 swr a1, (v0)              |         __asm ("swr a1, (v0)");
    0x000014e8 swl a0, 7(v0)             |         __asm ("swl a0, 7(v0)");
    0x000014ec lw a1, 8(v1)              |         a1 = *((v1 + 2));
    0x000014f0 swr a0, 4(v0)             |         __asm ("swr a0, 4(v0)");
    0x000014f4 swl a1, 0xb(v0)           |         __asm ("swl a1, 0xb(v0)");
    0x000014f8 lw a0, 0xc(v1)            |         a0 = *((v1 + 3));
    0x000014fc swr a1, 8(v0)             |         __asm ("swr a1, 8(v0)");
    0x00001500 swl a0, 0xf(v0)           |         __asm ("swl a0, 0xf(v0)");
    0x00001504 lw a1, 0x10(v1)           |         a1 = *((v1 + 4));
    0x00001508 swr a0, 0xc(v0)           |         __asm ("swr a0, 0xc(v0)");
    0x0000150c lw a0, 0x14(v1)           |         a0 = *((v1 + 5));
    0x00001510 swl a1, 0x13(v0)          |         __asm ("swl a1, 0x13(v0)");
    0x00001514 lw v1, 0x18(v1)           |         v1 = *((v1 + 6));
    0x00001518 swr a1, 0x10(v0)          |         __asm ("swr a1, 0x10(v0)");
    0x0000151c swl a0, 0x17(v0)          |         __asm ("swl a0, 0x17(v0)");
    0x00001520 swr a0, 0x14(v0)          |         __asm ("swr a0, 0x14(v0)");
    0x00001524 swl v1, 0x1b(v0)          |         __asm ("swl v1, 0x1b(v0)");
    0x00001528 swr v1, 0x18(v0)          |         __asm ("swr v1, 0x18(v0)");
    0x0000152c addiu v0, v0, 0x1b        |         v0 += 0x1b;
                                         | label_8:
    0x00001530 lw a1, -0x7fdc(gp)        |         a1 = *((gp - 8183));
    0x00001534 lw t9, -0x7f34(gp)        |         t9 = sym.imp.write_string_file_ts;
    0x00001538 sb zero, (v0)             |         *(v0) = 0;
    0x0000153c move a3, zero             |         a3 = 0;
    0x00001540 addiu a2, zero, 0x41      |         a2 = 0x41;
    0x00001544 addiu a1, a1, 0x1e58      |         a1 += str._Automatically_generated_by_systemd_run_generator_n_n_Unit__nDescriptionCommand_from_Kernel_Command_Line_nDocumentationman:systemd_run_generator_8__nSourcePath_proc_cmdline_nRequireskernel_command_line.service_nAfterkernel_command_line.service_n;
    0x00001548 move a0, s2               |         a0 = s2;
    0x0000154c jalr t9                   |         t9 ();
    0x00001550 move s0, v0               |         s0 = v0;
    0x00001554 lw gp, 0x20(fp)           |         gp = *(arg_20h);
                                         |         if (v0 < 0) {
    0x00001558 bltz v0, 0x1708           |             goto label_25;
                                         |         }
    0x0000155c lw v0, 0x2c(fp)           |         v0 = *(arg_2ch);
    0x00001560 lw s0, 0x311c(v0)         |         s0 = *((v0 + 3143));
    0x00001564 lw t9, -0x7f70(gp)        |         t9 = sym.imp.strlen;
                                         |         if (s0 == 0) {
    0x00001568 beqz s0, 0x1814           |             goto label_26;
                                         |         }
    0x0000156c move a0, s0               |         a0 = s0;
    0x00001570 jalr t9                   |         t9 ();
    0x00001574 lui a0, 0x40              |         a0 = 0x400000;
    0x00001578 addiu v1, v0, 0x10        |         v1 = v0 + 0x10;
    0x0000157c addiu a0, a0, 1           |         a0++;
    0x00001580 sltu v1, v1, a0           |         v1 = (v1 < a0) ? 1 : 0;
    0x00001584 lw gp, 0x20(fp)           |         gp = *(arg_20h);
                                         |         if (v1 == 0) {
    0x00001588 beqz v1, 0x17ec           |             goto label_27;
                                         |         }
    0x0000158c addiu v0, v0, 0x17        |         v0 += 0x17;
    0x00001590 srl v0, v0, 3             |         v0 >>= 3;
    0x00001594 sll v0, v0, 3             |         v0 <<= 3;
    0x00001598 subu sp, sp, v0           |         
    0x0000159c lw t9, -0x7f4c(gp)        |         t9 = sym.imp.stpcpy;
    0x000015a0 addiu s2, sp, 0x20        |         s2 = sp + 0x20;
    0x000015a4 move a1, s0               |         a1 = s0;
    0x000015a8 move a0, s2               |         a0 = s2;
    0x000015ac jalr t9                   |         t9 ();
    0x000015b0 lw gp, 0x20(fp)           |         gp = *(arg_20h);
    0x000015b4 lw a0, -0x7fdc(gp)        |         a0 = *((gp - 8183));
    0x000015b8 addiu v1, a0, 0x1fa8      |         v1 = a0 + str._default.target;
    0x000015bc lw a0, 0x1fa8(a0)         |         a0 = *(a0);
    0x000015c0 lw a1, 4(v1)              |         a1 = *((v1 + 1));
    0x000015c4 swl a0, 3(v0)             |         __asm ("swl a0, 3(v0)");
    0x000015c8 swr a0, (v0)              |         __asm ("swr a0, (v0)");
    0x000015cc swl a1, 7(v0)             |         __asm ("swl a1, 7(v0)");
    0x000015d0 lw a0, 8(v1)              |         a0 = *((v1 + 2));
    0x000015d4 swr a1, 4(v0)             |         __asm ("swr a1, 4(v0)");
    0x000015d8 swl a0, 0xb(v0)           |         __asm ("swl a0, 0xb(v0)");
    0x000015dc lw v1, 0xc(v1)            |         v1 = *((v1 + 3));
    0x000015e0 swr a0, 8(v0)             |         __asm ("swr a0, 8(v0)");
    0x000015e4 swl v1, 0xf(v0)           |         __asm ("swl v1, 0xf(v0)");
    0x000015e8 swr v1, 0xc(v0)           |         __asm ("swr v1, 0xc(v0)");
    0x000015ec addiu v0, v0, 0xf         |         v0 += 0xf;
                                         | label_9:
    0x000015f0 lw a0, -0x7fdc(gp)        |         a0 = *((gp - 8183));
    0x000015f4 lw t9, -0x7f60(gp)        |         t9 = sym.imp.symlink;
    0x000015f8 sb zero, (v0)             |         *(v0) = 0;
    0x000015fc move a1, s2               |         a1 = s2;
    0x00001600 addiu a0, a0, 0x1f4c      |         a0 += str.kernel_command_line.target;
    0x00001604 jalr t9                   |         t9 ();
    0x00001608 lw gp, 0x20(fp)           |         gp = *(arg_20h);
    0x0000160c bgez v0, 0x142c           |         
                                         |     } while (v0 >= 0);
    0x00001610 lw t9, -0x7f20(gp)        |     t9 = sym.imp.__errno_location;
    0x00001614 jalr t9                   |     t9 ();
    0x00001618 nop                       |     
    0x0000161c lw gp, 0x20(fp)           |     gp = *(arg_20h);
    0x00001620 move a0, zero             |     a0 = 0;
    0x00001624 lw t9, -0x7fac(gp)        |     t9 = sym.imp.log_get_max_level_realm;
    0x00001628 lw s0, (v0)               |     s0 = *(v0);
    0x0000162c jalr t9                   |     t9 ();
    0x00001630 slti v0, v0, 3            |     v0 = (v0 < 3) ? 1 : 0;
    0x00001634 lw gp, 0x20(fp)           |     gp = *(arg_20h);
                                         |     if (v0 == 0) {
    0x00001638 bnez v0, 0x1690           |         
    0x0000163c lw v0, -0x7fdc(gp)        |         v0 = *((gp - 8183));
    0x00001640 lw t9, -0x7f8c(gp)        |         t9 = sym.imp.log_internal_realm;
    0x00001644 addiu v0, v0, 0x1f68      |         v0 += str.Failed_to_link_unit_file_kernel_command_line.target___s:__m;
    0x00001648 sw v0, 0x14(sp)           |         *(var_14h_4) = v0;
    0x0000164c lw v0, -0x7fdc(gp)        |         v0 = *((gp - 8183));
    0x00001650 sw s2, 0x18(sp)           |         *(var_10h_3) = s2;
    0x00001654 addiu v0, v0, 0x2110      |         v0 += 0x2110;
    0x00001658 sw v0, 0x10(sp)           |         *(var_10h_4) = v0;
    0x0000165c addiu a3, zero, 0x79      |         a3 = 0x79;
    0x00001660 b 0x16d8                  |         goto label_5;
                                         | label_15:
    0x00001664 lw t9, -0x7f20(gp)        |         t9 = sym.imp.__errno_location;
    0x00001668 jalr t9                   |         t9 ();
    0x0000166c nop                       |         
    0x00001670 lw gp, 0x20(fp)           |         gp = *(arg_20h);
    0x00001674 move a0, zero             |         a0 = 0;
    0x00001678 lw t9, -0x7fac(gp)        |         t9 = sym.imp.log_get_max_level_realm;
    0x0000167c lw s0, (v0)               |         s0 = *(v0);
    0x00001680 jalr t9                   |         t9 ();
    0x00001684 slti v0, v0, 3            |         v0 = (v0 < 3) ? 1 : 0;
    0x00001688 lw gp, 0x20(fp)           |         gp = *(arg_20h);
                                         |         if (v0 == 0) {
    0x0000168c beqz v0, 0x16b4           |             goto label_28;
                                         |         }
                                         |     }
    0x00001690 move a1, s0               |     a1 = s0;
                                         |     if (s0 >= 0) {
    0x00001694 bltz s0, 0x16f8           |         
    0x00001698 andi a1, a1, 0xff         |         a1 &= 0xff;
    0x0000169c negu s0, a1               |         __asm ("negu s0, a1");
    0x000016a0 b 0x13c8                  |         goto label_1;
                                         | label_16:
    0x000016a4 addiu s2, s2, 0x1c88      |         s2 += str.exit;
    0x000016a8 b 0x12b8                  |         goto label_3;
                                         | label_21:
    0x000016ac addiu s2, s2, 0x1c88      |         s2 += str.exit;
    0x000016b0 b 0x143c                  |         goto label_4;
                                         | label_28:
    0x000016b4 lw v0, -0x7fdc(gp)        |         v0 = *((gp - 8183));
    0x000016b8 lw t9, -0x7f8c(gp)        |         t9 = sym.imp.log_internal_realm;
    0x000016bc addiu v0, v0, 0x1ce0      |         v0 += str.Failed_to_create_unit_file__s:__m;
    0x000016c0 sw v0, 0x14(sp)           |         *(var_14h) = v0;
    0x000016c4 lw v0, -0x7fdc(gp)        |         v0 = *((gp - 8183));
    0x000016c8 sw s4, 0x18(sp)           |         *(var_18h) = s4;
    0x000016cc addiu v0, v0, 0x2110      |         v0 += 0x2110;
    0x000016d0 sw v0, 0x10(sp)           |         *(var_10h) = v0;
    0x000016d4 addiu a3, zero, 0x44      |         a3 = 0x44;
                                         | label_5:
    0x000016d8 lw a2, -0x7fdc(gp)        |         a2 = *((gp - 8183));
    0x000016dc move a1, s0               |         a1 = s0;
    0x000016e0 addiu a2, a2, 0x1c97      |         a2 += 0x1c97;
    0x000016e4 addiu a0, zero, 3         |         a0 = 3;
    0x000016e8 jalr t9                   |         t9 ();
    0x000016ec move s0, v0               |         s0 = v0;
    0x000016f0 lw gp, 0x20(fp)           |         gp = *(arg_20h);
    0x000016f4 b 0x13c8                  |         goto label_1;
                                         |     }
    0x000016f8 negu a1, s0               |     __asm ("negu a1, s0");
    0x000016fc andi a1, a1, 0xff         |     a1 &= 0xff;
    0x00001700 negu s0, a1               |     __asm ("negu s0, a1");
    0x00001704 b 0x13c8                  |     goto label_1;
                                         | label_25:
    0x00001708 lw t9, -0x7fac(gp)        |     t9 = sym.imp.log_get_max_level_realm;
    0x0000170c move a0, zero             |     a0 = 0;
    0x00001710 jalr t9                   |     t9 ();
    0x00001714 slti v0, v0, 3            |     v0 = (v0 < 3) ? 1 : 0;
    0x00001718 lw gp, 0x20(fp)           |     gp = *(arg_20h);
                                         |     if (v0 == 0) {
    0x0000171c beqz v0, 0x17ac           |         goto label_29;
                                         |     }
                                         |     do {
    0x00001720 negu s0, s0               |         __asm ("negu s0, s0");
    0x00001724 andi s0, s0, 0xff         |         s0 &= 0xff;
    0x00001728 negu s0, s0               |         __asm ("negu s0, s0");
    0x0000172c b 0x13c8                  |         goto label_1;
                                         | label_22:
    0x00001730 lw t9, -0x7fac(gp)        |         t9 = sym.imp.log_get_max_level_realm;
    0x00001734 move a0, zero             |         a0 = 0;
    0x00001738 jalr t9                   |         t9 ();
    0x0000173c slti v0, v0, 3            |         v0 = (v0 < 3) ? 1 : 0;
    0x00001740 lw gp, 0x20(fp)           |         gp = *(arg_20h);
    0x00001744 bnez v0, 0x1720           |         
                                         |     } while (v0 != 0);
    0x00001748 lw v0, -0x7fdc(gp)        |     v0 = *((gp - 8183));
    0x0000174c lw t9, -0x7f8c(gp)        |     t9 = sym.imp.log_internal_realm;
    0x00001750 addiu v0, v0, 0x1e34      |     v0 += str.Failed_to_write_unit_file__s:__m;
    0x00001754 sw v0, 0x14(sp)           |     *(var_14h) = v0;
    0x00001758 lw v0, -0x7fdc(gp)        |     v0 = *((gp - 8183));
    0x0000175c sw s4, 0x18(sp)           |     *(var_18h) = s4;
    0x00001760 addiu v0, v0, 0x2110      |     v0 += 0x2110;
    0x00001764 sw v0, 0x10(sp)           |     *(var_10h) = v0;
    0x00001768 addiu a3, zero, 0x65      |     a3 = 0x65;
    0x0000176c b 0x16d8                  |     goto label_5;
                                         | label_14:
    0x00001770 lw v0, -0x7fdc(gp)        |     v0 = *((gp - 8183));
    0x00001774 lw t9, -0x7f50(gp)        |     t9 = sym.imp.log_assert_failed_realm;
    0x00001778 addiu v0, v0, 0x211c      |     v0 += str.generate;
    0x0000177c sw v0, 0x10(sp)           |     *(var_18h) = v0;
    0x00001780 addiu a3, zero, 0x41      |     a3 = 0x41;
                                         |     do {
                                         | label_7:
    0x00001784 lw a2, -0x7fdc(gp)        |         a2 = *((gp - 8183));
    0x00001788 lw a1, -0x7fdc(gp)        |         a1 = *((gp - 8183));
    0x0000178c addiu a2, a2, 0x1c97      |         a2 += 0x1c97;
    0x00001790 addiu a1, a1, 0x1cbc      |         a1 += str.sizeof_char__n____ALLOCA_MAX;
    0x00001794 move a0, zero             |         a0 = 0;
    0x00001798 jalr t9                   |         t9 ();
                                         | label_13:
    0x0000179c addiu sp, sp, -8          |         
    0x000017a0 addiu v0, sp, 0x20        |         v0 = sp + 0x20;
    0x000017a4 move s4, v0               |         s4 = v0;
    0x000017a8 b 0x1248                  |         goto label_6;
                                         | label_29:
    0x000017ac lw v0, -0x7fdc(gp)        |         v0 = *((gp - 8183));
    0x000017b0 lw t9, -0x7f8c(gp)        |         t9 = sym.imp.log_internal_realm;
    0x000017b4 addiu v0, v0, 0x1ce0      |         v0 += str.Failed_to_create_unit_file__s:__m;
    0x000017b8 sw v0, 0x14(sp)           |         *(var_14h_3) = v0;
    0x000017bc lw v0, -0x7fdc(gp)        |         v0 = *((gp - 8183));
    0x000017c0 sw s2, 0x18(sp)           |         *(var_10h) = s2;
    0x000017c4 addiu v0, v0, 0x2110      |         v0 += 0x2110;
    0x000017c8 sw v0, 0x10(sp)           |         *(var_10h_3) = v0;
    0x000017cc addiu a3, zero, 0x74      |         a3 = 0x74;
    0x000017d0 b 0x16d8                  |         goto label_5;
                                         | label_24:
    0x000017d4 lw v0, -0x7fdc(gp)        |         v0 = *((gp - 8183));
    0x000017d8 lw t9, -0x7f50(gp)        |         t9 = sym.imp.log_assert_failed_realm;
    0x000017dc addiu v0, v0, 0x211c      |         v0 += str.generate;
    0x000017e0 sw v0, 0x10(sp)           |         *(var_10h) = v0;
    0x000017e4 addiu a3, zero, 0x68      |         a3 = 0x68;
    0x000017e8 b 0x1784                  |         
                                         |     } while (1);
                                         | label_27:
    0x000017ec lw v0, -0x7fdc(gp)        |     v0 = *((gp - 8183));
    0x000017f0 lw t9, -0x7f50(gp)        |     t9 = sym.imp.log_assert_failed_realm;
    0x000017f4 addiu v0, v0, 0x211c      |     v0 += str.generate;
    0x000017f8 sw v0, 0x10(sp)           |     *(var_10h_3) = v0;
    0x000017fc addiu a3, zero, 0x77      |     a3 = 0x77;
    0x00001800 b 0x1784                  |     goto label_7;
                                         | label_23:
    0x00001804 addiu sp, sp, -8          |     
    0x00001808 addiu v0, sp, 0x20        |     v0 = sp + 0x20;
    0x0000180c move s2, v0               |     s2 = v0;
    0x00001810 b 0x1530                  |     goto label_8;
                                         | label_26:
    0x00001814 addiu sp, sp, -8          |     
    0x00001818 addiu v0, sp, 0x20        |     v0 = sp + 0x20;
    0x0000181c move s2, v0               |     s2 = v0;
    0x00001820 b 0x15f0                  |     goto label_9;
                                         | label_20:
    0x00001824 lw t9, -0x7f90(gp)        |     t9 = sym.imp.__stack_chk_fail;
    0x00001828 jalr t9                   |     t9 ();
    0x0000182c nop                       |     
    0x00001830 lui gp, 2                 |     
    0x00001834 addiu gp, gp, -0x6820     |     
    0x00001838 addu gp, gp, t9           |     gp += t9;
    0x0000183c addiu sp, sp, -0x38       |     
    0x00001840 lw t9, -0x7f44(gp)        |     t9 = sym.imp.proc_cmdline_key_streq;
    0x00001844 sw s0, 0x2c(sp)           |     *(var_2ch) = s0;
    0x00001848 move s0, a1               |     s0 = a1;
    0x0000184c lw a1, -0x7fdc(gp)        |     a1 = *((gp - 8183));
    0x00001850 sw gp, 0x20(sp)           |     *(var_20h_3) = gp;
    0x00001854 sw s1, 0x30(sp)           |     *(var_30h) = s1;
    0x00001858 sw ra, 0x34(sp)           |     *(var_34h) = ra;
    0x0000185c addiu a1, a1, 0x1ff4      |     a1 += str.systemd.run;
    0x00001860 move s1, a0               |     s1 = a0;
    0x00001864 jalr t9                   |     t9 ();
    0x00001868 lw gp, 0x20(sp)           |     gp = *(var_20h_3);
                                         |     if (v0 == 0) {
    0x0000186c beqz v0, 0x18a8           |         goto label_30;
                                         |     }
    0x00001870 lw a0, -0x7fd8(gp)        |     a0 = *((gp - 8182));
                                         |     if (s0 == 0) {
    0x00001874 beqz s0, 0x191c           |         goto label_31;
                                         |     }
    0x00001878 lw t9, -0x7f78(gp)        |     t9 = sym.imp.strv_extend;
    0x0000187c move a1, s0               |     a1 = s0;
    0x00001880 addiu a0, a0, 0x3118      |     a0 += 0x3118;
    0x00001884 jalr t9                   |     t9 ();
    0x00001888 lw gp, 0x20(sp)           |     gp = *(var_20h_3);
                                         |     if (v0 < 0) {
    0x0000188c bltz v0, 0x19a0           |         goto label_32;
                                         |     }
                                         |     do {
                                         | label_10:
    0x00001890 lw ra, 0x34(sp)           |         ra = *(var_34h);
                                         | label_11:
    0x00001894 lw s1, 0x30(sp)           |         s1 = *(var_30h);
    0x00001898 lw s0, 0x2c(sp)           |         s0 = *(var_2ch);
    0x0000189c move v0, zero             |         v0 = 0;
    0x000018a0 addiu sp, sp, 0x38        |         
    0x000018a4 jr ra                     |         return v0;
                                         | label_30:
    0x000018a8 lw a1, -0x7fdc(gp)        |         a1 = *((gp - 8183));
    0x000018ac lw t9, -0x7f44(gp)        |         t9 = sym.imp.proc_cmdline_key_streq;
    0x000018b0 addiu a1, a1, 0x2060      |         a1 += str.systemd.run_success_action;
    0x000018b4 move a0, s1               |         a0 = s1;
    0x000018b8 jalr t9                   |         t9 ();
    0x000018bc lw gp, 0x20(sp)           |         gp = *(var_20h_3);
                                         |         if (v0 == 0) {
    0x000018c0 beqz v0, 0x18f8           |             goto label_33;
                                         |         }
    0x000018c4 lw a0, -0x7fd8(gp)        |         a0 = *((gp - 8182));
                                         |         if (s0 == 0) {
    0x000018c8 beqz s0, 0x191c           |             goto label_31;
                                         |         }
    0x000018cc lw t9, -0x7f40(gp)        |         t9 = sym.imp.free_and_strdup;
    0x000018d0 move a1, s0               |         a1 = s0;
    0x000018d4 addiu a0, a0, 0x3114      |         a0 += 0x3114;
    0x000018d8 jalr t9                   |         t9 ();
    0x000018dc lw gp, 0x20(sp)           |         gp = *(var_20h_3);
    0x000018e0 bgez v0, 0x1890           |         
                                         |     } while (v0 >= 0);
    0x000018e4 lw a3, -0x7fdc(gp)        |     a3 = *((gp - 8183));
    0x000018e8 lw t9, -0x7fa0(gp)        |     t9 = sym.imp.log_oom_internal;
    0x000018ec addiu a3, a3, 0x2144      |     a3 += str.parse;
    0x000018f0 addiu a2, zero, 0x2a      |     a2 = 0x2a;
    0x000018f4 b 0x19b0                  |     goto label_34;
                                         | label_33:
    0x000018f8 lw a1, -0x7fdc(gp)        |     a1 = *((gp - 8183));
    0x000018fc lw t9, -0x7f44(gp)        |     t9 = sym.imp.proc_cmdline_key_streq;
    0x00001900 addiu a1, a1, 0x207c      |     a1 += str.systemd.run_failure_action;
    0x00001904 move a0, s1               |     a0 = s1;
    0x00001908 jalr t9                   |     t9 ();
    0x0000190c lw gp, 0x20(sp)           |     gp = *(var_20h_3);
                                         |     if (v0 == 0) {
    0x00001910 beqz v0, 0x1890           |         goto label_10;
                                         |     }
    0x00001914 lw a0, -0x7fd8(gp)        |     a0 = *((gp - 8182));
                                         |     if (s0 != 0) {
    0x00001918 bnez s0, 0x1974           |         goto label_35;
                                         |     }
                                         | label_31:
    0x0000191c lw t9, -0x7fac(gp)        |     t9 = sym.imp.log_get_max_level_realm;
    0x00001920 move a0, zero             |     a0 = 0;
    0x00001924 jalr t9                   |     t9 ();
    0x00001928 slti v0, v0, 4            |     v0 = (v0 < 4) ? 1 : 0;
    0x0000192c lw gp, 0x20(sp)           |     gp = *(var_20h_3);
                                         |     if (v0 != 0) {
    0x00001930 bnez v0, 0x1890           |         goto label_10;
                                         |     }
    0x00001934 lw v0, -0x7fdc(gp)        |     v0 = *((gp - 8183));
    0x00001938 lw a2, -0x7fdc(gp)        |     a2 = *((gp - 8183));
    0x0000193c addiu v0, v0, 0x2020      |     v0 += str.Missing_argument_for__s_kernel_command_line_switch__ignoring.;
    0x00001940 sw v0, 0x14(sp)           |     *(var_14h_2) = v0;
    0x00001944 lw v0, -0x7fdc(gp)        |     v0 = *((gp - 8183));
    0x00001948 lw t9, -0x7f8c(gp)        |     t9 = sym.imp.log_internal_realm;
    0x0000194c addiu v0, v0, 0x2128      |     v0 += str.proc_cmdline_value_missing;
    0x00001950 sw s1, 0x18(sp)           |     *(var_18h_2) = s1;
    0x00001954 sw v0, 0x10(sp)           |     *(var_10h_2) = v0;
    0x00001958 addiu a3, zero, 0x24      |     a3 = 0x24;
    0x0000195c addiu a2, a2, 0x2007      |     a2 += 0x2007;
    0x00001960 move a1, zero             |     a1 = 0;
    0x00001964 addiu a0, zero, 4         |     a0 = 4;
    0x00001968 jalr t9                   |     t9 ();
    0x0000196c lw ra, 0x34(sp)           |     ra = *(var_34h);
    0x00001970 b 0x1894                  |     goto label_11;
                                         | label_35:
    0x00001974 lw t9, -0x7f40(gp)        |     t9 = sym.imp.free_and_strdup;
    0x00001978 move a1, s0               |     a1 = s0;
    0x0000197c addiu a0, a0, 0x3110      |     a0 += 0x3110;
    0x00001980 jalr t9                   |     t9 ();
    0x00001984 lw gp, 0x20(sp)           |     gp = *(var_20h_3);
                                         |     if (v0 >= 0) {
    0x00001988 bgez v0, 0x1890           |         goto label_10;
                                         |     }
    0x0000198c lw a3, -0x7fdc(gp)        |     a3 = *((gp - 8183));
    0x00001990 lw t9, -0x7fa0(gp)        |     t9 = sym.imp.log_oom_internal;
    0x00001994 addiu a3, a3, 0x2144      |     a3 += str.parse;
    0x00001998 addiu a2, zero, 0x32      |     a2 = 0x32;
    0x0000199c b 0x19b0                  |     goto label_34;
                                         | label_32:
    0x000019a0 lw a3, -0x7fdc(gp)        |     a3 = *((gp - 8183));
    0x000019a4 lw t9, -0x7fa0(gp)        |     t9 = sym.imp.log_oom_internal;
    0x000019a8 addiu a3, a3, 0x2144      |     a3 += str.parse;
    0x000019ac addiu a2, zero, 0x22      |     a2 = 0x22;
                                         | label_34:
    0x000019b0 lw a1, -0x7fdc(gp)        |     a1 = *((gp - 8183));
    0x000019b4 lw ra, 0x34(sp)           |     ra = *(var_34h);
    0x000019b8 lw s1, 0x30(sp)           |     s1 = *(var_30h);
    0x000019bc lw s0, 0x2c(sp)           |     s0 = *(var_2ch);
    0x000019c0 addiu a1, a1, 0x1c97      |     a1 += 0x1c97;
    0x000019c4 move a0, zero             |     a0 = 0;
    0x000019c8 addiu sp, sp, 0x38        |     
    0x000019cc jr t9                     |     return t9 ();
                                         | }

[*] Function fprintf used 4 times systemd-run-generator