[*] Binary protection state of actionengined
Full RELRO Canary found NX disabled PIE enabled No RPATH No RUNPATH No Symbols
[*] Function system tear down of actionengined
; assembly | /* r2dec pseudo code output */
| /* /logs/firmware/unblob_extracted/firmware_extract/4325012-58052244.squashfs_v4_le_extract/usr/bin/actionengined @ 0x1186c */
| #include <stdint.h>
|
; (fcn) sym.action_configuration_delete () | void action_configuration_delete () {
0x0001186c lui gp, 3 |
0x00011870 addiu gp, gp, 0x28d4 |
0x00011874 addu gp, gp, t9 | gp += t9;
0x00011878 addiu sp, sp, -0x48 |
0x0001187c lw t9, -0x7e9c(gp) | t9 = sym.create_file_path;
0x00011880 sw s1, 0x30(sp) | *(var_30h) = s1;
0x00011884 lw s1, -0x7b1c(gp) | s1 = *((gp - 7879));
0x00011888 sw s3, 0x38(sp) | *(var_38h) = s3;
0x0001188c lw s3, -0x7fd8(gp) | s3 = *(gp);
0x00011890 lw v0, (s1) | v0 = *(s1);
0x00011894 sw s4, 0x3c(sp) | *(var_3ch) = s4;
0x00011898 sw s2, 0x34(sp) | *(var_34h) = s2;
0x0001189c sw s0, 0x2c(sp) | *(var_2ch) = s0;
0x000118a0 move s2, a1 | s2 = a1;
0x000118a4 move s0, a0 | s0 = a0;
0x000118a8 lw a1, 0xc(a0) | a1 = *((a0 + 3));
0x000118ac addiu s4, sp, 0x20 | s4 = sp + 0x20;
0x000118b0 lw a0, 0x10(a0) | a0 = *((a0 + 4));
0x000118b4 sw gp, 0x18(sp) | *(var_18h) = gp;
0x000118b8 sw ra, 0x44(sp) | *(var_44h) = ra;
0x000118bc sw s5, 0x40(sp) | *(var_40h) = s5;
0x000118c0 sw s2, 0x14(sp) | *(var_14h) = s2;
0x000118c4 sw s4, 0x10(sp) | *(var_10h) = s4;
0x000118c8 move a3, zero | a3 = 0;
| /* str.conf */
0x000118cc addiu a2, s3, 0x6ec4 | a2 = s3 + 0x6ec4;
0x000118d0 sw v0, 0x24(sp) | *(var_24h) = v0;
0x000118d4 sw zero, 0x20(sp) | *(var_20h) = 0;
0x000118d8 bal 0x11b54 | sym_create_file_path ();
0x000118dc nop |
0x000118e0 lw gp, 0x18(sp) | gp = *(var_18h);
0x000118e4 bnez v0, 0x11930 |
| while (v0 == 0) {
0x000118e8 move s0, zero | s0 = 0;
| label_0:
0x000118ec lw t9, -0x7864(gp) | t9 = *((gp - 7705));
0x000118f0 lw a0, 0x20(sp) | a0 = *(var_20h);
0x000118f4 jalr t9 | t9 ();
0x000118f8 lw a0, 0x24(sp) | a0 = *(var_24h);
0x000118fc lw v1, (s1) | v1 = *(s1);
0x00011900 lw gp, 0x18(sp) | gp = *(var_18h);
0x00011904 move v0, s0 | v0 = s0;
| if (a0 != v1) {
0x00011908 bne a0, v1, 0x119fc | goto label_1;
| }
0x0001190c lw ra, 0x44(sp) | ra = *(var_44h);
0x00011910 lw s5, 0x40(sp) | s5 = *(var_40h);
0x00011914 lw s4, 0x3c(sp) | s4 = *(var_3ch);
0x00011918 lw s3, 0x38(sp) | s3 = *(var_38h);
0x0001191c lw s2, 0x34(sp) | s2 = *(var_34h);
0x00011920 lw s1, 0x30(sp) | s1 = *(var_30h);
0x00011924 lw s0, 0x2c(sp) | s0 = *(var_2ch);
0x00011928 addiu sp, sp, 0x48 |
0x0001192c jr ra | return v1;
0x00011930 lw t9, -0x7b7c(gp) | t9 = sym.imp.remove;
0x00011934 lw a0, 0x20(sp) | a0 = *(var_20h);
0x00011938 jalr t9 | t9 ();
0x0001193c lw gp, 0x18(sp) | gp = *(var_18h);
| if (v0 == 0) {
0x00011940 beqz v0, 0x119ac | goto label_2;
| }
0x00011944 lw t9, -0x7ae8(gp) | t9 = sym.imp.g_ascii_strtoull;
0x00011948 lw a0, 0x10(s0) | a0 = *((s0 + 4));
0x0001194c addiu a2, zero, 0xa | a2 = 0xa;
0x00011950 move a1, zero | a1 = 0;
0x00011954 jalr t9 | t9 ();
0x00011958 lw gp, 0x18(sp) | gp = *(var_18h);
0x0001195c lw a0, 0x20(sp) | a0 = *(var_20h);
0x00011960 lw t9, -0x7864(gp) | t9 = *((gp - 7705));
0x00011964 move s5, v0 | s5 = v0;
0x00011968 jalr t9 | t9 ();
0x0001196c lw gp, 0x18(sp) | gp = *(var_18h);
0x00011970 lw a1, 0xc(s0) | a1 = *((s0 + 3));
0x00011974 move a3, zero | a3 = 0;
0x00011978 lw t9, -0x7e38(gp) | t9 = sym.create_file_path_uint;
0x0001197c sw s2, 0x14(sp) | *(var_14h) = s2;
0x00011980 sw s4, 0x10(sp) | *(var_10h) = s4;
| /* str.conf */
0x00011984 addiu a2, s3, 0x6ec4 | a2 = s3 + 0x6ec4;
0x00011988 move a0, s5 | a0 = s5;
0x0001198c bal 0x11d48 | sym_create_file_path_uint ();
0x00011990 lw gp, 0x18(sp) | gp = *(var_18h);
0x00011994 beqz v0, 0x118e8 |
| }
0x00011998 lw t9, -0x7b7c(gp) | t9 = sym.imp.remove;
0x0001199c lw a0, 0x20(sp) | a0 = *(var_20h);
0x000119a0 jalr t9 | t9 ();
0x000119a4 lw gp, 0x18(sp) | gp = *(var_18h);
| if (v0 == 0) {
0x000119a8 bnez v0, 0x119c0 |
| label_2:
0x000119ac lw t9, -0x7e48(gp) | t9 = sym.sync_filesystem
0x000119b0 addiu s0, zero, 1 | s0 = 1;
0x000119b4 bal 0x11a20 | sym_sync_filesystem ()
0x000119b8 lw gp, 0x18(sp) | gp = *(var_18h);
0x000119bc b 0x118ec | goto label_0;
| }
0x000119c0 lw t9, -0x7c14(gp) | t9 = sym.imp.ae_error_quark;
0x000119c4 move s0, zero | s0 = 0;
0x000119c8 jalr t9 | t9 ();
0x000119cc lw gp, 0x18(sp) | gp = *(var_18h);
0x000119d0 lw v1, 0x20(sp) | v1 = *(var_20h);
0x000119d4 addiu a2, zero, 1 | a2 = 1;
0x000119d8 lw a3, -0x7fd8(gp) | a3 = *(gp);
0x000119dc lw t9, -0x7b10(gp) | t9 = sym.imp.g_set_error;
0x000119e0 sw v1, 0x10(sp) | *(var_10h) = v1;
| /* str.Acion_configuration_file_could_not_be_deleted:__s */
0x000119e4 addiu a3, a3, 0x6fa4 | a3 += 0x6fa4;
0x000119e8 move a1, v0 | a1 = v0;
0x000119ec move a0, s2 | a0 = s2;
0x000119f0 jalr t9 | t9 ();
0x000119f4 lw gp, 0x18(sp) | gp = *(var_18h);
0x000119f8 b 0x118ec | goto label_0;
| label_1:
0x000119fc lw t9, -0x7ba8(gp) | t9 = sym.imp.__stack_chk_fail;
0x00011a00 jalr t9 | t9 ();
0x00011a04 nop |
| }
; assembly | /* r2dec pseudo code output */
| /* /logs/firmware/unblob_extracted/firmware_extract/4325012-58052244.squashfs_v4_le_extract/usr/bin/actionengined @ 0x10c74 */
| #include <stdint.h>
|
; (fcn) sym.action_configuration_serialize_to_data () | void action_configuration_serialize_to_data () {
0x00010c74 lui gp, 3 |
0x00010c78 addiu gp, gp, 0x34cc |
0x00010c7c addu gp, gp, t9 | gp += t9;
0x00010c80 addiu sp, sp, -0x70 |
0x00010c84 lw t9, -0x7924(gp) | t9 = sym.imp.g_key_file_new;
0x00010c88 sw s2, 0x50(sp) | *(var_50h) = s2;
0x00010c8c lw s2, -0x7b1c(gp) | s2 = *((gp - 7879));
0x00010c90 sw gp, 0x18(sp) | *(var_18h) = gp;
0x00010c94 sw s6, 0x60(sp) | *(var_60h) = s6;
0x00010c98 lw v0, (s2) | v0 = *(s2);
0x00010c9c sw s5, 0x5c(sp) | *(var_5ch) = s5;
0x00010ca0 sw s4, 0x58(sp) | *(var_58h) = s4;
0x00010ca4 sw s1, 0x4c(sp) | *(var_4ch) = s1;
0x00010ca8 sw s0, 0x48(sp) | *(var_48h) = s0;
0x00010cac sw ra, 0x6c(sp) | *(var_6ch) = ra;
0x00010cb0 sw fp, 0x68(sp) | *(var_68h) = fp;
0x00010cb4 sw s7, 0x64(sp) | *(var_64h) = s7;
0x00010cb8 sw s3, 0x54(sp) | *(var_54h) = s3;
0x00010cbc sw v0, 0x44(sp) | *(var_44h) = v0;
0x00010cc0 sw zero, 0x20(sp) | *(var_20h) = 0;
0x00010cc4 sw zero, 0x24(sp) | *(var_24h) = 0;
0x00010cc8 move s1, a0 | s1 = a0;
0x00010ccc move s6, a1 | s6 = a1;
0x00010cd0 move s5, a2 | s5 = a2;
0x00010cd4 move s4, a3 | s4 = a3;
0x00010cd8 jalr t9 | t9 ();
0x00010cdc move s0, v0 | s0 = v0;
0x00010ce0 lw gp, 0x18(sp) | gp = *(var_18h);
| if (v0 == 0) {
0x00010ce4 beqz v0, 0x10e9c | goto label_2;
| }
0x00010ce8 lw a3, -0x7fd8(gp) | a3 = *(gp);
0x00010cec lw t9, -0x7c0c(gp) | t9 = sym.imp.g_key_file_set_comment;
0x00010cf0 sw s4, 0x10(sp) | *(var_10h) = s4;
| /* str.This_file_has_been_automatically_generated__DO_NOT_EDIT */
0x00010cf4 addiu a3, a3, 0x6e54 | a3 += 0x6e54;
0x00010cf8 move a2, zero | a2 = 0;
0x00010cfc move a1, zero | a1 = 0;
0x00010d00 move a0, v0 | a0 = v0;
0x00010d04 jalr t9 | t9 ();
0x00010d08 lw gp, 0x18(sp) | gp = *(var_18h);
| if (v0 == 0) {
0x00010d0c bnez v0, 0x10d78 |
0x00010d10 move s3, zero | s3 = 0;
0x00010d14 move s1, zero | s1 = 0;
| label_0:
0x00010d18 lw t9, -0x7c4c(gp) | t9 = sym.imp.g_key_file_free;
0x00010d1c move a0, s0 | a0 = s0;
0x00010d20 jalr t9 | t9 ();
0x00010d24 lw gp, 0x18(sp) | gp = *(var_18h);
0x00010d28 lw t9, -0x7864(gp) | t9 = *((gp - 7705));
0x00010d2c move a0, s3 | a0 = s3;
0x00010d30 jalr t9 | t9 ();
0x00010d34 lw a0, 0x44(sp) | a0 = *(var_44h);
0x00010d38 lw v1, (s2) | v1 = *(s2);
0x00010d3c lw gp, 0x18(sp) | gp = *(var_18h);
0x00010d40 move v0, s1 | v0 = s1;
| if (a0 != v1) {
0x00010d44 bne a0, v1, 0x10f0c | goto label_3;
| }
0x00010d48 lw ra, 0x6c(sp) | ra = *(var_6ch);
0x00010d4c lw fp, 0x68(sp) | fp = *(var_68h);
0x00010d50 lw s7, 0x64(sp) | s7 = *(var_64h);
0x00010d54 lw s6, 0x60(sp) | s6 = *(var_60h);
0x00010d58 lw s5, 0x5c(sp) | s5 = *(var_5ch);
0x00010d5c lw s4, 0x58(sp) | s4 = *(var_58h);
0x00010d60 lw s3, 0x54(sp) | s3 = *(var_54h);
0x00010d64 lw s2, 0x50(sp) | s2 = *(var_50h);
0x00010d68 lw s1, 0x4c(sp) | s1 = *(var_4ch);
0x00010d6c lw s0, 0x48(sp) | s0 = *(var_48h);
0x00010d70 addiu sp, sp, 0x70 |
0x00010d74 jr ra | return v0;
| }
0x00010d78 lw s3, -0x7fd8(gp) | s3 = *(gp);
0x00010d7c lw a2, -0x7fd8(gp) | a2 = *(gp);
0x00010d80 lw t9, -0x7950(gp) | t9 = sym.imp.g_key_file_set_string;
0x00010d84 lw a3, 0x10(s1) | a3 = *((s1 + 4));
| /* esilref: 'id' */
0x00010d88 addiu a2, a2, 0x5218 | a2 += 0x5218;
| /* str.action_configuration */
0x00010d8c addiu a1, s3, 0x6e8c | a1 = s3 + 0x6e8c;
0x00010d90 move a0, s0 | a0 = s0;
0x00010d94 jalr t9 | t9 ();
0x00010d98 lw a3, 0x14(s1) | a3 = *((s1 + 5));
0x00010d9c lw gp, 0x18(sp) | gp = *(var_18h);
| if (a3 == 0) {
0x00010da0 beqz a3, 0x10eec | goto label_4;
| }
| label_1:
0x00010da4 lw a2, -0x7fd8(gp) | a2 = *(gp);
0x00010da8 lw t9, -0x7950(gp) | t9 = sym.imp.g_key_file_set_string;
| /* str.nice_name */
0x00010dac addiu a2, a2, 0x6ea4 | a2 += 0x6ea4;
| /* str.action_configuration */
0x00010db0 addiu a1, s3, 0x6e8c | a1 = s3 + 0x6e8c;
0x00010db4 move a0, s0 | a0 = s0;
0x00010db8 jalr t9 | t9 ();
0x00010dbc lw gp, 0x18(sp) | gp = *(var_18h);
0x00010dc0 lw t9, -0x7f70(gp) | t9 = sym.action_template_get_id;
0x00010dc4 lw a0, 0x18(s1) | a0 = *((s1 + 6));
0x00010dc8 bal 0xd000 | sym_action_template_get_id ();
0x00010dcc lw gp, 0x18(sp) | gp = *(var_18h);
| /* str.action_configuration */
0x00010dd0 addiu a1, s3, 0x6e8c | a1 = s3 + 0x6e8c;
0x00010dd4 move a3, v0 | a3 = v0;
0x00010dd8 lw a2, -0x7fd8(gp) | a2 = *(gp);
0x00010ddc lw t9, -0x7950(gp) | t9 = sym.imp.g_key_file_set_string;
| /* str.action_template_id */
0x00010de0 addiu a2, a2, 0x6eb0 | a2 += 0x6eb0;
0x00010de4 move a0, s0 | a0 = s0;
0x00010de8 jalr t9 | t9 ();
0x00010dec lw a1, 0x1c(s1) | a1 = *((s1 + 7));
0x00010df0 lw gp, 0x18(sp) | gp = *(var_18h);
| if (a1 == 0) {
0x00010df4 beqz a1, 0x10e58 | goto label_5;
| }
0x00010df8 lw t9, -0x7a78(gp) | t9 = sym.imp.g_hash_table_iter_init;
0x00010dfc addiu s3, sp, 0x2c | s3 = sp + 0x2c;
0x00010e00 move a0, s3 | a0 = s3;
0x00010e04 jalr t9 | t9 ();
0x00010e08 lw gp, 0x18(sp) | gp = *(var_18h);
0x00010e0c addiu fp, sp, 0x24 | fp = sp + 0x24;
0x00010e10 addiu s7, sp, 0x20 | s7 = sp + 0x20;
0x00010e14 lw s1, -0x7fd8(gp) | s1 = *(gp);
| /* str.parameters */
0x00010e18 addiu s1, s1, 0x63cc | s1 += 0x63cc;
0x00010e1c b 0x10e3c |
| while (v0 != 0) {
0x00010e20 lw t9, -0x7950(gp) | t9 = sym.imp.g_key_file_set_string;
0x00010e24 lw a3, 0x24(sp) | a3 = *(var_24h);
0x00010e28 lw a2, 0x20(sp) | a2 = *(var_20h);
0x00010e2c move a1, s1 | a1 = s1;
0x00010e30 move a0, s0 | a0 = s0;
0x00010e34 jalr t9 | t9 ();
0x00010e38 lw gp, 0x18(sp) | gp = *(var_18h);
0x00010e3c lw t9, -0x7a74(gp) | t9 = sym.imp.g_hash_table_iter_next;
0x00010e40 move a2, fp | a2 = fp;
0x00010e44 move a1, s7 | a1 = s7;
0x00010e48 move a0, s3 | a0 = s3;
0x00010e4c jalr t9 | t9 ();
0x00010e50 lw gp, 0x18(sp) | gp = *(var_18h);
0x00010e54 bnez v0, 0x10e20 |
| }
| label_5:
0x00010e58 lw t9, -0x7aac(gp) | t9 = sym.imp.g_key_file_to_data;
0x00010e5c move a2, s4 | a2 = s4;
0x00010e60 addiu a1, sp, 0x28 | a1 = sp + 0x28;
0x00010e64 move a0, s0 | a0 = s0;
0x00010e68 jalr t9 | t9 ();
0x00010e6c move s3, v0 | s3 = v0;
0x00010e70 lw gp, 0x18(sp) | gp = *(var_18h);
| if (v0 != 0) {
0x00010e74 beqz v0, 0x10ee4 |
0x00010e78 lw t9, -0x792c(gp) | t9 = sym.imp.g_strdup;
0x00010e7c move a0, v0 | a0 = v0;
0x00010e80 jalr t9 | t9 ();
0x00010e84 lw gp, 0x18(sp) | gp = *(var_18h);
0x00010e88 sw v0, (s6) | *(s6) = v0;
0x00010e8c lw v0, 0x28(sp) | v0 = *(var_28h_3);
0x00010e90 addiu s1, zero, 1 | s1 = 1;
0x00010e94 sw v0, (s5) | *(s5) = v0;
0x00010e98 b 0x10d18 | goto label_0;
| label_2:
0x00010e9c lw t9, -0x7c14(gp) | t9 = sym.imp.ae_error_quark;
0x00010ea0 move s3, zero | s3 = 0;
0x00010ea4 jalr t9 | t9 ();
0x00010ea8 lw gp, 0x18(sp) | gp = *(var_18h);
0x00010eac lw a0, 0xc(s1) | a0 = *((s1 + 3));
0x00010eb0 lw v1, 0x10(s1) | v1 = *((s1 + 4));
0x00010eb4 lw a3, -0x7fd8(gp) | a3 = *(gp);
0x00010eb8 lw t9, -0x7b10(gp) | t9 = sym.imp.g_set_error;
0x00010ebc sw a0, 0x14(sp) | *(var_14h) = a0;
0x00010ec0 sw v1, 0x10(sp) | *(var_10h) = v1;
| /* str.Failed_to_serialize_configuration__s_to_path__s */
0x00010ec4 addiu a3, a3, 0x6e20 | a3 += 0x6e20;
0x00010ec8 addiu a2, zero, 4 | a2 = 4;
0x00010ecc move a1, v0 | a1 = v0;
0x00010ed0 move a0, s4 | a0 = s4;
0x00010ed4 jalr t9 | t9 ();
0x00010ed8 move s1, zero | s1 = 0;
0x00010edc lw gp, 0x18(sp) | gp = *(var_18h);
0x00010ee0 b 0x10d18 | goto label_0;
| }
0x00010ee4 move s1, zero | s1 = 0;
0x00010ee8 b 0x10d18 | goto label_0;
| label_4:
0x00010eec lw a0, -0x7fd8(gp) | a0 = *(gp);
0x00010ef0 lw t9, -0x792c(gp) | t9 = sym.imp.g_strdup;
0x00010ef4 addiu a0, a0, 0x6dd0 | a0 += 0x6dd0;
0x00010ef8 jalr t9 | t9 ();
0x00010efc move a3, v0 | a3 = v0;
0x00010f00 lw gp, 0x18(sp) | gp = *(var_18h);
0x00010f04 sw v0, 0x14(s1) | *((s1 + 5)) = v0;
0x00010f08 b 0x10da4 | goto label_1;
| label_3:
0x00010f0c lw t9, -0x7ba8(gp) | t9 = sym.imp.__stack_chk_fail;
0x00010f10 jalr t9 | t9 ();
0x00010f14 nop |
| }
; assembly | /* r2dec pseudo code output */
| /* /logs/firmware/unblob_extracted/firmware_extract/4325012-58052244.squashfs_v4_le_extract/usr/bin/actionengined @ 0x10f18 */
| #include <stdint.h>
|
; (fcn) sym.action_configuration_serialize () | void action_configuration_serialize () {
0x00010f18 lui gp, 3 |
0x00010f1c addiu gp, gp, 0x3228 |
0x00010f20 addu gp, gp, t9 | gp += t9;
0x00010f24 addiu sp, sp, -0x40 |
0x00010f28 lw t9, -0x7e4c(gp) | t9 = sym.action_configuration_serialize_to_data;
0x00010f2c sw s0, 0x30(sp) | *(var_30h) = s0;
0x00010f30 lw s0, -0x7b1c(gp) | s0 = *((gp - 7879));
0x00010f34 sw gp, 0x18(sp) | *(var_18h_2) = gp;
0x00010f38 sw s2, 0x38(sp) | *(var_38h) = s2;
0x00010f3c lw v0, (s0) | v0 = *(s0);
0x00010f40 sw s1, 0x34(sp) | *(var_34h) = s1;
0x00010f44 move a3, a1 | a3 = a1;
0x00010f48 sw ra, 0x3c(sp) | *(var_3ch) = ra;
0x00010f4c move s1, a1 | s1 = a1;
0x00010f50 addiu a2, sp, 0x28 | a2 = sp + 0x28;
0x00010f54 addiu a1, sp, 0x20 | a1 = sp + 0x20;
0x00010f58 sw v0, 0x2c(sp) | *(var_2ch) = v0;
0x00010f5c sw zero, 0x20(sp) | *(var_20h_2) = 0;
0x00010f60 sw zero, 0x24(sp) | *(var_24h_2) = 0;
0x00010f64 sw zero, 0x28(sp) | *(var_28h) = 0;
0x00010f68 move s2, a0 | s2 = a0;
0x00010f6c bal 0x10c74 | sym_action_configuration_serialize_to_data ();
0x00010f70 lw gp, 0x18(sp) | gp = *(var_18h_2);
0x00010f74 bnez v0, 0x10fc4 |
| while (v0 == 0) {
| label_0:
0x00010f78 move s1, zero | s1 = 0;
| label_1:
0x00010f7c lw t9, -0x7864(gp) | t9 = *((gp - 7705));
0x00010f80 lw a0, 0x24(sp) | a0 = *(var_24h_2);
0x00010f84 jalr t9 | t9 ();
0x00010f88 lw gp, 0x18(sp) | gp = *(var_18h_2);
0x00010f8c lw t9, -0x7864(gp) | t9 = *((gp - 7705));
0x00010f90 lw a0, 0x20(sp) | a0 = *(var_20h_2);
0x00010f94 jalr t9 | t9 ();
0x00010f98 lw a0, 0x2c(sp) | a0 = *(var_2ch);
0x00010f9c lw v1, (s0) | v1 = *(s0);
0x00010fa0 lw gp, 0x18(sp) | gp = *(var_18h_2);
0x00010fa4 move v0, s1 | v0 = s1;
| if (a0 != v1) {
0x00010fa8 bne a0, v1, 0x11028 | goto label_2;
| }
0x00010fac lw ra, 0x3c(sp) | ra = *(var_3ch);
0x00010fb0 lw s2, 0x38(sp) | s2 = *(var_38h);
0x00010fb4 lw s1, 0x34(sp) | s1 = *(var_34h);
0x00010fb8 lw s0, 0x30(sp) | s0 = *(var_30h);
0x00010fbc addiu sp, sp, 0x40 |
0x00010fc0 jr ra | return v0;
0x00010fc4 lw a2, -0x7fd8(gp) | a2 = *(gp);
0x00010fc8 lw t9, -0x7e9c(gp) | t9 = sym.create_file_path;
0x00010fcc lw a1, 0xc(s2) | a1 = *((s2 + 3));
0x00010fd0 lw a0, 0x10(s2) | a0 = *((s2 + 4));
0x00010fd4 addiu v0, sp, 0x24 | v0 = sp + 0x24;
0x00010fd8 sw s1, 0x14(sp) | *(var_14h_2) = s1;
0x00010fdc sw v0, 0x10(sp) | *(var_10h_2) = v0;
0x00010fe0 addiu a3, zero, 1 | a3 = 1;
| /* str.conf */
0x00010fe4 addiu a2, a2, 0x6ec4 | a2 += 0x6ec4;
0x00010fe8 bal 0x11b54 | sym_create_file_path ();
0x00010fec lw gp, 0x18(sp) | gp = *(var_18h_2);
0x00010ff0 beqz v0, 0x10f78 |
| }
0x00010ff4 lw t9, -0x7c08(gp) | t9 = sym.imp.g_file_set_contents;
0x00010ff8 lw a2, 0x28(sp) | a2 = *(var_28h);
0x00010ffc lw a1, 0x20(sp) | a1 = *(var_20h_2);
0x00011000 lw a0, 0x24(sp) | a0 = *(var_24h_2);
0x00011004 move a3, s1 | a3 = s1;
0x00011008 jalr t9 | t9 ();
0x0001100c lw gp, 0x18(sp) | gp = *(var_18h_2);
| if (v0 == 0) {
0x00011010 beqz v0, 0x10f78 | goto label_0;
| }
0x00011014 lw t9, -0x7e48(gp) | t9 = sym.sync_filesystem
0x00011018 addiu s1, zero, 1 | s1 = 1;
0x0001101c bal 0x11a20 | sym_sync_filesystem ()
0x00011020 lw gp, 0x18(sp) | gp = *(var_18h_2);
0x00011024 b 0x10f7c | goto label_1;
| label_2:
0x00011028 lw t9, -0x7ba8(gp) | t9 = sym.imp.__stack_chk_fail;
0x0001102c jalr t9 | t9 ();
0x00011030 nop |
| }
; assembly | /* r2dec pseudo code output */
| /* /logs/firmware/unblob_extracted/firmware_extract/4325012-58052244.squashfs_v4_le_extract/usr/bin/actionengined @ 0x1a540 */
| #include <stdint.h>
|
; (fcn) sym.action_rule_delete () | void action_rule_delete () {
0x0001a540 lui gp, 3 |
0x0001a544 addiu gp, gp, -0x6400 |
0x0001a548 addu gp, gp, t9 | gp += t9;
0x0001a54c addiu sp, sp, -0x50 |
0x0001a550 lw t9, -0x7e9c(gp) | t9 = sym.create_file_path;
0x0001a554 sw s6, 0x40(sp) | *(var_40h) = s6;
0x0001a558 lw s6, -0x7b1c(gp) | s6 = *((gp - 7879));
0x0001a55c sw s0, 0x28(sp) | *(var_28h) = s0;
0x0001a560 lw s0, -0x7fd8(gp) | s0 = *(gp);
0x0001a564 lw v0, (s6) | v0 = *(s6);
0x0001a568 sw s5, 0x3c(sp) | *(var_3ch_2) = s5;
0x0001a56c sw s2, 0x30(sp) | *(var_30h_2) = s2;
0x0001a570 sw s1, 0x2c(sp) | *(var_2ch) = s1;
0x0001a574 move s5, a1 | s5 = a1;
0x0001a578 move s1, a0 | s1 = a0;
0x0001a57c lw a1, 0xc(a0) | a1 = *((a0 + 3));
0x0001a580 addiu s2, sp, 0x20 | s2 = sp + 0x20;
0x0001a584 lw a0, 0x10(a0) | a0 = *((a0 + 4));
0x0001a588 sw gp, 0x18(sp) | *(var_18h_2) = gp;
0x0001a58c sw ra, 0x4c(sp) | *(var_4ch) = ra;
0x0001a590 sw fp, 0x48(sp) | *(var_48h) = fp;
0x0001a594 sw s7, 0x44(sp) | *(var_44h) = s7;
0x0001a598 sw s4, 0x38(sp) | *(var_38h_2) = s4;
0x0001a59c sw s3, 0x34(sp) | *(var_34h_2) = s3;
0x0001a5a0 sw s5, 0x14(sp) | *(var_14h) = s5;
0x0001a5a4 sw s2, 0x10(sp) | *(var_10h) = s2;
0x0001a5a8 move a3, zero | a3 = 0;
| /* str.conf */
0x0001a5ac addiu a2, s0, 0x6ec4 | a2 = s0 + 0x6ec4;
0x0001a5b0 sw v0, 0x24(sp) | *(var_24h_2) = v0;
0x0001a5b4 sw zero, 0x20(sp) | *(var_20h) = 0;
0x0001a5b8 bal 0x11b54 | sym_create_file_path ();
0x0001a5bc nop |
0x0001a5c0 lw gp, 0x18(sp) | gp = *(var_18h_2);
| if (v0 != 0) {
0x0001a5c4 bnez v0, 0x1a65c | goto label_5;
| }
| label_0:
0x0001a5c8 lw a0, 0x20(sp) | a0 = *(var_20h);
0x0001a5cc lw t9, -0x7864(gp) | t9 = *((gp - 7705));
| if (a0 == 0) {
0x0001a5d0 beqz a0, 0x1a654 | goto label_6;
| }
0x0001a5d4 move s0, zero | s0 = 0;
0x0001a5d8 jalr t9 | t9 ();
0x0001a5dc lw gp, 0x18(sp) | gp = *(var_18h_2);
| do {
| label_2:
0x0001a5e0 lw v1, (s5) | v1 = *(s5);
0x0001a5e4 lw a3, -0x7fd8(gp) | a3 = *(gp);
| if (v1 != 0) {
0x0001a5e8 beqz v1, 0x1a614 |
0x0001a5ec lw a2, -0x7fd8(gp) | a2 = *(gp);
0x0001a5f0 lw v0, 8(v1) | v0 = *((v1 + 2));
0x0001a5f4 lw t9, -0x7cbc(gp) | t9 = sym.imp.g_log;
0x0001a5f8 sw v0, 0x10(sp) | *(var_10h) = v0;
0x0001a5fc addiu a3, a3, 0x6dd0 | a3 += 0x6dd0;
| /* str._s_s */
0x0001a600 addiu a2, a2, 0x5594 | a2 += 0x5594;
0x0001a604 addiu a1, zero, 0x10 | a1 = 0x10;
0x0001a608 move a0, zero | a0 = 0;
0x0001a60c jalr t9 | t9 ();
0x0001a610 lw gp, 0x18(sp) | gp = *(var_18h_2);
| }
0x0001a614 lw a0, 0x24(sp) | a0 = *(var_24h_2);
0x0001a618 lw v1, (s6) | v1 = *(s6);
0x0001a61c move v0, s0 | v0 = s0;
| if (a0 != v1) {
0x0001a620 bne a0, v1, 0x1a9c0 | goto label_7;
| }
0x0001a624 lw ra, 0x4c(sp) | ra = *(var_4ch);
0x0001a628 lw fp, 0x48(sp) | fp = *(var_48h);
0x0001a62c lw s7, 0x44(sp) | s7 = *(var_44h);
0x0001a630 lw s6, 0x40(sp) | s6 = *(var_40h);
0x0001a634 lw s5, 0x3c(sp) | s5 = *(var_3ch_2);
0x0001a638 lw s4, 0x38(sp) | s4 = *(var_38h_2);
0x0001a63c lw s3, 0x34(sp) | s3 = *(var_34h_2);
0x0001a640 lw s2, 0x30(sp) | s2 = *(var_30h_2);
0x0001a644 lw s1, 0x2c(sp) | s1 = *(var_2ch);
0x0001a648 lw s0, 0x28(sp) | s0 = *(var_28h);
0x0001a64c addiu sp, sp, 0x50 |
0x0001a650 jr ra | return v1;
| label_6:
0x0001a654 move s0, zero | s0 = 0;
0x0001a658 b 0x1a5e0 |
| } while (1);
| label_5:
0x0001a65c lw t9, -0x7b7c(gp) | t9 = sym.imp.remove;
0x0001a660 lw a0, 0x20(sp) | a0 = *(var_20h);
0x0001a664 jalr t9 | t9 ();
0x0001a668 lw gp, 0x18(sp) | gp = *(var_18h_2);
| if (v0 == 0) {
0x0001a66c beqz v0, 0x1a6d8 | goto label_8;
| }
0x0001a670 lw t9, -0x7ae8(gp) | t9 = sym.imp.g_ascii_strtoull;
0x0001a674 lw a0, 0x10(s1) | a0 = *((s1 + 4));
0x0001a678 addiu a2, zero, 0xa | a2 = 0xa;
0x0001a67c move a1, zero | a1 = 0;
0x0001a680 jalr t9 | t9 ();
0x0001a684 lw gp, 0x18(sp) | gp = *(var_18h_2);
0x0001a688 lw a0, 0x20(sp) | a0 = *(var_20h);
0x0001a68c lw t9, -0x7864(gp) | t9 = *((gp - 7705));
0x0001a690 move s3, v0 | s3 = v0;
0x0001a694 jalr t9 | t9 ();
0x0001a698 lw gp, 0x18(sp) | gp = *(var_18h_2);
0x0001a69c lw a1, 0xc(s1) | a1 = *((s1 + 3));
0x0001a6a0 move a3, zero | a3 = 0;
0x0001a6a4 lw t9, -0x7e38(gp) | t9 = sym.create_file_path_uint;
0x0001a6a8 sw s5, 0x14(sp) | *(var_14h) = s5;
0x0001a6ac sw s2, 0x10(sp) | *(var_10h) = s2;
| /* str.conf */
0x0001a6b0 addiu a2, s0, 0x6ec4 | a2 = s0 + 0x6ec4;
0x0001a6b4 move a0, s3 | a0 = s3;
0x0001a6b8 bal 0x11d48 | sym_create_file_path_uint ();
0x0001a6bc lw gp, 0x18(sp) | gp = *(var_18h_2);
| if (v0 == 0) {
0x0001a6c0 beqz v0, 0x1a5c8 | goto label_0;
| }
0x0001a6c4 lw t9, -0x7b7c(gp) | t9 = sym.imp.remove;
0x0001a6c8 lw a0, 0x20(sp) | a0 = *(var_20h);
0x0001a6cc jalr t9 | t9 ();
0x0001a6d0 lw gp, 0x18(sp) | gp = *(var_18h_2);
| if (v0 != 0) {
0x0001a6d4 bnez v0, 0x1a97c | goto label_9;
| }
| label_8:
0x0001a6d8 lw t9, -0x7864(gp) | t9 = *((gp - 7705));
0x0001a6dc lw a0, 0x20(sp) | a0 = *(var_20h);
0x0001a6e0 jalr t9 | t9 ();
0x0001a6e4 lw gp, 0x18(sp) | gp = *(var_18h_2);
0x0001a6e8 lw a2, 0x10(s1) | a2 = *((s1 + 4));
0x0001a6ec lw a1, 0xc(s1) | a1 = *((s1 + 3));
0x0001a6f0 lw a0, -0x7fd0(gp) | a0 = *((gp - 8180));
0x0001a6f4 lw t9, -0x7a38(gp) | t9 = sym.imp.g_strdup_printf;
| /* str._s__s_event.xml */
0x0001a6f8 addiu a0, a0, -0x656c | a0 += -aav.0x0000656c;
0x0001a6fc jalr t9 | t9 ();
0x0001a700 lw gp, 0x18(sp) | gp = *(var_18h_2);
0x0001a704 move a0, v0 | a0 = v0;
0x0001a708 lw t9, -0x7c68(gp) | t9 = sym.imp.g_file_new_for_path;
0x0001a70c sw v0, 0x20(sp) | *(var_20h) = v0;
0x0001a710 jalr t9 | t9 ();
0x0001a714 lw gp, 0x18(sp) | gp = *(var_18h_2);
0x0001a718 move a1, zero | a1 = 0;
0x0001a71c move a0, v0 | a0 = v0;
0x0001a720 lw t9, -0x7b34(gp) | t9 = sym.imp.g_file_query_exists;
0x0001a724 move s0, v0 | s0 = v0;
0x0001a728 jalr t9 | t9 ();
0x0001a72c lw gp, 0x18(sp) | gp = *(var_18h_2);
| if (v0 == 0) {
0x0001a730 beqz v0, 0x1a8e0 | goto label_10;
| }
0x0001a734 lw t9, -0x7b7c(gp) | t9 = sym.imp.remove;
| label_4:
0x0001a738 lw a0, 0x20(sp) | a0 = *(var_20h);
0x0001a73c jalr t9 | t9 ();
0x0001a740 lw gp, 0x18(sp) | gp = *(var_18h_2);
| if (v0 != 0) {
0x0001a744 bnez v0, 0x1a94c | goto label_11;
| }
| label_3:
0x0001a748 lw t9, -0x7864(gp) | t9 = *((gp - 7705));
0x0001a74c lw a0, 0x20(sp) | a0 = *(var_20h);
0x0001a750 move s2, zero | s2 = 0;
0x0001a754 jalr t9 | t9 ();
0x0001a758 lw gp, 0x18(sp) | gp = *(var_18h_2);
0x0001a75c lw t9, -0x7918(gp) | t9 = *((gp - 7750));
0x0001a760 move a0, s0 | a0 = s0;
0x0001a764 jalr t9 | t9 ();
0x0001a768 lw gp, 0x18(sp) | gp = *(var_18h_2);
0x0001a76c lw s4, -0x7eb0(gp) | s4 = *(gp);
0x0001a770 lw s3, -0x7fd0(gp) | s3 = *((gp - 8180));
0x0001a774 lw fp, -0x7fd8(gp) | fp = *(gp);
0x0001a778 lw s7, -0x7fd0(gp) | s7 = *((gp - 8180));
| /* fcn.00015eec */
0x0001a77c addiu s4, s4, 0x5eec | s4 += 0x5eec;
| /* str._s__s_property__d.xml */
0x0001a780 addiu s3, s3, -0x644c | s3 += -0x644c;
0x0001a784 addiu fp, fp, 0x6dd0 | fp += 0x6dd0;
| /* str._sFailed_to_remove_file:__s */
0x0001a788 addiu s7, s7, -0x6120 | s7 += -0x6120;
0x0001a78c b 0x1a7b4 |
| while (v0 == 0) {
| label_1:
0x0001a790 lw t9, -0x7864(gp) | t9 = *((gp - 7705));
0x0001a794 lw a0, 0x20(sp) | a0 = *(var_20h);
0x0001a798 addiu s2, s2, 1 | s2++;
0x0001a79c jalr t9 | t9 ();
0x0001a7a0 lw gp, 0x18(sp) | gp = *(var_18h_2);
0x0001a7a4 lw t9, -0x7918(gp) | t9 = *((gp - 7750));
0x0001a7a8 move a0, s0 | a0 = s0;
0x0001a7ac jalr t9 | t9 ();
0x0001a7b0 lw gp, 0x18(sp) | gp = *(var_18h_2);
0x0001a7b4 lw t9, -0x7a38(gp) | t9 = sym.imp.g_strdup_printf;
0x0001a7b8 lw a2, 0x10(s1) | a2 = *((s1 + 4));
0x0001a7bc lw a1, 0xc(s1) | a1 = *((s1 + 3));
0x0001a7c0 move a3, s2 | a3 = s2;
0x0001a7c4 move a0, s3 | a0 = s3;
0x0001a7c8 jalr t9 | t9 ();
0x0001a7cc lw gp, 0x18(sp) | gp = *(var_18h_2);
0x0001a7d0 move a0, v0 | a0 = v0;
0x0001a7d4 lw t9, -0x7c68(gp) | t9 = sym.imp.g_file_new_for_path;
0x0001a7d8 sw v0, 0x20(sp) | *(var_20h) = v0;
0x0001a7dc jalr t9 | t9 ();
0x0001a7e0 lw gp, 0x18(sp) | gp = *(var_18h_2);
0x0001a7e4 move a1, zero | a1 = 0;
0x0001a7e8 move a0, v0 | a0 = v0;
0x0001a7ec lw t9, -0x7b34(gp) | t9 = sym.imp.g_file_query_exists;
0x0001a7f0 move s0, v0 | s0 = v0;
0x0001a7f4 jalr t9 | t9 ();
0x0001a7f8 lw gp, 0x18(sp) | gp = *(var_18h_2);
| if (v0 == 0) {
0x0001a7fc bnez v0, 0x1a860 |
0x0001a800 lw t9, -0x7918(gp) | t9 = *((gp - 7750));
0x0001a804 move a0, s0 | a0 = s0;
0x0001a808 jalr t9 | t9 ();
0x0001a80c lw gp, 0x18(sp) | gp = *(var_18h_2);
0x0001a810 lw t9, -0x7864(gp) | t9 = *((gp - 7705));
0x0001a814 lw a0, 0x20(sp) | a0 = *(var_20h);
0x0001a818 jalr t9 | t9 ();
0x0001a81c move a1, s2 | a1 = s2;
0x0001a820 move t9, s4 | t9 = s4;
0x0001a824 move a0, s1 | a0 = s1;
0x0001a828 bal 0x15eec | fcn_00015eec ();
0x0001a82c lw gp, 0x18(sp) | gp = *(var_18h_2);
0x0001a830 move a0, v0 | a0 = v0;
0x0001a834 lw t9, -0x7c68(gp) | t9 = sym.imp.g_file_new_for_path;
0x0001a838 sw v0, 0x20(sp) | *(var_20h) = v0;
0x0001a83c jalr t9 | t9 ();
0x0001a840 lw gp, 0x18(sp) | gp = *(var_18h_2);
0x0001a844 move a1, zero | a1 = 0;
0x0001a848 move a0, v0 | a0 = v0;
0x0001a84c lw t9, -0x7b34(gp) | t9 = sym.imp.g_file_query_exists;
0x0001a850 move s0, v0 | s0 = v0;
0x0001a854 jalr t9 | t9 ();
0x0001a858 lw gp, 0x18(sp) | gp = *(var_18h_2);
| if (v0 == 0) {
0x0001a85c beqz v0, 0x1a89c | goto label_12;
| }
| }
0x0001a860 lw t9, -0x7b7c(gp) | t9 = sym.imp.remove;
0x0001a864 lw a0, 0x20(sp) | a0 = *(var_20h);
0x0001a868 jalr t9 | t9 ();
0x0001a86c lw gp, 0x18(sp) | gp = *(var_18h_2);
0x0001a870 beqz v0, 0x1a790 |
| }
0x0001a874 lw v0, 0x20(sp) | v0 = *(var_20h);
0x0001a878 lw t9, -0x7cbc(gp) | t9 = sym.imp.g_log;
0x0001a87c sw v0, 0x10(sp) | *(var_10h) = v0;
0x0001a880 move a3, fp | a3 = fp;
0x0001a884 move a2, s7 | a2 = s7;
0x0001a888 addiu a1, zero, 0x10 | a1 = 0x10;
0x0001a88c move a0, zero | a0 = 0;
0x0001a890 jalr t9 | t9 ();
0x0001a894 lw gp, 0x18(sp) | gp = *(var_18h_2);
0x0001a898 b 0x1a790 | goto label_1;
| label_12:
0x0001a89c lw t9, -0x7e48(gp) | t9 = sym.sync_filesystem
0x0001a8a0 bal 0x11a20 | sym_sync_filesystem ()
0x0001a8a4 nop |
0x0001a8a8 lw a0, 0x20(sp) | a0 = *(var_20h);
0x0001a8ac lw gp, 0x18(sp) | gp = *(var_18h_2);
| if (a0 != 0) {
0x0001a8b0 beqz a0, 0x1a8c4 |
0x0001a8b4 lw t9, -0x7864(gp) | t9 = *((gp - 7705));
0x0001a8b8 jalr t9 | t9 ();
0x0001a8bc nop |
0x0001a8c0 lw gp, 0x18(sp) | gp = *(var_18h_2);
| }
0x0001a8c4 lw t9, -0x7918(gp) | t9 = *((gp - 7750));
| if (s0 == 0) {
0x0001a8c8 beqz s0, 0x1a9b8 | goto label_13;
| }
0x0001a8cc move a0, s0 | a0 = s0;
0x0001a8d0 jalr t9 | t9 ();
0x0001a8d4 addiu s0, zero, 1 | s0 = 1;
0x0001a8d8 lw gp, 0x18(sp) | gp = *(var_18h_2);
0x0001a8dc b 0x1a5e0 | goto label_2;
| label_10:
0x0001a8e0 lw t9, -0x7918(gp) | t9 = *((gp - 7750));
0x0001a8e4 move a0, s0 | a0 = s0;
0x0001a8e8 jalr t9 | t9 ();
0x0001a8ec lw gp, 0x18(sp) | gp = *(var_18h_2);
0x0001a8f0 lw t9, -0x7864(gp) | t9 = *((gp - 7705));
0x0001a8f4 lw a0, 0x20(sp) | a0 = *(var_20h);
0x0001a8f8 jalr t9 | t9 ();
0x0001a8fc lw gp, 0x18(sp) | gp = *(var_18h_2);
0x0001a900 lw t9, -0x7eb0(gp) | t9 = *(gp);
| /* fcn.00015e7c */
0x0001a904 addiu t9, t9, 0x5e7c | t9 += 0x5e7c;
0x0001a908 move a0, s1 | a0 = s1;
0x0001a90c bal 0x15e7c | fcn_00015e7c ();
0x0001a910 lw gp, 0x18(sp) | gp = *(var_18h_2);
0x0001a914 move a0, v0 | a0 = v0;
0x0001a918 lw t9, -0x7c68(gp) | t9 = sym.imp.g_file_new_for_path;
0x0001a91c sw v0, 0x20(sp) | *(var_20h) = v0;
0x0001a920 jalr t9 | t9 ();
0x0001a924 lw gp, 0x18(sp) | gp = *(var_18h_2);
0x0001a928 move a1, zero | a1 = 0;
0x0001a92c move a0, v0 | a0 = v0;
0x0001a930 lw t9, -0x7b34(gp) | t9 = sym.imp.g_file_query_exists;
0x0001a934 move s0, v0 | s0 = v0;
0x0001a938 jalr t9 | t9 ();
0x0001a93c lw gp, 0x18(sp) | gp = *(var_18h_2);
| if (v0 == 0) {
0x0001a940 beqz v0, 0x1a748 | goto label_3;
| }
0x0001a944 lw t9, -0x7b7c(gp) | t9 = sym.imp.remove;
0x0001a948 b 0x1a738 | goto label_4;
| label_11:
0x0001a94c lw a3, -0x7fd8(gp) | a3 = *(gp);
0x0001a950 lw a2, -0x7fd0(gp) | a2 = *((gp - 8180));
0x0001a954 lw v0, 0x20(sp) | v0 = *(var_20h);
0x0001a958 lw t9, -0x7cbc(gp) | t9 = sym.imp.g_log;
0x0001a95c sw v0, 0x10(sp) | *(var_10h) = v0;
0x0001a960 addiu a3, a3, 0x6dd0 | a3 += 0x6dd0;
| /* str._sFailed_to_remove_file:__s */
0x0001a964 addiu a2, a2, -0x6120 | a2 += -0x6120;
0x0001a968 addiu a1, zero, 0x10 | a1 = 0x10;
0x0001a96c move a0, zero | a0 = 0;
0x0001a970 jalr t9 | t9 ();
0x0001a974 lw gp, 0x18(sp) | gp = *(var_18h_2);
0x0001a978 b 0x1a748 | goto label_3;
| label_9:
0x0001a97c lw t9, -0x7c14(gp) | t9 = sym.imp.ae_error_quark;
0x0001a980 jalr t9 | t9 ();
0x0001a984 nop |
0x0001a988 lw gp, 0x18(sp) | gp = *(var_18h_2);
0x0001a98c lw v1, 0x20(sp) | v1 = *(var_20h);
0x0001a990 addiu a2, zero, 1 | a2 = 1;
0x0001a994 lw a3, -0x7fd0(gp) | a3 = *((gp - 8180));
0x0001a998 lw t9, -0x7b10(gp) | t9 = sym.imp.g_set_error;
0x0001a99c sw v1, 0x10(sp) | *(var_10h) = v1;
| /* str.Rule_configuration_file_could_not_be_deleted:__s */
0x0001a9a0 addiu a3, a3, -0x6154 | a3 += -0x6154;
0x0001a9a4 move a1, v0 | a1 = v0;
0x0001a9a8 move a0, s5 | a0 = s5;
0x0001a9ac jalr t9 | t9 ();
0x0001a9b0 lw gp, 0x18(sp) | gp = *(var_18h_2);
0x0001a9b4 b 0x1a5c8 | goto label_0;
| label_13:
0x0001a9b8 addiu s0, zero, 1 | s0 = 1;
0x0001a9bc b 0x1a5e0 | goto label_2;
| label_7:
0x0001a9c0 lw t9, -0x7ba8(gp) | t9 = sym.imp.__stack_chk_fail;
0x0001a9c4 jalr t9 | t9 ();
0x0001a9c8 nop |
| }
; assembly | /* r2dec pseudo code output */
| /* /logs/firmware/unblob_extracted/firmware_extract/4325012-58052244.squashfs_v4_le_extract/usr/bin/actionengined @ 0x18320 */
| #include <stdint.h>
|
; (fcn) sym.action_rule_serialize_event_to_data () | void action_rule_serialize_event_to_data () {
0x00018320 lui gp, 3 |
0x00018324 addiu gp, gp, -0x41e0 |
0x00018328 addu gp, gp, t9 | gp += t9;
0x0001832c addiu sp, sp, -0x28 |
0x00018330 lw t9, -0x7a48(gp) | t9 = sym.imp.subscribe_expression_serialize_xml;
0x00018334 move a0, a1 | a0 = a1;
0x00018338 sw gp, 0x10(sp) | *(var_10h) = gp;
0x0001833c sw s1, 0x20(sp) | *(var_20h) = s1;
0x00018340 sw s0, 0x1c(sp) | *(var_1ch) = s0;
0x00018344 sw ra, 0x24(sp) | *(var_24h) = ra;
0x00018348 move s1, a2 | s1 = a2;
0x0001834c move s0, a3 | s0 = a3;
0x00018350 jalr t9 | t9 ();
0x00018354 lw gp, 0x10(sp) | gp = *(var_10h);
| if (v0 != 0) {
0x00018358 beqz v0, 0x1838c |
0x0001835c lw t9, -0x7bcc(gp) | t9 = sym.imp.g_utf8_strlen;
0x00018360 sw v0, (s1) | *(s1) = v0;
0x00018364 addiu a1, zero, 0x400 | a1 = 0x400;
0x00018368 move a0, v0 | a0 = v0;
0x0001836c jalr t9 | t9 ();
0x00018370 lw ra, 0x24(sp) | ra = *(var_24h);
0x00018374 sw v0, (s0) | *(s0) = v0;
0x00018378 lw s1, 0x20(sp) | s1 = *(var_20h);
0x0001837c lw s0, 0x1c(sp) | s0 = *(var_1ch);
0x00018380 addiu v0, zero, 1 | v0 = 1;
0x00018384 addiu sp, sp, 0x28 |
0x00018388 jr ra | return v0;
| }
0x0001838c lw ra, 0x24(sp) | ra = *(var_24h);
0x00018390 lw s1, 0x20(sp) | s1 = *(var_20h);
0x00018394 lw s0, 0x1c(sp) | s0 = *(var_1ch);
0x00018398 move v0, zero | v0 = 0;
0x0001839c addiu sp, sp, 0x28 |
0x000183a0 jr ra | return v0;
| }
; assembly | /* r2dec pseudo code output */
| /* /logs/firmware/unblob_extracted/firmware_extract/4325012-58052244.squashfs_v4_le_extract/usr/bin/actionengined @ 0x183a4 */
| #include <stdint.h>
|
; (fcn) sym.action_rule_serialize_property_event_to_data () | void action_rule_serialize_property_event_to_data () {
0x000183a4 lui gp, 3 |
0x000183a8 addiu gp, gp, -0x4264 |
0x000183ac addu gp, gp, t9 | gp += t9;
0x000183b0 addiu sp, sp, -0x28 |
0x000183b4 lw t9, -0x78bc(gp) | t9 = sym.imp.property_state_serialize_xml;
0x000183b8 move a0, a1 | a0 = a1;
0x000183bc sw gp, 0x10(sp) | *(var_10h) = gp;
0x000183c0 sw s1, 0x20(sp) | *(var_20h) = s1;
0x000183c4 sw s0, 0x1c(sp) | *(var_1ch) = s0;
0x000183c8 sw ra, 0x24(sp) | *(var_24h) = ra;
0x000183cc move s1, a2 | s1 = a2;
0x000183d0 move s0, a3 | s0 = a3;
0x000183d4 jalr t9 | t9 ();
0x000183d8 lw gp, 0x10(sp) | gp = *(var_10h);
| if (v0 != 0) {
0x000183dc beqz v0, 0x18410 |
0x000183e0 lw t9, -0x7bcc(gp) | t9 = sym.imp.g_utf8_strlen;
0x000183e4 sw v0, (s1) | *(s1) = v0;
0x000183e8 addiu a1, zero, 0x400 | a1 = 0x400;
0x000183ec move a0, v0 | a0 = v0;
0x000183f0 jalr t9 | t9 ();
0x000183f4 lw ra, 0x24(sp) | ra = *(var_24h);
0x000183f8 sw v0, (s0) | *(s0) = v0;
0x000183fc lw s1, 0x20(sp) | s1 = *(var_20h);
0x00018400 lw s0, 0x1c(sp) | s0 = *(var_1ch);
0x00018404 addiu v0, zero, 1 | v0 = 1;
0x00018408 addiu sp, sp, 0x28 |
0x0001840c jr ra | return v0;
| }
0x00018410 lw ra, 0x24(sp) | ra = *(var_24h);
0x00018414 lw s1, 0x20(sp) | s1 = *(var_20h);
0x00018418 lw s0, 0x1c(sp) | s0 = *(var_1ch);
0x0001841c move v0, zero | v0 = 0;
0x00018420 addiu sp, sp, 0x28 |
0x00018424 jr ra | return v0;
| }
; assembly | /* r2dec pseudo code output */
| /* /logs/firmware/unblob_extracted/firmware_extract/4325012-58052244.squashfs_v4_le_extract/usr/bin/actionengined @ 0x18428 */
| #include <stdint.h>
|
; (fcn) sym.action_rule_serialize_to_data () | void action_rule_serialize_to_data () {
0x00018428 lui gp, 3 |
0x0001842c addiu gp, gp, -0x42e8 |
0x00018430 addu gp, gp, t9 | gp += t9;
0x00018434 addiu sp, sp, -0x60 |
0x00018438 lw t9, -0x7924(gp) | t9 = sym.imp.g_key_file_new;
0x0001843c sw s2, 0x40(sp) | *(var_40h) = s2;
0x00018440 lw s2, -0x7b1c(gp) | s2 = *((gp - 7879));
0x00018444 sw gp, 0x18(sp) | *(var_18h) = gp;
0x00018448 sw s7, 0x54(sp) | *(var_54h) = s7;
0x0001844c lw v0, (s2) | v0 = *(s2);
0x00018450 sw s4, 0x48(sp) | *(var_48h) = s4;
0x00018454 sw s3, 0x44(sp) | *(var_44h) = s3;
0x00018458 sw ra, 0x5c(sp) | *(var_5ch) = ra;
0x0001845c sw fp, 0x58(sp) | *(var_58h) = fp;
0x00018460 sw s6, 0x50(sp) | *(var_50h) = s6;
0x00018464 sw s5, 0x4c(sp) | *(var_4ch) = s5;
0x00018468 sw s1, 0x3c(sp) | *(var_3ch) = s1;
0x0001846c sw s0, 0x38(sp) | *(var_38h) = s0;
0x00018470 sw a2, 0x24(sp) | *(var_24h) = a2;
0x00018474 sw v0, 0x34(sp) | *(var_34h) = v0;
0x00018478 sw zero, 0x30(sp) | *(var_30h) = 0;
0x0001847c move s3, a0 | s3 = a0;
0x00018480 move s7, a1 | s7 = a1;
0x00018484 move s4, a3 | s4 = a3;
0x00018488 jalr t9 | t9 ();
0x0001848c lw gp, 0x18(sp) | gp = *(var_18h);
| if (v0 == 0) {
0x00018490 beqz v0, 0x18798 | goto label_3;
| }
0x00018494 lw a3, -0x7fd8(gp) | a3 = *(gp);
0x00018498 lw t9, -0x7c0c(gp) | t9 = sym.imp.g_key_file_set_comment;
0x0001849c sw s4, 0x10(sp) | *(var_10h) = s4;
| /* str.This_file_has_been_automatically_generated__DO_NOT_EDIT */
0x000184a0 addiu a3, a3, 0x6e54 | a3 += 0x6e54;
0x000184a4 move a2, zero | a2 = 0;
0x000184a8 move a1, zero | a1 = 0;
0x000184ac move a0, v0 | a0 = v0;
0x000184b0 move s0, v0 | s0 = v0;
0x000184b4 jalr t9 | t9 ();
0x000184b8 lw gp, 0x18(sp) | gp = *(var_18h);
| if (v0 == 0) {
0x000184bc bnez v0, 0x18510 |
0x000184c0 lw t9, -0x7c4c(gp) | t9 = sym.imp.g_key_file_free;
0x000184c4 move a0, s0 | a0 = s0;
0x000184c8 jalr t9 | t9 ();
0x000184cc lw gp, 0x18(sp) | gp = *(var_18h);
0x000184d0 move v0, zero | v0 = 0;
| label_0:
0x000184d4 lw a0, 0x34(sp) | a0 = *(var_34h);
0x000184d8 lw v1, (s2) | v1 = *(s2);
0x000184dc lw ra, 0x5c(sp) | ra = *(var_5ch);
| if (a0 != v1) {
0x000184e0 bne a0, v1, 0x18820 | goto label_4;
| }
0x000184e4 lw fp, 0x58(sp) | fp = *(var_58h);
0x000184e8 lw s7, 0x54(sp) | s7 = *(var_54h);
0x000184ec lw s6, 0x50(sp) | s6 = *(var_50h);
0x000184f0 lw s5, 0x4c(sp) | s5 = *(var_4ch);
0x000184f4 lw s4, 0x48(sp) | s4 = *(var_48h);
0x000184f8 lw s3, 0x44(sp) | s3 = *(var_44h);
0x000184fc lw s2, 0x40(sp) | s2 = *(var_40h);
0x00018500 lw s1, 0x3c(sp) | s1 = *(var_3ch);
0x00018504 lw s0, 0x38(sp) | s0 = *(var_38h);
0x00018508 addiu sp, sp, 0x60 |
0x0001850c jr ra | return v0;
| }
0x00018510 lw s1, -0x7fd0(gp) | s1 = *((gp - 8180));
0x00018514 lw a2, -0x7fd8(gp) | a2 = *(gp);
0x00018518 lw t9, -0x7950(gp) | t9 = sym.imp.g_key_file_set_string;
0x0001851c lw a3, 0x10(s3) | a3 = *((s3 + 4));
| /* esilref: 'id' */
0x00018520 addiu a2, a2, 0x5218 | a2 += 0x5218;
| /* str.action_rule */
0x00018524 addiu a1, s1, -0x65bc | a1 = s1 + -0x65bc;
0x00018528 move a0, s0 | a0 = s0;
0x0001852c jalr t9 | t9 ();
0x00018530 lw a3, 0x14(s3) | a3 = *((s3 + 5));
0x00018534 lw gp, 0x18(sp) | gp = *(var_18h);
| if (a3 == 0) {
0x00018538 beqz a3, 0x187e0 | goto label_5;
| }
| label_1:
0x0001853c lw a2, -0x7fd8(gp) | a2 = *(gp);
0x00018540 lw t9, -0x7950(gp) | t9 = sym.imp.g_key_file_set_string;
| /* str.nice_name */
0x00018544 addiu a2, a2, 0x6ea4 | a2 += 0x6ea4;
| /* str.action_rule */
0x00018548 addiu a1, s1, -0x65bc | a1 = s1 + -0x65bc;
0x0001854c move a0, s0 | a0 = s0;
0x00018550 jalr t9 | t9 ();
0x00018554 lw gp, 0x18(sp) | gp = *(var_18h);
0x00018558 lw a3, 0x18(s3) | a3 = *((s3 + 6));
| /* str.action_rule */
0x0001855c addiu a1, s1, -0x65bc | a1 = s1 + -0x65bc;
0x00018560 lw a2, -0x7fd0(gp) | a2 = *((gp - 8180));
0x00018564 lw t9, -0x7a68(gp) | t9 = sym.imp.g_key_file_set_boolean;
| /* str.enabled */
0x00018568 addiu a2, a2, -0x65b0 | a2 += -0x65b0;
0x0001856c move a0, s0 | a0 = s0;
0x00018570 jalr t9 | t9 ();
0x00018574 lw gp, 0x18(sp) | gp = *(var_18h);
0x00018578 lw a3, 0x4c(s3) | a3 = *((s3 + 19));
| /* str.action_rule */
0x0001857c addiu a1, s1, -0x65bc | a1 = s1 + -0x65bc;
0x00018580 lw a2, -0x7fd0(gp) | a2 = *((gp - 8180));
0x00018584 lw t9, -0x7c34(gp) | t9 = sym.imp.g_key_file_set_integer;
| /* str.timeout */
0x00018588 addiu a2, a2, -0x65a8 | a2 += -0x65a8;
0x0001858c move a0, s0 | a0 = s0;
0x00018590 jalr t9 | t9 ();
0x00018594 lw gp, 0x18(sp) | gp = *(var_18h);
0x00018598 lw a3, 0x54(s3) | a3 = *((s3 + 21));
| /* str.action_rule */
0x0001859c addiu a1, s1, -0x65bc | a1 = s1 + -0x65bc;
0x000185a0 lw a2, -0x7fd0(gp) | a2 = *((gp - 8180));
0x000185a4 lw t9, -0x7c34(gp) | t9 = sym.imp.g_key_file_set_integer;
| /* str.min_time_period */
0x000185a8 addiu a2, a2, -0x65a0 | a2 += -0x65a0;
0x000185ac move a0, s0 | a0 = s0;
0x000185b0 jalr t9 | t9 ();
0x000185b4 lw gp, 0x18(sp) | gp = *(var_18h);
0x000185b8 lw a3, 0x58(s3) | a3 = *((s3 + 22));
| /* str.action_rule */
0x000185bc addiu a1, s1, -0x65bc | a1 = s1 + -0x65bc;
0x000185c0 lw a2, -0x7fd0(gp) | a2 = *((gp - 8180));
0x000185c4 lw t9, -0x7c34(gp) | t9 = sym.imp.g_key_file_set_integer;
| /* str.max_time_period */
0x000185c8 addiu a2, a2, -0x6590 | a2 += -0x6590;
0x000185cc move a0, s0 | a0 = s0;
0x000185d0 jalr t9 | t9 ();
0x000185d4 lw gp, 0x18(sp) | gp = *(var_18h);
0x000185d8 lw v0, 0x1c(s3) | v0 = *((s3 + 7));
| /* str.action_rule */
0x000185dc addiu a1, s1, -0x65bc | a1 = s1 + -0x65bc;
0x000185e0 lw a2, -0x7fd0(gp) | a2 = *((gp - 8180));
0x000185e4 lw t9, -0x7950(gp) | t9 = sym.imp.g_key_file_set_string;
0x000185e8 lw a3, 0x10(v0) | a3 = *((v0 + 4));
| /* str.primary */
0x000185ec addiu a2, a2, -0x7920 | a2 += -0x7920;
0x000185f0 move a0, s0 | a0 = s0;
0x000185f4 jalr t9 | t9 ();
0x000185f8 lw v0, 0x20(s3) | v0 = *((s3 + 8));
0x000185fc lw gp, 0x18(sp) | gp = *(var_18h);
| if (v0 != 0) {
0x00018600 beqz v0, 0x18624 |
0x00018604 lw a2, -0x7fd0(gp) | a2 = *((gp - 8180));
0x00018608 lw t9, -0x7950(gp) | t9 = sym.imp.g_key_file_set_string;
0x0001860c lw a3, 0x10(v0) | a3 = *((v0 + 4));
| /* str.secondary */
0x00018610 addiu a2, a2, -0x7918 | a2 += -0x7918;
| /* str.action_rule */
0x00018614 addiu a1, s1, -0x65bc | a1 = s1 + -0x65bc;
0x00018618 move a0, s0 | a0 = s0;
0x0001861c jalr t9 | t9 ();
0x00018620 lw gp, 0x18(sp) | gp = *(var_18h);
| }
0x00018624 lw v0, 0x3c(s3) | v0 = *((s3 + 15));
0x00018628 lw a2, -0x7fd0(gp) | a2 = *((gp - 8180));
| if (v0 != 0) {
0x0001862c beqz v0, 0x1864c |
0x00018630 lw t9, -0x7950(gp) | t9 = sym.imp.g_key_file_set_string;
0x00018634 lw a3, 0x10(s3) | a3 = *((s3 + 4));
| /* str.event */
0x00018638 addiu a2, a2, -0x6580 | a2 += -0x6580;
| /* str.action_rule */
0x0001863c addiu a1, s1, -0x65bc | a1 = s1 + -0x65bc;
0x00018640 move a0, s0 | a0 = s0;
0x00018644 jalr t9 | t9 ();
0x00018648 lw gp, 0x18(sp) | gp = *(var_18h);
| }
0x0001864c lw a0, 0x40(s3) | a0 = *((s3 + 16));
0x00018650 lw t9, -0x7a10(gp) | t9 = sym.imp.g_list_length;
| if (a0 == 0) {
0x00018654 beqz a0, 0x18730 | goto label_6;
| }
0x00018658 jalr t9 | t9 ();
0x0001865c nop |
0x00018660 lw gp, 0x18(sp) | gp = *(var_18h);
0x00018664 move s3, v0 | s3 = v0;
0x00018668 addiu v0, v0, 1 | v0++;
0x0001866c sll v0, v0, 2 | v0 <<= 2;
0x00018670 lw t9, -0x7cdc(gp) | t9 = sym.imp.g_slice_alloc0;
0x00018674 sw v0, 0x2c(sp) | *(var_2ch) = v0;
0x00018678 move a0, v0 | a0 = v0;
0x0001867c jalr t9 | t9 ();
0x00018680 sw v0, 0x28(sp) | *(var_28h) = v0;
0x00018684 lw gp, 0x18(sp) | gp = *(var_18h);
| if (s3 == 0) {
0x00018688 beqz s3, 0x18800 | goto label_7;
| }
0x0001868c lw s5, -0x7fd0(gp) | s5 = *((gp - 8180));
0x00018690 move s6, v0 | s6 = v0;
0x00018694 move fp, zero | fp = 0;
| /* esilref: '&d' */
0x00018698 addiu s5, s5, -0x60b0 | s5 += -0x60b0;
| do {
0x0001869c lw t9, -0x7a38(gp) | t9 = sym.imp.g_strdup_printf;
0x000186a0 move a1, fp | a1 = fp;
0x000186a4 addiu s6, s6, 4 | s6 += 4;
0x000186a8 move a0, s5 | a0 = s5;
0x000186ac jalr t9 | t9 ();
0x000186b0 addiu fp, fp, 1 | fp++;
0x000186b4 lw gp, 0x18(sp) | gp = *(var_18h);
0x000186b8 sw v0, -4(s6) | *((s6 - 1)) = v0;
0x000186bc bne s3, fp, 0x1869c |
| } while (s3 != fp);
0x000186c0 lw v0, 0x2c(sp) | v0 = *(var_2ch);
0x000186c4 lw v1, 0x28(sp) | v1 = *(var_28h);
0x000186c8 addiu v0, v0, -4 | v0 += -4;
0x000186cc addu v0, v1, v0 | v0 = v1 + v0;
| label_2:
0x000186d0 lw a2, -0x7fd0(gp) | a2 = *((gp - 8180));
0x000186d4 sw zero, (v0) | *(v0) = 0;
0x000186d8 sw s3, 0x10(sp) | *(var_10h) = s3;
0x000186dc lw s3, 0x28(sp) | s3 = *(var_28h);
0x000186e0 lw t9, -0x7994(gp) | t9 = sym.imp.g_key_file_set_string_list;
| /* str.action_rule */
0x000186e4 addiu a1, s1, -0x65bc | a1 = s1 + -0x65bc;
0x000186e8 move a0, s0 | a0 = s0;
0x000186ec move a3, s3 | a3 = s3;
| /* str.properties */
0x000186f0 addiu a2, a2, -0x6578 | a2 += -0x6578;
0x000186f4 jalr t9 | t9 ();
0x000186f8 lw gp, 0x18(sp) | gp = *(var_18h);
0x000186fc lw a0, (s3) | a0 = *(s3);
0x00018700 move s1, s3 | s1 = s3;
| do {
0x00018704 lw t9, -0x7864(gp) | t9 = *((gp - 7705));
0x00018708 addiu s1, s1, 4 | s1 += 4;
0x0001870c jalr t9 | t9 ();
0x00018710 lw a0, (s1) | a0 = *(s1);
0x00018714 lw gp, 0x18(sp) | gp = *(var_18h);
0x00018718 bnez a0, 0x18704 |
| } while (a0 != 0);
0x0001871c lw t9, -0x7ca4(gp) | t9 = sym.imp.g_slice_free1;
0x00018720 lw a1, 0x28(sp) | a1 = *(var_28h);
0x00018724 lw a0, 0x2c(sp) | a0 = *(var_2ch);
0x00018728 jalr t9 | t9 ();
0x0001872c lw gp, 0x18(sp) | gp = *(var_18h);
| label_6:
0x00018730 lw t9, -0x7aac(gp) | t9 = sym.imp.g_key_file_to_data;
0x00018734 move a2, s4 | a2 = s4;
0x00018738 addiu a1, sp, 0x30 | a1 = sp + 0x30;
0x0001873c move a0, s0 | a0 = s0;
0x00018740 jalr t9 | t9 ();
0x00018744 move s1, v0 | s1 = v0;
0x00018748 lw gp, 0x18(sp) | gp = *(var_18h);
| if (v0 != 0) {
0x0001874c beqz v0, 0x18808 |
0x00018750 lw t9, -0x792c(gp) | t9 = sym.imp.g_strdup;
0x00018754 move a0, v0 | a0 = v0;
0x00018758 jalr t9 | t9 ();
0x0001875c lw gp, 0x18(sp) | gp = *(var_18h);
0x00018760 lw v1, 0x24(sp) | v1 = *(var_24h);
0x00018764 sw v0, (s7) | *(s7) = v0;
0x00018768 lw v0, 0x30(sp) | v0 = *(var_30h);
0x0001876c lw t9, -0x7c4c(gp) | t9 = sym.imp.g_key_file_free;
0x00018770 sw v0, (v1) | *(v1) = v0;
0x00018774 move a0, s0 | a0 = s0;
0x00018778 jalr t9 | t9 ();
0x0001877c lw gp, 0x18(sp) | gp = *(var_18h);
0x00018780 lw t9, -0x7864(gp) | t9 = *((gp - 7705));
0x00018784 move a0, s1 | a0 = s1;
0x00018788 jalr t9 | t9 ();
0x0001878c lw gp, 0x18(sp) | gp = *(var_18h);
0x00018790 addiu v0, zero, 1 | v0 = 1;
0x00018794 b 0x184d4 | goto label_0;
| label_3:
0x00018798 lw t9, -0x7c14(gp) | t9 = sym.imp.ae_error_quark;
0x0001879c jalr t9 | t9 ();
0x000187a0 nop |
0x000187a4 lw gp, 0x18(sp) | gp = *(var_18h);
0x000187a8 lw a0, 0xc(s3) | a0 = *((s3 + 3));
0x000187ac lw v1, 0x10(s3) | v1 = *((s3 + 4));
0x000187b0 lw a3, -0x7fd0(gp) | a3 = *((gp - 8180));
0x000187b4 lw t9, -0x7b10(gp) | t9 = sym.imp.g_set_error;
0x000187b8 sw a0, 0x14(sp) | *(var_14h) = a0;
0x000187bc move a1, v0 | a1 = v0;
0x000187c0 sw v1, 0x10(sp) | *(var_10h) = v1;
| /* str.Failed_to_serialize_rule__s_to_path__s */
0x000187c4 addiu a3, a3, -0x65e8 | a3 += -0x65e8;
0x000187c8 addiu a2, zero, 4 | a2 = 4;
0x000187cc move a0, s4 | a0 = s4;
0x000187d0 jalr t9 | t9 ();
0x000187d4 lw gp, 0x18(sp) | gp = *(var_18h);
0x000187d8 move v0, zero | v0 = 0;
0x000187dc b 0x184d4 | goto label_0;
| label_5:
0x000187e0 lw a0, -0x7fd8(gp) | a0 = *(gp);
0x000187e4 lw t9, -0x792c(gp) | t9 = sym.imp.g_strdup;
0x000187e8 addiu a0, a0, 0x6dd0 | a0 += 0x6dd0;
0x000187ec jalr t9 | t9 ();
0x000187f0 move a3, v0 | a3 = v0;
0x000187f4 lw gp, 0x18(sp) | gp = *(var_18h);
0x000187f8 sw v0, 0x14(s3) | *((s3 + 5)) = v0;
0x000187fc b 0x1853c | goto label_1;
| label_7:
0x00018800 lw v0, 0x28(sp) | v0 = *(var_28h);
0x00018804 b 0x186d0 | goto label_2;
| }
0x00018808 lw t9, -0x7c4c(gp) | t9 = sym.imp.g_key_file_free;
0x0001880c move a0, s0 | a0 = s0;
0x00018810 jalr t9 | t9 ();
0x00018814 lw gp, 0x18(sp) | gp = *(var_18h);
0x00018818 move v0, zero | v0 = 0;
0x0001881c b 0x184d4 | goto label_0;
| label_4:
0x00018820 lw t9, -0x7ba8(gp) | t9 = sym.imp.__stack_chk_fail;
0x00018824 jalr t9 | t9 ();
0x00018828 nop |
| }
; assembly | /* r2dec pseudo code output */
| /* /logs/firmware/unblob_extracted/firmware_extract/4325012-58052244.squashfs_v4_le_extract/usr/bin/actionengined @ 0x1882c */
| #include <stdint.h>
|
; (fcn) sym.action_rule_serialize () | void action_rule_serialize () {
0x0001882c lui gp, 3 |
0x00018830 addiu gp, gp, -0x46ec |
0x00018834 addu gp, gp, t9 | gp += t9;
0x00018838 addiu sp, sp, -0x90 |
0x0001883c lw t9, -0x7dd8(gp) | t9 = sym.action_rule_serialize_to_data;
0x00018840 sw s6, 0x80(sp) | *(var_80h) = s6;
0x00018844 lw s6, -0x7b1c(gp) | s6 = *((gp - 7879));
0x00018848 sw gp, 0x18(sp) | *(var_18h) = gp;
0x0001884c sw s1, 0x6c(sp) | *(var_6ch) = s1;
0x00018850 lw v0, (s6) | v0 = *(s6);
0x00018854 sw s0, 0x68(sp) | *(var_68h) = s0;
0x00018858 move a3, a1 | a3 = a1;
0x0001885c sw ra, 0x8c(sp) | *(var_8ch) = ra;
0x00018860 sw fp, 0x88(sp) | *(var_88h) = fp;
0x00018864 sw s7, 0x84(sp) | *(var_84h) = s7;
0x00018868 sw s5, 0x7c(sp) | *(var_7ch) = s5;
0x0001886c sw s4, 0x78(sp) | *(var_78h) = s4;
0x00018870 sw s3, 0x74(sp) | *(var_74h) = s3;
0x00018874 sw s2, 0x70(sp) | *(var_70h) = s2;
0x00018878 move s1, a1 | s1 = a1;
0x0001887c addiu a2, sp, 0x58 | a2 = sp + 0x58;
0x00018880 addiu a1, sp, 0x50 | a1 = sp + 0x50;
0x00018884 sw v0, 0x64(sp) | *(var_64h) = v0;
0x00018888 sw zero, 0x50(sp) | *(var_50h) = 0;
0x0001888c sw zero, 0x54(sp) | *(var_54h) = 0;
0x00018890 sw zero, 0x58(sp) | *(var_58h) = 0;
0x00018894 move s0, a0 | s0 = a0;
0x00018898 bal 0x18428 | sym_action_rule_serialize_to_data ();
0x0001889c lw gp, 0x18(sp) | gp = *(var_18h);
0x000188a0 bnez v0, 0x18908 |
| while (v0 == 0) {
| label_0:
0x000188a4 move s0, zero | s0 = 0;
| label_6:
0x000188a8 lw t9, -0x7864(gp) | t9 = *((gp - 7705));
0x000188ac lw a0, 0x54(sp) | a0 = *(var_54h);
0x000188b0 jalr t9 | t9 ();
0x000188b4 lw gp, 0x18(sp) | gp = *(var_18h);
0x000188b8 lw t9, -0x7864(gp) | t9 = *((gp - 7705));
0x000188bc lw a0, 0x50(sp) | a0 = *(var_50h);
0x000188c0 jalr t9 | t9 ();
0x000188c4 lw a0, 0x64(sp) | a0 = *(var_64h);
0x000188c8 lw v1, (s6) | v1 = *(s6);
0x000188cc lw gp, 0x18(sp) | gp = *(var_18h);
0x000188d0 move v0, s0 | v0 = s0;
| if (a0 != v1) {
0x000188d4 bne a0, v1, 0x19188 | goto label_14;
| }
0x000188d8 lw ra, 0x8c(sp) | ra = *(var_8ch);
0x000188dc lw fp, 0x88(sp) | fp = *(var_88h);
0x000188e0 lw s7, 0x84(sp) | s7 = *(var_84h);
0x000188e4 lw s6, 0x80(sp) | s6 = *(var_80h);
0x000188e8 lw s5, 0x7c(sp) | s5 = *(var_7ch);
0x000188ec lw s4, 0x78(sp) | s4 = *(var_78h);
0x000188f0 lw s3, 0x74(sp) | s3 = *(var_74h);
0x000188f4 lw s2, 0x70(sp) | s2 = *(var_70h);
0x000188f8 lw s1, 0x6c(sp) | s1 = *(var_6ch);
0x000188fc lw s0, 0x68(sp) | s0 = *(var_68h);
0x00018900 addiu sp, sp, 0x90 |
0x00018904 jr ra | return v1;
0x00018908 lw a2, -0x7fd8(gp) | a2 = *(gp);
0x0001890c lw t9, -0x7e9c(gp) | t9 = sym.create_file_path;
0x00018910 lw a1, 0xc(s0) | a1 = *((s0 + 3));
0x00018914 lw a0, 0x10(s0) | a0 = *((s0 + 4));
0x00018918 addiu v0, sp, 0x54 | v0 = sp + 0x54;
0x0001891c sw s1, 0x14(sp) | *(var_14h) = s1;
0x00018920 sw v0, 0x10(sp) | *(var_10h) = v0;
0x00018924 addiu a3, zero, 1 | a3 = 1;
| /* str.conf */
0x00018928 addiu a2, a2, 0x6ec4 | a2 += 0x6ec4;
0x0001892c bal 0x11b54 | sym_create_file_path ();
0x00018930 lw gp, 0x18(sp) | gp = *(var_18h);
0x00018934 beqz v0, 0x188a4 |
| }
0x00018938 lw t9, -0x7c08(gp) | t9 = sym.imp.g_file_set_contents;
0x0001893c lw a2, 0x58(sp) | a2 = *(var_58h);
0x00018940 lw a1, 0x50(sp) | a1 = *(var_50h);
0x00018944 lw a0, 0x54(sp) | a0 = *(var_54h);
0x00018948 move a3, s1 | a3 = s1;
0x0001894c jalr t9 | t9 ();
0x00018950 lw gp, 0x18(sp) | gp = *(var_18h);
| if (v0 == 0) {
0x00018954 beqz v0, 0x188a4 | goto label_0;
| }
0x00018958 lw s2, 0x3c(s0) | s2 = *((s0 + 15));
0x0001895c lw a0, -0x7fd0(gp) | a0 = *((gp - 8180));
| if (s2 == 0) {
0x00018960 beqz s2, 0x18b70 | goto label_15;
| }
0x00018964 lw t9, -0x7a38(gp) | t9 = sym.imp.g_strdup_printf;
0x00018968 lw a2, 0x10(s0) | a2 = *((s0 + 4));
0x0001896c lw a1, 0xc(s0) | a1 = *((s0 + 3));
| /* str._s__s_event.xml */
0x00018970 addiu a0, a0, -0x656c | a0 += -aav.0x0000656c;
0x00018974 lw s3, -0x7fd0(gp) | s3 = *((gp - 8180));
0x00018978 sw zero, 0x5c(sp) | *(var_5ch) = 0;
0x0001897c jalr t9 | t9 ();
0x00018980 lw gp, 0x18(sp) | gp = *(var_18h);
| /* str..tmp */
0x00018984 addiu a1, s3, -0x655c | a1 = s3 + -0x655c;
0x00018988 move a2, zero | a2 = 0;
0x0001898c lw t9, -0x7968(gp) | t9 = sym.imp.g_strconcat;
0x00018990 move a0, v0 | a0 = v0;
0x00018994 move s5, v0 | s5 = v0;
0x00018998 jalr t9 | t9 ();
0x0001899c lw gp, 0x18(sp) | gp = *(var_18h);
0x000189a0 move a0, v0 | a0 = v0;
0x000189a4 lw t9, -0x7c68(gp) | t9 = sym.imp.g_file_new_for_path;
0x000189a8 move s4, v0 | s4 = v0;
0x000189ac jalr t9 | t9 ();
0x000189b0 lw gp, 0x18(sp) | gp = *(var_18h);
0x000189b4 move s7, v0 | s7 = v0;
0x000189b8 addiu v0, sp, 0x5c | v0 = sp + 0x5c;
0x000189bc lw t9, -0x7a98(gp) | t9 = sym.imp.g_file_replace;
0x000189c0 sw v0, 0x24(sp) | *(var_24h_2) = v0;
0x000189c4 sw v0, 0x14(sp) | *(var_14h) = v0;
0x000189c8 sw zero, 0x10(sp) | *(var_10h) = 0;
0x000189cc move a3, zero | a3 = 0;
0x000189d0 move a2, zero | a2 = 0;
0x000189d4 move a1, zero | a1 = 0;
0x000189d8 move a0, s7 | a0 = s7;
0x000189dc jalr t9 | t9 ();
0x000189e0 move s3, v0 | s3 = v0;
0x000189e4 lw gp, 0x18(sp) | gp = *(var_18h);
| if (v0 == 0) {
0x000189e8 beqz v0, 0x19064 | goto label_16;
| }
0x000189ec lw t9, -0x7a48(gp) | t9 = sym.imp.subscribe_expression_serialize_xml;
0x000189f0 move a0, s2 | a0 = s2;
0x000189f4 jalr t9 | t9 ();
0x000189f8 move s2, v0 | s2 = v0;
0x000189fc lw gp, 0x18(sp) | gp = *(var_18h);
| if (v0 == 0) {
0x00018a00 beqz v0, 0x19008 | goto label_17;
| }
0x00018a04 lw t9, -0x7bcc(gp) | t9 = sym.imp.g_utf8_strlen;
0x00018a08 addiu a1, zero, 0x400 | a1 = 0x400;
0x00018a0c move a0, v0 | a0 = v0;
0x00018a10 jalr t9 | t9 ();
0x00018a14 lw gp, 0x18(sp) | gp = *(var_18h);
0x00018a18 lw t9, -0x7c2c(gp) | t9 = sym.imp.g_output_stream_get_type;
0x00018a1c sw v0, 0x20(sp) | *(var_20h_2) = v0;
0x00018a20 jalr t9 | t9 ();
0x00018a24 lw gp, 0x18(sp) | gp = *(var_18h);
0x00018a28 move a1, v0 | a1 = v0;
0x00018a2c move a0, s3 | a0 = s3;
0x00018a30 lw t9, -0x7ba0(gp) | t9 = sym.imp.g_type_check_instance_cast;
0x00018a34 move fp, v0 | fp = v0;
0x00018a38 jalr t9 | t9 ();
0x00018a3c lw gp, 0x18(sp) | gp = *(var_18h);
0x00018a40 lw v1, 0x24(sp) | v1 = *(var_24h_2);
0x00018a44 lw a2, 0x20(sp) | a2 = *(var_20h_2);
0x00018a48 lw t9, -0x7c9c(gp) | t9 = sym.imp.g_output_stream_write_all;
0x00018a4c sw v1, 0x14(sp) | *(var_14h) = v1;
0x00018a50 sw zero, 0x10(sp) | *(var_10h) = 0;
0x00018a54 addiu a3, sp, 0x60 | a3 = sp + 0x60;
0x00018a58 move a1, s2 | a1 = s2;
0x00018a5c move a0, v0 | a0 = v0;
0x00018a60 jalr t9 | t9 ();
0x00018a64 lw gp, 0x18(sp) | gp = *(var_18h);
| if (v0 == 0) {
0x00018a68 beqz v0, 0x18f30 | goto label_18;
| }
0x00018a6c lw t9, -0x7ba0(gp) | t9 = sym.imp.g_type_check_instance_cast;
0x00018a70 move a1, fp | a1 = fp;
0x00018a74 move a0, s3 | a0 = s3;
0x00018a78 jalr t9 | t9 ();
0x00018a7c lw gp, 0x18(sp) | gp = *(var_18h);
0x00018a80 lw a2, 0x24(sp) | a2 = *(var_24h_2);
0x00018a84 move a1, zero | a1 = 0;
0x00018a88 lw t9, -0x78fc(gp) | t9 = sym.imp.g_output_stream_close;
0x00018a8c move a0, v0 | a0 = v0;
0x00018a90 jalr t9 | t9 ();
0x00018a94 lw gp, 0x18(sp) | gp = *(var_18h);
| if (v0 == 0) {
0x00018a98 beqz v0, 0x190b0 | goto label_19;
| }
0x00018a9c lw t9, -0x7988(gp) | t9 = sym.imp.rename;
0x00018aa0 move a1, s5 | a1 = s5;
0x00018aa4 move a0, s4 | a0 = s4;
0x00018aa8 jalr t9 | t9 ();
0x00018aac lw gp, 0x18(sp) | gp = *(var_18h);
| if (v0 < 0) {
0x00018ab0 bltz v0, 0x190d4 | goto label_20;
| }
0x00018ab4 lw t9, -0x7874(gp) | t9 = sym.imp.open;
0x00018ab8 lw a0, 0xc(s0) | a0 = *((s0 + 3));
0x00018abc move a1, zero | a1 = 0;
0x00018ac0 jalr t9 | t9 ();
0x00018ac4 lw gp, 0x18(sp) | gp = *(var_18h);
| if (v0 < 0) {
0x00018ac8 bltz v0, 0x19110 | goto label_21;
| }
0x00018acc lw t9, -0x7a8c(gp) | t9 = sym.imp.fsync;
0x00018ad0 move a0, v0 | a0 = v0;
0x00018ad4 sw v0, 0x20(sp) | *(var_20h_2) = v0;
0x00018ad8 jalr t9 | t9 ();
0x00018adc lw gp, 0x18(sp) | gp = *(var_18h);
0x00018ae0 lw v1, 0x20(sp) | v1 = *(var_20h_2);
| if (v0 < 0) {
0x00018ae4 bltz v0, 0x19138 | goto label_22;
| }
0x00018ae8 lw t9, -0x7b68(gp) | t9 = sym.imp.close;
0x00018aec move a0, v1 | a0 = v1;
0x00018af0 sw v1, 0x20(sp) | *(var_20h_2) = v1;
0x00018af4 jalr t9 | t9 ();
0x00018af8 lw gp, 0x18(sp) | gp = *(var_18h);
| if (v0 < 0) {
0x00018afc bltz v0, 0x19160 | goto label_23;
| }
0x00018b00 addiu fp, zero, 1 | fp = 1;
| label_7:
0x00018b04 lw a0, 0x5c(sp) | a0 = *(var_5ch);
0x00018b08 lw t9, -0x7c58(gp) | t9 = sym.imp.g_error_free;
| if (a0 != 0) {
0x00018b0c beqz a0, 0x18b1c |
0x00018b10 jalr t9 | t9 ();
0x00018b14 nop |
0x00018b18 lw gp, 0x18(sp) | gp = *(var_18h);
| }
0x00018b1c lw t9, -0x7864(gp) | t9 = *((gp - 7705));
0x00018b20 move a0, s2 | a0 = s2;
0x00018b24 jalr t9 | t9 ();
0x00018b28 lw gp, 0x18(sp) | gp = *(var_18h);
| if (s5 == 0) {
0x00018b2c beqz s5, 0x18fa4 | goto label_24;
| }
| label_10:
0x00018b30 lw t9, -0x7864(gp) | t9 = *((gp - 7705));
0x00018b34 move a0, s5 | a0 = s5;
0x00018b38 jalr t9 | t9 ();
0x00018b3c lw gp, 0x18(sp) | gp = *(var_18h);
| label_11:
0x00018b40 lw t9, -0x7918(gp) | t9 = *((gp - 7750));
| if (s3 != 0) {
0x00018b44 bnez s3, 0x18fa8 | goto label_25;
| }
| label_8:
0x00018b48 lw t9, -0x7918(gp) | t9 = *((gp - 7750));
| if (s7 != 0) {
0x00018b4c beqz s7, 0x18b5c |
0x00018b50 move a0, s7 | a0 = s7;
0x00018b54 jalr t9 | t9 ();
0x00018b58 lw gp, 0x18(sp) | gp = *(var_18h);
| }
0x00018b5c lw t9, -0x7864(gp) | t9 = *((gp - 7705));
0x00018b60 move a0, s4 | a0 = s4;
0x00018b64 jalr t9 | t9 ();
0x00018b68 lw gp, 0x18(sp) | gp = *(var_18h);
| if (fp == 0) {
0x00018b6c beqz fp, 0x188a4 | goto label_0;
| }
| label_15:
0x00018b70 lw a0, 0x40(s0) | a0 = *((s0 + 16));
0x00018b74 lw t9, -0x7a10(gp) | t9 = sym.imp.g_list_length;
| if (a0 == 0) {
0x00018b78 beqz a0, 0x18f1c | goto label_26;
| }
0x00018b7c jalr t9 | t9 ();
0x00018b80 nop |
0x00018b84 lw v1, 0x40(s0) | v1 = *((s0 + 16));
0x00018b88 lw gp, 0x18(sp) | gp = *(var_18h);
0x00018b8c sw v0, 0x38(sp) | *(var_38h_2) = v0;
0x00018b90 sw v1, 0x20(sp) | *(var_20h_2) = v1;
| if (v0 == 0) {
0x00018b94 beqz v0, 0x18f1c | goto label_26;
| }
0x00018b98 lw v0, -0x7fd0(gp) | v0 = *((gp - 8180));
0x00018b9c move s4, zero | s4 = 0;
0x00018ba0 sw v0, 0x30(sp) | *(var_30h_2) = v0;
0x00018ba4 lw v0, -0x7fd0(gp) | v0 = *((gp - 8180));
0x00018ba8 sw v0, 0x34(sp) | *(var_34h_2) = v0;
0x00018bac lw v0, -0x7fd0(gp) | v0 = *((gp - 8180));
0x00018bb0 sw v0, 0x48(sp) | *(var_48h_2) = v0;
0x00018bb4 lw v0, -0x7fd0(gp) | v0 = *((gp - 8180));
0x00018bb8 sw v0, 0x40(sp) | *(var_40h_2) = v0;
0x00018bbc addiu v0, sp, 0x5c | v0 = sp + 0x5c;
0x00018bc0 sw v0, 0x24(sp) | *(var_24h_2) = v0;
0x00018bc4 lw v0, -0x7fd0(gp) | v0 = *((gp - 8180));
| /* str.Failed_to_serialize_event_to_file:__s */
0x00018bc8 addiu v0, v0, -0x6538 | v0 += -0x6538;
0x00018bcc sw v0, 0x3c(sp) | *(var_3ch_2) = v0;
0x00018bd0 lw v0, -0x7fd0(gp) | v0 = *((gp - 8180));
| /* str.Failed_to_close_dir:___d_ */
0x00018bd4 addiu v0, v0, -0x6468 | v0 += -0x6468;
0x00018bd8 sw v0, 0x4c(sp) | *(var_4ch_2) = v0;
0x00018bdc lw v0, -0x7fd0(gp) | v0 = *((gp - 8180));
| /* str.Failed_to_get_file_descriptor_for:___s_ */
0x00018be0 addiu v0, v0, -0x64b0 | v0 += -0x64b0;
0x00018be4 sw v0, 0x44(sp) | *(var_44h_2) = v0;
0x00018be8 b 0x18c34 | goto label_27;
| label_1:
0x00018bec lw t9, -0x7918(gp) | t9 = *((gp - 7750));
| if (s7 != 0) {
0x00018bf0 beqz s7, 0x18c00 |
0x00018bf4 move a0, s7 | a0 = s7;
0x00018bf8 jalr t9 | t9 ();
0x00018bfc lw gp, 0x18(sp) | gp = *(var_18h);
| }
0x00018c00 lw t9, -0x7864(gp) | t9 = *((gp - 7705));
0x00018c04 move a0, s3 | a0 = s3;
0x00018c08 jalr t9 | t9 ();
0x00018c0c lw v0, 0x28(sp) | v0 = *(var_28h);
0x00018c10 lw gp, 0x18(sp) | gp = *(var_18h);
| if (v0 == 0) {
0x00018c14 beqz v0, 0x188a4 | goto label_0;
| }
0x00018c18 lw v0, 0x20(sp) | v0 = *(var_20h_2);
0x00018c1c addiu s4, s4, 1 | s4++;
0x00018c20 lw v0, 4(v0) | v0 = *((v0 + 1));
0x00018c24 sw v0, 0x20(sp) | *(var_20h_2) = v0;
0x00018c28 lw v0, 0x38(sp) | v0 = *(var_38h_2);
0x00018c2c lw t9, -0x7e48(gp) | t9 = sym.sync_filesystem
| if (v0 == s4) {
0x00018c30 beq v0, s4, 0x18f20 | goto label_28;
| }
| label_27:
0x00018c34 lw v0, 0x34(sp) | v0 = *(var_34h_2);
0x00018c38 lw t9, -0x7a38(gp) | t9 = sym.imp.g_strdup_printf;
0x00018c3c addiu a0, v0, -0x644c | a0 = v0 + -0x644c;
0x00018c40 lw v0, 0x20(sp) | v0 = *(var_20h_2);
0x00018c44 lw a2, 0x10(s0) | a2 = *((s0 + 4));
0x00018c48 lw a1, 0xc(s0) | a1 = *((s0 + 3));
0x00018c4c move a3, s4 | a3 = s4;
0x00018c50 lw fp, (v0) | fp = *(v0);
0x00018c54 sw zero, 0x5c(sp) | *(var_5ch) = 0;
0x00018c58 jalr t9 | t9 ();
0x00018c5c lw gp, 0x18(sp) | gp = *(var_18h);
0x00018c60 move s5, v0 | s5 = v0;
0x00018c64 lw v0, 0x30(sp) | v0 = *(var_30h_2);
0x00018c68 lw t9, -0x7968(gp) | t9 = sym.imp.g_strconcat;
0x00018c6c move a2, zero | a2 = 0;
0x00018c70 addiu a1, v0, -0x655c | a1 = v0 + -0x655c;
0x00018c74 move a0, s5 | a0 = s5;
0x00018c78 jalr t9 | t9 ();
0x00018c7c lw gp, 0x18(sp) | gp = *(var_18h);
0x00018c80 move a0, v0 | a0 = v0;
0x00018c84 lw t9, -0x7c68(gp) | t9 = sym.imp.g_file_new_for_path;
0x00018c88 move s3, v0 | s3 = v0;
0x00018c8c jalr t9 | t9 ();
0x00018c90 lw gp, 0x18(sp) | gp = *(var_18h);
0x00018c94 move s7, v0 | s7 = v0;
0x00018c98 lw v0, 0x24(sp) | v0 = *(var_24h_2);
0x00018c9c lw t9, -0x7a98(gp) | t9 = sym.imp.g_file_replace;
0x00018ca0 sw v0, 0x14(sp) | *(var_14h) = v0;
0x00018ca4 sw zero, 0x10(sp) | *(var_10h) = 0;
0x00018ca8 move a3, zero | a3 = 0;
0x00018cac move a2, zero | a2 = 0;
0x00018cb0 move a1, zero | a1 = 0;
0x00018cb4 move a0, s7 | a0 = s7;
0x00018cb8 jalr t9 | t9 ();
0x00018cbc move s2, v0 | s2 = v0;
0x00018cc0 lw gp, 0x18(sp) | gp = *(var_18h);
| if (v0 == 0) {
0x00018cc4 beqz v0, 0x18ed4 | goto label_29;
| }
0x00018cc8 lw t9, -0x78bc(gp) | t9 = sym.imp.property_state_serialize_xml;
0x00018ccc move a0, fp | a0 = fp;
0x00018cd0 jalr t9 | t9 ();
0x00018cd4 move fp, v0 | fp = v0;
0x00018cd8 lw gp, 0x18(sp) | gp = *(var_18h);
| if (v0 == 0) {
0x00018cdc beqz v0, 0x18e44 | goto label_30;
| }
0x00018ce0 lw t9, -0x7bcc(gp) | t9 = sym.imp.g_utf8_strlen;
0x00018ce4 addiu a1, zero, 0x400 | a1 = 0x400;
0x00018ce8 move a0, v0 | a0 = v0;
0x00018cec jalr t9 | t9 ();
0x00018cf0 lw gp, 0x18(sp) | gp = *(var_18h);
0x00018cf4 lw t9, -0x7c2c(gp) | t9 = sym.imp.g_output_stream_get_type;
0x00018cf8 sw v0, 0x2c(sp) | *(var_2ch_2) = v0;
0x00018cfc jalr t9 | t9 ();
0x00018d00 lw gp, 0x18(sp) | gp = *(var_18h);
0x00018d04 move a1, v0 | a1 = v0;
0x00018d08 move a0, s2 | a0 = s2;
0x00018d0c lw t9, -0x7ba0(gp) | t9 = sym.imp.g_type_check_instance_cast;
0x00018d10 sw v0, 0x28(sp) | *(var_28h) = v0;
0x00018d14 jalr t9 | t9 ();
0x00018d18 lw gp, 0x18(sp) | gp = *(var_18h);
0x00018d1c lw v1, 0x24(sp) | v1 = *(var_24h_2);
0x00018d20 lw a2, 0x2c(sp) | a2 = *(var_2ch_2);
0x00018d24 lw t9, -0x7c9c(gp) | t9 = sym.imp.g_output_stream_write_all;
0x00018d28 sw v1, 0x14(sp) | *(var_14h) = v1;
0x00018d2c sw zero, 0x10(sp) | *(var_10h) = 0;
0x00018d30 addiu a3, sp, 0x60 | a3 = sp + 0x60;
0x00018d34 move a1, fp | a1 = fp;
0x00018d38 move a0, v0 | a0 = v0;
0x00018d3c jalr t9 | t9 ();
0x00018d40 lw gp, 0x18(sp) | gp = *(var_18h);
0x00018d44 lw v1, 0x28(sp) | v1 = *(var_28h);
| if (v0 == 0) {
0x00018d48 beqz v0, 0x18e9c | goto label_31;
| }
0x00018d4c lw t9, -0x7ba0(gp) | t9 = sym.imp.g_type_check_instance_cast;
0x00018d50 move a1, v1 | a1 = v1;
0x00018d54 move a0, s2 | a0 = s2;
0x00018d58 jalr t9 | t9 ();
0x00018d5c lw gp, 0x18(sp) | gp = *(var_18h);
0x00018d60 lw a2, 0x24(sp) | a2 = *(var_24h_2);
0x00018d64 move a1, zero | a1 = 0;
0x00018d68 lw t9, -0x78fc(gp) | t9 = sym.imp.g_output_stream_close;
0x00018d6c move a0, v0 | a0 = v0;
0x00018d70 jalr t9 | t9 ();
0x00018d74 lw gp, 0x18(sp) | gp = *(var_18h);
| if (v0 == 0) {
0x00018d78 beqz v0, 0x18ef8 | goto label_32;
| }
0x00018d7c lw t9, -0x7988(gp) | t9 = sym.imp.rename;
0x00018d80 move a1, s5 | a1 = s5;
0x00018d84 move a0, s3 | a0 = s3;
0x00018d88 jalr t9 | t9 ();
0x00018d8c lw gp, 0x18(sp) | gp = *(var_18h);
| if (v0 < 0) {
0x00018d90 bltz v0, 0x18f68 | goto label_33;
| }
0x00018d94 lw t9, -0x7874(gp) | t9 = sym.imp.open;
0x00018d98 lw a0, 0xc(s0) | a0 = *((s0 + 3));
0x00018d9c move a1, zero | a1 = 0;
0x00018da0 jalr t9 | t9 ();
0x00018da4 lw gp, 0x18(sp) | gp = *(var_18h);
| if (v0 < 0) {
0x00018da8 bltz v0, 0x18fb8 | goto label_34;
| }
0x00018dac lw t9, -0x7a8c(gp) | t9 = sym.imp.fsync;
0x00018db0 move a0, v0 | a0 = v0;
0x00018db4 sw v0, 0x28(sp) | *(var_28h) = v0;
0x00018db8 jalr t9 | t9 ();
0x00018dbc lw gp, 0x18(sp) | gp = *(var_18h);
0x00018dc0 lw v1, 0x28(sp) | v1 = *(var_28h);
| if (v0 < 0) {
0x00018dc4 bltz v0, 0x18fdc | goto label_35;
| }
0x00018dc8 lw t9, -0x7b68(gp) | t9 = sym.imp.close;
0x00018dcc move a0, v1 | a0 = v1;
0x00018dd0 sw v1, 0x28(sp) | *(var_28h) = v1;
0x00018dd4 jalr t9 | t9 ();
0x00018dd8 lw gp, 0x18(sp) | gp = *(var_18h);
0x00018ddc lw v1, 0x28(sp) | v1 = *(var_28h);
| if (v0 < 0) {
0x00018de0 bltz v0, 0x19088 | goto label_36;
| }
0x00018de4 addiu v0, zero, 1 | v0 = 1;
0x00018de8 sw v0, 0x28(sp) | *(var_28h) = v0;
| label_4:
0x00018dec lw a0, 0x5c(sp) | a0 = *(var_5ch);
0x00018df0 lw t9, -0x7c58(gp) | t9 = sym.imp.g_error_free;
| if (a0 != 0) {
0x00018df4 beqz a0, 0x18e04 |
0x00018df8 jalr t9 | t9 ();
0x00018dfc nop |
0x00018e00 lw gp, 0x18(sp) | gp = *(var_18h);
| }
0x00018e04 lw t9, -0x7864(gp) | t9 = *((gp - 7705));
0x00018e08 move a0, fp | a0 = fp;
0x00018e0c jalr t9 | t9 ();
0x00018e10 lw gp, 0x18(sp) | gp = *(var_18h);
| if (s5 == 0) {
0x00018e14 beqz s5, 0x18e30 | goto label_37;
| }
| label_2:
0x00018e18 lw t9, -0x7864(gp) | t9 = *((gp - 7705));
0x00018e1c move a0, s5 | a0 = s5;
0x00018e20 jalr t9 | t9 ();
0x00018e24 lw gp, 0x18(sp) | gp = *(var_18h);
| if (s2 == 0) {
| label_3:
0x00018e28 beqz s2, 0x18bec | goto label_1;
| }
0x00018e2c nop |
| label_37:
0x00018e30 lw t9, -0x7918(gp) | t9 = *((gp - 7750));
0x00018e34 move a0, s2 | a0 = s2;
0x00018e38 jalr t9 | t9 ();
0x00018e3c lw gp, 0x18(sp) | gp = *(var_18h);
0x00018e40 b 0x18bec | goto label_1;
| label_30:
0x00018e44 lw t9, -0x7c14(gp) | t9 = sym.imp.ae_error_quark;
0x00018e48 jalr t9 | t9 ();
0x00018e4c nop |
0x00018e50 lw gp, 0x18(sp) | gp = *(var_18h);
0x00018e54 lw a3, 0x3c(sp) | a3 = *(var_3ch_2);
0x00018e58 sw s3, 0x10(sp) | *(var_10h) = s3;
0x00018e5c lw t9, -0x7b10(gp) | t9 = sym.imp.g_set_error;
| label_5:
0x00018e60 move a0, s1 | a0 = s1;
0x00018e64 addiu a2, zero, 1 | a2 = 1;
0x00018e68 move a1, v0 | a1 = v0;
0x00018e6c jalr t9 | t9 ();
0x00018e70 lw a0, 0x5c(sp) | a0 = *(var_5ch);
0x00018e74 lw gp, 0x18(sp) | gp = *(var_18h);
| if (a0 != 0) {
0x00018e78 beqz a0, 0x18e8c |
0x00018e7c lw t9, -0x7c58(gp) | t9 = sym.imp.g_error_free;
0x00018e80 jalr t9 | t9 ();
0x00018e84 nop |
0x00018e88 lw gp, 0x18(sp) | gp = *(var_18h);
| }
0x00018e8c sw zero, 0x28(sp) | *(var_28h) = 0;
| if (s5 != 0) {
0x00018e90 bnez s5, 0x18e18 | goto label_2;
| }
0x00018e94 b 0x18e28 | goto label_3;
0x00018e98 nop |
| label_31:
0x00018e9c lw t9, -0x7c14(gp) | t9 = sym.imp.ae_error_quark;
0x00018ea0 sw zero, 0x28(sp) | *(var_28h) = 0;
0x00018ea4 jalr t9 | t9 ();
0x00018ea8 lw gp, 0x18(sp) | gp = *(var_18h);
0x00018eac sw s3, 0x10(sp) | *(var_10h) = s3;
0x00018eb0 lw a3, -0x7fd0(gp) | a3 = *((gp - 8180));
0x00018eb4 lw t9, -0x7b10(gp) | t9 = sym.imp.g_set_error;
| /* str.Failed_to_write_file:__s */
0x00018eb8 addiu a3, a3, -0x6510 | a3 += -0x6510;
| do {
| label_9:
0x00018ebc addiu a2, zero, 1 | a2 = 1;
0x00018ec0 move a1, v0 | a1 = v0;
0x00018ec4 move a0, s1 | a0 = s1;
0x00018ec8 jalr t9 | t9 ();
0x00018ecc lw gp, 0x18(sp) | gp = *(var_18h);
0x00018ed0 b 0x18dec | goto label_4;
| label_29:
0x00018ed4 lw t9, -0x7c14(gp) | t9 = sym.imp.ae_error_quark;
0x00018ed8 jalr t9 | t9 ();
0x00018edc nop |
0x00018ee0 lw gp, 0x18(sp) | gp = *(var_18h);
0x00018ee4 sw s3, 0x10(sp) | *(var_10h) = s3;
0x00018ee8 lw a3, -0x7fd0(gp) | a3 = *((gp - 8180));
0x00018eec lw t9, -0x7b10(gp) | t9 = sym.imp.g_set_error;
| /* str.Failed_to_create_file:__s */
0x00018ef0 addiu a3, a3, -0x6554 | a3 += -0x6554;
0x00018ef4 b 0x18e60 | goto label_5;
| label_32:
0x00018ef8 lw t9, -0x7c14(gp) | t9 = sym.imp.ae_error_quark;
0x00018efc sw zero, 0x28(sp) | *(var_28h) = 0;
0x00018f00 jalr t9 | t9 ();
0x00018f04 lw gp, 0x18(sp) | gp = *(var_18h);
0x00018f08 sw s3, 0x10(sp) | *(var_10h) = s3;
0x00018f0c lw a3, -0x7fd0(gp) | a3 = *((gp - 8180));
0x00018f10 lw t9, -0x7b10(gp) | t9 = sym.imp.g_set_error;
| /* str.Failed_to_close_file:__s */
0x00018f14 addiu a3, a3, -0x64f4 | a3 += -0x64f4;
0x00018f18 b 0x18ebc |
| } while (1);
| label_26:
0x00018f1c lw t9, -0x7e48(gp) | t9 = sym.sync_filesystem
| label_28:
0x00018f20 addiu s0, zero, 1 | s0 = 1;
0x00018f24 bal 0x11a20 | sym_sync_filesystem ()
0x00018f28 lw gp, 0x18(sp) | gp = *(var_18h);
0x00018f2c b 0x188a8 | goto label_6;
| label_18:
0x00018f30 lw t9, -0x7c14(gp) | t9 = sym.imp.ae_error_quark;
0x00018f34 move fp, zero | fp = 0;
0x00018f38 jalr t9 | t9 ();
0x00018f3c lw gp, 0x18(sp) | gp = *(var_18h);
0x00018f40 sw s4, 0x10(sp) | *(var_10h) = s4;
0x00018f44 lw a3, -0x7fd0(gp) | a3 = *((gp - 8180));
0x00018f48 lw t9, -0x7b10(gp) | t9 = sym.imp.g_set_error;
| /* str.Failed_to_write_file:__s */
0x00018f4c addiu a3, a3, -0x6510 | a3 += -0x6510;
| label_13:
0x00018f50 addiu a2, zero, 1 | a2 = 1;
0x00018f54 move a1, v0 | a1 = v0;
0x00018f58 move a0, s1 | a0 = s1;
0x00018f5c jalr t9 | t9 ();
0x00018f60 lw gp, 0x18(sp) | gp = *(var_18h);
0x00018f64 b 0x18b04 | goto label_7;
| label_33:
0x00018f68 lw t9, -0x7c14(gp) | t9 = sym.imp.ae_error_quark;
0x00018f6c sw zero, 0x28(sp) | *(var_28h) = 0;
0x00018f70 jalr t9 | t9 ();
0x00018f74 lw gp, 0x18(sp) | gp = *(var_18h);
0x00018f78 lw v1, 0x40(sp) | v1 = *(var_40h_2);
0x00018f7c sw s5, 0x14(sp) | *(var_14h) = s5;
0x00018f80 lw t9, -0x7b10(gp) | t9 = sym.imp.g_set_error;
0x00018f84 sw s3, 0x10(sp) | *(var_10h) = s3;
0x00018f88 addiu a3, v1, -0x64d8 | a3 = v1 + -0x64d8;
0x00018f8c addiu a2, zero, 1 | a2 = 1;
0x00018f90 move a1, v0 | a1 = v0;
0x00018f94 move a0, s1 | a0 = s1;
0x00018f98 jalr t9 | t9 ();
0x00018f9c lw gp, 0x18(sp) | gp = *(var_18h);
0x00018fa0 b 0x18dec | goto label_4;
| label_24:
0x00018fa4 lw t9, -0x7918(gp) | t9 = *((gp - 7750));
| label_25:
0x00018fa8 move a0, s3 | a0 = s3;
0x00018fac jalr t9 | t9 ();
0x00018fb0 lw gp, 0x18(sp) | gp = *(var_18h);
0x00018fb4 b 0x18b48 | goto label_8;
| label_34:
0x00018fb8 lw t9, -0x7c14(gp) | t9 = sym.imp.ae_error_quark;
0x00018fbc sw zero, 0x28(sp) | *(var_28h) = 0;
0x00018fc0 jalr t9 | t9 ();
0x00018fc4 lw gp, 0x18(sp) | gp = *(var_18h);
0x00018fc8 lw v1, 0xc(s0) | v1 = *((s0 + 3));
0x00018fcc lw a3, 0x44(sp) | a3 = *(var_44h_2);
0x00018fd0 lw t9, -0x7b10(gp) | t9 = sym.imp.g_set_error;
0x00018fd4 sw v1, 0x10(sp) | *(var_10h) = v1;
0x00018fd8 b 0x18ebc | goto label_9;
| label_35:
0x00018fdc lw t9, -0x7c14(gp) | t9 = sym.imp.ae_error_quark;
0x00018fe0 sw v1, 0x2c(sp) | *(var_2ch_2) = v1;
0x00018fe4 sw zero, 0x28(sp) | *(var_28h) = 0;
0x00018fe8 jalr t9 | t9 ();
0x00018fec lw v1, 0x2c(sp) | v1 = *(var_2ch_2);
0x00018ff0 lw gp, 0x18(sp) | gp = *(var_18h);
0x00018ff4 sw v1, 0x10(sp) | *(var_10h) = v1;
0x00018ff8 lw v1, 0x48(sp) | v1 = *(var_48h_2);
0x00018ffc lw t9, -0x7b10(gp) | t9 = sym.imp.g_set_error;
0x00019000 addiu a3, v1, -0x6488 | a3 = v1 + -0x6488;
0x00019004 b 0x18ebc | goto label_9;
| label_17:
0x00019008 lw t9, -0x7c14(gp) | t9 = sym.imp.ae_error_quark;
0x0001900c jalr t9 | t9 ();
0x00019010 nop |
0x00019014 lw gp, 0x18(sp) | gp = *(var_18h);
0x00019018 sw s4, 0x10(sp) | *(var_10h) = s4;
0x0001901c lw a3, -0x7fd0(gp) | a3 = *((gp - 8180));
0x00019020 lw t9, -0x7b10(gp) | t9 = sym.imp.g_set_error;
| /* str.Failed_to_serialize_event_to_file:__s */
0x00019024 addiu a3, a3, -0x6538 | a3 += -0x6538;
| label_12:
0x00019028 move a0, s1 | a0 = s1;
0x0001902c addiu a2, zero, 1 | a2 = 1;
0x00019030 move a1, v0 | a1 = v0;
0x00019034 jalr t9 | t9 ();
0x00019038 lw a0, 0x5c(sp) | a0 = *(var_5ch);
0x0001903c lw gp, 0x18(sp) | gp = *(var_18h);
| if (a0 != 0) {
0x00019040 beqz a0, 0x19054 |
0x00019044 lw t9, -0x7c58(gp) | t9 = sym.imp.g_error_free;
0x00019048 jalr t9 | t9 ();
0x0001904c nop |
0x00019050 lw gp, 0x18(sp) | gp = *(var_18h);
| }
0x00019054 move fp, zero | fp = 0;
| if (s5 != 0) {
0x00019058 bnez s5, 0x18b30 | goto label_10;
| }
0x0001905c b 0x18b40 | goto label_11;
0x00019060 nop |
| label_16:
0x00019064 lw t9, -0x7c14(gp) | t9 = sym.imp.ae_error_quark;
0x00019068 jalr t9 | t9 ();
0x0001906c nop |
0x00019070 lw gp, 0x18(sp) | gp = *(var_18h);
0x00019074 sw s4, 0x10(sp) | *(var_10h) = s4;
0x00019078 lw a3, -0x7fd0(gp) | a3 = *((gp - 8180));
0x0001907c lw t9, -0x7b10(gp) | t9 = sym.imp.g_set_error;
| /* str.Failed_to_create_file:__s */
0x00019080 addiu a3, a3, -0x6554 | a3 += -0x6554;
0x00019084 b 0x19028 | goto label_12;
| label_36:
0x00019088 lw t9, -0x7c14(gp) | t9 = sym.imp.ae_error_quark;
0x0001908c sw v1, 0x2c(sp) | *(var_2ch_2) = v1;
0x00019090 sw zero, 0x28(sp) | *(var_28h) = 0;
0x00019094 jalr t9 | t9 ();
0x00019098 lw gp, 0x18(sp) | gp = *(var_18h);
0x0001909c lw v1, 0x2c(sp) | v1 = *(var_2ch_2);
0x000190a0 lw a3, 0x4c(sp) | a3 = *(var_4ch_2);
0x000190a4 lw t9, -0x7b10(gp) | t9 = sym.imp.g_set_error;
0x000190a8 sw v1, 0x10(sp) | *(var_10h) = v1;
0x000190ac b 0x18ebc | goto label_9;
| label_19:
0x000190b0 lw t9, -0x7c14(gp) | t9 = sym.imp.ae_error_quark;
0x000190b4 move fp, zero | fp = 0;
0x000190b8 jalr t9 | t9 ();
0x000190bc lw gp, 0x18(sp) | gp = *(var_18h);
0x000190c0 sw s4, 0x10(sp) | *(var_10h) = s4;
0x000190c4 lw a3, -0x7fd0(gp) | a3 = *((gp - 8180));
0x000190c8 lw t9, -0x7b10(gp) | t9 = sym.imp.g_set_error;
| /* str.Failed_to_close_file:__s */
0x000190cc addiu a3, a3, -0x64f4 | a3 += -0x64f4;
0x000190d0 b 0x18f50 | goto label_13;
| label_20:
0x000190d4 lw t9, -0x7c14(gp) | t9 = sym.imp.ae_error_quark;
0x000190d8 move fp, zero | fp = 0;
0x000190dc jalr t9 | t9 ();
0x000190e0 lw gp, 0x18(sp) | gp = *(var_18h);
0x000190e4 sw s5, 0x14(sp) | *(var_14h) = s5;
0x000190e8 sw s4, 0x10(sp) | *(var_10h) = s4;
0x000190ec lw a3, -0x7fd0(gp) | a3 = *((gp - 8180));
0x000190f0 lw t9, -0x7b10(gp) | t9 = sym.imp.g_set_error;
| /* str.Failed_to_rename_from:___s__to:___s_ */
0x000190f4 addiu a3, a3, -0x64d8 | a3 += -0x64d8;
0x000190f8 addiu a2, zero, 1 | a2 = 1;
0x000190fc move a1, v0 | a1 = v0;
0x00019100 move a0, s1 | a0 = s1;
0x00019104 jalr t9 | t9 ();
0x00019108 lw gp, 0x18(sp) | gp = *(var_18h);
0x0001910c b 0x18b04 | goto label_7;
| label_21:
0x00019110 lw t9, -0x7c14(gp) | t9 = sym.imp.ae_error_quark;
0x00019114 move fp, zero | fp = 0;
0x00019118 jalr t9 | t9 ();
0x0001911c lw gp, 0x18(sp) | gp = *(var_18h);
0x00019120 lw v1, 0xc(s0) | v1 = *((s0 + 3));
0x00019124 lw a3, -0x7fd0(gp) | a3 = *((gp - 8180));
0x00019128 lw t9, -0x7b10(gp) | t9 = sym.imp.g_set_error;
0x0001912c sw v1, 0x10(sp) | *(var_10h) = v1;
| /* str.Failed_to_get_file_descriptor_for:___s_ */
0x00019130 addiu a3, a3, -0x64b0 | a3 += -0x64b0;
0x00019134 b 0x18f50 | goto label_13;
| label_22:
0x00019138 lw t9, -0x7c14(gp) | t9 = sym.imp.ae_error_quark;
0x0001913c move fp, zero | fp = 0;
0x00019140 jalr t9 | t9 ();
0x00019144 lw gp, 0x18(sp) | gp = *(var_18h);
0x00019148 lw v1, 0x20(sp) | v1 = *(var_20h_2);
0x0001914c lw a3, -0x7fd0(gp) | a3 = *((gp - 8180));
0x00019150 lw t9, -0x7b10(gp) | t9 = sym.imp.g_set_error;
0x00019154 sw v1, 0x10(sp) | *(var_10h) = v1;
| /* str.Failed_to_sync_directory:___d_ */
0x00019158 addiu a3, a3, -0x6488 | a3 += -0x6488;
0x0001915c b 0x18f50 | goto label_13;
| label_23:
0x00019160 lw t9, -0x7c14(gp) | t9 = sym.imp.ae_error_quark;
0x00019164 move fp, zero | fp = 0;
0x00019168 jalr t9 | t9 ();
0x0001916c lw gp, 0x18(sp) | gp = *(var_18h);
0x00019170 lw v1, 0x20(sp) | v1 = *(var_20h_2);
0x00019174 lw a3, -0x7fd0(gp) | a3 = *((gp - 8180));
0x00019178 lw t9, -0x7b10(gp) | t9 = sym.imp.g_set_error;
0x0001917c sw v1, 0x10(sp) | *(var_10h) = v1;
| /* str.Failed_to_close_dir:___d_ */
0x00019180 addiu a3, a3, -0x6468 | a3 += -0x6468;
0x00019184 b 0x18f50 | goto label_13;
| label_14:
0x00019188 lw t9, -0x7ba8(gp) | t9 = sym.imp.__stack_chk_fail;
0x0001918c jalr t9 | t9 ();
0x00019190 nop |
| }
; assembly | /* r2dec pseudo code output */
| /* /logs/firmware/unblob_extracted/firmware_extract/4325012-58052244.squashfs_v4_le_extract/usr/bin/actionengined @ 0x1af24 */
| #include <stdint.h>
|
; (fcn) sym.recipient_serialize_to_data () | void recipient_serialize_to_data () {
0x0001af24 lui gp, 3 |
0x0001af28 addiu gp, gp, -0x6de4 |
0x0001af2c addu gp, gp, t9 | gp += t9;
0x0001af30 addiu sp, sp, -0x70 |
0x0001af34 lw t9, -0x7924(gp) | t9 = sym.imp.g_key_file_new;
0x0001af38 sw s3, 0x54(sp) | *(var_54h) = s3;
0x0001af3c lw s3, -0x7b1c(gp) | s3 = *((gp - 7879));
0x0001af40 sw gp, 0x18(sp) | *(var_18h) = gp;
0x0001af44 sw s6, 0x60(sp) | *(var_60h) = s6;
0x0001af48 lw v0, (s3) | v0 = *(s3);
0x0001af4c sw s5, 0x5c(sp) | *(var_5ch) = s5;
0x0001af50 sw s4, 0x58(sp) | *(var_58h) = s4;
0x0001af54 sw s1, 0x4c(sp) | *(var_4ch) = s1;
0x0001af58 sw ra, 0x6c(sp) | *(var_6ch) = ra;
0x0001af5c sw fp, 0x68(sp) | *(var_68h) = fp;
0x0001af60 sw s7, 0x64(sp) | *(var_64h) = s7;
0x0001af64 sw s2, 0x50(sp) | *(var_50h) = s2;
0x0001af68 sw s0, 0x48(sp) | *(var_48h) = s0;
0x0001af6c sw v0, 0x44(sp) | *(var_44h) = v0;
0x0001af70 sw zero, 0x20(sp) | *(var_20h) = 0;
0x0001af74 sw zero, 0x24(sp) | *(var_24h) = 0;
0x0001af78 move s1, a0 | s1 = a0;
0x0001af7c move s6, a1 | s6 = a1;
0x0001af80 move s5, a2 | s5 = a2;
0x0001af84 move s4, a3 | s4 = a3;
0x0001af88 jalr t9 | t9 ();
0x0001af8c lw gp, 0x18(sp) | gp = *(var_18h);
| if (v0 == 0) {
0x0001af90 beqz v0, 0x1b144 | goto label_3;
| }
0x0001af94 lw a3, -0x7fd8(gp) | a3 = *(gp);
0x0001af98 lw t9, -0x7c0c(gp) | t9 = sym.imp.g_key_file_set_comment;
0x0001af9c sw s4, 0x10(sp) | *(var_10h) = s4;
| /* str.This_file_has_been_automatically_generated__DO_NOT_EDIT */
0x0001afa0 addiu a3, a3, 0x6e54 | a3 += 0x6e54;
0x0001afa4 move a2, zero | a2 = 0;
0x0001afa8 move a1, zero | a1 = 0;
0x0001afac move a0, v0 | a0 = v0;
0x0001afb0 move s0, v0 | s0 = v0;
0x0001afb4 jalr t9 | t9 ();
0x0001afb8 lw gp, 0x18(sp) | gp = *(var_18h);
| if (v0 == 0) {
0x0001afbc bnez v0, 0x1b014 |
| label_0:
0x0001afc0 move s2, zero | s2 = 0;
| label_1:
0x0001afc4 lw t9, -0x7c4c(gp) | t9 = sym.imp.g_key_file_free;
0x0001afc8 move a0, s0 | a0 = s0;
0x0001afcc jalr t9 | t9 ();
0x0001afd0 lw gp, 0x18(sp) | gp = *(var_18h);
| label_2:
0x0001afd4 lw a0, 0x44(sp) | a0 = *(var_44h);
0x0001afd8 lw v1, (s3) | v1 = *(s3);
0x0001afdc move v0, s2 | v0 = s2;
| if (a0 != v1) {
0x0001afe0 bne a0, v1, 0x1b180 | goto label_4;
| }
0x0001afe4 lw ra, 0x6c(sp) | ra = *(var_6ch);
0x0001afe8 lw fp, 0x68(sp) | fp = *(var_68h);
0x0001afec lw s7, 0x64(sp) | s7 = *(var_64h);
0x0001aff0 lw s6, 0x60(sp) | s6 = *(var_60h);
0x0001aff4 lw s5, 0x5c(sp) | s5 = *(var_5ch);
0x0001aff8 lw s4, 0x58(sp) | s4 = *(var_58h);
0x0001affc lw s3, 0x54(sp) | s3 = *(var_54h);
0x0001b000 lw s2, 0x50(sp) | s2 = *(var_50h);
0x0001b004 lw s1, 0x4c(sp) | s1 = *(var_4ch);
0x0001b008 lw s0, 0x48(sp) | s0 = *(var_48h);
0x0001b00c addiu sp, sp, 0x70 |
0x0001b010 jr ra | return v1;
| }
0x0001b014 lw s7, -0x7fd8(gp) | s7 = *(gp);
0x0001b018 lw a2, -0x7fd8(gp) | a2 = *(gp);
0x0001b01c lw t9, -0x7c34(gp) | t9 = sym.imp.g_key_file_set_integer;
0x0001b020 lw a3, 0x1c(s1) | a3 = *((s1 + 7));
| /* esilref: 'id' */
0x0001b024 addiu a2, a2, 0x5218 | a2 += 0x5218;
| /* str.recipient */
0x0001b028 addiu a1, s7, 0x6cb8 | a1 = s7 + 0x6cb8;
0x0001b02c move a0, s0 | a0 = s0;
0x0001b030 jalr t9 | t9 ();
0x0001b034 lw a3, 0x10(s1) | a3 = *((s1 + 4));
0x0001b038 lw gp, 0x18(sp) | gp = *(var_18h);
| if (a3 != 0) {
0x0001b03c beqz a3, 0x1b05c |
0x0001b040 lw a2, -0x7fd8(gp) | a2 = *(gp);
0x0001b044 lw t9, -0x7950(gp) | t9 = sym.imp.g_key_file_set_string;
| /* str.nice_name */
0x0001b048 addiu a2, a2, 0x6ea4 | a2 += 0x6ea4;
| /* str.recipient */
0x0001b04c addiu a1, s7, 0x6cb8 | a1 = s7 + 0x6cb8;
0x0001b050 move a0, s0 | a0 = s0;
0x0001b054 jalr t9 | t9 ();
0x0001b058 lw gp, 0x18(sp) | gp = *(var_18h);
| }
0x0001b05c lw t9, -0x7f9c(gp) | t9 = sym.recipient_template_get_id;
0x0001b060 lw a0, 0x14(s1) | a0 = *((s1 + 5));
0x0001b064 addiu s2, sp, 0x2c | s2 = sp + 0x2c;
0x0001b068 bal 0xfa44 | sym_recipient_template_get_id ();
0x0001b06c lw gp, 0x18(sp) | gp = *(var_18h);
| /* str.recipient */
0x0001b070 addiu a1, s7, 0x6cb8 | a1 = s7 + 0x6cb8;
0x0001b074 move a3, v0 | a3 = v0;
0x0001b078 lw a2, -0x7fd0(gp) | a2 = *((gp - 8180));
0x0001b07c lw t9, -0x7950(gp) | t9 = sym.imp.g_key_file_set_string;
| /* str.template_id */
0x0001b080 addiu a2, a2, -0x5d4c | a2 += -0x5d4c;
0x0001b084 move a0, s0 | a0 = s0;
0x0001b088 jalr t9 | t9 ();
0x0001b08c lw gp, 0x18(sp) | gp = *(var_18h);
0x0001b090 lw a1, 0x18(s1) | a1 = *((s1 + 6));
0x0001b094 move a0, s2 | a0 = s2;
0x0001b098 lw t9, -0x7a78(gp) | t9 = sym.imp.g_hash_table_iter_init;
0x0001b09c addiu fp, sp, 0x24 | fp = sp + 0x24;
0x0001b0a0 jalr t9 | t9 ();
0x0001b0a4 lw gp, 0x18(sp) | gp = *(var_18h);
0x0001b0a8 addiu s7, sp, 0x20 | s7 = sp + 0x20;
0x0001b0ac lw s1, -0x7fd8(gp) | s1 = *(gp);
| /* str.parameters */
0x0001b0b0 addiu s1, s1, 0x63cc | s1 += 0x63cc;
0x0001b0b4 b 0x1b0d4 |
| while (v0 != 0) {
0x0001b0b8 lw t9, -0x7950(gp) | t9 = sym.imp.g_key_file_set_string;
0x0001b0bc lw a3, 0x24(sp) | a3 = *(var_24h);
0x0001b0c0 lw a2, 0x20(sp) | a2 = *(var_20h);
0x0001b0c4 move a1, s1 | a1 = s1;
0x0001b0c8 move a0, s0 | a0 = s0;
0x0001b0cc jalr t9 | t9 ();
0x0001b0d0 lw gp, 0x18(sp) | gp = *(var_18h);
0x0001b0d4 lw t9, -0x7a74(gp) | t9 = sym.imp.g_hash_table_iter_next;
0x0001b0d8 move a2, fp | a2 = fp;
0x0001b0dc move a1, s7 | a1 = s7;
0x0001b0e0 move a0, s2 | a0 = s2;
0x0001b0e4 jalr t9 | t9 ();
0x0001b0e8 lw gp, 0x18(sp) | gp = *(var_18h);
0x0001b0ec bnez v0, 0x1b0b8 |
| }
0x0001b0f0 lw t9, -0x7aac(gp) | t9 = sym.imp.g_key_file_to_data;
0x0001b0f4 move a2, s4 | a2 = s4;
0x0001b0f8 addiu a1, sp, 0x28 | a1 = sp + 0x28;
0x0001b0fc move a0, s0 | a0 = s0;
0x0001b100 jalr t9 | t9 ();
0x0001b104 move s1, v0 | s1 = v0;
0x0001b108 lw gp, 0x18(sp) | gp = *(var_18h);
| if (v0 == 0) {
0x0001b10c beqz v0, 0x1afc0 | goto label_0;
| }
0x0001b110 lw t9, -0x792c(gp) | t9 = sym.imp.g_strdup;
0x0001b114 move a0, v0 | a0 = v0;
0x0001b118 jalr t9 | t9 ();
0x0001b11c lw gp, 0x18(sp) | gp = *(var_18h);
0x0001b120 sw v0, (s6) | *(s6) = v0;
0x0001b124 lw v0, 0x28(sp) | v0 = *(var_28h_3);
0x0001b128 lw t9, -0x7864(gp) | t9 = *((gp - 7705));
0x0001b12c move a0, s1 | a0 = s1;
0x0001b130 sw v0, (s5) | *(s5) = v0;
0x0001b134 jalr t9 | t9 ();
0x0001b138 addiu s2, zero, 1 | s2 = 1;
0x0001b13c lw gp, 0x18(sp) | gp = *(var_18h);
0x0001b140 b 0x1afc4 | goto label_1;
| label_3:
0x0001b144 lw t9, -0x7c14(gp) | t9 = sym.imp.ae_error_quark;
0x0001b148 move s2, zero | s2 = 0;
0x0001b14c jalr t9 | t9 ();
0x0001b150 lw gp, 0x18(sp) | gp = *(var_18h);
0x0001b154 lw v1, 0x1c(s1) | v1 = *((s1 + 7));
0x0001b158 addiu a2, zero, 4 | a2 = 4;
0x0001b15c lw a3, -0x7fd0(gp) | a3 = *((gp - 8180));
0x0001b160 lw t9, -0x7b10(gp) | t9 = sym.imp.g_set_error;
0x0001b164 sw v1, 0x10(sp) | *(var_10h) = v1;
| /* str.Failed_to_serialize_recipient:__u */
0x0001b168 addiu a3, a3, -0x5d70 | a3 += -aav.0x00005d70;
0x0001b16c move a1, v0 | a1 = v0;
0x0001b170 move a0, s4 | a0 = s4;
0x0001b174 jalr t9 | t9 ();
0x0001b178 lw gp, 0x18(sp) | gp = *(var_18h);
0x0001b17c b 0x1afd4 | goto label_2;
| label_4:
0x0001b180 lw t9, -0x7ba8(gp) | t9 = sym.imp.__stack_chk_fail;
0x0001b184 jalr t9 | t9 ();
0x0001b188 nop |
| }
; assembly | /* r2dec pseudo code output */
| /* /logs/firmware/unblob_extracted/firmware_extract/4325012-58052244.squashfs_v4_le_extract/usr/bin/actionengined @ 0x1b18c */
| #include <stdint.h>
|
; (fcn) sym.recipient_serialize () | void recipient_serialize () {
0x0001b18c lui gp, 3 |
0x0001b190 addiu gp, gp, -0x704c |
0x0001b194 addu gp, gp, t9 | gp += t9;
0x0001b198 addiu sp, sp, -0x40 |
0x0001b19c lw t9, -0x7db8(gp) | t9 = sym.recipient_serialize_to_data;
0x0001b1a0 sw s0, 0x30(sp) | *(var_30h) = s0;
0x0001b1a4 lw s0, -0x7b1c(gp) | s0 = *((gp - 7879));
0x0001b1a8 sw gp, 0x18(sp) | *(var_18h_2) = gp;
0x0001b1ac sw s2, 0x38(sp) | *(var_38h) = s2;
0x0001b1b0 lw v0, (s0) | v0 = *(s0);
0x0001b1b4 sw s1, 0x34(sp) | *(var_34h) = s1;
0x0001b1b8 move a3, a1 | a3 = a1;
0x0001b1bc sw ra, 0x3c(sp) | *(var_3ch) = ra;
0x0001b1c0 move s1, a1 | s1 = a1;
0x0001b1c4 addiu a2, sp, 0x28 | a2 = sp + 0x28;
0x0001b1c8 addiu a1, sp, 0x20 | a1 = sp + 0x20;
0x0001b1cc sw v0, 0x2c(sp) | *(var_2ch) = v0;
0x0001b1d0 sw zero, 0x20(sp) | *(var_20h_2) = 0;
0x0001b1d4 sw zero, 0x24(sp) | *(var_24h_2) = 0;
0x0001b1d8 sw zero, 0x28(sp) | *(var_28h) = 0;
0x0001b1dc move s2, a0 | s2 = a0;
0x0001b1e0 bal 0x1af24 | sym_recipient_serialize_to_data ();
0x0001b1e4 lw gp, 0x18(sp) | gp = *(var_18h_2);
0x0001b1e8 bnez v0, 0x1b238 |
| while (v0 == 0) {
| label_0:
0x0001b1ec move s1, zero | s1 = 0;
| label_1:
0x0001b1f0 lw t9, -0x7864(gp) | t9 = *((gp - 7705));
0x0001b1f4 lw a0, 0x24(sp) | a0 = *(var_24h_2);
0x0001b1f8 jalr t9 | t9 ();
0x0001b1fc lw gp, 0x18(sp) | gp = *(var_18h_2);
0x0001b200 lw t9, -0x7864(gp) | t9 = *((gp - 7705));
0x0001b204 lw a0, 0x20(sp) | a0 = *(var_20h_2);
0x0001b208 jalr t9 | t9 ();
0x0001b20c lw a0, 0x2c(sp) | a0 = *(var_2ch);
0x0001b210 lw v1, (s0) | v1 = *(s0);
0x0001b214 lw gp, 0x18(sp) | gp = *(var_18h_2);
0x0001b218 move v0, s1 | v0 = s1;
| if (a0 != v1) {
0x0001b21c bne a0, v1, 0x1b2ac | goto label_2;
| }
0x0001b220 lw ra, 0x3c(sp) | ra = *(var_3ch);
0x0001b224 lw s2, 0x38(sp) | s2 = *(var_38h);
0x0001b228 lw s1, 0x34(sp) | s1 = *(var_34h);
0x0001b22c lw s0, 0x30(sp) | s0 = *(var_30h);
0x0001b230 addiu sp, sp, 0x40 |
0x0001b234 jr ra | return v0;
0x0001b238 lw a2, -0x7fd8(gp) | a2 = *(gp);
0x0001b23c lw t9, -0x7e38(gp) | t9 = sym.create_file_path_uint;
0x0001b240 lw a1, 0xc(s2) | a1 = *((s2 + 3));
0x0001b244 lw a0, 0x1c(s2) | a0 = *((s2 + 7));
0x0001b248 addiu v0, sp, 0x24 | v0 = sp + 0x24;
0x0001b24c sw s1, 0x14(sp) | *(var_14h) = s1;
0x0001b250 sw v0, 0x10(sp) | *(var_10h_2) = v0;
0x0001b254 addiu a3, zero, 1 | a3 = 1;
| /* str.conf */
0x0001b258 addiu a2, a2, 0x6ec4 | a2 += 0x6ec4;
0x0001b25c bal 0x11d48 | sym_create_file_path_uint ();
0x0001b260 lw gp, 0x18(sp) | gp = *(var_18h_2);
0x0001b264 beqz v0, 0x1b1ec |
| }
0x0001b268 lw a1, -0x7fd0(gp) | a1 = *((gp - 8180));
0x0001b26c lw v0, 0x28(sp) | v0 = *(var_28h);
0x0001b270 lw t9, -0x7db4(gp) | t9 = sym.set_file_contents;
0x0001b274 lw a3, 0x20(sp) | a3 = *(var_20h_2);
0x0001b278 lw a0, 0x24(sp) | a0 = *(var_24h_2);
0x0001b27c sw s1, 0x14(sp) | *(var_14h) = s1;
0x0001b280 sw v0, 0x10(sp) | *(var_10h_2) = v0;
0x0001b284 addiu a2, zero, 0x1a0 | a2 = aav.0x000001a0;
| /* esilref: 'tmp' */
0x0001b288 addiu a1, a1, -0x5cc8 | a1 += -0x5cc8;
0x0001b28c bal 0x11e24 | sym_set_file_contents ();
0x0001b290 lw gp, 0x18(sp) | gp = *(var_18h_2);
| if (v0 == 0) {
0x0001b294 beqz v0, 0x1b1ec | goto label_0;
| }
0x0001b298 lw t9, -0x7e48(gp) | t9 = sym.sync_filesystem
0x0001b29c addiu s1, zero, 1 | s1 = 1;
0x0001b2a0 bal 0x11a20 | sym_sync_filesystem ()
0x0001b2a4 lw gp, 0x18(sp) | gp = *(var_18h_2);
0x0001b2a8 b 0x1b1f0 | goto label_1;
| label_2:
0x0001b2ac lw t9, -0x7ba8(gp) | t9 = sym.imp.__stack_chk_fail;
0x0001b2b0 jalr t9 | t9 ();
0x0001b2b4 nop |
| }
[*] Function system used 12 times actionengined