[*] Binary protection state of hl_client
No RELRO No Canary found NX disabled No PIE RPATH No RUNPATH Symbols
[*] Function printf tear down of hl_client
; assembly | /* r2dec pseudo code output */
| /* /logs/firmware/unblob_extracted/firmware_extract/6225984-11075644.jffs2_new_extract/bin/hl_client @ 0x40dc10 */
| #include <stdint.h>
|
; (fcn) sym._aws_iot_mqtt_handle_reconnect () | void aws_iot_mqtt_handle_reconnect () {
0x0040dc10 addiu sp, sp, -0x28 |
0x0040dc14 sw ra, 0x24(sp) | *(var_24h) = ra;
0x0040dc18 sw fp, 0x20(sp) | *(var_20h) = fp;
0x0040dc1c move fp, sp | fp = sp;
0x0040dc20 sw a0, 0x28(fp) | *(arg_28h) = a0;
0x0040dc24 lw v0, 0x28(fp) | v0 = *(arg_28h);
0x0040dc28 addiu v0, v0, 8 | v0 += 8;
0x0040dc2c move a0, v0 | a0 = v0;
0x0040dc30 jal 0x412840 | sym_has_timer_expired ();
0x0040dc34 nop |
0x0040dc38 xori v0, v0, 1 | v0 ^= 1;
0x0040dc3c andi v0, v0, 0xff | v0 &= 0xff;
| if (v0 != 0) {
0x0040dc40 beqz v0, 0x40dc54 |
0x0040dc44 nop |
0x0040dc48 addiu v0, zero, 4 | v0 = 4;
0x0040dc4c b 0x40dd94 | goto label_0;
0x0040dc50 nop |
| }
0x0040dc54 addiu v0, zero, -0x12 | v0 = -0x12;
0x0040dc58 sw v0, 0x18(fp) | *(var_18h) = v0;
0x0040dc5c lw v0, 0x28(fp) | v0 = *(arg_28h);
0x0040dc60 lw v0, 0x10f0(v0) | v0 = *((v0 + 1084));
| if (v0 != 0) {
0x0040dc64 beqz v0, 0x40dc90 |
0x0040dc68 nop |
0x0040dc6c lw v0, 0x28(fp) | v0 = *(arg_28h);
0x0040dc70 lw v0, 0x10f0(v0) | v0 = *((v0 + 1084));
0x0040dc74 lw v1, 0x28(fp) | v1 = *(arg_28h);
0x0040dc78 addiu v1, v1, 0x10e0 | v1 += 0x10e0;
0x0040dc7c move a0, v1 | a0 = v1;
0x0040dc80 move t9, v0 | t9 = v0;
0x0040dc84 jalr t9 | t9 ();
0x0040dc88 nop |
0x0040dc8c sw v0, 0x18(fp) | *(var_18h) = v0;
| }
0x0040dc90 lw v1, 0x18(fp) | v1 = *(var_18h);
0x0040dc94 addiu v0, zero, 6 | v0 = 6;
| if (v1 == v0) {
0x0040dc98 bne v1, v0, 0x40dd34 |
0x0040dc9c nop |
0x0040dca0 lw a0, 0x28(fp) | a0 = *(arg_28h);
0x0040dca4 jal 0x40a33c | sym_aws_iot_mqtt_attempt_reconnect ();
0x0040dca8 nop |
0x0040dcac sw v0, 0x18(fp) | *(var_18h) = v0;
0x0040dcb0 lw v1, 0x18(fp) | v1 = *(var_18h);
0x0040dcb4 addiu v0, zero, 3 | v0 = 3;
| if (v1 == v0) {
0x0040dcb8 bne v1, v0, 0x40dcfc |
0x0040dcbc nop |
0x0040dcc0 lw a0, 0x28(fp) | a0 = *(arg_28h);
0x0040dcc4 addiu a1, zero, 3 | a1 = 3;
0x0040dcc8 addiu a2, zero, 4 | a2 = 4;
0x0040dccc jal 0x40fb14 | sym_aws_iot_mqtt_set_client_state ();
0x0040dcd0 nop |
0x0040dcd4 sw v0, 0x18(fp) | *(var_18h) = v0;
0x0040dcd8 lw v0, 0x18(fp) | v0 = *(var_18h);
| if (v0 != 0) {
0x0040dcdc beqz v0, 0x40dcf0 |
0x0040dce0 nop |
0x0040dce4 lw v0, 0x18(fp) | v0 = *(var_18h);
0x0040dce8 b 0x40dd94 | goto label_0;
0x0040dcec nop |
| }
0x0040dcf0 addiu v0, zero, 3 | v0 = 3;
0x0040dcf4 b 0x40dd94 | goto label_0;
0x0040dcf8 nop |
| }
0x0040dcfc lui v0, 0x42 | v0 = 0x420000;
| /* str._IOT____s__return_value_is__d_n */
0x0040dd00 addiu a0, v0, -0x40b0 | a0 = "[IOT] [%s] return value is %d\n";
0x0040dd04 lui v0, 0x42 | v0 = 0x420000;
| /* obj.__func__.6205 */
0x0040dd08 addiu a1, v0, -0x4090 | a1 = "_aws_iot_mqtt_handle_reconnect";
0x0040dd0c lw a2, 0x18(fp) | a2 = *(var_18h);
0x0040dd10 jal 0x41cfc0 | fcn_0041cfc0 ();
0x0040dd14 nop |
0x0040dd18 lui v0, 0x42 | v0 = 0x420000;
| /* str._IOT____s__return_value_is__d_n */
0x0040dd1c addiu a0, v0, -0x40b0 | a0 = "[IOT] [%s] return value is %d\n";
0x0040dd20 lui v0, 0x42 | v0 = 0x420000;
| /* obj.__func__.6205 */
0x0040dd24 addiu a1, v0, -0x4090 | a1 = "_aws_iot_mqtt_handle_reconnect";
0x0040dd28 lw a2, 0x18(fp) | a2 = *(var_18h);
0x0040dd2c jal 0x405dbc | sym_log_printf ()
0x0040dd30 nop |
| }
0x0040dd34 lw v0, 0x28(fp) | v0 = *(arg_28h);
0x0040dd38 lw v0, 0x28(v0) | v0 = *((v0 + 10));
0x0040dd3c sll v1, v0, 1 | v1 = v0 << 1;
0x0040dd40 lw v0, 0x28(fp) | v0 = *(arg_28h);
0x0040dd44 sw v1, 0x28(v0) | *((v0 + 10)) = v1;
0x0040dd48 lw v0, 0x28(fp) | v0 = *(arg_28h);
0x0040dd4c lw v1, 0x28(v0) | v1 = *((v0 + 10));
0x0040dd50 lui v0, 1 | v0 = 0x1f401;
0x0040dd54 ori v0, v0, 0xf401 |
0x0040dd58 sltu v0, v1, v0 | v0 = (v1 < v0) ? 1 : 0;
| if (v0 == 0) {
0x0040dd5c bnez v0, 0x40dd70 |
0x0040dd60 nop |
0x0040dd64 addiu v0, zero, -0xe | v0 = -0xe;
0x0040dd68 b 0x40dd94 | goto label_0;
0x0040dd6c nop |
| }
0x0040dd70 lw v0, 0x28(fp) | v0 = *(arg_28h);
0x0040dd74 addiu v1, v0, 8 | v1 = v0 + 8;
0x0040dd78 lw v0, 0x28(fp) | v0 = *(arg_28h);
0x0040dd7c lw v0, 0x28(v0) | v0 = *((v0 + 10));
0x0040dd80 move a0, v1 | a0 = v1;
0x0040dd84 move a1, v0 | a1 = v0;
0x0040dd88 jal 0x412910 | sym_countdown_ms ();
0x0040dd8c nop |
0x0040dd90 lw v0, 0x18(fp) | v0 = *(var_18h);
| label_0:
0x0040dd94 move sp, fp |
0x0040dd98 lw ra, 0x24(sp) | ra = *(var_24h);
0x0040dd9c lw fp, 0x20(sp) | fp = *(var_20h);
0x0040dda0 addiu sp, sp, 0x28 |
0x0040dda4 jr ra | return v0;
0x0040dda8 nop |
| }
; assembly | /* r2dec pseudo code output */
| /* /logs/firmware/unblob_extracted/firmware_extract/6225984-11075644.jffs2_new_extract/bin/hl_client @ 0x4061a0 */
| #include <stdint.h>
|
; (fcn) sym.aws_iot_manual_reconnect () | void aws_iot_manual_reconnect () {
0x004061a0 addiu sp, sp, -0x20 |
0x004061a4 sw ra, 0x1c(sp) | *(var_1ch) = ra;
0x004061a8 sw fp, 0x18(sp) | *(var_18h) = fp;
0x004061ac move fp, sp | fp = sp;
0x004061b0 sw a0, 0x20(fp) | *(arg_20h) = a0;
0x004061b4 lw a0, 0x20(fp) | a0 = *(arg_20h);
0x004061b8 jal 0x40a250 | sym_aws_iot_mqtt_disconnect ();
0x004061bc nop |
0x004061c0 lui v0, 3 | v0 = 30000;
0x004061c4 ori a0, v0, 0xd40 | a0 = 0x30d40;
0x004061c8 jal 0x41d040 | fcn_0041d040 ();
0x004061cc nop |
0x004061d0 lw a0, 0x20(fp) | a0 = *(arg_20h);
0x004061d4 move a1, zero | a1 = 0;
0x004061d8 jal 0x409fe4 | sym_aws_iot_mqtt_connect ();
0x004061dc nop |
0x004061e0 lw a0, 0x20(fp) | a0 = *(arg_20h);
0x004061e4 jal 0x40af5c | sym_aws_iot_mqtt_resubscribe ();
0x004061e8 nop |
0x004061ec lui v0, 0x42 | v0 = 0x420000;
| /* str.__s__n */
0x004061f0 addiu a0, v0, -0x4610 | a0 = "[%s]\n";
0x004061f4 lui v0, 0x42 | v0 = 0x420000;
| /* obj.__func__.7454 */
0x004061f8 addiu a1, v0, -0x45a0 | a1 = "aws_iot_manual_reconnect";
0x004061fc jal 0x405dbc | sym_log_printf ()
0x00406200 nop |
0x00406204 move sp, fp |
0x00406208 lw ra, 0x1c(sp) | ra = *(var_1ch);
0x0040620c lw fp, 0x18(sp) | fp = *(var_18h);
0x00406210 addiu sp, sp, 0x20 |
0x00406214 jr ra | return v0;
0x00406218 nop |
| }
; assembly | /* r2dec pseudo code output */
| /* /logs/firmware/unblob_extracted/firmware_extract/6225984-11075644.jffs2_new_extract/bin/hl_client @ 0x404d00 */
| #include <stdint.h>
|
; (fcn) sym.aws_iot_subscribe_publish () | void aws_iot_subscribe_publish () {
0x00404d00 addiu sp, sp, -0x438 |
0x00404d04 sw ra, 0x434(sp) | *(var_434h) = ra;
0x00404d08 sw fp, 0x430(sp) | *(var_430h) = fp;
0x00404d0c move fp, sp | fp = sp;
0x00404d10 sw a0, 0x438(fp) | *(arg_438h) = a0;
0x00404d14 sw zero, 0x24(fp) | *(var_24h) = 0;
0x00404d18 sw zero, 0x20(fp) | *(var_20h) = 0;
0x00404d1c addiu v1, fp, 0x2c | v1 = fp + 0x2c;
0x00404d20 addiu v0, zero, 0x400 | v0 = 0x400;
0x00404d24 move a0, v1 | a0 = v1;
0x00404d28 move a1, zero | a1 = 0;
0x00404d2c move a2, v0 | a2 = v0;
0x00404d30 jal 0x41d300 | fcn_0041d300 ();
0x00404d34 nop |
0x00404d38 addiu v0, fp, 0x2c | v0 = fp + 0x2c;
0x00404d3c sw v0, 0x28(fp) | *(var_28h) = v0;
0x00404d40 lui v0, 0x43 | v0 = 0x430000;
0x00404d44 lw v1, -0x1de4(v0) | v1 = *((v0 - 1913));
0x00404d48 addiu v0, zero, 1 | v0 = 1;
| if (v1 != v0) {
0x00404d4c bne v1, v0, 0x4050d0 | goto label_0;
| }
0x00404d50 nop |
0x00404d54 lw a0, 0x438(fp) | a0 = *(arg_438h);
0x00404d58 jal 0x4047bc | sym_client_ParamInit ();
0x00404d5c nop |
0x00404d60 sw v0, 0x24(fp) | *(var_24h) = v0;
0x00404d64 lw v0, 0x24(fp) | v0 = *(var_24h);
| if (v0 != 0) {
0x00404d68 beqz v0, 0x404df0 |
0x00404d6c nop |
0x00404d70 addiu v0, fp, 0x2c | v0 = fp + 0x2c;
0x00404d74 move a0, v0 | a0 = v0;
0x00404d78 move a1, zero | a1 = 0;
0x00404d7c addiu a2, zero, 0x400 | a2 = 0x400;
0x00404d80 jal 0x41d300 | fcn_0041d300 ();
0x00404d84 nop |
0x00404d88 lw v0, 0x28(fp) | v0 = *(var_28h);
0x00404d8c addiu v1, zero, 0x4b0 | v1 = 0x4b0;
0x00404d90 swl v1, 3(v0) | __asm ("swl v1, 3(v0)");
0x00404d94 swr v1, (v0) | __asm ("swr v1, (v0)");
0x00404d98 lw v0, 0x28(fp) | v0 = *(var_28h);
0x00404d9c addiu v1, zero, 0x4b2 | v1 = 0x4b2;
0x00404da0 swl v1, 7(v0) | __asm ("swl v1, 7(v0)");
0x00404da4 swr v1, 4(v0) | __asm ("swr v1, 4(v0)");
0x00404da8 lw v0, 0x28(fp) | v0 = *(var_28h);
0x00404dac addiu v0, v0, 8 | v0 += 8;
0x00404db0 move a0, v0 | a0 = v0;
0x00404db4 lui v0, 0x42 | v0 = 0x420000;
| /* esilref: '&d' */
0x00404db8 addiu a1, v0, -0x49dc | a1 = 0x41b624;
0x00404dbc lw a2, 0x24(fp) | a2 = *(var_24h);
0x00404dc0 jal 0x41d370 | fcn_0041d370 ();
0x00404dc4 nop |
0x00404dc8 lui v0, 0x43 | v0 = 0x430000;
0x00404dcc lw v1, -0x1e80(v0) | v1 = *((v0 - 1952));
0x00404dd0 addiu v0, fp, 0x2c | v0 = fp + 0x2c;
0x00404dd4 move a0, v1 | a0 = v1;
0x00404dd8 move a1, v0 | a1 = v0;
0x00404ddc addiu a2, zero, 0xc | a2 = 0xc;
0x00404de0 jal 0x4184e8 | sym_msg_queue_snd ();
0x00404de4 nop |
0x00404de8 b 0x4050d0 | goto label_0;
0x00404dec nop |
| }
0x00404df0 lw a0, 0x438(fp) | a0 = *(arg_438h);
0x00404df4 lui v0, 0x43 | v0 = 0x430000;
| /* obj.g_stIotCert */
0x00404df8 addiu a1, v0, -0xb98 | a1 = g_stIotCert;
0x00404dfc jal 0x404988 | sym_clientMqttConnect ();
0x00404e00 nop |
0x00404e04 sw v0, 0x24(fp) | *(var_24h) = v0;
0x00404e08 lw v0, 0x24(fp) | v0 = *(var_24h);
| if (v0 != 0) {
0x00404e0c beqz v0, 0x404e9c |
0x00404e10 nop |
0x00404e14 addiu v0, fp, 0x2c | v0 = fp + 0x2c;
0x00404e18 move a0, v0 | a0 = v0;
0x00404e1c move a1, zero | a1 = 0;
0x00404e20 addiu a2, zero, 0x400 | a2 = 0x400;
0x00404e24 jal 0x41d300 | fcn_0041d300 ();
0x00404e28 nop |
0x00404e2c lw v0, 0x28(fp) | v0 = *(var_28h);
0x00404e30 addiu v1, zero, 0x4b0 | v1 = 0x4b0;
0x00404e34 swl v1, 3(v0) | __asm ("swl v1, 3(v0)");
0x00404e38 swr v1, (v0) | __asm ("swr v1, (v0)");
0x00404e3c lw v0, 0x28(fp) | v0 = *(var_28h);
0x00404e40 addiu v1, zero, 0x4b2 | v1 = 0x4b2;
0x00404e44 swl v1, 7(v0) | __asm ("swl v1, 7(v0)");
0x00404e48 swr v1, 4(v0) | __asm ("swr v1, 4(v0)");
0x00404e4c lw v0, 0x28(fp) | v0 = *(var_28h);
0x00404e50 addiu v0, v0, 8 | v0 += 8;
0x00404e54 move a0, v0 | a0 = v0;
0x00404e58 lui v0, 0x42 | v0 = 0x420000;
| /* esilref: '&d' */
0x00404e5c addiu a1, v0, -0x49dc | a1 = 0x41b624;
0x00404e60 lw a2, 0x24(fp) | a2 = *(var_24h);
0x00404e64 jal 0x41d370 | fcn_0041d370 ();
0x00404e68 nop |
0x00404e6c lui v0, 0x43 | v0 = 0x430000;
0x00404e70 lw v1, -0x1e80(v0) | v1 = *((v0 - 1952));
0x00404e74 addiu v0, fp, 0x2c | v0 = fp + 0x2c;
0x00404e78 move a0, v1 | a0 = v1;
0x00404e7c move a1, v0 | a1 = v0;
0x00404e80 addiu a2, zero, 0xc | a2 = 0xc;
0x00404e84 jal 0x4184e8 | sym_msg_queue_snd ();
0x00404e88 nop |
0x00404e8c lui v0, 0x43 | v0 = 0x430000;
0x00404e90 sw zero, -0x1de4(v0) | *((v0 - 1913)) = 0;
0x00404e94 b 0x4050d0 | goto label_0;
0x00404e98 nop |
| }
0x00404e9c lw a0, 0x438(fp) | a0 = *(arg_438h);
0x00404ea0 addiu a1, zero, 1 | a1 = 1;
0x00404ea4 jal 0x4101c8 | sym_aws_iot_mqtt_autoreconnect_set_status ();
0x00404ea8 nop |
0x00404eac lui v0, 0x42 | v0 = 0x420000;
| /* str.subscribe.......... */
0x00404eb0 addiu a0, v0, -0x49d8 | a0 = "subscribe..........";
0x00404eb4 jal 0x41d0d0 | fcn_0041d0d0 ();
0x00404eb8 nop |
0x00404ebc b 0x4050c0 | goto label_1;
0x00404ec0 nop |
| do {
0x00404ec4 lui v0, 0x43 | v0 = 0x430000;
| /* obj.g_subTopic */
0x00404ec8 addiu a0, v0, -0xcb0 | a0 = g_subTopic;
0x00404ecc jal 0x41d460 | fcn_0041d460 ();
0x00404ed0 nop |
0x00404ed4 andi v0, v0, 0xffff | v0 &= 0xffff;
0x00404ed8 lui v1, 0x40 | v1 = msgarrv;
| /* sym.msgarrv */
0x00404edc addiu v1, v1, 0x3a30 |
0x00404ee0 sw v1, 0x10(sp) | *(var_10h) = v1;
0x00404ee4 sw zero, 0x14(sp) | *(var_14h) = 0;
0x00404ee8 lw a0, 0x438(fp) | a0 = *(arg_438h);
0x00404eec lui v1, 0x43 | v1 = 0x430000;
| /* obj.g_subTopic */
0x00404ef0 addiu a1, v1, -0xcb0 | a1 = g_subTopic;
0x00404ef4 move a2, v0 | a2 = v0;
0x00404ef8 addiu a3, zero, 1 | a3 = 1;
0x00404efc jal 0x40ab78 | sym_aws_iot_mqtt_subscribe ();
0x00404f00 nop |
0x00404f04 sw v0, 0x24(fp) | *(var_24h) = v0;
0x00404f08 lui v0, 0x43 | v0 = 0x430000;
| /* obj.delta_topic */
0x00404f0c addiu a0, v0, -0x1ddc | a0 = delta_topic;
0x00404f10 jal 0x41d460 | fcn_0041d460 ();
0x00404f14 nop |
0x00404f18 andi v0, v0, 0xffff | v0 &= 0xffff;
0x00404f1c lui v1, 0x40 | v1 = delta_handler;
| /* sym.delta_handler */
0x00404f20 addiu v1, v1, 0x26d4 |
0x00404f24 sw v1, 0x10(sp) | *(var_10h) = v1;
0x00404f28 sw zero, 0x14(sp) | *(var_14h) = 0;
0x00404f2c lw a0, 0x438(fp) | a0 = *(arg_438h);
0x00404f30 lui v1, 0x43 | v1 = 0x430000;
| /* obj.delta_topic */
0x00404f34 addiu a1, v1, -0x1ddc | a1 = delta_topic;
0x00404f38 move a2, v0 | a2 = v0;
0x00404f3c addiu a3, zero, 1 | a3 = 1;
0x00404f40 jal 0x40ab78 | sym_aws_iot_mqtt_subscribe ();
0x00404f44 nop |
0x00404f48 lui v0, 0x43 | v0 = 0x430000;
| /* obj.get_shadow_topic */
0x00404f4c addiu a0, v0, -0x1d5c | a0 = get_shadow_topic;
0x00404f50 jal 0x41d460 | fcn_0041d460 ();
0x00404f54 nop |
0x00404f58 andi v0, v0, 0xffff | v0 &= 0xffff;
0x00404f5c lui v1, 0x40 | v1 = get_shadow_handler;
| /* sym.get_shadow_handler */
0x00404f60 addiu v1, v1, 0x3084 |
0x00404f64 sw v1, 0x10(sp) | *(var_10h) = v1;
0x00404f68 sw zero, 0x14(sp) | *(var_14h) = 0;
0x00404f6c lw a0, 0x438(fp) | a0 = *(arg_438h);
0x00404f70 lui v1, 0x43 | v1 = 0x430000;
| /* obj.get_shadow_topic */
0x00404f74 addiu a1, v1, -0x1d5c | a1 = get_shadow_topic;
0x00404f78 move a2, v0 | a2 = v0;
0x00404f7c addiu a3, zero, 1 | a3 = 1;
0x00404f80 jal 0x40ab78 | sym_aws_iot_mqtt_subscribe ();
0x00404f84 nop |
0x00404f88 lui v0, 3 | v0 = 30000;
0x00404f8c ori a0, v0, 0xd40 | a0 = 0x30d40;
0x00404f90 jal 0x41d040 | fcn_0041d040 ();
0x00404f94 nop |
0x00404f98 lw v0, 0x24(fp) | v0 = *(var_24h);
| if (v0 == 0) {
0x00404f9c bnez v0, 0x40506c |
0x00404fa0 nop |
0x00404fa4 lw a0, 0x438(fp) | a0 = *(arg_438h);
0x00404fa8 jal 0x40621c | sym_get_shadow_pre_handler ();
0x00404fac nop |
0x00404fb0 addiu v0, fp, 0x2c | v0 = fp + 0x2c;
0x00404fb4 move a0, v0 | a0 = v0;
0x00404fb8 move a1, zero | a1 = 0;
0x00404fbc addiu a2, zero, 0x400 | a2 = 0x400;
0x00404fc0 jal 0x41d300 | fcn_0041d300 ();
0x00404fc4 nop |
0x00404fc8 lw v0, 0x28(fp) | v0 = *(var_28h);
0x00404fcc addiu v1, zero, 0x4b0 | v1 = 0x4b0;
0x00404fd0 swl v1, 3(v0) | __asm ("swl v1, 3(v0)");
0x00404fd4 swr v1, (v0) | __asm ("swr v1, (v0)");
0x00404fd8 lw v0, 0x28(fp) | v0 = *(var_28h);
0x00404fdc addiu v1, zero, 0x4b1 | v1 = 0x4b1;
0x00404fe0 swl v1, 7(v0) | __asm ("swl v1, 7(v0)");
0x00404fe4 swr v1, 4(v0) | __asm ("swr v1, 4(v0)");
0x00404fe8 lui v0, 0x43 | v0 = 0x430000;
0x00404fec lw v1, -0x1e80(v0) | v1 = *((v0 - 1952));
0x00404ff0 addiu v0, fp, 0x2c | v0 = fp + 0x2c;
0x00404ff4 move a0, v1 | a0 = v1;
0x00404ff8 move a1, v0 | a1 = v0;
0x00404ffc addiu a2, zero, 0xc | a2 = 0xc;
0x00405000 jal 0x4184e8 | sym_msg_queue_snd ();
0x00405004 nop |
0x00405008 move v1, v0 | v1 = v0;
0x0040500c addiu v0, zero, -1 | v0 = -1;
| if (v1 == v0) {
0x00405010 beq v1, v0, 0x4050c0 | goto label_1;
| }
0x00405014 nop |
0x00405018 lui v0, 0x42 | v0 = 0x420000;
| /* str.subscribe_success */
0x0040501c addiu a0, v0, -0x49c4 | a0 = "subscribe success";
0x00405020 jal 0x41d0d0 | fcn_0041d0d0 ();
0x00405024 nop |
0x00405028 lui v0, 0x42 | v0 = 0x420000;
| /* str._IOT_subscribe_success__n */
0x0040502c addiu a0, v0, -0x49b0 | a0 = "[IOT]subscribe success \n";
0x00405030 jal 0x405dbc | sym_log_printf ()
0x00405034 nop |
0x00405038 lui v0, 0x43 | v0 = 0x430000;
0x0040503c addiu v1, zero, 2 | v1 = 2;
0x00405040 sw v1, -0x1de4(v0) | *((v0 - 1913)) = v1;
0x00405044 lui v0, 0x43 | v0 = 0x430000;
0x00405048 addiu v1, zero, 1 | v1 = 1;
0x0040504c sw v1, -0x1de0(v0) | *((v0 - 1912)) = v1;
0x00405050 addiu a0, zero, 0x70d | a0 = 0x70d;
0x00405054 move a1, zero | a1 = 0;
0x00405058 move a2, zero | a2 = 0;
0x0040505c jal 0x402118 | sym_send_msg_to_dongle_cloud ();
0x00405060 nop |
0x00405064 b 0x4050d0 | goto label_0;
0x00405068 nop |
| }
0x0040506c lw v0, 0x24(fp) | v0 = *(var_24h);
| if (v0 != 0) {
0x00405070 beqz v0, 0x4050a0 |
0x00405074 nop |
0x00405078 lw v0, 0x20(fp) | v0 = *(var_20h);
0x0040507c slti v0, v0, 2 | v0 = (v0 < 2) ? 1 : 0;
| if (v0 != 0) {
0x00405080 bnez v0, 0x4050a0 | goto label_2;
| }
0x00405084 nop |
0x00405088 lui v0, 0x42 | v0 = 0x420000;
| /* str._IOT__subscribe_failed_n */
0x0040508c addiu a0, v0, -0x4994 | a0 = "[IOT] subscribe failed\n";
0x00405090 jal 0x405dbc | sym_log_printf ()
0x00405094 nop |
0x00405098 b 0x4050d0 | goto label_0;
0x0040509c nop |
| }
| label_2:
0x004050a0 lui v0, 0x42 | v0 = 0x420000;
| /* str.sub_error____return_error_value_is__d_r_n */
0x004050a4 addiu a0, v0, -0x497c | a0 = "sub error!!! return error value is %d\r\n";
0x004050a8 lw a1, 0x24(fp) | a1 = *(var_24h);
0x004050ac jal 0x41cfc0 | fcn_0041cfc0 ();
0x004050b0 nop |
0x004050b4 lw v0, 0x20(fp) | v0 = *(var_20h);
0x004050b8 addiu v0, v0, 1 | v0++;
0x004050bc sw v0, 0x20(fp) | *(var_20h) = v0;
| label_1:
0x004050c0 lw v0, 0x20(fp) | v0 = *(var_20h);
0x004050c4 slti v0, v0, 3 | v0 = (v0 < 3) ? 1 : 0;
0x004050c8 bnez v0, 0x404ec4 |
| } while (v0 != 0);
0x004050cc nop |
| label_0:
0x004050d0 move sp, fp |
0x004050d4 lw ra, 0x434(sp) | ra = *(var_434h);
0x004050d8 lw fp, 0x430(sp) | fp = *(var_430h);
0x004050dc addiu sp, sp, 0x438 |
0x004050e0 jr ra | return v0;
0x004050e4 nop |
| }
; assembly | /* r2dec pseudo code output */
| /* /logs/firmware/unblob_extracted/firmware_extract/6225984-11075644.jffs2_new_extract/bin/hl_client @ 0x404b94 */
| #include <stdint.h>
|
; (fcn) sym.aws_iot_yield_func () | void aws_iot_yield_func () {
0x00404b94 addiu sp, sp, -0x428 |
0x00404b98 sw ra, 0x424(sp) | *(var_424h) = ra;
0x00404b9c sw fp, 0x420(sp) | *(var_420h) = fp;
0x00404ba0 move fp, sp | fp = sp;
0x00404ba4 sw a0, 0x428(fp) | *(arg_428h) = a0;
0x00404ba8 sw zero, 0x18(fp) | *(var_18h) = 0;
0x00404bac addiu v1, fp, 0x20 | v1 = fp + 0x20;
0x00404bb0 addiu v0, zero, 0x400 | v0 = 0x400;
0x00404bb4 move a0, v1 | a0 = v1;
0x00404bb8 move a1, zero | a1 = 0;
0x00404bbc move a2, v0 | a2 = v0;
0x00404bc0 jal 0x41d300 | fcn_0041d300 ();
0x00404bc4 nop |
0x00404bc8 addiu v0, fp, 0x20 | v0 = fp + 0x20;
0x00404bcc sw v0, 0x1c(fp) | *(var_1ch) = v0;
0x00404bd0 lui v0, 0x43 | v0 = 0x430000;
0x00404bd4 lw v1, -0x1de4(v0) | v1 = *((v0 - 1913));
0x00404bd8 addiu v0, zero, 2 | v0 = 2;
| if (v1 == v0) {
0x00404bdc bne v1, v0, 0x404ce8 |
0x00404be0 nop |
0x00404be4 lw a0, 0x428(fp) | a0 = *(arg_428h);
0x00404be8 addiu a1, zero, 0x3e8 | a1 = 0x3e8;
0x00404bec jal 0x40e188 | sym_aws_iot_mqtt_yield ();
0x00404bf0 nop |
0x00404bf4 sw v0, 0x18(fp) | *(var_18h) = v0;
0x00404bf8 lw v1, 0x18(fp) | v1 = *(var_18h);
0x00404bfc addiu v0, zero, 3 | v0 = 3;
| if (v1 == v0) {
0x00404c00 bne v1, v0, 0x404cbc |
0x00404c04 nop |
0x00404c08 lui v0, 0x42 | v0 = 0x420000;
| /* str.iot_connect_success_____ */
0x00404c0c addiu a0, v0, -0x4a58 | a0 = "iot connect success!!!!!";
0x00404c10 jal 0x41d0d0 | fcn_0041d0d0 ();
0x00404c14 nop |
0x00404c18 lui v0, 0x42 | v0 = 0x420000;
| /* str._IOT_IOT_DEV_RECONNECT_OK_n */
0x00404c1c addiu a0, v0, -0x4a3c | a0 = "[IOT]IOT_DEV_RECONNECT_OK\n";
0x00404c20 jal 0x405dbc | sym_log_printf ()
0x00404c24 nop |
0x00404c28 lw a0, 0x428(fp) | a0 = *(arg_428h);
0x00404c2c jal 0x40621c | sym_get_shadow_pre_handler ();
0x00404c30 nop |
0x00404c34 lui v0, 1 | v0 = 10000;
0x00404c38 ori a0, v0, 0x86a0 | a0 = 0x186a0;
0x00404c3c jal 0x41d040 | fcn_0041d040 ();
0x00404c40 nop |
0x00404c44 lw a0, 0x428(fp) | a0 = *(arg_428h);
0x00404c48 jal 0x405fd0 | sym_upload_resend_list_again ();
0x00404c4c nop |
0x00404c50 addiu v0, fp, 0x20 | v0 = fp + 0x20;
0x00404c54 move a0, v0 | a0 = v0;
0x00404c58 move a1, zero | a1 = 0;
0x00404c5c addiu a2, zero, 0x400 | a2 = 0x400;
0x00404c60 jal 0x41d300 | fcn_0041d300 ();
0x00404c64 nop |
0x00404c68 lw v0, 0x1c(fp) | v0 = *(var_1ch);
0x00404c6c addiu v1, zero, 0x4b0 | v1 = 0x4b0;
0x00404c70 swl v1, 3(v0) | __asm ("swl v1, 3(v0)");
0x00404c74 swr v1, (v0) | __asm ("swr v1, (v0)");
0x00404c78 lw v0, 0x1c(fp) | v0 = *(var_1ch);
0x00404c7c addiu v1, zero, 0x4e1 | v1 = 0x4e1;
0x00404c80 swl v1, 7(v0) | __asm ("swl v1, 7(v0)");
0x00404c84 swr v1, 4(v0) | __asm ("swr v1, 4(v0)");
0x00404c88 lui v0, 0x43 | v0 = 0x430000;
0x00404c8c lw v1, -0x1e80(v0) | v1 = *((v0 - 1952));
0x00404c90 addiu v0, fp, 0x20 | v0 = fp + 0x20;
0x00404c94 move a0, v1 | a0 = v1;
0x00404c98 move a1, v0 | a1 = v0;
0x00404c9c addiu a2, zero, 0xc | a2 = 0xc;
0x00404ca0 jal 0x4184e8 | sym_msg_queue_snd ();
0x00404ca4 nop |
0x00404ca8 addiu a0, zero, 0x70e | a0 = 0x70e;
0x00404cac move a1, zero | a1 = 0;
0x00404cb0 move a2, zero | a2 = 0;
0x00404cb4 jal 0x402118 | sym_send_msg_to_dongle_cloud ();
0x00404cb8 nop |
| }
0x00404cbc lw v1, 0x18(fp) | v1 = *(var_18h);
0x00404cc0 addiu v0, zero, -0xe | v0 = -0xe;
| if (v1 != v0) {
0x00404cc4 bne v1, v0, 0x404ce8 | goto label_0;
| }
0x00404cc8 nop |
0x00404ccc lui v0, 0x42 | v0 = 0x420000;
| /* str.NETWORK_RECONNECT_TIMED_OUT_ERROR_NETWORK_RECONNECT_TIMED_OUT_ERROR */
0x00404cd0 addiu a0, v0, -0x4a20 | a0 = "NETWORK_RECONNECT_TIMED_OUT_ERROR NETWORK_RECONNECT_TIMED_OUT_ERROR";
0x00404cd4 jal 0x41d0d0 | fcn_0041d0d0 ();
0x00404cd8 nop |
0x00404cdc lui v0, 0x43 | v0 = 0x430000;
0x00404ce0 addiu v1, zero, 1 | v1 = 1;
0x00404ce4 sw v1, -0x1de4(v0) | *((v0 - 1913)) = v1;
| }
| label_0:
0x00404ce8 move sp, fp |
0x00404cec lw ra, 0x424(sp) | ra = *(var_424h);
0x00404cf0 lw fp, 0x420(sp) | fp = *(var_420h);
0x00404cf4 addiu sp, sp, 0x428 |
0x00404cf8 jr ra | return v1;
0x00404cfc nop |
| }
; assembly | /* r2dec pseudo code output */
| /* /logs/firmware/unblob_extracted/firmware_extract/6225984-11075644.jffs2_new_extract/bin/hl_client @ 0x4026d4 */
| #include <stdint.h>
|
; (fcn) sym.delta_handler () | void delta_handler () {
0x004026d4 addiu sp, sp, -0x188 |
0x004026d8 sw ra, 0x184(sp) | *(var_184h) = ra;
0x004026dc sw fp, 0x180(sp) | *(var_180h) = fp;
0x004026e0 sw s0, 0x17c(sp) | *(var_17ch) = s0;
0x004026e4 move fp, sp | fp = sp;
0x004026e8 sw a0, 0x188(fp) | *(arg_188h) = a0;
0x004026ec sw a1, 0x18c(fp) | *(arg_18ch) = a1;
0x004026f0 move v0, a2 | v0 = a2;
0x004026f4 sw a3, 0x194(fp) | *(arg_194h) = a3;
0x004026f8 sh v0, 0x190(fp) | *(arg_190h) = v0;
0x004026fc lw v0, 0x194(fp) | v0 = *(arg_194h);
0x00402700 lw v0, 8(v0) | v0 = *((v0 + 2));
0x00402704 lui v1, 0x42 | v1 = 0x420000;
| /* str._s:_message_arrived:__s_n */
0x00402708 addiu a0, v1, -0x5798 | a0 = "%s: message arrived: %s\n";
0x0040270c lui v1, 0x42 | v1 = 0x420000;
| /* obj.__func__.7250 */
0x00402710 addiu a1, v1, -0x4584 | a1 = "delta_handler";
0x00402714 move a2, v0 | a2 = v0;
0x00402718 jal 0x41cfc0 | fcn_0041cfc0 ();
0x0040271c nop |
0x00402720 lw v0, 0x194(fp) | v0 = *(arg_194h);
0x00402724 lw v0, 8(v0) | v0 = *((v0 + 2));
0x00402728 lui v1, 0x42 | v1 = 0x420000;
| /* str._s:_message_arrived:__s_n */
0x0040272c addiu a0, v1, -0x5798 | a0 = "%s: message arrived: %s\n";
0x00402730 lui v1, 0x42 | v1 = 0x420000;
| /* obj.__func__.7250 */
0x00402734 addiu a1, v1, -0x4584 | a1 = "delta_handler";
0x00402738 move a2, v0 | a2 = v0;
0x0040273c jal 0x405dbc | sym_log_printf ()
0x00402740 nop |
0x00402744 sw zero, 0x30(fp) | *(var_30h) = 0;
0x00402748 sw zero, 0x34(fp) | *(var_34h) = 0;
0x0040274c sw zero, 0x38(fp) | *(var_38h) = 0;
0x00402750 sw zero, 0x3c(fp) | *(var_3ch) = 0;
0x00402754 sw zero, 0x40(fp) | *(var_40h) = 0;
0x00402758 sw zero, 0x44(fp) | *(var_44h) = 0;
0x0040275c addiu v1, fp, 0x58 | v1 = fp + 0x58;
0x00402760 addiu v0, zero, 0x80 | v0 = 0x80;
0x00402764 move a0, v1 | a0 = v1;
0x00402768 move a1, zero | a1 = 0;
0x0040276c move a2, v0 | a2 = v0;
0x00402770 jal 0x41d300 | fcn_0041d300 ();
0x00402774 nop |
0x00402778 addiu v1, fp, 0xd8 | v1 = fp + 0xd8;
0x0040277c addiu v0, zero, 0x80 | v0 = 0x80;
0x00402780 move a0, v1 | a0 = v1;
0x00402784 move a1, zero | a1 = 0;
0x00402788 move a2, v0 | a2 = v0;
0x0040278c jal 0x41d300 | fcn_0041d300 ();
0x00402790 nop |
0x00402794 lw v0, 0x194(fp) | v0 = *(arg_194h);
0x00402798 lw v0, 8(v0) | v0 = *((v0 + 2));
0x0040279c move a0, v0 | a0 = v0;
0x004027a0 jal 0x414e34 | sym_cJSON_Parse ();
0x004027a4 nop |
0x004027a8 sw v0, 0x30(fp) | *(var_30h) = v0;
0x004027ac lw v0, 0x30(fp) | v0 = *(var_30h);
| if (v0 == 0) {
0x004027b0 bnez v0, 0x4027d0 |
0x004027b4 nop |
0x004027b8 lui v0, 0x42 | v0 = 0x420000;
| /* str.get_json_error_____ */
0x004027bc addiu a0, v0, -0x577c | a0 = "get json error!!!!!";
0x004027c0 jal 0x41d0d0 | fcn_0041d0d0 ();
0x004027c4 nop |
0x004027c8 b 0x403068 | goto label_0;
0x004027cc nop |
| }
0x004027d0 lw a0, 0x30(fp) | a0 = *(var_30h);
0x004027d4 lui v0, 0x42 | v0 = 0x420000;
| /* str.state */
0x004027d8 addiu a1, v0, -0x5768 | a1 = "state";
0x004027dc jal 0x416d98 | sym_cJSON_GetObjectItem ();
0x004027e0 nop |
0x004027e4 sw v0, 0x34(fp) | *(var_34h) = v0;
0x004027e8 lw v0, 0x34(fp) | v0 = *(var_34h);
| if (v0 == 0) {
0x004027ec bnez v0, 0x402818 |
0x004027f0 nop |
0x004027f4 lui v0, 0x42 | v0 = 0x420000;
| /* str.do_no_have_state_ */
0x004027f8 addiu a0, v0, -0x5760 | a0 = "do no have state ";
0x004027fc jal 0x41d0d0 | fcn_0041d0d0 ();
0x00402800 nop |
0x00402804 lw a0, 0x30(fp) | a0 = *(var_30h);
0x00402808 jal 0x412f20 | sym_cJSON_Delete ();
0x0040280c nop |
0x00402810 b 0x403068 | goto label_0;
0x00402814 nop |
| }
0x00402818 lw a0, 0x34(fp) | a0 = *(var_34h);
0x0040281c lui v0, 0x42 | v0 = 0x420000;
| /* esilref: 'P7' */
0x00402820 addiu a1, v0, -0x574c | a1 = 0x41a8b4;
0x00402824 jal 0x416d98 | sym_cJSON_GetObjectItem ();
0x00402828 nop |
0x0040282c sw v0, 0x38(fp) | *(var_38h) = v0;
0x00402830 lw v0, 0x38(fp) | v0 = *(var_38h);
| if (v0 != 0) {
0x00402834 beqz v0, 0x4028dc |
0x00402838 nop |
0x0040283c lw v0, 0x38(fp) | v0 = *(var_38h);
0x00402840 lw v0, 0x10(v0) | v0 = *((v0 + 4));
0x00402844 lui v1, 0x42 | v1 = 0x420000;
| /* str.has_P7_:_value__s__n */
0x00402848 addiu a0, v1, -0x5748 | a0 = "has P7 : value[%s]\n";
0x0040284c move a1, v0 | a1 = v0;
0x00402850 jal 0x41cfc0 | fcn_0041cfc0 ();
0x00402854 nop |
0x00402858 lw v0, 0x38(fp) | v0 = *(var_38h);
0x0040285c lw v0, 0x10(v0) | v0 = *((v0 + 4));
0x00402860 addiu a0, zero, 0x4df | a0 = 0x4df;
0x00402864 move a1, v0 | a1 = v0;
0x00402868 jal 0x402004 | sym_send_command_s2m ();
0x0040286c nop |
0x00402870 addiu v0, fp, 0xd8 | v0 = fp + 0xd8;
0x00402874 move a0, v0 | a0 = v0;
0x00402878 jal 0x41d460 | fcn_0041d460 ();
0x0040287c nop |
0x00402880 addiu v1, fp, 0xd8 | v1 = fp + 0xd8;
0x00402884 addu s0, v1, v0 | s0 = v1 + v0;
0x00402888 addiu v0, fp, 0xd8 | v0 = fp + 0xd8;
0x0040288c move a0, v0 | a0 = v0;
0x00402890 jal 0x41d460 | fcn_0041d460 ();
0x00402894 nop |
0x00402898 addiu v1, zero, 0x80 | v1 = 0x80;
0x0040289c subu v1, v1, v0 | __asm ("subu v1, v1, v0");
0x004028a0 lw v0, 0x38(fp) | v0 = *(var_38h);
0x004028a4 lw v0, 0x10(v0) | v0 = *((v0 + 4));
0x004028a8 move a0, s0 | a0 = s0;
0x004028ac move a1, v1 | a1 = v1;
0x004028b0 lui v1, 0x42 | v1 = 0x420000;
| /* str._P7_:__s_ */
0x004028b4 addiu a2, v1, -0x5734 | a2 = "\"P7\":\"%s\";
0x004028b8 move a3, v0 | a3 = v0;
0x004028bc jal 0x41cff0 | fcn_0041cff0 ();
0x004028c0 nop |
0x004028c4 addiu v0, fp, 0xd8 | v0 = fp + 0xd8;
0x004028c8 lui v1, 0x42 | v1 = 0x420000;
| /* str.P7_ready_report:___s___n */
0x004028cc addiu a0, v1, -0x5728 | a0 = "P7 ready report: [%s] \n";
0x004028d0 move a1, v0 | a1 = v0;
0x004028d4 jal 0x41cfc0 | fcn_0041cfc0 ();
0x004028d8 nop |
| }
0x004028dc lw a0, 0x34(fp) | a0 = *(var_34h);
0x004028e0 lui v0, 0x42 | v0 = 0x420000;
| /* esilref: 'P11' */
0x004028e4 addiu a1, v0, -0x5710 | a1 = 0x41a8f0;
0x004028e8 jal 0x416d98 | sym_cJSON_GetObjectItem ();
0x004028ec nop |
0x004028f0 sw v0, 0x3c(fp) | *(var_3ch) = v0;
0x004028f4 lw v0, 0x3c(fp) | v0 = *(var_3ch);
| if (v0 != 0) {
0x004028f8 beqz v0, 0x402d5c |
0x004028fc nop |
0x00402900 sw zero, 0x48(fp) | *(var_48h) = 0;
0x00402904 sw zero, 0x4c(fp) | *(var_4ch) = 0;
0x00402908 sw zero, 0x20(fp) | *(var_20h) = 0;
0x0040290c sw zero, 0x24(fp) | *(var_24h) = 0;
0x00402910 lw a0, 0x3c(fp) | a0 = *(var_3ch);
0x00402914 lui v0, 0x42 | v0 = 0x420000;
| /* str.offset */
0x00402918 addiu a1, v0, -0x570c | a1 = "offset";
0x0040291c jal 0x416d98 | sym_cJSON_GetObjectItem ();
0x00402920 nop |
0x00402924 sw v0, 0x48(fp) | *(var_48h) = v0;
0x00402928 lw v0, 0x48(fp) | v0 = *(var_48h);
| if (v0 == 0) {
0x0040292c bnez v0, 0x40295c |
0x00402930 nop |
0x00402934 lui v0, 0x42 | v0 = 0x420000;
| /* str.P11_do_not_have_offset_111_ */
0x00402938 addiu a0, v0, -0x5704 | a0 = "P11 do not have offset 111 ";
0x0040293c jal 0x41d0d0 | fcn_0041d0d0 ();
0x00402940 nop |
0x00402944 lui v0, 0x42 | v0 = 0x420000;
| /* str.P11_do_not_have_offset_111__n */
0x00402948 addiu a0, v0, -0x56e8 | a0 = "P11 do not have offset 111 \n";
0x0040294c jal 0x405dbc | sym_log_printf ()
0x00402950 nop |
0x00402954 addiu v0, zero, 1 | v0 = 1;
0x00402958 sw v0, 0x20(fp) | *(var_20h) = v0;
| }
0x0040295c lw a0, 0x3c(fp) | a0 = *(var_3ch);
0x00402960 lui v0, 0x42 | v0 = 0x420000;
| /* str.execute_ts */
0x00402964 addiu a1, v0, -0x56c8 | a1 = "execute_ts";
0x00402968 jal 0x416d98 | sym_cJSON_GetObjectItem ();
0x0040296c nop |
0x00402970 sw v0, 0x4c(fp) | *(var_4ch) = v0;
0x00402974 lw v0, 0x4c(fp) | v0 = *(var_4ch);
| if (v0 == 0) {
0x00402978 bnez v0, 0x4029a8 |
0x0040297c nop |
0x00402980 lui v0, 0x42 | v0 = 0x420000;
| /* str.P11_do_not_have_execute_ts_222_ */
0x00402984 addiu a0, v0, -0x56bc | a0 = "P11 do not have execute_ts 222 ";
0x00402988 jal 0x41d0d0 | fcn_0041d0d0 ();
0x0040298c nop |
0x00402990 lui v0, 0x42 | v0 = 0x420000;
| /* str.P11_do_not_have_execute_ts_222__n */
0x00402994 addiu a0, v0, -0x569c | a0 = "P11 do not have execute_ts 222 \n";
0x00402998 jal 0x405dbc | sym_log_printf ()
0x0040299c nop |
0x004029a0 addiu v0, zero, 1 | v0 = 1;
0x004029a4 sw v0, 0x24(fp) | *(var_24h) = v0;
| }
0x004029a8 lw v0, 0x20(fp) | v0 = *(var_20h);
| if (v0 != 0) {
0x004029ac beqz v0, 0x4029f4 |
0x004029b0 nop |
0x004029b4 lw v0, 0x24(fp) | v0 = *(var_24h);
| if (v0 == 0) {
0x004029b8 beqz v0, 0x4029f4 | goto label_1;
| }
0x004029bc nop |
0x004029c0 lw a0, 0x30(fp) | a0 = *(var_30h);
0x004029c4 jal 0x412f20 | sym_cJSON_Delete ();
0x004029c8 nop |
0x004029cc lui v0, 0x42 | v0 = 0x420000;
| /* str.P11_dont_have_offset_and_execute_ts_return_333 */
0x004029d0 addiu a0, v0, -0x5678 | a0 = "P11 dont have offset and execute_ts return 333";
0x004029d4 jal 0x41d0d0 | fcn_0041d0d0 ();
0x004029d8 nop |
0x004029dc lui v0, 0x42 | v0 = 0x420000;
| /* str.P11_dont_have_offset_and_execute_ts_return_333_n */
0x004029e0 addiu a0, v0, -0x5648 | a0 = "P11 dont have offset and execute_ts return 333\n";
0x004029e4 jal 0x405dbc | sym_log_printf ()
0x004029e8 nop |
0x004029ec b 0x403068 | goto label_0;
0x004029f0 nop |
| }
| label_1:
0x004029f4 sw zero, 0x158(fp) | *(var_158h) = 0;
0x004029f8 sw zero, 0x15c(fp) | *(var_15ch) = 0;
0x004029fc sw zero, 0x160(fp) | *(var_160h) = 0;
0x00402a00 sw zero, 0x164(fp) | *(var_164h) = 0;
0x00402a04 sw zero, 0x168(fp) | *(var_168h) = 0;
0x00402a08 sw zero, 0x16c(fp) | *(var_16ch) = 0;
0x00402a0c sw zero, 0x170(fp) | *(var_170h) = 0;
0x00402a10 sw zero, 0x174(fp) | *(var_174h) = 0;
0x00402a14 lw v0, 0x20(fp) | v0 = *(var_20h);
| if (v0 != 0) {
0x00402a18 beqz v0, 0x402b10 |
0x00402a1c nop |
0x00402a20 lw v0, 0x4c(fp) | v0 = *(var_4ch);
0x00402a24 lw v0, 0x10(v0) | v0 = *((v0 + 4));
0x00402a28 addiu v1, fp, 0x158 | v1 = fp + 0x158;
0x00402a2c move a0, v1 | a0 = v1;
0x00402a30 addiu a1, zero, 0x20 | a1 = 0x20;
0x00402a34 lui v1, 0x42 | v1 = 0x420000;
| /* esilref: '&s' */
0x00402a38 addiu a2, v1, -0x5618 | a2 = 0x41a9e8;
0x00402a3c move a3, v0 | a3 = v0;
0x00402a40 jal 0x41cff0 | fcn_0041cff0 ();
0x00402a44 nop |
0x00402a48 addiu v0, fp, 0xd8 | v0 = fp + 0xd8;
0x00402a4c lb v0, (v0) | v0 = *(v0);
| if (v0 != 0) {
0x00402a50 beqz v0, 0x402ab4 |
0x00402a54 nop |
0x00402a58 addiu v0, fp, 0xd8 | v0 = fp + 0xd8;
0x00402a5c move a0, v0 | a0 = v0;
0x00402a60 jal 0x41d460 | fcn_0041d460 ();
0x00402a64 nop |
0x00402a68 addiu v1, fp, 0xd8 | v1 = fp + 0xd8;
0x00402a6c addu s0, v1, v0 | s0 = v1 + v0;
0x00402a70 addiu v0, fp, 0xd8 | v0 = fp + 0xd8;
0x00402a74 move a0, v0 | a0 = v0;
0x00402a78 jal 0x41d460 | fcn_0041d460 ();
0x00402a7c nop |
0x00402a80 addiu v1, zero, 0x80 | v1 = 0x80;
0x00402a84 subu v1, v1, v0 | __asm ("subu v1, v1, v0");
0x00402a88 lw v0, 0x4c(fp) | v0 = *(var_4ch);
0x00402a8c lw v0, 0x10(v0) | v0 = *((v0 + 4));
0x00402a90 move a0, s0 | a0 = s0;
0x00402a94 move a1, v1 | a1 = v1;
0x00402a98 lui v1, 0x42 | v1 = 0x420000;
| /* str.___P11_:_execute_ts_:__s_ */
0x00402a9c addiu a2, v1, -0x5614 | a2 = " ,\"P11\":{\"execute_ts\":\"%s\"}";
0x00402aa0 move a3, v0 | a3 = v0;
0x00402aa4 jal 0x41cff0 | fcn_0041cff0 ();
0x00402aa8 nop |
0x00402aac b 0x402d18 | goto label_2;
0x00402ab0 nop |
| }
0x00402ab4 addiu v0, fp, 0xd8 | v0 = fp + 0xd8;
0x00402ab8 move a0, v0 | a0 = v0;
0x00402abc jal 0x41d460 | fcn_0041d460 ();
0x00402ac0 nop |
0x00402ac4 addiu v1, fp, 0xd8 | v1 = fp + 0xd8;
0x00402ac8 addu s0, v1, v0 | s0 = v1 + v0;
0x00402acc addiu v0, fp, 0xd8 | v0 = fp + 0xd8;
0x00402ad0 move a0, v0 | a0 = v0;
0x00402ad4 jal 0x41d460 | fcn_0041d460 ();
0x00402ad8 nop |
0x00402adc addiu v1, zero, 0x80 | v1 = 0x80;
0x00402ae0 subu v1, v1, v0 | __asm ("subu v1, v1, v0");
0x00402ae4 lw v0, 0x4c(fp) | v0 = *(var_4ch);
0x00402ae8 lw v0, 0x10(v0) | v0 = *((v0 + 4));
0x00402aec move a0, s0 | a0 = s0;
0x00402af0 move a1, v1 | a1 = v1;
0x00402af4 lui v1, 0x42 | v1 = 0x420000;
| /* str._P11_:_execute_ts_:__s_ */
0x00402af8 addiu a2, v1, -0x55f8 | a2 = "\"P11\":{\"execute_ts\":\"%s\"}";
0x00402afc move a3, v0 | a3 = v0;
0x00402b00 jal 0x41cff0 | fcn_0041cff0 ();
0x00402b04 nop |
0x00402b08 b 0x402d18 | goto label_2;
0x00402b0c nop |
| }
0x00402b10 lw v0, 0x24(fp) | v0 = *(var_24h);
| if (v0 != 0) {
0x00402b14 beqz v0, 0x402c0c |
0x00402b18 nop |
0x00402b1c lw v0, 0x48(fp) | v0 = *(var_48h);
0x00402b20 lw v0, 0x10(v0) | v0 = *((v0 + 4));
0x00402b24 addiu v1, fp, 0x158 | v1 = fp + 0x158;
0x00402b28 move a0, v1 | a0 = v1;
0x00402b2c addiu a1, zero, 0x20 | a1 = 0x20;
0x00402b30 lui v1, 0x42 | v1 = 0x420000;
| /* esilref: '&s' */
0x00402b34 addiu a2, v1, -0x5618 | a2 = 0x41a9e8;
0x00402b38 move a3, v0 | a3 = v0;
0x00402b3c jal 0x41cff0 | fcn_0041cff0 ();
0x00402b40 nop |
0x00402b44 addiu v0, fp, 0xd8 | v0 = fp + 0xd8;
0x00402b48 lb v0, (v0) | v0 = *(v0);
| if (v0 != 0) {
0x00402b4c beqz v0, 0x402bb0 |
0x00402b50 nop |
0x00402b54 addiu v0, fp, 0xd8 | v0 = fp + 0xd8;
0x00402b58 move a0, v0 | a0 = v0;
0x00402b5c jal 0x41d460 | fcn_0041d460 ();
0x00402b60 nop |
0x00402b64 addiu v1, fp, 0xd8 | v1 = fp + 0xd8;
0x00402b68 addu s0, v1, v0 | s0 = v1 + v0;
0x00402b6c addiu v0, fp, 0xd8 | v0 = fp + 0xd8;
0x00402b70 move a0, v0 | a0 = v0;
0x00402b74 jal 0x41d460 | fcn_0041d460 ();
0x00402b78 nop |
0x00402b7c addiu v1, zero, 0x80 | v1 = 0x80;
0x00402b80 subu v1, v1, v0 | __asm ("subu v1, v1, v0");
0x00402b84 lw v0, 0x48(fp) | v0 = *(var_48h);
0x00402b88 lw v0, 0x10(v0) | v0 = *((v0 + 4));
0x00402b8c move a0, s0 | a0 = s0;
0x00402b90 move a1, v1 | a1 = v1;
0x00402b94 lui v1, 0x42 | v1 = 0x420000;
| /* str.___P11_:_offset_:__s_ */
0x00402b98 addiu a2, v1, -0x55dc | a2 = " ,\"P11\":{\"offset\":\"%s\"}";
0x00402b9c move a3, v0 | a3 = v0;
0x00402ba0 jal 0x41cff0 | fcn_0041cff0 ();
0x00402ba4 nop |
0x00402ba8 b 0x402d18 | goto label_2;
0x00402bac nop |
| }
0x00402bb0 addiu v0, fp, 0xd8 | v0 = fp + 0xd8;
0x00402bb4 move a0, v0 | a0 = v0;
0x00402bb8 jal 0x41d460 | fcn_0041d460 ();
0x00402bbc nop |
0x00402bc0 addiu v1, fp, 0xd8 | v1 = fp + 0xd8;
0x00402bc4 addu s0, v1, v0 | s0 = v1 + v0;
0x00402bc8 addiu v0, fp, 0xd8 | v0 = fp + 0xd8;
0x00402bcc move a0, v0 | a0 = v0;
0x00402bd0 jal 0x41d460 | fcn_0041d460 ();
0x00402bd4 nop |
0x00402bd8 addiu v1, zero, 0x80 | v1 = 0x80;
0x00402bdc subu v1, v1, v0 | __asm ("subu v1, v1, v0");
0x00402be0 lw v0, 0x48(fp) | v0 = *(var_48h);
0x00402be4 lw v0, 0x10(v0) | v0 = *((v0 + 4));
0x00402be8 move a0, s0 | a0 = s0;
0x00402bec move a1, v1 | a1 = v1;
0x00402bf0 lui v1, 0x42 | v1 = 0x420000;
| /* str._P11_:_offset_:__s_ */
0x00402bf4 addiu a2, v1, -0x55c4 | a2 = "\"P11\":{\"offset\":\"%s\"}";
0x00402bf8 move a3, v0 | a3 = v0;
0x00402bfc jal 0x41cff0 | fcn_0041cff0 ();
0x00402c00 nop |
0x00402c04 b 0x402d18 | goto label_2;
0x00402c08 nop |
| }
0x00402c0c lw v0, 0x4c(fp) | v0 = *(var_4ch);
0x00402c10 lw v0, 0x10(v0) | v0 = *((v0 + 4));
0x00402c14 lw v1, 0x48(fp) | v1 = *(var_48h);
0x00402c18 lw a0, 0x10(v1) | a0 = *((v1 + 4));
0x00402c1c addiu v1, fp, 0x158 | v1 = fp + 0x158;
0x00402c20 sw a0, 0x10(sp) | *(var_10h) = a0;
0x00402c24 move a0, v1 | a0 = v1;
0x00402c28 addiu a1, zero, 0x20 | a1 = 0x20;
0x00402c2c lui v1, 0x42 | v1 = 0x420000;
| /* esilref: '&s&s' */
0x00402c30 addiu a2, v1, -0x55ac | a2 = "%s%s";
0x00402c34 move a3, v0 | a3 = v0;
0x00402c38 jal 0x41cff0 | fcn_0041cff0 ();
0x00402c3c nop |
0x00402c40 addiu v0, fp, 0xd8 | v0 = fp + 0xd8;
0x00402c44 lb v0, (v0) | v0 = *(v0);
| if (v0 != 0) {
0x00402c48 beqz v0, 0x402cb8 |
0x00402c4c nop |
0x00402c50 addiu v0, fp, 0xd8 | v0 = fp + 0xd8;
0x00402c54 move a0, v0 | a0 = v0;
0x00402c58 jal 0x41d460 | fcn_0041d460 ();
0x00402c5c nop |
0x00402c60 addiu v1, fp, 0xd8 | v1 = fp + 0xd8;
0x00402c64 addu s0, v1, v0 | s0 = v1 + v0;
0x00402c68 addiu v0, fp, 0xd8 | v0 = fp + 0xd8;
0x00402c6c move a0, v0 | a0 = v0;
0x00402c70 jal 0x41d460 | fcn_0041d460 ();
0x00402c74 nop |
0x00402c78 addiu v1, zero, 0x80 | v1 = 0x80;
0x00402c7c subu v1, v1, v0 | __asm ("subu v1, v1, v0");
0x00402c80 lw v0, 0x48(fp) | v0 = *(var_48h);
0x00402c84 lw v0, 0x10(v0) | v0 = *((v0 + 4));
0x00402c88 lw a0, 0x4c(fp) | a0 = *(var_4ch);
0x00402c8c lw a0, 0x10(a0) | a0 = *((a0 + 4));
0x00402c90 sw a0, 0x10(sp) | *(var_10h) = a0;
0x00402c94 move a0, s0 | a0 = s0;
0x00402c98 move a1, v1 | a1 = v1;
0x00402c9c lui v1, 0x42 | v1 = 0x420000;
| /* str.___P11_:_offset_:__s___execute_ts_:__s_ */
0x00402ca0 addiu a2, v1, -0x55a4 | a2 = " ,\"P11\":{\"offset\":\"%s\",\"execute_ts\":\"%s\"}";
0x00402ca4 move a3, v0 | a3 = v0;
0x00402ca8 jal 0x41cff0 | fcn_0041cff0 ();
0x00402cac nop |
0x00402cb0 b 0x402d18 | goto label_2;
0x00402cb4 nop |
| }
0x00402cb8 addiu v0, fp, 0xd8 | v0 = fp + 0xd8;
0x00402cbc move a0, v0 | a0 = v0;
0x00402cc0 jal 0x41d460 | fcn_0041d460 ();
0x00402cc4 nop |
0x00402cc8 addiu v1, fp, 0xd8 | v1 = fp + 0xd8;
0x00402ccc addu s0, v1, v0 | s0 = v1 + v0;
0x00402cd0 addiu v0, fp, 0xd8 | v0 = fp + 0xd8;
0x00402cd4 move a0, v0 | a0 = v0;
0x00402cd8 jal 0x41d460 | fcn_0041d460 ();
0x00402cdc nop |
0x00402ce0 addiu v1, zero, 0x80 | v1 = 0x80;
0x00402ce4 subu v1, v1, v0 | __asm ("subu v1, v1, v0");
0x00402ce8 lw v0, 0x48(fp) | v0 = *(var_48h);
0x00402cec lw v0, 0x10(v0) | v0 = *((v0 + 4));
0x00402cf0 lw a0, 0x4c(fp) | a0 = *(var_4ch);
0x00402cf4 lw a0, 0x10(a0) | a0 = *((a0 + 4));
0x00402cf8 sw a0, 0x10(sp) | *(var_10h) = a0;
0x00402cfc move a0, s0 | a0 = s0;
0x00402d00 move a1, v1 | a1 = v1;
0x00402d04 lui v1, 0x42 | v1 = 0x420000;
| /* str._P11_:_offset_:__s___execute_ts_:__s_ */
0x00402d08 addiu a2, v1, -0x5578 | a2 = "\"P11\":{\"offset\":\"%s\",\"execute_ts\":\"%s\"}";
0x00402d0c move a3, v0 | a3 = v0;
0x00402d10 jal 0x41cff0 | fcn_0041cff0 ();
0x00402d14 nop |
| label_2:
0x00402d18 addiu v0, fp, 0x158 | v0 = fp + 0x158;
0x00402d1c lui v1, 0x42 | v1 = 0x420000;
| /* str.e_0_31m_send_IOT_BACK_CMD_ADJUST_TIMEZONE1111___s_e_0_39m_n */
0x00402d20 addiu a0, v1, -0x5550 | a0 = "\e[0 send IOT_BACK_CMD_ADJUST_TIMEZONE1111 %s \e[0\n";
0x00402d24 move a1, v0 | a1 = v0;
0x00402d28 jal 0x41cfc0 | fcn_0041cfc0 ();
0x00402d2c nop |
0x00402d30 addiu v0, fp, 0x158 | v0 = fp + 0x158;
0x00402d34 lui v1, 0x42 | v1 = 0x420000;
| /* str.send_IOT_BACK_CMD_ADJUST_TIMEZONE1111___s_n */
0x00402d38 addiu a0, v1, -0x5514 | a0 = "send IOT_BACK_CMD_ADJUST_TIMEZONE1111 %s\n";
0x00402d3c move a1, v0 | a1 = v0;
0x00402d40 jal 0x405dbc | sym_log_printf ()
0x00402d44 nop |
0x00402d48 addiu v0, fp, 0x158 | v0 = fp + 0x158;
0x00402d4c addiu a0, zero, 0x4e0 | a0 = 0x4e0;
0x00402d50 move a1, v0 | a1 = v0;
0x00402d54 jal 0x402004 | sym_send_command_s2m ();
0x00402d58 nop |
| }
0x00402d5c lw a0, 0x34(fp) | a0 = *(var_34h);
0x00402d60 lui v0, 0x42 | v0 = 0x420000;
| /* esilref: 'duration' */
0x00402d64 addiu a1, v0, -0x54e8 | a1 = "duration";
0x00402d68 jal 0x416d98 | sym_cJSON_GetObjectItem ();
0x00402d6c nop |
0x00402d70 sw v0, 0x40(fp) | *(var_40h) = v0;
0x00402d74 lw v0, 0x40(fp) | v0 = *(var_40h);
| if (v0 != 0) {
0x00402d78 beqz v0, 0x402fe4 |
0x00402d7c nop |
0x00402d80 sw zero, 0x50(fp) | *(var_50h) = 0;
0x00402d84 sw zero, 0x54(fp) | *(var_54h) = 0;
0x00402d88 sw zero, 0x28(fp) | *(var_28h) = 0;
0x00402d8c sw zero, 0x2c(fp) | *(var_2ch) = 0;
0x00402d90 lw a0, 0x40(fp) | a0 = *(var_40h);
0x00402d94 lui v0, 0x42 | v0 = 0x420000;
| /* str.alarm_video */
0x00402d98 addiu a1, v0, -0x54dc | a1 = "alarm_video";
0x00402d9c jal 0x416d98 | sym_cJSON_GetObjectItem ();
0x00402da0 nop |
0x00402da4 sw v0, 0x50(fp) | *(var_50h) = v0;
0x00402da8 lw v0, 0x50(fp) | v0 = *(var_50h);
| if (v0 == 0) {
0x00402dac bnez v0, 0x402ddc |
0x00402db0 nop |
0x00402db4 lui v0, 0x42 | v0 = 0x420000;
| /* str.json_duration_do_not_have_json_alarm_video_111_ */
0x00402db8 addiu a0, v0, -0x54d0 | a0 = "json_duration do not have json_alarm_video 111 ";
0x00402dbc jal 0x41d0d0 | fcn_0041d0d0 ();
0x00402dc0 nop |
0x00402dc4 lui v0, 0x42 | v0 = 0x420000;
| /* str.json_duration_do_not_have_json_alarm_video_111__n */
0x00402dc8 addiu a0, v0, -0x54a0 | a0 = "json_duration do not have json_alarm_video 111 \n";
0x00402dcc jal 0x405dbc | sym_log_printf ()
0x00402dd0 nop |
0x00402dd4 addiu v0, zero, 1 | v0 = 1;
0x00402dd8 sw v0, 0x28(fp) | *(var_28h) = v0;
| }
0x00402ddc lw a0, 0x40(fp) | a0 = *(var_40h);
0x00402de0 lui v0, 0x42 | v0 = 0x420000;
| /* str.silent */
0x00402de4 addiu a1, v0, -0x546c | a1 = "silent";
0x00402de8 jal 0x416d98 | sym_cJSON_GetObjectItem ();
0x00402dec nop |
0x00402df0 sw v0, 0x54(fp) | *(var_54h) = v0;
0x00402df4 lw v0, 0x54(fp) | v0 = *(var_54h);
| if (v0 == 0) {
0x00402df8 bnez v0, 0x402e28 |
0x00402dfc nop |
0x00402e00 lui v0, 0x42 | v0 = 0x420000;
| /* str.json_duration_do_not_have_json_silent_222_ */
0x00402e04 addiu a0, v0, -0x5464 | a0 = "json_duration do not have json_silent 222 ";
0x00402e08 jal 0x41d0d0 | fcn_0041d0d0 ();
0x00402e0c nop |
0x00402e10 lui v0, 0x42 | v0 = 0x420000;
| /* str.json_duration_do_not_have_json_silent_222__n */
0x00402e14 addiu a0, v0, -0x5438 | a0 = "json_duration do not have json_silent 222 \n";
0x00402e18 jal 0x405dbc | sym_log_printf ()
0x00402e1c nop |
0x00402e20 addiu v0, zero, 1 | v0 = 1;
0x00402e24 sw v0, 0x2c(fp) | *(var_2ch) = v0;
| }
0x00402e28 lw v0, 0x28(fp) | v0 = *(var_28h);
| if (v0 == 0) {
0x00402e2c bnez v0, 0x402e40 |
0x00402e30 nop |
0x00402e34 lw v0, 0x2c(fp) | v0 = *(var_2ch);
| if (v0 == 0) {
0x00402e38 beqz v0, 0x402e74 | goto label_3;
| }
0x00402e3c nop |
| }
0x00402e40 lw a0, 0x30(fp) | a0 = *(var_30h);
0x00402e44 jal 0x412f20 | sym_cJSON_Delete ();
0x00402e48 nop |
0x00402e4c lui v0, 0x42 | v0 = 0x420000;
| /* str.json_duration_dont_have_json_alarm_video_or_json_silent_return_333 */
0x00402e50 addiu a0, v0, -0x540c | a0 = "json_duration dont have json_alarm_video or json_silent return 333";
0x00402e54 jal 0x41d0d0 | fcn_0041d0d0 ();
0x00402e58 nop |
0x00402e5c lui v0, 0x42 | v0 = 0x420000;
| /* str.json_duration_dont_have_json_alarm_video_or_json_silent_return_333_n */
0x00402e60 addiu a0, v0, -0x53c8 | a0 = "json_duration dont have json_alarm_video or json_silent return 333\n";
0x00402e64 jal 0x405dbc | sym_log_printf ()
0x00402e68 nop |
0x00402e6c b 0x403068 | goto label_0;
0x00402e70 nop |
| label_3:
0x00402e74 sw zero, 0x158(fp) | *(var_158h) = 0;
0x00402e78 sw zero, 0x15c(fp) | *(var_15ch) = 0;
0x00402e7c sw zero, 0x160(fp) | *(var_160h) = 0;
0x00402e80 sw zero, 0x164(fp) | *(var_164h) = 0;
0x00402e84 sw zero, 0x168(fp) | *(var_168h) = 0;
0x00402e88 sw zero, 0x16c(fp) | *(var_16ch) = 0;
0x00402e8c sw zero, 0x170(fp) | *(var_170h) = 0;
0x00402e90 sw zero, 0x174(fp) | *(var_174h) = 0;
0x00402e94 lw v0, 0x50(fp) | v0 = *(var_50h);
0x00402e98 lw v0, 0x10(v0) | v0 = *((v0 + 4));
0x00402e9c lw v1, 0x54(fp) | v1 = *(var_54h);
0x00402ea0 lw a0, 0x10(v1) | a0 = *((v1 + 4));
0x00402ea4 addiu v1, fp, 0x158 | v1 = fp + 0x158;
0x00402ea8 sw a0, 0x10(sp) | *(var_10h) = a0;
0x00402eac move a0, v1 | a0 = v1;
0x00402eb0 addiu a1, zero, 0x20 | a1 = 0x20;
0x00402eb4 lui v1, 0x42 | v1 = 0x420000;
| /* str.alarm:_s_silent:_s */
0x00402eb8 addiu a2, v1, -0x5384 | a2 = "alarm:%s,silent:%s";
0x00402ebc move a3, v0 | a3 = v0;
0x00402ec0 jal 0x41cff0 | fcn_0041cff0 ();
0x00402ec4 nop |
0x00402ec8 addiu v0, fp, 0xd8 | v0 = fp + 0xd8;
0x00402ecc lb v0, (v0) | v0 = *(v0);
| if (v0 != 0) {
0x00402ed0 beqz v0, 0x402f40 |
0x00402ed4 nop |
0x00402ed8 addiu v0, fp, 0xd8 | v0 = fp + 0xd8;
0x00402edc move a0, v0 | a0 = v0;
0x00402ee0 jal 0x41d460 | fcn_0041d460 ();
0x00402ee4 nop |
0x00402ee8 addiu v1, fp, 0xd8 | v1 = fp + 0xd8;
0x00402eec addu s0, v1, v0 | s0 = v1 + v0;
0x00402ef0 addiu v0, fp, 0xd8 | v0 = fp + 0xd8;
0x00402ef4 move a0, v0 | a0 = v0;
0x00402ef8 jal 0x41d460 | fcn_0041d460 ();
0x00402efc nop |
0x00402f00 addiu v1, zero, 0x80 | v1 = 0x80;
0x00402f04 subu v1, v1, v0 | __asm ("subu v1, v1, v0");
0x00402f08 lw v0, 0x50(fp) | v0 = *(var_50h);
0x00402f0c lw v0, 0x10(v0) | v0 = *((v0 + 4));
0x00402f10 lw a0, 0x54(fp) | a0 = *(var_54h);
0x00402f14 lw a0, 0x10(a0) | a0 = *((a0 + 4));
0x00402f18 sw a0, 0x10(sp) | *(var_10h) = a0;
0x00402f1c move a0, s0 | a0 = s0;
0x00402f20 move a1, v1 | a1 = v1;
0x00402f24 lui v1, 0x42 | v1 = 0x420000;
| /* str.___duration_:_alarm_video_:__s___silent_:__s_ */
0x00402f28 addiu a2, v1, -0x5370 | a2 = " ,\"duration\":{\"alarm_video\":\"%s\",\"silent\":\"%s\"}";
0x00402f2c move a3, v0 | a3 = v0;
0x00402f30 jal 0x41cff0 | fcn_0041cff0 ();
0x00402f34 nop |
0x00402f38 b 0x402fa0 | goto label_4;
0x00402f3c nop |
| }
0x00402f40 addiu v0, fp, 0xd8 | v0 = fp + 0xd8;
0x00402f44 move a0, v0 | a0 = v0;
0x00402f48 jal 0x41d460 | fcn_0041d460 ();
0x00402f4c nop |
0x00402f50 addiu v1, fp, 0xd8 | v1 = fp + 0xd8;
0x00402f54 addu s0, v1, v0 | s0 = v1 + v0;
0x00402f58 addiu v0, fp, 0xd8 | v0 = fp + 0xd8;
0x00402f5c move a0, v0 | a0 = v0;
0x00402f60 jal 0x41d460 | fcn_0041d460 ();
0x00402f64 nop |
0x00402f68 addiu v1, zero, 0x80 | v1 = 0x80;
0x00402f6c subu v1, v1, v0 | __asm ("subu v1, v1, v0");
0x00402f70 lw v0, 0x50(fp) | v0 = *(var_50h);
0x00402f74 lw v0, 0x10(v0) | v0 = *((v0 + 4));
0x00402f78 lw a0, 0x54(fp) | a0 = *(var_54h);
0x00402f7c lw a0, 0x10(a0) | a0 = *((a0 + 4));
0x00402f80 sw a0, 0x10(sp) | *(var_10h) = a0;
0x00402f84 move a0, s0 | a0 = s0;
0x00402f88 move a1, v1 | a1 = v1;
0x00402f8c lui v1, 0x42 | v1 = 0x420000;
| /* str._duration_:_alarm_video_:__s___silent_:__s_ */
0x00402f90 addiu a2, v1, -0x5340 | a2 = "\"duration\":{\"alarm_video\":\"%s\",\"silent\":\"%s\"}";
0x00402f94 move a3, v0 | a3 = v0;
0x00402f98 jal 0x41cff0 | fcn_0041cff0 ();
0x00402f9c nop |
| label_4:
0x00402fa0 addiu v0, fp, 0x158 | v0 = fp + 0x158;
0x00402fa4 addiu a0, zero, 0x4e8 | a0 = 0x4e8;
0x00402fa8 move a1, v0 | a1 = v0;
0x00402fac jal 0x402004 | sym_send_command_s2m ();
0x00402fb0 nop |
0x00402fb4 addiu v0, fp, 0x158 | v0 = fp + 0x158;
0x00402fb8 lui v1, 0x42 | v1 = 0x420000;
| /* str.e_0_31m_Pay_For_Time___s__e_0_39m__r_n */
0x00402fbc addiu a0, v1, -0x5310 | a0 = "\e[0= Pay For Time (%s) =\e[0 \r\n";
0x00402fc0 move a1, v0 | a1 = v0;
0x00402fc4 jal 0x41cfc0 | fcn_0041cfc0 ();
0x00402fc8 nop |
0x00402fcc addiu v0, fp, 0x158 | v0 = fp + 0x158;
0x00402fd0 lui v1, 0x42 | v1 = 0x420000;
| /* str.send_IOT_BACK_CMD_ADJUST_PayForTime___s_n */
0x00402fd4 addiu a0, v1, -0x52e8 | a0 = "send IOT_BACK_CMD_ADJUST_PayForTime %s\n";
0x00402fd8 move a1, v0 | a1 = v0;
0x00402fdc jal 0x405dbc | sym_log_printf ()
0x00402fe0 nop |
| }
0x00402fe4 addiu v1, fp, 0x58 | v1 = fp + 0x58;
0x00402fe8 addiu v0, fp, 0xd8 | v0 = fp + 0xd8;
0x00402fec move a0, v1 | a0 = v1;
0x00402ff0 addiu a1, zero, 0x80 | a1 = 0x80;
0x00402ff4 lui v1, 0x42 | v1 = 0x420000;
| /* str._state_:_reported_:_s__desired_:null */
0x00402ff8 addiu a2, v1, -0x52bc | a2 = "{\"state\":{\"reported\":{%s},\"desired\":null}}";
0x00402ffc move a3, v0 | a3 = v0;
0x00403000 jal 0x41cff0 | fcn_0041cff0 ();
0x00403004 nop |
0x00403008 addiu v0, fp, 0x58 | v0 = fp + 0x58;
0x0040300c lui v1, 0x42 | v1 = 0x420000;
| /* str._s__ack_is__s_n */
0x00403010 addiu a0, v1, -0x5290 | a0 = "%s ack is %s\n";
0x00403014 lui v1, 0x42 | v1 = 0x420000;
| /* obj.__func__.7250 */
0x00403018 addiu a1, v1, -0x4584 | a1 = "delta_handler";
0x0040301c move a2, v0 | a2 = v0;
0x00403020 jal 0x41cfc0 | fcn_0041cfc0 ();
0x00403024 nop |
0x00403028 addiu v0, fp, 0x58 | v0 = fp + 0x58;
0x0040302c lui v1, 0x42 | v1 = 0x420000;
| /* str._s__ack_is__s_n */
0x00403030 addiu a0, v1, -0x5290 | a0 = "%s ack is %s\n";
0x00403034 lui v1, 0x42 | v1 = 0x420000;
| /* obj.__func__.7250 */
0x00403038 addiu a1, v1, -0x4584 | a1 = "delta_handler";
0x0040303c move a2, v0 | a2 = v0;
0x00403040 jal 0x405dbc | sym_log_printf ()
0x00403044 nop |
0x00403048 addiu v0, fp, 0x58 | v0 = fp + 0x58;
0x0040304c lw a0, 0x188(fp) | a0 = *(arg_188h);
0x00403050 move a1, v0 | a1 = v0;
0x00403054 jal 0x4062dc | sym_report_shadow_handler ();
0x00403058 nop |
0x0040305c lw a0, 0x30(fp) | a0 = *(var_30h);
0x00403060 jal 0x412f20 | sym_cJSON_Delete ();
0x00403064 nop |
| label_0:
0x00403068 move sp, fp |
0x0040306c lw ra, 0x184(sp) | ra = *(var_184h);
0x00403070 lw fp, 0x180(sp) | fp = *(var_180h);
0x00403074 lw s0, 0x17c(sp) | s0 = *(var_17ch);
0x00403078 addiu sp, sp, 0x188 |
0x0040307c jr ra | return v0;
0x00403080 nop |
| }
; assembly | /* r2dec pseudo code output */
| /* /logs/firmware/unblob_extracted/firmware_extract/6225984-11075644.jffs2_new_extract/bin/hl_client @ 0x404664 */
| #include <stdint.h>
|
; (fcn) sym.disconnectCallbackFunc () | void disconnectCallbackFunc () {
0x00404664 addiu sp, sp, -0x428 |
0x00404668 sw ra, 0x424(sp) | *(var_424h) = ra;
0x0040466c sw fp, 0x420(sp) | *(var_420h) = fp;
0x00404670 move fp, sp | fp = sp;
0x00404674 sw a0, 0x428(fp) | *(arg_428h) = a0;
0x00404678 sw a1, 0x42c(fp) | *(arg_42ch) = a1;
0x0040467c lui v0, 0x42 | v0 = 0x420000;
| /* str.MQTT_Disconnect_ */
0x00404680 addiu a0, v0, -0x4cec | a0 = "MQTT Disconnect ";
0x00404684 jal 0x41d0d0 | fcn_0041d0d0 ();
0x00404688 nop |
0x0040468c addiu v0, zero, -1 | v0 = -1;
0x00404690 sw v0, 0x18(fp) | *(var_18h) = v0;
0x00404694 addiu v0, fp, 0x20 | v0 = fp + 0x20;
0x00404698 sw v0, 0x1c(fp) | *(var_1ch) = v0;
0x0040469c addiu v0, fp, 0x20 | v0 = fp + 0x20;
0x004046a0 move a0, v0 | a0 = v0;
0x004046a4 move a1, zero | a1 = 0;
0x004046a8 addiu a2, zero, 0x400 | a2 = 0x400;
0x004046ac jal 0x41d300 | fcn_0041d300 ();
0x004046b0 nop |
0x004046b4 lw v0, 0x1c(fp) | v0 = *(var_1ch);
0x004046b8 addiu v1, zero, 0x4b0 | v1 = 0x4b0;
0x004046bc swl v1, 3(v0) | __asm ("swl v1, 3(v0)");
0x004046c0 swr v1, (v0) | __asm ("swr v1, (v0)");
0x004046c4 lw v0, 0x1c(fp) | v0 = *(var_1ch);
0x004046c8 addiu v1, zero, 0x4e2 | v1 = 0x4e2;
0x004046cc swl v1, 7(v0) | __asm ("swl v1, 7(v0)");
0x004046d0 swr v1, 4(v0) | __asm ("swr v1, 4(v0)");
0x004046d4 lui v0, 0x43 | v0 = 0x430000;
0x004046d8 lw v1, -0x1e80(v0) | v1 = *((v0 - 1952));
0x004046dc addiu v0, fp, 0x20 | v0 = fp + 0x20;
0x004046e0 move a0, v1 | a0 = v1;
0x004046e4 move a1, v0 | a1 = v0;
0x004046e8 addiu a2, zero, 0xc | a2 = 0xc;
0x004046ec jal 0x4184e8 | sym_msg_queue_snd ();
0x004046f0 nop |
0x004046f4 lw v0, 0x428(fp) | v0 = *(arg_428h);
| if (v0 != 0) {
0x004046f8 beqz v0, 0x4047a4 |
0x004046fc nop |
0x00404700 lw a0, 0x428(fp) | a0 = *(arg_428h);
0x00404704 jal 0x410144 | sym_aws_iot_is_autoreconnect_enabled ();
0x00404708 nop |
| if (v0 != 0) {
0x0040470c beqz v0, 0x404748 |
0x00404710 nop |
0x00404714 addiu a0, zero, 2 | a0 = 2;
0x00404718 jal 0x41d110 | fcn_0041d110 ();
0x0040471c nop |
0x00404720 lui v0, 0x42 | v0 = 0x420000;
| /* str.Auto_Reconnect_is_enabled__Reconnecting_attempt_will_start_now */
0x00404724 addiu a0, v0, -0x4cd8 | a0 = "Auto Reconnect is enabled, Reconnecting attempt will start now";
0x00404728 jal 0x41d0d0 | fcn_0041d0d0 ();
0x0040472c nop |
0x00404730 lui v0, 0x42 | v0 = 0x420000;
| /* str.Auto_Reconnect_is_enabled__Reconnecting_attempt_will_start_now_n */
0x00404734 addiu a0, v0, -0x4c98 | a0 = "Auto Reconnect is enabled, Reconnecting attempt will start now\n";
0x00404738 jal 0x405dbc | sym_log_printf ()
0x0040473c nop |
0x00404740 b 0x4047a4 | goto label_0;
0x00404744 nop |
| }
0x00404748 lui v0, 0x42 | v0 = 0x420000;
| /* str.Auto_Reconnect_not_enabled._Starting_manual_reconnect... */
0x0040474c addiu a0, v0, -0x4c58 | a0 = "Auto Reconnect not enabled. Starting manual reconnect...";
0x00404750 jal 0x41d0d0 | fcn_0041d0d0 ();
0x00404754 nop |
0x00404758 lw a0, 0x428(fp) | a0 = *(arg_428h);
0x0040475c jal 0x40a33c | sym_aws_iot_mqtt_attempt_reconnect ();
0x00404760 nop |
0x00404764 sw v0, 0x18(fp) | *(var_18h) = v0;
0x00404768 lw v1, 0x18(fp) | v1 = *(var_18h);
0x0040476c addiu v0, zero, 3 | v0 = 3;
| if (v1 == v0) {
0x00404770 bne v1, v0, 0x404790 |
0x00404774 nop |
0x00404778 lui v0, 0x42 | v0 = 0x420000;
| /* str.Manual_Reconnect_Successful */
0x0040477c addiu a0, v0, -0x4c1c | a0 = "Manual Reconnect Successful";
0x00404780 jal 0x41d0d0 | fcn_0041d0d0 ();
0x00404784 nop |
0x00404788 b 0x4047a4 | goto label_0;
0x0040478c nop |
| }
0x00404790 lui v0, 0x42 | v0 = 0x420000;
| /* str.Manual_Reconnect_Failed____d_n */
0x00404794 addiu a0, v0, -0x4c00 | a0 = "Manual Reconnect Failed - %d\n";
0x00404798 lw a1, 0x18(fp) | a1 = *(var_18h);
0x0040479c jal 0x41cfc0 | fcn_0041cfc0 ();
0x004047a0 nop |
| }
| label_0:
0x004047a4 move sp, fp |
0x004047a8 lw ra, 0x424(sp) | ra = *(var_424h);
0x004047ac lw fp, 0x420(sp) | fp = *(var_420h);
0x004047b0 addiu sp, sp, 0x428 |
0x004047b4 jr ra | return v0;
0x004047b8 nop |
| }
; assembly | /* r2dec pseudo code output */
| /* /logs/firmware/unblob_extracted/firmware_extract/6225984-11075644.jffs2_new_extract/bin/hl_client @ 0x405904 */
| #include <stdint.h>
|
; (fcn) sym.get_iot_cert_info () | void get_iot_cert_info () {
0x00405904 addiu sp, sp, -0x470 |
0x00405908 sw ra, 0x46c(sp) | *(var_46ch) = ra;
0x0040590c sw fp, 0x468(sp) | *(var_468h) = fp;
0x00405910 move fp, sp | fp = sp;
0x00405914 sw zero, 0x20(fp) | *(var_20h) = 0;
0x00405918 addiu v1, fp, 0x28 | v1 = fp + 0x28;
0x0040591c addiu v0, zero, 0x40 | v0 = 0x40;
0x00405920 move a0, v1 | a0 = v1;
0x00405924 move a1, zero | a1 = 0;
0x00405928 move a2, v0 | a2 = v0;
0x0040592c jal 0x41d300 | fcn_0041d300 ();
0x00405930 nop |
0x00405934 addiu v1, fp, 0x68 | v1 = fp + 0x68;
0x00405938 addiu v0, zero, 0x400 | v0 = 0x400;
0x0040593c move a0, v1 | a0 = v1;
0x00405940 move a1, zero | a1 = 0;
0x00405944 move a2, v0 | a2 = v0;
0x00405948 jal 0x41d300 | fcn_0041d300 ();
0x0040594c nop |
0x00405950 addiu v0, fp, 0x68 | v0 = fp + 0x68;
0x00405954 sw v0, 0x24(fp) | *(var_24h) = v0;
0x00405958 lui v0, 0x43 | v0 = 0x430000;
0x0040595c lw v0, -0x1de4(v0) | v0 = *((v0 - 1913));
| if (v0 == 0) {
0x00405960 bnez v0, 0x405ba4 |
0x00405964 nop |
0x00405968 addiu v0, fp, 0x68 | v0 = fp + 0x68;
0x0040596c move a0, v0 | a0 = v0;
0x00405970 move a1, zero | a1 = 0;
0x00405974 addiu a2, zero, 0x400 | a2 = 0x400;
0x00405978 jal 0x41d300 | fcn_0041d300 ();
0x0040597c nop |
0x00405980 lui v0, 0x43 | v0 = 0x430000;
0x00405984 lw v1, -0x1e80(v0) | v1 = *((v0 - 1952));
0x00405988 addiu v0, fp, 0x68 | v0 = fp + 0x68;
0x0040598c move a0, v1 | a0 = v1;
0x00405990 move a1, v0 | a1 = v0;
0x00405994 addiu a2, zero, 0x400 | a2 = 0x400;
0x00405998 addiu a3, zero, 0x5dc | a3 = 0x5dc;
0x0040599c jal 0x41841c | sym_msg_queue_rcv ();
0x004059a0 nop |
0x004059a4 move v1, v0 | v1 = v0;
0x004059a8 addiu v0, zero, -1 | v0 = -1;
| if (v1 == v0) {
0x004059ac beq v1, v0, 0x405ba4 | goto label_0;
| }
0x004059b0 nop |
0x004059b4 lw v0, 0x24(fp) | v0 = *(var_24h);
0x004059b8 lwl v1, 7(v0) | __asm ("lwl v1, 7(v0)");
0x004059bc lwr v1, 4(v0) | __asm ("lwr v1, 4(v0)");
0x004059c0 addiu v0, zero, 0x5df | v0 = 0x5df;
| if (v1 == v0) {
0x004059c4 bne v1, v0, 0x405ac4 |
0x004059c8 nop |
0x004059cc lui v0, 0x43 | v0 = 0x430000;
| /* obj.g_stIotCert */
0x004059d0 addiu a0, v0, -0xb98 | a0 = g_stIotCert;
0x004059d4 move a1, zero | a1 = 0;
0x004059d8 addiu a2, zero, 0x98 | a2 = 0x98;
0x004059dc jal 0x41d300 | fcn_0041d300 ();
0x004059e0 nop |
0x004059e4 addiu v0, fp, 0x68 | v0 = fp + 0x68;
0x004059e8 addiu v0, v0, 0x10 | v0 += 0x10;
0x004059ec lui v1, 0x43 | v1 = 0x430000;
| /* obj.g_stIotCert */
0x004059f0 addiu a0, v1, -0xb98 | a0 = g_stIotCert;
0x004059f4 move a1, v0 | a1 = v0;
0x004059f8 addiu a2, zero, 0x98 | a2 = 0x98;
0x004059fc jal 0x41d0b0 | fcn_0041d0b0 ();
0x00405a00 nop |
0x00405a04 lui v0, 0x43 | v0 = 0x430000;
0x00405a08 lui v1, 0x43 | v1 = g_stIotCert;
| /* obj.g_stIotCert */
0x00405a0c addiu v1, v1, -0xb98 |
0x00405a10 lw a0, 0x88(v1) | a0 = *((v1 + 34));
0x00405a14 lw a2, 0x8c(v1) | a2 = *((v1 + 35));
0x00405a18 lw a1, 0x90(v1) | a1 = *((v1 + 36));
0x00405a1c lw v1, 0x94(v1) | v1 = *((v1 + 37));
0x00405a20 sw a0, -0x700(v0) | *((v0 - 448)) = a0;
| /* obj.THING_NAME */
0x00405a24 addiu a0, v0, -0x700 | a0 = v0 + -0x700;
0x00405a28 sw a2, 4(a0) | *((a0 + 1)) = a2;
| /* obj.THING_NAME */
0x00405a2c addiu a0, v0, -0x700 | a0 = v0 + -0x700;
0x00405a30 sw a1, 8(a0) | *((a0 + 2)) = a1;
| /* obj.THING_NAME */
0x00405a34 addiu v0, v0, -0x700 | v0 += -0x700;
0x00405a38 sw v1, 0xc(v0) | *((v0 + 3)) = v1;
0x00405a3c lui v0, 0x43 | v0 = 0x430000;
0x00405a40 addiu a0, v0, -0xb34 | a0 = 0x42f4cc;
0x00405a44 jal 0x4044ec | sym_setTopic ();
0x00405a48 nop |
0x00405a4c lui v0, 0x43 | v0 = g_stIotCert;
| /* obj.g_stIotCert */
0x00405a50 addiu v0, v0, -0xb98 |
0x00405a54 lw v0, 0x84(v0) | v0 = *((v0 + 33));
0x00405a58 lui v1, 0x43 | v1 = THING_NAME;
| /* obj.THING_NAME */
0x00405a5c addiu v1, v1, -0x700 |
0x00405a60 sw v1, 0x10(sp) | *(var_10h) = v1;
0x00405a64 lui v1, 0x42 | v1 = 0x420000;
| /* str._____________________GUOZHIXIN___________________________g_stIotCert_info:_username:_s_keepalive:_d_clientID:_s__thing_name_is__s_n */
0x00405a68 addiu a0, v1, -0x47e8 | a0 = "[--------------------GUOZHIXIN--------------------------]g_stIotCert info: username:%s,keepalive:%d,clientID:%s, thing name is %s\n";
0x00405a6c lui v1, 0x43 | v1 = 0x430000;
0x00405a70 addiu a1, v1, -0xb94 | a1 = 0x42f46c;
0x00405a74 move a2, v0 | a2 = v0;
0x00405a78 lui v0, 0x43 | v0 = 0x430000;
0x00405a7c addiu a3, v0, -0xb34 | a3 = 0x42f4cc;
0x00405a80 jal 0x41cfc0 | fcn_0041cfc0 ();
0x00405a84 nop |
0x00405a88 lui v0, 0x43 | v0 = g_stIotCert;
| /* obj.g_stIotCert */
0x00405a8c addiu v0, v0, -0xb98 |
0x00405a90 lw v0, 0x84(v0) | v0 = *((v0 + 33));
0x00405a94 lui v1, 0x43 | v1 = THING_NAME;
| /* obj.THING_NAME */
0x00405a98 addiu v1, v1, -0x700 |
0x00405a9c sw v1, 0x10(sp) | *(var_10h) = v1;
0x00405aa0 lui v1, 0x42 | v1 = 0x420000;
| /* str.g_stIotCert_info:_username:_s_keepalive:_d_clientID:_s__thing_name_is__s_n */
0x00405aa4 addiu a0, v1, -0x4764 | a0 = "g_stIotCert info: username:%s,keepalive:%d,clientID:%s, thing name is %s\n";
0x00405aa8 lui v1, 0x43 | v1 = 0x430000;
0x00405aac addiu a1, v1, -0xb94 | a1 = 0x42f46c;
0x00405ab0 move a2, v0 | a2 = v0;
0x00405ab4 lui v0, 0x43 | v0 = 0x430000;
0x00405ab8 addiu a3, v0, -0xb34 | a3 = 0x42f4cc;
0x00405abc jal 0x405dbc | sym_log_printf ()
0x00405ac0 nop |
| }
0x00405ac4 lw v0, 0x24(fp) | v0 = *(var_24h);
0x00405ac8 lwl v1, 7(v0) | __asm ("lwl v1, 7(v0)");
0x00405acc lwr v1, 4(v0) | __asm ("lwr v1, 4(v0)");
0x00405ad0 addiu v0, zero, 0x5e0 | v0 = 0x5e0;
| if (v1 == v0) {
0x00405ad4 bne v1, v0, 0x405b70 |
0x00405ad8 nop |
0x00405adc lui v0, 0x43 | v0 = 0x430000;
| /* obj.g_enrR */
0x00405ae0 addiu a0, v0, -0xc30 | a0 = g_enrR;
0x00405ae4 move a1, zero | a1 = 0;
0x00405ae8 addiu a2, zero, 0x18 | a2 = 0x18;
0x00405aec jal 0x41d300 | fcn_0041d300 ();
0x00405af0 nop |
0x00405af4 addiu v0, fp, 0x68 | v0 = fp + 0x68;
0x00405af8 addiu v0, v0, 0x10 | v0 += 0x10;
0x00405afc lui v1, 0x43 | v1 = 0x430000;
0x00405b00 lwl a0, 3(v0) | __asm ("lwl a0, (var_3h)");
0x00405b04 move t1, a0 | t1 = a0;
0x00405b08 lwr t1, (v0) | __asm ("lwr t1, (v0)");
0x00405b0c lwl a0, 7(v0) | __asm ("lwl a0, (var_7h)");
0x00405b10 move t0, a0 | t0 = a0;
0x00405b14 lwr t0, 4(v0) | __asm ("lwr t0, (var_4h)");
0x00405b18 lwl a0, 0xb(v0) | __asm ("lwl a0, (var_bh)");
0x00405b1c move a3, a0 | a3 = a0;
0x00405b20 lwr a3, 8(v0) | __asm ("lwr a3, (var_8h)");
0x00405b24 lwl a0, 0xf(v0) | __asm ("lwl a0, (var_fh)");
0x00405b28 move a2, a0 | a2 = a0;
0x00405b2c lwr a2, 0xc(v0) | __asm ("lwr a2, (var_ch)");
0x00405b30 lwl a0, 0x13(v0) | __asm ("lwl a0, (var_13h)");
0x00405b34 move a1, a0 | a1 = a0;
0x00405b38 lwr a1, 0x10(v0) | __asm ("lwr a1, (var_10h_3)");
0x00405b3c lwl a0, 0x17(v0) | __asm ("lwl a0, (var_17h)");
0x00405b40 lwr a0, 0x14(v0) | __asm ("lwr a0, (var_14h)");
0x00405b44 sw t1, -0xc30(v1) | *((v1 - 780)) = t1;
| /* obj.g_enrR */
0x00405b48 addiu v0, v1, -0xc30 | v0 = v1 + -0xc30;
0x00405b4c sw t0, 4(v0) | *((v0 + 1)) = t0;
| /* obj.g_enrR */
0x00405b50 addiu v0, v1, -0xc30 | v0 = v1 + -0xc30;
0x00405b54 sw a3, 8(v0) | *((v0 + 2)) = a3;
| /* obj.g_enrR */
0x00405b58 addiu v0, v1, -0xc30 | v0 = v1 + -0xc30;
0x00405b5c sw a2, 0xc(v0) | *((v0 + 3)) = a2;
| /* obj.g_enrR */
0x00405b60 addiu v0, v1, -0xc30 | v0 = v1 + -0xc30;
0x00405b64 sw a1, 0x10(v0) | *((v0 + 4)) = a1;
| /* obj.g_enrR */
0x00405b68 addiu v0, v1, -0xc30 | v0 = v1 + -0xc30;
0x00405b6c sw a0, 0x14(v0) | *((v0 + 5)) = a0;
| }
0x00405b70 lw v0, 0x24(fp) | v0 = *(var_24h);
0x00405b74 lwl v1, 7(v0) | __asm ("lwl v1, 7(v0)");
0x00405b78 lwr v1, 4(v0) | __asm ("lwr v1, 4(v0)");
0x00405b7c addiu v0, zero, 0x5dd | v0 = 0x5dd;
| if (v1 != v0) {
0x00405b80 bne v1, v0, 0x405ba4 | goto label_0;
| }
0x00405b84 nop |
0x00405b88 lui v0, 0x42 | v0 = 0x420000;
| /* str.get_iot_cmd_start_____ */
0x00405b8c addiu a0, v0, -0x4834 | a0 = "get iot cmd start!!!!!";
0x00405b90 jal 0x41d0d0 | fcn_0041d0d0 ();
0x00405b94 nop |
0x00405b98 lui v0, 0x43 | v0 = 0x430000;
0x00405b9c addiu v1, zero, 1 | v1 = 1;
0x00405ba0 sw v1, -0x1de4(v0) | *((v0 - 1913)) = v1;
| }
| label_0:
0x00405ba4 move sp, fp |
0x00405ba8 lw ra, 0x46c(sp) | ra = *(var_46ch);
0x00405bac lw fp, 0x468(sp) | fp = *(var_468h);
0x00405bb0 addiu sp, sp, 0x470 |
0x00405bb4 jr ra | return v1;
0x00405bb8 nop |
| }
; assembly | /* r2dec pseudo code output */
| /* /logs/firmware/unblob_extracted/firmware_extract/6225984-11075644.jffs2_new_extract/bin/hl_client @ 0x403084 */
| #include <stdint.h>
|
; (fcn) sym.get_shadow_handler () | void get_shadow_handler () {
0x00403084 addiu sp, sp, -0x190 |
0x00403088 sw ra, 0x18c(sp) | *(var_18ch) = ra;
0x0040308c sw fp, 0x188(sp) | *(var_188h) = fp;
0x00403090 sw s0, 0x184(sp) | *(var_184h) = s0;
0x00403094 move fp, sp | fp = sp;
0x00403098 sw a0, 0x190(fp) | *(arg_190h) = a0;
0x0040309c sw a1, 0x194(fp) | *(arg_194h) = a1;
0x004030a0 move v0, a2 | v0 = a2;
0x004030a4 sw a3, 0x19c(fp) | *(arg_19ch) = a3;
0x004030a8 sh v0, 0x198(fp) | *(arg_198h) = v0;
0x004030ac sw zero, 0x30(fp) | *(var_30h) = 0;
0x004030b0 sw zero, 0x34(fp) | *(var_34h) = 0;
0x004030b4 sw zero, 0x38(fp) | *(var_38h) = 0;
0x004030b8 sw zero, 0x3c(fp) | *(var_3ch) = 0;
0x004030bc sw zero, 0x40(fp) | *(var_40h) = 0;
0x004030c0 sw zero, 0x44(fp) | *(var_44h) = 0;
0x004030c4 sw zero, 0x48(fp) | *(var_48h) = 0;
0x004030c8 addiu v1, fp, 0x5c | v1 = fp + 0x5c;
0x004030cc addiu v0, zero, 0x80 | v0 = 0x80;
0x004030d0 move a0, v1 | a0 = v1;
0x004030d4 move a1, zero | a1 = 0;
0x004030d8 move a2, v0 | a2 = v0;
0x004030dc jal 0x41d300 | fcn_0041d300 ();
0x004030e0 nop |
0x004030e4 addiu v1, fp, 0xdc | v1 = fp + 0xdc;
0x004030e8 addiu v0, zero, 0x80 | v0 = 0x80;
0x004030ec move a0, v1 | a0 = v1;
0x004030f0 move a1, zero | a1 = 0;
0x004030f4 move a2, v0 | a2 = v0;
0x004030f8 jal 0x41d300 | fcn_0041d300 ();
0x004030fc nop |
0x00403100 lw v0, 0x19c(fp) | v0 = *(arg_19ch);
0x00403104 lw v0, 8(v0) | v0 = *((v0 + 2));
0x00403108 lui v1, 0x42 | v1 = 0x420000;
| /* str.online_get_shadow_handler:__s_n */
0x0040310c addiu a0, v1, -0x5280 | a0 = "online get_shadow_handler: %s\n";
0x00403110 move a1, v0 | a1 = v0;
0x00403114 jal 0x41cfc0 | fcn_0041cfc0 ();
0x00403118 nop |
0x0040311c lw v0, 0x19c(fp) | v0 = *(arg_19ch);
0x00403120 lw v0, 8(v0) | v0 = *((v0 + 2));
0x00403124 lui v1, 0x42 | v1 = 0x420000;
| /* str.online_get_shadow_handler:__s_n */
0x00403128 addiu a0, v1, -0x5280 | a0 = "online get_shadow_handler: %s\n";
0x0040312c move a1, v0 | a1 = v0;
0x00403130 jal 0x405dbc | sym_log_printf ()
0x00403134 nop |
0x00403138 lw v0, 0x19c(fp) | v0 = *(arg_19ch);
0x0040313c lw v0, 8(v0) | v0 = *((v0 + 2));
0x00403140 move a0, v0 | a0 = v0;
0x00403144 jal 0x414e34 | sym_cJSON_Parse ();
0x00403148 nop |
0x0040314c sw v0, 0x30(fp) | *(var_30h) = v0;
0x00403150 lw v0, 0x30(fp) | v0 = *(var_30h);
| if (v0 == 0) {
0x00403154 bnez v0, 0x403174 |
0x00403158 nop |
0x0040315c lui v0, 0x42 | v0 = 0x420000;
| /* str.get_json_error_____ */
0x00403160 addiu a0, v0, -0x577c | a0 = "get json error!!!!!";
0x00403164 jal 0x41d0d0 | fcn_0041d0d0 ();
0x00403168 nop |
0x0040316c b 0x403a14 | goto label_0;
0x00403170 nop |
| }
0x00403174 lw a0, 0x30(fp) | a0 = *(var_30h);
0x00403178 lui v0, 0x42 | v0 = 0x420000;
| /* str.state */
0x0040317c addiu a1, v0, -0x5768 | a1 = "state";
0x00403180 jal 0x416d98 | sym_cJSON_GetObjectItem ();
0x00403184 nop |
0x00403188 sw v0, 0x34(fp) | *(var_34h) = v0;
0x0040318c lw v0, 0x34(fp) | v0 = *(var_34h);
| if (v0 == 0) {
0x00403190 bnez v0, 0x4031bc |
0x00403194 nop |
0x00403198 lui v0, 0x42 | v0 = 0x420000;
| /* str.get_shadow_handler_do_not_have_state_ */
0x0040319c addiu a0, v0, -0x5260 | a0 = "get_shadow_handler do not have state ";
0x004031a0 jal 0x41d0d0 | fcn_0041d0d0 ();
0x004031a4 nop |
0x004031a8 lw a0, 0x30(fp) | a0 = *(var_30h);
0x004031ac jal 0x412f20 | sym_cJSON_Delete ();
0x004031b0 nop |
0x004031b4 b 0x403a14 | goto label_0;
0x004031b8 nop |
| }
0x004031bc lw a0, 0x34(fp) | a0 = *(var_34h);
0x004031c0 lui v0, 0x42 | v0 = 0x420000;
| /* str.desired */
0x004031c4 addiu a1, v0, -0x5238 | a1 = "desired";
0x004031c8 jal 0x416d98 | sym_cJSON_GetObjectItem ();
0x004031cc nop |
0x004031d0 sw v0, 0x38(fp) | *(var_38h) = v0;
0x004031d4 lw v0, 0x38(fp) | v0 = *(var_38h);
| if (v0 == 0) {
0x004031d8 bnez v0, 0x403204 |
0x004031dc nop |
0x004031e0 lui v0, 0x42 | v0 = 0x420000;
| /* str.get_shadow_handler_do_not_have_desired_ */
0x004031e4 addiu a0, v0, -0x5230 | a0 = "get_shadow_handler do not have desired ";
0x004031e8 jal 0x41d0d0 | fcn_0041d0d0 ();
0x004031ec nop |
0x004031f0 lw a0, 0x30(fp) | a0 = *(var_30h);
0x004031f4 jal 0x412f20 | sym_cJSON_Delete ();
0x004031f8 nop |
0x004031fc b 0x403a14 | goto label_0;
0x00403200 nop |
| }
0x00403204 lw a0, 0x38(fp) | a0 = *(var_38h);
0x00403208 lui v0, 0x42 | v0 = 0x420000;
| /* esilref: 'P7' */
0x0040320c addiu a1, v0, -0x574c | a1 = 0x41a8b4;
0x00403210 jal 0x416d98 | sym_cJSON_GetObjectItem ();
0x00403214 nop |
0x00403218 sw v0, 0x3c(fp) | *(var_3ch) = v0;
0x0040321c lw v0, 0x3c(fp) | v0 = *(var_3ch);
| if (v0 != 0) {
0x00403220 beqz v0, 0x403298 |
0x00403224 nop |
0x00403228 lw v0, 0x3c(fp) | v0 = *(var_3ch);
0x0040322c lw v0, 0x10(v0) | v0 = *((v0 + 4));
0x00403230 lui v1, 0x42 | v1 = 0x420000;
| /* str.has_P7_:_value__s__n */
0x00403234 addiu a0, v1, -0x5748 | a0 = "has P7 : value[%s]\n";
0x00403238 move a1, v0 | a1 = v0;
0x0040323c jal 0x41cfc0 | fcn_0041cfc0 ();
0x00403240 nop |
0x00403244 addiu v0, fp, 0xdc | v0 = fp + 0xdc;
0x00403248 move a0, v0 | a0 = v0;
0x0040324c jal 0x41d460 | fcn_0041d460 ();
0x00403250 nop |
0x00403254 addiu v1, fp, 0xdc | v1 = fp + 0xdc;
0x00403258 addu s0, v1, v0 | s0 = v1 + v0;
0x0040325c addiu v0, fp, 0xdc | v0 = fp + 0xdc;
0x00403260 move a0, v0 | a0 = v0;
0x00403264 jal 0x41d460 | fcn_0041d460 ();
0x00403268 nop |
0x0040326c addiu v1, zero, 0x80 | v1 = 0x80;
0x00403270 subu v1, v1, v0 | __asm ("subu v1, v1, v0");
0x00403274 lw v0, 0x3c(fp) | v0 = *(var_3ch);
0x00403278 lw v0, 0x10(v0) | v0 = *((v0 + 4));
0x0040327c move a0, s0 | a0 = s0;
0x00403280 move a1, v1 | a1 = v1;
0x00403284 lui v1, 0x42 | v1 = 0x420000;
| /* str._P7_:__s_ */
0x00403288 addiu a2, v1, -0x5734 | a2 = "\"P7\":\"%s\";
0x0040328c move a3, v0 | a3 = v0;
0x00403290 jal 0x41cff0 | fcn_0041cff0 ();
0x00403294 nop |
| }
0x00403298 lw a0, 0x38(fp) | a0 = *(var_38h);
0x0040329c lui v0, 0x42 | v0 = 0x420000;
| /* esilref: 'P11' */
0x004032a0 addiu a1, v0, -0x5710 | a1 = 0x41a8f0;
0x004032a4 jal 0x416d98 | sym_cJSON_GetObjectItem ();
0x004032a8 nop |
0x004032ac sw v0, 0x40(fp) | *(var_40h) = v0;
0x004032b0 lw v0, 0x40(fp) | v0 = *(var_40h);
| if (v0 != 0) {
0x004032b4 beqz v0, 0x403718 |
0x004032b8 nop |
0x004032bc sw zero, 0x4c(fp) | *(var_4ch) = 0;
0x004032c0 sw zero, 0x50(fp) | *(var_50h) = 0;
0x004032c4 sw zero, 0x20(fp) | *(var_20h) = 0;
0x004032c8 sw zero, 0x24(fp) | *(var_24h) = 0;
0x004032cc lw a0, 0x40(fp) | a0 = *(var_40h);
0x004032d0 lui v0, 0x42 | v0 = 0x420000;
| /* str.offset */
0x004032d4 addiu a1, v0, -0x570c | a1 = "offset";
0x004032d8 jal 0x416d98 | sym_cJSON_GetObjectItem ();
0x004032dc nop |
0x004032e0 sw v0, 0x4c(fp) | *(var_4ch) = v0;
0x004032e4 lw v0, 0x4c(fp) | v0 = *(var_4ch);
| if (v0 == 0) {
0x004032e8 bnez v0, 0x403318 |
0x004032ec nop |
0x004032f0 lui v0, 0x42 | v0 = 0x420000;
| /* str.P11_do_not_have_offset_ */
0x004032f4 addiu a0, v0, -0x5208 | a0 = "P11 do not have offset ";
0x004032f8 jal 0x41d0d0 | fcn_0041d0d0 ();
0x004032fc nop |
0x00403300 lui v0, 0x42 | v0 = 0x420000;
| /* str.P11_do_not_have_offset__n */
0x00403304 addiu a0, v0, -0x51f0 | a0 = "P11 do not have offset \n";
0x00403308 jal 0x405dbc | sym_log_printf ()
0x0040330c nop |
0x00403310 addiu v0, zero, 1 | v0 = 1;
0x00403314 sw v0, 0x20(fp) | *(var_20h) = v0;
| }
0x00403318 lw a0, 0x40(fp) | a0 = *(var_40h);
0x0040331c lui v0, 0x42 | v0 = 0x420000;
| /* str.execute_ts */
0x00403320 addiu a1, v0, -0x56c8 | a1 = "execute_ts";
0x00403324 jal 0x416d98 | sym_cJSON_GetObjectItem ();
0x00403328 nop |
0x0040332c sw v0, 0x50(fp) | *(var_50h) = v0;
0x00403330 lw v0, 0x50(fp) | v0 = *(var_50h);
| if (v0 == 0) {
0x00403334 bnez v0, 0x403364 |
0x00403338 nop |
0x0040333c lui v0, 0x42 | v0 = 0x420000;
| /* str.P11_do_not_have_execute_ts_ */
0x00403340 addiu a0, v0, -0x51d4 | a0 = "P11 do not have execute_ts ";
0x00403344 jal 0x41d0d0 | fcn_0041d0d0 ();
0x00403348 nop |
0x0040334c lui v0, 0x42 | v0 = 0x420000;
| /* str.P11_do_not_have_execute_ts__n */
0x00403350 addiu a0, v0, -0x51b8 | a0 = "P11 do not have execute_ts \n";
0x00403354 jal 0x405dbc | sym_log_printf ()
0x00403358 nop |
0x0040335c addiu v0, zero, 1 | v0 = 1;
0x00403360 sw v0, 0x24(fp) | *(var_24h) = v0;
| }
0x00403364 lw v0, 0x20(fp) | v0 = *(var_20h);
| if (v0 != 0) {
0x00403368 beqz v0, 0x4033b0 |
0x0040336c nop |
0x00403370 lw v0, 0x24(fp) | v0 = *(var_24h);
| if (v0 == 0) {
0x00403374 beqz v0, 0x4033b0 | goto label_1;
| }
0x00403378 nop |
0x0040337c lw a0, 0x30(fp) | a0 = *(var_30h);
0x00403380 jal 0x412f20 | sym_cJSON_Delete ();
0x00403384 nop |
0x00403388 lui v0, 0x42 | v0 = 0x420000;
| /* str.P11_dont_have_offset_and_execute_ts_return_ */
0x0040338c addiu a0, v0, -0x5198 | a0 = "P11 dont have offset and execute_ts return ";
0x00403390 jal 0x41d0d0 | fcn_0041d0d0 ();
0x00403394 nop |
0x00403398 lui v0, 0x42 | v0 = 0x420000;
| /* str.P11_dont_have_offset_and_execute_ts_return__n */
0x0040339c addiu a0, v0, -0x516c | a0 = "P11 dont have offset and execute_ts return \n";
0x004033a0 jal 0x405dbc | sym_log_printf ()
0x004033a4 nop |
0x004033a8 b 0x403a14 | goto label_0;
0x004033ac nop |
| }
| label_1:
0x004033b0 sw zero, 0x15c(fp) | *(var_15ch) = 0;
0x004033b4 sw zero, 0x160(fp) | *(var_160h) = 0;
0x004033b8 sw zero, 0x164(fp) | *(var_164h) = 0;
0x004033bc sw zero, 0x168(fp) | *(var_168h) = 0;
0x004033c0 sw zero, 0x16c(fp) | *(var_16ch) = 0;
0x004033c4 sw zero, 0x170(fp) | *(var_170h) = 0;
0x004033c8 sw zero, 0x174(fp) | *(var_174h) = 0;
0x004033cc sw zero, 0x178(fp) | *(var_178h) = 0;
0x004033d0 lw v0, 0x20(fp) | v0 = *(var_20h);
| if (v0 != 0) {
0x004033d4 beqz v0, 0x4034cc |
0x004033d8 nop |
0x004033dc lw v0, 0x50(fp) | v0 = *(var_50h);
0x004033e0 lw v0, 0x10(v0) | v0 = *((v0 + 4));
0x004033e4 addiu v1, fp, 0x15c | v1 = fp + 0x15c;
0x004033e8 move a0, v1 | a0 = v1;
0x004033ec addiu a1, zero, 0x20 | a1 = 0x20;
0x004033f0 lui v1, 0x42 | v1 = 0x420000;
| /* esilref: '&s' */
0x004033f4 addiu a2, v1, -0x5618 | a2 = 0x41a9e8;
0x004033f8 move a3, v0 | a3 = v0;
0x004033fc jal 0x41cff0 | fcn_0041cff0 ();
0x00403400 nop |
0x00403404 addiu v0, fp, 0xdc | v0 = fp + 0xdc;
0x00403408 lb v0, (v0) | v0 = *(v0);
| if (v0 != 0) {
0x0040340c beqz v0, 0x403470 |
0x00403410 nop |
0x00403414 addiu v0, fp, 0xdc | v0 = fp + 0xdc;
0x00403418 move a0, v0 | a0 = v0;
0x0040341c jal 0x41d460 | fcn_0041d460 ();
0x00403420 nop |
0x00403424 addiu v1, fp, 0xdc | v1 = fp + 0xdc;
0x00403428 addu s0, v1, v0 | s0 = v1 + v0;
0x0040342c addiu v0, fp, 0xdc | v0 = fp + 0xdc;
0x00403430 move a0, v0 | a0 = v0;
0x00403434 jal 0x41d460 | fcn_0041d460 ();
0x00403438 nop |
0x0040343c addiu v1, zero, 0x80 | v1 = 0x80;
0x00403440 subu v1, v1, v0 | __asm ("subu v1, v1, v0");
0x00403444 lw v0, 0x50(fp) | v0 = *(var_50h);
0x00403448 lw v0, 0x10(v0) | v0 = *((v0 + 4));
0x0040344c move a0, s0 | a0 = s0;
0x00403450 move a1, v1 | a1 = v1;
0x00403454 lui v1, 0x42 | v1 = 0x420000;
| /* str.___P11_:_execute_ts_:__s_ */
0x00403458 addiu a2, v1, -0x5614 | a2 = " ,\"P11\":{\"execute_ts\":\"%s\"}";
0x0040345c move a3, v0 | a3 = v0;
0x00403460 jal 0x41cff0 | fcn_0041cff0 ();
0x00403464 nop |
0x00403468 b 0x4036d4 | goto label_2;
0x0040346c nop |
| }
0x00403470 addiu v0, fp, 0xdc | v0 = fp + 0xdc;
0x00403474 move a0, v0 | a0 = v0;
0x00403478 jal 0x41d460 | fcn_0041d460 ();
0x0040347c nop |
0x00403480 addiu v1, fp, 0xdc | v1 = fp + 0xdc;
0x00403484 addu s0, v1, v0 | s0 = v1 + v0;
0x00403488 addiu v0, fp, 0xdc | v0 = fp + 0xdc;
0x0040348c move a0, v0 | a0 = v0;
0x00403490 jal 0x41d460 | fcn_0041d460 ();
0x00403494 nop |
0x00403498 addiu v1, zero, 0x80 | v1 = 0x80;
0x0040349c subu v1, v1, v0 | __asm ("subu v1, v1, v0");
0x004034a0 lw v0, 0x50(fp) | v0 = *(var_50h);
0x004034a4 lw v0, 0x10(v0) | v0 = *((v0 + 4));
0x004034a8 move a0, s0 | a0 = s0;
0x004034ac move a1, v1 | a1 = v1;
0x004034b0 lui v1, 0x42 | v1 = 0x420000;
| /* str._P11_:_execute_ts_:__s_ */
0x004034b4 addiu a2, v1, -0x55f8 | a2 = "\"P11\":{\"execute_ts\":\"%s\"}";
0x004034b8 move a3, v0 | a3 = v0;
0x004034bc jal 0x41cff0 | fcn_0041cff0 ();
0x004034c0 nop |
0x004034c4 b 0x4036d4 | goto label_2;
0x004034c8 nop |
| }
0x004034cc lw v0, 0x24(fp) | v0 = *(var_24h);
| if (v0 != 0) {
0x004034d0 beqz v0, 0x4035c8 |
0x004034d4 nop |
0x004034d8 lw v0, 0x4c(fp) | v0 = *(var_4ch);
0x004034dc lw v0, 0x10(v0) | v0 = *((v0 + 4));
0x004034e0 addiu v1, fp, 0x15c | v1 = fp + 0x15c;
0x004034e4 move a0, v1 | a0 = v1;
0x004034e8 addiu a1, zero, 0x20 | a1 = 0x20;
0x004034ec lui v1, 0x42 | v1 = 0x420000;
| /* esilref: '&s' */
0x004034f0 addiu a2, v1, -0x5618 | a2 = 0x41a9e8;
0x004034f4 move a3, v0 | a3 = v0;
0x004034f8 jal 0x41cff0 | fcn_0041cff0 ();
0x004034fc nop |
0x00403500 addiu v0, fp, 0xdc | v0 = fp + 0xdc;
0x00403504 lb v0, (v0) | v0 = *(v0);
| if (v0 != 0) {
0x00403508 beqz v0, 0x40356c |
0x0040350c nop |
0x00403510 addiu v0, fp, 0xdc | v0 = fp + 0xdc;
0x00403514 move a0, v0 | a0 = v0;
0x00403518 jal 0x41d460 | fcn_0041d460 ();
0x0040351c nop |
0x00403520 addiu v1, fp, 0xdc | v1 = fp + 0xdc;
0x00403524 addu s0, v1, v0 | s0 = v1 + v0;
0x00403528 addiu v0, fp, 0xdc | v0 = fp + 0xdc;
0x0040352c move a0, v0 | a0 = v0;
0x00403530 jal 0x41d460 | fcn_0041d460 ();
0x00403534 nop |
0x00403538 addiu v1, zero, 0x80 | v1 = 0x80;
0x0040353c subu v1, v1, v0 | __asm ("subu v1, v1, v0");
0x00403540 lw v0, 0x4c(fp) | v0 = *(var_4ch);
0x00403544 lw v0, 0x10(v0) | v0 = *((v0 + 4));
0x00403548 move a0, s0 | a0 = s0;
0x0040354c move a1, v1 | a1 = v1;
0x00403550 lui v1, 0x42 | v1 = 0x420000;
| /* str.___P11_:_offset_:__s_ */
0x00403554 addiu a2, v1, -0x55dc | a2 = " ,\"P11\":{\"offset\":\"%s\"}";
0x00403558 move a3, v0 | a3 = v0;
0x0040355c jal 0x41cff0 | fcn_0041cff0 ();
0x00403560 nop |
0x00403564 b 0x4036d4 | goto label_2;
0x00403568 nop |
| }
0x0040356c addiu v0, fp, 0xdc | v0 = fp + 0xdc;
0x00403570 move a0, v0 | a0 = v0;
0x00403574 jal 0x41d460 | fcn_0041d460 ();
0x00403578 nop |
0x0040357c addiu v1, fp, 0xdc | v1 = fp + 0xdc;
0x00403580 addu s0, v1, v0 | s0 = v1 + v0;
0x00403584 addiu v0, fp, 0xdc | v0 = fp + 0xdc;
0x00403588 move a0, v0 | a0 = v0;
0x0040358c jal 0x41d460 | fcn_0041d460 ();
0x00403590 nop |
0x00403594 addiu v1, zero, 0x80 | v1 = 0x80;
0x00403598 subu v1, v1, v0 | __asm ("subu v1, v1, v0");
0x0040359c lw v0, 0x4c(fp) | v0 = *(var_4ch);
0x004035a0 lw v0, 0x10(v0) | v0 = *((v0 + 4));
0x004035a4 move a0, s0 | a0 = s0;
0x004035a8 move a1, v1 | a1 = v1;
0x004035ac lui v1, 0x42 | v1 = 0x420000;
| /* str._P11_:_offset_:__s_ */
0x004035b0 addiu a2, v1, -0x55c4 | a2 = "\"P11\":{\"offset\":\"%s\"}";
0x004035b4 move a3, v0 | a3 = v0;
0x004035b8 jal 0x41cff0 | fcn_0041cff0 ();
0x004035bc nop |
0x004035c0 b 0x4036d4 | goto label_2;
0x004035c4 nop |
| }
0x004035c8 lw v0, 0x50(fp) | v0 = *(var_50h);
0x004035cc lw v0, 0x10(v0) | v0 = *((v0 + 4));
0x004035d0 lw v1, 0x4c(fp) | v1 = *(var_4ch);
0x004035d4 lw a0, 0x10(v1) | a0 = *((v1 + 4));
0x004035d8 addiu v1, fp, 0x15c | v1 = fp + 0x15c;
0x004035dc sw a0, 0x10(sp) | *(var_10h) = a0;
0x004035e0 move a0, v1 | a0 = v1;
0x004035e4 addiu a1, zero, 0x20 | a1 = 0x20;
0x004035e8 lui v1, 0x42 | v1 = 0x420000;
| /* esilref: '&s&s' */
0x004035ec addiu a2, v1, -0x55ac | a2 = "%s%s";
0x004035f0 move a3, v0 | a3 = v0;
0x004035f4 jal 0x41cff0 | fcn_0041cff0 ();
0x004035f8 nop |
0x004035fc addiu v0, fp, 0xdc | v0 = fp + 0xdc;
0x00403600 lb v0, (v0) | v0 = *(v0);
| if (v0 != 0) {
0x00403604 beqz v0, 0x403674 |
0x00403608 nop |
0x0040360c addiu v0, fp, 0xdc | v0 = fp + 0xdc;
0x00403610 move a0, v0 | a0 = v0;
0x00403614 jal 0x41d460 | fcn_0041d460 ();
0x00403618 nop |
0x0040361c addiu v1, fp, 0xdc | v1 = fp + 0xdc;
0x00403620 addu s0, v1, v0 | s0 = v1 + v0;
0x00403624 addiu v0, fp, 0xdc | v0 = fp + 0xdc;
0x00403628 move a0, v0 | a0 = v0;
0x0040362c jal 0x41d460 | fcn_0041d460 ();
0x00403630 nop |
0x00403634 addiu v1, zero, 0x80 | v1 = 0x80;
0x00403638 subu v1, v1, v0 | __asm ("subu v1, v1, v0");
0x0040363c lw v0, 0x4c(fp) | v0 = *(var_4ch);
0x00403640 lw v0, 0x10(v0) | v0 = *((v0 + 4));
0x00403644 lw a0, 0x50(fp) | a0 = *(var_50h);
0x00403648 lw a0, 0x10(a0) | a0 = *((a0 + 4));
0x0040364c sw a0, 0x10(sp) | *(var_10h) = a0;
0x00403650 move a0, s0 | a0 = s0;
0x00403654 move a1, v1 | a1 = v1;
0x00403658 lui v1, 0x42 | v1 = 0x420000;
| /* str.___P11_:_offset_:__s___execute_ts_:__s_ */
0x0040365c addiu a2, v1, -0x55a4 | a2 = " ,\"P11\":{\"offset\":\"%s\",\"execute_ts\":\"%s\"}";
0x00403660 move a3, v0 | a3 = v0;
0x00403664 jal 0x41cff0 | fcn_0041cff0 ();
0x00403668 nop |
0x0040366c b 0x4036d4 | goto label_2;
0x00403670 nop |
| }
0x00403674 addiu v0, fp, 0xdc | v0 = fp + 0xdc;
0x00403678 move a0, v0 | a0 = v0;
0x0040367c jal 0x41d460 | fcn_0041d460 ();
0x00403680 nop |
0x00403684 addiu v1, fp, 0xdc | v1 = fp + 0xdc;
0x00403688 addu s0, v1, v0 | s0 = v1 + v0;
0x0040368c addiu v0, fp, 0xdc | v0 = fp + 0xdc;
0x00403690 move a0, v0 | a0 = v0;
0x00403694 jal 0x41d460 | fcn_0041d460 ();
0x00403698 nop |
0x0040369c addiu v1, zero, 0x80 | v1 = 0x80;
0x004036a0 subu v1, v1, v0 | __asm ("subu v1, v1, v0");
0x004036a4 lw v0, 0x4c(fp) | v0 = *(var_4ch);
0x004036a8 lw v0, 0x10(v0) | v0 = *((v0 + 4));
0x004036ac lw a0, 0x50(fp) | a0 = *(var_50h);
0x004036b0 lw a0, 0x10(a0) | a0 = *((a0 + 4));
0x004036b4 sw a0, 0x10(sp) | *(var_10h) = a0;
0x004036b8 move a0, s0 | a0 = s0;
0x004036bc move a1, v1 | a1 = v1;
0x004036c0 lui v1, 0x42 | v1 = 0x420000;
| /* str._P11_:_offset_:__s___execute_ts_:__s_ */
0x004036c4 addiu a2, v1, -0x5578 | a2 = "\"P11\":{\"offset\":\"%s\",\"execute_ts\":\"%s\"}";
0x004036c8 move a3, v0 | a3 = v0;
0x004036cc jal 0x41cff0 | fcn_0041cff0 ();
0x004036d0 nop |
| label_2:
0x004036d4 addiu v0, fp, 0x15c | v0 = fp + 0x15c;
0x004036d8 lui v1, 0x42 | v1 = 0x420000;
| /* str.e_0_31m_send_IOT_BACK_CMD_ADJUST_TIMEZONE1111___s_e_0_39m_n */
0x004036dc addiu a0, v1, -0x5550 | a0 = "\e[0 send IOT_BACK_CMD_ADJUST_TIMEZONE1111 %s \e[0\n";
0x004036e0 move a1, v0 | a1 = v0;
0x004036e4 jal 0x41cfc0 | fcn_0041cfc0 ();
0x004036e8 nop |
0x004036ec addiu v0, fp, 0x15c | v0 = fp + 0x15c;
0x004036f0 lui v1, 0x42 | v1 = 0x420000;
| /* str.send_IOT_BACK_CMD_ADJUST_TIMEZONE1111___s_n */
0x004036f4 addiu a0, v1, -0x5514 | a0 = "send IOT_BACK_CMD_ADJUST_TIMEZONE1111 %s\n";
0x004036f8 move a1, v0 | a1 = v0;
0x004036fc jal 0x405dbc | sym_log_printf ()
0x00403700 nop |
0x00403704 addiu v0, fp, 0x15c | v0 = fp + 0x15c;
0x00403708 addiu a0, zero, 0x4e0 | a0 = 0x4e0;
0x0040370c move a1, v0 | a1 = v0;
0x00403710 jal 0x402004 | sym_send_command_s2m ();
0x00403714 nop |
| }
0x00403718 lw a0, 0x38(fp) | a0 = *(var_38h);
0x0040371c lui v0, 0x42 | v0 = 0x420000;
| /* esilref: 'duration' */
0x00403720 addiu a1, v0, -0x54e8 | a1 = "duration";
0x00403724 jal 0x416d98 | sym_cJSON_GetObjectItem ();
0x00403728 nop |
0x0040372c sw v0, 0x44(fp) | *(var_44h) = v0;
0x00403730 lw v0, 0x44(fp) | v0 = *(var_44h);
| if (v0 != 0) {
0x00403734 beqz v0, 0x4039a0 |
0x00403738 nop |
0x0040373c sw zero, 0x54(fp) | *(var_54h) = 0;
0x00403740 sw zero, 0x58(fp) | *(var_58h) = 0;
0x00403744 sw zero, 0x28(fp) | *(var_28h) = 0;
0x00403748 sw zero, 0x2c(fp) | *(var_2ch) = 0;
0x0040374c lw a0, 0x44(fp) | a0 = *(var_44h);
0x00403750 lui v0, 0x42 | v0 = 0x420000;
| /* str.alarm_video */
0x00403754 addiu a1, v0, -0x54dc | a1 = "alarm_video";
0x00403758 jal 0x416d98 | sym_cJSON_GetObjectItem ();
0x0040375c nop |
0x00403760 sw v0, 0x54(fp) | *(var_54h) = v0;
0x00403764 lw v0, 0x54(fp) | v0 = *(var_54h);
| if (v0 == 0) {
0x00403768 bnez v0, 0x403798 |
0x0040376c nop |
0x00403770 lui v0, 0x42 | v0 = 0x420000;
| /* str.json_duration_do_not_have_json_alarm_video_111_ */
0x00403774 addiu a0, v0, -0x54d0 | a0 = "json_duration do not have json_alarm_video 111 ";
0x00403778 jal 0x41d0d0 | fcn_0041d0d0 ();
0x0040377c nop |
0x00403780 lui v0, 0x42 | v0 = 0x420000;
| /* str.json_duration_do_not_have_json_alarm_video_111__n */
0x00403784 addiu a0, v0, -0x54a0 | a0 = "json_duration do not have json_alarm_video 111 \n";
0x00403788 jal 0x405dbc | sym_log_printf ()
0x0040378c nop |
0x00403790 addiu v0, zero, 1 | v0 = 1;
0x00403794 sw v0, 0x28(fp) | *(var_28h) = v0;
| }
0x00403798 lw a0, 0x44(fp) | a0 = *(var_44h);
0x0040379c lui v0, 0x42 | v0 = 0x420000;
| /* str.silent */
0x004037a0 addiu a1, v0, -0x546c | a1 = "silent";
0x004037a4 jal 0x416d98 | sym_cJSON_GetObjectItem ();
0x004037a8 nop |
0x004037ac sw v0, 0x58(fp) | *(var_58h) = v0;
0x004037b0 lw v0, 0x58(fp) | v0 = *(var_58h);
| if (v0 == 0) {
0x004037b4 bnez v0, 0x4037e4 |
0x004037b8 nop |
0x004037bc lui v0, 0x42 | v0 = 0x420000;
| /* str.json_duration_do_not_have_json_silent_222_ */
0x004037c0 addiu a0, v0, -0x5464 | a0 = "json_duration do not have json_silent 222 ";
0x004037c4 jal 0x41d0d0 | fcn_0041d0d0 ();
0x004037c8 nop |
0x004037cc lui v0, 0x42 | v0 = 0x420000;
| /* str.json_duration_do_not_have_json_silent_222__n */
0x004037d0 addiu a0, v0, -0x5438 | a0 = "json_duration do not have json_silent 222 \n";
0x004037d4 jal 0x405dbc | sym_log_printf ()
0x004037d8 nop |
0x004037dc addiu v0, zero, 1 | v0 = 1;
0x004037e0 sw v0, 0x2c(fp) | *(var_2ch) = v0;
| }
0x004037e4 lw v0, 0x28(fp) | v0 = *(var_28h);
| if (v0 == 0) {
0x004037e8 bnez v0, 0x4037fc |
0x004037ec nop |
0x004037f0 lw v0, 0x2c(fp) | v0 = *(var_2ch);
| if (v0 == 0) {
0x004037f4 beqz v0, 0x403830 | goto label_3;
| }
0x004037f8 nop |
| }
0x004037fc lw a0, 0x30(fp) | a0 = *(var_30h);
0x00403800 jal 0x412f20 | sym_cJSON_Delete ();
0x00403804 nop |
0x00403808 lui v0, 0x42 | v0 = 0x420000;
| /* str.json_duration_dont_have_json_alarm_video_or_json_silent_return_333 */
0x0040380c addiu a0, v0, -0x540c | a0 = "json_duration dont have json_alarm_video or json_silent return 333";
0x00403810 jal 0x41d0d0 | fcn_0041d0d0 ();
0x00403814 nop |
0x00403818 lui v0, 0x42 | v0 = 0x420000;
| /* str.json_duration_dont_have_json_alarm_video_or_json_silent_return_333_n */
0x0040381c addiu a0, v0, -0x53c8 | a0 = "json_duration dont have json_alarm_video or json_silent return 333\n";
0x00403820 jal 0x405dbc | sym_log_printf ()
0x00403824 nop |
0x00403828 b 0x403a14 | goto label_0;
0x0040382c nop |
| label_3:
0x00403830 sw zero, 0x15c(fp) | *(var_15ch) = 0;
0x00403834 sw zero, 0x160(fp) | *(var_160h) = 0;
0x00403838 sw zero, 0x164(fp) | *(var_164h) = 0;
0x0040383c sw zero, 0x168(fp) | *(var_168h) = 0;
0x00403840 sw zero, 0x16c(fp) | *(var_16ch) = 0;
0x00403844 sw zero, 0x170(fp) | *(var_170h) = 0;
0x00403848 sw zero, 0x174(fp) | *(var_174h) = 0;
0x0040384c sw zero, 0x178(fp) | *(var_178h) = 0;
0x00403850 lw v0, 0x54(fp) | v0 = *(var_54h);
0x00403854 lw v0, 0x10(v0) | v0 = *((v0 + 4));
0x00403858 lw v1, 0x58(fp) | v1 = *(var_58h);
0x0040385c lw a0, 0x10(v1) | a0 = *((v1 + 4));
0x00403860 addiu v1, fp, 0x15c | v1 = fp + 0x15c;
0x00403864 sw a0, 0x10(sp) | *(var_10h) = a0;
0x00403868 move a0, v1 | a0 = v1;
0x0040386c addiu a1, zero, 0x20 | a1 = 0x20;
0x00403870 lui v1, 0x42 | v1 = 0x420000;
| /* str.alarm:_s_silent:_s */
0x00403874 addiu a2, v1, -0x5384 | a2 = "alarm:%s,silent:%s";
0x00403878 move a3, v0 | a3 = v0;
0x0040387c jal 0x41cff0 | fcn_0041cff0 ();
0x00403880 nop |
0x00403884 addiu v0, fp, 0xdc | v0 = fp + 0xdc;
0x00403888 lb v0, (v0) | v0 = *(v0);
| if (v0 != 0) {
0x0040388c beqz v0, 0x4038fc |
0x00403890 nop |
0x00403894 addiu v0, fp, 0xdc | v0 = fp + 0xdc;
0x00403898 move a0, v0 | a0 = v0;
0x0040389c jal 0x41d460 | fcn_0041d460 ();
0x004038a0 nop |
0x004038a4 addiu v1, fp, 0xdc | v1 = fp + 0xdc;
0x004038a8 addu s0, v1, v0 | s0 = v1 + v0;
0x004038ac addiu v0, fp, 0xdc | v0 = fp + 0xdc;
0x004038b0 move a0, v0 | a0 = v0;
0x004038b4 jal 0x41d460 | fcn_0041d460 ();
0x004038b8 nop |
0x004038bc addiu v1, zero, 0x80 | v1 = 0x80;
0x004038c0 subu v1, v1, v0 | __asm ("subu v1, v1, v0");
0x004038c4 lw v0, 0x54(fp) | v0 = *(var_54h);
0x004038c8 lw v0, 0x10(v0) | v0 = *((v0 + 4));
0x004038cc lw a0, 0x58(fp) | a0 = *(var_58h);
0x004038d0 lw a0, 0x10(a0) | a0 = *((a0 + 4));
0x004038d4 sw a0, 0x10(sp) | *(var_10h) = a0;
0x004038d8 move a0, s0 | a0 = s0;
0x004038dc move a1, v1 | a1 = v1;
0x004038e0 lui v1, 0x42 | v1 = 0x420000;
| /* str.___duration_:_alarm_video_:__s___silent_:__s_ */
0x004038e4 addiu a2, v1, -0x5370 | a2 = " ,\"duration\":{\"alarm_video\":\"%s\",\"silent\":\"%s\"}";
0x004038e8 move a3, v0 | a3 = v0;
0x004038ec jal 0x41cff0 | fcn_0041cff0 ();
0x004038f0 nop |
0x004038f4 b 0x40395c | goto label_4;
0x004038f8 nop |
| }
0x004038fc addiu v0, fp, 0xdc | v0 = fp + 0xdc;
0x00403900 move a0, v0 | a0 = v0;
0x00403904 jal 0x41d460 | fcn_0041d460 ();
0x00403908 nop |
0x0040390c addiu v1, fp, 0xdc | v1 = fp + 0xdc;
0x00403910 addu s0, v1, v0 | s0 = v1 + v0;
0x00403914 addiu v0, fp, 0xdc | v0 = fp + 0xdc;
0x00403918 move a0, v0 | a0 = v0;
0x0040391c jal 0x41d460 | fcn_0041d460 ();
0x00403920 nop |
0x00403924 addiu v1, zero, 0x80 | v1 = 0x80;
0x00403928 subu v1, v1, v0 | __asm ("subu v1, v1, v0");
0x0040392c lw v0, 0x54(fp) | v0 = *(var_54h);
0x00403930 lw v0, 0x10(v0) | v0 = *((v0 + 4));
0x00403934 lw a0, 0x58(fp) | a0 = *(var_58h);
0x00403938 lw a0, 0x10(a0) | a0 = *((a0 + 4));
0x0040393c sw a0, 0x10(sp) | *(var_10h) = a0;
0x00403940 move a0, s0 | a0 = s0;
0x00403944 move a1, v1 | a1 = v1;
0x00403948 lui v1, 0x42 | v1 = 0x420000;
| /* str._duration_:_alarm_video_:__s___silent_:__s_ */
0x0040394c addiu a2, v1, -0x5340 | a2 = "\"duration\":{\"alarm_video\":\"%s\",\"silent\":\"%s\"}";
0x00403950 move a3, v0 | a3 = v0;
0x00403954 jal 0x41cff0 | fcn_0041cff0 ();
0x00403958 nop |
| label_4:
0x0040395c addiu v0, fp, 0x15c | v0 = fp + 0x15c;
0x00403960 addiu a0, zero, 0x4e8 | a0 = 0x4e8;
0x00403964 move a1, v0 | a1 = v0;
0x00403968 jal 0x402004 | sym_send_command_s2m ();
0x0040396c nop |
0x00403970 addiu v0, fp, 0x15c | v0 = fp + 0x15c;
0x00403974 lui v1, 0x42 | v1 = 0x420000;
| /* str.e_0_31m_Pay_For_Time___s__e_0_39m__r_n */
0x00403978 addiu a0, v1, -0x5310 | a0 = "\e[0= Pay For Time (%s) =\e[0 \r\n";
0x0040397c move a1, v0 | a1 = v0;
0x00403980 jal 0x41cfc0 | fcn_0041cfc0 ();
0x00403984 nop |
0x00403988 addiu v0, fp, 0x15c | v0 = fp + 0x15c;
0x0040398c lui v1, 0x42 | v1 = 0x420000;
| /* str.send_IOT_BACK_CMD_ADJUST_PayForTime___s_n */
0x00403990 addiu a0, v1, -0x52e8 | a0 = "send IOT_BACK_CMD_ADJUST_PayForTime %s\n";
0x00403994 move a1, v0 | a1 = v0;
0x00403998 jal 0x405dbc | sym_log_printf ()
0x0040399c nop |
| }
0x004039a0 addiu v1, fp, 0x5c | v1 = fp + 0x5c;
0x004039a4 addiu v0, fp, 0xdc | v0 = fp + 0xdc;
0x004039a8 move a0, v1 | a0 = v1;
0x004039ac addiu a1, zero, 0x80 | a1 = 0x80;
0x004039b0 lui v1, 0x42 | v1 = 0x420000;
| /* str._state_:_reported_:_s__desired_:null */
0x004039b4 addiu a2, v1, -0x52bc | a2 = "{\"state\":{\"reported\":{%s},\"desired\":null}}";
0x004039b8 move a3, v0 | a3 = v0;
0x004039bc jal 0x41cff0 | fcn_0041cff0 ();
0x004039c0 nop |
0x004039c4 addiu v0, fp, 0x5c | v0 = fp + 0x5c;
0x004039c8 lui v1, 0x42 | v1 = 0x420000;
| /* str.Ack_send__s_n */
0x004039cc addiu a0, v1, -0x513c | a0 = "Ack send %s\n";
0x004039d0 move a1, v0 | a1 = v0;
0x004039d4 jal 0x41cfc0 | fcn_0041cfc0 ();
0x004039d8 nop |
0x004039dc addiu v0, fp, 0x5c | v0 = fp + 0x5c;
0x004039e0 lui v1, 0x42 | v1 = 0x420000;
| /* str.Ack_send__s_n */
0x004039e4 addiu a0, v1, -0x513c | a0 = "Ack send %s\n";
0x004039e8 move a1, v0 | a1 = v0;
0x004039ec jal 0x405dbc | sym_log_printf ()
0x004039f0 nop |
0x004039f4 addiu v0, fp, 0x5c | v0 = fp + 0x5c;
0x004039f8 lw a0, 0x190(fp) | a0 = *(arg_190h);
0x004039fc move a1, v0 | a1 = v0;
0x00403a00 jal 0x4062dc | sym_report_shadow_handler ();
0x00403a04 nop |
0x00403a08 lw a0, 0x30(fp) | a0 = *(var_30h);
0x00403a0c jal 0x412f20 | sym_cJSON_Delete ();
0x00403a10 nop |
| label_0:
0x00403a14 move sp, fp |
0x00403a18 lw ra, 0x18c(sp) | ra = *(var_18ch);
0x00403a1c lw fp, 0x188(sp) | fp = *(var_188h);
0x00403a20 lw s0, 0x184(sp) | s0 = *(var_184h);
0x00403a24 addiu sp, sp, 0x190 |
0x00403a28 jr ra | return v0;
0x00403a2c nop |
| }
; assembly | /* r2dec pseudo code output */
| /* /logs/firmware/unblob_extracted/firmware_extract/6225984-11075644.jffs2_new_extract/bin/hl_client @ 0x41a328 */
| #include <stdint.h>
|
; (fcn) sym.insert_msg_to_resend_list () | void insert_msg_to_resend_list () {
0x0041a328 addiu sp, sp, -0x30 |
0x0041a32c sw ra, 0x2c(sp) | *(var_2ch) = ra;
0x0041a330 sw fp, 0x28(sp) | *(var_28h) = fp;
0x0041a334 move fp, sp | fp = sp;
0x0041a338 sw a0, 0x30(fp) | *(arg_30h) = a0;
0x0041a33c sw a1, 0x34(fp) | *(arg_34h) = a1;
0x0041a340 sw a2, 0x38(fp) | *(arg_38h) = a2;
0x0041a344 sw a3, 0x3c(fp) | *(arg_3ch) = a3;
0x0041a348 lw v0, 0x30(fp) | v0 = *(arg_30h);
| if (v0 == 0) {
0x0041a34c beqz v0, 0x41a4fc | goto label_0;
| }
0x0041a350 nop |
0x0041a354 lw v0, 0x34(fp) | v0 = *(arg_34h);
| if (v0 == 0) {
0x0041a358 beqz v0, 0x41a4fc | goto label_0;
| }
0x0041a35c nop |
0x0041a360 lw v0, 0x3c(fp) | v0 = *(arg_3ch);
| if (v0 == 0) {
0x0041a364 beqz v0, 0x41a4fc | goto label_0;
| }
0x0041a368 nop |
0x0041a36c sw zero, 0x20(fp) | *(var_20h) = 0;
0x0041a370 lw v0, 0x30(fp) | v0 = *(arg_30h);
0x0041a374 lw v0, 4(v0) | v0 = *((v0 + 1));
0x0041a378 sw v0, 0x18(fp) | *(var_18h) = v0;
0x0041a37c sw zero, 0x1c(fp) | *(var_1ch) = 0;
0x0041a380 addiu a0, zero, 0x484 | a0 = 0x484;
0x0041a384 jal 0x41d0f0 | sym_imp_malloc ();
0x0041a388 nop |
0x0041a38c sw v0, 0x20(fp) | *(var_20h) = v0;
0x0041a390 lw v0, 0x20(fp) | v0 = *(var_20h);
| if (v0 == 0) {
0x0041a394 bnez v0, 0x41a3d4 |
0x0041a398 nop |
0x0041a39c lui v0, 0x42 | v0 = 0x420000;
| /* str._IOT___s__malloc_failed_n */
0x0041a3a0 addiu a0, v0, -0x3160 | a0 = "[IOT][%s] malloc failed\n";
0x0041a3a4 lui v0, 0x42 | v0 = 0x420000;
| /* obj.__func__.3630 */
0x0041a3a8 addiu a1, v0, -0x3124 | a1 = "insert_msg_to_resend_list";
0x0041a3ac jal 0x41cfc0 | fcn_0041cfc0 ();
0x0041a3b0 nop |
0x0041a3b4 lui v0, 0x42 | v0 = 0x420000;
| /* str._IOT___s__malloc_failed_n */
0x0041a3b8 addiu a0, v0, -0x3160 | a0 = "[IOT][%s] malloc failed\n";
0x0041a3bc lui v0, 0x42 | v0 = 0x420000;
| /* obj.__func__.3630 */
0x0041a3c0 addiu a1, v0, -0x3124 | a1 = "insert_msg_to_resend_list";
0x0041a3c4 jal 0x405dbc | sym_log_printf ()
0x0041a3c8 nop |
0x0041a3cc b 0x41a500 | goto label_1;
0x0041a3d0 nop |
| }
0x0041a3d4 lw a0, 0x20(fp) | a0 = *(var_20h);
0x0041a3d8 move a1, zero | a1 = 0;
0x0041a3dc addiu a2, zero, 0x484 | a2 = 0x484;
0x0041a3e0 jal 0x41d300 | fcn_0041d300 ();
0x0041a3e4 nop |
0x0041a3e8 lw v0, 0x20(fp) | v0 = *(var_20h);
0x0041a3ec sw zero, (v0) | *(v0) = 0;
0x0041a3f0 lw v0, 0x20(fp) | v0 = *(var_20h);
0x0041a3f4 addiu v1, v0, 4 | v1 = v0 + 4;
0x0041a3f8 lw v0, 0x38(fp) | v0 = *(arg_38h);
0x0041a3fc move a0, v1 | a0 = v1;
0x0041a400 lw a1, 0x34(fp) | a1 = *(arg_34h);
0x0041a404 move a2, v0 | a2 = v0;
0x0041a408 jal 0x41d270 | fcn_0041d270 ();
0x0041a40c nop |
0x0041a410 lw v0, 0x20(fp) | v0 = *(var_20h);
0x0041a414 addiu v1, v0, 0x84 | v1 = v0 + 0x84;
0x0041a418 lw v0, 0x40(fp) | v0 = *(arg_40h);
0x0041a41c move a0, v1 | a0 = v1;
0x0041a420 lw a1, 0x3c(fp) | a1 = *(arg_3ch);
0x0041a424 move a2, v0 | a2 = v0;
0x0041a428 jal 0x41d270 | fcn_0041d270 ();
0x0041a42c nop |
0x0041a430 lw v0, 0x20(fp) | v0 = *(var_20h);
0x0041a434 addiu v1, v0, 4 | v1 = v0 + 4;
0x0041a438 lw v0, 0x20(fp) | v0 = *(var_20h);
0x0041a43c addiu v0, v0, 0x84 | v0 += 0x84;
0x0041a440 lui a0, 0x42 | a0 = "new_data topic is %s,msg is %s\n";
| /* str.new_data_topic_is__s_msg_is__s_n */
0x0041a444 addiu a0, a0, -0x3144 |
0x0041a448 move a1, v1 | a1 = v1;
0x0041a44c move a2, v0 | a2 = v0;
0x0041a450 jal 0x41cfc0 | fcn_0041cfc0 ();
0x0041a454 nop |
0x0041a458 lw v0, 0x20(fp) | v0 = *(var_20h);
0x0041a45c addiu v1, v0, 4 | v1 = v0 + 4;
0x0041a460 lw v0, 0x20(fp) | v0 = *(var_20h);
0x0041a464 addiu v0, v0, 0x84 | v0 += 0x84;
0x0041a468 lui a0, 0x42 | a0 = "new_data topic is %s,msg is %s\n";
| /* str.new_data_topic_is__s_msg_is__s_n */
0x0041a46c addiu a0, a0, -0x3144 |
0x0041a470 move a1, v1 | a1 = v1;
0x0041a474 move a2, v0 | a2 = v0;
0x0041a478 jal 0x405dbc | sym_log_printf ()
0x0041a47c nop |
0x0041a480 lw v0, 0x18(fp) | v0 = *(var_18h);
| if (v0 != 0) {
0x0041a484 bnez v0, 0x41a4c8 | goto label_2;
| }
0x0041a488 nop |
0x0041a48c lw v0, 0x30(fp) | v0 = *(arg_30h);
0x0041a490 lw v1, 0x20(fp) | v1 = *(var_20h);
0x0041a494 sw v1, 4(v0) | *((v0 + 1)) = v1;
0x0041a498 lw v0, 0x30(fp) | v0 = *(arg_30h);
0x0041a49c lw v0, (v0) | v0 = *(v0);
0x0041a4a0 addiu v1, v0, 1 | v1 = v0 + 1;
0x0041a4a4 lw v0, 0x30(fp) | v0 = *(arg_30h);
0x0041a4a8 sw v1, (v0) | *(v0) = v1;
0x0041a4ac b 0x41a500 | goto label_1;
0x0041a4b0 nop |
| do {
0x0041a4b4 lw v0, 0x18(fp) | v0 = *(var_18h);
0x0041a4b8 sw v0, 0x1c(fp) | *(var_1ch) = v0;
0x0041a4bc lw v0, 0x18(fp) | v0 = *(var_18h);
0x0041a4c0 lw v0, (v0) | v0 = *(v0);
0x0041a4c4 sw v0, 0x18(fp) | *(var_18h) = v0;
| label_2:
0x0041a4c8 lw v0, 0x18(fp) | v0 = *(var_18h);
0x0041a4cc bnez v0, 0x41a4b4 |
| } while (v0 != 0);
0x0041a4d0 nop |
0x0041a4d4 lw v0, 0x1c(fp) | v0 = *(var_1ch);
0x0041a4d8 lw v1, 0x20(fp) | v1 = *(var_20h);
0x0041a4dc sw v1, (v0) | *(v0) = v1;
0x0041a4e0 lw v0, 0x30(fp) | v0 = *(arg_30h);
0x0041a4e4 lw v0, (v0) | v0 = *(v0);
0x0041a4e8 addiu v1, v0, 1 | v1 = v0 + 1;
0x0041a4ec lw v0, 0x30(fp) | v0 = *(arg_30h);
0x0041a4f0 sw v1, (v0) | *(v0) = v1;
0x0041a4f4 b 0x41a500 | goto label_1;
0x0041a4f8 nop |
| label_0:
0x0041a4fc nop |
| label_1:
0x0041a500 move sp, fp |
0x0041a504 lw ra, 0x2c(sp) | ra = *(var_2ch);
0x0041a508 lw fp, 0x28(sp) | fp = *(var_28h);
0x0041a50c addiu sp, sp, 0x30 |
0x0041a510 jr ra | return v1;
0x0041a514 nop |
| }
; assembly | /* r2dec pseudo code output */
| /* /logs/firmware/unblob_extracted/firmware_extract/6225984-11075644.jffs2_new_extract/bin/hl_client @ 0x403a30 */
| #include <stdint.h>
|
; (fcn) sym.msgarrv () | void msgarrv () {
0x00403a30 addiu sp, sp, -0x8e0 |
0x00403a34 sw ra, 0x8dc(sp) | *(var_8dch) = ra;
0x00403a38 sw fp, 0x8d8(sp) | *(var_8d8h) = fp;
0x00403a3c move fp, sp | fp = sp;
0x00403a40 sw a0, 0x8e0(fp) | *(arg_8e0h) = a0;
0x00403a44 sw a1, 0x8e4(fp) | *(arg_8e4h) = a1;
0x00403a48 move v0, a2 | v0 = a2;
0x00403a4c sw a3, 0x8ec(fp) | *(arg_8ech) = a3;
0x00403a50 sh v0, 0x8e8(fp) | *(arg_8e8h) = v0;
0x00403a54 move a0, zero | a0 = 0;
0x00403a58 jal 0x41d320 | fcn_0041d320 ();
0x00403a5c nop |
0x00403a60 move a1, v0 | a1 = v0;
0x00403a64 lw v0, 0x8ec(fp) | v0 = *(arg_8ech);
0x00403a68 lbu v0, 5(v0) | v0 = *((v0 + 5));
0x00403a6c move v1, v0 | v1 = v0;
0x00403a70 lw v0, 0x8ec(fp) | v0 = *(arg_8ech);
0x00403a74 lhu v0, 6(v0) | v0 = *((v0 + 3));
0x00403a78 lui a0, 0x42 | a0 = "time[%ld],msgarrved,isDup is %d\xef\xbc\x8cqueue id is %d\n";
| /* str.time__ld__msgarrved_isDup_is__dqueue_id_is__d_n */
0x00403a7c addiu a0, a0, -0x512c |
0x00403a80 move a2, v1 | a2 = v1;
0x00403a84 move a3, v0 | a3 = v0;
0x00403a88 jal 0x41cfc0 | fcn_0041cfc0 ();
0x00403a8c nop |
0x00403a90 addiu v0, zero, -1 | v0 = -1;
0x00403a94 sw v0, 0x24(fp) | *(var_24h) = v0;
0x00403a98 sw zero, 0x28(fp) | *(var_28h) = 0;
0x00403a9c sw zero, 0x2c(fp) | *(var_2ch) = 0;
0x00403aa0 sw zero, 0x30(fp) | *(var_30h) = 0;
0x00403aa4 sw zero, 0x34(fp) | *(var_34h) = 0;
0x00403aa8 sw zero, 0xc0(fp) | *(var_c0h) = 0;
0x00403aac sb zero, 0xc4(fp) | *(var_c4h) = 0;
0x00403ab0 sw zero, 0x38(fp) | *(var_38h) = 0;
0x00403ab4 sw zero, 0xc8(fp) | *(var_c8h) = 0;
0x00403ab8 addiu v1, fp, 0xcc | v1 = fp + 0xcc;
0x00403abc addiu v0, zero, 0x400 | v0 = 0x400;
0x00403ac0 move a0, v1 | a0 = v1;
0x00403ac4 move a1, zero | a1 = 0;
0x00403ac8 move a2, v0 | a2 = v0;
0x00403acc jal 0x41d300 | fcn_0041d300 ();
0x00403ad0 nop |
0x00403ad4 addiu v0, fp, 0x4d4 | v0 = fp + 0x4d4;
0x00403ad8 move a0, v0 | a0 = v0;
0x00403adc move a1, zero | a1 = 0;
0x00403ae0 addiu a2, zero, 0x400 | a2 = 0x400;
0x00403ae4 jal 0x41d300 | fcn_0041d300 ();
0x00403ae8 nop |
0x00403aec addiu v0, fp, 0x4d4 | v0 = fp + 0x4d4;
0x00403af0 sw v0, 0x3c(fp) | *(var_3ch) = v0;
0x00403af4 sw zero, 0x20(fp) | *(var_20h) = 0;
0x00403af8 sw zero, 0x40(fp) | *(var_40h) = 0;
0x00403afc sw zero, 0x44(fp) | *(var_44h) = 0;
0x00403b00 sw zero, 0x48(fp) | *(var_48h) = 0;
0x00403b04 sw zero, 0x4c(fp) | *(var_4ch) = 0;
0x00403b08 sw zero, 0x50(fp) | *(var_50h) = 0;
0x00403b0c sw zero, 0x54(fp) | *(var_54h) = 0;
0x00403b10 sb zero, 0x58(fp) | *(var_58h) = 0;
0x00403b14 sh zero, 0x5a(fp) | *(var_5ah) = 0;
0x00403b18 lui v0, 0x42 | v0 = 0x420000;
| /* str.Message_arrived_topicName___s__n */
0x00403b1c addiu a0, v0, -0x50f8 | a0 = "Message arrived[topicName = %s]\n";
0x00403b20 lw a1, 0x8e4(fp) | a1 = *(arg_8e4h);
0x00403b24 jal 0x41cfc0 | fcn_0041cfc0 ();
0x00403b28 nop |
0x00403b2c addiu v0, fp, 0x4cc | v0 = fp + 0x4cc;
0x00403b30 move a0, v0 | a0 = v0;
0x00403b34 move a1, zero | a1 = 0;
0x00403b38 jal 0x41d2e0 | fcn_0041d2e0 ();
0x00403b3c nop |
0x00403b40 lw v0, 0x8ec(fp) | v0 = *(arg_8ech);
0x00403b44 lw a0, 8(v0) | a0 = *((v0 + 2));
0x00403b48 lw v0, 0x8ec(fp) | v0 = *(arg_8ech);
0x00403b4c lw v1, 0xc(v0) | v1 = *((v0 + 3));
0x00403b50 addiu v0, fp, 0xc8 | v0 = fp + 0xc8;
0x00403b54 move a1, v1 | a1 = v1;
0x00403b58 lui v1, 0x43 | v1 = 0x430000;
| /* obj.g_enrR */
0x00403b5c addiu a2, v1, -0xc30 | a2 = g_enrR;
0x00403b60 move a3, v0 | a3 = v0;
0x00403b64 jal 0x419314 | sym_xxtea_decrypt ();
0x00403b68 nop |
0x00403b6c sw v0, 0x38(fp) | *(var_38h) = v0;
0x00403b70 lw v0, 0x38(fp) | v0 = *(var_38h);
| if (v0 == 0) {
0x00403b74 bnez v0, 0x403bbc |
0x00403b78 nop |
0x00403b7c lui v0, 0x42 | v0 = 0x420000;
| /* str.error_1__r */
0x00403b80 addiu a0, v0, -0x50d4 | a0 = "========error 1 ==========\r";
0x00403b84 jal 0x41d0d0 | fcn_0041d0d0 ();
0x00403b88 nop |
0x00403b8c move a0, zero | a0 = 0;
0x00403b90 jal 0x41d320 | fcn_0041d320 ();
0x00403b94 nop |
0x00403b98 lui v1, 0x42 | v1 = 0x420000;
| /* str._IOT__time__ld__message_arrivedxxtea_decrypt_failedg_enrR_is__s_n */
0x00403b9c addiu a0, v1, -0x50b8 | a0 = "[IOT] time[%ld] message arrived\xef\xbc\x8cxxtea decrypt failed\xef\xbc\x8cg_enrR is %s\n";
0x00403ba0 move a1, v0 | a1 = v0;
0x00403ba4 lui v0, 0x43 | v0 = 0x430000;
| /* obj.g_enrR */
0x00403ba8 addiu a2, v0, -0xc30 | a2 = g_enrR;
0x00403bac jal 0x405dbc | sym_log_printf ()
0x00403bb0 nop |
0x00403bb4 b 0x4044a4 | goto label_0;
0x00403bb8 nop |
| }
0x00403bbc lui v0, 0x42 | v0 = 0x420000;
| /* str.message_arrived:__s_n */
0x00403bc0 addiu a0, v0, -0x5070 | a0 = "message arrived: %s\n";
0x00403bc4 lw a1, 0x38(fp) | a1 = *(var_38h);
0x00403bc8 jal 0x41cfc0 | fcn_0041cfc0 ();
0x00403bcc nop |
0x00403bd0 move a0, zero | a0 = 0;
0x00403bd4 jal 0x41d320 | fcn_0041d320 ();
0x00403bd8 nop |
0x00403bdc lui v1, 0x42 | v1 = 0x420000;
| /* str._IOT__time__ld__message_arrived:__s_n */
0x00403be0 addiu a0, v1, -0x5058 | a0 = "[IOT] time[%ld] message arrived: %s\n";
0x00403be4 move a1, v0 | a1 = v0;
0x00403be8 lw a2, 0x38(fp) | a2 = *(var_38h);
0x00403bec jal 0x405dbc | sym_log_printf ()
0x00403bf0 nop |
0x00403bf4 lw a0, 0x38(fp) | a0 = *(var_38h);
0x00403bf8 jal 0x414e34 | sym_cJSON_Parse ();
0x00403bfc nop |
0x00403c00 sw v0, 0x20(fp) | *(var_20h) = v0;
0x00403c04 lw v0, 0x20(fp) | v0 = *(var_20h);
| if (v0 == 0) {
0x00403c08 bnez v0, 0x403c28 |
0x00403c0c nop |
0x00403c10 lui v0, 0x42 | v0 = 0x420000;
| /* str.get_json_error_____ */
0x00403c14 addiu a0, v0, -0x577c | a0 = "get json error!!!!!";
0x00403c18 jal 0x41d0d0 | fcn_0041d0d0 ();
0x00403c1c nop |
0x00403c20 b 0x4044a4 | goto label_0;
0x00403c24 nop |
| }
0x00403c28 lw a0, 0x20(fp) | a0 = *(var_20h);
0x00403c2c lui v0, 0x42 | v0 = 0x420000;
| /* str.action */
0x00403c30 addiu a1, v0, -0x5030 | a1 = "action";
0x00403c34 jal 0x416d98 | sym_cJSON_GetObjectItem ();
0x00403c38 nop |
0x00403c3c sw v0, 0x40(fp) | *(var_40h) = v0;
0x00403c40 lw v0, 0x40(fp) | v0 = *(var_40h);
| if (v0 == 0) {
0x00403c44 bnez v0, 0x403c64 |
0x00403c48 nop |
0x00403c4c lui v0, 0x42 | v0 = 0x420000;
| /* str.get_json_action_error_____ */
0x00403c50 addiu a0, v0, -0x5028 | a0 = "get json_action error!!!!!";
0x00403c54 jal 0x41d0d0 | fcn_0041d0d0 ();
0x00403c58 nop |
0x00403c5c b 0x4044a4 | goto label_0;
0x00403c60 nop |
| }
0x00403c64 lw a0, 0x20(fp) | a0 = *(var_20h);
0x00403c68 lui v0, 0x42 | v0 = 0x420000;
| /* str.params */
0x00403c6c addiu a1, v0, -0x500c | a1 = "params";
0x00403c70 jal 0x416d98 | sym_cJSON_GetObjectItem ();
0x00403c74 nop |
0x00403c78 sw v0, 0x44(fp) | *(var_44h) = v0;
0x00403c7c lw v0, 0x44(fp) | v0 = *(var_44h);
| if (v0 == 0) {
0x00403c80 bnez v0, 0x403ca0 |
0x00403c84 nop |
0x00403c88 lui v0, 0x42 | v0 = 0x420000;
| /* str.get_json_params_error_____ */
0x00403c8c addiu a0, v0, -0x5004 | a0 = "get json_params error!!!!!";
0x00403c90 jal 0x41d0d0 | fcn_0041d0d0 ();
0x00403c94 nop |
0x00403c98 b 0x4044a4 | goto label_0;
0x00403c9c nop |
| }
0x00403ca0 lw a0, 0x20(fp) | a0 = *(var_20h);
0x00403ca4 lui v0, 0x42 | v0 = 0x420000;
| /* str.guid */
0x00403ca8 addiu a1, v0, -0x4fe8 | a1 = "guid";
0x00403cac jal 0x416d98 | sym_cJSON_GetObjectItem ();
0x00403cb0 nop |
0x00403cb4 sw v0, 0x48(fp) | *(var_48h) = v0;
0x00403cb8 lw v0, 0x48(fp) | v0 = *(var_48h);
| if (v0 == 0) {
0x00403cbc bnez v0, 0x403cdc |
0x00403cc0 nop |
0x00403cc4 lui v0, 0x42 | v0 = 0x420000;
| /* str.get_json_guid_error_____ */
0x00403cc8 addiu a0, v0, -0x4fe0 | a0 = "get json_guid error!!!!!";
0x00403ccc jal 0x41d0d0 | fcn_0041d0d0 ();
0x00403cd0 nop |
0x00403cd4 b 0x4044a4 | goto label_0;
0x00403cd8 nop |
| }
0x00403cdc lui v0, 0x43 | v0 = 0x430000;
0x00403ce0 lw v1, -0x1e2c(v0) | v1 = *((v0 - 1931));
0x00403ce4 lw v0, 0x48(fp) | v0 = *(var_48h);
0x00403ce8 lw v0, 0x10(v0) | v0 = *((v0 + 4));
0x00403cec move a0, v1 | a0 = v1;
0x00403cf0 move a1, v0 | a1 = v0;
0x00403cf4 addiu a2, zero, 0x20 | a2 = 0x20;
0x00403cf8 jal 0x419fe0 | sym_is_resend_action_func ();
0x00403cfc nop |
0x00403d00 sw v0, 0x28(fp) | *(var_28h) = v0;
0x00403d04 lw v1, 0x28(fp) | v1 = *(var_28h);
0x00403d08 addiu v0, zero, -1 | v0 = -1;
| if (v1 == v0) {
0x00403d0c bne v1, v0, 0x403d3c |
0x00403d10 nop |
0x00403d14 lui v0, 0x42 | v0 = 0x420000;
| /* str.same_guid_same_guid_dont_care */
0x00403d18 addiu a0, v0, -0x4fc4 | a0 = "same guid same guid,don't care";
0x00403d1c jal 0x41d0d0 | fcn_0041d0d0 ();
0x00403d20 nop |
0x00403d24 lui v0, 0x42 | v0 = 0x420000;
| /* str._IOT_same_guid_same_guid_dont_care_n */
0x00403d28 addiu a0, v0, -0x4fa4 | a0 = "[IOT]same guid same guid,don't care\n";
0x00403d2c jal 0x405dbc | sym_log_printf ()
0x00403d30 nop |
0x00403d34 b 0x4044d4 | goto label_1;
0x00403d38 nop |
| }
0x00403d3c lw v0, 0x40(fp) | v0 = *(var_40h);
0x00403d40 lw v0, 0x10(v0) | v0 = *((v0 + 4));
0x00403d44 move a0, v0 | a0 = v0;
0x00403d48 jal 0x401b78 | sym_parse_action ();
0x00403d4c nop |
0x00403d50 sw v0, 0x34(fp) | *(var_34h) = v0;
0x00403d54 lw v0, 0x3c(fp) | v0 = *(var_3ch);
0x00403d58 lw v1, 0x34(fp) | v1 = *(var_34h);
0x00403d5c swl v1, 7(v0) | __asm ("swl v1, 7(v0)");
0x00403d60 swr v1, 4(v0) | __asm ("swr v1, 4(v0)");
0x00403d64 lw v0, 0x3c(fp) | v0 = *(var_3ch);
0x00403d68 lwl v1, 7(v0) | __asm ("lwl v1, 7(v0)");
0x00403d6c move a0, v1 | a0 = v1;
0x00403d70 lwr a0, 4(v0) | __asm ("lwr a0, 4(v0)");
0x00403d74 move v0, a0 | v0 = a0;
0x00403d78 lui v1, 0x42 | v1 = 0x420000;
| /* str.pMsg__cmd___d_ */
0x00403d7c addiu a0, v1, -0x4f7c | a0 = "pMsg->cmd = %d ";
0x00403d80 move a1, v0 | a1 = v0;
0x00403d84 jal 0x41cfc0 | fcn_0041cfc0 ();
0x00403d88 nop |
0x00403d8c lw v0, 0x3c(fp) | v0 = *(var_3ch);
0x00403d90 lwl v1, 7(v0) | __asm ("lwl v1, 7(v0)");
0x00403d94 move a1, v1 | a1 = v1;
0x00403d98 lwr a1, 4(v0) | __asm ("lwr a1, 4(v0)");
0x00403d9c move v0, a1 | v0 = a1;
0x00403da0 lui v1, 0x42 | v1 = 0x420000;
| /* str._IOT_pMsg__cmd___d_ */
0x00403da4 addiu a0, v1, -0x4f6c | a0 = "[IOT]pMsg->cmd = %d ";
0x00403da8 move a1, v0 | a1 = v0;
0x00403dac jal 0x405dbc | sym_log_printf ()
0x00403db0 nop |
0x00403db4 lui v0, 0x43 | v0 = 0x430000;
0x00403db8 lw v1, -0x1de0(v0) | v1 = *((v0 - 1912));
0x00403dbc addiu v0, zero, 2 | v0 = 2;
| if (v1 == v0) {
0x00403dc0 bne v1, v0, 0x403e2c |
0x00403dc4 nop |
0x00403dc8 lw v1, 0x34(fp) | v1 = *(var_34h);
0x00403dcc addiu v0, zero, 0x4cf | v0 = 0x4cf;
| if (v1 == v0) {
0x00403dd0 beq v1, v0, 0x403e2c | goto label_2;
| }
0x00403dd4 nop |
0x00403dd8 lw v0, 0x48(fp) | v0 = *(var_48h);
0x00403ddc lw a2, 0x10(v0) | a2 = *((v0 + 4));
0x00403de0 lw v1, 0x4cc(fp) | v1 = *(var_4cch);
0x00403de4 lw v0, 0x4d0(fp) | v0 = *(var_4d0h);
0x00403de8 lui a0, 0x1062 | a0 = 0x10624dd3;
0x00403dec ori a0, a0, 0x4dd3 |
0x00403df0 mult v0, a0 | __asm ("mult v0, a0");
0x00403df4 mfhi a0 | __asm ("mfhi a0");
0x00403df8 sra a0, a0, 6 | a0 >>= 6;
0x00403dfc sra v0, v0, 0x1f | v0 >>= 0x1f;
0x00403e00 subu a0, a0, v0 | __asm ("subu a0, a0, v0");
0x00403e04 addiu v0, fp, 0x5c | v0 = fp + 0x5c;
0x00403e08 sw a0, 0x10(sp) | *(var_10h) = a0;
0x00403e0c move a0, v0 | a0 = v0;
0x00403e10 lui v0, 0x42 | v0 = 0x420000;
| /* str._guid_:__s____ts_:__d_d____result_:_2_ */
0x00403e14 addiu a1, v0, -0x4f54 | a1 = "{\"guid\":\"%s\", \"ts\":\"%d%d\", \"result\":\"2\"}";
0x00403e18 move a3, v1 | a3 = v1;
0x00403e1c jal 0x41d370 | fcn_0041d370 ();
0x00403e20 nop |
0x00403e24 b 0x403e78 | goto label_3;
0x00403e28 nop |
| }
| label_2:
0x00403e2c lw v0, 0x48(fp) | v0 = *(var_48h);
0x00403e30 lw a2, 0x10(v0) | a2 = *((v0 + 4));
0x00403e34 lw v1, 0x4cc(fp) | v1 = *(var_4cch);
0x00403e38 lw v0, 0x4d0(fp) | v0 = *(var_4d0h);
0x00403e3c lui a0, 0x1062 | a0 = 0x10624dd3;
0x00403e40 ori a0, a0, 0x4dd3 |
0x00403e44 mult v0, a0 | __asm ("mult v0, a0");
0x00403e48 mfhi a0 | __asm ("mfhi a0");
0x00403e4c sra a0, a0, 6 | a0 >>= 6;
0x00403e50 sra v0, v0, 0x1f | v0 >>= 0x1f;
0x00403e54 subu a0, a0, v0 | __asm ("subu a0, a0, v0");
0x00403e58 addiu v0, fp, 0x5c | v0 = fp + 0x5c;
0x00403e5c sw a0, 0x10(sp) | *(var_10h) = a0;
0x00403e60 move a0, v0 | a0 = v0;
0x00403e64 lui v0, 0x42 | v0 = 0x420000;
| /* str._guid_:__s____ts_:__d_d____result_:_1_ */
0x00403e68 addiu a1, v0, -0x4f28 | a1 = "{\"guid\":\"%s\", \"ts\":\"%d%d\", \"result\":\"1\"}";
0x00403e6c move a3, v1 | a3 = v1;
0x00403e70 jal 0x41d370 | fcn_0041d370 ();
0x00403e74 nop |
| label_3:
0x00403e78 addiu v0, fp, 0x5c | v0 = fp + 0x5c;
0x00403e7c lui v1, 0x42 | v1 = 0x420000;
| /* str.SEND_MQTT_ACK:__s__n */
0x00403e80 addiu a0, v1, -0x4efc | a0 = "SEND MQTT ACK:[%s]\n";
0x00403e84 move a1, v0 | a1 = v0;
0x00403e88 jal 0x41cfc0 | fcn_0041cfc0 ();
0x00403e8c nop |
0x00403e90 addiu v0, fp, 0x5c | v0 = fp + 0x5c;
0x00403e94 lui v1, 0x42 | v1 = 0x420000;
| /* str._IOT_SEND_MQTT_ACK:__s__n */
0x00403e98 addiu a0, v1, -0x4ee8 | a0 = "[IOT]SEND MQTT ACK:[%s]\n";
0x00403e9c move a1, v0 | a1 = v0;
0x00403ea0 jal 0x405dbc | sym_log_printf ()
0x00403ea4 nop |
0x00403ea8 lui v0, 0x43 | v0 = 0x430000;
| /* obj.g_pubTopic_send */
0x00403eac addiu a0, v0, -0xc18 | a0 = g_pubTopic_send;
0x00403eb0 jal 0x41d460 | fcn_0041d460 ();
0x00403eb4 nop |
0x00403eb8 andi v0, v0, 0xffff | v0 &= 0xffff;
0x00403ebc move v1, v0 | v1 = v0;
0x00403ec0 addiu v0, fp, 0x5c | v0 = fp + 0x5c;
0x00403ec4 lw a0, 0x8e0(fp) | a0 = *(arg_8e0h);
0x00403ec8 lui a1, 0x43 | a1 = g_pubTopic_send;
| /* obj.g_pubTopic_send */
0x00403ecc addiu a1, a1, -0xc18 |
0x00403ed0 move a2, v1 | a2 = v1;
0x00403ed4 move a3, v0 | a3 = v0;
0x00403ed8 jal 0x402598 | sym_msgsend ();
0x00403edc nop |
0x00403ee0 sw v0, 0x24(fp) | *(var_24h) = v0;
0x00403ee4 lw v0, 0x24(fp) | v0 = *(var_24h);
| if (v0 < 0) {
0x00403ee8 bgez v0, 0x403f3c |
0x00403eec nop |
0x00403ef0 lui v0, 0x42 | v0 = 0x420000;
| /* str.MQTT_ACK_SEND_FAILED */
0x00403ef4 addiu a0, v0, -0x4ecc | a0 = "MQTT ACK SEND FAILED";
0x00403ef8 jal 0x41d0d0 | fcn_0041d0d0 ();
0x00403efc nop |
0x00403f00 lui v0, 0x42 | v0 = 0x420000;
| /* str._IOT_MQTT_ACK_SEND_FAILED_n */
0x00403f04 addiu a0, v0, -0x4eb4 | a0 = "[IOT]MQTT ACK SEND FAILED\n";
0x00403f08 jal 0x405dbc | sym_log_printf ()
0x00403f0c nop |
0x00403f10 lui v0, 0x43 | v0 = 0x430000;
0x00403f14 lw v1, -0x1e2c(v0) | v1 = *((v0 - 1931));
0x00403f18 lw v0, 0x48(fp) | v0 = *(var_48h);
0x00403f1c lw v0, 0x10(v0) | v0 = *((v0 + 4));
0x00403f20 move a0, v1 | a0 = v1;
0x00403f24 move a1, v0 | a1 = v0;
0x00403f28 addiu a2, zero, 0x20 | a2 = 0x20;
0x00403f2c jal 0x41a1e4 | sym_delete_guid_from_linklist ();
0x00403f30 nop |
0x00403f34 b 0x4044a4 | goto label_0;
0x00403f38 nop |
| }
0x00403f3c lui v0, 0x42 | v0 = 0x420000;
| /* str.MQTT_ACK_SEND_SUCCESS */
0x00403f40 addiu a0, v0, -0x4e98 | a0 = "MQTT ACK SEND SUCCESS";
0x00403f44 jal 0x41d0d0 | fcn_0041d0d0 ();
0x00403f48 nop |
0x00403f4c lui v0, 0x43 | v0 = 0x430000;
0x00403f50 lw v1, -0x1de0(v0) | v1 = *((v0 - 1912));
0x00403f54 addiu v0, zero, 2 | v0 = 2;
| if (v1 == v0) {
0x00403f58 bne v1, v0, 0x403f98 |
0x00403f5c nop |
0x00403f60 lw v1, 0x34(fp) | v1 = *(var_34h);
0x00403f64 addiu v0, zero, 0x4cf | v0 = 0x4cf;
| if (v1 == v0) {
0x00403f68 beq v1, v0, 0x403f98 | goto label_4;
| }
0x00403f6c nop |
0x00403f70 lui v0, 0x42 | v0 = 0x420000;
| /* str.iot_power_off._cmd_failed */
0x00403f74 addiu a0, v0, -0x4e80 | a0 = "iot power off. cmd failed";
0x00403f78 jal 0x41d0d0 | fcn_0041d0d0 ();
0x00403f7c nop |
0x00403f80 lui v0, 0x42 | v0 = 0x420000;
| /* str.iot_power_off._cmd_failed_n */
0x00403f84 addiu a0, v0, -0x4e64 | a0 = "iot power off. cmd failed\n";
0x00403f88 jal 0x405dbc | sym_log_printf ()
0x00403f8c nop |
0x00403f90 b 0x4044a4 | goto label_0;
0x00403f94 nop |
| }
| label_4:
0x00403f98 lw v1, 0x34(fp) | v1 = *(var_34h);
0x00403f9c addiu v0, zero, 0x4cf | v0 = 0x4cf;
| if (v1 == v0) {
0x00403fa0 bne v1, v0, 0x403fb4 |
0x00403fa4 nop |
0x00403fa8 lui v0, 0x43 | v0 = 0x430000;
0x00403fac addiu v1, zero, 1 | v1 = 1;
0x00403fb0 sw v1, -0x1de0(v0) | *((v0 - 1912)) = v1;
| }
0x00403fb4 lw v1, 0x34(fp) | v1 = *(var_34h);
0x00403fb8 addiu v0, zero, 0x4d0 | v0 = 0x4d0;
| if (v1 == v0) {
0x00403fbc bne v1, v0, 0x403fd0 |
0x00403fc0 nop |
0x00403fc4 lui v0, 0x43 | v0 = 0x430000;
0x00403fc8 addiu v1, zero, 2 | v1 = 2;
0x00403fcc sw v1, -0x1de0(v0) | *((v0 - 1912)) = v1;
| }
0x00403fd0 lw v0, 0x34(fp) | v0 = *(var_34h);
0x00403fd4 addiu v1, zero, 0x4de | v1 = 0x4de;
| if (v0 != v1) {
0x00403fd8 beq v0, v1, 0x404290 |
0x00403fdc nop |
0x00403fe0 slti v1, v0, 0x4df | v1 = (v0 < 0x4df) ? 1 : 0;
| if (v1 != 0) {
0x00403fe4 beqz v1, 0x404044 |
0x00403fe8 nop |
0x00403fec addiu v1, zero, 0x4d4 | v1 = 0x4d4;
| if (v0 == v1) {
0x00403ff0 beq v0, v1, 0x404110 | goto label_5;
| }
0x00403ff4 nop |
0x00403ff8 slti v1, v0, 0x4d5 | v1 = (v0 < 0x4d5) ? 1 : 0;
| if (v1 != 0) {
0x00403ffc beqz v1, 0x404024 |
0x00404000 nop |
0x00404004 addiu v1, zero, 0x4d1 | v1 = 0x4d1;
| if (v0 == v1) {
0x00404008 beq v0, v1, 0x4040a8 | goto label_6;
| }
0x0040400c nop |
0x00404010 addiu v1, zero, 0x4d2 | v1 = 0x4d2;
| if (v0 == v1) {
0x00404014 beq v0, v1, 0x4040dc | goto label_7;
| }
0x00404018 nop |
0x0040401c b 0x40442c | goto label_8;
0x00404020 nop |
| }
0x00404024 addiu v1, zero, 0x4d7 | v1 = 0x4d7;
| if (v0 == v1) {
0x00404028 beq v0, v1, 0x404144 | goto label_9;
| }
0x0040402c nop |
0x00404030 addiu v1, zero, 0x4dc | v1 = 0x4dc;
| if (v0 == v1) {
0x00404034 beq v0, v1, 0x404184 | goto label_10;
| }
0x00404038 nop |
0x0040403c b 0x40442c | goto label_8;
0x00404040 nop |
| }
0x00404044 addiu v1, zero, 0x70b | v1 = 0x70b;
| if (v0 != v1) {
0x00404048 beq v0, v1, 0x404200 |
0x0040404c nop |
0x00404050 slti v1, v0, 0x70c | v1 = (v0 < 0x70c) ? 1 : 0;
| if (v1 != 0) {
0x00404054 beqz v1, 0x40407c |
0x00404058 nop |
0x0040405c addiu v1, zero, 0x4e7 | v1 = 0x4e7;
| if (v0 == v1) {
0x00404060 beq v0, v1, 0x404374 | goto label_11;
| }
0x00404064 nop |
0x00404068 addiu v1, zero, 0x70a | v1 = 0x70a;
| if (v0 == v1) {
0x0040406c beq v0, v1, 0x4041b8 | goto label_12;
| }
0x00404070 nop |
0x00404074 b 0x40442c | goto label_8;
0x00404078 nop |
| }
0x0040407c addiu v1, zero, 0x710 | v1 = 0x710;
| if (v0 == v1) {
0x00404080 beq v0, v1, 0x4042c4 | goto label_13;
| }
0x00404084 nop |
0x00404088 addiu v1, zero, 0x711 | v1 = 0x711;
| if (v0 == v1) {
0x0040408c beq v0, v1, 0x40430c | goto label_14;
| }
0x00404090 nop |
0x00404094 addiu v1, zero, 0x70c | v1 = 0x70c;
| if (v0 == v1) {
0x00404098 beq v0, v1, 0x404248 | goto label_15;
| }
0x0040409c nop |
0x004040a0 b 0x40442c | goto label_8;
0x004040a4 nop |
| label_6:
0x004040a8 addiu v0, fp, 0xcc | v0 = fp + 0xcc;
0x004040ac lw a0, 0x44(fp) | a0 = *(var_44h);
0x004040b0 move a1, v0 | a1 = v0;
0x004040b4 jal 0x419430 | sym_iot_get_log_handler ();
0x004040b8 nop |
0x004040bc addiu v0, fp, 0xcc | v0 = fp + 0xcc;
0x004040c0 addiu a0, zero, 0x4d1 | a0 = 0x4d1;
0x004040c4 move a1, v0 | a1 = v0;
0x004040c8 jal 0x402004 | sym_send_command_s2m ();
0x004040cc nop |
0x004040d0 sw v0, 0x28(fp) | *(var_28h) = v0;
0x004040d4 b 0x4044a4 | goto label_0;
0x004040d8 nop |
| label_7:
0x004040dc addiu v0, fp, 0xcc | v0 = fp + 0xcc;
0x004040e0 lw a0, 0x44(fp) | a0 = *(var_44h);
0x004040e4 move a1, v0 | a1 = v0;
0x004040e8 jal 0x41950c | sym_iot_upgrade_handler ();
0x004040ec nop |
0x004040f0 addiu v0, fp, 0xcc | v0 = fp + 0xcc;
0x004040f4 addiu a0, zero, 0x4d2 | a0 = 0x4d2;
0x004040f8 move a1, v0 | a1 = v0;
0x004040fc jal 0x402004 | sym_send_command_s2m ();
0x00404100 nop |
0x00404104 sw v0, 0x28(fp) | *(var_28h) = v0;
0x00404108 b 0x4044a4 | goto label_0;
0x0040410c nop |
| label_5:
0x00404110 addiu v0, fp, 0xcc | v0 = fp + 0xcc;
0x00404114 lw a0, 0x44(fp) | a0 = *(var_44h);
0x00404118 move a1, v0 | a1 = v0;
0x0040411c jal 0x4196b8 | sym_iot_alarm_action ();
0x00404120 nop |
0x00404124 addiu v0, fp, 0xcc | v0 = fp + 0xcc;
0x00404128 addiu a0, zero, 0x4d4 | a0 = 0x4d4;
0x0040412c move a1, v0 | a1 = v0;
0x00404130 jal 0x402004 | sym_send_command_s2m ();
0x00404134 nop |
0x00404138 sw v0, 0x28(fp) | *(var_28h) = v0;
0x0040413c b 0x4044a4 | goto label_0;
0x00404140 nop |
| label_9:
0x00404144 lw a0, 0x44(fp) | a0 = *(var_44h);
0x00404148 jal 0x414eb8 | sym_cJSON_PrintUnformatted ();
0x0040414c nop |
0x00404150 addiu v1, fp, 0xcc | v1 = fp + 0xcc;
0x00404154 move a0, v1 | a0 = v1;
0x00404158 move a1, v0 | a1 = v0;
0x0040415c jal 0x41cfb0 | fcn_0041cfb0 ();
0x00404160 nop |
0x00404164 addiu v0, fp, 0xcc | v0 = fp + 0xcc;
0x00404168 addiu a0, zero, 0x4d7 | a0 = 0x4d7;
0x0040416c move a1, v0 | a1 = v0;
0x00404170 jal 0x402004 | sym_send_command_s2m ();
0x00404174 nop |
0x00404178 sw v0, 0x28(fp) | *(var_28h) = v0;
0x0040417c b 0x4044a4 | goto label_0;
0x00404180 nop |
| label_10:
0x00404184 addiu v0, fp, 0xcc | v0 = fp + 0xcc;
0x00404188 lw a0, 0x44(fp) | a0 = *(var_44h);
0x0040418c move a1, v0 | a1 = v0;
0x00404190 jal 0x4197bc | sym_iot_rtmp_handler ();
0x00404194 nop |
0x00404198 addiu v0, fp, 0xcc | v0 = fp + 0xcc;
0x0040419c addiu a0, zero, 0x4dc | a0 = 0x4dc;
0x004041a0 move a1, v0 | a1 = v0;
0x004041a4 jal 0x402004 | sym_send_command_s2m ();
0x004041a8 nop |
0x004041ac sw v0, 0x28(fp) | *(var_28h) = v0;
0x004041b0 b 0x4044a4 | goto label_0;
0x004041b4 nop |
| label_12:
0x004041b8 addiu v0, fp, 0xcc | v0 = fp + 0xcc;
0x004041bc lw a0, 0x44(fp) | a0 = *(var_44h);
0x004041c0 move a1, v0 | a1 = v0;
0x004041c4 jal 0x4198e8 | sym_iot_sensor_token_handler ();
0x004041c8 nop |
0x004041cc addiu v0, fp, 0xcc | v0 = fp + 0xcc;
0x004041d0 move a0, v0 | a0 = v0;
0x004041d4 jal 0x41d460 | fcn_0041d460 ();
0x004041d8 nop |
0x004041dc addiu v1, fp, 0xcc | v1 = fp + 0xcc;
0x004041e0 addiu a0, zero, 0x70a | a0 = 0x70a;
0x004041e4 move a1, v1 | a1 = v1;
0x004041e8 move a2, v0 | a2 = v0;
0x004041ec jal 0x402118 | sym_send_msg_to_dongle_cloud ();
0x004041f0 nop |
0x004041f4 sw v0, 0x28(fp) | *(var_28h) = v0;
0x004041f8 b 0x4044a4 | goto label_0;
0x004041fc nop |
| }
0x00404200 addiu v0, fp, 0xcc | v0 = fp + 0xcc;
0x00404204 lw a0, 0x44(fp) | a0 = *(var_44h);
0x00404208 move a1, v0 | a1 = v0;
0x0040420c jal 0x419a20 | sym_iot_delete_sensor_handler ();
0x00404210 nop |
0x00404214 addiu v0, fp, 0xcc | v0 = fp + 0xcc;
0x00404218 move a0, v0 | a0 = v0;
0x0040421c jal 0x41d460 | fcn_0041d460 ();
0x00404220 nop |
0x00404224 addiu v1, fp, 0xcc | v1 = fp + 0xcc;
0x00404228 addiu a0, zero, 0x70b | a0 = 0x70b;
0x0040422c move a1, v1 | a1 = v1;
0x00404230 move a2, v0 | a2 = v0;
0x00404234 jal 0x402118 | sym_send_msg_to_dongle_cloud ();
0x00404238 nop |
0x0040423c sw v0, 0x28(fp) | *(var_28h) = v0;
0x00404240 b 0x4044a4 | goto label_0;
0x00404244 nop |
| label_15:
0x00404248 addiu v0, fp, 0xcc | v0 = fp + 0xcc;
0x0040424c lw a0, 0x44(fp) | a0 = *(var_44h);
0x00404250 move a1, v0 | a1 = v0;
0x00404254 jal 0x419ad4 | sym_iot_dongle_upgrade_handler ();
0x00404258 nop |
0x0040425c addiu v0, fp, 0xcc | v0 = fp + 0xcc;
0x00404260 move a0, v0 | a0 = v0;
0x00404264 jal 0x41d460 | fcn_0041d460 ();
0x00404268 nop |
0x0040426c addiu v1, fp, 0xcc | v1 = fp + 0xcc;
0x00404270 addiu a0, zero, 0x70c | a0 = 0x70c;
0x00404274 move a1, v1 | a1 = v1;
0x00404278 move a2, v0 | a2 = v0;
0x0040427c jal 0x402118 | sym_send_msg_to_dongle_cloud ();
0x00404280 nop |
0x00404284 sw v0, 0x28(fp) | *(var_28h) = v0;
0x00404288 b 0x4044a4 | goto label_0;
0x0040428c nop |
| }
0x00404290 addiu v0, fp, 0xcc | v0 = fp + 0xcc;
0x00404294 lw a0, 0x44(fp) | a0 = *(var_44h);
0x00404298 move a1, v0 | a1 = v0;
0x0040429c jal 0x419d10 | sym_iot_set_property_handler ();
0x004042a0 nop |
0x004042a4 addiu v0, fp, 0xcc | v0 = fp + 0xcc;
0x004042a8 addiu a0, zero, 0x4de | a0 = 0x4de;
0x004042ac move a1, v0 | a1 = v0;
0x004042b0 jal 0x402004 | sym_send_command_s2m ();
0x004042b4 nop |
0x004042b8 sw v0, 0x28(fp) | *(var_28h) = v0;
0x004042bc b 0x4044a4 | goto label_0;
0x004042c0 nop |
| label_13:
0x004042c4 addiu v0, fp, 0xcc | v0 = fp + 0xcc;
0x004042c8 lw a0, 0x44(fp) | a0 = *(var_44h);
0x004042cc move a1, v0 | a1 = v0;
0x004042d0 jal 0x419e10 | sym_iot_set_sub_property_handler ();
0x004042d4 nop |
0x004042d8 addiu v0, fp, 0xcc | v0 = fp + 0xcc;
0x004042dc move a0, v0 | a0 = v0;
0x004042e0 jal 0x41d460 | fcn_0041d460 ();
0x004042e4 nop |
0x004042e8 addiu v1, fp, 0xcc | v1 = fp + 0xcc;
0x004042ec addiu a0, zero, 0x710 | a0 = 0x710;
0x004042f0 move a1, v1 | a1 = v1;
0x004042f4 move a2, v0 | a2 = v0;
0x004042f8 jal 0x402118 | sym_send_msg_to_dongle_cloud ();
0x004042fc nop |
0x00404300 sw v0, 0x28(fp) | *(var_28h) = v0;
0x00404304 b 0x4044a4 | goto label_0;
0x00404308 nop |
| label_14:
0x0040430c addiu v0, fp, 0xcc | v0 = fp + 0xcc;
0x00404310 lw a0, 0x44(fp) | a0 = *(var_44h);
0x00404314 move a1, v0 | a1 = v0;
0x00404318 jal 0x419f58 | sym_iot_bind_cancel_handler ();
0x0040431c nop |
0x00404320 addiu v0, fp, 0xcc | v0 = fp + 0xcc;
0x00404324 move a0, v0 | a0 = v0;
0x00404328 lui v0, 0x42 | v0 = 0x420000;
| /* str.Sensor */
0x0040432c addiu a1, v0, -0x4e48 | a1 = "Sensor";
0x00404330 jal 0x41d350 | fcn_0041d350 ();
0x00404334 nop |
| if (v0 == 0) {
0x00404338 bnez v0, 0x404494 |
0x0040433c nop |
0x00404340 addiu v0, fp, 0xcc | v0 = fp + 0xcc;
0x00404344 move a0, v0 | a0 = v0;
0x00404348 jal 0x41d460 | fcn_0041d460 ();
0x0040434c nop |
0x00404350 addiu v1, fp, 0xcc | v1 = fp + 0xcc;
0x00404354 addiu a0, zero, 0x711 | a0 = 0x711;
0x00404358 move a1, v1 | a1 = v1;
0x0040435c move a2, v0 | a2 = v0;
0x00404360 jal 0x402118 | sym_send_msg_to_dongle_cloud ();
0x00404364 nop |
0x00404368 sw v0, 0x28(fp) | *(var_28h) = v0;
0x0040436c b 0x404494 | goto label_16;
0x00404370 nop |
| label_11:
0x00404374 lw a0, 0x44(fp) | a0 = *(var_44h);
0x00404378 lui v0, 0x42 | v0 = 0x420000;
| /* str.active */
0x0040437c addiu a1, v0, -0x4e40 | a1 = "active";
0x00404380 jal 0x416d98 | sym_cJSON_GetObjectItem ();
0x00404384 nop |
0x00404388 sw v0, 0x50(fp) | *(var_50h) = v0;
0x0040438c lw a0, 0x44(fp) | a0 = *(var_44h);
0x00404390 lui v0, 0x42 | v0 = 0x420000;
| /* str.angle */
0x00404394 addiu a1, v0, -0x4e38 | a1 = "angle";
0x00404398 jal 0x416d98 | sym_cJSON_GetObjectItem ();
0x0040439c nop |
0x004043a0 sw v0, 0x54(fp) | *(var_54h) = v0;
0x004043a4 lw v0, 0x50(fp) | v0 = *(var_50h);
| if (v0 == 0) {
0x004043a8 beqz v0, 0x4044a0 | goto label_17;
| }
0x004043ac nop |
0x004043b0 lw v0, 0x54(fp) | v0 = *(var_54h);
| if (v0 != 0) {
0x004043b4 beqz v0, 0x4043f0 |
0x004043b8 nop |
0x004043bc lw v0, 0x50(fp) | v0 = *(var_50h);
0x004043c0 lw v1, 0x10(v0) | v1 = *((v0 + 4));
0x004043c4 lw v0, 0x54(fp) | v0 = *(var_54h);
0x004043c8 lw v0, 0x10(v0) | v0 = *((v0 + 4));
0x004043cc addiu a0, fp, 0xcc | a0 = fp + 0xcc;
0x004043d0 lui a1, 0x42 | a1 = "%s|%s";
| /* str._s_s */
0x004043d4 addiu a1, a1, -0x4e30 |
0x004043d8 move a2, v1 | a2 = v1;
0x004043dc move a3, v0 | a3 = v0;
0x004043e0 jal 0x41d370 | fcn_0041d370 ();
0x004043e4 nop |
0x004043e8 b 0x40440c | goto label_18;
0x004043ec nop |
| }
0x004043f0 lw v0, 0x50(fp) | v0 = *(var_50h);
0x004043f4 lw v0, 0x10(v0) | v0 = *((v0 + 4));
0x004043f8 addiu v1, fp, 0xcc | v1 = fp + 0xcc;
0x004043fc move a0, v1 | a0 = v1;
0x00404400 move a1, v0 | a1 = v0;
0x00404404 jal 0x41cfb0 | fcn_0041cfb0 ();
0x00404408 nop |
| label_18:
0x0040440c addiu v0, fp, 0xcc | v0 = fp + 0xcc;
0x00404410 addiu a0, zero, 0x4e7 | a0 = 0x4e7;
0x00404414 move a1, v0 | a1 = v0;
0x00404418 jal 0x402004 | sym_send_command_s2m ();
0x0040441c nop |
0x00404420 sw v0, 0x28(fp) | *(var_28h) = v0;
0x00404424 b 0x4044a0 | goto label_17;
0x00404428 nop |
| label_8:
0x0040442c lw v0, 0x3c(fp) | v0 = *(var_3ch);
0x00404430 addiu v1, zero, 0x4b0 | v1 = 0x4b0;
0x00404434 swl v1, 3(v0) | __asm ("swl v1, 3(v0)");
0x00404438 swr v1, (v0) | __asm ("swr v1, (v0)");
0x0040443c lw v0, 0x3c(fp) | v0 = *(var_3ch);
0x00404440 lw v1, 0x34(fp) | v1 = *(var_34h);
0x00404444 swl v1, 7(v0) | __asm ("swl v1, 7(v0)");
0x00404448 swr v1, 4(v0) | __asm ("swr v1, 4(v0)");
0x0040444c lw v0, 0x3c(fp) | v0 = *(var_3ch);
0x00404450 swl zero, 0xf(v0) | __asm ("swl zero, 0xf(v0)");
0x00404454 swr zero, 0xc(v0) | __asm ("swr zero, 0xc(v0)");
0x00404458 lui v0, 0x43 | v0 = 0x430000;
0x0040445c lw a0, -0x1e80(v0) | a0 = *((v0 - 1952));
0x00404460 lw v0, 0x3c(fp) | v0 = *(var_3ch);
0x00404464 lwl v1, 0xf(v0) | __asm ("lwl v1, 0xf(v0)");
0x00404468 move a1, v1 | a1 = v1;
0x0040446c lwr a1, 0xc(v0) | __asm ("lwr a1, 0xc(v0)");
0x00404470 move v0, a1 | v0 = a1;
0x00404474 addiu v0, v0, 0xc | v0 += 0xc;
0x00404478 addiu v1, fp, 0x4d4 | v1 = fp + 0x4d4;
0x0040447c move a1, v1 | a1 = v1;
0x00404480 move a2, v0 | a2 = v0;
0x00404484 jal 0x4184e8 | sym_msg_queue_snd ();
0x00404488 nop |
0x0040448c b 0x4044a4 | goto label_0;
0x00404490 nop |
| }
| label_16:
0x00404494 nop |
0x00404498 b 0x4044a4 | goto label_0;
0x0040449c nop |
| label_17:
0x004044a0 nop |
| label_0:
0x004044a4 lw v0, 0x38(fp) | v0 = *(var_38h);
| if (v0 != 0) {
0x004044a8 beqz v0, 0x4044bc |
0x004044ac nop |
0x004044b0 lw a0, 0x38(fp) | a0 = *(var_38h);
0x004044b4 jal 0x41d4b0 | sym_imp_free ();
0x004044b8 nop |
| }
0x004044bc lw v0, 0x20(fp) | v0 = *(var_20h);
| if (v0 != 0) {
0x004044c0 beqz v0, 0x4044d4 |
0x004044c4 nop |
0x004044c8 lw a0, 0x20(fp) | a0 = *(var_20h);
0x004044cc jal 0x412f20 | sym_cJSON_Delete ();
0x004044d0 nop |
| }
| label_1:
0x004044d4 move sp, fp |
0x004044d8 lw ra, 0x8dc(sp) | ra = *(var_8dch);
0x004044dc lw fp, 0x8d8(sp) | fp = *(var_8d8h);
0x004044e0 addiu sp, sp, 0x8e0 |
0x004044e4 jr ra | return v0;
0x004044e8 nop |
| }
; assembly | /* r2dec pseudo code output */
| /* /logs/firmware/unblob_extracted/firmware_extract/6225984-11075644.jffs2_new_extract/bin/hl_client @ 0x402598 */
| #include <stdint.h>
|
; (fcn) sym.msgsend () | void msgsend () {
0x00402598 addiu sp, sp, -0x38 |
0x0040259c sw ra, 0x34(sp) | *(var_34h) = ra;
0x004025a0 sw fp, 0x30(sp) | *(var_30h) = fp;
0x004025a4 move fp, sp | fp = sp;
0x004025a8 sw a0, 0x38(fp) | *(arg_38h) = a0;
0x004025ac sw a1, 0x3c(fp) | *(arg_3ch) = a1;
0x004025b0 move v0, a2 | v0 = a2;
0x004025b4 sw a3, 0x44(fp) | *(arg_44h) = a3;
0x004025b8 sh v0, 0x40(fp) | *(arg_40h) = v0;
0x004025bc sw zero, 0x1c(fp) | *(var_1ch) = 0;
0x004025c0 addiu v0, zero, 1 | v0 = 1;
0x004025c4 sw v0, 0x20(fp) | *(var_20h) = v0;
0x004025c8 sb zero, 0x24(fp) | *(var_24h) = 0;
0x004025cc lw v0, 0x44(fp) | v0 = *(arg_44h);
0x004025d0 sw v0, 0x28(fp) | *(var_28h) = v0;
0x004025d4 lw a0, 0x44(fp) | a0 = *(arg_44h);
0x004025d8 jal 0x41d460 | fcn_0041d460 ();
0x004025dc nop |
0x004025e0 sw v0, 0x2c(fp) | *(var_2ch) = v0;
0x004025e4 sw zero, 0x18(fp) | *(var_18h) = 0;
0x004025e8 b 0x40266c | goto label_0;
0x004025ec nop |
| do {
0x004025f0 lhu v1, 0x40(fp) | v1 = *(arg_40h);
0x004025f4 addiu v0, fp, 0x20 | v0 = fp + 0x20;
0x004025f8 lw a0, 0x38(fp) | a0 = *(arg_38h);
0x004025fc lw a1, 0x3c(fp) | a1 = *(arg_3ch);
0x00402600 move a2, v1 | a2 = v1;
0x00402604 move a3, v0 | a3 = v0;
0x00402608 jal 0x4070f8 | sym_aws_iot_mqtt_publish ();
0x0040260c nop |
0x00402610 sw v0, 0x1c(fp) | *(var_1ch) = v0;
0x00402614 lw v0, 0x1c(fp) | v0 = *(var_1ch);
| if (v0 == 0) {
0x00402618 bnez v0, 0x402650 |
0x0040261c nop |
0x00402620 lui v0, 0x42 | v0 = 0x420000;
| /* str._IOT__msgsend__s_success__n */
0x00402624 addiu a0, v0, -0x57d8 | a0 = "[IOT] msgsend %s success!\n";
0x00402628 lw a1, 0x44(fp) | a1 = *(arg_44h);
0x0040262c jal 0x41cfc0 | fcn_0041cfc0 ();
0x00402630 nop |
0x00402634 lui v0, 0x42 | v0 = 0x420000;
| /* str._IOT__msgsend__s_success__n */
0x00402638 addiu a0, v0, -0x57d8 | a0 = "[IOT] msgsend %s success!\n";
0x0040263c lw a1, 0x44(fp) | a1 = *(arg_44h);
0x00402640 jal 0x405dbc | sym_log_printf ()
0x00402644 nop |
0x00402648 b 0x40267c | goto label_1;
0x0040264c nop |
| }
0x00402650 lui v0, 1 | v0 = 10000;
0x00402654 ori a0, v0, 0x86a0 | a0 = 0x186a0;
0x00402658 jal 0x41d040 | fcn_0041d040 ();
0x0040265c nop |
0x00402660 lw v0, 0x18(fp) | v0 = *(var_18h);
0x00402664 addiu v0, v0, 1 | v0++;
0x00402668 sw v0, 0x18(fp) | *(var_18h) = v0;
| label_0:
0x0040266c lw v0, 0x18(fp) | v0 = *(var_18h);
0x00402670 slti v0, v0, 3 | v0 = (v0 < 3) ? 1 : 0;
0x00402674 bnez v0, 0x4025f0 |
| } while (v0 != 0);
0x00402678 nop |
| label_1:
0x0040267c lw v0, 0x1c(fp) | v0 = *(var_1ch);
| if (v0 != 0) {
0x00402680 beqz v0, 0x4026b8 |
0x00402684 nop |
0x00402688 lui v0, 0x42 | v0 = 0x420000;
| /* str._IOT__msgsend__s_failed__rc_is__d_n */
0x0040268c addiu a0, v0, -0x57bc | a0 = "[IOT] msgsend %s failed!,rc is %d\n";
0x00402690 lw a1, 0x44(fp) | a1 = *(arg_44h);
0x00402694 lw a2, 0x1c(fp) | a2 = *(var_1ch);
0x00402698 jal 0x405dbc | sym_log_printf ()
0x0040269c nop |
0x004026a0 lui v0, 0x42 | v0 = 0x420000;
| /* str._IOT__msgsend__s_failed__rc_is__d_n */
0x004026a4 addiu a0, v0, -0x57bc | a0 = "[IOT] msgsend %s failed!,rc is %d\n";
0x004026a8 lw a1, 0x44(fp) | a1 = *(arg_44h);
0x004026ac lw a2, 0x1c(fp) | a2 = *(var_1ch);
0x004026b0 jal 0x41cfc0 | fcn_0041cfc0 ();
0x004026b4 nop |
| }
0x004026b8 lw v0, 0x1c(fp) | v0 = *(var_1ch);
0x004026bc move sp, fp |
0x004026c0 lw ra, 0x34(sp) | ra = *(var_34h);
0x004026c4 lw fp, 0x30(sp) | fp = *(var_30h);
0x004026c8 addiu sp, sp, 0x38 |
0x004026cc jr ra | return v0;
0x004026d0 nop |
| }
; assembly | /* r2dec pseudo code output */
| /* /logs/firmware/unblob_extracted/firmware_extract/6225984-11075644.jffs2_new_extract/bin/hl_client @ 0x405fd0 */
| #include <stdint.h>
|
; (fcn) sym.upload_resend_list_again () | void upload_resend_list_again () {
0x00405fd0 addiu sp, sp, -0x38 |
0x00405fd4 sw ra, 0x34(sp) | *(var_34h) = ra;
0x00405fd8 sw fp, 0x30(sp) | *(var_30h) = fp;
0x00405fdc sw s0, 0x2c(sp) | *(var_2ch) = s0;
0x00405fe0 move fp, sp | fp = sp;
0x00405fe4 sw a0, 0x38(fp) | *(arg_38h) = a0;
0x00405fe8 lui v0, 0x43 | v0 = 0x430000;
0x00405fec lw v0, -0x1e30(v0) | v0 = *((v0 - 1932));
0x00405ff0 lw v0, (v0) | v0 = *(v0);
| if (v0 == 0) {
0x00405ff4 beqz v0, 0x406180 | goto label_0;
| }
0x00405ff8 nop |
0x00405ffc sw zero, 0x20(fp) | *(var_20h) = 0;
0x00406000 lui v0, 0x43 | v0 = 0x430000;
0x00406004 lw v0, -0x1e30(v0) | v0 = *((v0 - 1932));
0x00406008 lw v0, 4(v0) | v0 = *((v0 + 1));
0x0040600c sw v0, 0x18(fp) | *(var_18h) = v0;
0x00406010 sw zero, 0x1c(fp) | *(var_1ch) = 0;
0x00406014 b 0x40616c | goto label_1;
0x00406018 nop |
| do {
0x0040601c lw v0, 0x18(fp) | v0 = *(var_18h);
0x00406020 addiu v1, v0, 4 | v1 = v0 + 4;
0x00406024 lw v0, 0x18(fp) | v0 = *(var_18h);
0x00406028 addiu v0, v0, 0x84 | v0 += 0x84;
0x0040602c lui a0, 0x42 | a0 = " resend p->topic is %s,p->sg is %s\n";
| /* str._resend_p__topic_is__s_p__msg_is__s_n */
0x00406030 addiu a0, a0, -0x4638 |
0x00406034 move a1, v1 | a1 = v1;
0x00406038 move a2, v0 | a2 = v0;
0x0040603c jal 0x41cfc0 | fcn_0041cfc0 ();
0x00406040 nop |
0x00406044 lw v0, 0x18(fp) | v0 = *(var_18h);
0x00406048 addiu v1, v0, 4 | v1 = v0 + 4;
0x0040604c lw v0, 0x18(fp) | v0 = *(var_18h);
0x00406050 addiu v0, v0, 0x84 | v0 += 0x84;
0x00406054 lui a0, 0x42 | a0 = " resend p->topic is %s,p->sg is %s\n";
| /* str._resend_p__topic_is__s_p__msg_is__s_n */
0x00406058 addiu a0, a0, -0x4638 |
0x0040605c move a1, v1 | a1 = v1;
0x00406060 move a2, v0 | a2 = v0;
0x00406064 jal 0x405dbc | sym_log_printf ()
0x00406068 nop |
0x0040606c lw v0, 0x18(fp) | v0 = *(var_18h);
0x00406070 addiu s0, v0, 4 | s0 = v0 + 4;
0x00406074 lw v0, 0x18(fp) | v0 = *(var_18h);
0x00406078 addiu v0, v0, 4 | v0 += 4;
0x0040607c move a0, v0 | a0 = v0;
0x00406080 jal 0x41d460 | fcn_0041d460 ();
0x00406084 nop |
0x00406088 andi v0, v0, 0xffff | v0 &= 0xffff;
0x0040608c move v1, v0 | v1 = v0;
0x00406090 lw v0, 0x18(fp) | v0 = *(var_18h);
0x00406094 addiu v0, v0, 0x84 | v0 += 0x84;
0x00406098 lw a0, 0x38(fp) | a0 = *(arg_38h);
0x0040609c move a1, s0 | a1 = s0;
0x004060a0 move a2, v1 | a2 = v1;
0x004060a4 move a3, v0 | a3 = v0;
0x004060a8 jal 0x402598 | sym_msgsend ();
0x004060ac nop |
0x004060b0 sw v0, 0x20(fp) | *(var_20h) = v0;
0x004060b4 lw v0, 0x20(fp) | v0 = *(var_20h);
| if (v0 == 0) {
0x004060b8 bnez v0, 0x406148 |
0x004060bc nop |
0x004060c0 lw v0, 0x1c(fp) | v0 = *(var_1ch);
| if (v0 == 0) {
0x004060c4 bnez v0, 0x406104 |
0x004060c8 nop |
0x004060cc lui v0, 0x43 | v0 = 0x430000;
0x004060d0 lw v0, -0x1e30(v0) | v0 = *((v0 - 1932));
0x004060d4 lw v1, 0x18(fp) | v1 = *(var_18h);
0x004060d8 lw v1, (v1) | v1 = *(v1);
0x004060dc sw v1, 4(v0) | *((v0 + 1)) = v1;
0x004060e0 lw a0, 0x18(fp) | a0 = *(var_18h);
0x004060e4 jal 0x41d4b0 | sym_imp_free ();
0x004060e8 nop |
0x004060ec lui v0, 0x43 | v0 = 0x430000;
0x004060f0 lw v0, -0x1e30(v0) | v0 = *((v0 - 1932));
0x004060f4 lw v0, 4(v0) | v0 = *((v0 + 1));
0x004060f8 sw v0, 0x18(fp) | *(var_18h) = v0;
0x004060fc b 0x40612c | goto label_2;
0x00406100 nop |
| }
0x00406104 lw v0, 0x18(fp) | v0 = *(var_18h);
0x00406108 lw v1, (v0) | v1 = *(v0);
0x0040610c lw v0, 0x1c(fp) | v0 = *(var_1ch);
0x00406110 sw v1, (v0) | *(v0) = v1;
0x00406114 lw a0, 0x18(fp) | a0 = *(var_18h);
0x00406118 jal 0x41d4b0 | sym_imp_free ();
0x0040611c nop |
0x00406120 lw v0, 0x1c(fp) | v0 = *(var_1ch);
0x00406124 lw v0, (v0) | v0 = *(v0);
0x00406128 sw v0, 0x18(fp) | *(var_18h) = v0;
| label_2:
0x0040612c lui v0, 0x43 | v0 = 0x430000;
0x00406130 lw v0, -0x1e30(v0) | v0 = *((v0 - 1932));
0x00406134 lw v1, (v0) | v1 = *(v0);
0x00406138 addiu v1, v1, -1 | v1 += -1;
0x0040613c sw v1, (v0) | *(v0) = v1;
0x00406140 b 0x40615c | goto label_3;
0x00406144 nop |
| }
0x00406148 lw v0, 0x18(fp) | v0 = *(var_18h);
0x0040614c sw v0, 0x1c(fp) | *(var_1ch) = v0;
0x00406150 lw v0, 0x18(fp) | v0 = *(var_18h);
0x00406154 lw v0, (v0) | v0 = *(v0);
0x00406158 sw v0, 0x18(fp) | *(var_18h) = v0;
| label_3:
0x0040615c lui v0, 3 | v0 = 30000;
0x00406160 ori a0, v0, 0xd40 | a0 = 0x30d40;
0x00406164 jal 0x41d040 | fcn_0041d040 ();
0x00406168 nop |
| label_1:
0x0040616c lw v0, 0x18(fp) | v0 = *(var_18h);
0x00406170 bnez v0, 0x40601c |
| } while (v0 != 0);
0x00406174 nop |
0x00406178 b 0x406184 | goto label_4;
0x0040617c nop |
| label_0:
0x00406180 nop |
| label_4:
0x00406184 move sp, fp |
0x00406188 lw ra, 0x34(sp) | ra = *(var_34h);
0x0040618c lw fp, 0x30(sp) | fp = *(var_30h);
0x00406190 lw s0, 0x2c(sp) | s0 = *(var_2ch);
0x00406194 addiu sp, sp, 0x38 |
0x00406198 jr ra | return v0;
0x0040619c nop |
| }
[*] Function printf used 40 times hl_client