[*] Binary protection state of systemd-mount
Full RELRO Canary found NX disabled PIE enabled RPATH No RUNPATH No Symbols
[*] Function sprintf tear down of systemd-mount
; assembly | /* r2dec pseudo code output */
| /* /logs/firmware/unblob_extracted/firmware_extract/4325012-58052244.squashfs_v4_le_extract/usr/bin/systemd-mount @ 0x63c0 */
| #include <stdint.h>
|
; (fcn) fcn.000063c0 () | void fcn_000063c0 () {
0x000063c0 lui gp, 2 |
0x000063c4 addiu gp, gp, -0x3370 |
0x000063c8 addu gp, gp, t9 | gp += t9;
0x000063cc addiu sp, sp, -0x60 |
0x000063d0 sw s1, 0x50(sp) | *(var_50h) = s1;
0x000063d4 lw s1, -0x7eec(gp) | s1 = *((gp - 8123));
0x000063d8 sw gp, 0x28(sp) | *(var_28h) = gp;
0x000063dc sw ra, 0x5c(sp) | *(var_5ch) = ra;
0x000063e0 sw s3, 0x58(sp) | *(var_58h) = s3;
0x000063e4 sw s2, 0x54(sp) | *(var_54h) = s2;
0x000063e8 sw s0, 0x4c(sp) | *(var_4ch) = s0;
0x000063ec lw v0, (s1) | v0 = *(s1);
0x000063f0 sw zero, 0x3c(sp) | *(var_3ch) = 0;
0x000063f4 sw v0, 0x44(sp) | *(var_44h) = v0;
0x000063f8 lw t9, -0x7fdc(gp) | t9 = *((gp - 8183));
| if (a0 == 0) {
0x000063fc beqz a0, 0x66b4 | goto label_5;
| }
0x00006400 lw v0, -0x7fd4(gp) | v0 = *((gp - 8181));
0x00006404 addiu a1, zero, 1 | a1 = 1;
0x00006408 lw a2, -0x4d58(v0) | a2 = *((v0 - 4950));
0x0000640c addiu t9, t9, 0x61c0 | t9 += fcn.000061c0;
0x00006410 move s0, a0 | s0 = a0;
0x00006414 bal 0x61c0 | fcn_000061c0 ();
0x00006418 lw gp, 0x28(sp) | gp = *(var_28h);
| if (v0 < 0) {
0x0000641c bltz v0, 0x6554 | goto label_1;
| }
0x00006420 lw s3, -0x7fd4(gp) | s3 = *((gp - 8181));
0x00006424 lw v0, -0x4d44(s3) | v0 = *((s3 - 4945));
0x00006428 lw a3, -0x7fd0(gp) | a3 = *((gp - 8180));
| if (v0 != 0) {
0x0000642c beqz v0, 0x645c |
0x00006430 lw a2, -0x7fd0(gp) | a2 = *((gp - 8180));
0x00006434 lw a1, -0x7fd0(gp) | a1 = *((gp - 8180));
0x00006438 lw t9, -0x7e5c(gp) | t9 = sym.imp.sd_bus_message_append;
0x0000643c sw v0, 0x10(sp) | *(var_10h) = v0;
0x00006440 addiu a3, a3, -0x6380 | a3 += -0x6380;
0x00006444 addiu a2, a2, -0x6a44 | a2 += -0x6a44;
0x00006448 addiu a1, a1, -0x6a84 | a1 += -0x6a84;
0x0000644c move a0, s0 | a0 = s0;
0x00006450 jalr t9 | t9 ();
0x00006454 lw gp, 0x28(sp) | gp = *(var_28h);
| if (v0 < 0) {
0x00006458 bltz v0, 0x6554 | goto label_1;
| }
| }
0x0000645c lw v0, -0x7fd4(gp) | v0 = *((gp - 8181));
0x00006460 lw v0, -0x4d4c(v0) | v0 = *((v0 - 4947));
0x00006464 lw a3, -0x7fd0(gp) | a3 = *((gp - 8180));
| if (v0 != 0) {
0x00006468 beqz v0, 0x6498 |
0x0000646c lw a2, -0x7fd0(gp) | a2 = *((gp - 8180));
0x00006470 lw a1, -0x7fd0(gp) | a1 = *((gp - 8180));
0x00006474 lw t9, -0x7e5c(gp) | t9 = sym.imp.sd_bus_message_append;
0x00006478 sw v0, 0x10(sp) | *(var_10h) = v0;
0x0000647c addiu a3, a3, -0x6380 | a3 += -0x6380;
0x00006480 addiu a2, a2, -0x6a3c | a2 += -0x6a3c;
0x00006484 addiu a1, a1, -0x6a84 | a1 += -0x6a84;
0x00006488 move a0, s0 | a0 = s0;
0x0000648c jalr t9 | t9 ();
0x00006490 lw gp, 0x28(sp) | gp = *(var_28h);
| if (v0 < 0) {
0x00006494 bltz v0, 0x6554 | goto label_1;
| }
| }
0x00006498 lw v1, -0x7fd4(gp) | v1 = *((gp - 8181));
0x0000649c addiu v0, zero, -1 | v0 = -1;
0x000064a0 lw a3, -0x4ff8(v1) | a3 = *((v1 - 5118));
0x000064a4 lw v1, -0x7fd4(gp) | v1 = *((gp - 8181));
| if (a3 != v0) {
0x000064a8 beq a3, v0, 0x64f0 |
0x000064ac lw v0, -0x7fd4(gp) | v0 = *((gp - 8181));
0x000064b0 lw v1, -0x4d50(v1) | v1 = *((v1 - 4948));
0x000064b4 lw a0, -0x4ffc(v0) | a0 = *((v0 - 5119));
| if (v1 == 0) {
0x000064b8 beqz v1, 0x66dc | goto label_6;
| }
0x000064bc lw v0, -0x7fd0(gp) | v0 = *((gp - 8180));
0x000064c0 addiu v0, v0, -0x6a48 | v0 += -0x6a48;
| label_2:
0x000064c4 lw a2, -0x7fd0(gp) | a2 = *((gp - 8180));
0x000064c8 lw t9, -0x7e9c(gp) | t9 = sym.imp.__asprintf_chk
0x000064cc sw a0, 0x10(sp) | *(var_10h) = a0;
0x000064d0 sw v1, 0x18(sp) | *(var_18h) = v1;
0x000064d4 sw v0, 0x14(sp) | *(var_14h) = v0;
0x000064d8 addiu a2, a2, -0x6a34 | a2 += -0x6a34;
0x000064dc addiu a1, zero, 1 | a1 = 1;
0x000064e0 addiu a0, sp, 0x3c | a0 = sp + 0x3c;
0x000064e4 jalr t9 | t9 ();
0x000064e8 lw gp, 0x28(sp) | gp = *(var_28h);
| if (v0 < 0) {
0x000064ec bltz v0, 0x6730 | goto label_7;
| }
| }
0x000064f0 lw t9, -0x7fa0(gp) | t9 = sym.imp.log_get_max_level_realm;
0x000064f4 lw s2, 0x3c(sp) | s2 = *(var_3ch);
0x000064f8 move a0, zero | a0 = 0;
0x000064fc jalr t9 | t9 ();
0x00006500 lw gp, 0x28(sp) | gp = *(var_28h);
| if (s2 == 0) {
0x00006504 beqz s2, 0x6594 | goto label_8;
| }
0x00006508 slti v0, v0, 7 | v0 = (v0 < 7) ? 1 : 0;
0x0000650c lw v0, -0x7fd0(gp) | v0 = *((gp - 8180));
0x00006510 beqz v0, 0x65ac |
| while (s2 != 0) {
| label_0:
0x00006514 lw a3, -0x7fd0(gp) | a3 = *((gp - 8180));
0x00006518 lw a2, -0x7fd0(gp) | a2 = *((gp - 8180));
0x0000651c lw a1, -0x7fd0(gp) | a1 = *((gp - 8180));
0x00006520 lw t9, -0x7e5c(gp) | t9 = sym.imp.sd_bus_message_append;
0x00006524 sw s2, 0x10(sp) | *(var_10h) = s2;
0x00006528 addiu a3, a3, -0x6380 | a3 += -0x6380;
0x0000652c addiu a2, a2, -0x6a08 | a2 += -0x6a08;
0x00006530 addiu a1, a1, -0x6a84 | a1 += -0x6a84;
0x00006534 move a0, s0 | a0 = s0;
0x00006538 jalr t9 | t9 ();
0x0000653c lw gp, 0x28(sp) | gp = *(var_28h);
| if (v0 >= 0) {
0x00006540 bltz v0, 0x6554 |
| label_4:
0x00006544 lw v0, -0x7fd4(gp) | v0 = *((gp - 8181));
| label_3:
0x00006548 lbu v0, -0x5000(v0) | v0 = *((v0 - 20480));
0x0000654c move v0, zero | v0 = 0;
| if (v0 != 0) {
0x00006550 bnez v0, 0x65f8 | goto label_9;
| }
| }
| label_1:
0x00006554 lw t9, -0x7e7c(gp) | t9 = sym.imp.free;
0x00006558 lw a0, 0x3c(sp) | a0 = *(var_3ch);
0x0000655c sw v0, 0x34(sp) | *(var_34h) = v0;
0x00006560 jalr t9 | t9 ();
0x00006564 lw a0, 0x44(sp) | a0 = *(var_44h);
0x00006568 lw v1, (s1) | v1 = *(s1);
0x0000656c lw gp, 0x28(sp) | gp = *(var_28h);
0x00006570 lw v0, 0x34(sp) | v0 = *(var_34h);
| if (a0 != v1) {
0x00006574 bne a0, v1, 0x6738 | goto label_10;
| }
0x00006578 lw ra, 0x5c(sp) | ra = *(var_5ch);
0x0000657c lw s3, 0x58(sp) | s3 = *(var_58h);
0x00006580 lw s2, 0x54(sp) | s2 = *(var_54h);
0x00006584 lw s1, 0x50(sp) | s1 = *(var_50h);
0x00006588 lw s0, 0x4c(sp) | s0 = *(var_4ch);
0x0000658c addiu sp, sp, 0x60 |
0x00006590 jr ra | return v0;
| label_8:
0x00006594 lw v1, -0x7fd4(gp) | v1 = *((gp - 8181));
0x00006598 lw s2, -0x4d50(v1) | s2 = *((v1 - 4948));
0x0000659c slti v0, v0, 7 | v0 = (v0 < 7) ? 1 : 0;
| if (s2 == 0) {
0x000065a0 beqz s2, 0x66ec | goto label_11;
| }
0x000065a4 lw v0, -0x7fd0(gp) | v0 = *((gp - 8180));
| if (v0 != 0) {
0x000065a8 bnez v0, 0x65f0 | goto label_12;
| }
0x000065ac lw a2, -0x7fd0(gp) | a2 = *((gp - 8180));
0x000065b0 addiu v0, v0, -0x6a20 | v0 += -0x6a20;
0x000065b4 sw v0, 0x14(sp) | *(var_14h) = v0;
0x000065b8 lw v0, -0x7fd0(gp) | v0 = *((gp - 8180));
0x000065bc lw t9, -0x7f20(gp) | t9 = sym.imp.log_internal_realm;
0x000065c0 addiu v0, v0, -0x5fa0 | v0 += -0x5fa0;
0x000065c4 sw s2, 0x18(sp) | *(var_18h) = s2;
0x000065c8 sw v0, 0x10(sp) | *(var_10h) = v0;
0x000065cc addiu a3, zero, 0x1da | a3 = 0x1da;
0x000065d0 addiu a2, a2, -0x7681 | a2 += -0x7681;
0x000065d4 move a1, zero | a1 = 0;
0x000065d8 addiu a0, zero, 7 | a0 = 7;
0x000065dc jalr t9 | t9 ();
0x000065e0 lw s2, 0x3c(sp) | s2 = *(var_3ch);
0x000065e4 lw gp, 0x28(sp) | gp = *(var_28h);
0x000065e8 bnez s2, 0x6514 |
| }
0x000065ec lw v1, -0x7fd4(gp) | v1 = *((gp - 8181));
| label_12:
0x000065f0 lw s2, -0x4d50(v1) | s2 = *((v1 - 4948));
0x000065f4 b 0x6514 | goto label_0;
| label_9:
0x000065f8 lw a2, -0x7fd0(gp) | a2 = *((gp - 8180));
0x000065fc lw a0, -0x7fd0(gp) | a0 = *((gp - 8180));
0x00006600 lw t9, -0x7eac(gp) | t9 = sym.imp.unit_name_from_path_instance;
0x00006604 lw a1, -0x4d44(s3) | a1 = *((s3 - 4945));
0x00006608 addiu a3, sp, 0x40 | a3 = sp + 0x40;
0x0000660c addiu a2, a2, -0x69e4 | a2 += -0x69e4;
0x00006610 addiu a0, a0, -0x69d8 | a0 += -0x69d8;
0x00006614 sw zero, 0x40(sp) | *(var_40h_4) = 0;
0x00006618 jalr t9 | t9 ();
0x0000661c lw gp, 0x28(sp) | gp = *(var_28h);
| if (v0 >= 0) {
0x00006620 bltz v0, 0x6698 |
0x00006624 lw a3, -0x7fd0(gp) | a3 = *((gp - 8180));
0x00006628 lw v0, -0x7fd0(gp) | v0 = *((gp - 8180));
0x0000662c lw a0, 0x40(sp) | a0 = *(var_40h_4);
0x00006630 lw a2, -0x7fd0(gp) | a2 = *((gp - 8180));
0x00006634 lw a1, -0x7fd0(gp) | a1 = *((gp - 8180));
0x00006638 addiu v1, zero, 1 | v1 = 1;
0x0000663c lw t9, -0x7e5c(gp) | t9 = sym.imp.sd_bus_message_append;
0x00006640 addiu a3, a3, -0x6a94 | a3 += -0x6a94;
0x00006644 addiu v0, v0, -0x6a90 | v0 += -0x6a90;
0x00006648 sw a0, 0x24(sp) | *(var_24h_5) = a0;
0x0000664c sw a0, 0x14(sp) | *(var_14h) = a0;
0x00006650 sw v1, 0x20(sp) | *(var_20h_10) = v1;
0x00006654 sw a3, 0x1c(sp) | *(var_1ch_2) = a3;
0x00006658 sw v0, 0x18(sp) | *(var_18h) = v0;
0x0000665c sw v1, 0x10(sp) | *(var_10h) = v1;
0x00006660 addiu a2, a2, -0x69c8 | a2 += -0x69c8;
0x00006664 addiu a1, a1, -0x6a88 | a1 += -0x6a88;
0x00006668 move a0, s0 | a0 = s0;
0x0000666c jalr t9 | t9 ();
0x00006670 lw gp, 0x28(sp) | gp = *(var_28h);
| if (v0 < 0) {
0x00006674 bltz v0, 0x6698 | goto label_13;
| }
0x00006678 lw t9, -0x7e7c(gp) | t9 = sym.imp.free;
0x0000667c move v0, zero | v0 = 0;
0x00006680 lw a0, 0x40(sp) | a0 = *(var_40h_4);
0x00006684 sw v0, 0x34(sp) | *(var_34h) = v0;
0x00006688 jalr t9 | t9 ();
0x0000668c lw gp, 0x28(sp) | gp = *(var_28h);
0x00006690 lw v0, 0x34(sp) | v0 = *(var_34h);
0x00006694 b 0x6554 | goto label_1;
| }
| label_13:
0x00006698 lw t9, -0x7e7c(gp) | t9 = sym.imp.free;
0x0000669c lw a0, 0x40(sp) | a0 = *(var_40h_4);
0x000066a0 sw v0, 0x34(sp) | *(var_34h) = v0;
0x000066a4 jalr t9 | t9 ();
0x000066a8 lw gp, 0x28(sp) | gp = *(var_28h);
0x000066ac lw v0, 0x34(sp) | v0 = *(var_34h);
0x000066b0 b 0x6554 | goto label_1;
| label_5:
0x000066b4 lw v0, -0x7fd0(gp) | v0 = *((gp - 8180));
0x000066b8 lw a2, -0x7fd0(gp) | a2 = *((gp - 8180));
0x000066bc lw a1, -0x7fd0(gp) | a1 = *((gp - 8180));
0x000066c0 addiu v0, v0, -0x5f80 | v0 += -0x5f80;
0x000066c4 lw t9, -0x7e68(gp) | t9 = sym.imp.log_assert_failed_realm;
0x000066c8 sw v0, 0x10(sp) | *(var_10h) = v0;
0x000066cc addiu a3, zero, 0x1bd | a3 = 0x1bd;
0x000066d0 addiu a2, a2, -0x7681 | a2 += -0x7681;
0x000066d4 addiu a1, a1, -0x64d4 | a1 += -0x64d4;
0x000066d8 jalr t9 | t9 ();
| label_6:
0x000066dc lw v0, -0x7fd0(gp) | v0 = *((gp - 8180));
0x000066e0 addiu v0, v0, -0x604c | v0 += -0x604c;
0x000066e4 move v1, v0 | v1 = v0;
0x000066e8 b 0x64c4 | goto label_2;
| label_11:
0x000066ec lw v0, -0x7fd4(gp) | v0 = *((gp - 8181));
| if (v0 != 0) {
0x000066f0 bnez v0, 0x6548 | goto label_3;
| }
0x000066f4 lw v0, -0x7fd0(gp) | v0 = *((gp - 8180));
0x000066f8 lw a2, -0x7fd0(gp) | a2 = *((gp - 8180));
0x000066fc addiu v0, v0, -0x6a00 | v0 += -0x6a00;
0x00006700 sw v0, 0x14(sp) | *(var_14h) = v0;
0x00006704 lw v0, -0x7fd0(gp) | v0 = *((gp - 8180));
0x00006708 lw t9, -0x7f20(gp) | t9 = sym.imp.log_internal_realm;
0x0000670c addiu v0, v0, -0x5fa0 | v0 += -0x5fa0;
0x00006710 sw v0, 0x10(sp) | *(var_10h) = v0;
0x00006714 addiu a3, zero, 0x1e0 | a3 = 0x1e0;
0x00006718 addiu a2, a2, -0x7681 | a2 += -0x7681;
0x0000671c move a1, zero | a1 = 0;
0x00006720 addiu a0, zero, 7 | a0 = 7;
0x00006724 jalr t9 | t9 ();
0x00006728 lw gp, 0x28(sp) | gp = *(var_28h);
0x0000672c b 0x6544 | goto label_4;
| label_7:
0x00006730 addiu v0, zero, -0xc | v0 = -0xc;
0x00006734 b 0x6554 | goto label_1;
| label_10:
0x00006738 lw t9, -0x7f28(gp) | t9 = sym.imp.__stack_chk_fail;
0x0000673c jalr t9 | t9 ();
0x00006740 nop |
| }
[*] Function sprintf used 2 times systemd-mount