[*] Binary protection state of temperature_ctrld
Full RELRO Canary found NX disabled PIE enabled No RPATH No RUNPATH No Symbols
[*] Function printf tear down of temperature_ctrld
; assembly | /* r2dec pseudo code output */
| /* /logs/firmware/unblob_extracted/firmware_extract/4325012-58052244.squashfs_v4_le_extract/usr/bin/temperature_ctrld @ 0x19db8 */
| #include <stdint.h>
|
; (fcn) fcn.00019db8 () | void fcn_00019db8 () {
| do {
| label_0:
0x00019214 lw t9, -0x7b74(gp) | t9 = sym.imp.__syslog_chk;
| if (v0 == 0) {
0x00019218 beqz v0, 0x193f0 | goto label_10;
| }
| label_1:
0x0001921c lw v0, 0x2c(sp) | v0 = *(arg_2ch);
0x00019220 lw t9, -0x7928(gp) | t9 = *((gp - 7754));
0x00019224 addiu s4, v0, 1 | s4 = v0 + 1;
0x00019228 lw a0, 0x68(sp) | a0 = *(arg_68h);
0x0001922c sw s4, 0x2c(sp) | *(arg_2ch) = s4;
0x00019230 jalr t9 | t9 ();
0x00019234 lw v1, 0x28(sp) | v1 = *(arg_28h);
0x00019238 lw v0, 0xa8(s0) | v0 = *((s0 + 42));
0x0001923c addiu v1, v1, 4 | v1 += 4;
0x00019240 sltu v0, s4, v0 | v0 = (s4 < v0) ? 1 : 0;
0x00019244 lw gp, 0x20(sp) | gp = *(arg_20h);
0x00019248 sw v1, 0x28(sp) | *(arg_28h) = v1;
| if (v0 == 0) {
0x0001924c beqz v0, 0x19490 | goto label_11;
| }
0x00019250 lw v0, 0x28(sp) | v0 = *(arg_28h);
0x00019254 lw t9, -0x7f00(gp) | t9 = sym.base_device_get_type;
0x00019258 lw s4, (v0) | s4 = *(v0);
0x0001925c bal 0xcbe8 | sym_base_device_get_type ();
0x00019260 lw gp, 0x20(sp) | gp = *(arg_20h);
0x00019264 move a1, v0 | a1 = v0;
0x00019268 lw t9, -0x7bb0(gp) | t9 = sym.imp.g_type_check_instance_cast;
0x0001926c move a0, s4 | a0 = s4;
0x00019270 jalr t9 | t9 ();
0x00019274 lw v1, 0x28(sp) | v1 = *(arg_28h);
0x00019278 lw gp, 0x20(sp) | gp = *(arg_20h);
0x0001927c lw s4, 0x17c(v0) | s4 = *(v0);
0x00019280 lw a0, (v1) | a0 = *(v1);
0x00019284 lw t9, -0x7f00(gp) | t9 = sym.base_device_get_type;
0x00019288 sw a0, 0x30(sp) | *(arg_30h) = a0;
0x0001928c bal 0xcbe8 | sym_base_device_get_type ();
0x00019290 lw gp, 0x20(sp) | gp = *(arg_20h);
0x00019294 lw a0, 0x30(sp) | a0 = *(arg_30h);
0x00019298 lw t9, -0x7bb0(gp) | t9 = sym.imp.g_type_check_instance_cast;
0x0001929c move a1, v0 | a1 = v0;
0x000192a0 jalr t9 | t9 ();
0x000192a4 lw gp, 0x20(sp) | gp = *(arg_20h);
0x000192a8 lw t9, -0x7dd8(gp) | t9 = sym.base_device_check_failure;
0x000192ac move a0, v0 | a0 = v0;
0x000192b0 bal 0xe69c | sym_base_device_check_failure ();
0x000192b4 lw v1, 0x28(sp) | v1 = *(arg_28h);
0x000192b8 lw gp, 0x20(sp) | gp = *(arg_20h);
0x000192bc lw a0, (v1) | a0 = *(v1);
0x000192c0 lw t9, -0x7f00(gp) | t9 = sym.base_device_get_type;
0x000192c4 sw a0, 0x30(sp) | *(arg_30h) = a0;
0x000192c8 bal 0xcbe8 | sym_base_device_get_type ();
0x000192cc lw gp, 0x20(sp) | gp = *(arg_20h);
0x000192d0 lw a0, 0x30(sp) | a0 = *(arg_30h);
0x000192d4 lw t9, -0x7bb0(gp) | t9 = sym.imp.g_type_check_instance_cast;
0x000192d8 move a1, v0 | a1 = v0;
0x000192dc jalr t9 | t9 ();
0x000192e0 lw v0, 0x17c(v0) | v0 = *(v0);
0x000192e4 lw gp, 0x20(sp) | gp = *(arg_20h);
| if (v0 != 0) {
0x000192e8 beqz v0, 0x192f4 |
| if (s4 == 0) {
0x000192ec beql s4, zero, 0x1940c | goto label_12;
| }
0x000192f0 lw a1, 0x1c(s0) | a1 = *((s0 + 7));
| }
| label_2:
0x000192f4 lw v0, 0x3c(sp) | v0 = *(arg_3ch);
0x000192f8 lw s4, 0x2c(sp) | s4 = *(arg_2ch);
0x000192fc sw v0, 0x10(sp) | *(arg_10h) = v0;
0x00019300 lw v0, 0x38(sp) | v0 = *(arg_38h);
0x00019304 lw t9, -0x7c54(gp) | t9 = sym.imp.__snprintf_chk
0x00019308 sw v0, 0x78(sp) | *(arg_78h) = v0;
0x0001930c addiu v0, zero, 0x10 | v0 = 0x10;
0x00019310 sw v0, 0x7c(sp) | *(arg_7ch) = v0;
0x00019314 addiu v0, zero, 3 | v0 = 3;
0x00019318 addiu a3, zero, 0x20 | a3 = 0x20;
0x0001931c addiu a2, zero, 1 | a2 = 1;
0x00019320 addiu a1, zero, 0x20 | a1 = 0x20;
0x00019324 move a0, s3 | a0 = s3;
0x00019328 sw s4, 0x14(sp) | *(arg_14h) = s4;
0x0001932c sw s2, 0x80(sp) | *(arg_80h) = s2;
0x00019330 sw v0, 0x84(sp) | *(arg_84h) = v0;
0x00019334 sw s5, 0x88(sp) | *(arg_88h) = s5;
0x00019338 sw zero, 0x8c(sp) | *(arg_8ch) = 0;
0x0001933c jalr t9 | t9 ();
0x00019340 lw t9, 0x34(sp) | t9 = *(arg_34h);
0x00019344 move a3, zero | a3 = 0;
0x00019348 move a2, s6 | a2 = s6;
0x0001934c move a1, s4 | a1 = s4;
0x00019350 move a0, s0 | a0 = s0;
0x00019354 jalr t9 | t9 ();
0x00019358 lw gp, 0x20(sp) | gp = *(arg_20h);
0x0001935c lw v0, 0x40(sp) | v0 = *(arg_40h);
0x00019360 lw a3, 0x68(sp) | a3 = *(arg_68h);
0x00019364 lw t9, -0x7c90(gp) | t9 = sym.imp.snprintf
0x00019368 addiu a2, v0, -0x7a7c | a2 = v0 + -0x7a7c;
0x0001936c addiu a1, zero, 0x10 | a1 = 0x10;
0x00019370 move a0, s2 | a0 = s2;
0x00019374 jalr t9 | t9 ();
0x00019378 lw gp, 0x20(sp) | gp = *(arg_20h);
0x0001937c move a2, zero | a2 = 0;
0x00019380 move a1, s7 | a1 = s7;
0x00019384 lw t9, -0x7c24(gp) | t9 = sym.imp.sc_set_group;
0x00019388 move a0, s3 | a0 = s3;
0x0001938c jalr t9 | t9 ();
0x00019390 lw gp, 0x20(sp) | gp = *(arg_20h);
0x00019394 bgez v0, 0x19214 |
| } while (v0 >= 0);
0x00019398 lw t9, -0x79bc(gp) | t9 = sym.imp.sc_create_group;
0x0001939c move a2, zero | a2 = 0;
0x000193a0 addiu a1, zero, 0x64 | a1 = 0x64;
0x000193a4 move a0, s3 | a0 = s3;
0x000193a8 jalr t9 | t9 ();
0x000193ac lw gp, 0x20(sp) | gp = *(arg_20h);
| if (v0 < 0) {
0x000193b0 bltz v0, 0x19dbc | goto label_13;
| }
0x000193b4 lw t9, -0x7c24(gp) | t9 = sym.imp.sc_set_group;
0x000193b8 addiu a2, zero, 2 | a2 = 2;
0x000193bc move a1, s7 | a1 = s7;
0x000193c0 move a0, s3 | a0 = s3;
0x000193c4 jalr t9 | t9 ();
0x000193c8 lw gp, 0x20(sp) | gp = *(arg_20h);
| if (v0 >= 0) {
0x000193cc bgez v0, 0x19214 | goto label_0;
| }
0x000193d0 lw v0, 0x54(sp) | v0 = *(arg_54h);
0x000193d4 lw t9, -0x7b74(gp) | t9 = sym.imp.__syslog_chk;
0x000193d8 addiu a2, v0, 0x5920 | a2 = v0 + 0x5920;
0x000193dc addiu a1, zero, 1 | a1 = 1;
0x000193e0 addiu a0, zero, 4 | a0 = 4;
0x000193e4 jalr t9 | t9 ();
0x000193e8 lw gp, 0x20(sp) | gp = *(arg_20h);
0x000193ec lw t9, -0x7b74(gp) | t9 = sym.imp.__syslog_chk;
| label_10:
0x000193f0 lw a3, 0x2c(sp) | a3 = *(arg_2ch);
0x000193f4 lw a2, 0x48(sp) | a2 = *(arg_48h);
0x000193f8 addiu a1, zero, 1 | a1 = 1;
0x000193fc addiu a0, zero, 4 | a0 = 4;
0x00019400 jalr t9 | t9 ();
0x00019404 lw gp, 0x20(sp) | gp = *(arg_20h);
0x00019408 b 0x1921c | goto label_1;
| label_12:
0x0001940c addiu t6, s0, 0x24 | t6 = s0 + 0x24;
| if (a1 == 0) {
0x00019410 beqz a1, 0x192f4 | goto label_2;
| }
0x00019414 lw a0, (t6) | a0 = *(t6);
0x00019418 b 0x19430 | goto label_14;
| label_4:
0x0001941c addiu s4, s4, 1 | s4++;
| label_3:
0x00019420 sltu v0, s4, a1 | v0 = (s4 < a1) ? 1 : 0;
0x00019424 addiu t6, t6, 4 | t6 += 4;
| if (v0 == 0) {
0x00019428 beqz v0, 0x192f4 | goto label_2;
| }
0x0001942c lw a0, (t6) | a0 = *(t6);
| label_14:
0x00019430 lw v0, 0xc(a0) | v0 = *((a0 + 3));
| if (v0 == 0) {
0x00019434 beql v0, zero, 0x19420 | goto label_3;
| }
0x00019438 addiu s4, s4, 1 | s4++;
0x0001943c lw t9, -0x7f20(gp) | t9 = sym.temperature_base_get_last_read_temperature;
0x00019440 sw t6, 0x30(sp) | *(arg_30h) = t6;
0x00019444 move a1, fp | a1 = fp;
0x00019448 bal 0x80c8 | sym_temperature_base_get_last_read_temperature ();
0x0001944c lw gp, 0x20(sp) | gp = *(arg_20h);
0x00019450 lw t9, -0x7f78(gp) | t9 = *(gp);
0x00019454 lw a0, 0x58(sp) | a0 = *(arg_58h);
0x00019458 bal 0x31060 | fcn_00031060 ();
0x0001945c lw gp, 0x20(sp) | gp = *(arg_20h);
0x00019460 lw a2, 0x44(sp) | a2 = *(arg_44h);
0x00019464 addiu a1, zero, 1 | a1 = 1;
0x00019468 lw t9, -0x7b74(gp) | t9 = sym.imp.__syslog_chk;
0x0001946c sw v0, 0x10(sp) | *(arg_10h) = v0;
0x00019470 sw v1, 0x14(sp) | *(arg_14h) = v1;
0x00019474 move a3, s4 | a3 = s4;
0x00019478 addiu a0, zero, 4 | a0 = 4;
0x0001947c jalr t9 | t9 ();
0x00019480 lw gp, 0x20(sp) | gp = *(arg_20h);
0x00019484 lw a1, 0x1c(s0) | a1 = *((s0 + 7));
0x00019488 lw t6, 0x30(sp) | t6 = *(arg_30h);
0x0001948c b 0x1941c | goto label_4;
| label_11:
0x00019490 lw a1, 0x1c(s0) | a1 = *((s0 + 7));
0x00019494 move s4, zero | s4 = 0;
| if (a1 == 0) {
0x00019498 beqz a1, 0x1956c | goto label_15;
| }
0x0001949c lw v0, -0x7fc8(gp) | v0 = *(gp);
0x000194a0 addiu s3, s0, 0x24 | s3 = s0 + 0x24;
0x000194a4 sw v0, 0x30(sp) | *(arg_30h) = v0;
0x000194a8 lw v0, -0x7fc8(gp) | v0 = *(gp);
0x000194ac move s4, zero | s4 = 0;
0x000194b0 move s2, zero | s2 = 0;
0x000194b4 lw v0, 0x7270(v0) | v0 = *((v0 + 7324));
0x000194b8 sw v0, 0x34(sp) | *(arg_34h) = v0;
0x000194bc lw v0, -0x7fc8(gp) | v0 = *(gp);
0x000194c0 sw v0, 0x38(sp) | *(arg_38h) = v0;
0x000194c4 lw v0, -0x7fc8(gp) | v0 = *(gp);
| /* str.CELSIUS */
0x000194c8 addiu v0, v0, 0x59c0 | v0 += 0x59c0;
0x000194cc sw v0, 0x28(sp) | *(arg_28h) = v0;
0x000194d0 lw v0, -0x7fc8(gp) | v0 = *(gp);
| /* str.FAHRENHEIT */
0x000194d4 addiu v0, v0, 0x59c8 | v0 += 0x59c8;
0x000194d8 sw v0, 0x2c(sp) | *(arg_2ch) = v0;
| do {
0x000194dc lw s7, (s3) | s7 = *(s3);
0x000194e0 lw v0, 0x70(s7) | v0 = *((s7 + 28));
0x000194e4 move fp, zero | fp = 0;
| if (v0 != 0) {
0x000194e8 beqz v0, 0x194f4 |
0x000194ec lw a2, 0x74(s7) | a2 = *((s7 + 29));
0x000194f0 sltu fp, zero, a2 | fp = (0 < a2) ? 1 : 0;
| }
0x000194f4 lw v0, 0xc(s7) | v0 = *((s7 + 3));
| if (v0 != 0) {
0x000194f8 beql v0, zero, 0x19560 |
0x000194fc addiu s2, s2, 1 | s2++;
0x00019500 lw t9, -0x7f20(gp) | t9 = sym.temperature_base_get_last_read_temperature;
0x00019504 addiu s6, sp, 0x58 | s6 = sp + 0x58;
0x00019508 move a1, s6 | a1 = s6;
0x0001950c move a0, s7 | a0 = s7;
0x00019510 bal 0x80c8 | sym_temperature_base_get_last_read_temperature ();
0x00019514 lw gp, 0x20(sp) | gp = *(arg_20h);
0x00019518 addiu s5, sp, 0x5c | s5 = sp + 0x5c;
0x0001951c move a1, s5 | a1 = s5;
0x00019520 lw t9, -0x7dd0(gp) | t9 = sym.temperature_base_temperature_is_out_of_bounds;
0x00019524 move a0, s7 | a0 = s7;
0x00019528 bal 0x8ad8 | sym_temperature_base_temperature_is_out_of_bounds ();
0x0001952c lw gp, 0x20(sp) | gp = *(arg_20h);
0x00019530 lw t9, -0x7dcc(gp) | t9 = sym.temperature_base_update_temperature;
0x00019534 move a0, s7 | a0 = s7;
0x00019538 bal 0x75a4 | sym_temperature_base_update_temperature ();
0x0001953c lw gp, 0x20(sp) | gp = *(arg_20h);
| if (v0 == 0) {
0x00019540 beqz v0, 0x19ad4 | goto label_16;
| }
0x00019544 addiu a0, zero, -0x3e8 | a0 = -0x3e8;
0x00019548 lw t9, -0x7f20(gp) | t9 = sym.temperature_base_get_last_read_temperature;
| if (v0 == a0) {
0x0001954c beq v0, a0, 0x19df4 | goto label_17;
| }
0x00019550 lw a2, -0x7fc8(gp) | a2 = *(gp);
| if (fp != 0) {
0x00019554 bnez fp, 0x19ab0 | goto label_18;
| }
0x00019558 lw a1, 0x1c(s0) | a1 = *((s0 + 7));
| label_5:
0x0001955c addiu s2, s2, 1 | s2++;
| }
0x00019560 sltu v0, s2, a1 | v0 = (s2 < a1) ? 1 : 0;
0x00019564 addiu s3, s3, 4 | s3 += 4;
0x00019568 bnez v0, 0x194dc |
| } while (v0 != 0);
| label_15:
0x0001956c lw v0, 0x20(s0) | v0 = *((s0 + 8));
| if (v0 > 0) {
0x00019570 blezl v0, 0x19590 |
0x00019574 lw v0, 0x64(s0) | v0 = *((s0 + 25));
0x00019578 lw t9, -0x7de0(gp) | t9 = sym.temperature_status_update;
0x0001957c lw a0, 0x10c(s0) | a0 = *(s0);
0x00019580 addiu a2, s0, 0x24 | a2 = s0 + 0x24;
0x00019584 bal 0x6574 | sym_temperature_status_update ();
0x00019588 lw gp, 0x20(sp) | gp = *(arg_20h);
0x0001958c lw v0, 0x64(s0) | v0 = *((s0 + 25));
| }
0x00019590 lw v0, -0x7fc8(gp) | v0 = *(gp);
| if (v0 == 0) {
0x00019594 beqz v0, 0x197a4 | void (*0x197a4)() ();
| }
0x00019598 addiu s5, s0, 0x68 | s5 = s0 + 0x68;
| /* str.Failure_reported_when_reading_from_Sensor.H_d. */
0x0001959c addiu v0, v0, 0x5a08 | v0 += 0x5a08;
0x000195a0 move s2, zero | s2 = 0;
0x000195a4 addiu s7, sp, 0x64 | s7 = sp + 0x64;
0x000195a8 sw v0, 0x2c(sp) | *(arg_2ch) = v0;
0x000195ac b 0x195e0 | void (*0x195e0)() ();
| label_18:
0x00019ab0 lw t9, -0x7b74(gp) | t9 = sym.imp.__syslog_chk;
0x00019ab4 addiu a1, zero, 1 | a1 = 1;
0x00019ab8 move a3, s2 | a3 = s2;
| /* str.Failure_reported_when_reading_from_Sensor.T_d. */
0x00019abc addiu a2, a2, 0x5990 | a2 += 0x5990;
0x00019ac0 addiu a0, zero, 3 | a0 = 3;
0x00019ac4 jalr t9 | t9 ();
0x00019ac8 lw gp, 0x20(sp) | gp = *(arg_20h);
0x00019acc lw a1, 0x1c(s0) | a1 = *((s0 + 7));
0x00019ad0 b 0x1955c | goto label_5;
| label_16:
0x00019ad4 lw t9, -0x7dd0(gp) | t9 = sym.temperature_base_temperature_is_out_of_bounds;
0x00019ad8 move a1, s5 | a1 = s5;
0x00019adc move a0, s7 | a0 = s7;
0x00019ae0 lw s5, 0x5c(sp) | s5 = *(arg_5ch);
0x00019ae4 bal 0x8ad8 | sym_temperature_base_temperature_is_out_of_bounds ();
0x00019ae8 lw v0, 0x6c(s7) | v0 = *((s7 + 27));
0x00019aec or s5, s5, v0 | s5 |= v0;
0x00019af0 lw gp, 0x20(sp) | gp = *(arg_20h);
| if (s5 != 0) {
0x00019af4 bnez s5, 0x19b04 | goto label_19;
| }
0x00019af8 lw v0, 0x5c(sp) | v0 = *(arg_5ch);
0x00019afc lw a1, 0x1c(s0) | a1 = *((s0 + 7));
| if (v0 == 0) {
0x00019b00 bnel v0, zero, 0x1955c | goto label_5;
| }
| label_19:
0x00019b04 lw v0, 0x30(sp) | v0 = *(arg_30h);
0x00019b08 lw v1, 0x28(sp) | v1 = *(arg_28h);
0x00019b0c addiu t1, v0, 0x59d4 | t1 = v0 + 0x59d4;
0x00019b10 sw v1, 0x68(sp) | *(arg_68h) = v1;
0x00019b14 addiu v0, zero, 2 | v0 = 2;
0x00019b18 lw v1, 0x2c(sp) | v1 = *(arg_2ch);
0x00019b1c addiu t2, zero, 4 | t2 = 4;
0x00019b20 lw t9, -0x7c54(gp) | t9 = sym.imp.__snprintf_chk
0x00019b24 addiu fp, sp, 0xa4 | fp = sp + 0xa4;
0x00019b28 addiu s5, sp, 0x78 | s5 = sp + 0x78;
0x00019b2c sw t1, 0x10(sp) | *(arg_10h) = t1;
0x00019b30 sw v0, 0x74(sp) | *(arg_74h) = v0;
0x00019b34 addiu t1, sp, 0x60 | t1 = sp + 0x60;
0x00019b38 sw v0, 0x84(sp) | *(arg_84h) = v0;
0x00019b3c addiu v0, sp, 0x68 | v0 = sp + 0x68;
0x00019b40 addiu a3, zero, 0x20 | a3 = 0x20;
0x00019b44 addiu a2, zero, 1 | a2 = 1;
0x00019b48 sw t2, 0x6c(sp) | *(arg_6ch) = t2;
0x00019b4c sw t2, 0x7c(sp) | *(arg_7ch) = t2;
0x00019b50 sw v1, 0x78(sp) | *(arg_78h) = v1;
0x00019b54 addiu a1, zero, 0x20 | a1 = 0x20;
0x00019b58 move a0, fp | a0 = fp;
0x00019b5c sw t1, 0x70(sp) | *(arg_70h) = t1;
0x00019b60 sw t1, 0x3c(sp) | *(arg_3ch) = t1;
0x00019b64 sw s5, 0x8c(sp) | *(arg_8ch) = s5;
0x00019b68 sw s2, 0x14(sp) | *(arg_14h) = s2;
0x00019b6c sw zero, 0x80(sp) | *(arg_80h) = 0;
0x00019b70 sw v0, 0x88(sp) | *(arg_88h) = v0;
0x00019b74 sw zero, 0x90(sp) | *(arg_90h) = 0;
0x00019b78 jalr t9 | t9 ();
0x00019b7c lw gp, 0x20(sp) | gp = *(arg_20h);
0x00019b80 lw t1, 0x3c(sp) | t1 = *(arg_3ch);
0x00019b84 lw a0, (s3) | a0 = *(s3);
0x00019b88 lw t9, -0x7f20(gp) | t9 = sym.temperature_base_get_last_read_temperature;
0x00019b8c move a1, t1 | a1 = t1;
0x00019b90 bal 0x80c8 | sym_temperature_base_get_last_read_temperature ();
0x00019b94 lw gp, 0x20(sp) | gp = *(arg_20h);
0x00019b98 lw a0, 0x60(sp) | a0 = *(arg_60h);
0x00019b9c lw t9, -0x7f6c(gp) | t9 = *(gp);
0x00019ba0 lw a1, 0x34(sp) | a1 = *(arg_34h);
0x00019ba4 bal 0x2e100 | fcn_0002e100 ();
0x00019ba8 lw gp, 0x20(sp) | gp = *(arg_20h);
0x00019bac lw v1, 0x38(sp) | v1 = *(arg_38h);
0x00019bb0 move a0, v0 | a0 = v0;
0x00019bb4 lw t9, -0x7f70(gp) | t9 = *(gp);
0x00019bb8 lw a1, 0x7274(v1) | a1 = *((v1 + 7325));
0x00019bbc bal 0x2d520 | fcn_0002d520 ();
0x00019bc0 lw gp, 0x20(sp) | gp = *(arg_20h);
0x00019bc4 addiu v1, sp, 0x88 | v1 = sp + 0x88;
0x00019bc8 sw v0, 0x64(sp) | *(arg_64h) = v0;
0x00019bcc lw t9, -0x7c24(gp) | t9 = sym.imp.sc_set_group;
0x00019bd0 addiu v0, sp, 0x64 | v0 = sp + 0x64;
0x00019bd4 sw v1, 0x3c(sp) | *(arg_3ch) = v1;
0x00019bd8 move a2, zero | a2 = 0;
0x00019bdc move a1, v1 | a1 = v1;
0x00019be0 move a0, fp | a0 = fp;
0x00019be4 sw v0, 0x80(sp) | *(arg_80h) = v0;
0x00019be8 jalr t9 | t9 ();
0x00019bec move s5, v0 | s5 = v0;
0x00019bf0 lw gp, 0x20(sp) | gp = *(arg_20h);
| if (v0 < 0) {
0x00019bf4 bltz v0, 0x19f00 | goto label_20;
| }
| label_7:
0x00019bf8 slti v0, s5, 2 | v0 = (s5 < 2) ? 1 : 0;
0x00019bfc lw a2, -0x7fc8(gp) | a2 = *(gp);
| if (v0 != 0) {
0x00019c00 bnez v0, 0x19f3c | goto label_21;
| }
| label_6:
0x00019c04 lw t9, -0x7dac(gp) | t9 = sym.temperature_base_update_safety_state;
0x00019c08 move a1, s1 | a1 = s1;
0x00019c0c move a0, s7 | a0 = s7;
0x00019c10 bal 0x8174 | sym_temperature_base_update_safety_state ();
0x00019c14 lw gp, 0x20(sp) | gp = *(arg_20h);
0x00019c18 move a1, s1 | a1 = s1;
0x00019c1c move a0, s7 | a0 = s7;
0x00019c20 lw t9, -0x7de4(gp) | t9 = sym.temperature_base_check_event_bounds;
0x00019c24 or s4, s4, v0 | s4 |= v0;
0x00019c28 bal 0x8688 | sym_temperature_base_check_event_bounds ();
0x00019c2c lw gp, 0x20(sp) | gp = *(arg_20h);
0x00019c30 move a1, s1 | a1 = s1;
0x00019c34 lw t9, -0x7da8(gp) | t9 = sym.temperature_base_log_warning;
0x00019c38 move a0, s7 | a0 = s7;
0x00019c3c bal 0x8324 | sym_temperature_base_log_warning ();
0x00019c40 lw gp, 0x20(sp) | gp = *(arg_20h);
0x00019c44 move a1, s6 | a1 = s6;
0x00019c48 lw t9, -0x7f20(gp) | t9 = sym.temperature_base_get_last_read_temperature;
0x00019c4c move a0, s7 | a0 = s7;
0x00019c50 bal 0x80c8 | sym_temperature_base_get_last_read_temperature ();
0x00019c54 lw v0, 0xa8(s0) | v0 = *((s0 + 42));
0x00019c58 lw gp, 0x20(sp) | gp = *(arg_20h);
| if (v0 == 0) {
0x00019c5c beqz v0, 0x19d04 | goto label_22;
| }
0x00019c60 addiu s6, s0, 0xac | s6 = s0 + 0xac;
0x00019c64 move s7, zero | s7 = 0;
0x00019c68 addiu s5, zero, 1 | s5 = 1;
| do {
0x00019c6c lw t9, -0x7f00(gp) | t9 = sym.base_device_get_type;
0x00019c70 lw fp, (s6) | fp = *(s6);
0x00019c74 bal 0xcbe8 | sym_base_device_get_type ();
0x00019c78 lw gp, 0x20(sp) | gp = *(arg_20h);
0x00019c7c move a0, fp | a0 = fp;
0x00019c80 move a1, v0 | a1 = v0;
0x00019c84 lw t9, -0x7bb0(gp) | t9 = sym.imp.g_type_check_instance_cast;
0x00019c88 addiu s7, s7, 1 | s7++;
0x00019c8c jalr t9 | t9 ();
0x00019c90 lw gp, 0x20(sp) | gp = *(arg_20h);
0x00019c94 lw a2, 0x58(sp) | a2 = *(arg_58h);
0x00019c98 move a3, s1 | a3 = s1;
0x00019c9c lw t9, -0x7da4(gp) | t9 = sym.base_device_set_control_state_temperature;
0x00019ca0 move a1, s2 | a1 = s2;
0x00019ca4 move a0, v0 | a0 = v0;
0x00019ca8 sw s5, 0x10(sp) | *(arg_10h) = s5;
0x00019cac bal 0xfa18 | sym_base_device_set_control_state_temperature ();
0x00019cb0 lw gp, 0x20(sp) | gp = *(arg_20h);
0x00019cb4 lw fp, (s6) | fp = *(s6);
0x00019cb8 lw t9, -0x7f00(gp) | t9 = sym.base_device_get_type;
0x00019cbc addiu s6, s6, 4 | s6 += 4;
0x00019cc0 bal 0xcbe8 | sym_base_device_get_type ();
0x00019cc4 lw gp, 0x20(sp) | gp = *(arg_20h);
0x00019cc8 move a1, v0 | a1 = v0;
0x00019ccc lw t9, -0x7bb0(gp) | t9 = sym.imp.g_type_check_instance_cast;
0x00019cd0 move a0, fp | a0 = fp;
0x00019cd4 jalr t9 | t9 ();
0x00019cd8 lw gp, 0x20(sp) | gp = *(arg_20h);
0x00019cdc lw a3, 0x58(sp) | a3 = *(arg_58h);
0x00019ce0 move a2, s2 | a2 = s2;
0x00019ce4 lw t9, -0x7dbc(gp) | t9 = sym.base_device_set_sensor_value;
0x00019ce8 addiu a1, zero, 1 | a1 = 1;
0x00019cec move a0, v0 | a0 = v0;
0x00019cf0 bal 0xe4e8 | sym_base_device_set_sensor_value ();
0x00019cf4 lw v0, 0xa8(s0) | v0 = *((s0 + 42));
0x00019cf8 sltu v0, s7, v0 | v0 = (s7 < v0) ? 1 : 0;
0x00019cfc lw gp, 0x20(sp) | gp = *(arg_20h);
0x00019d00 bnez v0, 0x19c6c |
| } while (v0 != 0);
| label_22:
0x00019d04 lw v0, 0xcc(s0) | v0 = *((s0 + 51));
| if (v0 == 0) {
0x00019d08 beql v0, zero, 0x1955c | goto label_5;
| }
0x00019d0c lw a1, 0x1c(s0) | a1 = *((s0 + 7));
0x00019d10 addiu s6, s0, 0xd0 | s6 = s0 + 0xd0;
0x00019d14 move s7, zero | s7 = 0;
0x00019d18 addiu s5, zero, 1 | s5 = 1;
0x00019db8 lw a1, 0x1c(s0) | a1 = *((s0 + 7));
| label_13:
0x00019dbc lw t9, -0x7b74(gp) | t9 = sym.imp.__syslog_chk;
0x00019dc0 lw a2, 0x50(sp) | a2 = *(arg_50h);
0x00019dc4 addiu a1, zero, 1 | a1 = 1;
0x00019dc8 addiu a0, zero, 4 | a0 = 4;
0x00019dcc jalr t9 | t9 ();
0x00019dd0 lw gp, 0x20(sp) | gp = *(arg_20h);
0x00019dd4 lw a3, 0x2c(sp) | a3 = *(arg_2ch);
0x00019dd8 lw a2, 0x48(sp) | a2 = *(arg_48h);
0x00019ddc lw t9, -0x7b74(gp) | t9 = sym.imp.__syslog_chk;
0x00019de0 addiu a1, zero, 1 | a1 = 1;
0x00019de4 addiu a0, zero, 4 | a0 = 4;
0x00019de8 jalr t9 | t9 ();
0x00019dec lw gp, 0x20(sp) | gp = *(arg_20h);
0x00019df0 b 0x1921c | goto label_1;
| label_17:
0x00019df4 move a1, s6 | a1 = s6;
0x00019df8 move a0, s7 | a0 = s7;
0x00019dfc lw s5, 0x58(sp) | s5 = *(arg_58h);
0x00019e00 bal 0x80c8 | sym_temperature_base_get_last_read_temperature ();
0x00019e04 lw gp, 0x20(sp) | gp = *(arg_20h);
0x00019e08 lw a0, 0x58(sp) | a0 = *(arg_58h);
0x00019e0c lw t9, -0x7ef4(gp) | t9 = *(gp);
0x00019e10 move a1, s5 | a1 = s5;
0x00019e14 bal 0x2de20 | fcn_0002de20 ();
0x00019e18 lw gp, 0x20(sp) | gp = *(arg_20h);
| if (v0 != 0) {
0x00019e1c bnez v0, 0x19f9c | goto label_23;
| }
| label_9:
0x00019e20 lw v0, 0xa8(s0) | v0 = *((s0 + 42));
| if (v0 == 0) {
0x00019e24 beql v0, zero, 0x19e90 | goto label_24;
| }
0x00019e28 lw v0, 0xcc(s0) | v0 = *((s0 + 51));
0x00019e2c addiu s6, s0, 0xac | s6 = s0 + 0xac;
0x00019e30 move s5, zero | s5 = 0;
| do {
0x00019e34 lw t9, -0x7f00(gp) | t9 = sym.base_device_get_type;
0x00019e38 lw s7, (s6) | s7 = *(s6);
0x00019e3c bal 0xcbe8 | sym_base_device_get_type ();
0x00019e40 lw gp, 0x20(sp) | gp = *(arg_20h);
0x00019e44 move a1, v0 | a1 = v0;
0x00019e48 move a0, s7 | a0 = s7;
0x00019e4c lw t9, -0x7bb0(gp) | t9 = sym.imp.g_type_check_instance_cast;
0x00019e50 addiu s5, s5, 1 | s5++;
0x00019e54 jalr t9 | t9 ();
0x00019e58 lw gp, 0x20(sp) | gp = *(arg_20h);
0x00019e5c lw a2, 0x58(sp) | a2 = *(arg_58h);
0x00019e60 sw zero, 0x10(sp) | *(arg_10h) = 0;
0x00019e64 lw t9, -0x7da4(gp) | t9 = sym.base_device_set_control_state_temperature;
0x00019e68 move a3, s1 | a3 = s1;
0x00019e6c move a1, s2 | a1 = s2;
0x00019e70 move a0, v0 | a0 = v0;
0x00019e74 bal 0xfa18 | sym_base_device_set_control_state_temperature ();
0x00019e78 lw v0, 0xa8(s0) | v0 = *((s0 + 42));
0x00019e7c lw gp, 0x20(sp) | gp = *(arg_20h);
0x00019e80 sltu v0, s5, v0 | v0 = (s5 < v0) ? 1 : 0;
0x00019e84 addiu s6, s6, 4 | s6 += 4;
0x00019e88 bnez v0, 0x19e34 |
| } while (v0 != 0);
0x00019e8c lw v0, 0xcc(s0) | v0 = *((s0 + 51));
| if (v0 == 0) {
| label_24:
0x00019e90 beql v0, zero, 0x1955c | goto label_5;
| }
0x00019e94 lw a1, 0x1c(s0) | a1 = *((s0 + 7));
0x00019e98 addiu s6, s0, 0xd0 | s6 = s0 + 0xd0;
0x00019e9c move s5, zero | s5 = 0;
| do {
0x00019ea0 lw t9, -0x7f00(gp) | t9 = sym.base_device_get_type;
0x00019ea4 lw s7, (s6) | s7 = *(s6);
0x00019ea8 bal 0xcbe8 | sym_base_device_get_type ();
0x00019eac lw gp, 0x20(sp) | gp = *(arg_20h);
0x00019eb0 move a1, v0 | a1 = v0;
0x00019eb4 move a0, s7 | a0 = s7;
0x00019eb8 lw t9, -0x7bb0(gp) | t9 = sym.imp.g_type_check_instance_cast;
0x00019ebc addiu s5, s5, 1 | s5++;
0x00019ec0 jalr t9 | t9 ();
0x00019ec4 lw gp, 0x20(sp) | gp = *(arg_20h);
0x00019ec8 lw a2, 0x58(sp) | a2 = *(arg_58h);
0x00019ecc sw zero, 0x10(sp) | *(arg_10h) = 0;
0x00019ed0 lw t9, -0x7da4(gp) | t9 = sym.base_device_set_control_state_temperature;
0x00019ed4 move a3, s1 | a3 = s1;
0x00019ed8 move a1, s2 | a1 = s2;
0x00019edc move a0, v0 | a0 = v0;
0x00019ee0 bal 0xfa18 | sym_base_device_set_control_state_temperature ();
0x00019ee4 lw v0, 0xcc(s0) | v0 = *((s0 + 51));
0x00019ee8 lw gp, 0x20(sp) | gp = *(arg_20h);
0x00019eec sltu v0, s5, v0 | v0 = (s5 < v0) ? 1 : 0;
0x00019ef0 addiu s6, s6, 4 | s6 += 4;
0x00019ef4 bnez v0, 0x19ea0 |
| } while (v0 != 0);
0x00019ef8 lw a1, 0x1c(s0) | a1 = *((s0 + 7));
0x00019efc b 0x1955c | goto label_5;
| label_20:
0x00019f00 lw t9, -0x79bc(gp) | t9 = sym.imp.sc_create_group;
0x00019f04 move a2, zero | a2 = 0;
0x00019f08 addiu a1, zero, 0x64 | a1 = 0x64;
0x00019f0c move a0, fp | a0 = fp;
0x00019f10 jalr t9 | t9 ();
0x00019f14 lw gp, 0x20(sp) | gp = *(arg_20h);
| if (v0 < 0) {
0x00019f18 bgez v0, 0x19f5c |
0x00019f1c lw a2, -0x7fc8(gp) | a2 = *(gp);
0x00019f20 lw t9, -0x7b74(gp) | t9 = sym.imp.__syslog_chk;
| /* str.Can_not_create_scache_group___m */
0x00019f24 addiu a2, a2, 0x5900 | a2 += 0x5900;
0x00019f28 addiu a1, zero, 1 | a1 = 1;
0x00019f2c addiu a0, zero, 4 | a0 = 4;
0x00019f30 jalr t9 | t9 ();
0x00019f34 lw gp, 0x20(sp) | gp = *(arg_20h);
| label_8:
0x00019f38 lw a2, -0x7fc8(gp) | a2 = *(gp);
| label_21:
0x00019f3c lw t9, -0x7b74(gp) | t9 = sym.imp.__syslog_chk;
0x00019f40 move a3, s5 | a3 = s5;
| /* str.Could_only_set__d_of_2_params:__m */
0x00019f44 addiu a2, a2, 0x59e4 | a2 += 0x59e4;
0x00019f48 addiu a1, zero, 1 | a1 = 1;
0x00019f4c addiu a0, zero, 4 | a0 = 4;
0x00019f50 jalr t9 | t9 ();
0x00019f54 lw gp, 0x20(sp) | gp = *(arg_20h);
0x00019f58 b 0x19c04 | goto label_6;
| }
0x00019f5c lw t9, -0x7c24(gp) | t9 = sym.imp.sc_set_group;
0x00019f60 lw a1, 0x3c(sp) | a1 = *(arg_3ch);
0x00019f64 addiu a2, zero, 2 | a2 = 2;
0x00019f68 move a0, fp | a0 = fp;
0x00019f6c jalr t9 | t9 ();
0x00019f70 move s5, v0 | s5 = v0;
0x00019f74 lw gp, 0x20(sp) | gp = *(arg_20h);
| if (v0 >= 0) {
0x00019f78 bgez v0, 0x19bf8 | goto label_7;
| }
0x00019f7c lw a2, -0x7fc8(gp) | a2 = *(gp);
0x00019f80 lw t9, -0x7b74(gp) | t9 = sym.imp.__syslog_chk;
| /* str.Can_not_create_scache_params___m */
0x00019f84 addiu a2, a2, 0x5920 | a2 += 0x5920;
0x00019f88 addiu a1, zero, 1 | a1 = 1;
0x00019f8c addiu a0, zero, 4 | a0 = 4;
0x00019f90 jalr t9 | t9 ();
0x00019f94 lw gp, 0x20(sp) | gp = *(arg_20h);
0x00019f98 b 0x19f38 | goto label_8;
| label_23:
0x00019f9c lw a2, -0x7fc8(gp) | a2 = *(gp);
0x00019fa0 lw t9, -0x7b74(gp) | t9 = sym.imp.__syslog_chk;
0x00019fa4 move a3, s2 | a3 = s2;
| /* str.Sensor.T_d_not_connected. */
0x00019fa8 addiu a2, a2, 0x5974 | a2 += 0x5974;
0x00019fac addiu a1, zero, 1 | a1 = 1;
0x00019fb0 addiu a0, zero, 6 | a0 = 6;
0x00019fb4 jalr t9 | t9 ();
0x00019fb8 lw gp, 0x20(sp) | gp = *(arg_20h);
0x00019fbc b 0x19e20 | goto label_9;
| }
[*] Function printf used 4 times temperature_ctrld