[*] Binary protection state of libdaemon.so.0.5.0

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


[*] Function fprintf tear down of libdaemon.so.0.5.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/libdaemon.so.0.5.0 @ 0x1634 */
                                                         | #include <stdint.h>
                                                         |  
    ; (fcn) sym.daemon_logv ()                           | void daemon_logv (int32_t arg1, int32_t arg2) {
                                                         |     r0 = arg1;
                                                         |     r1 = arg2;
    0x00001634 push {r4, r5, r6, r7, r8, sb, sl, lr}     |     
    0x00001638 ldr r4, [pc, 0xdc]                        |     r4 = *(0x1718);
    0x0000163c mov sl, r0                                |     sl = r0;
    0x00001640 mov r5, r1                                |     r5 = r1;
    0x00001644 mov r6, r2                                |     r6 = r2;
    0x00001648 bl 0x13f0                                 |     errno_location ();
    0x0000164c ldr r3, [pc, 0xcc]                        |     r3 = *(0x171c);
    0x00001650 add r4, pc, r4                            |     r4 = pc + r4;
    0x00001654 ldr r7, [r4, r3]                          |     r7 = *(0x1718);
    0x00001658 ldr r3, [r7]                              |     r3 = *(0x1718);
    0x0000165c tst r3, 1                                 |     
    0x00001660 mov r8, r0                                |     r8 = r0;
    0x00001664 ldr sb, [r0]                              |     sb = *(r0);
                                                         |     if ((r3 & 1) != 0) {
    0x00001668 beq 0x16a0                                |         
    0x0000166c ldr r3, [pc, 0xb0]                        |         r3 = *(0x1720);
    0x00001670 ldr r3, [r4, r3]                          |         r3 = *((r4 + r3));
    0x00001674 ldr r0, [r3]                              |         r0 = *(0x1720);
    0x00001678 cmp r0, 0                                 |         
                                                         |         if (r0 != 0) {
    0x0000167c ldreq r0, [pc, 0xa4]                      |             r0 = *((pc + 0xa4));
                                                         |         }
                                                         |         if (r0 != 0) {
    0x00001680 addeq r0, pc, r0                          |             r0 = pc + r0;
                                                         |         }
    0x00001684 mov r2, 0x18                              |         r2 = 0x18;
    0x00001688 mov r1, 1                                 |         r1 = 1;
    0x0000168c bl 0x1300                                 |         openlog ();
    0x00001690 mov r2, r6                                |         r2 = r6;
    0x00001694 mov r1, r5                                |         r1 = r5;
    0x00001698 orr r0, sl, 0x18                          |         r0 = sl | 0x18;
    0x0000169c bl 0x13fc                                 |         vsyslog ();
                                                         |     }
    0x000016a0 ldr r3, [pc, 0x84]                        |     
    0x000016a4 add r3, pc, r3                            |     r3 = pc + r3;
    0x000016a8 ldr r3, [r3]                              |     r3 = *(0x1728);
    0x000016ac cmp r3, sl                                |     
                                                         |     if (r3 >= sl) {
    0x000016b0 blt 0x1714                                |         
    0x000016b4 ldr r3, [r7]                              |         r3 = *(r7);
    0x000016b8 tst r3, 2                                 |         
                                                         |         if ((r3 & 2) != 0) {
    0x000016bc beq 0x16e4                                |             
    0x000016c0 ldr r3, [pc, 0x68]                        |             r3 = *(0x172c);
    0x000016c4 mov r1, r5                                |             r1 = r5;
    0x000016c8 ldr sl, [r4, r3]                          |             sl = *((r4 + r3));
    0x000016cc mov r2, r6                                |             r2 = r6;
    0x000016d0 ldr r0, [sl]                              |             r0 = *(sl);
    0x000016d4 bl 0x1474                                 |             vfprintf (r0, r1, r2)
    0x000016d8 ldr r1, [sl]                              |             r1 = *(sl);
    0x000016dc mov r0, 0xa                               |             r0 = 0xa;
    0x000016e0 bl 0x13cc                                 |             fputc (r0, r1);
                                                         |         }
    0x000016e4 ldr r3, [r7]                              |         r3 = *(r7);
    0x000016e8 tst r3, 4                                 |         
                                                         |         if ((r3 & 4) == 0) {
    0x000016ec beq 0x1714                                |             goto label_0;
                                                         |         }
    0x000016f0 ldr r3, [pc, 0x3c]                        |         r3 = *(0x1730);
    0x000016f4 mov r1, r5                                |         r1 = r5;
    0x000016f8 ldr r4, [r4, r3]                          |         r4 = *((r4 + r3));
    0x000016fc mov r2, r6                                |         r2 = r6;
    0x00001700 ldr r0, [r4]                              |         r0 = *(r4);
    0x00001704 bl 0x1474                                 |         vfprintf (r0, r1, r2)
    0x00001708 ldr r1, [r4]                              |         r1 = *(r4);
    0x0000170c mov r0, 0xa                               |         r0 = 0xa;
    0x00001710 bl 0x13cc                                 |         fputc (r0, r1);
                                                         |     }
                                                         | label_0:
    0x00001714 str sb, [r8]                              |     *(r8) = sb;
    0x00001718 pop {r4, r5, r6, r7, r8, sb, sl, pc}      |     
                                                         | }

[*] Function fprintf used 3 times libdaemon.so.0.5.0