[*] Binary protection state of dmonitord

  
  	Full RELRO     Canary found      NX disabled  PIE enabled  No RPATH     No RUNPATH   No Symbols


[*] Function printf tear down of dmonitord

    ; assembly                           | /* r2dec pseudo code output */
                                         | /* /logs/firmware/unblob_extracted/firmware_extract/4325012-58052244.squashfs_v4_le_extract/usr/bin/dmonitord @ 0x5a68 */
                                         | #include <stdint.h>
                                         |  
    ; (fcn) sym.check_STM32F0_mcu ()     | void check_STM32F0_mcu () {
    0x00005a68 lui gp, 2                 |     
    0x00005a6c addiu gp, gp, -0x4a58     |     
    0x00005a70 addu gp, gp, t9           |     gp += t9;
    0x00005a74 addiu sp, sp, -0xd8       |     
    0x00005a78 lw a1, 0x64(a0)           |     a1 = *((a0 + 25));
    0x00005a7c sw s2, 0xc8(sp)           |     *(var_c8h) = s2;
    0x00005a80 lw s2, -0x7ecc(gp)        |     s2 = *((gp - 8115));
    0x00005a84 sw s1, 0xc4(sp)           |     *(var_c4h) = s1;
    0x00005a88 move s1, a0               |     s1 = a0;
    0x00005a8c lw v0, (s2)               |     v0 = *(s2);
    0x00005a90 lw a0, -0x7fd8(gp)        |     a0 = *((gp - 8182));
    0x00005a94 lw t9, -0x7f24(gp)        |     t9 = sym.imp.strcmp;
    0x00005a98 sw gp, 0x20(sp)           |     *(var_20h) = gp;
    0x00005a9c sw ra, 0xd4(sp)           |     *(var_d4h) = ra;
    0x00005aa0 sw s4, 0xd0(sp)           |     *(var_d0h) = s4;
    0x00005aa4 sw s3, 0xcc(sp)           |     *(var_cch) = s3;
    0x00005aa8 sw s0, 0xc0(sp)           |     *(var_c0h) = s0;
    0x00005aac addiu a0, a0, 0x6a0c      |     a0 += str.embedded_bootloader;
    0x00005ab0 sw v0, 0xbc(sp)           |     *(var_bch) = v0;
    0x00005ab4 jalr t9                   |     t9 ();
    0x00005ab8 nop                       |     
    0x00005abc lw gp, 0x20(sp)           |     gp = *(var_20h);
                                         |     if (v0 != 0) {
    0x00005ac0 bnez v0, 0x5c08           |         goto label_6;
                                         |     }
    0x00005ac4 lw v0, 0x68(s1)           |     v0 = *((s1 + 26));
    0x00005ac8 lw v1, 0x6c(s1)           |     v1 = *((s1 + 27));
    0x00005acc sw v0, 0x14(sp)           |     *(var_14h) = v0;
    0x00005ad0 lw v0, -0x7fd4(gp)        |     v0 = *((gp - 8181));
    0x00005ad4 lw t9, -0x7f14(gp)        |     t9 = sym.imp.__snprintf_chk
    0x00005ad8 addiu v0, v0, -0x7f44     |     v0 += -0x7f44;
    0x00005adc addiu s0, sp, 0x3c        |     s0 = sp + 0x3c;
    0x00005ae0 sw v1, 0x18(sp)           |     *(var_18h) = v1;
    0x00005ae4 sw v0, 0x10(sp)           |     *(var_10h) = v0;
    0x00005ae8 addiu a3, zero, 0x80      |     a3 = 0x80;
    0x00005aec addiu a2, zero, 1         |     a2 = 1;
    0x00005af0 addiu a1, zero, 0x80      |     a1 = 0x80;
    0x00005af4 move a0, s0               |     a0 = s0;
    0x00005af8 jalr t9                   |     t9 ();
    0x00005afc addiu v0, v0, -1          |     v0 += -1;
    0x00005b00 sltiu v0, v0, 0x80        |     v0 = (v0 < 0x80) ? 1 : 0;
    0x00005b04 lw gp, 0x20(sp)           |     gp = *(var_20h);
                                         |     if (v0 == 0) {
    0x00005b08 beqz v0, 0x5c88           |         goto label_7;
                                         |     }
    0x00005b0c lw t9, -0x7e34(gp)        |     t9 = sym.imp.system;
    0x00005b10 move a0, s0               |     a0 = s0;
    0x00005b14 jalr t9                   |     t9 ();
    0x00005b18 move s0, v0               |     s0 = v0;
    0x00005b1c lw gp, 0x20(sp)           |     gp = *(var_20h);
                                         |     if (v0 == 0) {
    0x00005b20 beqz v0, 0x5bc4           |         goto label_2;
                                         |     }
    0x00005b24 addiu s0, zero, -1        |     s0 = -1;
                                         | label_1:
    0x00005b28 lw t9, -0x7e00(gp)        |     t9 = *(gp);
                                         | label_0:
    0x00005b2c lw a0, 0x60(s1)           |     a0 = *((s1 + 24));
    0x00005b30 move a2, zero             |     a2 = 0;
    0x00005b34 addiu a1, zero, 2         |     a1 = 2;
    0x00005b38 jalr t9                   |     t9 ();
    0x00005b3c move s3, v0               |     s3 = v0;
    0x00005b40 lw gp, 0x20(sp)           |     gp = *(var_20h);
                                         |     if (v0 < 0) {
    0x00005b44 bltz v0, 0x5d10           |         goto label_8;
                                         |     }
    0x00005b48 lw t9, -0x7e5c(gp)        |     t9 = sym.imp.read;
    0x00005b4c addiu s4, sp, 0x34        |     s4 = sp + 0x34;
    0x00005b50 addiu a2, zero, 4         |     a2 = 4;
    0x00005b54 move a1, s4               |     a1 = s4;
    0x00005b58 move a0, v0               |     a0 = v0;
    0x00005b5c jalr t9                   |     t9 ();
    0x00005b60 lw gp, 0x20(sp)           |     gp = *(var_20h);
                                         |     if (v0 < 0) {
    0x00005b64 bltz v0, 0x5d68           |         goto label_9;
                                         |     }
    0x00005b68 lbu v0, 0x34(sp)          |     v0 = *(var_34h);
                                         |     if (v0 != 0) {
    0x00005b6c beqz v0, 0x5b80           |         
    0x00005b70 addiu v0, v0, -0x30       |         v0 += -0x30;
    0x00005b74 sltiu v0, v0, 2           |         v0 = (v0 < 2) ? 1 : 0;
    0x00005b78 lw a1, -0x7fd8(gp)        |         a1 = *((gp - 8182));
                                         |         if (v0 != 0) {
    0x00005b7c bnez v0, 0x5cac           |             goto label_10;
                                         |         }
                                         |     }
    0x00005b80 lw a2, -0x7fd4(gp)        |     a2 = *((gp - 8181));
    0x00005b84 lw t9, -0x7ed4(gp)        |     t9 = sym.imp.__syslog_chk;
    0x00005b88 lw a3, 0x60(s1)           |     a3 = *((s1 + 24));
    0x00005b8c addiu a2, a2, -0x7eac     |     a2 += -0x7eac;
    0x00005b90 sw s4, 0x10(sp)           |     *(var_10h) = s4;
    0x00005b94 addiu a1, zero, 1         |     a1 = 1;
    0x00005b98 addiu a0, zero, 3         |     a0 = 3;
    0x00005b9c sb zero, 0x38(sp)         |     *(var_38h) = 0;
    0x00005ba0 jalr t9                   |     t9 ();
    0x00005ba4 lw gp, 0x20(sp)           |     gp = *(var_20h);
                                         | label_3:
    0x00005ba8 addiu v0, zero, -1        |     v0 = -1;
    0x00005bac lw t9, -0x7edc(gp)        |     t9 = sym.imp.close;
    0x00005bb0 bne s0, v0, 0x5bf4        |     
                                         |     while (1) {
                                         | label_4:
    0x00005bb4 lw t9, -0x7edc(gp)        |         t9 = sym.imp.close;
    0x00005bb8 move a0, s3               |         a0 = s3;
    0x00005bbc jalr t9                   |         t9 ();
    0x00005bc0 lw gp, 0x20(sp)           |         gp = *(var_20h);
                                         | label_2:
    0x00005bc4 lw a0, 0xbc(sp)           |         a0 = *(var_bch);
    0x00005bc8 lw v1, (s2)               |         v1 = *(s2);
    0x00005bcc move v0, s0               |         v0 = s0;
                                         |         if (a0 != v1) {
    0x00005bd0 bne a0, v1, 0x5dfc        |             goto label_11;
                                         |         }
    0x00005bd4 lw ra, 0xd4(sp)           |         ra = *(var_d4h);
    0x00005bd8 lw s4, 0xd0(sp)           |         s4 = *(var_d0h);
    0x00005bdc lw s3, 0xcc(sp)           |         s3 = *(var_cch);
    0x00005be0 lw s2, 0xc8(sp)           |         s2 = *(var_c8h);
    0x00005be4 lw s1, 0xc4(sp)           |         s1 = *(var_c4h);
    0x00005be8 lw s0, 0xc0(sp)           |         s0 = *(var_c0h);
    0x00005bec addiu sp, sp, 0xd8        |         
    0x00005bf0 jr ra                     |         return v0;
    0x00005bf4 move a0, s0               |         a0 = s0;
    0x00005bf8 jalr t9                   |         t9 ();
    0x00005bfc addiu s0, zero, -1        |         s0 = -1;
    0x00005c00 lw gp, 0x20(sp)           |         gp = *(var_20h);
    0x00005c04 b 0x5bb4                  |         
                                         |     }
                                         | label_6:
    0x00005c08 lw t9, -0x7e00(gp)        |     t9 = *(gp);
    0x00005c0c lw a0, 0x78(s1)           |     a0 = *((s1 + 30));
    0x00005c10 move a2, zero             |     a2 = 0;
    0x00005c14 move a1, zero             |     a1 = 0;
    0x00005c18 jalr t9                   |     t9 ();
    0x00005c1c move s0, v0               |     s0 = v0;
    0x00005c20 lw gp, 0x20(sp)           |     gp = *(var_20h);
                                         |     if (v0 < 0) {
    0x00005c24 bltz v0, 0x5d5c           |         goto label_12;
                                         |     }
    0x00005c28 lw t9, -0x7e5c(gp)        |     t9 = sym.imp.read;
    0x00005c2c addiu s3, sp, 0x2c        |     s3 = sp + 0x2c;
    0x00005c30 addiu a2, zero, 4         |     a2 = 4;
    0x00005c34 move a1, s3               |     a1 = s3;
    0x00005c38 move a0, v0               |     a0 = v0;
    0x00005c3c jalr t9                   |     t9 ();
    0x00005c40 lw gp, 0x20(sp)           |     gp = *(var_20h);
                                         |     if (v0 < 0) {
    0x00005c44 bltz v0, 0x5db4           |         goto label_13;
                                         |     }
    0x00005c48 addiu v1, zero, 3         |     v1 = 3;
    0x00005c4c lw t9, -0x7e00(gp)        |     t9 = *(gp);
                                         |     if (v0 != v1) {
    0x00005c50 bne v0, v1, 0x5b2c        |         goto label_0;
                                         |     }
    0x00005c54 lw t9, -0x7e6c(gp)        |     t9 = *(gp);
    0x00005c58 addiu a2, zero, 0xa       |     a2 = 0xa;
    0x00005c5c move a1, zero             |     a1 = 0;
    0x00005c60 move a0, s3               |     a0 = s3;
    0x00005c64 jalr t9                   |     t9 ();
    0x00005c68 lw gp, 0x20(sp)           |     gp = *(var_20h);
                                         |     if (v0 == 0) {
    0x00005c6c beqz v0, 0x5b28           |         goto label_1;
                                         |     }
                                         | label_5:
    0x00005c70 lw t9, -0x7edc(gp)        |     t9 = sym.imp.close;
    0x00005c74 move a0, s0               |     a0 = s0;
    0x00005c78 jalr t9                   |     t9 ();
    0x00005c7c move s0, zero             |     s0 = 0;
    0x00005c80 lw gp, 0x20(sp)           |     gp = *(var_20h);
    0x00005c84 b 0x5bc4                  |     goto label_2;
                                         | label_7:
    0x00005c88 lw a2, -0x7fd4(gp)        |     a2 = *((gp - 8181));
    0x00005c8c lw t9, -0x7ed4(gp)        |     t9 = sym.imp.__syslog_chk;
    0x00005c90 addiu a2, a2, -0x7f20     |     a2 += -0x7f20;
    0x00005c94 addiu a1, zero, 1         |     a1 = 1;
    0x00005c98 addiu a0, zero, 3         |     a0 = 3;
    0x00005c9c jalr t9                   |     t9 ();
    0x00005ca0 addiu s0, zero, -1        |     s0 = -1;
    0x00005ca4 lw gp, 0x20(sp)           |     gp = *(var_20h);
    0x00005ca8 b 0x5bc4                  |     goto label_2;
                                         | label_10:
    0x00005cac lw t9, -0x7e38(gp)        |     t9 = sym.imp.write;
    0x00005cb0 addiu a2, zero, 2         |     a2 = 2;
    0x00005cb4 addiu a1, a1, 0x7b4c      |     a1 += 0x7b4c;
    0x00005cb8 move a0, s3               |     a0 = s3;
    0x00005cbc jalr t9                   |     t9 ();
    0x00005cc0 addiu v1, zero, 2         |     v1 = 2;
    0x00005cc4 lw gp, 0x20(sp)           |     gp = *(var_20h);
                                         |     if (v0 == v1) {
    0x00005cc8 beq v0, v1, 0x5ba8        |         goto label_3;
                                         |     }
    0x00005ccc lw t9, -0x7df8(gp)        |     t9 = sym.imp.__errno_location;
    0x00005cd0 jalr t9                   |     t9 ();
    0x00005cd4 nop                       |     
    0x00005cd8 lw gp, 0x20(sp)           |     gp = *(var_20h);
    0x00005cdc lw t9, -0x7e04(gp)        |     t9 = sym.imp.strerror;
    0x00005ce0 lw a0, (v0)               |     a0 = *(v0);
    0x00005ce4 jalr t9                   |     t9 ();
    0x00005ce8 lw gp, 0x20(sp)           |     gp = *(var_20h);
    0x00005cec move a3, v0               |     a3 = v0;
    0x00005cf0 addiu a1, zero, 1         |     a1 = 1;
    0x00005cf4 lw a2, -0x7fd4(gp)        |     a2 = *((gp - 8181));
    0x00005cf8 lw t9, -0x7ed4(gp)        |     t9 = sym.imp.__syslog_chk;
    0x00005cfc addiu a2, a2, -0x7ed0     |     a2 += -0x7ed0;
    0x00005d00 addiu a0, zero, 3         |     a0 = 3;
    0x00005d04 jalr t9                   |     t9 ();
    0x00005d08 lw gp, 0x20(sp)           |     gp = *(var_20h);
    0x00005d0c b 0x5ba8                  |     goto label_3;
                                         | label_8:
    0x00005d10 lw t9, -0x7df8(gp)        |     t9 = sym.imp.__errno_location;
    0x00005d14 lw s1, 0x60(s1)           |     s1 = *((s1 + 24));
                                         |     do {
    0x00005d18 move s0, zero             |         s0 = 0;
    0x00005d1c jalr t9                   |         t9 ();
    0x00005d20 lw gp, 0x20(sp)           |         gp = *(var_20h);
    0x00005d24 lw t9, -0x7e04(gp)        |         t9 = sym.imp.strerror;
    0x00005d28 lw a0, (v0)               |         a0 = *(v0);
    0x00005d2c jalr t9                   |         t9 ();
    0x00005d30 lw gp, 0x20(sp)           |         gp = *(var_20h);
    0x00005d34 sw v0, 0x10(sp)           |         *(var_10h) = v0;
    0x00005d38 move a3, s1               |         a3 = s1;
    0x00005d3c lw a2, -0x7fd4(gp)        |         a2 = *((gp - 8181));
    0x00005d40 lw t9, -0x7ed4(gp)        |         t9 = sym.imp.__syslog_chk;
    0x00005d44 addiu a2, a2, -0x7f00     |         a2 += -0x7f00;
    0x00005d48 addiu a1, zero, 1         |         a1 = 1;
    0x00005d4c addiu a0, zero, 3         |         a0 = 3;
    0x00005d50 jalr t9                   |         t9 ();
    0x00005d54 lw gp, 0x20(sp)           |         gp = *(var_20h);
    0x00005d58 b 0x5bc4                  |         goto label_2;
                                         | label_12:
    0x00005d5c lw t9, -0x7df8(gp)        |         t9 = sym.imp.__errno_location;
    0x00005d60 lw s1, 0x78(s1)           |         s1 = *((s1 + 30));
    0x00005d64 b 0x5d18                  |         
                                         |     } while (1);
                                         | label_9:
    0x00005d68 lw t9, -0x7df8(gp)        |     t9 = sym.imp.__errno_location;
    0x00005d6c lw s1, 0x60(s1)           |     s1 = *((s1 + 24));
    0x00005d70 jalr t9                   |     t9 ();
    0x00005d74 lw gp, 0x20(sp)           |     gp = *(var_20h);
    0x00005d78 lw a0, (v0)               |     a0 = *(v0);
    0x00005d7c lw t9, -0x7e04(gp)        |     t9 = sym.imp.strerror;
    0x00005d80 move s0, zero             |     s0 = 0;
    0x00005d84 jalr t9                   |     t9 ();
    0x00005d88 lw gp, 0x20(sp)           |     gp = *(var_20h);
    0x00005d8c sw v0, 0x10(sp)           |     *(var_10h) = v0;
    0x00005d90 move a3, s1               |     a3 = s1;
    0x00005d94 lw a2, -0x7fd4(gp)        |     a2 = *((gp - 8181));
    0x00005d98 lw t9, -0x7ed4(gp)        |     t9 = sym.imp.__syslog_chk;
    0x00005d9c addiu a2, a2, -0x7ee8     |     a2 += -0x7ee8;
    0x00005da0 addiu a1, zero, 1         |     a1 = 1;
    0x00005da4 addiu a0, zero, 3         |     a0 = 3;
    0x00005da8 jalr t9                   |     t9 ();
    0x00005dac lw gp, 0x20(sp)           |     gp = *(var_20h);
    0x00005db0 b 0x5bb4                  |     goto label_4;
                                         | label_13:
    0x00005db4 lw t9, -0x7df8(gp)        |     t9 = sym.imp.__errno_location;
    0x00005db8 lw s1, 0x78(s1)           |     s1 = *((s1 + 30));
    0x00005dbc jalr t9                   |     t9 ();
    0x00005dc0 lw gp, 0x20(sp)           |     gp = *(var_20h);
    0x00005dc4 lw t9, -0x7e04(gp)        |     t9 = sym.imp.strerror;
    0x00005dc8 lw a0, (v0)               |     a0 = *(v0);
    0x00005dcc jalr t9                   |     t9 ();
    0x00005dd0 lw gp, 0x20(sp)           |     gp = *(var_20h);
    0x00005dd4 sw v0, 0x10(sp)           |     *(var_10h) = v0;
    0x00005dd8 move a3, s1               |     a3 = s1;
    0x00005ddc lw a2, -0x7fd4(gp)        |     a2 = *((gp - 8181));
    0x00005de0 lw t9, -0x7ed4(gp)        |     t9 = sym.imp.__syslog_chk;
    0x00005de4 addiu a2, a2, -0x7ee8     |     a2 += -0x7ee8;
    0x00005de8 addiu a1, zero, 1         |     a1 = 1;
    0x00005dec addiu a0, zero, 3         |     a0 = 3;
    0x00005df0 jalr t9                   |     t9 ();
    0x00005df4 lw gp, 0x20(sp)           |     gp = *(var_20h);
    0x00005df8 b 0x5c70                  |     goto label_5;
                                         | label_11:
    0x00005dfc lw t9, -0x7ee8(gp)        |     t9 = sym.imp.__stack_chk_fail;
    0x00005e00 jalr t9                   |     t9 ();
    0x00005e04 nop                       |     
                                         | }
    ; assembly                                   | /* r2dec pseudo code output */
                                                 | /* /logs/firmware/unblob_extracted/firmware_extract/4325012-58052244.squashfs_v4_le_extract/usr/bin/dmonitord @ 0x5798 */
                                                 | #include <stdint.h>
                                                 |  
    ; (fcn) sym.mcu_embedded_bootloader ()       | void mcu_embedded_bootloader () {
    0x00005798 lui gp, 2                         |     
    0x0000579c addiu gp, gp, -0x4788             |     
    0x000057a0 addu gp, gp, t9                   |     gp += t9;
    0x000057a4 addiu sp, sp, -0xc0               |     
    0x000057a8 lw t9, -0x7e34(gp)                |     t9 = sym.imp.system;
    0x000057ac sw s1, 0xb4(sp)                   |     *(var_b4h) = s1;
    0x000057b0 lw s1, -0x7ecc(gp)                |     s1 = *((gp - 8115));
    0x000057b4 sw s0, 0xb0(sp)                   |     *(var_b0h) = s0;
    0x000057b8 move s0, a0                       |     s0 = a0;
    0x000057bc lw v0, (s1)                       |     v0 = *(s1);
    0x000057c0 lw a0, -0x7fd8(gp)                |     a0 = *((gp - 8182));
    0x000057c4 sw gp, 0x20(sp)                   |     *(var_20h) = gp;
    0x000057c8 sw ra, 0xbc(sp)                   |     *(var_bch) = ra;
    0x000057cc sw s2, 0xb8(sp)                   |     *(var_b8h) = s2;
    0x000057d0 addiu a0, a0, 0x7ef4              |     a0 += str.systemctl_stop_temperature_controller_2__dev_null;
    0x000057d4 sw v0, 0xac(sp)                   |     *(var_ach) = v0;
    0x000057d8 jalr t9                           |     t9 ();
    0x000057dc nop                               |     
    0x000057e0 lw gp, 0x20(sp)                   |     gp = *(var_20h);
                                                 |     if (v0 != 0) {
    0x000057e4 bnez v0, 0x58dc                   |         goto label_3;
                                                 |     }
    0x000057e8 lw a0, -0x7fd8(gp)                |     a0 = *((gp - 8182));
    0x000057ec lw t9, -0x7e34(gp)                |     t9 = sym.imp.system;
    0x000057f0 addiu a0, a0, 0x7f50              |     a0 += str.systemctl_stop_light_controller_2__dev_null;
    0x000057f4 jalr t9                           |     t9 ();
    0x000057f8 lw gp, 0x20(sp)                   |     gp = *(var_20h);
                                                 |     if (v0 != 0) {
    0x000057fc bnez v0, 0x5910                   |         goto label_4;
                                                 |     }
                                                 |     do {
                                                 | label_0:
    0x00005800 lw v0, 0x68(s0)                   |         v0 = *((s0 + 26));
    0x00005804 lw a0, 0x70(s0)                   |         a0 = *((s0 + 28));
    0x00005808 lw v1, 0x6c(s0)                   |         v1 = *((s0 + 27));
    0x0000580c sw v0, 0x14(sp)                   |         *(var_14h) = v0;
    0x00005810 lw v0, -0x7fd8(gp)                |         v0 = *((gp - 8182));
    0x00005814 lw t9, -0x7f14(gp)                |         t9 = sym.imp.__snprintf_chk
    0x00005818 addiu v0, v0, 0x7fa0              |         v0 += str.stmflash__d__s__a__s__j__s_2__dev_null;
    0x0000581c addiu s2, sp, 0x2c                |         s2 = sp + 0x2c;
    0x00005820 sw a0, 0x1c(sp)                   |         *(var_1ch) = a0;
    0x00005824 sw v1, 0x18(sp)                   |         *(var_18h) = v1;
    0x00005828 sw v0, 0x10(sp)                   |         *(var_10h) = v0;
    0x0000582c addiu a3, zero, 0x80              |         a3 = 0x80;
    0x00005830 addiu a2, zero, 1                 |         a2 = 1;
    0x00005834 addiu a1, zero, 0x80              |         a1 = 0x80;
    0x00005838 move a0, s2                       |         a0 = s2;
    0x0000583c jalr t9                           |         t9 ();
    0x00005840 addiu v0, v0, -1                  |         v0 += -1;
    0x00005844 sltiu v0, v0, 0x80                |         v0 = (v0 < 0x80) ? 1 : 0;
    0x00005848 lw gp, 0x20(sp)                   |         gp = *(var_20h);
                                                 |         if (v0 == 0) {
    0x0000584c beqz v0, 0x5974                   |             goto label_5;
                                                 |         }
    0x00005850 lw t9, -0x7e34(gp)                |         t9 = sym.imp.system;
    0x00005854 move a0, s2                       |         a0 = s2;
    0x00005858 jalr t9                           |         t9 ();
    0x0000585c lw gp, 0x20(sp)                   |         gp = *(var_20h);
                                                 |         if (v0 != 0) {
    0x00005860 bnez v0, 0x5998                   |             goto label_6;
                                                 |         }
    0x00005864 lw t9, -0x7e64(gp)                |         t9 = *(gp);
    0x00005868 lui a0, 0x98                      |         a0 = 0x989680;
    0x0000586c ori a0, a0, 0x9680                |         
    0x00005870 jalr t9                           |         t9 ();
    0x00005874 lw gp, 0x20(sp)                   |         gp = *(var_20h);
    0x00005878 lw t9, -0x7fa8(gp)                |         t9 = sym.print_STM32F0_rstat;
    0x0000587c move a0, s0                       |         a0 = s0;
    0x00005880 bal 0x42a0                        |         sym_print_STM32F0_rstat ();
    0x00005884 lw gp, 0x20(sp)                   |         gp = *(var_20h);
    0x00005888 lw a0, -0x7fd4(gp)                |         a0 = *((gp - 8181));
    0x0000588c lw t9, -0x7e34(gp)                |         t9 = sym.imp.system;
    0x00005890 addiu a0, a0, -0x7ffc             |         a0 += -0x7ffc;
    0x00005894 jalr t9                           |         t9 ();
    0x00005898 lw gp, 0x20(sp)                   |         gp = *(var_20h);
                                                 |         if (v0 != 0) {
    0x0000589c bnez v0, 0x5954                   |             goto label_7;
                                                 |         }
                                                 | label_2:
    0x000058a0 lw a0, -0x7fd4(gp)                |         a0 = *((gp - 8181));
    0x000058a4 lw t9, -0x7e34(gp)                |         t9 = sym.imp.system;
    0x000058a8 addiu a0, a0, -0x7f98             |         a0 += -0x7f98;
    0x000058ac jalr t9                           |         t9 ();
    0x000058b0 lw gp, 0x20(sp)                   |         gp = *(var_20h);
                                                 |         if (v0 != 0) {
    0x000058b4 bnez v0, 0x5930                   |             goto label_8;
                                                 |         }
                                                 | label_1:
    0x000058b8 lw a0, 0xac(sp)                   |         a0 = *(var_ach);
    0x000058bc lw v1, (s1)                       |         v1 = *(s1);
    0x000058c0 lw ra, 0xbc(sp)                   |         ra = *(var_bch);
                                                 |         if (a0 != v1) {
    0x000058c4 bne a0, v1, 0x59a8                |             goto label_9;
                                                 |         }
    0x000058c8 lw s2, 0xb8(sp)                   |         s2 = *(var_b8h);
    0x000058cc lw s1, 0xb4(sp)                   |         s1 = *(var_b4h);
    0x000058d0 lw s0, 0xb0(sp)                   |         s0 = *(var_b0h);
    0x000058d4 addiu sp, sp, 0xc0                |         
    0x000058d8 jr ra                             |         return v0;
                                                 | label_3:
    0x000058dc lw a2, -0x7fd8(gp)                |         a2 = *((gp - 8182));
    0x000058e0 lw t9, -0x7ed4(gp)                |         t9 = sym.imp.__syslog_chk;
    0x000058e4 addiu a2, a2, 0x7f28              |         a2 += str.Failed_to_stop_temperature_controller_n;
    0x000058e8 addiu a1, zero, 1                 |         a1 = 1;
    0x000058ec addiu a0, zero, 6                 |         a0 = 6;
    0x000058f0 jalr t9                           |         t9 ();
    0x000058f4 lw gp, 0x20(sp)                   |         gp = *(var_20h);
    0x000058f8 lw a0, -0x7fd8(gp)                |         a0 = *((gp - 8182));
    0x000058fc lw t9, -0x7e34(gp)                |         t9 = sym.imp.system;
    0x00005900 addiu a0, a0, 0x7f50              |         a0 += str.systemctl_stop_light_controller_2__dev_null;
    0x00005904 jalr t9                           |         t9 ();
    0x00005908 lw gp, 0x20(sp)                   |         gp = *(var_20h);
    0x0000590c beqz v0, 0x5800                   |         
                                                 |     } while (v0 == 0);
                                                 | label_4:
    0x00005910 lw a2, -0x7fd8(gp)                |     a2 = *((gp - 8182));
    0x00005914 lw t9, -0x7ed4(gp)                |     t9 = sym.imp.__syslog_chk;
    0x00005918 addiu a2, a2, 0x7f7c              |     a2 += str.Failed_to_stop_light_controller_n;
    0x0000591c addiu a1, zero, 1                 |     a1 = 1;
    0x00005920 addiu a0, zero, 6                 |     a0 = 6;
    0x00005924 jalr t9                           |     t9 ();
    0x00005928 lw gp, 0x20(sp)                   |     gp = *(var_20h);
    0x0000592c b 0x5800                          |     goto label_0;
                                                 | label_8:
    0x00005930 lw a2, -0x7fd4(gp)                |     a2 = *((gp - 8181));
    0x00005934 lw t9, -0x7ed4(gp)                |     t9 = sym.imp.__syslog_chk;
    0x00005938 addiu a2, a2, -0x7f68             |     a2 += -0x7f68;
    0x0000593c addiu a1, zero, 1                 |     a1 = 1;
    0x00005940 addiu a0, zero, 6                 |     a0 = 6;
    0x00005944 jalr t9                           |     t9 ();
    0x00005948 lw gp, 0x20(sp)                   |     gp = *(var_20h);
    0x0000594c move v0, zero                     |     v0 = 0;
    0x00005950 b 0x58b8                          |     goto label_1;
                                                 | label_7:
    0x00005954 lw a2, -0x7fd4(gp)                |     a2 = *((gp - 8181));
    0x00005958 lw t9, -0x7ed4(gp)                |     t9 = sym.imp.__syslog_chk;
    0x0000595c addiu a2, a2, -0x7fc4             |     a2 += -0x7fc4;
    0x00005960 addiu a1, zero, 1                 |     a1 = 1;
    0x00005964 addiu a0, zero, 6                 |     a0 = 6;
    0x00005968 jalr t9                           |     t9 ();
    0x0000596c lw gp, 0x20(sp)                   |     gp = *(var_20h);
    0x00005970 b 0x58a0                          |     goto label_2;
                                                 | label_5:
    0x00005974 lw a2, -0x7fd8(gp)                |     a2 = *((gp - 8182));
    0x00005978 lw t9, -0x7ed4(gp)                |     t9 = sym.imp.__syslog_chk;
    0x0000597c addiu a2, a2, 0x7fe0              |     a2 += str.Failed_to_send_data_to_start_MCU_n;
                                                 |     do {
    0x00005980 addiu a1, zero, 1                 |         a1 = 1;
    0x00005984 addiu a0, zero, 3                 |         a0 = 3;
    0x00005988 jalr t9                           |         t9 ();
    0x0000598c lw gp, 0x20(sp)                   |         gp = *(var_20h);
    0x00005990 addiu v0, zero, -1                |         v0 = -1;
    0x00005994 b 0x58b8                          |         goto label_1;
                                                 | label_6:
    0x00005998 lw a2, -0x7fd8(gp)                |         a2 = *((gp - 8182));
    0x0000599c lw t9, -0x7ed4(gp)                |         t9 = sym.imp.__syslog_chk;
    0x000059a0 addiu a2, a2, 0x7fc8              |         a2 += str.Failed_to_start_MCU_n;
    0x000059a4 b 0x5980                          |         
                                                 |     } while (1);
                                                 | label_9:
    0x000059a8 lw t9, -0x7ee8(gp)                |     t9 = sym.imp.__stack_chk_fail;
    0x000059ac jalr t9                           |     t9 ();
    0x000059b0 nop                               |     
                                                 | }

[*] Function printf used 3 times dmonitord