[*] Binary protection state of libxt_limit.so

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


[*] Function printf tear down of libxt_limit.so

    ; 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/xtables/libxt_limit.so @ 0xd14 */
                                             | #include <stdint.h>
                                             |  
    ; (fcn) fcn.00000d14 ()                  | void fcn_00000d14 (int32_t arg1) {
                                             |     r0 = arg1;
    0x00000d14 push {r4, r5, r6, lr}         |     
    0x00000d18 subs r4, r0, 0                |     r4 = r0 - 0;
                                             |     if (r4 == r0) {
    0x00000d1c bne 0xd38                     |         
    0x00000d20 ldr r0, [pc, 0xec]            |         r0 = *(0xe10);
    0x00000d24 mov r2, 0                     |         r2 = 0;
    0x00000d28 ldr r3, [pc, 0xe8]            |         r3 = *(0xe14);
    0x00000d2c add r0, pc, r0                |         r0 = pc + r0;
    0x00000d30 pop {r4, r5, r6, lr}          |         
    0x00000d34 b 0x614                       |         void (*0x614)() ();
                                             |     }
    0x00000d38 ldr r5, [pc, 0xdc]            |     r5 = *(0xe18);
    0x00000d3c cmp r4, r5                    |     
                                             |     if (r4 > r5) {
    0x00000d40 bhi 0xe04                     |         goto label_1;
                                             |     }
    0x00000d44 mov r1, r4                    |     r1 = r4;
    0x00000d48 mov r0, r5                    |     r0 = r5;
    0x00000d4c bl 0xf7c                      |     fcn_00000f7c (r0, r1);
    0x00000d50 mov r1, r4                    |     r1 = r4;
    0x00000d54 mov r6, r0                    |     r6 = r0;
    0x00000d58 mov r0, r5                    |     r0 = r5;
    0x00000d5c bl 0x1024                     |     fcn_00001024 (r0, r1);
    0x00000d60 cmp r6, r1                    |     
                                             |     if (r6 <= r1) {
    0x00000d64 blo 0xe04                     |         goto label_1;
                                             |     }
    0x00000d68 ldr r5, [pc, 0xb0]            |     r5 = *(0xe1c);
    0x00000d6c cmp r4, r5                    |     
                                             |     if (r4 > r5) {
    0x00000d70 bhi 0xe0c                     |         goto label_2;
                                             |     }
    0x00000d74 mov r1, r4                    |     r1 = r4;
    0x00000d78 mov r0, r5                    |     r0 = r5;
    0x00000d7c bl 0xf7c                      |     fcn_00000f7c (r0, r1);
    0x00000d80 mov r1, r4                    |     r1 = r4;
    0x00000d84 mov r6, r0                    |     r6 = r0;
    0x00000d88 mov r0, r5                    |     r0 = r5;
    0x00000d8c bl 0x1024                     |     fcn_00001024 (r0, r1);
    0x00000d90 cmp r6, r1                    |     
                                             |     if (r6 <= r1) {
    0x00000d94 blo 0xe0c                     |         goto label_2;
                                             |     }
    0x00000d98 ldr r6, [pc, 0x84]            |     r6 = *(0xe20);
    0x00000d9c cmp r4, r6                    |     
                                             |     if (r4 <= r6) {
    0x00000da0 movhi r1, 3                   |         r1 = 3;
                                             |     }
                                             |     if (r4 > r6) {
    0x00000da4 bhi 0xdd0                     |         goto label_0;
                                             |     }
    0x00000da8 mov r1, r4                    |     r1 = r4;
    0x00000dac mov r0, r6                    |     r0 = r6;
    0x00000db0 bl 0xf7c                      |     fcn_00000f7c (r0, r1);
    0x00000db4 mov r1, r4                    |     r1 = r4;
    0x00000db8 mov r5, r0                    |     r5 = r0;
    0x00000dbc mov r0, r6                    |     r0 = r6;
    0x00000dc0 bl 0x1024                     |     fcn_00001024 (r0, r1);
    0x00000dc4 cmp r5, r1                    |     
                                             |     if (r5 < r1) {
    0x00000dc8 movhs r1, 4                   |         r1 = 4;
                                             |     }
    0x00000dcc movlo r1, 3                   |     r1 = 3;
                                             |     while (1) {
                                             | label_0:
    0x00000dd0 ldr r5, [pc, 0x50]            |         r5 = *(0xe24);
    0x00000dd4 sub r1, r1, 1                 |         r1--;
    0x00000dd8 add r5, pc, r5                |         r5 = pc + r5;
    0x00000ddc add r5, r5, r1, lsl 3         |         r5 += (r1 << 3);
    0x00000de0 ldr r0, [r5, 0x24]            |         r0 = *((r5 + 0x24));
    0x00000de4 mov r1, r4                    |         r1 = r4;
    0x00000de8 bl 0xf7c                      |         fcn_00000f7c (r0, r1);
    0x00000dec ldr r2, [r5, 0x20]            |         r2 = *((r5 + 0x20));
    0x00000df0 pop {r4, r5, r6, lr}          |         
    0x00000df4 mov r1, r0                    |         r1 = r0;
    0x00000df8 ldr r0, [pc, 0x2c]            |         r0 = *(0xe28);
    0x00000dfc add r0, pc, r0                |         r0 = pc + r0;
    0x00000e00 b 0x614                       |         void (*0x614)() ();
                                             | label_1:
    0x00000e04 mov r1, 1                     |         r1 = 1;
    0x00000e08 b 0xdd0                       |         
                                             |     }
                                             | label_2:
    0x00000e0c mov r1, 2                     |     r1 = 2;
    0x00000e10 b 0xdd0                       |     goto label_0;
                                             | }

[*] Function printf used 1 times libxt_limit.so