[*] Binary protection state of systemd
Full RELRO Canary found NX disabled PIE enabled RPATH No RUNPATH No Symbols
[*] Function printf 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 printf used 6 times systemd