[*] Binary protection state of e2mmpstatus

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


[*] Function printf tear down of e2mmpstatus

    ; assembly                               | /* r2dec pseudo code output */
                                             | /* /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-80367616.squashfs_v4_le_extract/usr/sbin/e2mmpstatus @ 0x2b9c */
                                             | #include <stdint.h>
                                             |  
    ; (fcn) fcn.00002b9c ()                  | void fcn_00002b9c (int16_t arg1, int16_t arg2) {
                                             |     r0 = arg1;
                                             |     r1 = arg2;
    0x00002b9c ldr.w ip, [pc, 0x30]          |     
    0x00002ba0 mov r3, r1                    |     r3 = r1;
    0x00002ba2 mov r2, r0                    |     r2 = r0;
    0x00002ba4 add ip, pc                    |     ip = 0x5778;
    0x00002ba6 ldr.w r1, [ip]                |     r1 = *(0x5778);
                                             |     if (r1 != 0) {
    0x00002baa cbz r1, 0x2bc6                |         
    0x00002bac ldr.w r1, [ip, 4]             |         r1 = *((ip + 4));
                                             |         if (r1 != 0) {
    0x00002bb0 cbz r1, 0x2bbc                |             
    0x00002bb2 ldr r1, [pc, 0x20]            |             
    0x00002bb4 movs r0, 1                    |             r0 = 1;
    0x00002bb6 add r1, pc                    |             r1 = 0x5790;
    0x00002bb8 b.w 0x13c4                    |             void (*0x13c4)() ();
                                             |         }
    0x00002bbc ldr r1, [pc, 0x18]            |         
    0x00002bbe movs r0, 1                    |         r0 = 1;
    0x00002bc0 add r1, pc                    |         r1 = 0x579c;
    0x00002bc2 b.w 0x13c4                    |         void (*0x13c4)() ();
                                             |     }
    0x00002bc6 ldr r1, [pc, 0x14]            |     
    0x00002bc8 movs r0, 1                    |     r0 = 1;
    0x00002bca add r1, pc                    |     r1 = 0x57ac;
    0x00002bcc b.w 0x13c4                    |     return void (*0x13c4)() ();
                                             | }
    ; assembly                                           | /* r2dec pseudo code output */
                                                         | /* /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-80367616.squashfs_v4_le_extract/usr/sbin/e2mmpstatus @ 0x2d5c */
                                                         | #include <stdint.h>
                                                         |  
    ; (fcn) fcn.00002d5c ()                              | void fcn_00002d5c (int16_t arg_18h, int16_t arg_20h, int16_t arg_24h, int16_t arg_28h, int16_t arg_2ch, int16_t arg1, uint32_t arg3, uint32_t arg4) {
                                                         |     r0 = arg1;
                                                         |     r2 = arg3;
                                                         |     r3 = arg4;
    0x00002d5c push.w {r4, r5, r6, r7, r8, lr}           |     
    0x00002d60 mov r4, r2                                |     r4 = r2;
    0x00002d62 ldr r7, [sp, 0x20]                        |     r7 = *(arg_20h);
    0x00002d64 ldr.w lr, [sp, 0x24]                      |     
    0x00002d68 ldr r6, [sp, 0x28]                        |     r6 = *(arg_28h);
    0x00002d6a cmp r2, r7                                |     
    0x00002d6c sbcs.w r5, r3, lr                         |     __asm ("sbcs.w r5, r3, lr");
    0x00002d70 ite hs                                    |     
                                                         |     if (r2 < r7) {
    0x00002d72 movhs r5, 1                               |         r5 = 1;
                                                         |     }
                                                         |     if (r2 >= r7) {
    0x00002d74 movlo r5, 0                               |         r5 = 0;
                                                         |     }
    0x00002d76 cmp r6, r2                                |     
    0x00002d78 ldr r6, [sp, 0x2c]                        |     r6 = *(arg_2ch);
    0x00002d7a and r5, r5, 1                             |     r5 &= 1;
    0x00002d7e sbcs.w ip, r6, r3                         |     __asm ("sbcs.w ip, r6, r3");
    0x00002d82 ldr.w ip, [sp, 0x18]                      |     ip = *(arg_18h);
    0x00002d86 it lo                                     |     
                                                         |     if (r6 >= r2) {
    0x00002d88 movlo r5, 0                               |         r5 = 0;
                                                         |     }
                                                         |     if (r5 == 0) {
    0x00002d8a cbz r5, 0x2da0                            |         goto label_0;
                                                         |     }
    0x00002d8c cmp r3, lr                                |     
    0x00002d8e it eq                                     |     
                                                         |     if (r3 == lr) {
    0x00002d90 cmpeq r2, r7                              |         __asm ("cmpeq r2, r7");
                                                         |     }
    0x00002d92 and r3, ip, 1                             |     r3 = ip & 1;
    0x00002d96 it ne                                     |     
                                                         |     if (r3 == lr) {
    0x00002d98 movne r3, 0                               |         r3 = 0;
                                                         |     }
                                                         |     if (r3 == 0) {
    0x00002d9a cbz r3, 0x2dca                            |         goto label_1;
                                                         |     }
                                                         |     do {
    0x00002d9c pop.w {r4, r5, r6, r7, r8, pc}            |         
                                                         | label_0:
    0x00002da0 ldr r1, [r0, 0x10]                        |         r1 = *(arg_18hx10);
    0x00002da2 mov r8, r0                                |         r8 = r0;
    0x00002da4 ldr r1, [r1, 0x60]                        |         r1 = *((r1 + 0x60));
    0x00002da6 lsls r1, r1, 0x16                         |         r1 <<= 0x16;
    0x00002da8 bpl 0x2d9c                                |         
                                                         |     } while (r1 >= r1);
    0x00002daa blx 0x1534                                |     r0 = fcn_00001534 ();
    0x00002dae mov r5, r0                                |     r5 = r0;
    0x00002db0 mov r0, r8                                |     r0 = r8;
    0x00002db2 mov r1, r5                                |     r1 = r5;
    0x00002db4 blx 0x1690                                |     fcn_00001690 ();
    0x00002db8 ldr r1, [pc, 0x20]                        |     
    0x00002dba subs r3, r4, r0                           |     r3 = r4 - r0;
    0x00002dbc mov r2, r5                                |     r2 = r5;
    0x00002dbe movs r0, 1                                |     r0 = 1;
    0x00002dc0 pop.w {r4, r5, r6, r7, r8, lr}            |     
    0x00002dc4 add r1, pc                                |     r1 = 0x5ba4;
    0x00002dc6 b.w 0x13c4                                |     void (*0x13c4)() ();
                                                         | label_1:
    0x00002dca ldr r1, [pc, 0x14]                        |     
    0x00002dcc subs r2, r2, r7                           |     r2 -= r7;
    0x00002dce movs r0, 1                                |     r0 = 1;
    0x00002dd0 pop.w {r4, r5, r6, r7, r8, lr}            |     
    0x00002dd4 add r1, pc                                |     r1 = 0x5bba;
    0x00002dd6 b.w 0x13c4                                |     return void (*0x13c4)() ();
                                                         | }

[*] Function printf used 1 times e2mmpstatus