[*] Binary protection state of actionengined
Full RELRO Canary found NX disabled PIE enabled No RPATH No RUNPATH No Symbols
[*] Function printf tear down of actionengined
; assembly | /* r2dec pseudo code output */
| /* /logs/firmware/unblob_extracted/firmware_extract/4325012-58052244.squashfs_v4_le_extract/usr/bin/actionengined @ 0xd820 */
| #include <stdint.h>
|
; (fcn) fcn.0000d820 () | void fcn_0000d820 () {
0x0000d820 lui gp, 3 |
0x0000d824 addiu gp, gp, 0x6920 |
0x0000d828 addu gp, gp, t9 | gp += t9;
0x0000d82c lw v0, -0x7b1c(gp) | v0 = *((gp - 7879));
0x0000d830 addiu sp, sp, -0x480 |
0x0000d834 lw t9, -0x7cd4(gp) | t9 = sym.imp.g_dir_open;
0x0000d838 sw v0, 0x34(sp) | *(var_34h) = v0;
0x0000d83c lw v1, 0x490(sp) | v1 = *(arg_490h);
0x0000d840 lw v0, (v0) | v0 = *(v0);
0x0000d844 sw s7, 0x474(sp) | *(var_474h) = s7;
0x0000d848 sw s0, 0x458(sp) | *(var_458h) = s0;
0x0000d84c addiu s7, sp, 0x44 | s7 = sp + 0x44;
0x0000d850 move s0, a2 | s0 = a2;
0x0000d854 sw gp, 0x20(sp) | *(var_20h) = gp;
0x0000d858 sw a0, 0x28(sp) | *(var_28h) = a0;
0x0000d85c sw a1, 0x38(sp) | *(var_38h) = a1;
0x0000d860 sw ra, 0x47c(sp) | *(var_47ch) = ra;
0x0000d864 sw fp, 0x478(sp) | *(var_478h) = fp;
0x0000d868 sw s6, 0x470(sp) | *(var_470h) = s6;
0x0000d86c sw s5, 0x46c(sp) | *(var_46ch) = s5;
0x0000d870 sw s4, 0x468(sp) | *(var_468h) = s4;
0x0000d874 sw s3, 0x464(sp) | *(var_464h) = s3;
0x0000d878 sw s2, 0x460(sp) | *(var_460h) = s2;
0x0000d87c sw s1, 0x45c(sp) | *(var_45ch) = s1;
0x0000d880 move a2, s7 | a2 = s7;
0x0000d884 move a1, zero | a1 = 0;
0x0000d888 move a0, s0 | a0 = s0;
0x0000d88c sw a3, 0x48c(sp) | *(arg_48ch) = a3;
0x0000d890 sw v1, 0x3c(sp) | *(var_3ch) = v1;
0x0000d894 sw v0, 0x454(sp) | *(var_454h) = v0;
0x0000d898 sw zero, 0x44(sp) | *(var_44h) = 0;
0x0000d89c jalr t9 | t9 ();
0x0000d8a0 nop |
0x0000d8a4 lw gp, 0x20(sp) | gp = *(var_20h);
| if (v0 == 0) {
0x0000d8a8 beqz v0, 0xdba4 | goto label_3;
| }
0x0000d8ac move s4, v0 | s4 = v0;
0x0000d8b0 lw v0, -0x7fd8(gp) | v0 = *(gp);
0x0000d8b4 lw s5, -0x7fd8(gp) | s5 = *(gp);
0x0000d8b8 sw v0, 0x2c(sp) | *(var_2ch_2) = v0;
0x0000d8bc lw v0, -0x7fd8(gp) | v0 = *(gp);
0x0000d8c0 lw s1, -0x7fd0(gp) | s1 = *((gp - 8180));
| /* str.action_template.c:409___s__Inserting_action_template:__s */
0x0000d8c4 addiu v0, v0, 0x6558 | v0 += 0x6558;
0x0000d8c8 lw s6, -0x7fd8(gp) | s6 = *(gp);
| /* str._s__s */
0x0000d8cc addiu s5, s5, 0x64d0 | s5 += 0x64d0;
| /* esilref: 'xml' */
0x0000d8d0 addiu s1, s1, -0x6560 | s1 += -0x6560;
0x0000d8d4 sw v0, 0x30(sp) | *(var_30h_2) = v0;
| label_0:
0x0000d8d8 lw t9, -0x78e0(gp) | t9 = sym.imp.g_dir_read_name;
0x0000d8dc move a0, s4 | a0 = s4;
0x0000d8e0 jalr t9 | t9 ();
0x0000d8e4 move s2, v0 | s2 = v0;
0x0000d8e8 lw gp, 0x20(sp) | gp = *(var_20h);
| if (v0 == 0) {
0x0000d8ec beqz v0, 0xdad8 | goto label_4;
| }
| do {
0x0000d8f0 lw t9, -0x7c78(gp) | t9 = sym.imp.g_sprintf
0x0000d8f4 addiu s3, sp, 0x54 | s3 = sp + 0x54;
0x0000d8f8 move a3, s2 | a3 = s2;
0x0000d8fc move a2, s0 | a2 = s0;
0x0000d900 move a1, s5 | a1 = s5;
0x0000d904 move a0, s3 | a0 = s3;
0x0000d908 jalr t9 | t9 ();
0x0000d90c lw gp, 0x20(sp) | gp = *(var_20h);
0x0000d910 move a1, s1 | a1 = s1;
0x0000d914 lw t9, -0x7c64(gp) | t9 = sym.imp.g_str_has_suffix;
0x0000d918 move a0, s2 | a0 = s2;
0x0000d91c jalr t9 | t9 ();
0x0000d920 lw gp, 0x20(sp) | gp = *(var_20h);
| if (v0 == 0) {
0x0000d924 beqz v0, 0xdb30 | goto label_5;
| }
0x0000d928 lw t9, -0x7cd8(gp) | t9 = sym.imp.g_file_test;
0x0000d92c addiu a1, zero, 1 | a1 = 1;
0x0000d930 move a0, s3 | a0 = s3;
0x0000d934 jalr t9 | t9 ();
0x0000d938 lw gp, 0x20(sp) | gp = *(var_20h);
| if (v0 == 0) {
0x0000d93c beqz v0, 0xdb30 | goto label_5;
| }
0x0000d940 lw t9, -0x7ac0(gp) | t9 = sym.imp.strlen;
0x0000d944 move a0, s2 | a0 = s2;
0x0000d948 jalr t9 | t9 ();
0x0000d94c lw gp, 0x20(sp) | gp = *(var_20h);
0x0000d950 move a0, s2 | a0 = s2;
0x0000d954 lw t9, -0x79f0(gp) | t9 = sym.imp.g_strndup;
0x0000d958 addiu a1, v0, -4 | a1 = v0 + -4;
0x0000d95c jalr t9 | t9 ();
0x0000d960 lw gp, 0x20(sp) | gp = *(var_20h);
0x0000d964 lw a0, 0x48c(sp) | a0 = *(arg_48ch);
0x0000d968 lw t9, -0x7e98(gp) | t9 = sym.action_template_new;
0x0000d96c move s3, v0 | s3 = v0;
0x0000d970 bal 0xd670 | sym_action_template_new ();
0x0000d974 lw a0, 0x10(v0) | a0 = *((v0 + 4));
0x0000d978 lw gp, 0x20(sp) | gp = *(var_20h);
0x0000d97c move s2, v0 | s2 = v0;
0x0000d980 sw zero, 0x48(sp) | *(var_48h) = 0;
0x0000d984 sw zero, 0x4c(sp) | *(var_4ch) = 0;
| if (a0 != 0) {
0x0000d988 beqz a0, 0xd99c |
0x0000d98c lw t9, -0x7864(gp) | t9 = *((gp - 7705));
0x0000d990 jalr t9 | t9 ();
0x0000d994 nop |
0x0000d998 lw gp, 0x20(sp) | gp = *(var_20h);
| }
0x0000d99c lw t9, -0x792c(gp) | t9 = sym.imp.g_strdup;
0x0000d9a0 move a0, s3 | a0 = s3;
0x0000d9a4 jalr t9 | t9 ();
0x0000d9a8 lw gp, 0x20(sp) | gp = *(var_20h);
0x0000d9ac addiu v1, sp, 0x48 | v1 = sp + 0x48;
0x0000d9b0 sw v0, 0x10(s2) | *((s2 + 4)) = v0;
0x0000d9b4 lw t9, -0x7e9c(gp) | t9 = sym.create_file_path;
0x0000d9b8 move a3, zero | a3 = 0;
0x0000d9bc sw s7, 0x14(sp) | *(var_14h) = s7;
0x0000d9c0 sw v1, 0x10(sp) | *(var_50h) = v1;
0x0000d9c4 move a2, s1 | a2 = s1;
0x0000d9c8 move a1, s0 | a1 = s0;
0x0000d9cc move a0, v0 | a0 = v0;
0x0000d9d0 bal 0x11b54 | sym_create_file_path ();
0x0000d9d4 lw gp, 0x20(sp) | gp = *(var_20h);
| if (v0 != 0) {
0x0000d9d8 beqz v0, 0xda28 |
0x0000d9dc lw t9, -0x7c04(gp) | t9 = sym.imp.g_file_get_contents;
0x0000d9e0 lw a0, 0x48(sp) | a0 = *(var_48h);
0x0000d9e4 move a3, s7 | a3 = s7;
0x0000d9e8 addiu a2, sp, 0x50 | a2 = sp + 0x50;
0x0000d9ec addiu a1, sp, 0x4c | a1 = sp + 0x4c;
0x0000d9f0 jalr t9 | t9 ();
0x0000d9f4 lw gp, 0x20(sp) | gp = *(var_20h);
| if (v0 == 0) {
0x0000d9f8 beqz v0, 0xda28 | goto label_6;
| }
0x0000d9fc lw v0, 0x38(sp) | v0 = *(var_38h);
0x0000da00 lw t9, -0x7e90(gp) | t9 = sym.action_template_deserialize_from_data;
0x0000da04 lw a3, 0x50(sp) | a3 = *(var_50h_2);
0x0000da08 lw a2, 0x4c(sp) | a2 = *(var_4ch);
0x0000da0c sw s7, 0x14(sp) | *(var_14h) = s7;
0x0000da10 sw v0, 0x10(sp) | *(var_50h) = v0;
0x0000da14 move a1, s0 | a1 = s0;
0x0000da18 move a0, s2 | a0 = s2;
0x0000da1c bal 0xd36c | sym_action_template_deserialize_from_data ();
0x0000da20 lw gp, 0x20(sp) | gp = *(var_20h);
| if (v0 != 0) {
0x0000da24 bnez v0, 0xdb58 | goto label_7;
| }
| }
| label_6:
0x0000da28 move fp, zero | fp = 0;
| label_1:
0x0000da2c lw a0, 0x48(sp) | a0 = *(var_48h);
0x0000da30 lw t9, -0x7864(gp) | t9 = *((gp - 7705));
| if (a0 != 0) {
0x0000da34 beqz a0, 0xda44 |
0x0000da38 jalr t9 | t9 ();
0x0000da3c nop |
0x0000da40 lw gp, 0x20(sp) | gp = *(var_20h);
| }
0x0000da44 lw v0, 0x44(sp) | v0 = *(var_44h);
0x0000da48 lw a2, -0x7fd8(gp) | a2 = *(gp);
| if (v0 != 0) {
0x0000da4c beqz v0, 0xda74 |
0x0000da50 lw v0, 8(v0) | v0 = *((v0 + 2));
0x0000da54 lw t9, -0x7cbc(gp) | t9 = sym.imp.g_log;
0x0000da58 sw v0, 0x10(sp) | *(var_50h) = v0;
0x0000da5c addiu a3, s6, 0x6dd0 | a3 = s6 + 0x6dd0;
| /* str._s_s */
0x0000da60 addiu a2, a2, 0x5594 | a2 += 0x5594;
0x0000da64 addiu a1, zero, 0x10 | a1 = 0x10;
0x0000da68 move a0, zero | a0 = 0;
0x0000da6c jalr t9 | t9 ();
0x0000da70 lw gp, 0x20(sp) | gp = *(var_20h);
| }
0x0000da74 lw t9, -0x7864(gp) | t9 = *((gp - 7705));
0x0000da78 lw a0, 0x4c(sp) | a0 = *(var_4ch);
0x0000da7c jalr t9 | t9 ();
0x0000da80 lw gp, 0x20(sp) | gp = *(var_20h);
| if (fp == 0) {
0x0000da84 beqz fp, 0xdb78 | goto label_8;
| }
0x0000da88 lw v0, 0x2c(sp) | v0 = *(var_2ch_2);
0x0000da8c lw a0, 0x30(sp) | a0 = *(var_30h_2);
0x0000da90 addiu a1, v0, 0x65a0 | a1 = v0 + 0x65a0;
0x0000da94 lw v0, -0x7fb8(gp) | v0 = *(gp);
0x0000da98 lw t9, (v0) | t9 = *(v0);
0x0000da9c move a2, s3 | a2 = s3;
0x0000daa0 jalr t9 | t9 ();
0x0000daa4 lw gp, 0x20(sp) | gp = *(var_20h);
0x0000daa8 lw a0, 0x28(sp) | a0 = *(var_28h);
0x0000daac move a2, s2 | a2 = s2;
0x0000dab0 lw t9, -0x795c(gp) | t9 = sym.imp.g_hash_table_insert;
0x0000dab4 move a1, s3 | a1 = s3;
0x0000dab8 jalr t9 | t9 ();
0x0000dabc lw gp, 0x20(sp) | gp = *(var_20h);
0x0000dac0 lw t9, -0x78e0(gp) | t9 = sym.imp.g_dir_read_name;
0x0000dac4 move a0, s4 | a0 = s4;
0x0000dac8 jalr t9 | t9 ();
0x0000dacc move s2, v0 | s2 = v0;
0x0000dad0 lw gp, 0x20(sp) | gp = *(var_20h);
0x0000dad4 bnez v0, 0xd8f0 |
| } while (v0 != 0);
| label_4:
0x0000dad8 addiu s0, zero, 1 | s0 = 1;
| do {
0x0000dadc lw t9, -0x78b8(gp) | t9 = sym.imp.g_dir_close;
0x0000dae0 move a0, s4 | a0 = s4;
0x0000dae4 jalr t9 | t9 ();
0x0000dae8 lw gp, 0x20(sp) | gp = *(var_20h);
| label_2:
0x0000daec lw v0, 0x34(sp) | v0 = *(var_34h);
0x0000daf0 lw a0, 0x454(sp) | a0 = *(var_454h);
0x0000daf4 lw v1, (v0) | v1 = *(v0);
0x0000daf8 move v0, s0 | v0 = s0;
| if (a0 != v1) {
0x0000dafc bne a0, v1, 0xdc08 | goto label_9;
| }
0x0000db00 lw ra, 0x47c(sp) | ra = *(var_47ch);
0x0000db04 lw fp, 0x478(sp) | fp = *(var_478h);
0x0000db08 lw s7, 0x474(sp) | s7 = *(var_474h);
0x0000db0c lw s6, 0x470(sp) | s6 = *(var_470h);
0x0000db10 lw s5, 0x46c(sp) | s5 = *(var_46ch);
0x0000db14 lw s4, 0x468(sp) | s4 = *(var_468h);
0x0000db18 lw s3, 0x464(sp) | s3 = *(var_464h);
0x0000db1c lw s2, 0x460(sp) | s2 = *(var_460h);
0x0000db20 lw s1, 0x45c(sp) | s1 = *(var_45ch);
0x0000db24 lw s0, 0x458(sp) | s0 = *(var_458h);
0x0000db28 addiu sp, sp, 0x480 |
0x0000db2c jr ra | return v1;
| label_5:
0x0000db30 lw a2, -0x7fd8(gp) | a2 = *(gp);
0x0000db34 lw t9, -0x7cbc(gp) | t9 = sym.imp.g_log;
0x0000db38 sw s2, 0x10(sp) | *(var_50h) = s2;
0x0000db3c addiu a3, s6, 0x6dd0 | a3 = s6 + 0x6dd0;
| /* str._sNot_a_template_file:__s */
0x0000db40 addiu a2, a2, 0x64d8 | a2 += 0x64d8;
0x0000db44 addiu a1, zero, 0x10 | a1 = 0x10;
0x0000db48 move a0, zero | a0 = 0;
0x0000db4c jalr t9 | t9 ();
0x0000db50 lw gp, 0x20(sp) | gp = *(var_20h);
0x0000db54 b 0xd8d8 | goto label_0;
| label_7:
0x0000db58 lw t9, -0x791c(gp) | t9 = sym.imp.g_strcmp0;
0x0000db5c lw a1, 0x10(s2) | a1 = *((s2 + 4));
0x0000db60 move a0, s3 | a0 = s3;
0x0000db64 jalr t9 | t9 ();
0x0000db68 lw gp, 0x20(sp) | gp = *(var_20h);
| if (v0 != 0) {
0x0000db6c bnez v0, 0xdbc0 | goto label_10;
| }
0x0000db70 addiu fp, zero, 1 | fp = 1;
0x0000db74 b 0xda2c | goto label_1;
| label_8:
0x0000db78 lw t9, -0x7ab0(gp) | t9 = sym.imp.g_propagate_error;
0x0000db7c lw a1, 0x44(sp) | a1 = *(var_44h);
0x0000db80 lw a0, 0x3c(sp) | a0 = *(var_3ch);
0x0000db84 move s0, zero | s0 = 0;
0x0000db88 jalr t9 | t9 ();
0x0000db8c lw gp, 0x20(sp) | gp = *(var_20h);
0x0000db90 lw t9, -0x7918(gp) | t9 = *((gp - 7750));
0x0000db94 move a0, s2 | a0 = s2;
0x0000db98 jalr t9 | t9 ();
0x0000db9c lw gp, 0x20(sp) | gp = *(var_20h);
0x0000dba0 b 0xdadc |
| } while (1);
| label_3:
0x0000dba4 lw t9, -0x7ab0(gp) | t9 = sym.imp.g_propagate_error;
0x0000dba8 lw a1, 0x44(sp) | a1 = *(var_44h);
0x0000dbac lw a0, 0x3c(sp) | a0 = *(var_3ch);
0x0000dbb0 move s0, zero | s0 = 0;
0x0000dbb4 jalr t9 | t9 ();
0x0000dbb8 lw gp, 0x20(sp) | gp = *(var_20h);
0x0000dbbc b 0xdaec | goto label_2;
| label_10:
0x0000dbc0 lw t9, -0x7c14(gp) | t9 = sym.imp.ae_error_quark;
0x0000dbc4 move fp, zero | fp = 0;
0x0000dbc8 jalr t9 | t9 ();
0x0000dbcc lw gp, 0x20(sp) | gp = *(var_20h);
0x0000dbd0 lw v1, 0x10(s2) | v1 = *((s2 + 4));
0x0000dbd4 sw s3, 0x14(sp) | *(var_14h) = s3;
0x0000dbd8 lw a3, -0x7fd8(gp) | a3 = *(gp);
0x0000dbdc sw v1, 0x18(sp) | *(var_18h_2) = v1;
0x0000dbe0 lw v1, 0x48(sp) | v1 = *(var_48h);
0x0000dbe4 lw t9, -0x7b10(gp) | t9 = sym.imp.g_set_error;
0x0000dbe8 sw v1, 0x10(sp) | *(var_50h) = v1;
| /* str._s:_template_id_missmatch__filename_id__s_does_not_match_the_id__s_specified_with__id__element */
0x0000dbec addiu a3, a3, 0x64f4 | a3 += 0x64f4;
0x0000dbf0 addiu a2, zero, 4 | a2 = 4;
0x0000dbf4 move a1, v0 | a1 = v0;
0x0000dbf8 move a0, s7 | a0 = s7;
0x0000dbfc jalr t9 | t9 ();
0x0000dc00 lw gp, 0x20(sp) | gp = *(var_20h);
0x0000dc04 b 0xda2c | goto label_1;
| label_9:
0x0000dc08 lw t9, -0x7ba8(gp) | t9 = sym.imp.__stack_chk_fail;
0x0000dc0c jalr t9 | t9 ();
0x0000dc10 nop |
| }
; assembly | /* r2dec pseudo code output */
| /* /logs/firmware/unblob_extracted/firmware_extract/4325012-58052244.squashfs_v4_le_extract/usr/bin/actionengined @ 0x1152c */
| #include <stdint.h>
|
; (fcn) sym.action_configuration_load_all () | void action_configuration_load_all () {
0x0001152c lui gp, 3 |
0x00011530 addiu gp, gp, 0x2c14 |
0x00011534 addu gp, gp, t9 | gp += t9;
0x00011538 lw v0, -0x7b1c(gp) | v0 = *((gp - 7879));
0x0001153c addiu sp, sp, -0x470 |
0x00011540 lw t9, -0x7cd4(gp) | t9 = sym.imp.g_dir_open;
0x00011544 sw v0, 0x30(sp) | *(var_30h) = v0;
0x00011548 lw v0, (v0) | v0 = *(v0);
0x0001154c addiu v1, sp, 0x40 | v1 = sp + 0x40;
0x00011550 sw s2, 0x450(sp) | *(var_450h) = s2;
0x00011554 move s2, a2 | s2 = a2;
0x00011558 sw gp, 0x18(sp) | *(var_18h_2) = gp;
0x0001155c sw s7, 0x464(sp) | *(var_464h) = s7;
0x00011560 sw s0, 0x448(sp) | *(var_448h) = s0;
0x00011564 sw a0, 0x2c(sp) | *(var_2ch_2) = a0;
0x00011568 sw ra, 0x46c(sp) | *(var_46ch) = ra;
0x0001156c sw fp, 0x468(sp) | *(var_468h) = fp;
0x00011570 sw s6, 0x460(sp) | *(var_460h) = s6;
0x00011574 sw s5, 0x45c(sp) | *(var_45ch) = s5;
0x00011578 sw s4, 0x458(sp) | *(var_458h) = s4;
0x0001157c sw s3, 0x454(sp) | *(var_454h) = s3;
0x00011580 sw s1, 0x44c(sp) | *(var_44ch) = s1;
0x00011584 sw v1, 0x28(sp) | *(var_28h_2) = v1;
0x00011588 move s7, a1 | s7 = a1;
0x0001158c move a2, v1 | a2 = v1;
0x00011590 move a1, zero | a1 = 0;
0x00011594 move a0, s2 | a0 = s2;
0x00011598 sw v0, 0x444(sp) | *(var_444h) = v0;
0x0001159c sw zero, 0x40(sp) | *(var_40h_2) = 0;
0x000115a0 move s0, a3 | s0 = a3;
0x000115a4 jalr t9 | t9 ();
0x000115a8 lw gp, 0x18(sp) | gp = *(var_18h_2);
| if (v0 == 0) {
0x000115ac beqz v0, 0x11820 | goto label_2;
| }
0x000115b0 lw t9, -0x7a80(gp) | t9 = sym.imp.g_hash_table_new_full;
0x000115b4 lw a3, -0x7918(gp) | a3 = *((gp - 7750));
0x000115b8 lw a2, -0x7864(gp) | a2 = *((gp - 7705));
0x000115bc lw a1, -0x7cc4(gp) | a1 = *((gp - 7985));
0x000115c0 lw a0, -0x78cc(gp) | a0 = *((gp - 7731));
0x000115c4 move s3, v0 | s3 = v0;
0x000115c8 jalr t9 | t9 ();
0x000115cc lw gp, 0x18(sp) | gp = *(var_18h_2);
0x000115d0 sw v0, (s7) | *(s7) = v0;
0x000115d4 move s6, zero | s6 = 0;
0x000115d8 lw v0, -0x7fd8(gp) | v0 = *(gp);
0x000115dc lw s5, -0x7fd8(gp) | s5 = *(gp);
0x000115e0 sw v0, 0x3c(sp) | *(var_3ch_3) = v0;
0x000115e4 lw v0, -0x7fd0(gp) | v0 = *((gp - 8180));
0x000115e8 lw s4, -0x7fd8(gp) | s4 = *(gp);
| /* esilref: '&d' */
0x000115ec addiu v0, v0, -0x60b0 | v0 += -0x60b0;
0x000115f0 sw v0, 0x34(sp) | *(var_34h_3) = v0;
0x000115f4 lw v0, -0x7fd8(gp) | v0 = *(gp);
| /* str._s__s */
0x000115f8 addiu s5, s5, 0x64d0 | s5 += 0x64d0;
| /* str.conf */
0x000115fc addiu s4, s4, 0x6ec4 | s4 += 0x6ec4;
0x00011600 sw v0, 0x38(sp) | *(var_38h_3) = v0;
| label_0:
0x00011604 lw t9, -0x78e0(gp) | t9 = sym.imp.g_dir_read_name;
0x00011608 move a0, s3 | a0 = s3;
0x0001160c jalr t9 | t9 ();
0x00011610 move s0, v0 | s0 = v0;
0x00011614 lw gp, 0x18(sp) | gp = *(var_18h_2);
| if (v0 == 0) {
0x00011618 beqz v0, 0x11700 | goto label_3;
| }
| do {
0x0001161c lw t9, -0x7c78(gp) | t9 = sym.imp.g_sprintf
0x00011620 addiu s1, sp, 0x44 | s1 = sp + 0x44;
0x00011624 move a3, s0 | a3 = s0;
0x00011628 move a2, s2 | a2 = s2;
0x0001162c move a1, s5 | a1 = s5;
0x00011630 move a0, s1 | a0 = s1;
0x00011634 jalr t9 | t9 ();
0x00011638 lw gp, 0x18(sp) | gp = *(var_18h_2);
0x0001163c move a1, s4 | a1 = s4;
0x00011640 lw t9, -0x7c64(gp) | t9 = sym.imp.g_str_has_suffix;
0x00011644 move a0, s0 | a0 = s0;
0x00011648 jalr t9 | t9 ();
0x0001164c lw gp, 0x18(sp) | gp = *(var_18h_2);
| if (v0 == 0) {
0x00011650 beqz v0, 0x11760 | goto label_4;
| }
0x00011654 lw t9, -0x7cd8(gp) | t9 = sym.imp.g_file_test;
0x00011658 addiu a1, zero, 1 | a1 = 1;
0x0001165c move a0, s1 | a0 = s1;
0x00011660 jalr t9 | t9 ();
0x00011664 lw gp, 0x18(sp) | gp = *(var_18h_2);
| if (v0 == 0) {
0x00011668 beqz v0, 0x11760 | goto label_4;
| }
0x0001166c lw t9, -0x7e3c(gp) | t9 = sym.action_configuration_deserialize;
0x00011670 lw a3, 0x28(sp) | a3 = *(var_28h_2);
0x00011674 lw a2, 0x2c(sp) | a2 = *(var_2ch_2);
0x00011678 move a1, s0 | a1 = s0;
0x0001167c move a0, s2 | a0 = s2;
0x00011680 bal 0x1136c | sym_action_configuration_deserialize ();
0x00011684 move fp, v0 | fp = v0;
0x00011688 lw gp, 0x18(sp) | gp = *(var_18h_2);
| if (v0 == 0) {
0x0001168c beqz v0, 0x117bc | goto label_5;
| }
0x00011690 lw t0, 0x10(v0) | t0 = *((v0 + 4));
0x00011694 lw t9, -0x7ae8(gp) | t9 = sym.imp.g_ascii_strtoull;
0x00011698 move a0, s0 | a0 = s0;
0x0001169c sw t0, 0x24(sp) | *(var_24h_3) = t0;
0x000116a0 addiu a2, zero, 0xa | a2 = 0xa;
0x000116a4 move a1, zero | a1 = 0;
0x000116a8 jalr t9 | t9 ();
0x000116ac move s0, v0 | s0 = v0;
0x000116b0 lw gp, 0x18(sp) | gp = *(var_18h_2);
0x000116b4 lw t0, 0x24(sp) | t0 = *(var_24h_3);
| if (v0 != 0) {
0x000116b8 bnez v0, 0x11784 | goto label_6;
| }
0x000116bc lw t9, -0x792c(gp) | t9 = sym.imp.g_strdup;
| if (t0 == 0) {
0x000116c0 beqz t0, 0x117fc | goto label_7;
| }
0x000116c4 move a0, t0 | a0 = t0;
0x000116c8 jalr t9 | t9 ();
0x000116cc lw gp, 0x18(sp) | gp = *(var_18h_2);
0x000116d0 lw a0, (s7) | a0 = *(s7);
0x000116d4 move a2, fp | a2 = fp;
0x000116d8 lw t9, -0x795c(gp) | t9 = sym.imp.g_hash_table_insert;
0x000116dc move a1, v0 | a1 = v0;
0x000116e0 jalr t9 | t9 ();
0x000116e4 lw gp, 0x18(sp) | gp = *(var_18h_2);
0x000116e8 lw t9, -0x78e0(gp) | t9 = sym.imp.g_dir_read_name;
0x000116ec move a0, s3 | a0 = s3;
0x000116f0 jalr t9 | t9 ();
0x000116f4 move s0, v0 | s0 = v0;
0x000116f8 lw gp, 0x18(sp) | gp = *(var_18h_2);
0x000116fc bnez v0, 0x1161c |
| } while (v0 != 0);
| label_3:
0x00011700 lw v0, -0x7fc0(gp) | v0 = *((gp - 8176));
0x00011704 lw t9, -0x78b8(gp) | t9 = sym.imp.g_dir_close;
0x00011708 addiu s6, s6, 1 | s6++;
0x0001170c sw s6, -0x3f00(v0) | *((v0 - 4032)) = s6;
0x00011710 move a0, s3 | a0 = s3;
0x00011714 jalr t9 | t9 ();
0x00011718 lw gp, 0x18(sp) | gp = *(var_18h_2);
0x0001171c addiu v0, zero, 1 | v0 = 1;
| do {
| label_1:
0x00011720 lw v1, 0x30(sp) | v1 = *(var_30h);
0x00011724 lw a0, 0x444(sp) | a0 = *(var_444h);
0x00011728 lw v1, (v1) | v1 = *(v1);
0x0001172c lw ra, 0x46c(sp) | ra = *(var_46ch);
| if (a0 != v1) {
0x00011730 bne a0, v1, 0x11860 | goto label_8;
| }
0x00011734 lw fp, 0x468(sp) | fp = *(var_468h);
0x00011738 lw s7, 0x464(sp) | s7 = *(var_464h);
0x0001173c lw s6, 0x460(sp) | s6 = *(var_460h);
0x00011740 lw s5, 0x45c(sp) | s5 = *(var_45ch);
0x00011744 lw s4, 0x458(sp) | s4 = *(var_458h);
0x00011748 lw s3, 0x454(sp) | s3 = *(var_454h);
0x0001174c lw s2, 0x450(sp) | s2 = *(var_450h);
0x00011750 lw s1, 0x44c(sp) | s1 = *(var_44ch);
0x00011754 lw s0, 0x448(sp) | s0 = *(var_448h);
0x00011758 addiu sp, sp, 0x470 |
0x0001175c jr ra | return v0;
| label_4:
0x00011760 lw a2, -0x7fd8(gp) | a2 = *(gp);
0x00011764 lw t9, -0x7cbc(gp) | t9 = sym.imp.g_log;
0x00011768 move a3, s0 | a3 = s0;
| /* str.Not_an_action_configuration_file:__s */
0x0001176c addiu a2, a2, 0x6f1c | a2 += 0x6f1c;
0x00011770 addiu a1, zero, 0x10 | a1 = 0x10;
0x00011774 move a0, zero | a0 = 0;
0x00011778 jalr t9 | t9 ();
0x0001177c lw gp, 0x18(sp) | gp = *(var_18h_2);
0x00011780 b 0x11604 | goto label_0;
| label_6:
0x00011784 lw t9, -0x7a38(gp) | t9 = sym.imp.g_strdup_printf
0x00011788 lw a0, 0x34(sp) | a0 = *(var_34h_3);
0x0001178c move a1, v0 | a1 = v0;
0x00011790 jalr t9 | t9 ();
0x00011794 lw gp, 0x18(sp) | gp = *(var_18h_2);
0x00011798 lw a0, (s7) | a0 = *(s7);
0x0001179c move a2, fp | a2 = fp;
0x000117a0 lw t9, -0x795c(gp) | t9 = sym.imp.g_hash_table_insert;
0x000117a4 move a1, v0 | a1 = v0;
0x000117a8 jalr t9 | t9 ();
0x000117ac sltu v0, s6, s0 | v0 = (s6 < s0) ? 1 : 0;
0x000117b0 lw gp, 0x18(sp) | gp = *(var_18h_2);
| if (v0 == 0) {
0x000117b4 movn s6, s0, v0 | s6 = s0;
| }
0x000117b8 b 0x11604 | goto label_0;
| label_5:
0x000117bc lw v0, 0x40(sp) | v0 = *(var_40h_2);
0x000117c0 lw v1, 0x38(sp) | v1 = *(var_38h_3);
0x000117c4 lw t9, -0x7cbc(gp) | t9 = sym.imp.g_log;
0x000117c8 lw v0, 8(v0) | v0 = *((v0 + 2));
0x000117cc move a3, s1 | a3 = s1;
0x000117d0 addiu a2, v1, 0x6f44 | a2 = v1 + 0x6f44;
0x000117d4 addiu a1, zero, 0x10 | a1 = 0x10;
0x000117d8 move a0, zero | a0 = 0;
0x000117dc sw v0, 0x10(sp) | *(var_10h_2) = v0;
0x000117e0 jalr t9 | t9 ();
0x000117e4 lw gp, 0x18(sp) | gp = *(var_18h_2);
0x000117e8 lw t9, -0x7930(gp) | t9 = sym.imp.g_clear_error;
0x000117ec lw a0, 0x28(sp) | a0 = *(var_28h_2);
0x000117f0 jalr t9 | t9 ();
0x000117f4 lw gp, 0x18(sp) | gp = *(var_18h_2);
0x000117f8 b 0x11604 | goto label_0;
| label_7:
0x000117fc lw v0, 0x3c(sp) | v0 = *(var_3ch_3);
0x00011800 lw t9, -0x7cbc(gp) | t9 = sym.imp.g_log;
0x00011804 move a3, s1 | a3 = s1;
0x00011808 addiu a2, v0, 0x6f5c | a2 = v0 + 0x6f5c;
0x0001180c addiu a1, zero, 0x10 | a1 = 0x10;
0x00011810 move a0, zero | a0 = 0;
0x00011814 jalr t9 | t9 ();
0x00011818 lw gp, 0x18(sp) | gp = *(var_18h_2);
0x0001181c b 0x11604 | goto label_0;
| label_2:
0x00011820 lw t9, -0x7ab0(gp) | t9 = sym.imp.g_propagate_error;
0x00011824 lw a1, 0x40(sp) | a1 = *(var_40h_2);
0x00011828 move a0, s0 | a0 = s0;
0x0001182c jalr t9 | t9 ();
0x00011830 lw a0, (s7) | a0 = *(s7);
0x00011834 lw gp, 0x18(sp) | gp = *(var_18h_2);
| if (a0 == 0) {
0x00011838 beqz a0, 0x11858 | goto label_9;
| }
0x0001183c lw t9, -0x7c48(gp) | t9 = sym.imp.g_hash_table_unref;
0x00011840 jalr t9 | t9 ();
0x00011844 nop |
0x00011848 lw gp, 0x18(sp) | gp = *(var_18h_2);
0x0001184c move v0, zero | v0 = 0;
0x00011850 sw zero, (s7) | *(s7) = 0;
0x00011854 b 0x11720 |
| } while (1);
| label_9:
0x00011858 move v0, zero | v0 = 0;
0x0001185c b 0x11720 | goto label_1;
| label_8:
0x00011860 lw t9, -0x7ba8(gp) | t9 = sym.imp.__stack_chk_fail;
0x00011864 jalr t9 | t9 ();
0x00011868 nop |
| }
; assembly | /* r2dec pseudo code output */
| /* /logs/firmware/unblob_extracted/firmware_extract/4325012-58052244.squashfs_v4_le_extract/usr/bin/actionengined @ 0x199f0 */
| #include <stdint.h>
|
; (fcn) sym.action_rule_load_all () | void action_rule_load_all () {
0x000199f0 lui gp, 3 |
0x000199f4 addiu gp, gp, -0x58b0 |
0x000199f8 addu gp, gp, t9 | gp += t9;
0x000199fc lw v0, -0x7b1c(gp) | v0 = *((gp - 7879));
0x00019a00 addiu sp, sp, -0x8b8 |
0x00019a04 lw t9, -0x7cd4(gp) | t9 = sym.imp.g_dir_open;
0x00019a08 sw v0, 0x38(sp) | *(var_38h) = v0;
0x00019a0c lw v0, (v0) | v0 = *(v0);
0x00019a10 addiu v1, sp, 0x70 | v1 = sp + 0x70;
0x00019a14 sw s5, 0x8a4(sp) | *(var_8a4h) = s5;
0x00019a18 move s5, a2 | s5 = a2;
0x00019a1c sw gp, 0x18(sp) | *(var_18h) = gp;
0x00019a20 sw s0, 0x890(sp) | *(var_890h) = s0;
0x00019a24 sw a0, 0x3c(sp) | *(var_3ch) = a0;
0x00019a28 sw a1, 0x30(sp) | *(var_30h) = a1;
0x00019a2c sw ra, 0x8b4(sp) | *(var_8b4h) = ra;
0x00019a30 sw fp, 0x8b0(sp) | *(var_8b0h) = fp;
0x00019a34 sw s7, 0x8ac(sp) | *(var_8ach) = s7;
0x00019a38 sw s6, 0x8a8(sp) | *(var_8a8h) = s6;
0x00019a3c sw s4, 0x8a0(sp) | *(var_8a0h) = s4;
0x00019a40 sw s3, 0x89c(sp) | *(var_89ch) = s3;
0x00019a44 sw s2, 0x898(sp) | *(var_898h) = s2;
0x00019a48 sw s1, 0x894(sp) | *(var_894h) = s1;
0x00019a4c sw v1, 0x24(sp) | *(var_24h) = v1;
0x00019a50 move a2, v1 | a2 = v1;
0x00019a54 move a1, zero | a1 = 0;
0x00019a58 move a0, s5 | a0 = s5;
0x00019a5c sw a3, 0x34(sp) | *(var_34h) = a3;
0x00019a60 sw v0, 0x88c(sp) | *(var_88ch) = v0;
0x00019a64 sw zero, 0x70(sp) | *(var_70h) = 0;
0x00019a68 lw s0, 0x8c8(sp) | s0 = *(arg_8c8h);
0x00019a6c jalr t9 | t9 ();
0x00019a70 lw gp, 0x18(sp) | gp = *(var_18h);
| if (v0 == 0) {
0x00019a74 beqz v0, 0x1a288 | goto label_11;
| }
0x00019a78 lw t9, -0x7a80(gp) | t9 = sym.imp.g_hash_table_new_full;
0x00019a7c lw a3, -0x7918(gp) | a3 = *((gp - 7750));
0x00019a80 lw a2, -0x7864(gp) | a2 = *((gp - 7705));
0x00019a84 lw a1, -0x7cc4(gp) | a1 = *((gp - 7985));
0x00019a88 lw a0, -0x78cc(gp) | a0 = *((gp - 7731));
0x00019a8c sw zero, 0x2c(sp) | *(var_2ch_2) = 0;
0x00019a90 move s7, v0 | s7 = v0;
0x00019a94 jalr t9 | t9 ();
0x00019a98 lw gp, 0x18(sp) | gp = *(var_18h);
0x00019a9c lw v1, 0x30(sp) | v1 = *(var_30h);
0x00019aa0 lw fp, -0x7fd8(gp) | fp = *(gp);
0x00019aa4 sw v0, (v1) | *(v1) = v0;
0x00019aa8 lw v0, -0x7eb0(gp) | v0 = *(gp);
| /* fcn.00015b38 */
0x00019aac addiu v0, v0, 0x5b38 | v0 += 0x5b38;
0x00019ab0 sw v0, 0x48(sp) | *(var_48h_2) = v0;
0x00019ab4 lw v0, -0x7fd0(gp) | v0 = *((gp - 8180));
| /* str.Failed_to_deserialize_file:__s */
0x00019ab8 addiu v0, v0, -0x61d0 | v0 += -0x61d0;
0x00019abc sw v0, 0x4c(sp) | *(var_4ch_2) = v0;
0x00019ac0 lw v0, -0x7eb0(gp) | v0 = *(gp);
| /* fcn.00015eec */
0x00019ac4 addiu v0, v0, 0x5eec | v0 += 0x5eec;
0x00019ac8 sw v0, 0x40(sp) | *(var_40h_2) = v0;
| do {
| label_0:
0x00019acc lw t9, -0x78e0(gp) | t9 = sym.imp.g_dir_read_name;
0x00019ad0 move a0, s7 | a0 = s7;
0x00019ad4 jalr t9 | t9 ();
0x00019ad8 move s0, v0 | s0 = v0;
0x00019adc lw gp, 0x18(sp) | gp = *(var_18h);
| if (v0 == 0) {
0x00019ae0 beqz v0, 0x19ca0 | goto label_12;
| }
| label_1:
0x00019ae4 lw t9, -0x7c78(gp) | t9 = sym.imp.g_sprintf
0x00019ae8 addiu s4, sp, 0x8c | s4 = sp + 0x8c;
0x00019aec move a3, s0 | a3 = s0;
0x00019af0 move a2, s5 | a2 = s5;
| /* str._s__s */
0x00019af4 addiu a1, fp, 0x64d0 | a1 = fp + 0x64d0;
0x00019af8 move a0, s4 | a0 = s4;
0x00019afc jalr t9 | t9 ();
0x00019b00 lw gp, 0x18(sp) | gp = *(var_18h);
0x00019b04 move a0, s0 | a0 = s0;
0x00019b08 lw a1, -0x7fd8(gp) | a1 = *(gp);
0x00019b0c lw t9, -0x7c64(gp) | t9 = sym.imp.g_str_has_suffix;
| /* str.conf */
0x00019b10 addiu a1, a1, 0x6ec4 | a1 += 0x6ec4;
0x00019b14 jalr t9 | t9 ();
0x00019b18 lw gp, 0x18(sp) | gp = *(var_18h);
0x00019b1c beqz v0, 0x19acc |
| } while (v0 == 0);
0x00019b20 lw t9, -0x7cd8(gp) | t9 = sym.imp.g_file_test;
0x00019b24 addiu a1, zero, 1 | a1 = 1;
0x00019b28 move a0, s4 | a0 = s4;
0x00019b2c jalr t9 | t9 ();
0x00019b30 lw gp, 0x18(sp) | gp = *(var_18h);
| if (v0 == 0) {
0x00019b34 beqz v0, 0x19acc | goto label_0;
| }
0x00019b38 lw t9, -0x7de8(gp) | t9 = sym.action_rule_get_type;
0x00019b3c bal 0x16610 | sym_action_rule_get_type ();
0x00019b40 nop |
0x00019b44 lw gp, 0x18(sp) | gp = *(var_18h);
0x00019b48 move a1, zero | a1 = 0;
0x00019b4c lw t9, -0x7a0c(gp) | t9 = sym.imp.g_object_new;
0x00019b50 move a0, v0 | a0 = v0;
0x00019b54 jalr t9 | t9 ();
0x00019b58 lw gp, 0x18(sp) | gp = *(var_18h);
0x00019b5c move s6, v0 | s6 = v0;
0x00019b60 lw v0, 0x34(sp) | v0 = *(var_34h);
0x00019b64 lw t9, -0x7924(gp) | t9 = sym.imp.g_key_file_new;
0x00019b68 sw v0, 0x44(s6) | *((s6 + 17)) = v0;
0x00019b6c sw zero, 0x74(sp) | *(var_74h) = 0;
0x00019b70 jalr t9 | t9 ();
0x00019b74 lw gp, 0x18(sp) | gp = *(var_18h);
0x00019b78 move a2, s0 | a2 = s0;
0x00019b7c move a1, s5 | a1 = s5;
0x00019b80 lw t9, -0x7a38(gp) | t9 = sym.imp.g_strdup_printf
| /* str._s__s */
0x00019b84 addiu a0, fp, 0x64d0 | a0 = fp + 0x64d0;
0x00019b88 sw v0, 0x28(sp) | *(var_28h_2) = v0;
0x00019b8c sw zero, 0x78(sp) | *(var_78h) = 0;
0x00019b90 jalr t9 | t9 ();
0x00019b94 lw gp, 0x18(sp) | gp = *(var_18h);
0x00019b98 lw a3, 0x24(sp) | a3 = *(var_24h);
0x00019b9c addiu a2, sp, 0x7c | a2 = sp + 0x7c;
0x00019ba0 lw t9, -0x7c04(gp) | t9 = sym.imp.g_file_get_contents;
0x00019ba4 addiu a1, sp, 0x78 | a1 = sp + 0x78;
0x00019ba8 move a0, v0 | a0 = v0;
0x00019bac move s3, v0 | s3 = v0;
0x00019bb0 jalr t9 | t9 ();
0x00019bb4 lw gp, 0x18(sp) | gp = *(var_18h);
| if (v0 != 0) {
0x00019bb8 beqz v0, 0x19bec |
0x00019bbc lw s0, 0x24(sp) | s0 = *(var_24h);
0x00019bc0 lw v0, 0x3c(sp) | v0 = *(var_3ch);
0x00019bc4 lw t9, -0x7dc4(gp) | t9 = sym.action_rule_deserialize_from_data;
0x00019bc8 lw a3, 0x7c(sp) | a3 = *(var_7ch);
0x00019bcc lw a2, 0x78(sp) | a2 = *(var_78h);
0x00019bd0 sw s0, 0x14(sp) | *(var_14h_2) = s0;
0x00019bd4 sw v0, 0x10(sp) | *(var_10h_2) = v0;
0x00019bd8 move a1, s5 | a1 = s5;
0x00019bdc move a0, s6 | a0 = s6;
0x00019be0 bal 0x19194 | sym_action_rule_deserialize_from_data ();
0x00019be4 lw gp, 0x18(sp) | gp = *(var_18h);
| if (v0 != 0) {
0x00019be8 bnez v0, 0x19d5c | goto label_13;
| }
| }
| label_2:
0x00019bec move s0, zero | s0 = 0;
| label_5:
0x00019bf0 lw t9, -0x7864(gp) | t9 = *((gp - 7705));
| if (s3 != 0) {
0x00019bf4 beqz s3, 0x19c04 |
0x00019bf8 move a0, s3 | a0 = s3;
0x00019bfc jalr t9 | t9 ();
0x00019c00 lw gp, 0x18(sp) | gp = *(var_18h);
| }
0x00019c04 lw a0, 0x28(sp) | a0 = *(var_28h_2);
0x00019c08 lw t9, -0x7c4c(gp) | t9 = sym.imp.g_key_file_free;
| if (a0 != 0) {
0x00019c0c beqz a0, 0x19c1c |
0x00019c10 jalr t9 | t9 ();
0x00019c14 nop |
0x00019c18 lw gp, 0x18(sp) | gp = *(var_18h);
| }
0x00019c1c lw t9, -0x7864(gp) | t9 = *((gp - 7705));
0x00019c20 lw a0, 0x78(sp) | a0 = *(var_78h);
0x00019c24 jalr t9 | t9 ();
0x00019c28 lw gp, 0x18(sp) | gp = *(var_18h);
| if (s0 == 0) {
0x00019c2c beqz s0, 0x19d04 | goto label_14;
| }
0x00019c30 lw v0, 0x30(sp) | v0 = *(var_30h);
0x00019c34 lw t9, -0x792c(gp) | t9 = sym.imp.g_strdup;
0x00019c38 lw a0, 0x10(s6) | a0 = *((s6 + 4));
0x00019c3c lw s0, (v0) | s0 = *(v0);
0x00019c40 jalr t9 | t9 ();
0x00019c44 lw gp, 0x18(sp) | gp = *(var_18h);
0x00019c48 move a0, s0 | a0 = s0;
0x00019c4c move a2, s6 | a2 = s6;
0x00019c50 lw t9, -0x795c(gp) | t9 = sym.imp.g_hash_table_insert;
0x00019c54 move a1, v0 | a1 = v0;
0x00019c58 jalr t9 | t9 ();
0x00019c5c lw gp, 0x18(sp) | gp = *(var_18h);
0x00019c60 lw a0, 0x10(s6) | a0 = *((s6 + 4));
0x00019c64 addiu a2, zero, 0xa | a2 = 0xa;
0x00019c68 lw t9, -0x78d0(gp) | t9 = sym.imp.g_ascii_strtoll;
0x00019c6c move a1, zero | a1 = 0;
0x00019c70 jalr t9 | t9 ();
0x00019c74 lw a0, 0x2c(sp) | a0 = *(var_2ch_2);
0x00019c78 lw gp, 0x18(sp) | gp = *(var_18h);
0x00019c7c sltu v1, a0, v0 | v1 = (a0 < v0) ? 1 : 0;
| if (v1 == 0) {
0x00019c80 movn a0, v0, v1 | a0 = v0;
| }
0x00019c84 lw t9, -0x78e0(gp) | t9 = sym.imp.g_dir_read_name;
0x00019c88 sw a0, 0x2c(sp) | *(var_2ch_2) = a0;
0x00019c8c move a0, s7 | a0 = s7;
0x00019c90 jalr t9 | t9 ();
0x00019c94 move s0, v0 | s0 = v0;
0x00019c98 lw gp, 0x18(sp) | gp = *(var_18h);
| if (v0 != 0) {
0x00019c9c bnez v0, 0x19ae4 | goto label_1;
| }
| label_12:
0x00019ca0 lw v1, -0x7fc0(gp) | v1 = *((gp - 8176));
0x00019ca4 lw v0, 0x2c(sp) | v0 = *(var_2ch_2);
0x00019ca8 lw t9, -0x78b8(gp) | t9 = sym.imp.g_dir_close;
0x00019cac addiu v0, v0, 1 | v0++;
0x00019cb0 sw v0, -0x3ee0(v1) | *((v1 - 4024)) = v0;
0x00019cb4 move a0, s7 | a0 = s7;
0x00019cb8 jalr t9 | t9 ();
0x00019cbc lw gp, 0x18(sp) | gp = *(var_18h);
0x00019cc0 addiu v0, zero, 1 | v0 = 1;
| label_6:
0x00019cc4 lw v1, 0x38(sp) | v1 = *(var_38h);
0x00019cc8 lw a0, 0x88c(sp) | a0 = *(var_88ch);
0x00019ccc lw v1, (v1) | v1 = *(v1);
0x00019cd0 lw ra, 0x8b4(sp) | ra = *(var_8b4h);
| if (a0 != v1) {
0x00019cd4 bne a0, v1, 0x1a534 | goto label_15;
| }
0x00019cd8 lw fp, 0x8b0(sp) | fp = *(var_8b0h);
0x00019cdc lw s7, 0x8ac(sp) | s7 = *(var_8ach);
0x00019ce0 lw s6, 0x8a8(sp) | s6 = *(var_8a8h);
0x00019ce4 lw s5, 0x8a4(sp) | s5 = *(var_8a4h);
0x00019ce8 lw s4, 0x8a0(sp) | s4 = *(var_8a0h);
0x00019cec lw s3, 0x89c(sp) | s3 = *(var_89ch);
0x00019cf0 lw s2, 0x898(sp) | s2 = *(var_898h);
0x00019cf4 lw s1, 0x894(sp) | s1 = *(var_894h);
0x00019cf8 lw s0, 0x890(sp) | s0 = *(var_890h);
0x00019cfc addiu sp, sp, 0x8b8 |
0x00019d00 jr ra | return v0;
| label_14:
0x00019d04 lw v0, 0x70(sp) | v0 = *(var_70h);
0x00019d08 lw a3, -0x7fd8(gp) | a3 = *(gp);
0x00019d0c lw a2, -0x7fd0(gp) | a2 = *((gp - 8180));
0x00019d10 lw v0, 8(v0) | v0 = *((v0 + 2));
0x00019d14 lw t9, -0x7cbc(gp) | t9 = sym.imp.g_log;
0x00019d18 addiu a3, a3, 0x6dd0 | a3 += 0x6dd0;
| /* str._sError_parsing__s:___s_. */
0x00019d1c addiu a2, a2, -0x6170 | a2 += -0x6170;
0x00019d20 addiu a1, zero, 0x10 | a1 = 0x10;
0x00019d24 sw v0, 0x14(sp) | *(var_14h_2) = v0;
0x00019d28 move a0, zero | a0 = 0;
0x00019d2c sw s4, 0x10(sp) | *(var_10h_2) = s4;
0x00019d30 jalr t9 | t9 ();
0x00019d34 lw gp, 0x18(sp) | gp = *(var_18h);
0x00019d38 lw t9, -0x7930(gp) | t9 = sym.imp.g_clear_error;
0x00019d3c lw a0, 0x24(sp) | a0 = *(var_24h);
0x00019d40 jalr t9 | t9 ();
0x00019d44 lw gp, 0x18(sp) | gp = *(var_18h);
0x00019d48 lw t9, -0x7918(gp) | t9 = *((gp - 7750));
0x00019d4c move a0, s6 | a0 = s6;
0x00019d50 jalr t9 | t9 ();
0x00019d54 lw gp, 0x18(sp) | gp = *(var_18h);
0x00019d58 b 0x19acc | goto label_0;
| label_13:
0x00019d5c lw t9, -0x7cf4(gp) | t9 = sym.imp.g_key_file_load_from_data;
0x00019d60 lw a2, 0x7c(sp) | a2 = *(var_7ch);
0x00019d64 lw a1, 0x78(sp) | a1 = *(var_78h);
0x00019d68 lw a0, 0x28(sp) | a0 = *(var_28h_2);
0x00019d6c sw s0, 0x10(sp) | *(var_10h_2) = s0;
0x00019d70 move a3, zero | a3 = 0;
0x00019d74 jalr t9 | t9 ();
0x00019d78 lw gp, 0x18(sp) | gp = *(var_18h);
| if (v0 == 0) {
0x00019d7c beqz v0, 0x19bec | goto label_2;
| }
0x00019d80 lw a0, 0x3c(s6) | a0 = *((s6 + 15));
0x00019d84 lw t9, -0x7a84(gp) | t9 = sym.imp.subscribe_expression_free;
| if (a0 != 0) {
0x00019d88 beqz a0, 0x19d9c |
0x00019d8c jalr t9 | t9 ();
0x00019d90 nop |
0x00019d94 lw gp, 0x18(sp) | gp = *(var_18h);
0x00019d98 sw zero, 0x3c(s6) | *((s6 + 15)) = 0;
| }
0x00019d9c lw s0, -0x7fd0(gp) | s0 = *((gp - 8180));
0x00019da0 lw a2, -0x7fd0(gp) | a2 = *((gp - 8180));
0x00019da4 lw t9, -0x7898(gp) | t9 = sym.imp.g_key_file_has_key;
0x00019da8 lw a0, 0x28(sp) | a0 = *(var_28h_2);
0x00019dac move a3, zero | a3 = 0;
| /* str.event */
0x00019db0 addiu a2, a2, -0x6580 | a2 += -0x6580;
| /* str.action_rule */
0x00019db4 addiu a1, s0, -0x65bc | a1 = s0 + -0x65bc;
0x00019db8 jalr t9 | t9 ();
0x00019dbc lw gp, 0x18(sp) | gp = *(var_18h);
| if (v0 != 0) {
0x00019dc0 bnez v0, 0x1a090 | goto label_16;
| }
| label_4:
0x00019dc4 lw t9, 0x48(sp) | t9 = *(var_48h_2);
0x00019dc8 lw s1, -0x7fd0(gp) | s1 = *((gp - 8180));
0x00019dcc move a0, s6 | a0 = s6;
0x00019dd0 jalr t9 | t9 ();
0x00019dd4 lw gp, 0x18(sp) | gp = *(var_18h);
0x00019dd8 lw s2, 0x28(sp) | s2 = *(var_28h_2);
0x00019ddc move a3, zero | a3 = 0;
0x00019de0 lw t9, -0x7898(gp) | t9 = sym.imp.g_key_file_has_key;
| /* str.properties */
0x00019de4 addiu a2, s1, -0x6578 | a2 = s1 + -0x6578;
| /* str.action_rule */
0x00019de8 addiu a1, s0, -0x65bc | a1 = s0 + -0x65bc;
0x00019dec move a0, s2 | a0 = s2;
0x00019df0 jalr t9 | t9 ();
0x00019df4 lw gp, 0x18(sp) | gp = *(var_18h);
| if (v0 == 0) {
0x00019df8 beqz v0, 0x1a2e8 | goto label_17;
| }
0x00019dfc lw v0, 0x24(sp) | v0 = *(var_24h);
0x00019e00 lw t9, -0x78a8(gp) | t9 = sym.imp.g_key_file_get_string_list;
| /* str.action_rule */
0x00019e04 addiu a1, s0, -0x65bc | a1 = s0 + -0x65bc;
0x00019e08 move a0, s2 | a0 = s2;
0x00019e0c sw v0, 0x10(sp) | *(var_10h_2) = v0;
0x00019e10 addiu a3, sp, 0x80 | a3 = sp + 0x80;
| /* str.properties */
0x00019e14 addiu a2, s1, -0x6578 | a2 = s1 + -0x6578;
0x00019e18 jalr t9 | t9 ();
0x00019e1c lw gp, 0x18(sp) | gp = *(var_18h);
0x00019e20 move v1, v0 | v1 = v0;
0x00019e24 sw v0, 0x58(sp) | *(var_58h) = v0;
0x00019e28 lw a0, (v0) | a0 = *(v0);
0x00019e2c lw v0, -0x7fd0(gp) | v0 = *((gp - 8180));
0x00019e30 move a1, zero | a1 = 0;
0x00019e34 sw v0, 0x44(sp) | *(var_44h_2) = v0;
0x00019e38 lw v0, -0x7fd0(gp) | v0 = *((gp - 8180));
0x00019e3c sw s3, 0x60(sp) | *(var_60h) = s3;
0x00019e40 sw v0, 0x50(sp) | *(var_50h) = v0;
0x00019e44 lw v0, -0x7fd0(gp) | v0 = *((gp - 8180));
0x00019e48 sw s5, 0x64(sp) | *(var_64h) = s5;
0x00019e4c sw v0, 0x6c(sp) | *(var_6ch) = v0;
0x00019e50 lw v0, -0x7fd0(gp) | v0 = *((gp - 8180));
0x00019e54 sw s7, 0x5c(sp) | *(var_5ch) = s7;
| /* str.Failed_to_open_file_for_reading:__s */
0x00019e58 addiu v0, v0, -0x620c | v0 += -0x620c;
0x00019e5c sw v0, 0x54(sp) | *(var_54h) = v0;
0x00019e60 move s3, v1 | s3 = v1;
0x00019e64 move s5, a1 | s5 = a1;
0x00019e68 sw s4, 0x68(sp) | *(var_68h) = s4;
0x00019e6c b 0x19f18 |
| while (v0 != 0) {
0x00019e70 lw v1, 0x88(sp) | v1 = *(var_88h);
0x00019e74 addiu v0, sp, 0x890 | v0 = sp + 0x890;
0x00019e78 addu v0, v0, v1 | v0 += v1;
0x00019e7c lw t9, -0x79a0(gp) | t9 = sym.imp.property_state_deserialize_xml;
0x00019e80 move a0, s7 | a0 = s7;
0x00019e84 sb zero, -0x404(v0) | *(v0) = 0;
0x00019e88 jalr t9 | t9 ();
0x00019e8c move s4, v0 | s4 = v0;
0x00019e90 lw gp, 0x18(sp) | gp = *(var_18h);
0x00019e94 addiu s7, zero, 1 | s7 = 1;
| if (v0 == 0) {
0x00019e98 beqz v0, 0x1a42c | goto label_18;
| }
| label_3:
0x00019e9c lw a0, 0x84(sp) | a0 = *(var_84h);
0x00019ea0 lw t9, -0x7c58(gp) | t9 = sym.imp.g_error_free;
| if (a0 != 0) {
0x00019ea4 beqz a0, 0x19eb4 |
0x00019ea8 jalr t9 | t9 ();
0x00019eac nop |
0x00019eb0 lw gp, 0x18(sp) | gp = *(var_18h);
| }
0x00019eb4 lw t9, -0x7864(gp) | t9 = *((gp - 7705));
| if (s1 != 0) {
0x00019eb8 beqz s1, 0x19ec8 |
0x00019ebc move a0, s1 | a0 = s1;
0x00019ec0 jalr t9 | t9 ();
0x00019ec4 lw gp, 0x18(sp) | gp = *(var_18h);
| }
0x00019ec8 lw t9, -0x7918(gp) | t9 = *((gp - 7750));
| if (s2 != 0) {
0x00019ecc beqz s2, 0x19edc |
0x00019ed0 move a0, s2 | a0 = s2;
0x00019ed4 jalr t9 | t9 ();
0x00019ed8 lw gp, 0x18(sp) | gp = *(var_18h);
| }
0x00019edc lw t9, -0x7918(gp) | t9 = *((gp - 7750));
| if (s0 != 0) {
0x00019ee0 beqz s0, 0x19ef0 |
0x00019ee4 move a0, s0 | a0 = s0;
0x00019ee8 jalr t9 | t9 ();
0x00019eec lw gp, 0x18(sp) | gp = *(var_18h);
| }
0x00019ef0 lw t9, -0x7b58(gp) | t9 = sym.imp.g_list_append;
| if (s7 == 0) {
0x00019ef4 beqz s7, 0x1a39c | goto label_19;
| }
0x00019ef8 addiu s3, s3, 4 | s3 += 4;
0x00019efc move a0, s5 | a0 = s5;
0x00019f00 move a1, s4 | a1 = s4;
0x00019f04 jalr t9 | t9 ();
0x00019f08 lw a0, (s3) | a0 = *(s3);
0x00019f0c lw gp, 0x18(sp) | gp = *(var_18h);
0x00019f10 move s5, v0 | s5 = v0;
| if (a0 == 0) {
0x00019f14 beqz a0, 0x1a374 | goto label_20;
| }
0x00019f18 lw t9, -0x78d0(gp) | t9 = sym.imp.g_ascii_strtoll;
0x00019f1c addiu a2, zero, 0xa | a2 = 0xa;
0x00019f20 move a1, zero | a1 = 0;
0x00019f24 jalr t9 | t9 ();
0x00019f28 lw gp, 0x18(sp) | gp = *(var_18h);
0x00019f2c move a3, v0 | a3 = v0;
0x00019f30 move s2, v0 | s2 = v0;
0x00019f34 lw v0, 0x44(sp) | v0 = *(var_44h_2);
0x00019f38 lw a2, 0x10(s6) | a2 = *((s6 + 4));
0x00019f3c lw a1, 0xc(s6) | a1 = *((s6 + 3));
0x00019f40 lw t9, -0x7a38(gp) | t9 = sym.imp.g_strdup_printf
0x00019f44 addiu a0, v0, -0x644c | a0 = v0 + -0x644c;
0x00019f48 sw zero, 0x84(sp) | *(var_84h) = 0;
0x00019f4c jalr t9 | t9 ();
0x00019f50 lw gp, 0x18(sp) | gp = *(var_18h);
0x00019f54 move a0, v0 | a0 = v0;
0x00019f58 lw t9, -0x7c68(gp) | t9 = sym.imp.g_file_new_for_path;
0x00019f5c move s1, v0 | s1 = v0;
0x00019f60 jalr t9 | t9 ();
0x00019f64 lw gp, 0x18(sp) | gp = *(var_18h);
0x00019f68 move a1, zero | a1 = 0;
0x00019f6c move a0, v0 | a0 = v0;
0x00019f70 lw t9, -0x7b34(gp) | t9 = sym.imp.g_file_query_exists;
0x00019f74 move s0, v0 | s0 = v0;
0x00019f78 jalr t9 | t9 ();
0x00019f7c lw gp, 0x18(sp) | gp = *(var_18h);
| if (v0 == 0) {
0x00019f80 bnez v0, 0x19fe4 |
0x00019f84 lw t9, -0x7918(gp) | t9 = *((gp - 7750));
0x00019f88 move a0, s0 | a0 = s0;
0x00019f8c jalr t9 | t9 ();
0x00019f90 lw gp, 0x18(sp) | gp = *(var_18h);
0x00019f94 lw t9, -0x7864(gp) | t9 = *((gp - 7705));
0x00019f98 move a0, s1 | a0 = s1;
0x00019f9c jalr t9 | t9 ();
0x00019fa0 lw t9, 0x40(sp) | t9 = *(var_40h_2);
0x00019fa4 move a1, s2 | a1 = s2;
0x00019fa8 move a0, s6 | a0 = s6;
0x00019fac jalr t9 | t9 ();
0x00019fb0 lw gp, 0x18(sp) | gp = *(var_18h);
0x00019fb4 move a0, v0 | a0 = v0;
0x00019fb8 lw t9, -0x7c68(gp) | t9 = sym.imp.g_file_new_for_path;
0x00019fbc move s1, v0 | s1 = v0;
0x00019fc0 jalr t9 | t9 ();
0x00019fc4 lw gp, 0x18(sp) | gp = *(var_18h);
0x00019fc8 move a1, zero | a1 = 0;
0x00019fcc move a0, v0 | a0 = v0;
0x00019fd0 lw t9, -0x7b34(gp) | t9 = sym.imp.g_file_query_exists;
0x00019fd4 move s0, v0 | s0 = v0;
0x00019fd8 jalr t9 | t9 ();
0x00019fdc lw gp, 0x18(sp) | gp = *(var_18h);
| if (v0 == 0) {
0x00019fe0 beqz v0, 0x1a32c | goto label_21;
| }
| }
0x00019fe4 lw t9, -0x787c(gp) | t9 = sym.imp.g_file_read;
0x00019fe8 addiu s4, sp, 0x84 | s4 = sp + 0x84;
0x00019fec move a2, s4 | a2 = s4;
0x00019ff0 move a1, zero | a1 = 0;
0x00019ff4 move a0, s0 | a0 = s0;
0x00019ff8 jalr t9 | t9 ();
0x00019ffc move s2, v0 | s2 = v0;
0x0001a000 lw gp, 0x18(sp) | gp = *(var_18h);
| if (v0 == 0) {
0x0001a004 beqz v0, 0x1a2c8 | goto label_22;
| }
0x0001a008 lw t9, -0x7904(gp) | t9 = sym.imp.g_input_stream_get_type;
0x0001a00c addiu s7, sp, 0x48c | s7 = sp + aav.0x0000048c;
0x0001a010 jalr t9 | t9 ();
0x0001a014 lw gp, 0x18(sp) | gp = *(var_18h);
0x0001a018 move a1, v0 | a1 = v0;
0x0001a01c lw t9, -0x7ba0(gp) | t9 = sym.imp.g_type_check_instance_cast;
0x0001a020 move a0, s2 | a0 = s2;
0x0001a024 jalr t9 | t9 ();
0x0001a028 lw gp, 0x18(sp) | gp = *(var_18h);
0x0001a02c sw s4, 0x14(sp) | *(var_14h_2) = s4;
0x0001a030 sw zero, 0x10(sp) | *(var_10h_2) = 0;
0x0001a034 lw t9, -0x799c(gp) | t9 = sym.imp.g_input_stream_read_all;
0x0001a038 addiu a3, sp, 0x88 | a3 = sp + 0x88;
0x0001a03c addiu a2, zero, 0x3ff | a2 = 0x3ff;
0x0001a040 move a1, s7 | a1 = s7;
0x0001a044 move a0, v0 | a0 = v0;
0x0001a048 jalr t9 | t9 ();
0x0001a04c lw gp, 0x18(sp) | gp = *(var_18h);
0x0001a050 bnez v0, 0x19e70 |
| }
0x0001a054 lw t9, -0x7c14(gp) | t9 = sym.imp.ae_error_quark;
0x0001a058 move s4, zero | s4 = 0;
0x0001a05c jalr t9 | t9 ();
0x0001a060 lw gp, 0x18(sp) | gp = *(var_18h);
0x0001a064 lw v1, 0x50(sp) | v1 = *(var_50h);
0x0001a068 sw s1, 0x10(sp) | *(var_10h_2) = s1;
0x0001a06c lw t9, -0x7b10(gp) | t9 = sym.imp.g_set_error;
0x0001a070 addiu a3, v1, -0x61e8 | a3 = v1 + -0x61e8;
| label_7:
0x0001a074 addiu a2, zero, 1 | a2 = 1;
0x0001a078 move a1, v0 | a1 = v0;
0x0001a07c addiu a0, sp, 0x74 | a0 = sp + 0x74;
0x0001a080 jalr t9 | t9 ();
0x0001a084 move s7, zero | s7 = 0;
0x0001a088 lw gp, 0x18(sp) | gp = *(var_18h);
0x0001a08c b 0x19e9c | goto label_3;
| label_16:
0x0001a090 lw a0, -0x7fd0(gp) | a0 = *((gp - 8180));
0x0001a094 lw a2, 0x10(s6) | a2 = *((s6 + 4));
0x0001a098 lw a1, 0xc(s6) | a1 = *((s6 + 3));
0x0001a09c lw t9, -0x7a38(gp) | t9 = sym.imp.g_strdup_printf
| /* str._s__s_event.xml */
0x0001a0a0 addiu a0, a0, -0x656c | a0 += -aav.0x0000656c;
0x0001a0a4 sw zero, 0x84(sp) | *(var_84h) = 0;
0x0001a0a8 jalr t9 | t9 ();
0x0001a0ac lw gp, 0x18(sp) | gp = *(var_18h);
0x0001a0b0 move a0, v0 | a0 = v0;
0x0001a0b4 lw t9, -0x7c68(gp) | t9 = sym.imp.g_file_new_for_path;
0x0001a0b8 move s2, v0 | s2 = v0;
0x0001a0bc jalr t9 | t9 ();
0x0001a0c0 lw gp, 0x18(sp) | gp = *(var_18h);
0x0001a0c4 move a1, zero | a1 = 0;
0x0001a0c8 move a0, v0 | a0 = v0;
0x0001a0cc lw t9, -0x7b34(gp) | t9 = sym.imp.g_file_query_exists;
0x0001a0d0 move s1, v0 | s1 = v0;
0x0001a0d4 jalr t9 | t9 ();
0x0001a0d8 lw gp, 0x18(sp) | gp = *(var_18h);
| if (v0 == 0) {
0x0001a0dc bnez v0, 0x1a144 |
0x0001a0e0 lw t9, -0x7918(gp) | t9 = *((gp - 7750));
0x0001a0e4 move a0, s1 | a0 = s1;
0x0001a0e8 jalr t9 | t9 ();
0x0001a0ec lw gp, 0x18(sp) | gp = *(var_18h);
0x0001a0f0 lw t9, -0x7864(gp) | t9 = *((gp - 7705));
0x0001a0f4 move a0, s2 | a0 = s2;
0x0001a0f8 jalr t9 | t9 ();
0x0001a0fc lw gp, 0x18(sp) | gp = *(var_18h);
0x0001a100 lw t9, -0x7eb0(gp) | t9 = *(gp);
| /* fcn.00015e7c */
0x0001a104 addiu t9, t9, 0x5e7c | t9 += 0x5e7c;
0x0001a108 move a0, s6 | a0 = s6;
0x0001a10c bal 0x15e7c | fcn_00015e7c ();
0x0001a110 lw gp, 0x18(sp) | gp = *(var_18h);
0x0001a114 move a0, v0 | a0 = v0;
0x0001a118 lw t9, -0x7c68(gp) | t9 = sym.imp.g_file_new_for_path;
0x0001a11c move s2, v0 | s2 = v0;
0x0001a120 jalr t9 | t9 ();
0x0001a124 lw gp, 0x18(sp) | gp = *(var_18h);
0x0001a128 move a1, zero | a1 = 0;
0x0001a12c move a0, v0 | a0 = v0;
0x0001a130 lw t9, -0x7b34(gp) | t9 = sym.imp.g_file_query_exists;
0x0001a134 move s1, v0 | s1 = v0;
0x0001a138 jalr t9 | t9 ();
0x0001a13c lw gp, 0x18(sp) | gp = *(var_18h);
| if (v0 == 0) {
0x0001a140 beqz v0, 0x1a4c0 | goto label_23;
| }
| }
0x0001a144 lw t9, -0x787c(gp) | t9 = sym.imp.g_file_read;
0x0001a148 addiu v0, sp, 0x84 | v0 = sp + 0x84;
0x0001a14c sw v0, 0x54(sp) | *(var_54h) = v0;
0x0001a150 move a2, v0 | a2 = v0;
0x0001a154 move a1, zero | a1 = 0;
0x0001a158 move a0, s1 | a0 = s1;
0x0001a15c jalr t9 | t9 ();
0x0001a160 sw v0, 0x44(sp) | *(var_44h_2) = v0;
0x0001a164 lw gp, 0x18(sp) | gp = *(var_18h);
| if (v0 == 0) {
0x0001a168 beqz v0, 0x1a49c | goto label_24;
| }
0x0001a16c lw t9, -0x7904(gp) | t9 = sym.imp.g_input_stream_get_type;
0x0001a170 addiu v0, sp, 0x48c | v0 = sp + aav.0x0000048c;
0x0001a174 sw v0, 0x50(sp) | *(var_50h) = v0;
0x0001a178 jalr t9 | t9 ();
0x0001a17c lw gp, 0x18(sp) | gp = *(var_18h);
0x0001a180 lw a0, 0x44(sp) | a0 = *(var_44h_2);
0x0001a184 lw t9, -0x7ba0(gp) | t9 = sym.imp.g_type_check_instance_cast;
0x0001a188 move a1, v0 | a1 = v0;
0x0001a18c jalr t9 | t9 ();
0x0001a190 lw gp, 0x18(sp) | gp = *(var_18h);
0x0001a194 lw v1, 0x54(sp) | v1 = *(var_54h);
0x0001a198 lw a1, 0x50(sp) | a1 = *(var_50h);
0x0001a19c lw t9, -0x799c(gp) | t9 = sym.imp.g_input_stream_read_all;
0x0001a1a0 sw v1, 0x14(sp) | *(var_14h_2) = v1;
0x0001a1a4 sw zero, 0x10(sp) | *(var_10h_2) = 0;
0x0001a1a8 addiu a3, sp, 0x88 | a3 = sp + 0x88;
0x0001a1ac addiu a2, zero, 0x3ff | a2 = 0x3ff;
0x0001a1b0 move a0, v0 | a0 = v0;
0x0001a1b4 jalr t9 | t9 ();
0x0001a1b8 lw gp, 0x18(sp) | gp = *(var_18h);
| if (v0 == 0) {
0x0001a1bc beqz v0, 0x1a460 | goto label_25;
| }
0x0001a1c0 lw v0, 0x88(sp) | v0 = *(var_88h);
0x0001a1c4 addiu v1, sp, 0x890 | v1 = sp + 0x890;
0x0001a1c8 addu v0, v1, v0 | v0 = v1 + v0;
0x0001a1cc lw t9, -0x7b4c(gp) | t9 = sym.imp.subscribe_expression_deserialize_xml;
0x0001a1d0 lw a0, 0x50(sp) | a0 = *(var_50h);
0x0001a1d4 sb zero, -0x404(v0) | *(v0) = 0;
0x0001a1d8 jalr t9 | t9 ();
0x0001a1dc addiu v1, zero, 1 | v1 = 1;
0x0001a1e0 lw gp, 0x18(sp) | gp = *(var_18h);
0x0001a1e4 sw v0, 0x54(sp) | *(var_54h) = v0;
0x0001a1e8 sw v1, 0x50(sp) | *(var_50h) = v1;
| if (v0 == 0) {
0x0001a1ec beqz v0, 0x1a500 | goto label_26;
| }
| label_10:
0x0001a1f0 lw a0, 0x84(sp) | a0 = *(var_84h);
0x0001a1f4 lw t9, -0x7c58(gp) | t9 = sym.imp.g_error_free;
| if (a0 != 0) {
0x0001a1f8 beqz a0, 0x1a208 |
0x0001a1fc jalr t9 | t9 ();
0x0001a200 nop |
0x0001a204 lw gp, 0x18(sp) | gp = *(var_18h);
| }
0x0001a208 lw t9, -0x7864(gp) | t9 = *((gp - 7705));
| if (s2 != 0) {
0x0001a20c beqz s2, 0x1a21c |
0x0001a210 move a0, s2 | a0 = s2;
0x0001a214 jalr t9 | t9 ();
0x0001a218 lw gp, 0x18(sp) | gp = *(var_18h);
| }
0x0001a21c lw a0, 0x44(sp) | a0 = *(var_44h_2);
0x0001a220 lw t9, -0x7918(gp) | t9 = *((gp - 7750));
| if (a0 != 0) {
0x0001a224 beqz a0, 0x1a234 |
0x0001a228 jalr t9 | t9 ();
0x0001a22c nop |
0x0001a230 lw gp, 0x18(sp) | gp = *(var_18h);
| }
0x0001a234 lw t9, -0x7918(gp) | t9 = *((gp - 7750));
| if (s1 != 0) {
0x0001a238 beqz s1, 0x1a248 |
0x0001a23c move a0, s1 | a0 = s1;
0x0001a240 jalr t9 | t9 ();
0x0001a244 lw gp, 0x18(sp) | gp = *(var_18h);
| }
0x0001a248 lw v0, 0x50(sp) | v0 = *(var_50h);
0x0001a24c lw t9, -0x7dd0(gp) | t9 = sym.action_rule_setup_event;
| if (v0 == 0) {
0x0001a250 beqz v0, 0x1a26c | goto label_8;
| }
0x0001a254 lw a1, 0x54(sp) | a1 = *(var_54h);
0x0001a258 addiu a2, sp, 0x74 | a2 = sp + 0x74;
0x0001a25c move a0, s6 | a0 = s6;
0x0001a260 bal 0x17f10 | sym_action_rule_setup_event ();
0x0001a264 lw gp, 0x18(sp) | gp = *(var_18h);
| if (v0 != 0) {
0x0001a268 bnez v0, 0x19dc4 | goto label_4;
| }
| do {
| label_8:
0x0001a26c lw t9, -0x7ab0(gp) | t9 = sym.imp.g_propagate_error;
0x0001a270 lw a1, 0x74(sp) | a1 = *(var_74h);
0x0001a274 lw a0, 0x24(sp) | a0 = *(var_24h);
0x0001a278 move s0, zero | s0 = 0;
0x0001a27c jalr t9 | t9 ();
0x0001a280 lw gp, 0x18(sp) | gp = *(var_18h);
0x0001a284 b 0x19bf0 | goto label_5;
| label_11:
0x0001a288 lw t9, -0x7ab0(gp) | t9 = sym.imp.g_propagate_error;
0x0001a28c lw a1, 0x70(sp) | a1 = *(var_70h);
0x0001a290 move a0, s0 | a0 = s0;
0x0001a294 jalr t9 | t9 ();
0x0001a298 lw v0, 0x30(sp) | v0 = *(var_30h);
0x0001a29c lw a0, (v0) | a0 = *(v0);
0x0001a2a0 lw gp, 0x18(sp) | gp = *(var_18h);
| if (a0 == 0) {
0x0001a2a4 beqz a0, 0x1a36c | goto label_27;
| }
0x0001a2a8 lw t9, -0x7c48(gp) | t9 = sym.imp.g_hash_table_unref;
0x0001a2ac jalr t9 | t9 ();
0x0001a2b0 nop |
0x0001a2b4 lw v0, 0x30(sp) | v0 = *(var_30h);
0x0001a2b8 lw gp, 0x18(sp) | gp = *(var_18h);
0x0001a2bc sw zero, (v0) | *(v0) = 0;
0x0001a2c0 move v0, zero | v0 = 0;
0x0001a2c4 b 0x19cc4 | goto label_6;
| label_22:
0x0001a2c8 lw t9, -0x7c14(gp) | t9 = sym.imp.ae_error_quark;
0x0001a2cc move s4, zero | s4 = 0;
0x0001a2d0 jalr t9 | t9 ();
0x0001a2d4 lw gp, 0x18(sp) | gp = *(var_18h);
0x0001a2d8 sw s1, 0x10(sp) | *(var_10h_2) = s1;
0x0001a2dc lw a3, 0x54(sp) | a3 = *(var_54h);
0x0001a2e0 lw t9, -0x7b10(gp) | t9 = sym.imp.g_set_error;
0x0001a2e4 b 0x1a074 | goto label_7;
| label_17:
0x0001a2e8 move s1, zero | s1 = 0;
| label_9:
0x0001a2ec lw t9, -0x7dd4(gp) | t9 = sym.action_rule_setup_property_events;
0x0001a2f0 addiu s0, sp, 0x74 | s0 = sp + 0x74;
0x0001a2f4 move a2, s0 | a2 = s0;
0x0001a2f8 move a1, s1 | a1 = s1;
0x0001a2fc move a0, s6 | a0 = s6;
0x0001a300 bal 0x17dd0 | sym_action_rule_setup_property_events ();
0x0001a304 lw gp, 0x18(sp) | gp = *(var_18h);
0x0001a308 beqz v0, 0x1a26c |
| } while (v0 == 0);
0x0001a30c lw t9, -0x7dcc(gp) | t9 = sym.action_rule_setup_action_instances;
0x0001a310 move a1, s0 | a1 = s0;
0x0001a314 move a0, s6 | a0 = s6;
0x0001a318 bal 0x18060 | sym_action_rule_setup_action_instances ();
0x0001a31c lw gp, 0x18(sp) | gp = *(var_18h);
| if (v0 == 0) {
0x0001a320 beqz v0, 0x1a26c | goto label_8;
| }
0x0001a324 addiu s0, zero, 1 | s0 = 1;
0x0001a328 b 0x19bf0 | goto label_5;
| label_21:
0x0001a32c lw t9, -0x7c14(gp) | t9 = sym.imp.ae_error_quark;
0x0001a330 move s4, zero | s4 = 0;
0x0001a334 jalr t9 | t9 ();
0x0001a338 lw gp, 0x18(sp) | gp = *(var_18h);
0x0001a33c lw v1, 0x6c(sp) | v1 = *(var_6ch);
0x0001a340 sw s1, 0x10(sp) | *(var_10h_2) = s1;
0x0001a344 lw t9, -0x7b10(gp) | t9 = sym.imp.g_set_error;
0x0001a348 addiu a3, v1, -0x6224 | a3 = v1 + -0x6224;
0x0001a34c addiu a2, zero, 1 | a2 = 1;
0x0001a350 move a1, v0 | a1 = v0;
0x0001a354 addiu a0, sp, 0x74 | a0 = sp + 0x74;
0x0001a358 jalr t9 | t9 ();
0x0001a35c move s7, zero | s7 = 0;
0x0001a360 lw gp, 0x18(sp) | gp = *(var_18h);
0x0001a364 move s2, zero | s2 = 0;
0x0001a368 b 0x19e9c | goto label_3;
| label_27:
0x0001a36c move v0, zero | v0 = 0;
0x0001a370 b 0x19cc4 | goto label_6;
| label_20:
0x0001a374 lw t9, -0x7c5c(gp) | t9 = sym.imp.g_strfreev;
0x0001a378 lw a0, 0x58(sp) | a0 = *(var_58h);
0x0001a37c lw s7, 0x5c(sp) | s7 = *(var_5ch);
0x0001a380 lw s3, 0x60(sp) | s3 = *(var_60h);
0x0001a384 move s1, v0 | s1 = v0;
0x0001a388 lw s5, 0x64(sp) | s5 = *(var_64h);
0x0001a38c lw s4, 0x68(sp) | s4 = *(var_68h);
0x0001a390 jalr t9 | t9 ();
0x0001a394 lw gp, 0x18(sp) | gp = *(var_18h);
0x0001a398 b 0x1a2ec | goto label_9;
| label_19:
0x0001a39c lw v0, -0x7fb8(gp) | v0 = *(gp);
0x0001a3a0 lw a1, -0x7fd0(gp) | a1 = *((gp - 8180));
0x0001a3a4 lw a0, -0x7fd0(gp) | a0 = *((gp - 8180));
0x0001a3a8 lw t9, (v0) | t9 = *(v0);
| /* str.action_rule_deserialize */
0x0001a3ac addiu a1, a1, -0x5f6c | a1 += -0x5f6c;
| /* str.action_rule.c:1901___s__Failed_to_deserialize_property_event */
0x0001a3b0 addiu a0, a0, -0x61b0 | a0 += -0x61b0;
0x0001a3b4 lw s7, 0x5c(sp) | s7 = *(var_5ch);
0x0001a3b8 lw s3, 0x60(sp) | s3 = *(var_60h);
0x0001a3bc move s0, s5 | s0 = s5;
0x0001a3c0 move s1, s5 | s1 = s5;
0x0001a3c4 lw s4, 0x68(sp) | s4 = *(var_68h);
0x0001a3c8 lw s5, 0x64(sp) | s5 = *(var_64h);
0x0001a3cc jalr t9 | t9 ();
0x0001a3d0 lw gp, 0x18(sp) | gp = *(var_18h);
0x0001a3d4 lw a1, 0x74(sp) | a1 = *(var_74h);
0x0001a3d8 lw t9, -0x7ab0(gp) | t9 = sym.imp.g_propagate_error;
0x0001a3dc lw a0, 0x24(sp) | a0 = *(var_24h);
0x0001a3e0 jalr t9 | t9 ();
0x0001a3e4 lw gp, 0x18(sp) | gp = *(var_18h);
0x0001a3e8 lw t9, -0x7c5c(gp) | t9 = sym.imp.g_strfreev;
0x0001a3ec lw a0, 0x58(sp) | a0 = *(var_58h);
0x0001a3f0 jalr t9 | t9 ();
0x0001a3f4 lw gp, 0x18(sp) | gp = *(var_18h);
| if (s0 == 0) {
0x0001a3f8 beqz s0, 0x1a414 | goto label_28;
| }
| do {
0x0001a3fc lw t9, -0x7880(gp) | t9 = sym.imp.property_state_free;
0x0001a400 lw a0, (s0) | a0 = *(s0);
0x0001a404 jalr t9 | t9 ();
0x0001a408 lw s0, 4(s0) | s0 = *((s0 + 1));
0x0001a40c lw gp, 0x18(sp) | gp = *(var_18h);
0x0001a410 bnez s0, 0x1a3fc |
| } while (s0 != 0);
| label_28:
0x0001a414 lw t9, -0x7960(gp) | t9 = sym.imp.g_list_free;
0x0001a418 move a0, s1 | a0 = s1;
0x0001a41c jalr t9 | t9 ();
0x0001a420 move s0, zero | s0 = 0;
0x0001a424 lw gp, 0x18(sp) | gp = *(var_18h);
0x0001a428 b 0x19bf0 | goto label_5;
| label_18:
0x0001a42c lw t9, -0x7c14(gp) | t9 = sym.imp.ae_error_quark;
0x0001a430 move s7, zero | s7 = 0;
0x0001a434 jalr t9 | t9 ();
0x0001a438 lw gp, 0x18(sp) | gp = *(var_18h);
0x0001a43c lw a3, 0x4c(sp) | a3 = *(var_4ch_2);
0x0001a440 sw s1, 0x10(sp) | *(var_10h_2) = s1;
0x0001a444 lw t9, -0x7b10(gp) | t9 = sym.imp.g_set_error;
0x0001a448 addiu a2, zero, 4 | a2 = 4;
0x0001a44c move a1, v0 | a1 = v0;
0x0001a450 addiu a0, sp, 0x74 | a0 = sp + 0x74;
0x0001a454 jalr t9 | t9 ();
0x0001a458 lw gp, 0x18(sp) | gp = *(var_18h);
0x0001a45c b 0x19e9c | goto label_3;
| label_25:
0x0001a460 lw t9, -0x7c14(gp) | t9 = sym.imp.ae_error_quark;
0x0001a464 sw zero, 0x54(sp) | *(var_54h) = 0;
0x0001a468 jalr t9 | t9 ();
0x0001a46c lw gp, 0x18(sp) | gp = *(var_18h);
0x0001a470 sw s2, 0x10(sp) | *(var_10h_2) = s2;
0x0001a474 lw a3, -0x7fd0(gp) | a3 = *((gp - 8180));
0x0001a478 lw t9, -0x7b10(gp) | t9 = sym.imp.g_set_error;
| /* str.Failed_to_read_file:__s */
0x0001a47c addiu a3, a3, -0x61e8 | a3 += -0x61e8;
| do {
0x0001a480 addiu a2, zero, 1 | a2 = 1;
0x0001a484 move a1, v0 | a1 = v0;
0x0001a488 addiu a0, sp, 0x74 | a0 = sp + 0x74;
0x0001a48c jalr t9 | t9 ();
0x0001a490 lw gp, 0x18(sp) | gp = *(var_18h);
0x0001a494 sw zero, 0x50(sp) | *(var_50h) = 0;
0x0001a498 b 0x1a1f0 | goto label_10;
| label_24:
0x0001a49c lw t9, -0x7c14(gp) | t9 = sym.imp.ae_error_quark;
0x0001a4a0 sw zero, 0x54(sp) | *(var_54h) = 0;
0x0001a4a4 jalr t9 | t9 ();
0x0001a4a8 lw gp, 0x18(sp) | gp = *(var_18h);
0x0001a4ac sw s2, 0x10(sp) | *(var_10h_2) = s2;
0x0001a4b0 lw a3, -0x7fd0(gp) | a3 = *((gp - 8180));
0x0001a4b4 lw t9, -0x7b10(gp) | t9 = sym.imp.g_set_error;
| /* str.Failed_to_open_file_for_reading:__s */
0x0001a4b8 addiu a3, a3, -0x620c | a3 += -0x620c;
0x0001a4bc b 0x1a480 |
| } while (1);
| label_23:
0x0001a4c0 lw t9, -0x7c14(gp) | t9 = sym.imp.ae_error_quark;
0x0001a4c4 sw zero, 0x54(sp) | *(var_54h) = 0;
0x0001a4c8 jalr t9 | t9 ();
0x0001a4cc lw gp, 0x18(sp) | gp = *(var_18h);
0x0001a4d0 sw s2, 0x10(sp) | *(var_10h_2) = s2;
0x0001a4d4 addiu a2, zero, 1 | a2 = 1;
0x0001a4d8 lw a3, -0x7fd0(gp) | a3 = *((gp - 8180));
0x0001a4dc lw t9, -0x7b10(gp) | t9 = sym.imp.g_set_error;
| /* str.File_does_not_exist:__s */
0x0001a4e0 addiu a3, a3, -0x6224 | a3 += -0x6224;
0x0001a4e4 move a1, v0 | a1 = v0;
0x0001a4e8 addiu a0, sp, 0x74 | a0 = sp + 0x74;
0x0001a4ec jalr t9 | t9 ();
0x0001a4f0 lw gp, 0x18(sp) | gp = *(var_18h);
0x0001a4f4 sw zero, 0x50(sp) | *(var_50h) = 0;
0x0001a4f8 sw zero, 0x44(sp) | *(var_44h_2) = 0;
0x0001a4fc b 0x1a1f0 | goto label_10;
| label_26:
0x0001a500 lw t9, -0x7c14(gp) | t9 = sym.imp.ae_error_quark;
0x0001a504 sw zero, 0x50(sp) | *(var_50h) = 0;
0x0001a508 jalr t9 | t9 ();
0x0001a50c lw gp, 0x18(sp) | gp = *(var_18h);
0x0001a510 lw a3, 0x4c(sp) | a3 = *(var_4ch_2);
0x0001a514 sw s2, 0x10(sp) | *(var_10h_2) = s2;
0x0001a518 lw t9, -0x7b10(gp) | t9 = sym.imp.g_set_error;
0x0001a51c addiu a2, zero, 4 | a2 = 4;
0x0001a520 move a1, v0 | a1 = v0;
0x0001a524 addiu a0, sp, 0x74 | a0 = sp + 0x74;
0x0001a528 jalr t9 | t9 ();
0x0001a52c lw gp, 0x18(sp) | gp = *(var_18h);
0x0001a530 b 0x1a1f0 | goto label_10;
| label_15:
0x0001a534 lw t9, -0x7ba8(gp) | t9 = sym.imp.__stack_chk_fail;
0x0001a538 jalr t9 | t9 ();
0x0001a53c nop |
| }
; assembly | /* r2dec pseudo code output */
| /* /logs/firmware/unblob_extracted/firmware_extract/4325012-58052244.squashfs_v4_le_extract/usr/bin/actionengined @ 0x1b974 */
| #include <stdint.h>
|
; (fcn) sym.recipient_load_all () | void recipient_load_all () {
0x0001b974 lui gp, 3 |
0x0001b978 addiu gp, gp, -0x7834 |
0x0001b97c addu gp, gp, t9 | gp += t9;
0x0001b980 lw v0, -0x7b1c(gp) | v0 = *((gp - 7879));
0x0001b984 addiu sp, sp, -0x478 |
0x0001b988 lw t9, -0x7cd4(gp) | t9 = sym.imp.g_dir_open;
0x0001b98c sw v0, 0x38(sp) | *(var_38h) = v0;
0x0001b990 lw v0, (v0) | v0 = *(v0);
0x0001b994 addiu v1, sp, 0x40 | v1 = sp + 0x40;
0x0001b998 sw s2, 0x458(sp) | *(var_458h) = s2;
0x0001b99c move s2, a2 | s2 = a2;
0x0001b9a0 sw gp, 0x18(sp) | *(var_18h) = gp;
0x0001b9a4 sw a0, 0x34(sp) | *(var_34h) = a0;
0x0001b9a8 sw a1, 0x28(sp) | *(var_28h) = a1;
0x0001b9ac sw ra, 0x474(sp) | *(var_474h) = ra;
0x0001b9b0 sw fp, 0x470(sp) | *(var_470h) = fp;
0x0001b9b4 sw s7, 0x46c(sp) | *(var_46ch) = s7;
0x0001b9b8 sw s6, 0x468(sp) | *(var_468h) = s6;
0x0001b9bc sw s5, 0x464(sp) | *(var_464h) = s5;
0x0001b9c0 sw s4, 0x460(sp) | *(var_460h) = s4;
0x0001b9c4 sw s3, 0x45c(sp) | *(var_45ch) = s3;
0x0001b9c8 sw s1, 0x454(sp) | *(var_454h) = s1;
0x0001b9cc sw s0, 0x450(sp) | *(var_450h) = s0;
0x0001b9d0 sw v1, 0x24(sp) | *(var_24h) = v1;
0x0001b9d4 move a2, v1 | a2 = v1;
0x0001b9d8 move a1, zero | a1 = 0;
0x0001b9dc move a0, s2 | a0 = s2;
0x0001b9e0 sw a3, 0x3c(sp) | *(var_3ch) = a3;
0x0001b9e4 sw v0, 0x44c(sp) | *(var_44ch) = v0;
0x0001b9e8 sw zero, 0x40(sp) | *(var_40h) = 0;
0x0001b9ec jalr t9 | t9 ();
0x0001b9f0 nop |
0x0001b9f4 lw gp, 0x18(sp) | gp = *(var_18h);
| if (v0 == 0) {
0x0001b9f8 beqz v0, 0x1bd18 | goto label_4;
| }
0x0001b9fc lw t9, -0x7a80(gp) | t9 = sym.imp.g_hash_table_new_full;
0x0001ba00 lw a3, -0x7918(gp) | a3 = *((gp - 7750));
0x0001ba04 lw a1, -0x78ac(gp) | a1 = *((gp - 7723));
0x0001ba08 lw a0, -0x7bdc(gp) | a0 = *((gp - 7927));
0x0001ba0c move a2, zero | a2 = 0;
0x0001ba10 move s4, v0 | s4 = v0;
0x0001ba14 jalr t9 | t9 ();
0x0001ba18 lw gp, 0x18(sp) | gp = *(var_18h);
0x0001ba1c lw v1, 0x28(sp) | v1 = *(var_28h);
0x0001ba20 move s7, zero | s7 = 0;
0x0001ba24 lw s3, -0x7fd8(gp) | s3 = *(gp);
0x0001ba28 sw v0, (v1) | *(v1) = v0;
0x0001ba2c lw v0, -0x7fd0(gp) | v0 = *((gp - 8180));
0x0001ba30 lw s6, -0x7fd8(gp) | s6 = *(gp);
0x0001ba34 sw v0, 0x20(sp) | *(var_20h) = v0;
0x0001ba38 lw v0, -0x7fd0(gp) | v0 = *((gp - 8180));
| /* str._s__s */
0x0001ba3c addiu s3, s3, 0x64d0 | s3 += 0x64d0;
| /* str.Not_a_recipient_file:__s */
0x0001ba40 addiu v0, v0, -0x5ca4 | v0 += -0x5ca4;
0x0001ba44 sw v0, 0x2c(sp) | *(var_2ch) = v0;
0x0001ba48 lw v0, -0x7fd0(gp) | v0 = *((gp - 8180));
| /* str.conf */
0x0001ba4c addiu s6, s6, 0x6ec4 | s6 += 0x6ec4;
0x0001ba50 sw v0, 0x30(sp) | *(var_30h) = v0;
| label_0:
0x0001ba54 lw t9, -0x78e0(gp) | t9 = sym.imp.g_dir_read_name;
0x0001ba58 move a0, s4 | a0 = s4;
0x0001ba5c jalr t9 | t9 ();
0x0001ba60 move s0, v0 | s0 = v0;
0x0001ba64 lw gp, 0x18(sp) | gp = *(var_18h);
| if (v0 == 0) {
0x0001ba68 beqz v0, 0x1bba8 | goto label_5;
| }
| do {
0x0001ba6c lw t9, -0x7c78(gp) | t9 = sym.imp.g_sprintf
0x0001ba70 addiu s1, sp, 0x4c | s1 = sp + 0x4c;
0x0001ba74 move a3, s0 | a3 = s0;
0x0001ba78 move a2, s2 | a2 = s2;
0x0001ba7c move a1, s3 | a1 = s3;
0x0001ba80 move a0, s1 | a0 = s1;
0x0001ba84 jalr t9 | t9 ();
0x0001ba88 lw gp, 0x18(sp) | gp = *(var_18h);
0x0001ba8c move a1, s6 | a1 = s6;
0x0001ba90 lw t9, -0x7c64(gp) | t9 = sym.imp.g_str_has_suffix;
0x0001ba94 move a0, s0 | a0 = s0;
0x0001ba98 jalr t9 | t9 ();
0x0001ba9c lw gp, 0x18(sp) | gp = *(var_18h);
| if (v0 == 0) {
0x0001baa0 beqz v0, 0x1bc0c | goto label_6;
| }
0x0001baa4 lw t9, -0x7cd8(gp) | t9 = sym.imp.g_file_test;
0x0001baa8 addiu a1, zero, 1 | a1 = 1;
0x0001baac move a0, s1 | a0 = s1;
0x0001bab0 jalr t9 | t9 ();
0x0001bab4 lw gp, 0x18(sp) | gp = *(var_18h);
| if (v0 == 0) {
0x0001bab8 beqz v0, 0x1bc0c | goto label_6;
| }
0x0001babc lw t9, -0x7dbc(gp) | t9 = sym.recipient_get_type;
0x0001bac0 bal 0x1ad04 | sym_recipient_get_type ();
0x0001bac4 nop |
0x0001bac8 lw gp, 0x18(sp) | gp = *(var_18h);
0x0001bacc move a1, zero | a1 = 0;
0x0001bad0 lw t9, -0x7a0c(gp) | t9 = sym.imp.g_object_new;
0x0001bad4 move a0, v0 | a0 = v0;
0x0001bad8 jalr t9 | t9 ();
0x0001badc lw gp, 0x18(sp) | gp = *(var_18h);
0x0001bae0 move a2, s0 | a2 = s0;
0x0001bae4 move a1, s2 | a1 = s2;
0x0001bae8 lw t9, -0x7a38(gp) | t9 = sym.imp.g_strdup_printf
0x0001baec move a0, s3 | a0 = s3;
0x0001baf0 move s5, v0 | s5 = v0;
0x0001baf4 jalr t9 | t9 ();
0x0001baf8 lw gp, 0x18(sp) | gp = *(var_18h);
0x0001bafc lw a3, 0x24(sp) | a3 = *(var_24h);
0x0001bb00 addiu a2, sp, 0x48 | a2 = sp + 0x48;
0x0001bb04 lw t9, -0x7c04(gp) | t9 = sym.imp.g_file_get_contents;
0x0001bb08 addiu a1, sp, 0x44 | a1 = sp + 0x44;
0x0001bb0c move a0, v0 | a0 = v0;
0x0001bb10 move fp, v0 | fp = v0;
0x0001bb14 jalr t9 | t9 ();
0x0001bb18 lw gp, 0x18(sp) | gp = *(var_18h);
| if (v0 == 0) {
0x0001bb1c beqz v0, 0x1bc7c | goto label_7;
| }
0x0001bb20 lw v0, 0x24(sp) | v0 = *(var_24h);
0x0001bb24 lw t9, -0x7dac(gp) | t9 = sym.recipient_deserialize_from_data;
0x0001bb28 sw v0, 0x14(sp) | *(var_14h) = v0;
0x0001bb2c lw v0, 0x34(sp) | v0 = *(var_34h);
0x0001bb30 lw a3, 0x48(sp) | a3 = *(var_48h);
0x0001bb34 lw a2, 0x44(sp) | a2 = *(var_44h);
0x0001bb38 sw v0, 0x10(sp) | *(var_10h) = v0;
0x0001bb3c move a1, s2 | a1 = s2;
0x0001bb40 move a0, s5 | a0 = s5;
0x0001bb44 bal 0x1b2b8 | sym_recipient_deserialize_from_data ();
0x0001bb48 lw gp, 0x18(sp) | gp = *(var_18h);
| if (v0 == 0) {
0x0001bb4c beqz v0, 0x1bc7c | goto label_7;
| }
0x0001bb50 lw v0, 0x1c(s5) | v0 = *((s5 + 7));
0x0001bb54 lw t9, -0x7864(gp) | t9 = *((gp - 7705));
| if (v0 == 0) {
0x0001bb58 beqz v0, 0x1bce8 | goto label_8;
| }
0x0001bb5c move a0, fp | a0 = fp;
0x0001bb60 jalr t9 | t9 ();
0x0001bb64 lw gp, 0x18(sp) | gp = *(var_18h);
| label_2:
0x0001bb68 lw v0, 0x28(sp) | v0 = *(var_28h);
0x0001bb6c lw s0, 0x1c(s5) | s0 = *((s5 + 7));
0x0001bb70 lw t9, -0x795c(gp) | t9 = sym.imp.g_hash_table_insert;
0x0001bb74 lw a0, (v0) | a0 = *(v0);
0x0001bb78 move a1, s0 | a1 = s0;
0x0001bb7c move a2, s5 | a2 = s5;
0x0001bb80 jalr t9 | t9 ();
0x0001bb84 lw gp, 0x18(sp) | gp = *(var_18h);
0x0001bb88 sltu v0, s7, s0 | v0 = (s7 < s0) ? 1 : 0;
0x0001bb8c move a0, s4 | a0 = s4;
0x0001bb90 lw t9, -0x78e0(gp) | t9 = sym.imp.g_dir_read_name;
| if (v0 == 0) {
0x0001bb94 movn s7, s0, v0 | s7 = s0;
| }
0x0001bb98 jalr t9 | t9 ();
0x0001bb9c move s0, v0 | s0 = v0;
0x0001bba0 lw gp, 0x18(sp) | gp = *(var_18h);
0x0001bba4 bnez v0, 0x1ba6c |
| } while (v0 != 0);
| label_5:
0x0001bba8 lw v0, -0x7fc0(gp) | v0 = *((gp - 8176));
0x0001bbac addiu s7, s7, 1 | s7++;
0x0001bbb0 addiu s0, zero, 1 | s0 = 1;
0x0001bbb4 sw s7, -0x3ed0(v0) | *((v0 - 4020)) = s7;
| do {
| label_1:
0x0001bbb8 lw t9, -0x78b8(gp) | t9 = sym.imp.g_dir_close;
0x0001bbbc move a0, s4 | a0 = s4;
0x0001bbc0 jalr t9 | t9 ();
0x0001bbc4 lw gp, 0x18(sp) | gp = *(var_18h);
| label_3:
0x0001bbc8 lw v0, 0x38(sp) | v0 = *(var_38h);
0x0001bbcc lw a0, 0x44c(sp) | a0 = *(var_44ch);
0x0001bbd0 lw v1, (v0) | v1 = *(v0);
0x0001bbd4 move v0, s0 | v0 = s0;
| if (a0 != v1) {
0x0001bbd8 bne a0, v1, 0x1bd5c | goto label_9;
| }
0x0001bbdc lw ra, 0x474(sp) | ra = *(var_474h);
0x0001bbe0 lw fp, 0x470(sp) | fp = *(var_470h);
0x0001bbe4 lw s7, 0x46c(sp) | s7 = *(var_46ch);
0x0001bbe8 lw s6, 0x468(sp) | s6 = *(var_468h);
0x0001bbec lw s5, 0x464(sp) | s5 = *(var_464h);
0x0001bbf0 lw s4, 0x460(sp) | s4 = *(var_460h);
0x0001bbf4 lw s3, 0x45c(sp) | s3 = *(var_45ch);
0x0001bbf8 lw s2, 0x458(sp) | s2 = *(var_458h);
0x0001bbfc lw s1, 0x454(sp) | s1 = *(var_454h);
0x0001bc00 lw s0, 0x450(sp) | s0 = *(var_450h);
0x0001bc04 addiu sp, sp, 0x478 |
0x0001bc08 jr ra | return v0;
| label_6:
0x0001bc0c lw v0, 0x20(sp) | v0 = *(var_20h);
0x0001bc10 lw t9, -0x7c64(gp) | t9 = sym.imp.g_str_has_suffix;
0x0001bc14 addiu a1, v0, -0x5ccc | a1 = v0 + -0x5ccc;
0x0001bc18 move a0, s0 | a0 = s0;
0x0001bc1c jalr t9 | t9 ();
0x0001bc20 lw gp, 0x18(sp) | gp = *(var_18h);
| if (v0 != 0) {
0x0001bc24 beqz v0, 0x1bc5c |
0x0001bc28 lw v0, 0x30(sp) | v0 = *(var_30h);
0x0001bc2c lw t9, -0x7cbc(gp) | t9 = sym.imp.g_log;
0x0001bc30 move a3, s0 | a3 = s0;
0x0001bc34 addiu a2, v0, -0x5cc4 | a2 = v0 + -0x5cc4;
0x0001bc38 addiu a1, zero, 0x10 | a1 = 0x10;
0x0001bc3c move a0, zero | a0 = 0;
0x0001bc40 jalr t9 | t9 ();
0x0001bc44 lw gp, 0x18(sp) | gp = *(var_18h);
0x0001bc48 lw t9, -0x7b7c(gp) | t9 = sym.imp.remove;
0x0001bc4c move a0, s1 | a0 = s1;
0x0001bc50 jalr t9 | t9 ();
0x0001bc54 lw gp, 0x18(sp) | gp = *(var_18h);
0x0001bc58 b 0x1ba54 | goto label_0;
| }
0x0001bc5c lw t9, -0x7cbc(gp) | t9 = sym.imp.g_log;
0x0001bc60 lw a2, 0x2c(sp) | a2 = *(var_2ch);
0x0001bc64 move a3, s0 | a3 = s0;
0x0001bc68 addiu a1, zero, 0x10 | a1 = 0x10;
0x0001bc6c move a0, zero | a0 = 0;
0x0001bc70 jalr t9 | t9 ();
0x0001bc74 lw gp, 0x18(sp) | gp = *(var_18h);
0x0001bc78 b 0x1ba54 | goto label_0;
| label_7:
0x0001bc7c lw t9, -0x7864(gp) | t9 = *((gp - 7705));
0x0001bc80 move a0, fp | a0 = fp;
0x0001bc84 jalr t9 | t9 ();
0x0001bc88 lw gp, 0x18(sp) | gp = *(var_18h);
0x0001bc8c move a0, s5 | a0 = s5;
0x0001bc90 lw t9, -0x7918(gp) | t9 = *((gp - 7750));
0x0001bc94 move s0, zero | s0 = 0;
0x0001bc98 jalr t9 | t9 ();
0x0001bc9c lw gp, 0x18(sp) | gp = *(var_18h);
0x0001bca0 lw a0, 0x3c(sp) | a0 = *(var_3ch);
0x0001bca4 lw a1, 0x40(sp) | a1 = *(var_40h);
0x0001bca8 lw a2, -0x7fd0(gp) | a2 = *((gp - 8180));
0x0001bcac lw t9, -0x7a20(gp) | t9 = sym.imp.g_propagate_prefixed_error;
0x0001bcb0 move a3, s1 | a3 = s1;
| /* str.error_parsing__s:_ */
0x0001bcb4 addiu a2, a2, -0x5c88 | a2 += -0x5c88;
0x0001bcb8 jalr t9 | t9 ();
0x0001bcbc lw v0, 0x28(sp) | v0 = *(var_28h);
0x0001bcc0 lw a0, (v0) | a0 = *(v0);
0x0001bcc4 lw gp, 0x18(sp) | gp = *(var_18h);
0x0001bcc8 beqz a0, 0x1bbb8 |
| } while (a0 == 0);
0x0001bccc lw t9, -0x7c48(gp) | t9 = sym.imp.g_hash_table_unref;
0x0001bcd0 move s0, zero | s0 = 0;
0x0001bcd4 jalr t9 | t9 ();
0x0001bcd8 lw v0, 0x28(sp) | v0 = *(var_28h);
0x0001bcdc lw gp, 0x18(sp) | gp = *(var_18h);
0x0001bce0 sw zero, (v0) | *(v0) = 0;
0x0001bce4 b 0x1bbb8 | goto label_1;
| label_8:
0x0001bce8 lw t9, -0x7ae8(gp) | t9 = sym.imp.g_ascii_strtoull;
0x0001bcec addiu a2, zero, 0xa | a2 = 0xa;
0x0001bcf0 move a1, zero | a1 = 0;
0x0001bcf4 move a0, s0 | a0 = s0;
0x0001bcf8 jalr t9 | t9 ();
0x0001bcfc lw gp, 0x18(sp) | gp = *(var_18h);
0x0001bd00 sw v0, 0x1c(s5) | *((s5 + 7)) = v0;
0x0001bd04 lw t9, -0x7864(gp) | t9 = *((gp - 7705));
0x0001bd08 move a0, fp | a0 = fp;
0x0001bd0c jalr t9 | t9 ();
0x0001bd10 lw gp, 0x18(sp) | gp = *(var_18h);
0x0001bd14 b 0x1bb68 | goto label_2;
| label_4:
0x0001bd18 lw t9, -0x7ab0(gp) | t9 = sym.imp.g_propagate_error;
0x0001bd1c lw a0, 0x3c(sp) | a0 = *(var_3ch);
0x0001bd20 lw a1, 0x40(sp) | a1 = *(var_40h);
0x0001bd24 jalr t9 | t9 ();
0x0001bd28 lw v0, 0x28(sp) | v0 = *(var_28h);
0x0001bd2c lw a0, (v0) | a0 = *(v0);
0x0001bd30 lw gp, 0x18(sp) | gp = *(var_18h);
| if (a0 == 0) {
0x0001bd34 bnez a0, 0x1bd40 |
0x0001bd38 move s0, zero | s0 = 0;
0x0001bd3c b 0x1bbc8 | goto label_3;
| }
0x0001bd40 lw t9, -0x7c48(gp) | t9 = sym.imp.g_hash_table_unref;
0x0001bd44 move s0, zero | s0 = 0;
0x0001bd48 jalr t9 | t9 ();
0x0001bd4c lw v0, 0x28(sp) | v0 = *(var_28h);
0x0001bd50 lw gp, 0x18(sp) | gp = *(var_18h);
0x0001bd54 sw zero, (v0) | *(v0) = 0;
0x0001bd58 b 0x1bbc8 | goto label_3;
| label_9:
0x0001bd5c lw t9, -0x7ba8(gp) | t9 = sym.imp.__stack_chk_fail;
0x0001bd60 jalr t9 | t9 ();
0x0001bd64 nop |
0x0001bd68 nop |
0x0001bd6c nop |
0x0001bd70 addiu v0, zero, -1 | v0 = -1;
0x0001bd74 jr ra | return v0;
| }
; assembly | /* r2dec pseudo code output */
| /* /logs/firmware/unblob_extracted/firmware_extract/4325012-58052244.squashfs_v4_le_extract/usr/bin/actionengined @ 0xfcd0 */
| #include <stdint.h>
|
; (fcn) sym.recipient_template_load_from () | void recipient_template_load_from () {
0x0000fcd0 lui gp, 3 |
0x0000fcd4 addiu gp, gp, 0x4470 |
0x0000fcd8 addu gp, gp, t9 | gp += t9;
0x0000fcdc addiu sp, sp, -0x448 |
0x0000fce0 lw t9, -0x7cd4(gp) | t9 = sym.imp.g_dir_open;
0x0000fce4 sw s6, 0x438(sp) | *(var_438h) = s6;
0x0000fce8 lw s6, -0x7b1c(gp) | s6 = *((gp - 7879));
0x0000fcec sw s3, 0x42c(sp) | *(var_42ch) = s3;
0x0000fcf0 sw s2, 0x428(sp) | *(var_428h) = s2;
0x0000fcf4 lw v0, (s6) | v0 = *(s6);
0x0000fcf8 move s2, a1 | s2 = a1;
0x0000fcfc addiu s3, sp, 0x18 | s3 = sp + 0x18;
0x0000fd00 sw gp, 0x10(sp) | *(var_10h) = gp;
0x0000fd04 sw s7, 0x43c(sp) | *(var_43ch) = s7;
0x0000fd08 sw s4, 0x430(sp) | *(var_430h) = s4;
0x0000fd0c sw ra, 0x444(sp) | *(var_444h) = ra;
0x0000fd10 sw fp, 0x440(sp) | *(var_440h) = fp;
0x0000fd14 sw s5, 0x434(sp) | *(var_434h) = s5;
0x0000fd18 sw s1, 0x424(sp) | *(var_424h) = s1;
0x0000fd1c sw s0, 0x420(sp) | *(var_420h) = s0;
0x0000fd20 move s4, a0 | s4 = a0;
0x0000fd24 move s7, a2 | s7 = a2;
0x0000fd28 move a1, zero | a1 = 0;
0x0000fd2c move a2, s3 | a2 = s3;
0x0000fd30 move a0, s2 | a0 = s2;
0x0000fd34 sw v0, 0x41c(sp) | *(var_41ch) = v0;
0x0000fd38 sw zero, 0x18(sp) | *(var_18h) = 0;
0x0000fd3c jalr t9 | t9 ();
0x0000fd40 nop |
0x0000fd44 lw gp, 0x10(sp) | gp = *(var_10h);
| if (v0 == 0) {
0x0000fd48 beqz v0, 0xfe1c | goto label_1;
| }
0x0000fd4c lw s1, -0x7fd8(gp) | s1 = *(gp);
0x0000fd50 move s0, v0 | s0 = v0;
0x0000fd54 addiu fp, sp, 0x1c | fp = sp + 0x1c;
| /* str._s__s */
0x0000fd58 addiu s1, s1, 0x64d0 | s1 += 0x64d0;
0x0000fd5c lw s5, -0x7ea8(gp) | s5 = sym.recipient_template_load_file;
0x0000fd60 b 0xfd98 |
| while (v0 != 0) {
0x0000fd64 lw t9, -0x7c78(gp) | t9 = sym.imp.g_sprintf
0x0000fd68 move a3, v0 | a3 = v0;
0x0000fd6c move a2, s2 | a2 = s2;
0x0000fd70 move a1, s1 | a1 = s1;
0x0000fd74 move a0, fp | a0 = fp;
0x0000fd78 jalr t9 | t9 ();
0x0000fd7c move a2, s3 | a2 = s3;
0x0000fd80 move a1, fp | a1 = fp;
0x0000fd84 move t9, s5 | t9 = s5;
0x0000fd88 move a0, s4 | a0 = s4;
0x0000fd8c bal 0xfb68 | sym_recipient_template_load_file ();
0x0000fd90 lw gp, 0x10(sp) | gp = *(var_10h);
| if (v0 == 0) {
0x0000fd94 beqz v0, 0xfe00 | goto label_2;
| }
0x0000fd98 lw t9, -0x78e0(gp) | t9 = sym.imp.g_dir_read_name;
0x0000fd9c move a0, s0 | a0 = s0;
0x0000fda0 jalr t9 | t9 ();
0x0000fda4 lw gp, 0x10(sp) | gp = *(var_10h);
0x0000fda8 bnez v0, 0xfd64 |
| }
0x0000fdac addiu s1, zero, 1 | s1 = 1;
| do {
0x0000fdb0 lw t9, -0x78b8(gp) | t9 = sym.imp.g_dir_close;
0x0000fdb4 move a0, s0 | a0 = s0;
0x0000fdb8 jalr t9 | t9 ();
0x0000fdbc lw gp, 0x10(sp) | gp = *(var_10h);
| label_0:
0x0000fdc0 lw a0, 0x41c(sp) | a0 = *(var_41ch);
0x0000fdc4 lw v1, (s6) | v1 = *(s6);
0x0000fdc8 move v0, s1 | v0 = s1;
| if (a0 != v1) {
0x0000fdcc bne a0, v1, 0xfe38 | goto label_3;
| }
0x0000fdd0 lw ra, 0x444(sp) | ra = *(var_444h);
0x0000fdd4 lw fp, 0x440(sp) | fp = *(var_440h);
0x0000fdd8 lw s7, 0x43c(sp) | s7 = *(var_43ch);
0x0000fddc lw s6, 0x438(sp) | s6 = *(var_438h);
0x0000fde0 lw s5, 0x434(sp) | s5 = *(var_434h);
0x0000fde4 lw s4, 0x430(sp) | s4 = *(var_430h);
0x0000fde8 lw s3, 0x42c(sp) | s3 = *(var_42ch);
0x0000fdec lw s2, 0x428(sp) | s2 = *(var_428h);
0x0000fdf0 lw s1, 0x424(sp) | s1 = *(var_424h);
0x0000fdf4 lw s0, 0x420(sp) | s0 = *(var_420h);
0x0000fdf8 addiu sp, sp, 0x448 |
0x0000fdfc jr ra | return v0;
| label_2:
0x0000fe00 lw t9, -0x7ab0(gp) | t9 = sym.imp.g_propagate_error;
0x0000fe04 lw a1, 0x18(sp) | a1 = *(var_18h);
0x0000fe08 move a0, s7 | a0 = s7;
0x0000fe0c jalr t9 | t9 ();
0x0000fe10 move s1, zero | s1 = 0;
0x0000fe14 lw gp, 0x10(sp) | gp = *(var_10h);
0x0000fe18 b 0xfdb0 |
| } while (1);
| label_1:
0x0000fe1c lw t9, -0x7ab0(gp) | t9 = sym.imp.g_propagate_error;
0x0000fe20 lw a1, 0x18(sp) | a1 = *(var_18h);
0x0000fe24 move a0, s7 | a0 = s7;
0x0000fe28 jalr t9 | t9 ();
0x0000fe2c move s1, zero | s1 = 0;
0x0000fe30 lw gp, 0x10(sp) | gp = *(var_10h);
0x0000fe34 b 0xfdc0 | goto label_0;
| label_3:
0x0000fe38 lw t9, -0x7ba8(gp) | t9 = sym.imp.__stack_chk_fail;
0x0000fe3c jalr t9 | t9 ();
0x0000fe40 nop |
| }
[*] Function printf used 11 times actionengined