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