[*] Binary protection state of lsattr

  
  	Full RELRO     Canary found      NX enabled   PIE enabled  No RPATH     No RUNPATH   No Symbols


[*] Function sprintf tear down of lsattr

    ; assembly                                               | /* r2dec pseudo code output */
                                                             | /* /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-50593792.squashfs_v4_le_extract/usr/bin/lsattr @ 0xb4c */
                                                             | #include <stdint.h>
                                                             |  
    ; (fcn) fcn.00000b4c ()                                  | void fcn_00000b4c (int16_t arg1) {
                                                             |     int32_t var_0h_3;
                                                             |     int32_t var_0h_4;
                                                             |     int16_t var_8h;
                                                             |     int16_t var_18h;
                                                             |     int16_t var_74h;
                                                             |     int16_t var_0h_2;
                                                             |     int16_t var_10h;
                                                             |     int16_t var_6ch;
                                                             |     int16_t var_0h;
                                                             |     int16_t var_4h;
                                                             |     int16_t var_8h_2;
                                                             |     int16_t var_ch;
                                                             |     r0 = arg1;
    0x00000b4c blmi 0x1293478                                |     __asm ("blmi 0x1293478");
    0x00000b50 push {r4, r5, r6, r7, lr}                     |     
    0x00000b52 sub sp, 0x14                                  |     
    0x00000b54 add r2, pc                                    |     r2 += pc;
    0x00000b56 mov r1, sp                                    |     r1 = sp;
    0x00000b58 mov r6, r0                                    |     r6 = r0;
    0x00000b5a ldr r3, [r2, r3]                              |     r3 = *((r2 + r3));
    0x00000b5c ldr r7, [pc, 0x11c]                           |     
    0x00000b5e ldr r3, [r3]                                  |     r3 = *(r3);
    0x00000b60 str r3, [sp, 0xc]                             |     var_ch = r3;
    0x00000b62 mov.w r3, 0                                   |     r3 = 0;
    0x00000b66 blx 0x7f0                                     |     r0 = fgetflags ();
    0x00000b6a adds r1, r0, 1                                |     r1 = r0 + 1;
    0x00000b6c add r7, pc                                    |     r7 = 0x17ec;
                                                             |     if (r1 == r0) {
    0x00000b6e beq 0xc20                                     |         goto label_7;
                                                             |     }
    0x00000b70 ldr r3, [pc, 0x10c]                           |     
    0x00000b72 add r3, pc                                    |     
    0x00000b74 ldr r3, [r3]                                  |     r3 = *(0x17f6);
    0x00000b76 cmp r3, 0                                     |     
                                                             |     if (r3 != 0) {
    0x00000b78 bne 0xbe8                                     |         goto label_8;
                                                             |     }
                                                             | label_0:
    0x00000b7a ldr r3, [pc, 0x108]                           |     
    0x00000b7c add r3, pc                                    |     
    0x00000b7e ldr r3, [r3, 4]                               |     r3 = *(0x180a);
    0x00000b80 cmp r3, 0                                     |     
                                                             |     if (r3 != 0) {
    0x00000b82 bne 0xc04                                     |         goto label_9;
                                                             |     }
                                                             | label_1:
    0x00000b84 ldr r5, [pc, 0x100]                           |     
    0x00000b86 add r5, pc                                    |     r5 = 0x1812;
    0x00000b88 ldr r2, [r5, 8]                               |     r2 = *(0x181a);
    0x00000b8a ands r4, r2, 1                                |     r4 = r2 & 1;
                                                             |     if (r4 != r2) {
    0x00000b8e bne 0xbc2                                     |         goto label_10;
                                                             |     }
    0x00000b90 ldr r3, [pc, 0xf8]                            |     r3 = *(0xc8c);
    0x00000b92 ldr r1, [sp]                                  |     r1 = *(sp);
    0x00000b94 ldr r3, [r7, r3]                              |     r3 = *((r7 + r3));
    0x00000b96 ldr r0, [r3]                                  |     r0 = *(0xc8c);
    0x00000b98 blx 0x844                                     |     print_flags ();
    0x00000b9c ldr r1, [pc, 0xf0]                            |     
    0x00000b9e mov r2, r6                                    |     r2 = r6;
    0x00000ba0 movs r0, 1                                    |     r0 = 1;
    0x00000ba2 add r1, pc                                    |     r1 = 0x1836;
    0x00000ba4 blx 0x898                                     |     printf_chk ();
                                                             |     do {
                                                             | label_2:
    0x00000ba8 ldr r2, [pc, 0xe8]                            |         
    0x00000baa ldr r3, [pc, 0xcc]                            |         r3 = *(0xc7a);
    0x00000bac add r2, pc                                    |         r2 = 0x1844;
    0x00000bae ldr r3, [r2, r3]                              |         r3 = *(0x1844);
    0x00000bb0 ldr r2, [r3]                                  |         r2 = *(0x1844);
    0x00000bb2 ldr r3, [sp, 0xc]                             |         r3 = var_ch;
    0x00000bb4 eors r2, r3                                   |         r2 ^= r3;
    0x00000bb6 mov.w r3, 0                                   |         r3 = 0;
                                                             |         if (r2 != r3) {
    0x00000bba bne 0xc70                                     |             goto label_11;
                                                             |         }
    0x00000bbc mov r0, r4                                    |         r0 = r4;
    0x00000bbe add sp, 0x14                                  |         
    0x00000bc0 pop {r4, r5, r6, r7, pc}                      |         
                                                             | label_10:
    0x00000bc2 ldr r1, [pc, 0xd4]                            |         
    0x00000bc4 mov r2, r6                                    |         r2 = r6;
    0x00000bc6 movs r0, 1                                    |         r0 = 1;
    0x00000bc8 movs r4, 0                                    |         r4 = 0;
    0x00000bca add r1, pc                                    |         r1 = 0x1868;
    0x00000bcc blx 0x898                                     |         printf_chk ();
    0x00000bd0 ldr r3, [pc, 0xb8]                            |         r3 = *(0xc8c);
    0x00000bd2 ldr r2, [r5, 8]                               |         r2 = *((r5 + 8));
    0x00000bd4 ldr r1, [sp]                                  |         r1 = *(sp);
    0x00000bd6 ldr r5, [r7, r3]                              |         r5 = *((r7 + r3));
    0x00000bd8 ldr r0, [r5]                                  |         r0 = *(r5);
    0x00000bda blx 0x844                                     |         print_flags ();
    0x00000bde ldr r1, [r5]                                  |         r1 = *(r5);
    0x00000be0 movs r0, 0xa                                  |         r0 = 0xa;
    0x00000be2 blx 0x8bc                                     |         fputc (r0, r1);
    0x00000be6 b 0xba8                                       |         
                                                             |     } while (1);
                                                             | label_8:
    0x00000be8 add r1, sp, 8                                 |     r1 += var_8h_2;
    0x00000bea mov r0, r6                                    |     r0 = r6;
    0x00000bec blx 0x7d8                                     |     r0 = fgetproject ();
    0x00000bf0 adds r2, r0, 1                                |     r2 = r0 + 1;
    0x00000bf2 mov r4, r0                                    |     r4 = r0;
                                                             |     if (r2 != r0) {
    0x00000bf4 beq 0xc3c                                     |         
    0x00000bf6 ldr r1, [pc, 0xa4]                            |         
    0x00000bf8 movs r0, 1                                    |         r0 = 1;
    0x00000bfa ldr r2, [sp, 8]                               |         r2 = var_8h_2;
    0x00000bfc add r1, pc                                    |         r1 = 0x189e;
    0x00000bfe blx 0x898                                     |         printf_chk ();
    0x00000c02 b 0xb7a                                       |         goto label_0;
                                                             | label_9:
    0x00000c04 add r1, sp, 4                                 |         r1 += var_4h;
    0x00000c06 mov r0, r6                                    |         r0 = r6;
    0x00000c08 blx 0x7cc                                     |         r0 = fgetversion ();
    0x00000c0c adds r3, r0, 1                                |         r3 = r0 + 1;
    0x00000c0e mov r4, r0                                    |         r4 = r0;
                                                             |         if (r3 == r0) {
    0x00000c10 beq 0xc56                                     |             goto label_12;
                                                             |         }
    0x00000c12 ldr r1, [pc, 0x8c]                            |         
    0x00000c14 movs r0, 1                                    |         r0 = 1;
    0x00000c16 ldr r2, [sp, 4]                               |         r2 = var_4h;
    0x00000c18 add r1, pc                                    |         r1 = 0x18be;
    0x00000c1a blx 0x898                                     |         printf_chk ();
    0x00000c1e b 0xb84                                       |         goto label_1;
                                                             | label_7:
    0x00000c20 ldr r3, [pc, 0x80]                            |         
    0x00000c22 mov r4, r0                                    |         r4 = r0;
    0x00000c24 add r3, pc                                    |         r3 = 0x18cc;
    0x00000c26 ldr r5, [r3]                                  |         r5 = *(0x18cc);
    0x00000c28 blx 0x874                                     |         errno_location ();
    0x00000c2c ldr r2, [pc, 0x78]                            |         
    0x00000c2e mov r3, r6                                    |         r3 = r6;
    0x00000c30 ldr r1, [r0]                                  |         r1 = *(r0);
    0x00000c32 mov r0, r5                                    |         r0 = r5;
    0x00000c34 add r2, pc                                    |         r2 = 0x18e0;
    0x00000c36 blx 0x808                                     |         com_err ();
    0x00000c3a b 0xba8                                       |         goto label_2;
                                                             |     }
    0x00000c3c ldr r3, [pc, 0x6c]                            |     
    0x00000c3e add r3, pc                                    |     r3 = 0x18ee;
    0x00000c40 ldr r5, [r3]                                  |     r5 = *(0x18ee);
    0x00000c42 blx 0x874                                     |     errno_location ();
    0x00000c46 ldr r2, [pc, 0x68]                            |     
    0x00000c48 mov r3, r6                                    |     r3 = r6;
    0x00000c4a ldr r1, [r0]                                  |     r1 = *(r0);
    0x00000c4c mov r0, r5                                    |     r0 = r5;
    0x00000c4e add r2, pc                                    |     r2 = 0x1904;
    0x00000c50 blx 0x808                                     |     com_err ();
    0x00000c54 b 0xba8                                       |     goto label_2;
                                                             | label_12:
    0x00000c56 ldr r3, [pc, 0x5c]                            |     
    0x00000c58 add r3, pc                                    |     r3 = 0x1912;
    0x00000c5a ldr r5, [r3]                                  |     r5 = *(0x1912);
    0x00000c5c blx 0x874                                     |     errno_location ();
    0x00000c60 ldr r2, [pc, 0x54]                            |     
    0x00000c62 mov r3, r6                                    |     r3 = r6;
    0x00000c64 ldr r1, [r0]                                  |     r1 = *(r0);
    0x00000c66 mov r0, r5                                    |     r0 = r5;
    0x00000c68 add r2, pc                                    |     r2 = 0x1924;
    0x00000c6a blx 0x808                                     |     com_err ();
    0x00000c6e b 0xba8                                       |     goto label_2;
                                                             | label_11:
    0x00000c70 blx 0x7fc                                     |     stack_chk_fail ();
    0x00000c74 asrs r4, r2, 0x10                             |     r4 = r2 >> 0x10;
    0x00000c76 movs r1, r0                                   |     r1 = r0;
    0x00000c78 lsls r0, r7, 1                                |     r0 = r7 << 1;
    0x00000c7a movs r0, r0                                   |     
    0x00000c7c asrs r4, r7, 0xf                              |     r4 = r7 >> 0xf;
    0x00000c7e movs r1, r0                                   |     r1 = r0;
    0x00000c80 asrs r2, r3, 0x12                             |     r2 = r3 >> 0x12;
    0x00000c82 movs r1, r0                                   |     r1 = r0;
    0x00000c84 asrs r0, r2, 0x12                             |     r0 = r2 >> 0x12;
    0x00000c86 movs r1, r0                                   |     r1 = r0;
    0x00000c88 asrs r6, r0, 0x12                             |     r6 = r0 >> 0x12;
    0x00000c8a movs r1, r0                                   |     r1 = r0;
    0x00000c8c lsls r0, r1, 2                                |     r0 = r1 << 2;
    0x00000c8e movs r0, r0                                   |     
    0x00000c90 lsls r2, r4, 0x10                             |     r2 = r4 << 0x10;
    0x00000c92 movs r0, r0                                   |     
    0x00000c94 asrs r4, r7, 0xe                              |     r4 = r7 >> 0xe;
    0x00000c96 movs r1, r0                                   |     r1 = r0;
    0x00000c98 lsls r2, r6, 0xf                              |     r2 = r6 << 0xf;
    0x00000c9a movs r0, r0                                   |     
    0x00000c9c lsls r4, r2, 0xe                              |     r4 = r2 << 0xe;
    0x00000c9e movs r0, r0                                   |     
    0x00000ca0 lsls r4, r3, 0xe                              |     r4 = r3 << 0xe;
    0x00000ca2 movs r0, r0                                   |     
    0x00000ca4 asrs r0, r4, 0xf                              |     r0 = r4 >> 0xf;
    0x00000ca6 movs r1, r0                                   |     r1 = r0;
    0x00000ca8 lsls r4, r4, 0xc                              |     r4 <<= 0xc;
    0x00000caa movs r0, r0                                   |     
    0x00000cac asrs r6, r0, 0xf                              |     r6 = r0 >> 0xf;
    0x00000cae movs r1, r0                                   |     r1 = r0;
    0x00000cb0 lsls r6, r4, 0xc                              |     r6 = r4 << 0xc;
    0x00000cb2 movs r0, r0                                   |     
    0x00000cb4 asrs r4, r5, 0xe                              |     r4 = r5 >> 0xe;
    0x00000cb6 movs r1, r0                                   |     r1 = r0;
    0x00000cb8 lsls r0, r6, 0xc                              |     r0 = r6 << 0xc;
    0x00000cba movs r0, r0                                   |     
    0x00000cbc ldr r2, [pc, 0x80]                            |     
    0x00000cbe ldr r3, [pc, 0x84]                            |     r3 = *(0xd46);
    0x00000cc0 push {r4, r5, r6, lr}                         |     
    0x00000cc2 sub sp, 0x70                                  |     
    0x00000cc4 add r2, pc                                    |     r2 = 0x1a08;
    0x00000cc6 mov r1, sp                                    |     r1 = sp;
    0x00000cc8 mov r5, r0                                    |     r5 = r0;
    0x00000cca ldr r3, [r2, r3]                              |     
    0x00000ccc ldr r3, [r3]                                  |     r3 = *(0x1a08);
    0x00000cce str r3, [sp, 0x6c]                            |     var_6ch = r3;
    0x00000cd0 mov.w r3, 0                                   |     r3 = 0;
    0x00000cd4 blx 0x7e4                                     |     r0 = lstat64 ();
    0x00000cd8 adds r3, r0, 1                                |     r3 = r0 + 1;
                                                             |     if (r3 == r0) {
    0x00000cda beq 0xd20                                     |         goto label_13;
                                                             |     }
    0x00000cdc ldr r2, [sp, 0x10]                            |     r2 = var_10h;
    0x00000cde and r2, r2, 0xf000                            |     r2 &= 0xf000;
    0x00000ce2 cmp.w r2, 0x4000                              |     
                                                             |     if (r2 == 0x4000) {
    0x00000ce6 bne 0xcf0                                     |         
    0x00000ce8 ldr r3, [pc, 0x5c]                            |         
    0x00000cea add r3, pc                                    |         r3 = 0x1a36;
    0x00000cec ldr r2, [r3, 0xc]                             |         r2 = *(0x1a42);
                                                             |         if (r2 == 0) {
    0x00000cee cbz r2, 0xd12                                 |             goto label_14;
                                                             |         }
                                                             |     }
    0x00000cf0 mov r0, r5                                    |     r0 = r5;
    0x00000cf2 bl 0xb4c                                      |     r0 = fcn_00000b4c (r0);
    0x00000cf6 mov r4, r0                                    |     r4 = r0;
                                                             |     do {
                                                             | label_3:
    0x00000cf8 ldr r2, [pc, 0x50]                            |         
    0x00000cfa ldr r3, [pc, 0x48]                            |         r3 = *(0xd46);
    0x00000cfc add r2, pc                                    |         r2 = 0x1a4c;
    0x00000cfe ldr r3, [r2, r3]                              |         r3 = *(0x1a4c);
    0x00000d00 ldr r2, [r3]                                  |         r2 = *(0x1a4c);
    0x00000d02 ldr r3, [sp, 0x6c]                            |         r3 = var_6ch;
    0x00000d04 eors r2, r3                                   |         r2 ^= r3;
    0x00000d06 mov.w r3, 0                                   |         r3 = 0;
                                                             |         if (r2 != r3) {
    0x00000d0a bne 0xd3c                                     |             goto label_15;
                                                             |         }
    0x00000d0c mov r0, r4                                    |         r0 = r4;
    0x00000d0e add sp, 0x70                                  |         
    0x00000d10 pop {r4, r5, r6, pc}                          |         
                                                             | label_14:
    0x00000d12 ldr r1, [pc, 0x3c]                            |         
    0x00000d14 mov r0, r5                                    |         r0 = r5;
    0x00000d16 add r1, pc                                    |         r1 = 0x1a6c;
    0x00000d18 blx 0x8b0                                     |         r0 = iterate_on_dir ();
    0x00000d1c mov r4, r0                                    |         r4 = r0;
    0x00000d1e b 0xcf8                                       |         
                                                             |     } while (1);
                                                             | label_13:
    0x00000d20 ldr r3, [pc, 0x30]                            |     
    0x00000d22 mov r4, r0                                    |     r4 = r0;
    0x00000d24 add r3, pc                                    |     r3 = 0x1a7c;
    0x00000d26 ldr r6, [r3]                                  |     r6 = *(0x1a7c);
    0x00000d28 blx 0x874                                     |     errno_location ();
    0x00000d2c ldr r2, [pc, 0x28]                            |     
    0x00000d2e mov r3, r5                                    |     r3 = r5;
    0x00000d30 ldr r1, [r0]                                  |     r1 = *(r0);
    0x00000d32 mov r0, r6                                    |     r0 = r6;
    0x00000d34 add r2, pc                                    |     r2 = 0x1a90;
    0x00000d36 blx 0x808                                     |     com_err ();
    0x00000d3a b 0xcf8                                       |     goto label_3;
                                                             | label_15:
    0x00000d3c blx 0x7fc                                     |     stack_chk_fail ();
    0x00000d40 asrs r4, r4, 0xa                              |     r4 >>= 0xa;
    0x00000d42 movs r1, r0                                   |     r1 = r0;
    0x00000d44 lsls r0, r7, 1                                |     r0 = r7 << 1;
    0x00000d46 movs r0, r0                                   |     
    0x00000d48 asrs r2, r4, 0xc                              |     r2 = r4 >> 0xc;
    0x00000d4a movs r1, r0                                   |     r1 = r0;
    0x00000d4c asrs r4, r5, 9                                |     r4 = r5 >> 9;
    0x00000d4e movs r1, r0                                   |     r1 = r0;
    0x00000d50 lsls r3, r0, 1                                |     r3 = r0 << 1;
    0x00000d52 movs r0, r0                                   |     
    0x00000d54 asrs r0, r4, 0xb                              |     r0 = r4 >> 0xb;
    0x00000d56 movs r1, r0                                   |     r1 = r0;
    0x00000d58 lsls r0, r3, 0xa                              |     r0 = r3 << 0xa;
    0x00000d5a movs r0, r0                                   |     
    0x00000d5c ldr r2, [pc, 0x130]                           |     
    0x00000d5e ldr r3, [pc, 0x134]                           |     r3 = *(0xe96);
    0x00000d60 push.w {r4, r5, r6, r7, r8, sb, lr}           |     
    0x00000d64 add.w r8, r1, 0xb                             |     r8 = r1 + 0xb;
    0x00000d68 add r2, pc                                    |     r2 = 0x1bfc;
    0x00000d6a sub sp, 0x7c                                  |     
    0x00000d6c mov r6, r1                                    |     r6 = r1;
    0x00000d6e mov r7, r0                                    |     r7 = r0;
    0x00000d70 ldr r3, [r2, r3]                              |     
    0x00000d72 ldr.w sb, [pc, 0x124]                         |     sb = *(0x00000e98);
    0x00000d76 ldr r3, [r3]                                  |     r3 = *(0x1bfc);
    0x00000d78 str r3, [sp, 0x74]                            |     var_74h = r3;
    0x00000d7a mov.w r3, 0                                   |     r3 = 0;
    0x00000d7e blx 0x85c                                     |     r0 = strlen (r0);
    0x00000d82 mov r5, r0                                    |     r5 = r0;
    0x00000d84 mov r0, r8                                    |     r0 = r8;
    0x00000d86 blx 0x85c                                     |     strlen (r0);
    0x00000d8a add r0, r5                                    |     r0 += r5;
    0x00000d8c add sb, pc                                    |     sb += pc;
    0x00000d8e adds r0, 2                                    |     r0 += 2;
    0x00000d90 blx 0x82c                                     |     r0 = malloc (r0);
    0x00000d94 cmp r0, 0                                     |     
                                                             |     if (r0 == 0) {
    0x00000d96 beq 0xe76                                     |         goto label_16;
                                                             |     }
    0x00000d98 mov r4, r0                                    |     r4 = r0;
                                                             |     if (r5 != 0) {
    0x00000d9a cbz r5, 0xda6                                 |         
    0x00000d9c add r5, r7                                    |         r5 += r7;
    0x00000d9e ldrb r3, [r5, -0x1]                           |         r3 = *((r5 - 0x1));
    0x00000da2 cmp r3, 0x2f                                  |         
                                                             |         if (r3 == 0x2f) {
    0x00000da4 beq 0xe5e                                     |             goto label_17;
                                                             |         }
                                                             |     }
    0x00000da6 ldr r3, [pc, 0xf4]                            |     
    0x00000da8 mov.w r2, -1                                  |     r2 = -1;
    0x00000dac movs r1, 1                                    |     r1 = 1;
    0x00000dae mov r0, r4                                    |     r0 = r4;
    0x00000db0 strd r7, r8, [sp]                             |     __asm ("strd r7, r8, [sp]");
    0x00000db4 add r3, pc                                    |     r3 = 0x1c56;
    0x00000db6 blx 0x880                                     |     sprintf_chk ()
                                                             | label_5:
    0x00000dba add r1, sp, 8                                 |     r1 += var_8h;
    0x00000dbc mov r0, r4                                    |     r0 = r4;
    0x00000dbe blx 0x7e4                                     |     lstat64 ();
    0x00000dc2 adds r0, 1                                    |     r0++;
                                                             |     if (r0 == 1) {
    0x00000dc4 beq 0xe56                                     |         goto label_18;
                                                             |     }
    0x00000dc6 ldrb r3, [r6, 0xb]                            |     r3 = *((r6 + 0xb));
    0x00000dc8 cmp r3, 0x2e                                  |     
                                                             |     if (r3 != 0x2e) {
    0x00000dca bne 0xdf6                                     |         goto label_19;
                                                             |     }
    0x00000dcc ldr r3, [pc, 0xd0]                            |     
    0x00000dce add r3, pc                                    |     
    0x00000dd0 ldr r3, [r3, 0x10]                            |     r3 = *(0x1c82);
    0x00000dd2 cbnz r3, 0xdf6                                |     
                                                             |     while (r3 != 0x4000) {
                                                             | label_4:
    0x00000dd4 mov r0, r4                                    |         r0 = r4;
    0x00000dd6 blx 0x7c0                                     |         free (r0);
    0x00000dda movs r0, 0                                    |         r0 = 0;
                                                             | label_6:
    0x00000ddc ldr r2, [pc, 0xc4]                            |         
    0x00000dde ldr r3, [pc, 0xb4]                            |         r3 = *(0xe96);
    0x00000de0 add r2, pc                                    |         r2 = 0x1c88;
    0x00000de2 ldr r3, [r2, r3]                              |         r3 = *(0x1c88);
    0x00000de4 ldr r2, [r3]                                  |         r2 = *(0x1c88);
    0x00000de6 ldr r3, [sp, 0x74]                            |         r3 = var_74h;
    0x00000de8 eors r2, r3                                   |         r2 ^= r3;
    0x00000dea mov.w r3, 0                                   |         r3 = 0;
                                                             |         if (r2 != r3) {
    0x00000dee bne 0xe72                                     |             goto label_20;
                                                             |         }
    0x00000df0 add sp, 0x7c                                  |         
    0x00000df2 pop.w {r4, r5, r6, r7, r8, sb, pc}            |         
                                                             | label_19:
    0x00000df6 mov r0, r4                                    |         r0 = r4;
    0x00000df8 bl 0xb4c                                      |         fcn_00000b4c (r0);
    0x00000dfc ldr r3, [sp, 0x18]                            |         r3 = var_18h;
    0x00000dfe and r3, r3, 0xf000                            |         r3 &= 0xf000;
    0x00000e02 cmp.w r3, 0x4000                              |         
    0x00000e06 bne 0xdd4                                     |         
                                                             |     }
    0x00000e08 ldr r3, [pc, 0x9c]                            |     
    0x00000e0a add r3, pc                                    |     
    0x00000e0c ldr r3, [r3, 0x14]                            |     r3 = *(0x1cca);
    0x00000e0e cmp r3, 0                                     |     
                                                             |     if (r3 == 0) {
    0x00000e10 beq 0xdd4                                     |         goto label_4;
                                                             |     }
    0x00000e12 ldrb r3, [r6, 0xb]                            |     r3 = *((r6 + 0xb));
    0x00000e14 cmp r3, 0x2e                                  |     
                                                             |     if (r3 != 0x2e) {
    0x00000e16 bne 0xe20                                     |         goto label_21;
                                                             |     }
    0x00000e18 ldrb.w r3, [r8, 1]                            |     r3 = *((r8 + 1));
    0x00000e1c cmp r3, 0                                     |     
                                                             |     if (r3 == 0) {
    0x00000e1e beq 0xdd4                                     |         goto label_4;
                                                             |     }
                                                             | label_21:
    0x00000e20 ldrb r3, [r6, 0xb]                            |     r3 = *((r6 + 0xb));
    0x00000e22 cmp r3, 0x2e                                  |     
                                                             |     if (r3 != 0x2e) {
    0x00000e24 bne 0xe36                                     |         goto label_22;
                                                             |     }
    0x00000e26 ldrb.w r3, [r8, 1]                            |     r3 = *((r8 + 1));
    0x00000e2a cmp r3, 0x2e                                  |     
                                                             |     if (r3 != 0x2e) {
    0x00000e2c bne 0xe36                                     |         goto label_22;
                                                             |     }
    0x00000e2e ldrb.w r3, [r8, 2]                            |     r3 = *((r8 + 2));
    0x00000e32 cmp r3, 0                                     |     
                                                             |     if (r3 == 0) {
    0x00000e34 beq 0xdd4                                     |         goto label_4;
                                                             |     }
                                                             | label_22:
    0x00000e36 ldr r1, [pc, 0x74]                            |     
    0x00000e38 mov r2, r4                                    |     r2 = r4;
    0x00000e3a movs r0, 1                                    |     r0 = 1;
    0x00000e3c add r1, pc                                    |     r1 = 0x1cee;
    0x00000e3e blx 0x898                                     |     printf_chk ();
    0x00000e42 ldr r1, [pc, 0x6c]                            |     
    0x00000e44 movs r2, 0                                    |     r2 = 0;
    0x00000e46 mov r0, r4                                    |     r0 = r4;
    0x00000e48 add r1, pc                                    |     r1 = 0x1cfe;
    0x00000e4a blx 0x8b0                                     |     iterate_on_dir ();
    0x00000e4e movs r0, 0xa                                  |     r0 = 0xa;
    0x00000e50 blx 0x88c                                     |     putchar (r0);
    0x00000e54 b 0xdd4                                       |     goto label_4;
                                                             | label_18:
    0x00000e56 mov r0, r4                                    |     r0 = r4;
    0x00000e58 blx 0x814                                     |     perror (r0);
    0x00000e5c b 0xdd4                                       |     goto label_4;
                                                             | label_17:
    0x00000e5e ldr r3, [pc, 0x54]                            |     
    0x00000e60 mov.w r2, -1                                  |     r2 = -1;
    0x00000e64 movs r1, 1                                    |     r1 = 1;
    0x00000e66 strd r7, r8, [sp]                             |     __asm ("strd r7, r8, [sp]");
    0x00000e6a add r3, pc                                    |     r3 = 0x1d24;
    0x00000e6c blx 0x880                                     |     sprintf_chk ()
    0x00000e70 b 0xdba                                       |     goto label_5;
                                                             | label_20:
    0x00000e72 blx 0x7fc                                     |     stack_chk_fail ();
                                                             | label_16:
    0x00000e76 ldr r3, [pc, 0x40]                            |     
    0x00000e78 movs r2, 0x33                                 |     r2 = 0x33;
    0x00000e7a ldr r0, [pc, 0x40]                            |     
    0x00000e7c movs r1, 1                                    |     r1 = 1;
    0x00000e7e ldr.w r3, [sb, r3]                            |     r3 = *((sb + r3));
    0x00000e82 add r0, pc                                    |     r0 = 0x1d44;
    0x00000e84 ldr r3, [r3]                                  |     r3 = *(0xeba);
    0x00000e86 blx 0x820                                     |     fwrite (r0, r1, r2, r3);
    0x00000e8a mov.w r0, -1                                  |     r0 = -1;
    0x00000e8e b 0xddc                                       |     goto label_6;
                                                             | }

[*] Function sprintf used 3 times lsattr