[*] Binary protection state of dbus-send
Full RELRO Canary found NX enabled PIE enabled No RPATH No RUNPATH No Symbols
[*] Function fprintf tear down of dbus-send
; assembly | /* r2dec pseudo code output */
| /* /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-80367616.squashfs_v4_le_extract/usr/bin/dbus-send @ 0x2204 */
| #include <stdint.h>
|
; (fcn) fcn.00002204 () | void fcn_00002204 (int16_t arg_ch, int16_t arg_10h, int16_t arg_14h, int16_t arg_18h, char * arg_1ch, int16_t arg_20h, char * s2, char * arg_28h, int16_t arg_2ch, int16_t arg_30h, int16_t arg_34h, int16_t arg_38h, int16_t arg_40h, int16_t arg_44h, int16_t arg_50h, int16_t arg_88h, int16_t arg_c0h, int16_t arg_f8h, int16_t arg_f9h, int16_t arg_fch, int16_t arg_fdh, int16_t arg_feh, int16_t arg_ffh, int16_t arg_100h) {
| int16_t var_0h;
| do {
0x00001870 ldr r4, [r6, 4]! | r4 = *((r6 += 4));
0x00001874 mov r1, sb | r1 = sb;
0x00001876 mov r0, r4 | r0 = r4;
0x00001878 blx 0x17d8 | r0 = strcmp (r0, r1);
0x0000187c cmp r0, 0 |
| if (r0 != 0) {
0x0000187e beq 0x1912 |
0x00001880 ldr.w r1, [pc, 0x870] | r1 = *(0x000020f4);
0x00001884 mov r0, r4 | r0 = r4;
0x00001886 add r1, pc | r1 += pc;
0x00001888 blx 0x17d8 | r0 = strcmp (r0, r1);
0x0000188c cmp r0, 0 |
| if (r0 == 0) {
0x0000188e beq 0x1924 | goto label_26;
| }
0x00001890 ldr.w r1, [pc, 0x864] |
0x00001894 movs r2, 6 | r2 = 6;
0x00001896 mov r0, r4 | r0 = r4;
0x00001898 add r1, pc | r1 = 0x3994;
0x0000189a blx 0x17b4 | r0 = strncmp (r0, r1, r2);
0x0000189e cmp r0, 0 |
| if (r0 == 0) {
0x000018a0 beq 0x192c | goto label_27;
| }
0x000018a2 ldr.w r1, [pc, 0x858] | r1 = *(0x000020fc);
0x000018a6 movs r2, 7 | r2 = 7;
0x000018a8 mov r0, r4 | r0 = r4;
0x000018aa add r1, pc | r1 += pc;
0x000018ac blx 0x17b4 | r0 = strncmp (r0, r1, r2);
0x000018b0 cmp r0, 0 |
| if (r0 == 0) {
0x000018b2 beq 0x192c | goto label_27;
| }
0x000018b4 ldr.w r1, [pc, 0x848] |
0x000018b8 movs r2, 0xa | r2 = 0xa;
0x000018ba mov r0, r4 | r0 = r4;
0x000018bc add r1, pc | r1 = 0x39c0;
0x000018be blx 0x17b4 | r0 = strncmp (r0, r1, r2);
| if (r0 == 0) {
0x000018c2 cbz r0, 0x192c | goto label_27;
| }
0x000018c4 ldr.w r1, [pc, 0x83c] |
0x000018c8 movs r2, 9 | r2 = 9;
0x000018ca mov r0, r4 | r0 = r4;
0x000018cc add r1, pc | r1 = "error";
0x000018ce blx 0x17b4 | r0 = strncmp (r0, "error", r2);
0x000018d2 cmp r0, 0 |
| if (r0 == 0) {
0x000018d4 beq.w 0x1a0a | goto label_28;
| }
0x000018d8 ldr.w r1, [pc, 0x82c] | r1 = case.0x2322.17;
0x000018dc movs r2, 0xd | r2 = 0xd;
0x000018de mov r0, r4 | r0 = r4;
0x000018e0 add r1, pc | r1 += pc;
0x000018e2 blx 0x17b4 | r0 = strncmp (r0, r1, r2);
0x000018e6 cmp r0, 0 |
| if (r0 != 0) {
0x000018e8 bne 0x195a | goto label_29;
| }
0x000018ea ldr.w r1, [pc, 0x820] | r1 = *(0x0000210c);
0x000018ee add.w r3, r4, 0xd | r3 = r4 + 0xd;
0x000018f2 mov r0, r3 | r0 = r3;
0x000018f4 str r3, [sp, 0x1c] | *(arg_1ch) = r3;
0x000018f6 add r1, pc | r1 += pc;
0x000018f8 blx 0x17d8 | r0 = strcmp (r0, r1);
0x000018fc cmp r0, 0 |
| if (r0 == 0) {
0x000018fe beq.w 0x1a2c | goto label_30;
| }
0x00001902 ldrb r3, [r4, 0xd] | r3 = *((r4 + 0xd));
0x00001904 cmp r3, 0 |
| if (r3 != 0) {
0x00001906 bne.w 0x1d00 | goto label_31;
| }
0x0000190a movs r3, 1 | r3 = 1;
0x0000190c strd r3, r3, [sp, 0x1c] | __asm ("strd r3, r3, [sp, 0x1c]");
0x00001910 b 0x1918 |
| } else {
0x00001912 mov.w fp, 1 |
0x00001916 mov sl, fp | sl = fp;
| }
| label_0:
0x00001918 adds r5, 1 | r5++;
0x0000191a cmp r7, r5 |
0x0000191c bne 0x1870 |
| } while (r7 != r5);
| label_2:
0x0000191e movs r0, 1 | r0 = 1;
| label_1:
0x00001920 bl 0x2ff4 | r0 = fcn_00002ff4 (r0);
| label_26:
0x00001924 mov sl, r0 | sl = r0;
0x00001926 mov.w fp, 1 |
0x0000192a b 0x1918 | goto label_0;
| label_27:
0x0000192c ldrb r3, [r4, 2] | r3 = *((r4 + 2));
0x0000192e mov r0, r4 | r0 = r4;
0x00001930 movs r1, 0x3d | r1 = 0x3d;
0x00001932 sub.w r3, r3, 0x62 | r3 -= 0x62;
0x00001936 clz r3, r3 | r3 &= r3;
0x0000193a lsrs r3, r3, 5 | r3 >>= 5;
0x0000193c str r3, [sp, 0xc] | *(arg_ch) = r3;
0x0000193e blx 0x1508 | strchr (r0, r1);
0x00001942 ldrb r3, [r0, 1] | r3 = *((r0 + 1));
0x00001944 add.w r8, r0, 1 | r8 = r0 + 1;
0x00001948 cmp r3, 0 |
| if (r3 != 0) {
0x0000194a bne 0x1918 | goto label_0;
| }
0x0000194c ldr.w r0, [pc, 0x7c0] | r0 = *(0x00002110);
0x00001950 movs r2, 0x2a | r2 = 0x2a;
0x00001952 ldr.w r3, [pc, 0x7c0] | r3 = *(0x2116);
0x00001956 add r0, pc | r0 += pc;
0x00001958 b 0x1aa0 | goto label_13;
| label_29:
0x0000195a ldr.w r1, [pc, 0x7bc] | r1 = *(0x00002118);
0x0000195e movs r2, 0x10 | r2 = 0x10;
0x00001960 mov r0, r4 | r0 = r4;
0x00001962 add r1, pc | r1 += pc;
0x00001964 blx 0x17b4 | r0 = strncmp (r0, r1, r2);
0x00001968 cmp r0, 0 |
| if (r0 == 0) {
0x0000196a beq 0x1a36 | goto label_32;
| }
0x0000196c ldr.w r1, [pc, 0x7ac] |
0x00001970 movs r2, 7 | r2 = 7;
0x00001972 mov r0, r4 | r0 = r4;
0x00001974 add r1, pc | r1 = 0x3a94;
0x00001976 blx 0x17b4 | r0 = strncmp (r0, r1, r2);
0x0000197a cmp r0, 0 |
| if (r0 == 0) {
0x0000197c beq 0x1a7e | goto label_33;
| }
0x0000197e ldr.w r1, [pc, 0x7a0] | r1 = *(0x00002120);
0x00001982 movs r2, 7 | r2 = 7;
0x00001984 mov r0, r4 | r0 = r4;
0x00001986 add r1, pc | r1 += pc;
0x00001988 blx 0x17b4 | r0 = strncmp (r0, r1, r2);
0x0000198c cmp r0, 0 |
| if (r0 == 0) {
0x0000198e beq.w 0x1b56 | goto label_34;
| }
0x00001992 ldr.w r1, [pc, 0x790] |
0x00001996 mov r0, r4 | r0 = r4;
0x00001998 add r1, pc | r1 = 0x3ac2;
0x0000199a blx 0x17d8 | r0 = strcmp (r0, r1);
0x0000199e cmp r0, 0 |
| if (r0 == 0) {
0x000019a0 beq 0x1920 | goto label_1;
| }
0x000019a2 ldrb r3, [r4] | r3 = *(r4);
0x000019a4 cmp r3, 0x2d |
| if (r3 == 0x2d) {
0x000019a6 beq 0x191e | goto label_2;
| }
0x000019a8 ldr r3, [sp, 0x28] | r3 = *(arg_28h);
0x000019aa cmp r3, 0 |
| if (r3 == 0) {
0x000019ac beq 0x1aae | goto label_35;
| }
0x000019ae subs.w r2, r8, 0 | r2 = r8 - 0;
0x000019b2 it ne |
| if (r2 == r8) {
0x000019b4 movne r2, 1 | r2 = 1;
| }
0x000019b6 cmp.w fp, 0 |
| if (fp != 0) {
0x000019ba beq 0x19c0 |
0x000019bc cmp r2, 0 |
| if (r2 != 0) {
0x000019be bne 0x1a94 | goto label_36;
| }
| }
0x000019c0 ldr r3, [sp, 0x14] | r3 = *(arg_14h);
0x000019c2 cmp r3, 0 |
| if (r3 == 0) {
0x000019c4 beq 0x1ab2 | goto label_37;
| }
0x000019c6 cmp r2, 0 |
| if (r2 == 0) {
0x000019c8 beq 0x1ab2 | goto label_37;
| }
0x000019ca ldr r3, [sp, 0xc] | r3 = *(arg_ch);
0x000019cc cmp r3, 0 |
| if (r3 == 0) {
0x000019ce beq.w 0x1b8c | goto label_38;
| }
0x000019d2 ldr r3, [sp, 0x24] | r3 = *(s2);
0x000019d4 cmp r3, 0 |
| if (r3 == 0) {
0x000019d6 beq.w 0x1bf2 | goto label_39;
| }
| label_3:
0x000019da ldr r6, [sp, 0x24] | r6 = *(s2);
0x000019dc mov r0, r6 | r0 = r6;
0x000019de blx 0x149c | r0 = dbus_message_type_from_string ();
0x000019e2 cmp r0, 1 |
0x000019e4 str r0, [sp, 0x1c] | *(arg_1ch) = r0;
| if (r0 == 1) {
0x000019e6 beq 0x1ab8 | goto label_40;
| }
0x000019e8 cmp r0, 4 |
| if (r0 == 4) {
0x000019ea beq 0x1ab8 | goto label_40;
| }
0x000019ec ldr.w r2, [pc, 0x738] | r2 = *(0x00002128);
0x000019f0 mov r3, r6 | r3 = r6;
0x000019f2 ldr.w r0, [pc, 0x720] | r0 = *(0x2116);
0x000019f6 add r2, pc | r2 += pc;
| label_10:
0x000019f8 ldr r4, [sp, 0x10] | r4 = *(arg_10h);
0x000019fa movs r1, 1 | r1 = 1;
0x000019fc ldr r0, [r4, r0] | r0 = *((r4 + r0));
0x000019fe ldr r0, [r0] | r0 = *(r0);
0x00001a00 blx 0x16e8 | fprintf_chk ()
0x00001a04 movs r0, 1 | r0 = 1;
0x00001a06 blx 0x17e4 | exit (r0);
| label_28:
0x00001a0a mov r0, r4 | r0 = r4;
0x00001a0c movs r1, 0x3d | r1 = 0x3d;
0x00001a0e blx 0x1508 | strchr (r0, r1);
0x00001a12 ldrb r3, [r0, 1] | r3 = *((r0 + 1));
0x00001a14 adds r2, r0, 1 | r2 = r0 + 1;
0x00001a16 str r2, [sp, 0x14] | *(arg_14h) = r2;
0x00001a18 cmp r3, 0 |
| if (r3 != 0) {
0x00001a1a bne.w 0x1918 | goto label_0;
| }
0x00001a1e ldr.w r0, [pc, 0x70c] |
0x00001a22 movs r2, 0x1c | r2 = 0x1c;
0x00001a24 ldr.w r3, [pc, 0x6ec] | r3 = *(0x2114);
0x00001a28 add r0, pc | r0 = 0x3b5a;
0x00001a2a b 0x1aa0 | goto label_13;
| label_30:
0x00001a2c movs r3, 1 | r3 = 1;
0x00001a2e str r3, [sp, 0x1c] | *(arg_1ch) = r3;
0x00001a30 str r3, [sp, 0x30] | *(arg_30h) = r3;
0x00001a32 str r3, [sp, 0x20] | *(arg_20h) = r3;
0x00001a34 b 0x1918 | goto label_0;
| label_32:
0x00001a36 str r0, [sp, 0x34] | *(arg_34h) = r0;
0x00001a38 movs r1, 0x3d | r1 = 0x3d;
0x00001a3a mov r0, r4 | r0 = r4;
0x00001a3c blx 0x1508 | strchr (r0, r1);
0x00001a40 ldrb r2, [r0, 1] | r2 = *((r0 + 1));
0x00001a42 ldr r3, [sp, 0x34] | r3 = *(arg_34h);
0x00001a44 cmp r2, 0 |
| if (r2 == 0) {
0x00001a46 beq.w 0x1d12 | goto label_41;
| }
0x00001a4a mov r1, r3 | r1 = r3;
0x00001a4c adds r0, 1 | r0++;
0x00001a4e movs r2, 0xa | r2 = 0xa;
0x00001a50 blx 0x1664 | r0 = strtol (r0, r1, r2);
0x00001a54 subs r3, r0, 0 | r3 = r0 - 0;
0x00001a56 str r3, [sp, 0x34] | *(arg_34h) = r3;
| if (r3 > r0) {
0x00001a58 bgt.w 0x1918 | goto label_0;
| }
0x00001a5c movs r1, 0x3d | r1 = 0x3d;
0x00001a5e mov r0, r4 | r0 = r4;
0x00001a60 blx 0x1508 | strchr (r0, r1);
0x00001a64 ldr.w r2, [pc, 0x6c8] | r2 = *(0x00002130);
0x00001a68 adds r3, r0, 1 | r3 = r0 + 1;
0x00001a6a ldr.w r4, [pc, 0x6a8] | r4 = *(0x2116);
0x00001a6e movs r1, 1 | r1 = 1;
0x00001a70 ldr r0, [sp, 0x10] | r0 = *(arg_10h);
0x00001a72 add r2, pc | r2 += pc;
| label_12:
0x00001a74 ldr r0, [r0, r4] | r0 = *((r0 + r4));
0x00001a76 ldr r0, [r0] | r0 = *(r0);
0x00001a78 blx 0x16e8 | fprintf_chk ()
0x00001a7c b 0x191e | goto label_2;
| label_33:
0x00001a7e mov r0, r4 | r0 = r4;
0x00001a80 movs r1, 0x3d | r1 = 0x3d;
0x00001a82 blx 0x1508 | strchr (r0, r1);
0x00001a86 ldrb r3, [r0, 1] | r3 = *((r0 + 1));
0x00001a88 cmp r3, 0 |
| if (r3 == 0) {
0x00001a8a beq.w 0x1d3a | goto label_42;
| }
0x00001a8e adds r3, r0, 1 | r3 = r0 + 1;
0x00001a90 str r3, [sp, 0x2c] | *(arg_2ch) = r3;
0x00001a92 b 0x1918 | goto label_0;
| label_36:
0x00001a94 ldr.w r0, [pc, 0x69c] | r0 = *(0x00002134);
0x00001a98 movs r2, 0x44 | r2 = 0x44;
0x00001a9a ldr.w r3, [pc, 0x678] | r3 = *(0x2116);
0x00001a9e add r0, pc | r0 += pc;
| label_13:
0x00001aa0 ldr r4, [sp, 0x10] | r4 = *(arg_10h);
0x00001aa2 movs r1, 1 | r1 = 1;
0x00001aa4 ldr r3, [r4, r3] | r3 = *((r4 + r3));
0x00001aa6 ldr r3, [r3] | r3 = *(r3);
0x00001aa8 blx 0x16ac | fwrite (r0, r1, r2, r3);
0x00001aac b 0x191e | goto label_2;
| label_35:
0x00001aae str r4, [sp, 0x28] | *(arg_28h) = r4;
0x00001ab0 b 0x1918 | goto label_0;
| label_37:
0x00001ab2 ldr r3, [sp, 0x24] | r3 = *(s2);
0x00001ab4 cmp r3, 0 |
| if (r3 != 0) {
0x00001ab6 bne 0x19da | goto label_3;
| }
| label_40:
0x00001ab8 add r6, sp, 0x40 | r6 += arg_40h;
0x00001aba mov r0, r6 | r0 = r6;
0x00001abc blx 0x1700 | dbus_error_init ();
0x00001ac0 ldr r3, [sp, 0x2c] | r3 = *(arg_2ch);
| if (r3 != 0) {
0x00001ac2 cbz r3, 0x1ad2 |
0x00001ac4 mov r1, r6 | r1 = r6;
0x00001ac6 mov r0, r3 | r0 = r3;
0x00001ac8 blx 0x16d0 | r0 = dbus_validate_bus_name ();
0x00001acc cmp r0, 0 |
| if (r0 == 0) {
0x00001ace beq.w 0x1c10 | goto label_43;
| }
| }
0x00001ad2 ldr r3, [sp, 0x14] | r3 = *(arg_14h);
0x00001ad4 cbz r3, 0x1ae2 |
| while (r3 == 0) {
| label_4:
0x00001ad6 ldr r0, [sp, 0x14] | r0 = *(arg_14h);
0x00001ad8 mov r1, r6 | r1 = r6;
0x00001ada blx 0x16d0 | r0 = dbus_validate_bus_name ();
0x00001ade cmp r0, 0 |
| if (r0 != 0) {
0x00001ae0 beq 0x1bce |
0x00001ae2 ldr r0, [sp, 0x28] | r0 = *(arg_28h);
0x00001ae4 mov r1, r6 | r1 = r6;
0x00001ae6 blx 0x1694 | r0 = dbus_validate_path ();
0x00001aea cmp r0, 0 |
| if (r0 != 0) {
0x00001aec beq 0x1baa |
0x00001aee mov r1, r6 | r1 = r6;
0x00001af0 cmp.w r8, 0 |
| if (r8 == 0) {
0x00001af4 beq.w 0x1c58 | goto label_44;
| }
0x00001af8 mov r0, r8 | r0 = r8;
0x00001afa blx 0x16b8 | r0 = dbus_connection_open ();
0x00001afe mov sb, r0 | sb = r0;
| if (r0 != 0) {
0x00001b00 cbz r0, 0x1b64 |
0x00001b02 ldr r3, [sp, 0xc] | r3 = *(arg_ch);
| if (r3 != 0) {
0x00001b04 cbz r3, 0x1b12 |
0x00001b06 mov r1, r6 | r1 = r6;
0x00001b08 blx 0x1520 | r0 = dbus_bus_register ();
0x00001b0c cmp r0, 0 |
| if (r0 == 0) {
0x00001b0e beq.w 0x1d1e | goto label_45;
| }
| }
| label_7:
0x00001b12 ldr r1, [sp, 0x14] | r1 = *(arg_14h);
0x00001b14 cmp r1, 0 |
| if (r1 == 0) {
0x00001b16 beq.w 0x1c1e | goto label_46;
| }
0x00001b1a mov r3, r6 | r3 = r6;
0x00001b1c movs r2, 4 | r2 = 4;
0x00001b1e mov r0, sb | r0 = sb;
0x00001b20 blx 0x1754 | r0 = dbus_bus_request_name ();
0x00001b24 cmp r0, 1 |
0x00001b26 mov r1, r0 | r1 = r0;
| if (r0 == 1) {
0x00001b28 beq 0x1c1e | goto label_46;
| }
0x00001b2a cmp r0, 3 |
| if (r0 == 3) {
0x00001b2c beq.w 0x1cd8 | goto label_47;
| }
0x00001b30 adds r3, r0, 1 | r3 = r0 + 1;
| if (r3 == r0) {
0x00001b32 beq.w 0x1ce6 | goto label_48;
| }
0x00001b36 ldr.w r2, [pc, 0x600] | r2 = *(0x00002138);
0x00001b3a ldr.w r0, [pc, 0x5d8] | r0 = *(0x2116);
0x00001b3e ldrd r4, r3, [sp, 0x10] | __asm ("ldrd r4, r3, [arg_10h]");
0x00001b42 add r2, pc | r2 += pc;
0x00001b44 ldr r0, [r4, r0] | r0 = *((r4 + r0));
0x00001b46 str r1, [sp] | *(sp) = r1;
| label_23:
0x00001b48 ldr r0, [r0] | r0 = *(r0);
0x00001b4a movs r1, 1 | r1 = 1;
0x00001b4c blx 0x16e8 | fprintf_chk ()
0x00001b50 movs r0, 1 | r0 = 1;
0x00001b52 blx 0x17e4 | exit (r0);
| label_34:
0x00001b56 mov r0, r4 | r0 = r4;
0x00001b58 movs r1, 0x3d | r1 = 0x3d;
0x00001b5a blx 0x1508 | r0 = strchr (r0, r1);
0x00001b5e adds r3, r0, 1 | r3 = r0 + 1;
0x00001b60 str r3, [sp, 0x24] | *(s2) = r3;
0x00001b62 b 0x1918 | goto label_0;
| }
0x00001b64 ldr.w r3, [pc, 0x5ac] | r3 = *(0x2114);
0x00001b68 ldr r2, [sp, 0x10] | r2 = *(arg_10h);
0x00001b6a ldr r3, [r2, r3] | r3 = *((r2 + r3));
0x00001b6c ldr r0, [r3] | r0 = *(0x2114);
| label_8:
0x00001b6e ldr r1, [sp, 0x44] | r1 = *(arg_44h);
0x00001b70 mov r3, r8 | r3 = r8;
0x00001b72 ldr.w r2, [pc, 0x5c8] | r2 = *(0x0000213c);
0x00001b76 str r1, [sp] | *(sp) = r1;
0x00001b78 movs r1, 1 | r1 = 1;
0x00001b7a add r2, pc | r2 += pc;
| label_11:
0x00001b7c blx 0x16e8 | fprintf_chk ()
0x00001b80 mov r0, r6 | r0 = r6;
0x00001b82 blx 0x1790 | dbus_error_free ();
0x00001b86 movs r0, 1 | r0 = 1;
0x00001b88 blx 0x17e4 | exit (r0);
| label_38:
0x00001b8c ldr.w r0, [pc, 0x5b0] | r0 = *(0x00002140);
0x00001b90 movs r2, 0x29 | r2 = 0x29;
0x00001b92 ldr.w r3, [pc, 0x580] | r3 = *(0x2116);
0x00001b96 add r0, pc | r0 += pc;
| label_9:
0x00001b98 ldr r4, [sp, 0x10] | r4 = *(arg_10h);
0x00001b9a movs r1, 1 | r1 = 1;
0x00001b9c ldr r3, [r4, r3] | r3 = *((r4 + r3));
0x00001b9e ldr r3, [r3] | r3 = *(r3);
0x00001ba0 blx 0x16ac | fwrite (r0, r1, r2, r3);
0x00001ba4 movs r0, 1 | r0 = 1;
0x00001ba6 blx 0x17e4 | exit (r0);
| }
0x00001baa ldr.w r2, [pc, 0x598] |
0x00001bae ldr.w r1, [pc, 0x564] | r1 = *(0x2116);
0x00001bb2 ldr r3, [sp, 0x44] | r3 = *(arg_44h);
0x00001bb4 add r2, pc | r2 = 0x3cfe;
| label_6:
0x00001bb6 ldr r0, [sp, 0x10] | r0 = *(arg_10h);
0x00001bb8 ldr r1, [r0, r1] | r1 = *((r0 + r1));
0x00001bba ldr r0, [r1] | r0 = *(r1);
0x00001bbc movs r1, 1 | r1 = 1;
0x00001bbe blx 0x16e8 | fprintf_chk ()
0x00001bc2 mov r0, r6 | r0 = r6;
0x00001bc4 blx 0x1790 | dbus_error_free ();
0x00001bc8 movs r0, 1 | r0 = 1;
0x00001bca blx 0x17e4 | exit (r0);
| }
0x00001bce ldr.w r2, [pc, 0x578] |
0x00001bd2 ldr.w r1, [pc, 0x540] | r1 = *(0x2116);
0x00001bd6 ldr r3, [sp, 0x14] | r3 = *(arg_14h);
0x00001bd8 add r2, pc | r2 = 0x3d26;
| label_5:
0x00001bda ldr r0, [sp, 0x10] | r0 = *(arg_10h);
0x00001bdc ldr r1, [r0, r1] | r1 = *((r0 + r1));
0x00001bde ldr r0, [r1] | r0 = *(r1);
0x00001be0 movs r1, 1 | r1 = 1;
0x00001be2 blx 0x16e8 | fprintf_chk ()
0x00001be6 mov r0, r6 | r0 = r6;
0x00001be8 blx 0x1790 | dbus_error_free ();
0x00001bec movs r0, 1 | r0 = 1;
0x00001bee bl 0x2ff4 | fcn_00002ff4 (r0);
| label_39:
0x00001bf2 add r6, sp, 0x40 | r6 += arg_40h;
0x00001bf4 mov r0, r6 | r0 = r6;
0x00001bf6 blx 0x1700 | dbus_error_init ();
0x00001bfa ldr r3, [sp, 0x2c] | r3 = *(arg_2ch);
0x00001bfc cmp r3, 0 |
0x00001bfe beq.w 0x1ad6 |
| }
0x00001c02 ldr r0, [sp, 0x2c] | r0 = *(arg_2ch);
0x00001c04 mov r1, r6 | r1 = r6;
0x00001c06 blx 0x16d0 | r0 = dbus_validate_bus_name ();
0x00001c0a cmp r0, 0 |
| if (r0 != 0) {
0x00001c0c bne.w 0x1ad6 | goto label_4;
| }
| label_43:
0x00001c10 ldr.w r2, [pc, 0x538] | r2 = *(0x0000214c);
0x00001c14 ldr.w r1, [pc, 0x4fc] | r1 = *(0x2114);
0x00001c16 asrs r4, r7, 0x13 | r4 = r7 >> 0x13;
0x00001c18 ldr r3, [sp, 0x2c] | r3 = *(arg_2ch);
0x00001c1a add r2, pc | r2 += pc;
0x00001c1c b 0x1bda | goto label_5;
| label_46:
0x00001c1e ldr r3, [sp, 0x1c] | r3 = *(arg_1ch);
0x00001c20 cmp r3, 1 |
| if (r3 == 1) {
0x00001c22 beq 0x1c8c | goto label_49;
| }
0x00001c24 ldr r3, [sp, 0x1c] | r3 = *(arg_1ch);
0x00001c26 cmp r3, 4 |
| if (r3 != 4) {
0x00001c28 bne 0x1c7e | goto label_50;
| }
0x00001c2a movs r1, 0x2e | r1 = 0x2e;
0x00001c2c mov r0, r4 | r0 = r4;
0x00001c2e blx 0x1550 | r0 = strrchr (r0, r1);
0x00001c32 mov r8, r0 | r8 = r0;
0x00001c34 cmp r0, 0 |
| if (r0 == 0) {
0x00001c36 beq.w 0x1d60 | goto label_51;
| }
0x00001c3a movs r3, 0 | r3 = 0;
0x00001c3c mov r1, r6 | r1 = r6;
0x00001c3e strb r3, [r0] | *(r0) = r3;
0x00001c40 mov r0, r4 | r0 = r4;
0x00001c42 blx 0x1658 | r0 = dbus_validate_interface ();
0x00001c46 cmp r0, 0 |
| if (r0 != 0) {
0x00001c48 bne 0x1d46 | goto label_52;
| }
0x00001c4a ldr.w r2, [pc, 0x504] |
0x00001c4e ldr.w r1, [pc, 0x4c4] | r1 = *(0x2116);
0x00001c52 ldr r3, [sp, 0x44] | r3 = *(arg_44h);
0x00001c54 add r2, pc | r2 = 0x3daa;
0x00001c56 b 0x1bb6 | goto label_6;
| label_44:
0x00001c58 mov r0, sl | r0 = sl;
0x00001c5a blx 0x161c | r0 = dbus_bus_get ();
0x00001c5e mov sb, r0 | sb = r0;
0x00001c60 cmp r0, 0 |
| if (r0 != 0) {
0x00001c62 bne.w 0x1b12 | goto label_7;
| }
0x00001c66 ldr.w r3, [pc, 0x4ac] | r3 = *(0x2116);
0x00001c6a ldr r2, [sp, 0x10] | r2 = *(arg_10h);
0x00001c6c ldr r3, [r2, r3] | r3 = *((r2 + r3));
0x00001c6e ldr r0, [r3] | r0 = *(0x2116);
0x00001c70 cmp.w sl, 0 |
| if (sl != 0) {
0x00001c74 bne 0x1d32 | goto label_53;
| }
0x00001c76 ldr.w r8, [pc, 0x4dc] | r8 = *(0x00002154);
0x00001c7a add r8, pc | r8 += pc;
0x00001c7c b 0x1b6e | goto label_8;
| label_50:
0x00001c7e ldr.w r0, [pc, 0x4d8] |
0x00001c82 movs r2, 0x25 | r2 = 0x25;
0x00001c84 ldr.w r3, [pc, 0x48c] | r3 = *(0x2114);
0x00001c88 add r0, pc | r0 = 0x3de6;
0x00001c8a b 0x1b98 | goto label_9;
| label_49:
0x00001c8c movs r1, 0x2e | r1 = 0x2e;
0x00001c8e mov r0, r4 | r0 = r4;
0x00001c90 blx 0x1550 | r0 = strrchr (r0, r1);
0x00001c94 mov sl, r0 | sl = r0;
0x00001c96 cmp r0, 0 |
| if (r0 == 0) {
0x00001c98 beq.w 0x1fca | goto label_54;
| }
0x00001c9c mov.w r8, 0 | r8 = 0;
0x00001ca0 mov r1, r6 | r1 = r6;
0x00001ca2 strb.w r8, [r0] | *(r0) = r8;
0x00001ca6 mov r0, r4 | r0 = r4;
0x00001ca8 blx 0x1658 | r0 = dbus_validate_interface ();
0x00001cac cmp r0, 0 |
| if (r0 != 0) {
0x00001cae bne.w 0x1fac | goto label_55;
| }
0x00001cb2 ldr.w r2, [pc, 0x460] |
0x00001cb6 ldr r1, [sp, 0x10] | r1 = *(arg_10h);
0x00001cb8 ldr r3, [sp, 0x44] | r3 = *(arg_44h);
0x00001cba ldr r2, [r1, r2] | r2 = *((r1 + r2));
0x00001cbc ldr r0, [r2] | r0 = *(0x2116);
0x00001cbe ldr.w r2, [pc, 0x49c] | r2 = *(0x0000215c);
0x00001cc2 add r2, pc | r2 = 0x3ddc;
| label_20:
0x00001cc4 ldr r4, [sp, 0x1c] | r4 = *(arg_1ch);
0x00001cc6 mov r1, r4 | r1 = r4;
0x00001cc8 blx 0x16e8 | fprintf_chk ()
0x00001ccc mov r0, r6 | r0 = r6;
0x00001cce blx 0x1790 | dbus_error_free ();
0x00001cd2 mov r0, r4 | r0 = r4;
0x00001cd4 blx 0x17e4 | exit (r0);
| label_47:
0x00001cd8 ldr.w r2, [pc, 0x484] | r2 = *(0x00002160);
0x00001cdc ldr.w r0, [pc, 0x434] | r0 = *(0x2114);
0x00001ce0 ldr r3, [sp, 0x14] | r3 = *(arg_14h);
0x00001ce2 add r2, pc | r2 += pc;
0x00001ce4 b 0x19f8 | goto label_10;
| label_48:
0x00001ce6 ldr.w r2, [pc, 0x42c] | r2 = *(0x2116);
0x00001cea ldrd r0, r3, [sp, 0x10] | __asm ("ldrd r0, r3, [arg_10h]");
0x00001cee ldr r1, [sp, 0x44] | r1 = *(arg_44h);
0x00001cf0 ldr r0, [r0, r2] | r0 = *((r0 + r2));
0x00001cf2 ldr.w r2, [pc, 0x470] |
0x00001cf6 str r1, [sp] | *(sp) = r1;
0x00001cf8 add r2, pc | r2 = 0x3e62;
| do {
0x00001cfa ldr r0, [r0] | r0 = *(r0);
0x00001cfc movs r1, 1 | r1 = 1;
0x00001cfe b 0x1b7c | goto label_11;
| label_31:
0x00001d00 ldr.w r2, [pc, 0x464] | r2 = *(0x00002168);
0x00001d04 movs r1, 1 | r1 = 1;
0x00001d06 ldr.w r0, [pc, 0x40c] | r0 = *(0x2116);
0x00001d0a ldr r3, [sp, 0x1c] | r3 = *(arg_1ch);
0x00001d0c ldr r4, [sp, 0x10] | r4 = *(arg_10h);
0x00001d0e add r2, pc | r2 += pc;
0x00001d10 b 0x1a74 | goto label_12;
| label_41:
0x00001d12 ldr.w r0, [pc, 0x458] | r0 = *(0x0000216c);
0x00001d16 movs r2, 0x24 | r2 = 0x24;
0x00001d18 ldr r3, [pc, 0x3f8] | r3 = *(0x2114);
0x00001d1a add r0, pc | r0 += pc;
0x00001d1c b 0x1aa0 | goto label_13;
| label_45:
0x00001d1e ldr r2, [pc, 0x3f4] |
0x00001d20 mov r3, r8 | r3 = r8;
0x00001d22 ldr r0, [sp, 0x10] | r0 = *(arg_10h);
0x00001d24 ldr r1, [sp, 0x44] | r1 = *(arg_44h);
0x00001d26 ldr r0, [r0, r2] | r0 = *((r0 + r2));
0x00001d28 ldr.w r2, [pc, 0x444] | r2 = *(0x00002170);
0x00001d2c str r1, [sp] | *(sp) = r1;
0x00001d2e add r2, pc | r2 = 0x3e48;
0x00001d30 b 0x1cfa |
| } while (1);
| label_53:
0x00001d32 ldr.w r8, [pc, 0x440] | r8 = *(0x00002174);
0x00001d36 add r8, pc | r8 += pc;
0x00001d38 b 0x1b6e | goto label_8;
| label_42:
0x00001d3a ldr.w r0, [pc, 0x43c] | r0 = *(0x00002178);
0x00001d3e movs r2, 0x1b | r2 = 0x1b;
0x00001d40 ldr r3, [pc, 0x3d0] | r3 = *(0x2114);
0x00001d42 add r0, pc | r0 += pc;
0x00001d44 b 0x1aa0 | goto label_13;
| label_52:
0x00001d46 add.w r8, r8, 1 | r8++;
| label_25:
0x00001d48 lsrs r1, r0, 0x20 | r1 = r0 >> 0x20;
0x00001d4a mov r1, r6 | r1 = r6;
0x00001d4c mov r0, r8 | r0 = r8;
0x00001d4e blx 0x1748 | r0 = dbus_validate_member ();
| if (r0 == 0) {
0x00001d52 cbnz r0, 0x1d6c |
0x00001d54 ldr.w r2, [pc, 0x424] |
0x00001d58 ldr r1, [pc, 0x3b8] | r1 = *(0x2114);
0x00001d5a ldr r3, [sp, 0x44] | r3 = *(arg_44h);
0x00001d5c add r2, pc | r2 = 0x3edc;
0x00001d5e b 0x1bb6 | goto label_6;
| label_51:
0x00001d60 ldr.w r2, [pc, 0x41c] |
0x00001d64 mov r3, r4 | r3 = r4;
0x00001d66 ldr r0, [pc, 0x3ac] | r0 = *(0x2116);
0x00001d68 add r2, pc | r2 = 0x3eec;
0x00001d6a b 0x19f8 | goto label_10;
| }
0x00001d6c mov r2, r8 | r2 = r8;
0x00001d6e ldr r0, [sp, 0x28] | r0 = *(arg_28h);
0x00001d70 mov r1, r4 | r1 = r4;
0x00001d72 blx 0x173c | r0 = dbus_message_new_signal ();
0x00001d76 mov r8, r0 | r8 = r0;
0x00001d78 cmp r0, 0 |
| if (r0 == 0) {
0x00001d7a beq.w 0x1e8e | goto label_15;
| }
| label_22:
0x00001d7e ldr r3, [sp, 0x2c] | r3 = *(arg_2ch);
| if (r3 != 0) {
0x00001d80 cbz r3, 0x1d90 |
0x00001d82 mov r1, r3 | r1 = r3;
0x00001d84 mov r0, r8 | r0 = r8;
0x00001d86 blx 0x1610 | r0 = dbus_message_set_destination ();
0x00001d8a cmp r0, 0 |
| if (r0 == 0) {
0x00001d8c beq.w 0x20d6 | goto label_56;
| }
| }
0x00001d90 adds r3, r5, 1 | r3 = r5 + 1;
0x00001d92 mov r0, r8 | r0 = r8;
0x00001d94 str r3, [sp, 0xc] | *(arg_ch) = r3;
0x00001d96 add r3, sp, 0x50 | r3 += arg_50h;
0x00001d98 mov r1, r3 | r1 = r3;
0x00001d9a str r3, [sp, 0x14] | *(arg_14h) = r3;
0x00001d9c blx 0x14d8 | dbus_message_iter_init_append ();
0x00001da0 ldr r3, [pc, 0x3e0] |
0x00001da2 ldr.w fp, [pc, 0x3e4] | fp = *(0x00002188);
0x00001da6 str.w r8, [sp, 0x2c] | __asm ("str.w r8, [arg_2ch]");
0x00001daa add r3, pc | r3 = 0x3f32;
0x00001dac strd sb, r6, [sp, 0x38] | __asm ("strd sb, r6, [sp, 0x38]");
0x00001db0 str r3, [sp, 0x24] | *(s2) = r3;
0x00001db2 add fp, pc |
0x00001db4 ldr r3, [pc, 0x3d4] |
0x00001db6 add r3, pc | r3 = 0x3f46;
0x00001db8 str r3, [sp, 0x28] | *(arg_28h) = r3;
0x00001dba ldr r3, [pc, 0x3d4] |
0x00001dbc add r3, pc | r3 = 0x3f52;
0x00001dbe str r3, [sp, 0x1c] | *(arg_1ch) = r3;
0x00001dc0 b 0x1dfa |
| while (r0 != 0) {
0x00001dc2 ldr r1, [pc, 0x3d0] |
0x00001dc4 mov r0, r4 | r0 = r4;
0x00001dc6 add r1, pc | r1 = 0x3f60;
0x00001dc8 blx 0x17d8 | r0 = strcmp (r0, r1);
0x00001dcc cmp r0, 0 |
| if (r0 == 0) {
0x00001dce beq.w 0x1fa4 | goto label_57;
| }
0x00001dd2 ldr r1, [pc, 0x3c4] |
0x00001dd4 mov r0, r4 | r0 = r4;
0x00001dd6 add r1, pc | r1 = 0x3f74;
0x00001dd8 blx 0x17d8 | r0 = strcmp (r0, r1);
0x00001ddc cmp r0, 0 |
| if (r0 == 0) {
0x00001dde beq.w 0x1fa8 | goto label_58;
| }
0x00001de2 ldrb r3, [r4] | r3 = *(r4);
0x00001de4 cmp r3, 0 |
| if (r3 != 0) {
0x00001de6 bne.w 0x1fe6 | goto label_59;
| }
0x00001dea movs r1, 0x73 | r1 = 0x73;
| label_21:
0x00001dec ldr r0, [sp, 0x14] | r0 = *(arg_14h);
0x00001dee mov r2, r5 | r2 = r5;
0x00001df0 bl 0x317c | fcn_0000317c (r0, r1, r2);
| label_14:
0x00001df4 ldr r3, [sp, 0xc] | r3 = *(arg_ch);
0x00001df6 adds r3, 1 | r3++;
0x00001df8 str r3, [sp, 0xc] | *(arg_ch) = r3;
0x00001dfa ldr r3, [sp, 0xc] | r3 = *(arg_ch);
0x00001dfc cmp r7, r3 |
| if (r7 <= r3) {
0x00001dfe ble.w 0x200c | goto label_60;
| }
0x00001e02 ldr r3, [sp, 0x18] | r3 = *(arg_18h);
0x00001e04 movs r1, 0x3a | r1 = 0x3a;
0x00001e06 ldr r2, [sp, 0xc] | r2 = *(arg_ch);
0x00001e08 ldr.w r4, [r3, r2, lsl 2] | offset_0 = r2 << 2;
| r4 = *((r3 + offset_0));
0x00001e0c mov r0, r4 | r0 = r4;
0x00001e0e blx 0x1508 | r0 = strchr (r0, r1);
0x00001e12 mov r8, r0 | r8 = r0;
0x00001e14 cmp r0, 0 |
| if (r0 == 0) {
0x00001e16 beq.w 0x20ca | goto label_61;
| }
0x00001e1a mov r5, r0 | r5 = r0;
0x00001e1c movs r3, 0 | r3 = 0;
0x00001e1e ldr r1, [sp, 0x24] | r1 = *(s2);
0x00001e20 mov r0, r4 | r0 = r4;
0x00001e22 strb r3, [r5], 1 | *(r5) = r3;
| r5++;
0x00001e26 blx 0x17d8 | r0 = strcmp (r0, r1);
0x00001e2a cmp r0, 0 |
0x00001e2c bne 0x1dc2 |
| }
0x00001e2e movs r4, 0x76 | r4 = 0x76;
| label_19:
0x00001e30 movs r1, 0x3a | r1 = 0x3a;
0x00001e32 mov r0, r5 | r0 = r5;
0x00001e34 blx 0x1508 | r0 = strchr (r0, r1);
0x00001e38 mov sl, r0 | sl = r0;
0x00001e3a cmp r0, 0 |
| if (r0 == 0) {
0x00001e3c beq.w 0x20a4 | goto label_62;
| }
0x00001e40 movs r3, 0 | r3 = 0;
0x00001e42 strb r3, [sl], 1 | *(sl) = r3;
| sl++;
0x00001e46 ldrb.w r3, [r8, 1] | r3 = *((r8 + 1));
0x00001e4a cmp r3, 0 |
| if (r3 != 0) {
0x00001e4c bne.w 0x1f60 | goto label_63;
| }
0x00001e50 mov.w sb, 0x73 | sb = 0x73;
| label_17:
0x00001e54 cmp r4, 0x65 |
| if (r4 == 0x65) {
0x00001e56 beq 0x1e92 | goto label_64;
| }
0x00001e58 movs r3, 0 | r3 = 0;
0x00001e5a add.w r8, sp, 0x88 | r8 += arg_88h;
0x00001e5e strb.w r3, [sp, 0xf9] | *(arg_f9h) = r3;
0x00001e62 add r2, sp, 0xf8 | r2 += arg_f8h;
0x00001e64 ldr r0, [sp, 0x14] | r0 = *(arg_14h);
0x00001e66 mov r3, r8 | r3 = r8;
0x00001e68 mov r1, r4 | r1 = r4;
0x00001e6a strb.w sb, [sp, 0xf8] | *(arg_f8h) = sb;
0x00001e6e blx 0x1670 | r0 = dbus_message_iter_open_container ();
| if (r0 == 0) {
0x00001e72 cbz r0, 0x1e8e | goto label_15;
| }
0x00001e74 cmp r4, 0x61 |
| if (r4 == 0x61) {
0x00001e76 beq 0x1f6a | goto label_65;
| }
0x00001e78 mov r2, sl | r2 = sl;
0x00001e7a mov r1, sb | r1 = sb;
0x00001e7c mov r0, r8 | r0 = r8;
0x00001e7e bl 0x317c | fcn_0000317c (r0, r1, r2);
| label_18:
0x00001e82 ldr r0, [sp, 0x14] | r0 = *(arg_14h);
0x00001e84 mov r1, r8 | r1 = r8;
0x00001e86 blx 0x16f4 | r0 = dbus_message_iter_close_container ();
0x00001e8a cmp r0, 0 |
| if (r0 != 0) {
0x00001e8c bne 0x1df4 | goto label_14;
| }
| do {
| label_15:
0x00001e8e bl 0x3144 | fcn_00003144 ();
| label_64:
0x00001e92 movs r1, 0x3a | r1 = 0x3a;
0x00001e94 mov r0, sl | r0 = sl;
0x00001e96 blx 0x1508 | r0 = strchr (r0, r1);
0x00001e9a mov r4, r0 | r4 = r0;
0x00001e9c cmp r0, 0 |
| if (r0 == 0) {
0x00001e9e beq.w 0x20b6 | goto label_66;
| }
0x00001ea2 movs r5, 0 | r5 = 0;
0x00001ea4 mov r0, sl | r0 = sl;
0x00001ea6 strb r5, [r4], 1 | *(r4) = r5;
| r4++;
0x00001eaa add.w r8, sp, 0x88 | r8 += arg_88h;
0x00001eae bl 0x302c | fcn_0000302c (r0);
0x00001eb2 movs r3, 0x7b | r3 = 0x7b;
0x00001eb4 mov sl, r0 | sl = r0;
0x00001eb6 strb.w r3, [sp, 0xfc] | *(arg_fch) = r3;
0x00001eba movs r3, 0x7d | r3 = 0x7d;
0x00001ebc strb.w r0, [sp, 0xfe] | *(arg_feh) = r0;
0x00001ec0 add r2, sp, 0xfc | r2 += arg_fch;
0x00001ec2 strb.w r3, [sp, 0xff] | *(arg_ffh) = r3;
0x00001ec6 movs r1, 0x61 | r1 = 0x61;
0x00001ec8 ldr r0, [sp, 0x14] | r0 = *(arg_14h);
0x00001eca mov r3, r8 | r3 = r8;
0x00001ecc strb.w r5, [sp, 0x100] | *(arg_100h) = r5;
0x00001ed0 strb.w sb, [sp, 0xfd] | *(arg_fdh) = sb;
0x00001ed4 blx 0x1670 | r0 = dbus_message_iter_open_container ();
0x00001ed8 cmp r0, 0 |
0x00001eda beq 0x1e8e |
| } while (r0 == 0);
0x00001edc ldr r3, [pc, 0x2bc] |
0x00001ede subs.w r0, sl, r5 | r0 = sl - r5;
0x00001ee2 ldr r2, [pc, 0x2bc] |
0x00001ee4 it ne |
| if (r0 == sl) {
0x00001ee6 movne r0, 1 | r0 = 1;
| }
0x00001ee8 ldr r1, [pc, 0x2b8] |
0x00001eea add r3, pc | r3 = 0x408a;
0x00001eec add r2, pc | r2 = 0x4092;
0x00001eee str r3, [sp] | *(sp) = r3;
0x00001ef0 add r1, pc | r1 = 0x4098;
0x00001ef2 movw r3, 0x291 | r3 = 0x291;
0x00001ef6 blx 0x1724 | dbus_real_assert ();
0x00001efa mov r0, r4 | r0 = r4;
0x00001efc blx 0x16c4 | r0 = strdup (r0);
0x00001f00 mov r6, r0 | r6 = r0;
0x00001f02 cmp r0, 0 |
| if (r0 == 0) {
0x00001f04 beq 0x1e8e | goto label_15;
| }
0x00001f06 ldr r1, [pc, 0x2a0] |
0x00001f08 add r5, sp, 0xc0 | r5 += arg_c0h;
0x00001f0a add r1, pc | r1 = 0x40b8;
0x00001f0c blx 0x170c | r0 = strtok (r0, r1);
0x00001f10 mov r4, r0 | r4 = r0;
| label_16:
0x00001f12 cmp r4, 0 |
| if (r4 == 0) {
0x00001f14 beq 0x1f94 | goto label_67;
| }
0x00001f16 mov r3, r5 | r3 = r5;
0x00001f18 movs r2, 0 | r2 = 0;
0x00001f1a movs r1, 0x65 | r1 = 0x65;
0x00001f1c mov r0, r8 | r0 = r8;
0x00001f1e blx 0x1670 | r0 = dbus_message_iter_open_container ();
0x00001f22 cmp r0, 0 |
| if (r0 == 0) {
0x00001f24 beq 0x1e8e | goto label_15;
| }
0x00001f26 mov r2, r4 | r2 = r4;
0x00001f28 mov r0, r5 | r0 = r5;
0x00001f2a mov r1, sb | r1 = sb;
0x00001f2c bl 0x317c | fcn_0000317c (r0, r1, r2);
0x00001f30 mov r1, fp | r1 = fp;
0x00001f32 movs r0, 0 | r0 = 0;
0x00001f34 blx 0x170c | r0 = strtok (r0, r1);
0x00001f38 mov r2, r0 | r2 = r0;
0x00001f3a cmp r0, 0 |
| if (r0 == 0) {
0x00001f3c beq.w 0x2086 | goto label_68;
| }
0x00001f40 mov r1, sl | r1 = sl;
0x00001f42 mov r0, r5 | r0 = r5;
0x00001f44 bl 0x317c | fcn_0000317c (r0, r1, r2);
0x00001f48 mov r1, r5 | r1 = r5;
0x00001f4a mov r0, r8 | r0 = r8;
0x00001f4c blx 0x16f4 | r0 = dbus_message_iter_close_container ();
0x00001f50 cmp r0, 0 |
| if (r0 == 0) {
0x00001f52 beq 0x1e8e | goto label_15;
| }
0x00001f54 mov r1, fp | r1 = fp;
0x00001f56 movs r0, 0 | r0 = 0;
0x00001f58 blx 0x170c | r0 = strtok (r0, r1);
0x00001f5c mov r4, r0 | r4 = r0;
0x00001f5e b 0x1f12 | goto label_16;
| label_63:
0x00001f60 mov r0, r5 | r0 = r5;
0x00001f62 bl 0x302c | r0 = fcn_0000302c (r0);
0x00001f66 mov sb, r0 | sb = r0;
0x00001f68 b 0x1e54 | goto label_17;
| label_65:
0x00001f6a mov r0, sl | r0 = sl;
0x00001f6c blx 0x16c4 | r0 = strdup (r0);
0x00001f70 mov r4, r0 | r4 = r0;
0x00001f72 cmp r0, 0 |
| if (r0 == 0) {
0x00001f74 beq 0x1e8e | goto label_15;
| }
0x00001f76 ldr r1, [sp, 0x28] | r1 = *(arg_28h);
0x00001f78 blx 0x170c | r0 = strtok (r0, r1);
0x00001f7c mov r2, r0 | r2 = r0;
| do {
| if (r2 == 0) {
0x00001f7e cbz r2, 0x1f9c | goto label_69;
| }
0x00001f80 mov r0, r8 | r0 = r8;
0x00001f82 mov r1, sb | r1 = sb;
0x00001f84 bl 0x317c | fcn_0000317c (r0, r1, r2);
0x00001f88 ldr r1, [sp, 0x1c] | r1 = *(arg_1ch);
0x00001f8a movs r0, 0 | r0 = 0;
0x00001f8c blx 0x170c | r0 = strtok (r0, r1);
0x00001f90 mov r2, r0 | r2 = r0;
0x00001f92 b 0x1f7e |
| } while (1);
| label_67:
0x00001f94 mov r0, r6 | r0 = r6;
0x00001f96 blx 0x1598 | free (r0);
0x00001f9a b 0x1e82 | goto label_18;
| label_69:
0x00001f9c mov r0, r4 | r0 = r4;
0x00001f9e blx 0x1598 | free (r0);
0x00001fa2 b 0x1e82 | goto label_18;
| label_57:
0x00001fa4 movs r4, 0x61 | r4 = 0x61;
0x00001fa6 b 0x1e30 | goto label_19;
| label_58:
0x00001fa8 movs r4, 0x65 | r4 = 0x65;
0x00001faa b 0x1e30 | goto label_19;
| label_55:
0x00001fac add.w sl, sl, 1 | sl++;
0x00001fb0 mov r1, r6 | r1 = r6;
0x00001fb2 mov r0, sl | r0 = sl;
0x00001fb4 blx 0x1748 | r0 = dbus_validate_member ();
| if (r0 == 0) {
0x00001fb8 cbnz r0, 0x1ff0 |
0x00001fba ldr r2, [pc, 0x158] | r2 = *(0x2116);
0x00001fbc ldr r1, [sp, 0x10] | r1 = *(arg_10h);
0x00001fbe ldr r3, [sp, 0x44] | r3 = *(arg_44h);
0x00001fc0 ldr r2, [r1, r2] | r2 = *((r1 + r2));
0x00001fc2 ldr r0, [r2] | r0 = *(0x2116);
0x00001fc4 ldr r2, [pc, 0x1e4] |
0x00001fc6 add r2, pc | r2 = 0x4176;
0x00001fc8 b 0x1cc4 | goto label_20;
| label_54:
0x00001fca ldr r0, [sp, 0x10] | r0 = *(arg_10h);
0x00001fcc mov r3, r4 | r3 = r4;
0x00001fce ldr r1, [pc, 0x144] | r1 = *(0x2116);
0x00001fd0 ldr r4, [sp, 0x1c] | r4 = *(arg_1ch);
0x00001fd2 ldr r2, [pc, 0x1dc] |
0x00001fd4 ldr r1, [r0, r1] | r1 = *((r0 + r1));
0x00001fd6 add r2, pc | r2 = "Error %s: %s\n";
0x00001fd8 ldr r0, [r1] | r0 = *(0x2116);
0x00001fda mov r1, r4 | r1 = r4;
0x00001fdc blx 0x16e8 | fprintf_chk ()
0x00001fe0 mov r0, r4 | r0 = r4;
0x00001fe2 blx 0x17e4 | exit (r0);
| label_59:
0x00001fe6 mov r0, r4 | r0 = r4;
0x00001fe8 bl 0x302c | r0 = fcn_0000302c (r0);
0x00001fec mov r1, r0 | r1 = r0;
0x00001fee b 0x1dec | goto label_21;
| }
0x00001ff0 mov r0, r8 | r0 = r8;
0x00001ff2 ldr r1, [sp, 0x28] | r1 = *(arg_28h);
0x00001ff4 mov r3, sl | r3 = sl;
0x00001ff6 mov r2, r4 | r2 = r4;
0x00001ff8 blx 0x15d4 | r0 = dbus_message_new_method_call ();
0x00001ffc mov r8, r0 | r8 = r0;
0x00001ffe cmp r0, 0 |
| if (r0 == 0) {
0x00002000 beq.w 0x1e8e | goto label_15;
| }
0x00002004 ldr r1, [sp, 0x1c] | r1 = *(arg_1ch);
0x00002006 blx 0x1760 | dbus_message_set_auto_start ();
0x0000200a b 0x1d7e | goto label_22;
| label_60:
0x0000200c ldr r3, [sp, 0x20] | r3 = *(arg_20h);
0x0000200e ldr.w r8, [sp, 0x2c] | r8 = *(arg_2ch);
0x00002012 ldrd sb, r6, [sp, 0x38] | __asm ("ldrd sb, r6, [arg_38h]");
| if (r3 == 0) {
0x00002016 cbz r3, 0x2074 | goto label_70;
| }
0x00002018 mov r0, r6 | r0 = r6;
0x0000201a blx 0x1700 | dbus_error_init ();
0x0000201e ldr r2, [sp, 0x34] | r2 = *(arg_34h);
0x00002020 mov r3, r6 | r3 = r6;
0x00002022 mov r1, r8 | r1 = r8;
0x00002024 mov r0, sb | r0 = sb;
0x00002026 blx 0x167c | r0 = dbus_connection_send_with_reply_and_block ();
0x0000202a mov r4, r0 | r4 = r0;
0x0000202c mov r0, r6 | r0 = r6;
0x0000202e blx 0x1778 | r0 = dbus_error_is_set ();
| if (r0 != 0) {
0x00002032 cbnz r0, 0x2062 | goto label_71;
| }
| if (r4 == 0) {
0x00002034 cbz r4, 0x2050 | goto label_72;
| }
0x00002036 add r1, sp, 0xc0 | r1 += arg_c0h;
0x00002038 add r0, sp, 0x88 | r0 += arg_88h;
0x0000203a blx 0x179c | dbus_get_real_time ();
0x0000203e mov r0, r4 | r0 = r4;
0x00002040 ldr r3, [sp, 0xc0] | r3 = *(arg_c0h);
0x00002042 ldr r1, [sp, 0x30] | r1 = *(arg_30h);
0x00002044 ldr r2, [sp, 0x88] | r2 = *(arg_88h);
0x00002046 bl 0x2dc4 | print_message ();
0x0000204a mov r0, r4 | r0 = r4;
0x0000204c blx 0x1604 | dbus_message_unref ();
| do {
| label_72:
0x00002050 mov r0, r8 | r0 = r8;
0x00002052 blx 0x1604 | dbus_message_unref ();
0x00002056 mov r0, sb | r0 = sb;
0x00002058 blx 0x1460 | dbus_connection_unref ();
0x0000205c movs r0, 0 | r0 = 0;
0x0000205e blx 0x17e4 | exit (r0);
| label_71:
0x00002062 ldr r2, [pc, 0x150] |
0x00002064 ldr r1, [pc, 0xac] | r1 = *(0x2114);
0x00002066 ldrd r3, r4, [sp, 0x40] | __asm ("ldrd r3, r4, [arg_40h]");
0x0000206a add r2, pc | r2 = 0x4224;
| label_24:
0x0000206c ldr r0, [sp, 0x10] | r0 = *(arg_10h);
0x0000206e ldr r0, [r0, r1] | r0 = *((r0 + r1));
0x00002070 str r4, [sp] | *(sp) = r4;
0x00002072 b 0x1b48 | goto label_23;
| label_70:
0x00002074 ldr r2, [sp, 0x20] | r2 = *(arg_20h);
0x00002076 mov r1, r8 | r1 = r8;
0x00002078 mov r0, sb | r0 = sb;
0x0000207a blx 0x155c | dbus_connection_send ();
0x0000207e mov r0, sb | r0 = sb;
0x00002080 blx 0x15b0 | dbus_connection_flush ();
0x00002084 b 0x2050 |
| } while (1);
| label_68:
0x00002086 ldr r4, [sp, 0x10] | r4 = *(arg_10h);
0x00002088 movs r1, 1 | r1 = 1;
0x0000208a ldr r0, [pc, 0x88] |
0x0000208c ldr r3, [pc, 0x128] |
0x0000208e ldr r2, [pc, 0x12c] |
0x00002090 ldr r0, [r4, r0] | r0 = *((r4 + r0));
0x00002092 add r3, pc |
0x00002094 ldr r3, [r3] | r3 = *(0x424e);
0x00002096 add r2, pc | r2 = 0x4258;
0x00002098 ldr r0, [r0] | r0 = *(0x2116);
0x0000209a blx 0x16e8 | fprintf_chk ()
0x0000209e movs r0, 1 | r0 = 1;
0x000020a0 blx 0x17e4 | exit (r0);
| label_62:
0x000020a4 ldr r1, [pc, 0x6c] | r1 = *(0x2114);
0x000020a6 ldr r3, [sp, 0x18] | r3 = *(arg_18h);
0x000020a8 ldr r2, [pc, 0x114] |
0x000020aa ldr r0, [sp, 0x10] | r0 = *(arg_10h);
0x000020ac ldr r3, [r3] | r3 = *(r3);
0x000020ae add r2, pc | r2 = 0x4272;
0x000020b0 ldr r0, [r0, r1] | r0 = *((r0 + r1));
0x000020b2 str r5, [sp] | *(sp) = r5;
0x000020b4 b 0x1b48 | goto label_23;
| label_66:
0x000020b6 ldr r1, [pc, 0x5c] | r1 = *(0x2116);
0x000020b8 ldr r3, [sp, 0x18] | r3 = *(arg_18h);
0x000020ba ldr r2, [pc, 0x108] |
0x000020bc ldr r0, [sp, 0x10] | r0 = *(arg_10h);
0x000020be ldr r3, [r3] | r3 = *(r3);
0x000020c0 add r2, pc | r2 = 0x428a;
0x000020c2 ldr r0, [r0, r1] | r0 = *((r0 + r1));
0x000020c4 str.w sl, [sp] | __asm ("str.w sl, [sp]");
0x000020c8 b 0x1b48 | goto label_23;
| label_61:
0x000020ca ldr r3, [sp, 0x18] | r3 = *(arg_18h);
0x000020cc ldr r2, [pc, 0xf8] |
0x000020ce ldr r1, [pc, 0x44] | r1 = *(0x2116);
0x000020d0 ldr r3, [r3] | r3 = *(r3);
0x000020d2 add r2, pc | r2 = 0x429e;
0x000020d4 b 0x206c | goto label_24;
| label_56:
0x000020d6 ldr r0, [pc, 0xf4] |
0x000020d8 movs r2, 0x12 | r2 = 0x12;
0x000020da ldr r3, [pc, 0x38] | r3 = *(0x2116);
0x000020dc add r0, pc | r0 = 0x42ae;
0x000020de b 0x1b98 | goto label_9;
0x00002204 adds r0, 0x14 | r0 += 0x14;
0x00002206 b 0x1d48 | goto label_25;
| }
; assembly | /* r2dec pseudo code output */
| /* /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-80367616.squashfs_v4_le_extract/usr/bin/dbus-send @ 0x2ff4 */
| #include <stdint.h>
|
; (fcn) fcn.00002ff4 () | void fcn_00002ff4 (int16_t arg1) {
| r0 = arg1;
0x00002ff4 push {r3, lr} |
0x00002ff6 mov r4, r0 | r4 = r0;
0x00002ff8 ldr r3, [pc, 0x20] |
0x00002ffa ldr.w ip, [pc, 0x24] | ip = *(0x3022);
0x00002ffe add r3, pc | r3 = 0x601e;
0x00003000 ldr r1, [pc, 0x20] |
0x00003002 ldr r2, [pc, 0x24] |
0x00003004 ldr.w r0, [r3, ip] |
0x00003008 add r1, pc | r1 = 0x6030;
0x0000300a ldr r3, [r1] | r3 = imp.__aeabi_unwind_cpp_pr0;
0x0000300c add r2, pc | r2 = 0x603a;
0x0000300e ldr r0, [r0] | r0 = imp.__aeabi_unwind_cpp_pr0;
0x00003010 movs r1, 1 | r1 = 1;
0x00003012 blx 0x16e8 | fprintf_chk ()
0x00003016 mov r0, r4 | r0 = r4;
0x00003018 blx 0x17e4 | exit (r0);
0x0000301c cmp r6, 0x9a |
0x0000301e movs r0, r0 |
0x00003020 lsls r0, r3, 5 | r0 = r3 << 5;
0x00003022 movs r0, r0 |
0x00003024 adds r0, 0 | r0 += 0;
0x00003026 movs r0, r0 |
0x00003028 lsrs r4, r0, 0xb | r4 = r0 >> 0xb;
0x0000302a movs r0, r0 |
| }
; assembly | /* r2dec pseudo code output */
| /* /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-80367616.squashfs_v4_le_extract/usr/bin/dbus-send @ 0x302c */
| #include <stdint.h>
|
; (fcn) fcn.0000302c () | void fcn_0000302c (int16_t arg1) {
| int16_t var_0h;
| r0 = arg1;
| if (? >= ?) {
0x0000302c ldrlt r4, [r0, -0x936]! | r4 = *((r0 -= 0x936));
| }
0x00003030 sub sp, 0xc |
0x00003032 ldr r5, [pc, 0xd8] |
0x00003034 mov r4, r0 | r4 = r0;
0x00003036 add r1, pc | r1 += pc;
0x00003038 blx 0x17d8 | strcmp (r0, r1);
0x0000303c add r5, pc | r5 = 0x614e;
| if (r0 != 0) {
0x0000303e cbz r0, 0x3052 |
0x00003040 ldr r1, [pc, 0xcc] |
0x00003042 mov r0, r4 | r0 = r4;
0x00003044 add r1, pc | r1 = 0x6158;
0x00003046 blx 0x17d8 | r0 = strcmp (r0, r1);
| if (r0 != 0) {
0x0000304a cbnz r0, 0x3058 | goto label_1;
| }
0x0000304c movs r0, 0x6e | r0 = 0x6e;
0x0000304e add sp, 0xc |
0x00003050 pop {r4, r5, pc} |
| }
0x00003052 movs r0, 0x73 | r0 = 0x73;
| do {
| label_0:
0x00003054 add sp, 0xc |
0x00003056 pop {r4, r5, pc} |
| label_1:
0x00003058 ldr r1, [pc, 0xb8] |
0x0000305a mov r0, r4 | r0 = r4;
0x0000305c add r1, pc | r1 = 0x6174;
0x0000305e blx 0x17d8 | r0 = strcmp (r0, r1);
| if (r0 == 0) {
0x00003062 cbz r0, 0x30c8 | goto label_2;
| }
0x00003064 ldr r1, [pc, 0xb0] |
0x00003066 mov r0, r4 | r0 = r4;
0x00003068 add r1, pc | r1 = 0x6184;
0x0000306a blx 0x17d8 | r0 = strcmp (r0, r1);
| if (r0 == 0) {
0x0000306e cbz r0, 0x30ce | goto label_3;
| }
0x00003070 ldr r1, [pc, 0xa8] |
0x00003072 mov r0, r4 | r0 = r4;
0x00003074 add r1, pc | r1 = 0x6194;
0x00003076 blx 0x17d8 | r0 = strcmp (r0, r1);
| if (r0 == 0) {
0x0000307a cbz r0, 0x30d2 | goto label_4;
| }
0x0000307c ldr r1, [pc, 0xa0] |
0x0000307e mov r0, r4 | r0 = r4;
0x00003080 add r1, pc | r1 = 0x61a4;
0x00003082 blx 0x17d8 | r0 = strcmp (r0, r1);
| if (r0 == 0) {
0x00003086 cbz r0, 0x30d6 | goto label_5;
| }
0x00003088 ldr r1, [pc, 0x98] |
0x0000308a mov r0, r4 | r0 = r4;
0x0000308c add r1, pc | r1 = 0x61b4;
0x0000308e blx 0x17d8 | r0 = strcmp (r0, r1);
| if (r0 == 0) {
0x00003092 cbz r0, 0x30da | goto label_6;
| }
0x00003094 ldr r1, [pc, 0x90] |
0x00003096 mov r0, r4 | r0 = r4;
0x00003098 add r1, pc | r1 = 0x61c4;
0x0000309a blx 0x17d8 | r0 = strcmp (r0, r1);
| if (r0 == 0) {
0x0000309e cbz r0, 0x30de | goto label_7;
| }
0x000030a0 ldr r1, [pc, 0x88] |
0x000030a2 mov r0, r4 | r0 = r4;
0x000030a4 add r1, pc | r1 = 0x61d4;
0x000030a6 blx 0x17d8 | r0 = strcmp (r0, r1);
| if (r0 == 0) {
0x000030aa cbz r0, 0x30e2 | goto label_8;
| }
0x000030ac ldr r1, [pc, 0x80] |
0x000030ae mov r0, r4 | r0 = r4;
0x000030b0 add r1, pc | r1 = 0x61e4;
0x000030b2 blx 0x17d8 | r0 = strcmp (r0, r1);
| if (r0 == 0) {
0x000030b6 cbz r0, 0x30e6 | goto label_9;
| }
0x000030b8 ldr r1, [pc, 0x78] |
0x000030ba mov r0, r4 | r0 = r4;
0x000030bc add r1, pc | r1 = 0x61f4;
0x000030be blx 0x17d8 | r0 = strcmp (r0, r1);
| if (r0 != 0) {
0x000030c2 cbnz r0, 0x30ea | goto label_10;
| }
0x000030c4 movs r0, 0x6f | r0 = 0x6f;
0x000030c6 b 0x3054 |
| } while (1);
| label_2:
0x000030c8 movs r0, 0x71 | r0 = 0x71;
0x000030ca add sp, 0xc |
0x000030cc pop {r4, r5, pc} |
| label_3:
0x000030ce movs r0, 0x69 | r0 = 0x69;
0x000030d0 b 0x3054 | goto label_0;
| label_4:
0x000030d2 movs r0, 0x75 | r0 = 0x75;
0x000030d4 b 0x3054 | goto label_0;
| label_5:
0x000030d6 movs r0, 0x78 | r0 = 0x78;
0x000030d8 b 0x3054 | goto label_0;
| label_6:
0x000030da movs r0, 0x74 | r0 = 0x74;
0x000030dc b 0x3054 | goto label_0;
| label_7:
0x000030de movs r0, 0x64 | r0 = 0x64;
0x000030e0 b 0x3054 | goto label_0;
| label_8:
0x000030e2 movs r0, 0x79 | r0 = 0x79;
0x000030e4 b 0x3054 | goto label_0;
| label_9:
0x000030e6 movs r0, 0x62 | r0 = 0x62;
0x000030e8 b 0x3054 | goto label_0;
| label_10:
0x000030ea ldr r1, [pc, 0x4c] | r1 = *(0x313a);
0x000030ec ldr r3, [pc, 0x4c] |
0x000030ee ldr r2, [pc, 0x50] |
0x000030f0 ldr r0, [r5, r1] | r0 = *((r5 + r1));
0x000030f2 movs r1, 1 | r1 = 1;
0x000030f4 add r3, pc |
0x000030f6 ldr r3, [r3] | r3 = *(0x6234);
0x000030f8 add r2, pc | r2 = 0x623e;
0x000030fa str r4, [sp] | *(sp) = r4;
0x000030fc ldr r0, [r0] | r0 = *(r0);
0x000030fe blx 0x16e8 | fprintf_chk ()
0x00003102 movs r0, 1 | r0 = 1;
0x00003104 blx 0x17e4 | exit (r0);
0x00003108 lsls r6, r3, 0x1f | r6 = r3 << 0x1f;
0x0000310a movs r0, r0 |
0x0000310c cmp r6, 0x5c |
0x0000310e movs r0, r0 |
0x00003110 lsrs r0, r6, 0xd | r0 = r6 >> 0xd;
0x00003112 movs r0, r0 |
0x00003114 lsrs r0, r4, 0xd | r0 = r4 >> 0xd;
0x00003116 movs r0, r0 |
0x00003118 lsrs r4, r3, 0xd | r4 = r3 >> 0xd;
0x0000311a movs r0, r0 |
0x0000311c lsrs r0, r3, 0xd | r0 = r3 >> 0xd;
0x0000311e movs r0, r0 |
0x00003120 lsrs r4, r2, 0xd | r4 = r2 >> 0xd;
0x00003122 movs r0, r0 |
0x00003124 lsrs r0, r2, 0xd | r0 = r2 >> 0xd;
0x00003126 movs r0, r0 |
0x00003128 lsrs r4, r1, 0xd | r4 = r1 >> 0xd;
0x0000312a movs r0, r0 |
0x0000312c lsrs r0, r1, 0xd | r0 = r1 >> 0xd;
0x0000312e movs r0, r0 |
0x00003130 lsrs r4, r0, 0xd | r4 = r0 >> 0xd;
0x00003132 movs r0, r0 |
0x00003134 lsrs r0, r0, 0xd | r0 >>= 0xd;
0x00003136 movs r0, r0 |
0x00003138 lsls r0, r3, 5 | r0 = r3 << 5;
0x0000313a movs r0, r0 |
0x0000313c cmp r7, 0x14 |
0x0000313e movs r0, r0 |
0x00003140 lsrs r4, r1, 0xc | r4 = r1 >> 0xc;
0x00003142 movs r0, r0 |
| }
; assembly | /* r2dec pseudo code output */
| /* /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-80367616.squashfs_v4_le_extract/usr/bin/dbus-send @ 0x3144 */
| #include <stdint.h>
|
; (fcn) fcn.00003144 () | void fcn_00003144 () {
0x00003144 mrshs fp, apsr | __asm ("mrshs fp, apsr");
0x00003148 ldr r3, [pc, 0x20] |
0x0000314a ldr.w ip, [pc, 0x24] | ip = *(0x3172);
0x0000314e add r3, pc | r3 = 0x62be;
0x00003150 ldr r0, [pc, 0x20] |
0x00003152 ldr r2, [pc, 0x24] |
0x00003154 ldr.w r4, [r3, ip] | r4 = *(0x62be);
0x00003158 add r0, pc | r0 = 0x62d0;
0x0000315a ldr r3, [r0] | r3 = *(0x62d0);
0x0000315c add r2, pc | r2 = 0x62da;
0x0000315e ldr r0, [r4] | r0 = *(0x62be);
0x00003160 blx 0x16e8 | fprintf_chk ()
0x00003164 movs r0, 1 | r0 = 1;
0x00003166 blx 0x17e4 | exit (r0);
0x0000316a nop |
0x0000316c cmp r5, 0x4a |
0x0000316e movs r0, r0 |
0x00003170 lsls r0, r3, 5 | r0 = r3 << 5;
0x00003172 movs r0, r0 |
0x00003174 cmp r6, 0xb0 |
0x00003176 movs r0, r0 |
0x00003178 lsrs r0, r0, 0xb | r0 >>= 0xb;
0x0000317a movs r0, r0 |
| }
; assembly | /* r2dec pseudo code output */
| /* /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-80367616.squashfs_v4_le_extract/usr/bin/dbus-send @ 0x317c */
| #include <stdint.h>
|
; (fcn) fcn.0000317c () | void fcn_0000317c (int16_t arg1, int16_t arg2, char * arg3) {
| int16_t var_0h_2;
| char * str;
| int16_t var_17h;
| int16_t var_18h;
| int16_t var_1ah;
| int16_t var_1ch;
| int16_t var_20h;
| int16_t var_24h;
| int16_t var_28h;
| int16_t var_30h;
| int16_t var_38h;
| int16_t var_44h;
| r0 = arg1;
| r1 = arg2;
| r2 = arg3;
0x0000317c invalid |
0x00003180 sub sp, 0x4c |
0x00003182 ldr r0, [pc, 0x1bc] |
0x00003184 sub.w r3, r1, 0x62 | r3 = r1 - 0x62;
0x00003188 str r2, [sp, 0xc] | str = r2;
0x0000318a ldr r2, [pc, 0x1b8] | r2 = *(0x3346);
0x0000318c add r0, pc | r0 = 0x64d2;
0x0000318e ldr r5, [pc, 0x1b8] |
0x00003190 ldr r2, [r0, r2] |
0x00003192 add r5, pc | r5 = 0x64e0;
0x00003194 ldr r2, [r2] | r2 = *(0x64d2);
0x00003196 str r2, [sp, 0x44] | var_44h = r2;
0x00003198 mov.w r2, 0 | r2 = 0;
0x0000319c cmp r3, 0x17 |
| if (r3 > 0x17) {
0x0000319e bhi.w 0x3304 | goto label_1;
| }
| /* switch table (24 cases) at 0x31a6 */
0x000031a2 tbb [pc, r3] | __asm ("tbb [0x000031a8]");
0x000031be ldr r6, [sp, 0xc] | r6 = str;
0x000031c0 ldr r1, [pc, 0x188] |
0x000031c2 mov r0, r6 | r0 = r6;
0x000031c4 add r1, pc | r1 = 0x6514;
0x000031c6 blx 0x17d8 | strcmp (r0, r1);
0x000031ca movs r3, 1 | r3 = 1;
| if (r0 != 0) {
0x000031cc cbz r0, 0x31e0 |
0x000031ce ldr r1, [pc, 0x180] |
0x000031d0 mov r0, r6 | r0 = r6;
0x000031d2 add r1, pc | r1 = 0x6528;
0x000031d4 blx 0x17d8 | r0 = strcmp (r0, r1);
0x000031d8 mov r3, r0 | r3 = r0;
0x000031da cmp r0, 0 |
| if (r0 != 0) {
0x000031dc bne.w 0x332c | goto label_2;
| }
| }
0x000031e0 add r2, sp, 0x24 | r2 += var_24h;
0x000031e2 movs r1, 0x62 | r1 = 0x62;
0x000031e4 mov r0, r4 | r0 = r4;
0x000031e6 str r3, [sp, 0x24] | var_24h = r3;
0x000031e8 blx 0x1544 | r0 = dbus_message_iter_append_basic ();
| do {
| label_0:
0x000031ec cmp r0, 0 |
| if (r0 == 0) {
0x000031ee beq.w 0x3328 | goto label_3;
| }
0x000031f2 ldr r2, [pc, 0x160] |
0x000031f4 ldr r3, [pc, 0x14c] | r3 = *(0x3344);
0x000031f6 add r2, pc | r2 = 0x6550;
0x000031f8 ldr r3, [r2, r3] | r3 = *(0x6550);
0x000031fa ldr r2, [r3] | r2 = *(0x6550);
0x000031fc ldr r3, [sp, 0x44] | r3 = var_44h;
0x000031fe eors r2, r3 | r2 ^= r3;
0x00003200 mov.w r3, 0 | r3 = 0;
| if (r2 != r3) {
0x00003204 bne.w 0x3324 | goto label_4;
| }
0x00003208 add sp, 0x4c |
0x0000320a pop {r4, r5, r6, r7, pc} |
0x0000320c ldr r0, [sp, 0xc] | r0 = str;
0x0000320e movs r1, 0 | r1 = 0;
0x00003210 blx 0x14fc | strtod (r0, r1);
0x00003214 add r2, sp, 0x38 | r2 += var_38h;
0x00003216 movs r1, 0x64 | r1 = 0x64;
0x00003218 mov r0, r4 | r0 = r4;
0x0000321a vstr d0, [sp, 0x38] | __asm ("vstr d0, [sp, 0x38]");
0x0000321e blx 0x1544 | dbus_message_iter_append_basic ();
0x00003222 b 0x31ec |
| } while (1);
0x00003224 movs r2, 0 | r2 = 0;
0x00003226 ldr r0, [sp, 0xc] | r0 = str;
0x00003228 mov r1, r2 | r1 = r2;
0x0000322a blx 0x1664 | strtol (r0, r1, r2);
0x0000322e add r2, sp, 0x20 | r2 += var_20h;
0x00003230 mov r3, r0 | r3 = r0;
0x00003232 movs r1, 0x69 | r1 = 0x69;
0x00003234 mov r0, r4 | r0 = r4;
0x00003236 str r3, [sp, 0x20] | var_20h = r3;
0x00003238 blx 0x1544 | dbus_message_iter_append_basic ();
0x0000323c b 0x31ec | goto label_0;
0x0000323e movs r2, 0 | r2 = 0;
0x00003240 ldr r0, [sp, 0xc] | r0 = str;
0x00003242 mov r1, r2 | r1 = r2;
0x00003244 blx 0x1664 | strtol (r0, r1, r2);
0x00003248 add.w r2, sp, 0x1a | r2 += var_1ah;
0x0000324c mov r3, r0 | r3 = r0;
0x0000324e movs r1, 0x6e | r1 = 0x6e;
0x00003250 mov r0, r4 | r0 = r4;
0x00003252 strh.w r3, [sp, 0x1a] | var_1ah = r3;
0x00003256 blx 0x1544 | dbus_message_iter_append_basic ();
0x0000325a b 0x31ec | goto label_0;
0x0000325c add r2, sp, 0xc | r2 += str;
0x0000325e movs r1, 0x6f | r1 = 0x6f;
0x00003260 mov r0, r4 | r0 = r4;
0x00003262 blx 0x1544 | dbus_message_iter_append_basic ();
0x00003266 b 0x31ec | goto label_0;
0x00003268 movs r2, 0 | r2 = 0;
0x0000326a ldr r0, [sp, 0xc] | r0 = str;
0x0000326c mov r1, r2 | r1 = r2;
0x0000326e blx 0x15f8 | strtoul (r0, r1, r2);
0x00003272 add r2, sp, 0x18 | r2 += var_18h;
0x00003274 mov r3, r0 | r3 = r0;
0x00003276 movs r1, 0x71 | r1 = 0x71;
0x00003278 mov r0, r4 | r0 = r4;
0x0000327a strh.w r3, [sp, 0x18] | var_18h = r3;
0x0000327e blx 0x1544 | dbus_message_iter_append_basic ();
0x00003282 b 0x31ec | goto label_0;
0x00003284 add r2, sp, 0xc | r2 += str;
0x00003286 movs r1, 0x73 | r1 = 0x73;
0x00003288 mov r0, r4 | r0 = r4;
0x0000328a blx 0x1544 | dbus_message_iter_append_basic ();
0x0000328e b 0x31ec | goto label_0;
0x00003290 movs r2, 0 | r2 = 0;
0x00003292 ldr r0, [sp, 0xc] | r0 = str;
0x00003294 mov r1, r2 | r1 = r2;
0x00003296 blx 0x158c | strtoull (r0, r1, r2);
0x0000329a add r2, sp, 0x28 | r2 += var_28h;
0x0000329c mov r6, r0 | r6 = r0;
0x0000329e mov r7, r1 | r7 = r1;
0x000032a0 mov r0, r4 | r0 = r4;
0x000032a2 movs r1, 0x74 | r1 = 0x74;
0x000032a4 strd r6, r7, [sp, 0x28] | __asm ("strd r6, r7, [sp, 0x28]");
0x000032a8 blx 0x1544 | dbus_message_iter_append_basic ();
0x000032ac b 0x31ec | goto label_0;
0x000032ae movs r2, 0 | r2 = 0;
0x000032b0 ldr r0, [sp, 0xc] | r0 = str;
0x000032b2 mov r1, r2 | r1 = r2;
0x000032b4 blx 0x15f8 | strtoul (r0, r1, r2);
0x000032b8 add r2, sp, 0x1c | r2 += var_1ch;
0x000032ba mov r3, r0 | r3 = r0;
0x000032bc movs r1, 0x75 | r1 = 0x75;
0x000032be mov r0, r4 | r0 = r4;
0x000032c0 str r3, [sp, 0x1c] | var_1ch = r3;
0x000032c2 blx 0x1544 | dbus_message_iter_append_basic ();
0x000032c6 b 0x31ec | goto label_0;
0x000032c8 movs r2, 0 | r2 = 0;
0x000032ca ldr r0, [sp, 0xc] | r0 = str;
0x000032cc mov r1, r2 | r1 = r2;
0x000032ce blx 0x1568 | strtoll (r0, r1, r2);
0x000032d2 add r2, sp, 0x30 | r2 += var_30h;
0x000032d4 mov r6, r0 | r6 = r0;
0x000032d6 mov r7, r1 | r7 = r1;
0x000032d8 mov r0, r4 | r0 = r4;
0x000032da movs r1, 0x78 | r1 = 0x78;
0x000032dc strd r6, r7, [sp, 0x30] | __asm ("strd r6, r7, [sp, 0x30]");
0x000032e0 blx 0x1544 | dbus_message_iter_append_basic ();
0x000032e4 b 0x31ec | goto label_0;
0x000032e6 movs r2, 0 | r2 = 0;
0x000032e8 ldr r0, [sp, 0xc] | r0 = str;
0x000032ea mov r1, r2 | r1 = r2;
0x000032ec blx 0x15f8 | strtoul (r0, r1, r2);
0x000032f0 add.w r2, sp, 0x17 | r2 += var_17h;
0x000032f4 mov r3, r0 | r3 = r0;
0x000032f6 movs r1, 0x79 | r1 = 0x79;
0x000032f8 mov r0, r4 | r0 = r4;
0x000032fa strb.w r3, [sp, 0x17] | var_17h = r3;
0x000032fe blx 0x1544 | dbus_message_iter_append_basic ();
0x00003302 b 0x31ec | goto label_0;
| label_1:
0x00003304 ldr r2, [pc, 0x50] |
0x00003306 uxtb r1, r1 | r1 = (int8_t) r1;
0x00003308 ldr r3, [pc, 0x50] |
0x0000330a ldr r0, [pc, 0x54] | r0 = *(0x3362);
0x0000330c add r2, pc | r2 = 0x6668;
0x0000330e add r3, pc |
0x00003310 ldr r0, [r5, r0] | r0 = *((r5 + r0));
0x00003312 ldr r3, [r3] | r3 = *(0x666e);
0x00003314 str r1, [sp] | *(sp) = r1;
| do {
0x00003316 ldr r0, [r0] | r0 = *(r0);
0x00003318 movs r1, 1 | r1 = 1;
0x0000331a blx 0x16e8 | fprintf_chk ()
0x0000331e movs r0, 1 | r0 = 1;
0x00003320 blx 0x17e4 | r0 = exit (r0);
| label_4:
0x00003324 blx 0x16dc | stack_chk_fail ();
| label_3:
0x00003328 bl 0x3144 | fcn_00003144 ();
| label_2:
0x0000332c ldr r3, [pc, 0x34] |
0x0000332e ldr r1, [pc, 0x30] | r1 = *(0x3362);
0x00003330 ldr r2, [pc, 0x34] |
0x00003332 add r3, pc |
0x00003334 ldr r0, [r5, r1] | r0 = *((r5 + r1));
0x00003336 ldr r3, [r3] | r3 = *(0x669a);
0x00003338 add r2, pc | r2 = 0x66a4;
0x0000333a str r6, [sp] | *(sp) = r6;
0x0000333c b 0x3316 |
| } while (1);
| }
; assembly | /* r2dec pseudo code output */
| /* /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-80367616.squashfs_v4_le_extract/usr/bin/dbus-send @ 0x336c */
| #include <stdint.h>
|
; (fcn) sym.tool_oom () | void tool_oom (int16_t arg1) {
| r0 = arg1;
0x0000336c ldr.w ip, [pc, 0x24] | ip = *(0x00003394);
0x00003370 movs r1, 1 | r1 = 1;
0x00003372 push {r3, lr} |
0x00003374 mov r3, r0 | r3 = r0;
0x00003376 ldr.w lr, [pc, 0x20] | lr = *(0x339a);
0x0000337a add ip, pc |
0x0000337c ldr r2, [pc, 0x1c] |
0x0000337e mov r0, ip | r0 = ip;
0x00003380 ldr.w r4, [ip, lr] | r4 = *((ip + lr));
0x00003384 add r2, pc | r2 = 0x6724;
0x00003386 ldr r0, [r4] | r0 = *(r4);
0x00003388 blx 0x16e8 | fprintf_chk ()
0x0000338c movs r0, 1 | r0 = 1;
0x0000338e blx 0x17e4 | exit (r0);
0x00003392 nop |
0x00003394 cmp r3, 0x1e |
0x00003396 movs r0, r0 |
0x00003398 lsls r0, r3, 5 | r0 = r3 << 5;
0x0000339a movs r0, r0 |
0x0000339c lsrs r4, r3, 0x18 | r4 = r3 >> 0x18;
0x0000339e movs r0, r0 |
| }
; assembly | /* r2dec pseudo code output */
| /* /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-80367616.squashfs_v4_le_extract/usr/bin/dbus-send @ 0x33dc */
| #include <stdint.h>
|
; (fcn) sym.tool_stderr_error () | void tool_stderr_error (int16_t arg1, int16_t arg2) {
| int16_t var_0h;
| int16_t var_4h;
| r0 = arg1;
| r1 = arg2;
| if (? >= ?) {
0x000033dc strmi r4, [r3], -sl, lsl 20 | *(r3) = r4;
| r3 += 20;
| }
0x000033e0 ldr.w ip, [pc, 0x28] | ip = *(0x340c);
0x000033e4 push {r4, r5, lr} |
0x000033e6 sub sp, 0xc |
0x000033e8 add r2, pc | r2 += pc;
0x000033ea ldrd r4, r5, [r1] | __asm ("ldrd r4, r5, [r1]");
0x000033ee movs r1, 1 | r1 = 1;
0x000033f0 ldr.w r0, [r2, ip] | r0 = *((r2 + ip));
0x000033f4 ldr r2, [pc, 0x18] |
0x000033f6 ldr r0, [r0] | r0 = *(r0);
0x000033f8 add r2, pc | r2 = 0x680c;
0x000033fa str r5, [sp, 4] | var_4h = r5;
0x000033fc str r4, [sp] | *(sp) = r4;
0x000033fe blx 0x16e8 | fprintf_chk ()
0x00003402 add sp, 0xc |
0x00003404 pop {r4, r5, pc} |
| }
[*] Function fprintf used 16 times dbus-send