[*] Binary protection state of dbus-daemon-launch-helper

  
  	Partial RELRO  No Canary found   NX disabled  No PIE       No RPATH     No RUNPATH   No Symbols


[*] Function fprintf tear down of dbus-daemon-launch-helper

    ; 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/libexec/dbus-daemon-launch-helper @ 0x16318 */
                                                         | #include <stdint.h>
                                                         |  
    ; (fcn) fcn.00016318 ()                              | void fcn_00016318 (uint32_t arg1, int32_t arg2) {
                                                         |     int32_t var_0h;
                                                         |     int32_t var_8h;
                                                         |     int32_t var_ch;
                                                         |     int32_t var_18h;
                                                         |     r0 = arg1;
                                                         |     r1 = arg2;
    0x00016318 push {r4, r5, r6, r7, r8, sb, sl, lr}     |     
    0x0001631c ldr r8, [pc, 0x27c]                       |     r8 = *(0x1659c);
    0x00016320 cmp r0, 0                                 |     
    0x00016324 add r8, pc, r8                            |     r8 = pc + r8;
    0x00016328 sub sp, sp, 0x18                          |     
    0x0001632c mov r7, r1                                |     r7 = r1;
    0x00016330 mov sb, r2                                |     sb = r2;
    0x00016334 mov r5, r3                                |     r5 = r3;
                                                         |     if (r0 == 0) {
    0x00016338 beq 0x16490                               |         goto label_4;
                                                         |     }
    0x0001633c ldr r6, [r0]                              |     r6 = *(r0);
    0x00016340 mov r2, 0x1a4                             |     r2 = 0x1a4;
    0x00016344 mov r1, 0xc1                              |     r1 = 0xc1;
    0x00016348 mov r0, r6                                |     r0 = r6;
    0x0001634c bl 0x12b18                                |     r0 = open64 ();
    0x00016350 subs sl, r0, 0                            |     sl = r0 - 0;
                                                         |     if (sl < r0) {
    0x00016354 bge 0x16394                               |         
    0x00016358 bl 0x1301c                                |         r0 = errno_location ();
    0x0001635c mov r4, r0                                |         r4 = r0;
    0x00016360 ldr r0, [r0]                              |         r0 = *(r0);
    0x00016364 bl 0x12b54                                |         r0 = dbus_error_from_errno ();
    0x00016368 mov r7, r0                                |         r7 = r0;
    0x0001636c ldr r0, [r4]                              |         r0 = *(r4);
    0x00016370 bl 0x12ad0                                |         dbus_strerror ();
    0x00016374 ldr r2, [pc, 0x228]                       |         r2 = *(0x165a0);
    0x00016378 mov r3, r6                                |         r3 = r6;
    0x0001637c add r2, pc, r2                            |         r2 = pc + r2;
    0x00016380 str r0, [sp]                              |         *(sp) = r0;
                                                         | label_0:
    0x00016384 mov r1, r7                                |         r1 = r7;
    0x00016388 mov r0, r5                                |         r0 = r5;
    0x0001638c bl 0x12e6c                                |         dbus_set_error ();
    0x00016390 b 0x163ec                                 |         
                                                         |     } else {
    0x00016394 ldr r1, [pc, 0x20c]                       |         r1 = *(0x165a4);
    0x00016398 add r1, pc, r1                            |         r1 = pc + r1;
    0x0001639c bl 0x12ff8                                |         r0 = fdopen ();
    0x000163a0 subs r4, r0, 0                            |         r4 = r0 - 0;
                                                         |         if (r4 != r0) {
    0x000163a4 bne 0x163f4                               |             goto label_5;
                                                         |         }
    0x000163a8 bl 0x1301c                                |         r0 = errno_location ();
    0x000163ac mov r6, r0                                |         r6 = r0;
    0x000163b0 ldr r0, [r0]                              |         r0 = *(r0);
    0x000163b4 bl 0x12b54                                |         r0 = dbus_error_from_errno ();
    0x000163b8 mov r7, r0                                |         r7 = r0;
    0x000163bc ldr r0, [r6]                              |         r0 = *(r6);
    0x000163c0 bl 0x12ad0                                |         dbus_strerror ();
    0x000163c4 ldr r2, [pc, 0x1e0]                       |         r2 = *(0x165a8);
    0x000163c8 mov r1, r7                                |         r1 = r7;
    0x000163cc mov r3, sl                                |         r3 = sl;
    0x000163d0 add r2, pc, r2                            |         r2 = pc + r2;
    0x000163d4 str r0, [sp]                              |         *(sp) = r0;
    0x000163d8 mov r0, r5                                |         r0 = r5;
    0x000163dc bl 0x12e6c                                |         dbus_set_error ();
    0x000163e0 mov r1, r4                                |         r1 = r4;
    0x000163e4 mov r0, sl                                |         r0 = sl;
    0x000163e8 bl 0x12fbc                                |         dbus_close ();
                                                         |     }
                                                         |     do {
                                                         | label_1:
    0x000163ec mov r0, 0                                 |         r0 = 0;
    0x000163f0 b 0x1649c                                 |         goto label_6;
                                                         | label_5:
    0x000163f4 ldr r1, [pc, 0x1b4]                       |         r1 = *(0x165ac);
    0x000163f8 mov r2, sb                                |         r2 = sb;
    0x000163fc add r1, pc, r1                            |         r1 = pc + r1;
    0x00016400 bl 0x12a70                                |         r0 = fprintf (r0, r1, r2)
    0x00016404 cmp r0, 0                                 |         
                                                         |         if (r0 >= 0) {
    0x00016408 bge 0x16450                               |             goto label_7;
                                                         |         }
    0x0001640c bl 0x1301c                                |         r0 = errno_location ();
    0x00016410 mov r7, r0                                |         r7 = r0;
    0x00016414 ldr r0, [r0]                              |         r0 = *(r0);
    0x00016418 bl 0x12b54                                |         r0 = dbus_error_from_errno ();
    0x0001641c mov r8, r0                                |         r8 = r0;
    0x00016420 ldr r0, [r7]                              |         r0 = *(r7);
    0x00016424 bl 0x12ad0                                |         dbus_strerror ();
    0x00016428 ldr r2, [pc, 0x184]                       |         r2 = *(0x165b0);
    0x0001642c mov r3, r6                                |         r3 = r6;
    0x00016430 add r2, pc, r2                            |         r2 = pc + r2;
    0x00016434 mov r1, r8                                |         r1 = r8;
    0x00016438 str r0, [sp]                              |         *(sp) = r0;
    0x0001643c mov r0, r5                                |         r0 = r5;
    0x00016440 bl 0x12e6c                                |         dbus_set_error ();
    0x00016444 mov r0, r4                                |         r0 = r4;
    0x00016448 bl 0x12e90                                |         fclose (r0);
    0x0001644c b 0x163ec                                 |         
                                                         |     } while (1);
                                                         | label_7:
    0x00016450 mov r0, r4                                |     r0 = r4;
    0x00016454 bl 0x12e90                                |     r0 = fclose (r0);
    0x00016458 cmn r0, 1                                 |     
                                                         |     if (r0 == 1) {
    0x0001645c bne 0x16490                               |         
    0x00016460 bl 0x1301c                                |         r0 = errno_location ();
    0x00016464 mov r4, r0                                |         r4 = r0;
    0x00016468 ldr r0, [r0]                              |         r0 = *(r0);
    0x0001646c bl 0x12b54                                |         r0 = dbus_error_from_errno ();
    0x00016470 mov r7, r0                                |         r7 = r0;
    0x00016474 ldr r0, [r4]                              |         r0 = *(r4);
    0x00016478 bl 0x12ad0                                |         dbus_strerror ();
    0x0001647c ldr r2, [pc, 0x134]                       |         r2 = *(0x165b4);
    0x00016480 mov r3, r6                                |         r3 = r6;
    0x00016484 add r2, pc, r2                            |         r2 = pc + r2;
    0x00016488 str r0, [sp]                              |         *(sp) = r0;
    0x0001648c b 0x16384                                 |         goto label_0;
                                                         |     }
                                                         | label_4:
    0x00016490 cmp r7, 0                                 |     
    0x00016494 bne 0x164a4                               |     
                                                         |     while (r0 == 0) {
                                                         | label_3:
    0x00016498 mov r0, 1                                 |         r0 = 1;
                                                         | label_6:
    0x0001649c add sp, sp, 0x18                          |         
    0x000164a0 pop {r4, r5, r6, r7, r8, sb, sl, pc}      |         
    0x000164a4 mov r0, r7                                |         r0 = r7;
    0x000164a8 bl 0x12ae8                                |         r0 = dbus_pipe_is_valid ();
    0x000164ac cmp r0, 0                                 |         
    0x000164b0 beq 0x16498                               |         
                                                         |     }
    0x000164b4 add r4, sp, 8                             |     r4 += var_8h;
    0x000164b8 mov r0, r4                                |     r0 = r4;
    0x000164bc bl 0x12d34                                |     r0 = dbus_string_init ();
    0x000164c0 cmp r0, 0                                 |     
                                                         |     if (r0 != 0) {
    0x000164c4 bne 0x164e8                               |         goto label_8;
                                                         |     }
    0x000164c8 ldr r3, [pc, 0xec]                        |     r3 = *(0x165b8);
    0x000164cc ldr r1, [pc, 0xec]                        |     r1 = *(0x165bc);
    0x000164d0 ldr r3, [r8, r3]                          |     r3 = *((r8 + r3));
    0x000164d4 add r1, pc, r1                            |     r1 = pc + r1;
    0x000164d8 ldr r2, [r3]                              |     r2 = *(0x165b8);
                                                         |     do {
    0x000164dc mov r0, r5                                |         r0 = r5;
    0x000164e0 bl 0x1295c                                |         dbus_set_error_const ();
    0x000164e4 b 0x163ec                                 |         goto label_1;
                                                         | label_8:
    0x000164e8 mov r1, sb                                |         r1 = sb;
    0x000164ec mov r0, r4                                |         r0 = r4;
    0x000164f0 bl 0x12e60                                |         r0 = dbus_string_append_int ();
    0x000164f4 cmp r0, 0                                 |         
                                                         |         if (r0 != 0) {
    0x000164f8 bne 0x1651c                               |             goto label_9;
                                                         |         }
                                                         | label_2:
    0x000164fc mov r0, r4                                |         r0 = r4;
    0x00016500 bl 0x12bb4                                |         dbus_string_free ();
    0x00016504 ldr r3, [pc, 0xb0]                        |         r3 = *(0x165b8);
    0x00016508 ldr r1, [pc, 0xb4]                        |         r1 = *(0x165c0);
    0x0001650c ldr r3, [r8, r3]                          |         r3 = *((r8 + r3));
    0x00016510 add r1, pc, r1                            |         r1 = pc + r1;
    0x00016514 ldr r2, [r3]                              |         r2 = *(0x165b8);
    0x00016518 b 0x164dc                                 |         
                                                         |     } while (1);
                                                         | label_9:
    0x0001651c ldr r1, [pc, 0xa4]                        |     r1 = *(0x165c4);
    0x00016520 mov r0, r4                                |     r0 = r4;
    0x00016524 add r1, pc, r1                            |     r1 = pc + r1;
    0x00016528 bl 0x12ef0                                |     r0 = dbus_string_append ();
    0x0001652c cmp r0, 0                                 |     
                                                         |     if (r0 == 0) {
    0x00016530 beq 0x164fc                               |         goto label_2;
                                                         |     }
    0x00016534 ldr r6, [sp, 0xc]                         |     r6 = var_ch;
    0x00016538 str r5, [sp]                              |     *(sp) = r5;
    0x0001653c mov r3, r6                                |     r3 = r6;
    0x00016540 mov r2, 0                                 |     r2 = 0;
    0x00016544 mov r1, r4                                |     r1 = r4;
    0x00016548 mov r0, r7                                |     r0 = r7;
    0x0001654c bl 0x12dac                                |     r0 = dbus_pipe_write ();
    0x00016550 cmp r6, r0                                |     
                                                         |     if (r6 != r0) {
    0x00016554 beq 0x16594                               |         
    0x00016558 cmp r5, 0                                 |         
                                                         |         if (r5 != 0) {
    0x0001655c beq 0x16588                               |             
    0x00016560 mov r0, r5                                |             r0 = r5;
    0x00016564 bl 0x12e84                                |             r0 = dbus_error_is_set ();
    0x00016568 cmp r0, 0                                 |             
                                                         |             if (r0 != 0) {
    0x0001656c bne 0x16588                               |                 goto label_10;
                                                         |             }
    0x00016570 ldr r2, [pc, 0x54]                        |             r2 = *(0x165c8);
    0x00016574 ldr r1, [pc, 0x54]                        |             r1 = *(0x165cc);
    0x00016578 add r2, pc, r2                            |             r2 = pc + r2;
    0x0001657c add r1, pc, r1                            |             r1 = pc + r1;
    0x00016580 mov r0, r5                                |             r0 = r5;
    0x00016584 bl 0x12e6c                                |             dbus_set_error ();
                                                         |         }
                                                         | label_10:
    0x00016588 mov r0, r4                                |         r0 = r4;
    0x0001658c bl 0x12bb4                                |         dbus_string_free ();
    0x00016590 b 0x163ec                                 |         goto label_1;
                                                         |     }
    0x00016594 mov r0, r4                                |     r0 = r4;
    0x00016598 bl 0x12bb4                                |     dbus_string_free ();
    0x0001659c b 0x16498                                 |     goto label_3;
                                                         | }

[*] Function fprintf used 2 times dbus-daemon-launch-helper