[*] 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