[*] Binary protection state of systemd-run
Full RELRO Canary found NX disabled PIE enabled RPATH No RUNPATH No Symbols
[*] Function printf tear down of systemd-run
; assembly | /* r2dec pseudo code output */
| /* /logs/firmware/unblob_extracted/firmware_extract/4325012-58052244.squashfs_v4_le_extract/usr/bin/systemd-run @ 0x62b4 */
| #include <stdint.h>
|
; (fcn) fcn.000062b4 () | void fcn_000062b4 () {
0x000062b4 lui gp, 2 |
0x000062b8 addiu gp, gp, -0x2284 |
0x000062bc addu gp, gp, t9 | gp += t9;
0x000062c0 addiu sp, sp, -0x98 |
0x000062c4 sw s1, 0x80(sp) | *(var_80h) = s1;
0x000062c8 lw s1, -0x7ec4(gp) | s1 = *((gp - 8113));
0x000062cc sw gp, 0x50(sp) | *(var_50h) = gp;
0x000062d0 sw ra, 0x94(sp) | *(var_94h) = ra;
0x000062d4 sw s5, 0x90(sp) | *(var_90h) = s5;
0x000062d8 sw s4, 0x8c(sp) | *(var_8ch) = s4;
0x000062dc sw s3, 0x88(sp) | *(var_88h) = s3;
0x000062e0 sw s2, 0x84(sp) | *(var_84h) = s2;
0x000062e4 sw s0, 0x7c(sp) | *(var_7ch) = s0;
0x000062e8 lw v0, (s1) | v0 = *(s1);
0x000062ec sw v0, 0x74(sp) | *(var_74h) = v0;
0x000062f0 lw t9, -0x7eac(gp) | t9 = sym.imp.sd_bus_get_unique_name;
| if (a0 == 0) {
0x000062f4 beqz a0, 0x64a4 | goto label_1;
| }
0x000062f8 move s2, a1 | s2 = a1;
0x000062fc addiu a1, sp, 0x5c | a1 = sp + 0x5c;
0x00006300 move s3, a2 | s3 = a2;
0x00006304 jalr t9 | t9 ();
0x00006308 lw gp, 0x50(sp) | gp = *(var_50h);
| if (v0 < 0) {
0x0000630c bltz v0, 0x63d4 | goto label_2;
| }
0x00006310 lw a1, -0x7fd8(gp) | a1 = *((gp - 8182));
0x00006314 lw s4, 0x5c(sp) | s4 = *(var_5ch_2);
0x00006318 lw t9, -0x7f60(gp) | t9 = sym.imp.strncmp;
0x0000631c addiu a2, zero, 3 | a2 = 3;
0x00006320 addiu a1, a1, -0x66b8 | a1 += -0x66b8;
0x00006324 move a0, s4 | a0 = s4;
0x00006328 jalr t9 | t9 ();
0x0000632c move s0, v0 | s0 = v0;
0x00006330 lw gp, 0x50(sp) | gp = *(var_50h);
| if (v0 != 0) {
0x00006334 bnez v0, 0x63b4 | goto label_3;
| }
0x00006338 addiu s5, s4, 3 | s5 = s4 + 3;
0x0000633c lw t9, -0x7dfc(gp) | t9 = sym.imp.unit_type_to_string;
| if (s5 == 0) {
0x00006340 beqz s5, 0x63b4 | goto label_3;
| }
0x00006344 move a0, s2 | a0 = s2;
0x00006348 jalr t9 | t9 ();
0x0000634c lw gp, 0x50(sp) | gp = *(var_50h);
0x00006350 sw zero, 0x10(sp) | *(var_10h) = 0;
0x00006354 move a3, v0 | a3 = v0;
0x00006358 lw a2, -0x7fd8(gp) | a2 = *((gp - 8182));
0x0000635c lw a0, -0x7fd8(gp) | a0 = *((gp - 8182));
0x00006360 lw t9, -0x7e2c(gp) | t9 = sym.imp.strjoin_real;
0x00006364 addiu a2, a2, -0x62a8 | a2 += -0x62a8;
0x00006368 move a1, s5 | a1 = s5;
0x0000636c addiu a0, a0, -0x668c | a0 += -0x668c;
0x00006370 jalr t9 | t9 ();
0x00006374 lw gp, 0x50(sp) | gp = *(var_50h);
| if (v0 == 0) {
0x00006378 beqz v0, 0x653c | goto label_4;
| }
0x0000637c sw v0, (s3) | *(s3) = v0;
| do {
| label_0:
0x00006380 lw a0, 0x74(sp) | a0 = *(var_74h);
0x00006384 lw v1, (s1) | v1 = *(s1);
0x00006388 move v0, s0 | v0 = s0;
| if (a0 != v1) {
0x0000638c bne a0, v1, 0x65bc | goto label_5;
| }
0x00006390 lw ra, 0x94(sp) | ra = *(var_94h);
0x00006394 lw s5, 0x90(sp) | s5 = *(var_90h);
0x00006398 lw s4, 0x8c(sp) | s4 = *(var_8ch);
0x0000639c lw s3, 0x88(sp) | s3 = *(var_88h);
0x000063a0 lw s2, 0x84(sp) | s2 = *(var_84h);
0x000063a4 lw s1, 0x80(sp) | s1 = *(var_80h);
0x000063a8 lw s0, 0x7c(sp) | s0 = *(var_7ch);
0x000063ac addiu sp, sp, 0x98 |
0x000063b0 jr ra | return v0;
| label_3:
0x000063b4 lw t9, -0x7fa4(gp) | t9 = sym.imp.log_get_max_level_realm;
0x000063b8 move a0, zero | a0 = 0;
0x000063bc jalr t9 | t9 ();
0x000063c0 slti v0, v0, 3 | v0 = (v0 < 3) ? 1 : 0;
0x000063c4 lw gp, 0x50(sp) | gp = *(var_50h);
| if (v0 == 0) {
0x000063c8 beqz v0, 0x64f4 | goto label_6;
| }
0x000063cc addiu s0, zero, -0x16 | s0 = -0x16;
0x000063d0 b 0x6380 |
| } while (1);
| label_2:
0x000063d4 lw t9, -0x7e30(gp) | t9 = sym.imp.sd_id128_randomize;
0x000063d8 addiu a0, sp, 0x60 | a0 = sp + 0x60;
0x000063dc jalr t9 | t9 ();
0x000063e0 move s0, v0 | s0 = v0;
0x000063e4 lw gp, 0x50(sp) | gp = *(var_50h);
| if (v0 >= 0) {
0x000063e8 bltz v0, 0x64cc |
0x000063ec lw t9, -0x7dfc(gp) | t9 = sym.imp.unit_type_to_string;
0x000063f0 move a0, s2 | a0 = s2;
0x000063f4 jalr t9 | t9 ();
0x000063f8 lw gp, 0x50(sp) | gp = *(var_50h);
0x000063fc lbu a2, 0x64(sp) | a2 = *(var_64h_2);
0x00006400 lbu t9, 0x6f(sp) | t9 = *(var_6fh);
0x00006404 lbu t8, 0x6e(sp) | t8 = *(var_6eh);
0x00006408 lbu t7, 0x6d(sp) | t7 = *(var_6dh);
0x0000640c lbu t6, 0x6c(sp) | t6 = *(var_6ch_2);
0x00006410 lbu t5, 0x6b(sp) | t5 = *(var_6bh);
0x00006414 lbu t4, 0x6a(sp) | t4 = *(var_6ah);
0x00006418 lbu t3, 0x69(sp) | t3 = *(var_69h);
0x0000641c lbu t2, 0x68(sp) | t2 = *(var_68h_2);
0x00006420 lbu t1, 0x67(sp) | t1 = *(var_67h);
0x00006424 lbu t0, 0x66(sp) | t0 = *(var_66h);
0x00006428 lbu a1, 0x63(sp) | a1 = *(var_63h);
0x0000642c lbu a0, 0x62(sp) | a0 = *(var_62h);
0x00006430 lbu v1, 0x61(sp) | v1 = *(var_61h);
0x00006434 lbu a3, 0x65(sp) | a3 = *(var_65h);
0x00006438 sw a2, 0x1c(sp) | *(var_1ch) = a2;
0x0000643c lw a2, -0x7fd8(gp) | a2 = *((gp - 8182));
0x00006440 sw v0, 0x4c(sp) | *(var_4ch_2) = v0;
0x00006444 sw t9, 0x48(sp) | *(var_48h_2) = t9;
0x00006448 sw t8, 0x44(sp) | *(var_44h_2) = t8;
0x0000644c lw t9, -0x7e74(gp) | t9 = sym.imp.__asprintf_chk
0x00006450 sw t7, 0x40(sp) | *(var_40h_2) = t7;
0x00006454 sw t6, 0x3c(sp) | *(var_3ch_2) = t6;
0x00006458 sw t5, 0x38(sp) | *(var_38h_2) = t5;
0x0000645c sw t4, 0x34(sp) | *(var_34h_2) = t4;
0x00006460 sw t3, 0x30(sp) | *(var_30h_2) = t3;
0x00006464 sw t2, 0x2c(sp) | *(var_2ch_2) = t2;
0x00006468 sw t1, 0x28(sp) | *(var_28h_2) = t1;
0x0000646c sw t0, 0x24(sp) | *(var_24h) = t0;
0x00006470 sw a1, 0x18(sp) | *(var_18h) = a1;
0x00006474 sw a0, 0x14(sp) | *(var_14h) = a0;
0x00006478 sw v1, 0x10(sp) | *(var_10h) = v1;
0x0000647c sw a3, 0x20(sp) | *(var_20h_2) = a3;
0x00006480 lbu a3, 0x60(sp) | a3 = *(var_60h_2);
0x00006484 addiu a2, a2, -0x6704 | a2 += -0x6704;
0x00006488 addiu a1, zero, 1 | a1 = 1;
0x0000648c move a0, s3 | a0 = s3;
0x00006490 jalr t9 | t9 ();
0x00006494 lw gp, 0x50(sp) | gp = *(var_50h);
| if (v0 < 0) {
0x00006498 bltz v0, 0x6568 | goto label_7;
| }
0x0000649c move s0, zero | s0 = 0;
0x000064a0 b 0x6380 | goto label_0;
| label_1:
0x000064a4 lw v0, -0x7fd8(gp) | v0 = *((gp - 8182));
0x000064a8 lw a2, -0x7fd8(gp) | a2 = *((gp - 8182));
0x000064ac lw a1, -0x7fd8(gp) | a1 = *((gp - 8182));
0x000064b0 addiu v0, v0, -0x45e8 | v0 += -0x45e8;
0x000064b4 lw t9, -0x7e38(gp) | t9 = sym.imp.log_assert_failed_realm;
0x000064b8 sw v0, 0x10(sp) | *(var_10h) = v0;
0x000064bc addiu a3, zero, 0x381 | a3 = 0x381;
0x000064c0 addiu a2, a2, -0x6991 | a2 += -0x6991;
0x000064c4 addiu a1, a1, -0x6734 | a1 += -0x6734;
0x000064c8 jalr t9 | t9 ();
| }
0x000064cc lw t9, -0x7fa4(gp) | t9 = sym.imp.log_get_max_level_realm;
0x000064d0 move a0, zero | a0 = 0;
0x000064d4 jalr t9 | t9 ();
0x000064d8 slti v0, v0, 3 | v0 = (v0 < 3) ? 1 : 0;
0x000064dc lw gp, 0x50(sp) | gp = *(var_50h);
| if (v0 == 0) {
0x000064e0 beqz v0, 0x657c | goto label_8;
| }
0x000064e4 negu s0, s0 | __asm ("negu s0, s0");
0x000064e8 andi s0, s0, 0xff | s0 &= 0xff;
0x000064ec negu s0, s0 | __asm ("negu s0, s0");
0x000064f0 b 0x6380 | goto label_0;
| label_6:
0x000064f4 lw v0, -0x7fd8(gp) | v0 = *((gp - 8182));
0x000064f8 lw a2, -0x7fd8(gp) | a2 = *((gp - 8182));
0x000064fc addiu v0, v0, -0x66b4 | v0 += -0x66b4;
0x00006500 sw v0, 0x14(sp) | *(var_14h) = v0;
0x00006504 lw v0, -0x7fd8(gp) | v0 = *((gp - 8182));
0x00006508 lw t9, -0x7f00(gp) | t9 = sym.imp.log_internal_realm;
0x0000650c addiu v0, v0, -0x45f8 | v0 += -0x45f8;
0x00006510 lui a1, 0x4000 | a1 = 0x40000000;
0x00006514 sw s4, 0x18(sp) | *(var_18h) = s4;
0x00006518 sw v0, 0x10(sp) | *(var_10h) = v0;
0x0000651c addiu a3, zero, 0x39f | a3 = 0x39f;
0x00006520 addiu a2, a2, -0x6991 | a2 += -0x6991;
0x00006524 addiu a1, a1, 0x16 | a1 += 0x16;
0x00006528 addiu a0, zero, 3 | a0 = 3;
0x0000652c jalr t9 | t9 ();
0x00006530 move s0, v0 | s0 = v0;
0x00006534 lw gp, 0x50(sp) | gp = *(var_50h);
0x00006538 b 0x6380 | goto label_0;
| label_4:
0x0000653c lw a3, -0x7fd8(gp) | a3 = *((gp - 8182));
0x00006540 lw t9, -0x7fa0(gp) | t9 = sym.imp.log_oom_internal;
0x00006544 addiu a3, a3, -0x45f8 | a3 += -0x45f8;
0x00006548 addiu a2, zero, 0x3a3 | a2 = 0x3a3;
| do {
0x0000654c lw a1, -0x7fd8(gp) | a1 = *((gp - 8182));
0x00006550 move a0, zero | a0 = 0;
0x00006554 addiu a1, a1, -0x6991 | a1 += -0x6991;
0x00006558 jalr t9 | t9 ();
0x0000655c move s0, v0 | s0 = v0;
0x00006560 lw gp, 0x50(sp) | gp = *(var_50h);
0x00006564 b 0x6380 | goto label_0;
| label_7:
0x00006568 lw a3, -0x7fd8(gp) | a3 = *((gp - 8182));
0x0000656c lw t9, -0x7fa0(gp) | t9 = sym.imp.log_oom_internal;
0x00006570 addiu a3, a3, -0x45f8 | a3 += -0x45f8;
0x00006574 addiu a2, zero, 0x393 | a2 = 0x393;
0x00006578 b 0x654c |
| } while (1);
| label_8:
0x0000657c lw v0, -0x7fd8(gp) | v0 = *((gp - 8182));
0x00006580 lw a2, -0x7fd8(gp) | a2 = *((gp - 8182));
0x00006584 addiu v0, v0, -0x6730 | v0 += -0x6730;
0x00006588 sw v0, 0x14(sp) | *(var_14h) = v0;
0x0000658c lw v0, -0x7fd8(gp) | v0 = *((gp - 8182));
0x00006590 lw t9, -0x7f00(gp) | t9 = sym.imp.log_internal_realm;
0x00006594 addiu v0, v0, -0x45f8 | v0 += -0x45f8;
0x00006598 move a1, s0 | a1 = s0;
0x0000659c sw v0, 0x10(sp) | *(var_10h) = v0;
0x000065a0 addiu a3, zero, 0x390 | a3 = 0x390;
0x000065a4 addiu a2, a2, -0x6991 | a2 += -0x6991;
0x000065a8 addiu a0, zero, 3 | a0 = 3;
0x000065ac jalr t9 | t9 ();
0x000065b0 move s0, v0 | s0 = v0;
0x000065b4 lw gp, 0x50(sp) | gp = *(var_50h);
0x000065b8 b 0x6380 | goto label_0;
| label_5:
0x000065bc lw t9, -0x7f14(gp) | t9 = sym.imp.__stack_chk_fail;
0x000065c0 jalr t9 | t9 ();
0x000065c4 nop |
| }
[*] Function printf used 2 times systemd-run