[*] Binary protection state of systemd-shutdown
Full RELRO Canary found NX disabled PIE enabled RPATH No RUNPATH No Symbols
[*] Function system tear down of systemd-shutdown
; assembly | /* r2dec pseudo code output */
| /* /logs/firmware/unblob_extracted/firmware_extract/4325012-58052244.squashfs_v4_le_extract/usr/lib/systemd/systemd-shutdown @ 0x6970 */
| #include <stdint.h>
|
; (fcn) fcn.00006970 () | void fcn_00006970 () {
0x00006970 lui gp, 2 |
0x00006974 addiu gp, gp, -0x3970 |
0x00006978 addu gp, gp, t9 | gp += t9;
0x0000697c addiu sp, sp, -0x48 |
0x00006980 sw s1, 0x34(sp) | *(var_34h_3) = s1;
0x00006984 lw s1, -0x7eac(gp) | s1 = *((gp - 8107));
0x00006988 sw gp, 0x18(sp) | *(var_18h_2) = gp;
0x0000698c sw ra, 0x44(sp) | *(var_44h_3) = ra;
0x00006990 sw s4, 0x40(sp) | *(var_40h_3) = s4;
0x00006994 sw s3, 0x3c(sp) | *(var_3ch_3) = s3;
0x00006998 sw s2, 0x38(sp) | *(var_38h_3) = s2;
0x0000699c sw s0, 0x30(sp) | *(var_30h) = s0;
0x000069a0 lw v0, (s1) | v0 = *(s1);
0x000069a4 sw v0, 0x2c(sp) | *(var_2ch_2) = v0;
0x000069a8 lw t9, -0x7d9c(gp) | t9 = sym.imp.sd_device_enumerator_new;
| if (a0 == 0) {
0x000069ac beqz a0, 0x6b8c | goto label_1;
| }
0x000069b0 move s3, a0 | s3 = a0;
0x000069b4 sw zero, 0x20(sp) | *(var_20h_2) = 0;
0x000069b8 addiu a0, sp, 0x24 | a0 = sp + 0x24;
0x000069bc sw zero, 0x24(sp) | *(var_24h) = 0;
0x000069c0 move s4, a1 | s4 = a1;
0x000069c4 jalr t9 | t9 ();
0x000069c8 move s0, v0 | s0 = v0;
0x000069cc lw gp, 0x18(sp) | gp = *(var_18h_2);
| if (v0 < 0) {
0x000069d0 bltz v0, 0x6b3c | goto label_2;
| }
0x000069d4 lw t9, -0x7f84(gp) | t9 = sym.imp.sd_device_enumerator_allow_uninitialized;
0x000069d8 lw a0, 0x24(sp) | a0 = *(var_24h);
0x000069dc jalr t9 | t9 ();
0x000069e0 move s0, v0 | s0 = v0;
0x000069e4 lw gp, 0x18(sp) | gp = *(var_18h_2);
| if (v0 < 0) {
0x000069e8 bltz v0, 0x6b3c | goto label_2;
| }
0x000069ec lw a1, -0x7fdc(gp) | a1 = *((gp - 8183));
0x000069f0 lw t9, -0x7da8(gp) | t9 = sym.imp.sd_device_enumerator_add_match_subsystem
0x000069f4 lw a0, 0x24(sp) | a0 = *(var_24h);
0x000069f8 addiu a2, zero, 1 | a2 = 1;
0x000069fc addiu a1, a1, -0x64c4 | a1 += -0x64c4;
0x00006a00 jalr t9 | t9 ();
0x00006a04 move s0, v0 | s0 = v0;
0x00006a08 lw gp, 0x18(sp) | gp = *(var_18h_2);
| if (v0 < 0) {
0x00006a0c bltz v0, 0x6b3c | goto label_2;
| }
0x00006a10 lw a1, -0x7fdc(gp) | a1 = *((gp - 8183));
0x00006a14 lw t9, -0x7d98(gp) | t9 = sym.imp.sd_device_enumerator_add_match_sysname;
0x00006a18 lw a0, 0x24(sp) | a0 = *(var_24h);
0x00006a1c addiu a1, a1, -0x64bc | a1 += -0x64bc;
0x00006a20 jalr t9 | t9 ();
0x00006a24 move s0, v0 | s0 = v0;
0x00006a28 lw gp, 0x18(sp) | gp = *(var_18h_2);
| if (v0 < 0) {
0x00006a2c bltz v0, 0x6b3c | goto label_2;
| }
0x00006a30 lw a1, -0x7fdc(gp) | a1 = *((gp - 8183));
0x00006a34 lw t9, -0x7f80(gp) | t9 = sym.imp.sd_device_enumerator_add_match_sysattr;
0x00006a38 lw a0, 0x24(sp) | a0 = *(var_24h);
0x00006a3c addiu a3, zero, 1 | a3 = 1;
0x00006a40 move a2, zero | a2 = 0;
0x00006a44 addiu a1, a1, -0x64b4 | a1 += -0x64b4;
0x00006a48 jalr t9 | t9 ();
0x00006a4c move s0, v0 | s0 = v0;
0x00006a50 lw gp, 0x18(sp) | gp = *(var_18h_2);
| if (v0 < 0) {
0x00006a54 bltz v0, 0x6b3c | goto label_2;
| }
0x00006a58 lw t9, -0x7dc4(gp) | t9 = sym.imp.sd_device_enumerator_get_device_first;
0x00006a5c lw a0, 0x24(sp) | a0 = *(var_24h);
0x00006a60 jalr t9 | t9 ();
0x00006a64 lw gp, 0x18(sp) | gp = *(var_18h_2);
| if (v0 == 0) {
0x00006a68 beqz v0, 0x6afc | goto label_3;
| }
0x00006a6c addiu s2, sp, 0x28 | s2 = sp + 0x28;
| do {
0x00006a70 lw t9, -0x7da4(gp) | t9 = sym.imp.sd_device_get_devname;
0x00006a74 move a1, s2 | a1 = s2;
0x00006a78 move a0, v0 | a0 = v0;
0x00006a7c jalr t9 | t9 ();
0x00006a80 lw gp, 0x18(sp) | gp = *(var_18h_2);
| if (v0 >= 0) {
0x00006a84 bltz v0, 0x6ae8 |
0x00006a88 lw t9, -0x7f60(gp) | t9 = sym.imp.strdup;
0x00006a8c lw a0, 0x28(sp) | a0 = *(var_28h);
0x00006a90 jalr t9 | t9 ();
0x00006a94 move s0, v0 | s0 = v0;
0x00006a98 lw gp, 0x18(sp) | gp = *(var_18h_2);
| if (v0 == 0) {
0x00006a9c beqz v0, 0x6bb4 | goto label_4;
| }
0x00006aa0 lw t9, -0x7ef0(gp) | t9 = sym.imp.malloc;
0x00006aa4 addiu a0, zero, 0x20 | a0 = 0x20;
0x00006aa8 jalr t9 | t9 ();
0x00006aac lw gp, 0x18(sp) | gp = *(var_18h_2);
| if (v0 == 0) {
0x00006ab0 beqz v0, 0x6bb4 | goto label_4;
| }
0x00006ab4 lw v1, 0x20(sp) | v1 = *(var_20h_2);
0x00006ab8 sw zero, 4(v0) | *((v0 + 1)) = 0;
0x00006abc sw zero, 8(v0) | *((v0 + 2)) = 0;
0x00006ac0 sw zero, 0xc(v0) | *((v0 + 3)) = 0;
0x00006ac4 sw zero, 0x10(v0) | *((v0 + 4)) = 0;
0x00006ac8 sw zero, 0x14(v0) | *((v0 + 5)) = 0;
0x00006acc sw zero, 0x1c(v0) | *((v0 + 7)) = 0;
0x00006ad0 sw s0, (v0) | *(v0) = s0;
0x00006ad4 sw v1, 0x18(v0) | *((v0 + 6)) = v1;
| if (v1 != 0) {
0x00006ad8 beqz v1, 0x6ae0 |
0x00006adc sw v0, 0x1c(v1) | *((v1 + 7)) = v0;
| }
0x00006ae0 sw zero, 0x1c(v0) | *((v0 + 7)) = 0;
0x00006ae4 sw v0, 0x20(sp) | *(var_20h_2) = v0;
| }
0x00006ae8 lw t9, -0x7ed0(gp) | t9 = sym.imp.sd_device_enumerator_get_device_next;
0x00006aec lw a0, 0x24(sp) | a0 = *(var_24h);
0x00006af0 jalr t9 | t9 ();
0x00006af4 lw gp, 0x18(sp) | gp = *(var_18h_2);
0x00006af8 bnez v0, 0x6a70 |
| } while (v0 != 0);
| label_3:
0x00006afc lw a0, 0x24(sp) | a0 = *(var_24h);
0x00006b00 lw t9, -0x7dcc(gp) | t9 = sym.imp.sd_device_enumerator_unref;
| if (a0 != 0) {
0x00006b04 beqz a0, 0x6b14 |
0x00006b08 jalr t9 | t9 ();
0x00006b0c nop |
0x00006b10 lw gp, 0x18(sp) | gp = *(var_18h_2);
| }
0x00006b14 lw t9, -0x7fd8(gp) | t9 = *((gp - 8182));
0x00006b18 addiu s2, sp, 0x20 | s2 = sp + 0x20;
0x00006b1c move a2, s4 | a2 = s4;
0x00006b20 move a1, s3 | a1 = s3;
0x00006b24 addiu t9, t9, 0x4d1c | t9 += fcn.00004d1c;
0x00006b28 move a0, s2 | a0 = s2;
0x00006b2c bal 0x4d1c | fcn_00004d1c ();
0x00006b30 move s0, v0 | s0 = v0;
0x00006b34 lw gp, 0x18(sp) | gp = *(var_18h_2);
0x00006b38 b 0x6b4c | goto label_0;
| label_2:
0x00006b3c lw a0, 0x24(sp) | a0 = *(var_24h);
0x00006b40 lw t9, -0x7dcc(gp) | t9 = sym.imp.sd_device_enumerator_unref;
| if (a0 != 0) {
0x00006b44 bnez a0, 0x6bfc | goto label_5;
| }
0x00006b48 addiu s2, sp, 0x20 | s2 = sp + 0x20;
| do {
| label_0:
0x00006b4c lw t9, -0x7fa8(gp) | t9 = *(gp);
0x00006b50 move a0, s2 | a0 = s2;
0x00006b54 bal 0x5aac | fcn_00005aac ();
0x00006b58 lw a0, 0x2c(sp) | a0 = *(var_2ch_2);
0x00006b5c lw v1, (s1) | v1 = *(s1);
0x00006b60 lw gp, 0x18(sp) | gp = *(var_18h_2);
0x00006b64 move v0, s0 | v0 = s0;
| if (a0 != v1) {
0x00006b68 bne a0, v1, 0x6bf0 | goto label_6;
| }
0x00006b6c lw ra, 0x44(sp) | ra = *(var_44h_3);
0x00006b70 lw s4, 0x40(sp) | s4 = *(var_40h_3);
0x00006b74 lw s3, 0x3c(sp) | s3 = *(var_3ch_3);
0x00006b78 lw s2, 0x38(sp) | s2 = *(var_38h_3);
0x00006b7c lw s1, 0x34(sp) | s1 = *(var_34h_3);
0x00006b80 lw s0, 0x30(sp) | s0 = *(var_30h);
0x00006b84 addiu sp, sp, 0x48 |
0x00006b88 jr ra | return v0;
| label_1:
0x00006b8c lw v0, -0x7fdc(gp) | v0 = *((gp - 8183));
0x00006b90 lw a2, -0x7fdc(gp) | a2 = *((gp - 8183));
0x00006b94 lw a1, -0x7fdc(gp) | a1 = *((gp - 8183));
0x00006b98 addiu v0, v0, -0x63ec | v0 += -0x63ec;
0x00006b9c lw t9, -0x7df4(gp) | t9 = sym.imp.log_assert_failed_realm;
0x00006ba0 sw v0, 0x10(sp) | *(var_10h_3) = v0;
0x00006ba4 addiu a3, zero, 0x298 | a3 = 0x298;
0x00006ba8 addiu a2, a2, -0x6931 | a2 += -0x6931;
0x00006bac addiu a1, a1, -0x68f8 | a1 += -0x68f8;
0x00006bb0 jalr t9 | t9 ();
| label_4:
0x00006bb4 lw t9, -0x7e0c(gp) | t9 = sym.imp.free;
0x00006bb8 move a0, s0 | a0 = s0;
0x00006bbc jalr t9 | t9 ();
0x00006bc0 lw a0, 0x24(sp) | a0 = *(var_24h);
0x00006bc4 lw gp, 0x18(sp) | gp = *(var_18h_2);
| if (a0 == 0) {
0x00006bc8 beqz a0, 0x6be4 | goto label_7;
| }
0x00006bcc lw t9, -0x7dcc(gp) | t9 = sym.imp.sd_device_enumerator_unref;
0x00006bd0 addiu s0, zero, -0xc | s0 = -0xc;
0x00006bd4 jalr t9 | t9 ();
0x00006bd8 addiu s2, sp, 0x20 | s2 = sp + 0x20;
0x00006bdc lw gp, 0x18(sp) | gp = *(var_18h_2);
0x00006be0 b 0x6b4c |
| } while (1);
| label_7:
0x00006be4 addiu s0, zero, -0xc | s0 = -0xc;
0x00006be8 addiu s2, sp, 0x20 | s2 = sp + 0x20;
0x00006bec b 0x6b4c | goto label_0;
| label_6:
0x00006bf0 lw t9, -0x7f00(gp) | t9 = sym.imp.__stack_chk_fail;
0x00006bf4 jalr t9 | t9 ();
0x00006bf8 nop |
| label_5:
0x00006bfc addiu s2, sp, 0x20 | s2 = sp + 0x20;
0x00006c00 jalr t9 | t9 ();
0x00006c04 lw gp, 0x18(sp) | gp = *(var_18h_2);
0x00006c08 b 0x6b4c | goto label_0;
| }
; assembly | /* r2dec pseudo code output */
| /* /logs/firmware/unblob_extracted/firmware_extract/4325012-58052244.squashfs_v4_le_extract/usr/lib/systemd/systemd-shutdown @ 0x6c0c */
| #include <stdint.h>
|
; (fcn) fcn.00006c0c () | void fcn_00006c0c () {
0x00006c0c lui gp, 2 |
0x00006c10 addiu gp, gp, -0x3c0c |
0x00006c14 addu gp, gp, t9 | gp += t9;
0x00006c18 addiu sp, sp, -0x88 |
0x00006c1c sw s3, 0x6c(sp) | *(var_6ch) = s3;
0x00006c20 lw s3, -0x7eac(gp) | s3 = *((gp - 8107));
0x00006c24 sw gp, 0x20(sp) | *(var_20h) = gp;
0x00006c28 sw ra, 0x84(sp) | *(var_84h) = ra;
0x00006c2c sw fp, 0x80(sp) | *(var_80h) = fp;
0x00006c30 sw s7, 0x7c(sp) | *(var_7ch) = s7;
0x00006c34 sw s6, 0x78(sp) | *(var_78h) = s6;
0x00006c38 sw s5, 0x74(sp) | *(var_74h) = s5;
0x00006c3c sw s4, 0x70(sp) | *(var_70h) = s4;
0x00006c40 sw s2, 0x68(sp) | *(var_68h) = s2;
0x00006c44 sw s1, 0x64(sp) | *(var_64h) = s1;
0x00006c48 sw s0, 0x60(sp) | *(var_60h) = s0;
0x00006c4c lw v0, (s3) | v0 = *(s3);
0x00006c50 sw v0, 0x5c(sp) | *(var_5ch) = v0;
0x00006c54 lw t9, -0x7d9c(gp) | t9 = sym.imp.sd_device_enumerator_new;
| if (a0 == 0) {
0x00006c58 beqz a0, 0x7000 | goto label_5;
| }
0x00006c5c move s1, a0 | s1 = a0;
0x00006c60 sw zero, 0x44(sp) | *(var_44h) = 0;
0x00006c64 addiu a0, sp, 0x48 | a0 = sp + 0x48;
0x00006c68 sw zero, 0x48(sp) | *(var_48h) = 0;
0x00006c6c move s4, a1 | s4 = a1;
0x00006c70 jalr t9 | t9 ();
0x00006c74 move s0, v0 | s0 = v0;
0x00006c78 lw gp, 0x20(sp) | gp = *(var_20h);
| if (v0 < 0) {
0x00006c7c bltz v0, 0x6eb8 | goto label_6;
| }
0x00006c80 lw t9, -0x7f84(gp) | t9 = sym.imp.sd_device_enumerator_allow_uninitialized;
0x00006c84 lw a0, 0x48(sp) | a0 = *(var_48h);
0x00006c88 jalr t9 | t9 ();
0x00006c8c move s0, v0 | s0 = v0;
0x00006c90 lw gp, 0x20(sp) | gp = *(var_20h);
| if (v0 < 0) {
0x00006c94 bltz v0, 0x6eb8 | goto label_6;
| }
0x00006c98 lw a1, -0x7fdc(gp) | a1 = *((gp - 8183));
0x00006c9c lw t9, -0x7da8(gp) | t9 = sym.imp.sd_device_enumerator_add_match_subsystem
0x00006ca0 lw a0, 0x48(sp) | a0 = *(var_48h);
0x00006ca4 addiu a2, zero, 1 | a2 = 1;
0x00006ca8 addiu a1, a1, -0x64c4 | a1 += -0x64c4;
0x00006cac jalr t9 | t9 ();
0x00006cb0 move s0, v0 | s0 = v0;
0x00006cb4 lw gp, 0x20(sp) | gp = *(var_20h);
| if (v0 < 0) {
0x00006cb8 bltz v0, 0x6eb8 | goto label_6;
| }
0x00006cbc lw a1, -0x7fdc(gp) | a1 = *((gp - 8183));
0x00006cc0 lw t9, -0x7d98(gp) | t9 = sym.imp.sd_device_enumerator_add_match_sysname;
0x00006cc4 lw a0, 0x48(sp) | a0 = *(var_48h);
0x00006cc8 addiu a1, a1, -0x64a0 | a1 += -0x64a0;
0x00006ccc jalr t9 | t9 ();
0x00006cd0 move s0, v0 | s0 = v0;
0x00006cd4 lw gp, 0x20(sp) | gp = *(var_20h);
| if (v0 < 0) {
0x00006cd8 bltz v0, 0x6eb8 | goto label_6;
| }
0x00006cdc lw t9, -0x7dc4(gp) | t9 = sym.imp.sd_device_enumerator_get_device_first;
0x00006ce0 lw a0, 0x48(sp) | a0 = *(var_48h);
0x00006ce4 addiu s2, sp, 0x50 | s2 = sp + 0x50;
0x00006ce8 jalr t9 | t9 ();
0x00006cec move s0, v0 | s0 = v0;
0x00006cf0 lw gp, 0x20(sp) | gp = *(var_20h);
0x00006cf4 addiu s5, sp, 0x4c | s5 = sp + 0x4c;
| if (v0 == 0) {
0x00006cf8 beqz v0, 0x6dac | goto label_7;
| }
| do {
0x00006cfc lw t9, -0x7ed4(gp) | t9 = sym.imp.sd_device_get_devnum;
0x00006d00 move a1, s2 | a1 = s2;
0x00006d04 move a0, s0 | a0 = s0;
0x00006d08 jalr t9 | t9 ();
0x00006d0c lw gp, 0x20(sp) | gp = *(var_20h);
| if (v0 >= 0) {
0x00006d10 bltz v0, 0x6d94 |
0x00006d14 lw t9, -0x7da4(gp) | t9 = sym.imp.sd_device_get_devname;
0x00006d18 move a1, s5 | a1 = s5;
0x00006d1c move a0, s0 | a0 = s0;
0x00006d20 jalr t9 | t9 ();
0x00006d24 lw gp, 0x20(sp) | gp = *(var_20h);
| if (v0 < 0) {
0x00006d28 bltz v0, 0x6d94 | goto label_8;
| }
0x00006d2c lw t9, -0x7f60(gp) | t9 = sym.imp.strdup;
0x00006d30 lw a0, 0x4c(sp) | a0 = *(var_4ch);
0x00006d34 jalr t9 | t9 ();
0x00006d38 move s0, v0 | s0 = v0;
0x00006d3c lw gp, 0x20(sp) | gp = *(var_20h);
| if (v0 == 0) {
0x00006d40 beqz v0, 0x7038 | goto label_9;
| }
0x00006d44 lw t9, -0x7ef0(gp) | t9 = sym.imp.malloc;
0x00006d48 addiu a0, zero, 0x20 | a0 = 0x20;
0x00006d4c jalr t9 | t9 ();
0x00006d50 lw gp, 0x20(sp) | gp = *(var_20h);
| if (v0 == 0) {
0x00006d54 beqz v0, 0x7038 | goto label_9;
| }
0x00006d58 lw v1, 0x44(sp) | v1 = *(var_44h);
0x00006d5c lw a0, 0x50(sp) | a0 = *(var_50h);
0x00006d60 lw a1, 0x54(sp) | a1 = *(var_54h);
0x00006d64 sw zero, 4(v0) | *((v0 + 1)) = 0;
0x00006d68 sw zero, 8(v0) | *((v0 + 2)) = 0;
0x00006d6c sw zero, 0xc(v0) | *((v0 + 3)) = 0;
0x00006d70 sw zero, 0x1c(v0) | *((v0 + 7)) = 0;
0x00006d74 sw s0, (v0) | *(v0) = s0;
0x00006d78 sw a0, 0x10(v0) | *((v0 + 4)) = a0;
0x00006d7c sw a1, 0x14(v0) | *((v0 + 5)) = a1;
0x00006d80 sw v1, 0x18(v0) | *((v0 + 6)) = v1;
| if (v1 != 0) {
0x00006d84 beqz v1, 0x6d8c |
0x00006d88 sw v0, 0x1c(v1) | *((v1 + 7)) = v0;
| }
0x00006d8c sw zero, 0x1c(v0) | *((v0 + 7)) = 0;
0x00006d90 sw v0, 0x44(sp) | *(var_44h) = v0;
| }
| label_8:
0x00006d94 lw t9, -0x7ed0(gp) | t9 = sym.imp.sd_device_enumerator_get_device_next;
0x00006d98 lw a0, 0x48(sp) | a0 = *(var_48h);
0x00006d9c jalr t9 | t9 ();
0x00006da0 move s0, v0 | s0 = v0;
0x00006da4 lw gp, 0x20(sp) | gp = *(var_20h);
0x00006da8 bnez v0, 0x6cfc |
| } while (v0 != 0);
| label_7:
0x00006dac lw a0, 0x48(sp) | a0 = *(var_48h);
0x00006db0 lw t9, -0x7dcc(gp) | t9 = sym.imp.sd_device_enumerator_unref;
| if (a0 != 0) {
0x00006db4 bnez a0, 0x7088 | goto label_10;
| }
| label_4:
0x00006db8 lw a0, -0x7fdc(gp) | a0 = *((gp - 8183));
0x00006dbc lw t9, -0x7ee4(gp) | t9 = sym.imp.get_block_device;
0x00006dc0 move a1, s2 | a1 = s2;
0x00006dc4 addiu a0, a0, -0x5e00 | a0 += -0x5e00;
0x00006dc8 jalr t9 | t9 ();
0x00006dcc lw gp, 0x20(sp) | gp = *(var_20h);
| if (v0 <= 0) {
0x00006dd0 bgtz v0, 0x6de4 |
0x00006dd4 move v0, zero | v0 = 0;
0x00006dd8 move v1, zero | v1 = 0;
0x00006ddc sw v0, 0x50(sp) | *(var_50h) = v0;
0x00006de0 sw v1, 0x54(sp) | *(var_54h) = v1;
| }
0x00006de4 lw fp, 0x44(sp) | fp = *(var_44h);
0x00006de8 lw s7, -0x7fdc(gp) | s7 = *((gp - 8183));
| if (fp == 0) {
0x00006dec beqz fp, 0x7028 | goto label_11;
| }
0x00006df0 addiu v0, sp, 0x44 | v0 = sp + 0x44;
0x00006df4 sw v0, 0x2c(sp) | *(var_2ch) = v0;
0x00006df8 lw v0, -0x7fd8(gp) | v0 = *((gp - 8182));
0x00006dfc addiu v0, v0, 0x507c | v0 += 0x507c;
0x00006e00 sw v0, 0x34(sp) | *(var_34h) = v0;
0x00006e04 lw v0, -0x7fdc(gp) | v0 = *((gp - 8183));
0x00006e08 lw s6, -0x7fdc(gp) | s6 = *((gp - 8183));
0x00006e0c addiu v0, v0, -0x6484 | v0 += -0x6484;
0x00006e10 sw v0, 0x3c(sp) | *(var_3ch) = v0;
0x00006e14 lw v0, -0x7fd8(gp) | v0 = *((gp - 8182));
0x00006e18 move s0, zero | s0 = 0;
0x00006e1c addiu v0, v0, 0x4b7c | v0 += fcn.00004b7c;
0x00006e20 sw v0, 0x38(sp) | *(var_38h) = v0;
| do {
0x00006e24 lw a0, 0x50(sp) | a0 = *(var_50h);
0x00006e28 lw a3, 0x54(sp) | a3 = *(var_54h);
0x00006e2c addiu v0, zero, -0x1000 | v0 = -0x1000;
0x00006e30 ext a1, a0, 8, 0xc | __asm ("ext a1, a0, 8, 0xc");
0x00006e34 and v0, a3, v0 | v0 = a3 & v0;
0x00006e38 or v0, v0, a1 | v0 |= a1;
0x00006e3c lw s5, 0x18(fp) | s5 = *(arg_18h);
0x00006e40 lw s2, 0x10(fp) | s2 = *(arg_10h);
0x00006e44 lw a1, 0x14(fp) | a1 = *(arg_14h);
| if (v0 != 0) {
0x00006e48 beqz v0, 0x6e54 |
| if (a0 == s2) {
0x00006e4c beq a0, s2, 0x6ff0 | goto label_12;
| }
0x00006e50 nop |
| }
0x00006e54 lw t9, -0x7f8c(gp) | t9 = sym.imp.log_get_max_level_realm;
| label_2:
0x00006e58 sw a1, 0x30(sp) | *(var_30h) = a1;
0x00006e5c move a0, zero | a0 = 0;
0x00006e60 jalr t9 | t9 ();
0x00006e64 slti v0, v0, 6 | v0 = (v0 < 6) ? 1 : 0;
0x00006e68 lw gp, 0x20(sp) | gp = *(var_20h);
0x00006e6c lw a1, 0x30(sp) | a1 = *(var_30h);
| if (v0 == 0) {
0x00006e70 beqz v0, 0x6f84 | goto label_13;
| }
| label_1:
0x00006e74 lw t9, 0x34(sp) | t9 = *(var_34h);
0x00006e78 move a0, s2 | a0 = s2;
0x00006e7c jalr t9 | t9 ();
0x00006e80 lw gp, 0x20(sp) | gp = *(var_20h);
| if (v0 >= 0) {
0x00006e84 bgez v0, 0x6f64 | goto label_14;
| }
0x00006e88 lw t9, -0x7f8c(gp) | t9 = sym.imp.log_get_max_level_realm;
0x00006e8c move a0, zero | a0 = 0;
0x00006e90 jalr t9 | t9 ();
0x00006e94 andi a0, s4, 7 | a0 = s4 & 7;
0x00006e98 slt v0, v0, a0 | v0 = (v0 < a0) ? 1 : 0;
0x00006e9c lw gp, 0x20(sp) | gp = *(var_20h);
| if (v0 == 0) {
0x00006ea0 beqz v0, 0x6f1c | goto label_15;
| }
0x00006ea4 addiu s0, s0, 1 | s0++;
| label_0:
0x00006ea8 move fp, s5 | fp = s5;
0x00006eac bnez s5, 0x6e24 |
| } while (s5 != 0);
0x00006eb0 lw t9, -0x7fa8(gp) | t9 = *(gp);
0x00006eb4 b 0x6ed0 | goto label_16;
| label_6:
0x00006eb8 lw a0, 0x48(sp) | a0 = *(var_48h);
0x00006ebc lw t9, -0x7dcc(gp) | t9 = sym.imp.sd_device_enumerator_unref;
| if (a0 != 0) {
0x00006ec0 bnez a0, 0x7098 | goto label_17;
| }
0x00006ec4 addiu v0, sp, 0x44 | v0 = sp + 0x44;
0x00006ec8 sw v0, 0x2c(sp) | *(var_2ch) = v0;
| label_3:
0x00006ecc lw t9, -0x7fa8(gp) | t9 = *(gp);
| label_16:
0x00006ed0 lw a0, 0x2c(sp) | a0 = *(var_2ch);
0x00006ed4 bal 0x5aac | fcn_00005aac ();
0x00006ed8 lw a0, 0x5c(sp) | a0 = *(var_5ch);
0x00006edc lw v1, (s3) | v1 = *(s3);
0x00006ee0 lw gp, 0x20(sp) | gp = *(var_20h);
0x00006ee4 move v0, s0 | v0 = s0;
| if (a0 != v1) {
0x00006ee8 bne a0, v1, 0x707c | goto label_18;
| }
0x00006eec lw ra, 0x84(sp) | ra = *(var_84h);
0x00006ef0 lw fp, 0x80(sp) | fp = *(var_80h);
0x00006ef4 lw s7, 0x7c(sp) | s7 = *(var_7ch);
0x00006ef8 lw s6, 0x78(sp) | s6 = *(var_78h);
0x00006efc lw s5, 0x74(sp) | s5 = *(var_74h);
0x00006f00 lw s4, 0x70(sp) | s4 = *(var_70h);
0x00006f04 lw s3, 0x6c(sp) | s3 = *(var_6ch);
0x00006f08 lw s2, 0x68(sp) | s2 = *(var_68h);
0x00006f0c lw s1, 0x64(sp) | s1 = *(var_64h);
0x00006f10 lw s0, 0x60(sp) | s0 = *(var_60h);
0x00006f14 addiu sp, sp, 0x88 |
0x00006f18 jr ra | return v0;
| label_15:
0x00006f1c lw t9, -0x7d70(gp) | t9 = sym.imp.__errno_location;
0x00006f20 addiu s0, s0, 1 | s0++;
0x00006f24 jalr t9 | t9 ();
0x00006f28 lw v1, (fp) | v1 = *(fp);
0x00006f2c lw gp, 0x20(sp) | gp = *(var_20h);
0x00006f30 lw a1, (v0) | a1 = *(v0);
0x00006f34 sw v1, 0x18(sp) | *(var_18h) = v1;
0x00006f38 lw v1, 0x3c(sp) | v1 = *(var_3ch);
0x00006f3c addiu v0, s7, -0x645c | v0 = s7 + -0x645c;
0x00006f40 lw t9, -0x7ef8(gp) | t9 = sym.imp.log_internal_realm;
0x00006f44 sw v1, 0x14(sp) | *(var_14h) = v1;
0x00006f48 sw v0, 0x10(sp) | *(var_10h) = v0;
0x00006f4c addiu a3, zero, 0x25b | a3 = 0x25b;
0x00006f50 addiu a2, s6, -0x6931 | a2 = s6 + -0x6931;
0x00006f54 move a0, s4 | a0 = s4;
0x00006f58 jalr t9 | t9 ();
0x00006f5c lw gp, 0x20(sp) | gp = *(var_20h);
0x00006f60 b 0x6ea8 | goto label_0;
| label_14:
0x00006f64 addiu v0, zero, 1 | v0 = 1;
0x00006f68 lw a0, 0x2c(sp) | a0 = *(var_2ch);
0x00006f6c lw t9, 0x38(sp) | t9 = *(var_38h);
0x00006f70 sb v0, (s1) | *(s1) = v0;
0x00006f74 move a1, fp | a1 = fp;
0x00006f78 jalr t9 | t9 ();
0x00006f7c lw gp, 0x20(sp) | gp = *(var_20h);
0x00006f80 b 0x6ea8 | goto label_0;
| label_13:
0x00006f84 sll a0, a1, 0x14 | a0 = a1 << 0x14;
0x00006f88 srl v0, s2, 0xc | v0 = s2 >> 0xc;
0x00006f8c or v0, a0, v0 | v0 = a0 | v0;
0x00006f90 addiu a3, zero, -0x100 | a3 = -0x100;
0x00006f94 and v0, v0, a3 | v0 &= a3;
0x00006f98 andi a2, s2, 0xff | a2 = s2 & 0xff;
0x00006f9c or a2, v0, a2 | a2 = v0 | a2;
0x00006fa0 addiu a0, zero, -0x1000 | a0 = -0x1000;
0x00006fa4 lw v0, -0x7fdc(gp) | v0 = *((gp - 8183));
0x00006fa8 and a1, a1, a0 | a1 &= a0;
0x00006fac ext a0, s2, 8, 0xc | __asm ("ext a0, s2, 8, 0xc");
0x00006fb0 or a1, a1, a0 | a1 |= a0;
0x00006fb4 lw t9, -0x7ef8(gp) | t9 = sym.imp.log_internal_realm;
0x00006fb8 addiu a0, s7, -0x645c | a0 = s7 + -0x645c;
0x00006fbc addiu v0, v0, -0x6498 | v0 += -0x6498;
0x00006fc0 sw a2, 0x1c(sp) | *(var_1ch) = a2;
0x00006fc4 sw a1, 0x18(sp) | *(var_18h) = a1;
0x00006fc8 sw a0, 0x10(sp) | *(var_10h) = a0;
0x00006fcc move a1, zero | a1 = 0;
0x00006fd0 sw v0, 0x14(sp) | *(var_14h) = v0;
0x00006fd4 addiu a3, zero, 0x255 | a3 = 0x255;
0x00006fd8 addiu a2, s6, -0x6931 | a2 = s6 + -0x6931;
0x00006fdc addiu a0, zero, 6 | a0 = 6;
0x00006fe0 jalr t9 | t9 ();
0x00006fe4 lw s2, 0x10(fp) | s2 = *(arg_10h);
0x00006fe8 lw a1, 0x14(fp) | a1 = *(arg_14h);
0x00006fec b 0x6e74 | goto label_1;
| label_12:
0x00006ff0 lw t9, -0x7f8c(gp) | t9 = sym.imp.log_get_max_level_realm;
| if (a3 != a1) {
0x00006ff4 bne a3, a1, 0x6e58 | goto label_2;
| }
0x00006ff8 addiu s0, s0, 1 | s0++;
0x00006ffc b 0x6ea8 | goto label_0;
| label_5:
0x00007000 lw v0, -0x7fdc(gp) | v0 = *((gp - 8183));
0x00007004 lw a2, -0x7fdc(gp) | a2 = *((gp - 8183));
0x00007008 lw a1, -0x7fdc(gp) | a1 = *((gp - 8183));
0x0000700c addiu v0, v0, -0x6444 | v0 += -0x6444;
0x00007010 lw t9, -0x7df4(gp) | t9 = sym.imp.log_assert_failed_realm;
0x00007014 sw v0, 0x10(sp) | *(var_10h) = v0;
0x00007018 addiu a3, zero, 0x2a7 | a3 = 0x2a7;
0x0000701c addiu a2, a2, -0x6931 | a2 += -0x6931;
0x00007020 addiu a1, a1, -0x68f8 | a1 += -0x68f8;
0x00007024 jalr t9 | t9 ();
| label_11:
0x00007028 addiu v0, sp, 0x44 | v0 = sp + 0x44;
0x0000702c move s0, zero | s0 = 0;
0x00007030 sw v0, 0x2c(sp) | *(var_2ch) = v0;
0x00007034 b 0x6ecc | goto label_3;
| label_9:
0x00007038 lw t9, -0x7e0c(gp) | t9 = sym.imp.free;
0x0000703c move a0, s0 | a0 = s0;
0x00007040 jalr t9 | t9 ();
0x00007044 lw a0, 0x48(sp) | a0 = *(var_48h);
0x00007048 lw gp, 0x20(sp) | gp = *(var_20h);
| if (a0 != 0) {
0x0000704c beqz a0, 0x706c |
0x00007050 lw t9, -0x7dcc(gp) | t9 = sym.imp.sd_device_enumerator_unref;
0x00007054 addiu s0, zero, -0xc | s0 = -0xc;
0x00007058 jalr t9 | t9 ();
0x0000705c addiu v0, sp, 0x44 | v0 = sp + 0x44;
0x00007060 lw gp, 0x20(sp) | gp = *(var_20h);
0x00007064 sw v0, 0x2c(sp) | *(var_2ch) = v0;
0x00007068 b 0x6ecc | goto label_3;
| }
0x0000706c addiu v0, sp, 0x44 | v0 = sp + 0x44;
0x00007070 addiu s0, zero, -0xc | s0 = -0xc;
0x00007074 sw v0, 0x2c(sp) | *(var_2ch) = v0;
0x00007078 b 0x6ecc | goto label_3;
| label_18:
0x0000707c lw t9, -0x7f00(gp) | t9 = sym.imp.__stack_chk_fail;
0x00007080 jalr t9 | t9 ();
0x00007084 nop |
| label_10:
0x00007088 jalr t9 | t9 ();
0x0000708c nop |
0x00007090 lw gp, 0x20(sp) | gp = *(var_20h);
0x00007094 b 0x6db8 | goto label_4;
| label_17:
0x00007098 jalr t9 | t9 ();
0x0000709c nop |
0x000070a0 addiu v0, sp, 0x44 | v0 = sp + 0x44;
0x000070a4 lw gp, 0x20(sp) | gp = *(var_20h);
0x000070a8 sw v0, 0x2c(sp) | *(var_2ch) = v0;
0x000070ac b 0x6ecc | goto label_3;
| }
[*] Function system used 6 times systemd-shutdown