[*] Binary protection state of libdbus-1.so.3.19.8
Partial RELRO No Canary found NX disabled DSO No RPATH No RUNPATH No Symbols
[*] Function mmap tear down of libdbus-1.so.3.19.8
; assembly | /* r2dec pseudo code output */
| /* /logs/firmware/unblob_extracted/firmware_extract/56048-12514271.gzip_extract/gzip.uncompressed_extract/5243916-15068666.gzip_extract/gzip.uncompressed_extract/usr/lib/libdbus-1.so.3.19.8 @ 0xc97c */
| #include <stdint.h>
|
; (fcn) fcn.0000c97c () | void fcn_0000c97c (int32_t arg1, int32_t arg2) {
| int32_t var_0h;
| int32_t var_10h;
| r0 = arg1;
| r1 = arg2;
0x0000c97c push {r0, r1, r2, r3, r4, r5, r6, lr} |
0x0000c980 mov r4, sp | r4 = sp;
0x0000c984 mov r5, r0 | r5 = r0;
0x0000c988 mov r0, r4 | r0 = r4;
0x0000c98c mov r6, r1 | r6 = r1;
0x0000c990 bl 0xa348 | r0 = fcn_0000a348 ();
0x0000c994 cmp r0, 0 |
| if (r0 == 0) {
0x0000c998 beq 0xc9c0 | goto label_1;
| }
0x0000c99c ldr r1, [pc, 0xd4] | r1 = *(0xca74);
0x0000c9a0 mov r0, r4 | r0 = r4;
0x0000c9a4 add r1, pc, r1 | r1 = pc + r1;
0x0000c9a8 bl 0xa780 | r0 = fcn_0000a780 ();
0x0000c9ac cmp r0, 0 |
0x0000c9b0 bne 0xc9c8 |
| while (r0 == 0) {
| label_0:
0x0000c9b4 mov r0, r4 | r0 = r4;
0x0000c9b8 bl 0xa564 | fcn_0000a564 ();
0x0000c9bc mov r0, 0 | r0 = 0;
| label_1:
0x0000c9c0 add sp, sp, 0x10 |
0x0000c9c4 pop {r4, r5, r6, pc} |
0x0000c9c8 ldr r1, [r6] | r1 = *(r6);
0x0000c9cc mov r0, r4 | r0 = r4;
0x0000c9d0 bl 0xa780 | r0 = fcn_0000a780 ();
0x0000c9d4 cmp r0, 0 |
0x0000c9d8 beq 0xc9b4 |
| }
0x0000c9dc ldr r3, [r6, 0x14] | r3 = *((r6 + 0x14));
0x0000c9e0 cmp r3, 0 |
| if (r3 == 0) {
0x0000c9e4 beq 0xca18 | goto label_2;
| }
0x0000c9e8 ldr r1, [pc, 0x8c] | r1 = *(0xca78);
0x0000c9ec mov r0, r4 | r0 = r4;
0x0000c9f0 add r1, pc, r1 | r1 = pc + r1;
0x0000c9f4 bl 0xa780 | r0 = fcn_0000a780 ();
0x0000c9f8 cmp r0, 0 |
| if (r0 == 0) {
0x0000c9fc beq 0xc9b4 | goto label_0;
| }
0x0000ca00 ldr r3, [r6, 0x14] | r3 = *((r6 + 0x14));
0x0000ca04 mov r1, r4 | r1 = r4;
0x0000ca08 mov r0, r5 | r0 = r5;
0x0000ca0c blx r3 | r0 = uint32_t (*r3)(uint32_t, uint32_t, uint32_t) (r0, r1, r3);
0x0000ca10 cmp r0, 0 |
| if (r0 == 0) {
0x0000ca14 beq 0xc9b4 | goto label_0;
| }
| label_2:
0x0000ca18 ldr r1, [pc, 0x60] | r1 = *(0xca7c);
0x0000ca1c mov r0, r4 | r0 = r4;
0x0000ca20 add r1, pc, r1 | r1 = pc + r1;
0x0000ca24 bl 0xa780 | r0 = fcn_0000a780 ();
0x0000ca28 cmp r0, 0 |
| if (r0 == 0) {
0x0000ca2c beq 0xc9b4 | goto label_0;
| }
0x0000ca30 ldr r3, [r5, 0x1c] | r3 = *((r5 + 0x1c));
0x0000ca34 add r2, r5, 0x18 | r2 = r5 + 0x18;
0x0000ca38 mov r1, 0 | r1 = 0;
0x0000ca3c mov r0, r4 | r0 = r4;
0x0000ca40 bl 0xb5b4 | r0 = fcn_0000b5b4 ();
0x0000ca44 cmp r0, 0 |
| if (r0 == 0) {
0x0000ca48 beq 0xc9b4 | goto label_0;
| }
0x0000ca4c mov r0, r4 | r0 = r4;
0x0000ca50 bl 0xa564 | fcn_0000a564 ();
0x0000ca54 mov r0, r5 | r0 = r5;
0x0000ca58 bl 0xc7d4 | fcn_0000c7d4 (r0);
0x0000ca5c ldr r3, [pc, 0x20] |
0x0000ca60 str r6, [r5, 0x2c] | *((r5 + 0x2c)) = r6;
0x0000ca64 add r3, pc, r3 | r3 = pc + r3;
0x0000ca68 add r3, r3, 0xc0 | r3 = 0xcb40;
0x0000ca6c str r3, [r5, 0x28] | *((r5 + 0x28)) = r3;
0x0000ca70 mov r0, 1 | r0 = 1;
0x0000ca74 b 0xc9c0 | goto label_1;
| }
; assembly | /* r2dec pseudo code output */
| /* /logs/firmware/unblob_extracted/firmware_extract/56048-12514271.gzip_extract/gzip.uncompressed_extract/5243916-15068666.gzip_extract/gzip.uncompressed_extract/usr/lib/libdbus-1.so.3.19.8 @ 0x21528 */
| #include <stdint.h>
|
; (fcn) fcn.00021528 () | void fcn_00021528 (int32_t arg_4h, int32_t arg_38h, int32_t arg1, int32_t arg2) {
| int32_t var_0h;
| int32_t var_8h;
| int32_t var_ch;
| int32_t var_14h;
| r0 = arg1;
| r1 = arg2;
0x00021528 push {r4, r5, r6, r7, r8, sb, sl, fp, lr} |
0x0002152c sub sp, sp, 0x14 |
0x00021530 ldr r6, [sp, 0x38] | r6 = *(arg_38h);
0x00021534 mov sb, r2 | sb = r2;
0x00021538 mov r8, r3 | r8 = r3;
0x0002153c mov sl, r1 | sl = r1;
0x00021540 mov r4, r0 | r4 = r0;
| label_2:
0x00021544 ldr fp, [sl], 4 | fp = *(sl);
| sl += 4;
0x00021548 cmp fp, 0 |
| if (fp != 0) {
0x0002154c bne 0x21568 | goto label_4;
| }
0x00021550 cmp r6, 0 |
| if (r6 == 0) {
0x00021554 movne r3, 1 | r3 = 1;
| }
0x00021558 strne r3, [r6] | *(r6) = r3;
| while (r0 != 0) {
| label_0:
0x0002155c mov r0, r4 | r0 = r4;
0x00021560 add sp, sp, 0x14 |
0x00021564 pop {r4, r5, r6, r7, r8, sb, sl, fp, pc} |
| label_4:
0x00021568 ldr r3, [r4, 0x18] | r3 = *((r4 + 0x18));
0x0002156c mov r7, 0 | r7 = 0;
| label_1:
0x00021570 cmp r3, r7 |
| if (r3 <= r7) {
0x00021574 bgt 0x215dc |
0x00021578 cmp sb, 0 |
| if (sb == 0) {
0x0002157c beq 0x216d8 | goto label_5;
| }
0x00021580 mov r0, fp | r0 = fp;
0x00021584 bl 0x214b4 | r0 = fcn_000214b4 (r0);
0x00021588 subs fp, r0, 0 |
| if (fp == r0) {
0x0002158c beq 0x21664 | goto label_3;
| }
0x00021590 ldr r3, [r4, 0x18] | r3 = *((r4 + 0x18));
0x00021594 ldr r5, [r4, 0x1c] | r5 = *((r4 + 0x1c));
0x00021598 add r3, r3, 1 | r3++;
0x0002159c cmp r5, r3 |
| if (r5 >= r3) {
0x000215a0 bge 0x21680 | goto label_6;
| }
0x000215a4 cmp r5, 0 |
| if (r5 == 0) {
0x000215a8 lslne r5, r5, 1 | r5 <<= 1;
| }
| if (r5 != 0) {
0x000215ac moveq r5, 1 | r5 = 1;
| }
0x000215b0 lsl r1, r5, 2 | r1 = r5 << 2;
0x000215b4 ldr r0, [r4, 0x14] | r0 = *((r4 + 0x14));
0x000215b8 str r3, [sp, 8] | var_8h = r3;
0x000215bc bl 0xa3e4 | fcn_0000a3e4 ();
0x000215c0 ldr r3, [sp, 8] | r3 = var_8h;
0x000215c4 subs r2, r0, 0 | r2 = r0 - 0;
| if (r2 != r0) {
0x000215c8 bne 0x21678 | goto label_7;
| }
0x000215cc mov r0, fp | r0 = fp;
0x000215d0 str r2, [sp, 8] | var_8h = r2;
0x000215d4 bl 0x212b8 | fcn_000212b8 (r0);
0x000215d8 b 0x21664 | goto label_3;
| }
0x000215dc add r5, r3, r7 | r5 = r3 + r7;
0x000215e0 ldr r1, [r4, 0x14] | r1 = *((r4 + 0x14));
0x000215e4 add r5, r5, r5, lsr 31 | r5 += (r5 >> 31);
0x000215e8 asr r5, r5, 1 | r5 >>= 1;
0x000215ec ldr r1, [r1, r5, lsl 2] | offset_0 = r5 << 2;
| r1 = *((r1 + offset_0));
0x000215f0 lsl r2, r5, 2 | r2 = r5 << 2;
0x000215f4 add r1, r1, 0x21 | r1 += 0x21;
0x000215f8 mov r0, fp | r0 = fp;
0x000215fc str r3, [sp, 0xc] | var_ch = r3;
0x00021600 str r2, [sp, 8] | var_8h = r2;
0x00021604 bl 0xb1b8 | strcmp (r0, r1);
0x00021608 ldr r2, [sp, 8] | r2 = var_8h;
0x0002160c ldr r3, [sp, 0xc] | r3 = var_ch;
0x00021610 cmp r0, 0 |
| if (r0 != 0) {
0x00021614 bne 0x2166c | goto label_8;
| }
0x00021618 cmp r8, 0 |
| if (r8 == 0) {
0x0002161c strne r5, [r8] | *(r8) = r5;
| }
0x00021620 ldr r3, [r4, 0x14] | r3 = *((r4 + 0x14));
0x00021624 cmp r6, 0 |
0x00021628 ldr fp, [r3, r2] | fp = *((r3 + r2));
| if (r6 == 0) {
0x0002162c beq 0x216d0 | goto label_9;
| }
0x00021630 str r6, [sp] | *(sp) = r6;
0x00021634 mov r3, r8 | r3 = r8;
0x00021638 mov r2, sb | r2 = sb;
0x0002163c mov r1, sl | r1 = sl;
0x00021640 mov r0, fp | r0 = fp;
0x00021644 bl 0x21528 | r0 = fcn_00021528 (r0, r1, r2, r3);
0x00021648 cmp r0, 0 |
| if (r0 == 0) {
0x0002164c movne r4, r0 | r4 = r0;
| }
0x00021650 bne 0x2155c |
| }
0x00021654 ldrb r3, [r4, 0x20] | r3 = *((r4 + 0x20));
0x00021658 tst r3, 1 |
| if ((r3 & 1) != 0) {
0x0002165c strne r0, [r6] | *(r6) = r0;
| goto label_10;
| }
| if ((r3 & 1) != 0) {
| label_10:
0x00021660 bne 0x2155c | goto label_0;
| }
| do {
| label_3:
0x00021664 mov r4, 0 | r4 = 0;
0x00021668 b 0x2155c | goto label_0;
| if ((r3 & 1) < 0) {
| label_8:
0x0002166c addge r7, r5, 1 | r7 = r5 + 1;
| }
| if ((r3 & 1) >= 0) {
0x00021670 movlt r3, r5 | r3 = r5;
| }
0x00021674 b 0x21570 | goto label_1;
| label_7:
0x00021678 str r2, [r4, 0x14] | *((r4 + 0x14)) = r2;
0x0002167c str r5, [r4, 0x1c] | *((r4 + 0x1c)) = r5;
| label_6:
0x00021680 add r2, r7, 1 | r2 = r7 + 1;
0x00021684 cmp r2, r3 |
0x00021688 lsl r5, r7, 2 | r5 = r7 << 2;
| if (r2 < r3) {
0x0002168c bge 0x216b8 |
0x00021690 ldr ip, [r4, 0x14] | ip = *((r4 + 0x14));
0x00021694 sub r2, r3, r7 | r2 = r3 - r7;
0x00021698 sub r2, r2, 1 | r2--;
0x0002169c add r0, r5, 4 | r0 = r5 + 4;
0x000216a0 lsl r2, r2, 2 | r2 <<= 2;
0x000216a4 add r1, ip, r5 | r1 = ip + r5;
0x000216a8 add r0, ip, r0 | r0 = ip + r0;
0x000216ac str r3, [sp, 8] | var_8h = r3;
0x000216b0 bl 0xa498 | memmove (r0, r1, r2);
0x000216b4 ldr r3, [sp, 8] | r3 = var_8h;
| }
0x000216b8 ldr r2, [r4, 0x14] | r2 = *((r4 + 0x14));
0x000216bc cmp r8, 0 |
0x000216c0 str fp, [r2, r5] | *((r2 + r5)) = fp;
| if (r8 == 0) {
0x000216c4 strne r7, [r8] | *(r8) = r7;
| }
0x000216c8 str r3, [r4, 0x18] | *((r4 + 0x18)) = r3;
0x000216cc str r4, [fp, 4] | *(arg_4h) = r4;
| label_9:
0x000216d0 mov r4, fp | r4 = fp;
0x000216d4 b 0x21544 | goto label_2;
| label_5:
0x000216d8 cmp r6, 0 |
0x000216dc beq 0x21664 |
| } while (r6 == 0);
0x000216e0 str sb, [r6] | *(r6) = sb;
0x000216e4 ldrb r3, [r4, 0x20] | r3 = *((r4 + 0x20));
0x000216e8 tst r3, 1 |
| if ((r3 & 1) != 0) {
0x000216ec bne 0x2155c | goto label_0;
| }
0x000216f0 b 0x21664 | goto label_3;
| }
; assembly | /* r2dec pseudo code output */
| /* /logs/firmware/unblob_extracted/firmware_extract/56048-12514271.gzip_extract/gzip.uncompressed_extract/5243916-15068666.gzip_extract/gzip.uncompressed_extract/usr/lib/libdbus-1.so.3.19.8 @ 0x2c6b0 */
| #include <stdint.h>
|
; (fcn) fcn.0002c6b0 () | void fcn_0002c6b0 (uint32_t arg1, uint32_t arg2) {
| r0 = arg1;
| r1 = arg2;
0x0002c6b0 cmp r0, 0 |
| if (r0 != 0) {
0x0002c6b4 moveq ip, r0 |
| }
0x0002c6b8 push {r4, r5, r6, r7, r8, lr} |
| if (r0 != 0) {
0x0002c6bc moveq r4, ip | r4 = ip;
| }
| if (r0 != 0) {
0x0002c6c0 moveq r8, ip | r8 = ip;
| }
| if (r0 == 0) {
0x0002c6c4 beq 0x2c6f4 | goto label_1;
| }
0x0002c6c8 ldr lr, [r0] |
0x0002c6cc ldr r5, [r0, 0x14] | r5 = *((r0 + 0x14));
0x0002c6d0 ldr ip, [r0, 0xc] | ip = *((r0 + 0xc));
0x0002c6d4 mul r8, lr, r5 | r8 = lr * r5;
0x0002c6d8 mov r4, 0 | r4 = 0;
| do {
0x0002c6dc cmp ip, 0 |
| if (ip == 0) {
0x0002c6e0 bne 0x2c710 |
0x0002c6e4 ldr r6, [r0, 0x10] | r6 = *((r0 + 0x10));
0x0002c6e8 mov lr, r6 | lr = r6;
| label_0:
0x0002c6ec cmp lr, 0 |
| if (lr != 0) {
0x0002c6f0 bne 0x2c71c | goto label_2;
| }
| label_1:
0x0002c6f4 cmp r1, 0 |
| if (r1 == 0) {
0x0002c6f8 strne r8, [r1] | *(r1) = r8;
| }
0x0002c6fc cmp r2, 0 |
| if (r2 == 0) {
0x0002c700 strne r4, [r2] | *(r2) = r4;
| }
0x0002c704 cmp r3, 0 |
| if (r3 == 0) {
0x0002c708 strne ip, [r3] | *(r3) = ip;
| }
0x0002c70c pop {r4, r5, r6, r7, r8, pc} |
| }
0x0002c710 add r4, r4, lr | r4 += lr;
0x0002c714 ldr ip, [ip] | ip = *(ip);
0x0002c718 b 0x2c6dc |
| } while (1);
| label_2:
0x0002c71c cmp lr, r6 |
| if (lr == r6) {
0x0002c720 ldrne r7, [lr, 4] | r7 = *((lr + 4));
| }
| if (lr != r6) {
0x0002c724 ldreq r7, [r0, 4] | r7 = *((r0 + 4));
| }
0x0002c728 ldr lr, [lr] |
0x0002c72c add ip, ip, r7 |
0x0002c730 b 0x2c6ec | goto label_0;
| }
; assembly | /* r2dec pseudo code output */
| /* /logs/firmware/unblob_extracted/firmware_extract/56048-12514271.gzip_extract/gzip.uncompressed_extract/5243916-15068666.gzip_extract/gzip.uncompressed_extract/usr/lib/libdbus-1.so.3.19.8 @ 0x2e520 */
| #include <stdint.h>
|
| #define BIT_MASK(t,v) ((t)(-((v)!= 0)))&(((t)-1)>>((sizeof(t)*CHAR_BIT)-(v)))
|
; (fcn) fcn.0002e520 () | void fcn_0002e520 (int32_t arg_4h, int32_t arg_8h, int32_t arg_ch, void * s2, int32_t arg_14h, int32_t arg1, int32_t arg2) {
| int32_t var_40h;
| int32_t var_3ch;
| int32_t var_38h;
| int32_t var_34h;
| int32_t var_30h;
| int32_t var_28h;
| int32_t var_24h;
| int32_t var_20h;
| int32_t var_1ch;
| int32_t var_14h_2;
| int32_t var_14h;
| r0 = arg1;
| r1 = arg2;
0x0002e520 push {r4, r5, r6, r7, fp, lr} |
0x0002e524 add fp, sp, 0x14 |
0x0002e528 sub sp, sp, 0x30 |
0x0002e52c ldr r7, [fp, 4] | r7 = *(arg_4h);
0x0002e530 ldr r1, [r1] | r1 = *(r1);
0x0002e534 mov r6, r0 | r6 = r0;
0x0002e538 mov r0, 0 | r0 = 0;
0x0002e53c cmp r7, r0 |
0x0002e540 add r2, r1, r2 | r2 = r1 + r2;
0x0002e544 str r3, [fp, -0x3c] | var_3ch = r3;
0x0002e548 str r2, [fp, -0x40] | var_40h = r2;
| if (r7 == r0) {
0x0002e54c ldrne r3, [r7] | r3 = *(r7);
| }
| if (r7 == r0) {
0x0002e550 ldrne r2, [fp, 8] | r2 = *(arg_8h);
| }
0x0002e554 str r0, [fp, -0x38] | var_38h = r0;
| if (r7 == r0) {
0x0002e558 addne r3, r3, r2 | r3 += r2;
| }
| if (r7 == r0) {
0x0002e55c strne r3, [fp, -0x38] | var_38h = r3;
| }
| if (r7 == r0) {
0x0002e560 ldrne r3, [fp, 0xc] | r3 = *(arg_ch);
| }
0x0002e564 ldr r4, [fp, 0x14] | r4 = *(arg_14h);
0x0002e568 sub r5, fp, 0x30 | r5 -= var_30h;
0x0002e56c str r0, [fp, -0x34] | var_34h = r0;
0x0002e570 mov r2, 0x1c | r2 = 0x1c;
0x0002e574 mov r1, 0 | r1 = 0;
0x0002e578 mov r0, r5 | r0 = r5;
| if (r7 == r0) {
0x0002e57c strne r3, [fp, -0x34] | var_34h = r3;
| }
0x0002e580 bl 0xb020 | memset (r0, r1, r2);
0x0002e584 sub r3, fp, 0x40 | r3 -= var_40h;
0x0002e588 cmp r7, 0 |
0x0002e58c str r3, [fp, -0x28] | var_28h = r3;
| if (r7 == 0) {
0x0002e590 movne r3, 2 | r3 = 2;
| }
| if (r7 != 0) {
0x0002e594 moveq r3, 1 | r3 = 1;
| }
0x0002e598 cmp r4, 0 |
0x0002e59c str r3, [fp, -0x24] | var_24h = r3;
| if (r4 <= 0) {
0x0002e5a0 ble 0x2e5fc | goto label_0;
| }
0x0002e5a4 add r4, r4, 1 | r4++;
0x0002e5a8 lsl r4, r4, 2 | r4 <<= 2;
0x0002e5ac add r3, r4, 0x16 | r3 = r4 + 0x16;
0x0002e5b0 bic r3, r3, 7 | r3 = BIT_MASK (r3, 7);
0x0002e5b4 sub sp, sp, r3 |
0x0002e5b8 add r7, r4, 8 | r7 = r4 + 8;
0x0002e5bc mov r3, sp | r3 = sp;
0x0002e5c0 mov r2, r7 | r2 = r7;
0x0002e5c4 mov r1, 0 | r1 = 0;
0x0002e5c8 mov r0, r3 | r0 = r3;
0x0002e5cc str r7, [fp, -0x1c] | var_1ch = r7;
0x0002e5d0 str r3, [fp, -0x20] | var_20h = r3;
0x0002e5d4 bl 0xb020 | memset (r0, r1, r2);
0x0002e5d8 cmp r7, 0xb |
| if (r7 < 0xb) {
0x0002e5dc bls 0x2e630 | goto label_1;
| }
0x0002e5e0 mov r2, 1 | r2 = 1;
0x0002e5e4 str r2, [r0, 4] | *((r0 + 4)) = r2;
0x0002e5e8 str r2, [r0, 8] | *((r0 + 8)) = r2;
0x0002e5ec ldr r1, [fp, 0x10] | r1 = *(s2);
0x0002e5f0 str r7, [r0], 0xc | *(r0) = r7;
| r0 += 0xc;
0x0002e5f4 sub r2, r4, 4 | r2 = r4 - 4;
0x0002e5f8 bl 0xa654 | memcpy (r0, r1, r2);
| do {
| label_0:
0x0002e5fc mov r2, 0x4000 | r2 = 0x4000;
0x0002e600 mov r1, r5 | r1 = r5;
0x0002e604 mov r0, r6 | r0 = r6;
0x0002e608 bl 0xad20 | r0 = sendmsg ();
0x0002e60c subs r4, r0, 0 | r4 = r0 - 0;
| if (r4 >= r0) {
0x0002e610 bge 0x2e624 | goto label_2;
| }
0x0002e614 bl 0xb548 | r0 = errno_location ();
0x0002e618 ldr r3, [r0] | r3 = *(r0);
0x0002e61c cmp r3, 4 |
0x0002e620 beq 0x2e5fc |
| } while (r3 == 4);
| label_2:
0x0002e624 mov r0, r4 | r0 = r4;
0x0002e628 sub sp, fp, 0x14 |
0x0002e62c pop {r4, r5, r6, r7, fp, pc} |
| label_1:
0x0002e630 mov r3, 0 | r3 = 0;
0x0002e634 str r3, [r3, 4] | *((r3 + 4)) = r3;
0x0002e638 udf 0 | __asm ("udf 0");
| }
; assembly | /* r2dec pseudo code output */
| /* /logs/firmware/unblob_extracted/firmware_extract/56048-12514271.gzip_extract/gzip.uncompressed_extract/5243916-15068666.gzip_extract/gzip.uncompressed_extract/usr/lib/libdbus-1.so.3.19.8 @ 0x26d54 */
| #include <stdint.h>
|
; (fcn) sym.dbus_timeout_set_data () | void dbus_timeout_set_data (int32_t arg1, int32_t arg2) {
| r0 = arg1;
| r1 = arg2;
0x00026d54 push {r4, r5, r6, lr} |
0x00026d58 ldr r3, [r0, 0x18] | r3 = *((r0 + 0x18));
0x00026d5c mov r4, r0 | r4 = r0;
0x00026d60 cmp r3, 0 |
0x00026d64 mov r6, r1 | r6 = r1;
0x00026d68 mov r5, r2 | r5 = r2;
| if (r3 != 0) {
0x00026d6c beq 0x26d78 |
0x00026d70 ldr r0, [r0, 0x14] | r0 = *((r0 + 0x14));
0x00026d74 blx r3 | uint32_t (*r3)(uint32_t) (r0);
| }
0x00026d78 str r6, [r4, 0x14] | *((r4 + 0x14)) = r6;
0x00026d7c str r5, [r4, 0x18] | *((r4 + 0x18)) = r5;
0x00026d80 pop {r4, r5, r6, pc} |
| }
[*] Function mmap used 1 times libdbus-1.so.3.19.8