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