[*] Binary protection state of tc.iproute2

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


[*] Function printf tear down of tc.iproute2

    ; assembly                           | /* r2dec pseudo code output */
                                         | /* /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-50593792.squashfs_v4_le_extract/usr/sbin/tc.iproute2 @ 0x45ed0 */
                                         | #include <stdint.h>
                                         |  
    ; (fcn) sym.jsonw_float ()           | void jsonw_float (int16_t arg1) {
                                         |     r0 = arg1;
    0x00045ed0 ldr r1, [pc, 8]           |     r1 = *(0x00045edc);
    0x00045ed2 vmov r2, r3, d0           |     __asm ("vmov r2, r3, d0");
    0x00045ed6 add r1, pc                |     r1 += pc;
    0x00045ed8 b.w 0x45d34               |     return void (*0x45d34)() ();
                                         | }
    ; assembly                               | /* r2dec pseudo code output */
                                             | /* /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-50593792.squashfs_v4_le_extract/usr/sbin/tc.iproute2 @ 0x45f90 */
                                             | #include <stdint.h>
                                             |  
    ; (fcn) sym.jsonw_float_field ()         | void jsonw_float_field (int16_t arg1, int16_t arg2) {
                                             |     r0 = arg1;
                                             |     r1 = arg2;
    0x00045f90 push {r4, lr}                 |     
    0x00045f92 mov r4, r0                    |     r4 = r0;
    0x00045f94 sub sp, 8                     |     
    0x00045f96 vstr d0, [sp]                 |     __asm ("vstr d0, [sp]");
    0x00045f9a bl 0x45cc4                    |     jsonw_name ();
    0x00045f9e vldr d0, [sp]                 |     __asm ("vldr d0, [sp]");
    0x00045fa2 mov r0, r4                    |     r0 = r4;
    0x00045fa4 add sp, 8                     |     
    0x00045fa6 pop.w {r4, lr}                |     
    0x00045faa b.w 0x45ed0                   |     return void (*0x45ed0)() ();
                                             | }
    ; assembly                           | /* r2dec pseudo code output */
                                         | /* /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-50593792.squashfs_v4_le_extract/usr/sbin/tc.iproute2 @ 0x45ee0 */
                                         | #include <stdint.h>
                                         |  
    ; (fcn) sym.jsonw_hhu ()             | void jsonw_hhu (int16_t arg1, int16_t arg2) {
                                         |     r0 = arg1;
                                         |     r1 = arg2;
    0x00045ee0 mov r2, r1                |     r2 = r1;
    0x00045ee2 ldr r1, [pc, 8]           |     
    0x00045ee4 add r1, pc                |     r1 = 0x8bdd6;
    0x00045ee6 b.w 0x45d34               |     return void (*0x45d34)() ();
                                         | }
    ; assembly                               | /* r2dec pseudo code output */
                                             | /* /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-50593792.squashfs_v4_le_extract/usr/sbin/tc.iproute2 @ 0x46000 */
                                             | #include <stdint.h>
                                             |  
    ; (fcn) sym.jsonw_hhu_field ()           | void jsonw_hhu_field (int16_t arg1, int16_t arg2, int16_t arg3) {
                                             |     r0 = arg1;
                                             |     r1 = arg2;
                                             |     r2 = arg3;
    0x00046000 push {r3, r4, r5, lr}         |     
    0x00046002 mov r4, r0                    |     r4 = r0;
    0x00046004 mov r5, r2                    |     r5 = r2;
    0x00046006 bl 0x45cc4                    |     jsonw_name ();
    0x0004600a mov r1, r5                    |     r1 = r5;
    0x0004600c mov r0, r4                    |     r0 = r4;
    0x0004600e pop.w {r3, r4, r5, lr}        |     
    0x00046012 b.w 0x45ee0                   |     return void (*0x45ee0)() ();
                                             | }
    ; assembly                           | /* r2dec pseudo code output */
                                         | /* /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-50593792.squashfs_v4_le_extract/usr/sbin/tc.iproute2 @ 0x45ef0 */
                                         | #include <stdint.h>
                                         |  
    ; (fcn) sym.jsonw_hu ()              | void jsonw_hu (int16_t arg1, int16_t arg2) {
                                         |     r0 = arg1;
                                         |     r1 = arg2;
    0x00045ef0 mov r2, r1                |     r2 = r1;
    0x00045ef2 ldr r1, [pc, 8]           |     
    0x00045ef4 add r1, pc                |     r1 = 0x8bdf6;
    0x00045ef6 b.w 0x45d34               |     return void (*0x45d34)() ();
                                         | }
    ; assembly                               | /* r2dec pseudo code output */
                                             | /* /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-50593792.squashfs_v4_le_extract/usr/sbin/tc.iproute2 @ 0x46018 */
                                             | #include <stdint.h>
                                             |  
    ; (fcn) sym.jsonw_hu_field ()            | void jsonw_hu_field (int16_t arg1, int16_t arg2, int16_t arg3) {
                                             |     r0 = arg1;
                                             |     r1 = arg2;
                                             |     r2 = arg3;
    0x00046018 push {r3, r4, r5, lr}         |     
    0x0004601a mov r4, r0                    |     r4 = r0;
    0x0004601c mov r5, r2                    |     r5 = r2;
    0x0004601e bl 0x45cc4                    |     jsonw_name ();
    0x00046022 mov r1, r5                    |     r1 = r5;
    0x00046024 mov r0, r4                    |     r0 = r4;
    0x00046026 pop.w {r3, r4, r5, lr}        |     
    0x0004602a b.w 0x45ef0                   |     return void (*0x45ef0)() ();
                                             | }
    ; assembly                           | /* r2dec pseudo code output */
                                         | /* /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-50593792.squashfs_v4_le_extract/usr/sbin/tc.iproute2 @ 0x45f44 */
                                         | #include <stdint.h>
                                         |  
    ; (fcn) sym.jsonw_int ()             | void jsonw_int (int16_t arg1, int16_t arg2) {
                                         |     r0 = arg1;
                                         |     r1 = arg2;
    0x00045f44 mov r2, r1                |     r2 = r1;
    0x00045f46 ldr r1, [pc, 8]           |     r1 = sym.imp.sendfile64;
    0x00045f48 add r1, pc                |     r1 += pc;
    0x00045f4a b.w 0x45d34               |     return void (*0x45d34)() ();
                                         | }
    ; assembly                               | /* r2dec pseudo code output */
                                             | /* /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-50593792.squashfs_v4_le_extract/usr/sbin/tc.iproute2 @ 0x46064 */
                                             | #include <stdint.h>
                                             |  
    ; (fcn) sym.jsonw_int_field ()           | void jsonw_int_field (int16_t arg1, int16_t arg2, int16_t arg3) {
                                             |     r0 = arg1;
                                             |     r1 = arg2;
                                             |     r2 = arg3;
    0x00046064 push {r3, r4, r5, lr}         |     
    0x00046066 mov r4, r0                    |     r4 = r0;
    0x00046068 mov r5, r2                    |     r5 = r2;
    0x0004606a bl 0x45cc4                    |     jsonw_name ();
    0x0004606e mov r1, r5                    |     r1 = r5;
    0x00046070 mov r0, r4                    |     r0 = r4;
    0x00046072 pop.w {r3, r4, r5, lr}        |     
    0x00046076 b.w 0x45f44                   |     return void (*0x45f44)() ();
                                             | }
    ; assembly                           | /* r2dec pseudo code output */
                                         | /* /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-50593792.squashfs_v4_le_extract/usr/sbin/tc.iproute2 @ 0x45f38 */
                                         | #include <stdint.h>
                                         |  
    ; (fcn) sym.jsonw_lluint ()          | void jsonw_lluint (int16_t arg1) {
                                         |     r0 = arg1;
    0x00045f38 ldr r1, [pc, 4]           |     r1 = *(0x00045f40);
    0x00045f3a add r1, pc                |     r1 += pc;
    0x00045f3c b.w 0x45d34               |     return void (*0x45d34)() ();
                                         | }
    ; assembly                               | /* r2dec pseudo code output */
                                             | /* /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-50593792.squashfs_v4_le_extract/usr/sbin/tc.iproute2 @ 0x46048 */
                                             | #include <stdint.h>
                                             |  
    ; (fcn) sym.jsonw_lluint_field ()        | void jsonw_lluint_field (int16_t arg1, int16_t arg2, int16_t arg3, int16_t arg4) {
                                             |     r0 = arg1;
                                             |     r1 = arg2;
                                             |     r2 = arg3;
                                             |     r3 = arg4;
    0x00046048 push {r4, r5, r6, lr}         |     
    0x0004604a mov r4, r0                    |     r4 = r0;
    0x0004604c mov r6, r2                    |     r6 = r2;
    0x0004604e mov r5, r3                    |     r5 = r3;
    0x00046050 bl 0x45cc4                    |     jsonw_name ();
    0x00046054 mov r2, r6                    |     r2 = r6;
    0x00046056 mov r3, r5                    |     r3 = r5;
    0x00046058 mov r0, r4                    |     r0 = r4;
    0x0004605a pop.w {r4, r5, r6, lr}        |     
    0x0004605e b.w 0x45f38                   |     return void (*0x45f38)() ();
                                             | }
    ; assembly                           | /* r2dec pseudo code output */
                                         | /* /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-50593792.squashfs_v4_le_extract/usr/sbin/tc.iproute2 @ 0x45f28 */
                                         | #include <stdint.h>
                                         |  
    ; (fcn) sym.jsonw_luint ()           | void jsonw_luint (int16_t arg1, int16_t arg2) {
                                         |     r0 = arg1;
                                         |     r1 = arg2;
    0x00045f28 mov r2, r1                |     r2 = r1;
    0x00045f2a ldr r1, [pc, 8]           |     
    0x00045f2c add r1, pc                |     r1 = 0x8be66;
    0x00045f2e b.w 0x45d34               |     return void (*0x45d34)() ();
                                         | }
    ; assembly                               | /* r2dec pseudo code output */
                                             | /* /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-50593792.squashfs_v4_le_extract/usr/sbin/tc.iproute2 @ 0x46030 */
                                             | #include <stdint.h>
                                             |  
    ; (fcn) sym.jsonw_luint_field ()         | void jsonw_luint_field (int16_t arg1, int16_t arg2, int16_t arg3) {
                                             |     r0 = arg1;
                                             |     r1 = arg2;
                                             |     r2 = arg3;
    0x00046030 push {r3, r4, r5, lr}         |     
    0x00046032 mov r4, r0                    |     r4 = r0;
    0x00046034 mov r5, r2                    |     r5 = r2;
    0x00046036 bl 0x45cc4                    |     jsonw_name ();
    0x0004603a mov r1, r5                    |     r1 = r5;
    0x0004603c mov r0, r4                    |     r0 = r4;
    0x0004603e pop.w {r3, r4, r5, lr}        |     
    0x00046042 b.w 0x45f28                   |     return void (*0x45f28)() ();
                                             | }
    ; assembly                           | /* r2dec pseudo code output */
                                         | /* /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-50593792.squashfs_v4_le_extract/usr/sbin/tc.iproute2 @ 0x45ec4 */
                                         | #include <stdint.h>
                                         |  
    ; (fcn) sym.jsonw_null ()            | void jsonw_null (int16_t arg1) {
                                         |     r0 = arg1;
    0x00045ec4 ldr r1, [pc, 4]           |     r1 = *(0x00045ecc);
    0x00045ec6 add r1, pc                |     r1 += pc;
    0x00045ec8 b.w 0x45d34               |     return void (*0x45d34)() ();
                                         | }
    ; assembly                           | /* r2dec pseudo code output */
                                         | /* /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-50593792.squashfs_v4_le_extract/usr/sbin/tc.iproute2 @ 0x46098 */
                                         | #include <stdint.h>
                                         |  
    ; (fcn) sym.jsonw_null_field ()      | void jsonw_null_field (int16_t arg1, int16_t arg2) {
                                         |     r0 = arg1;
                                         |     r1 = arg2;
    0x00046098 push {r4, lr}             |     
    0x0004609a mov r4, r0                |     r4 = r0;
    0x0004609c bl 0x45cc4                |     jsonw_name ();
    0x000460a0 mov r0, r4                |     r0 = r4;
    0x000460a2 pop.w {r4, lr}            |     
    0x000460a6 b.w 0x45ec4               |     return void (*0x45ec4)() ();
                                         | }
    ; assembly                           | /* r2dec pseudo code output */
                                         | /* /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-50593792.squashfs_v4_le_extract/usr/sbin/tc.iproute2 @ 0x45f54 */
                                         | #include <stdint.h>
                                         |  
    ; (fcn) sym.jsonw_s64 ()             | void jsonw_s64 (int16_t arg1) {
                                         |     r0 = arg1;
    0x00045f54 ldr r1, [pc, 4]           |     r1 = *(0x00045f5c);
    0x00045f56 add r1, pc                |     r1 += pc;
    0x00045f58 b.w 0x45d34               |     return void (*0x45d34)() ();
                                         | }
    ; assembly                               | /* r2dec pseudo code output */
                                             | /* /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-50593792.squashfs_v4_le_extract/usr/sbin/tc.iproute2 @ 0x4607c */
                                             | #include <stdint.h>
                                             |  
    ; (fcn) sym.jsonw_s64_field ()           | void jsonw_s64_field (int16_t arg1, int16_t arg2, int16_t arg3, int16_t arg4) {
                                             |     r0 = arg1;
                                             |     r1 = arg2;
                                             |     r2 = arg3;
                                             |     r3 = arg4;
    0x0004607c push {r4, r5, r6, lr}         |     
    0x0004607e mov r4, r0                    |     r4 = r0;
    0x00046080 mov r6, r2                    |     r6 = r2;
    0x00046082 mov r5, r3                    |     r5 = r3;
    0x00046084 bl 0x45cc4                    |     jsonw_name ();
    0x00046088 mov r2, r6                    |     r2 = r6;
    0x0004608a mov r3, r5                    |     r3 = r5;
    0x0004608c mov r0, r4                    |     r0 = r4;
    0x0004608e pop.w {r4, r5, r6, lr}        |     
    0x00046092 b.w 0x45f54                   |     return void (*0x45f54)() ();
                                             | }
    ; assembly                           | /* r2dec pseudo code output */
                                         | /* /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-50593792.squashfs_v4_le_extract/usr/sbin/tc.iproute2 @ 0x45f10 */
                                         | #include <stdint.h>
                                         |  
    ; (fcn) sym.jsonw_u64 ()             | void jsonw_u64 (int16_t arg1) {
                                         |     r0 = arg1;
    0x00045f10 ldr r1, [pc, 4]           |     r1 = *(0x00045f18);
    0x00045f12 add r1, pc                |     r1 += pc;
    0x00045f14 b.w 0x45d34               |     return void (*0x45d34)() ();
                                         | }
    ; assembly                               | /* r2dec pseudo code output */
                                             | /* /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-50593792.squashfs_v4_le_extract/usr/sbin/tc.iproute2 @ 0x45fc8 */
                                             | #include <stdint.h>
                                             |  
    ; (fcn) sym.jsonw_u64_field ()           | void jsonw_u64_field (int16_t arg1, int16_t arg2, int16_t arg3, int16_t arg4) {
                                             |     r0 = arg1;
                                             |     r1 = arg2;
                                             |     r2 = arg3;
                                             |     r3 = arg4;
    0x00045fc8 push {r4, r5, r6, lr}         |     
    0x00045fca mov r4, r0                    |     r4 = r0;
    0x00045fcc mov r6, r2                    |     r6 = r2;
    0x00045fce mov r5, r3                    |     r5 = r3;
    0x00045fd0 bl 0x45cc4                    |     jsonw_name ();
    0x00045fd4 mov r2, r6                    |     r2 = r6;
    0x00045fd6 mov r3, r5                    |     r3 = r5;
    0x00045fd8 mov r0, r4                    |     r0 = r4;
    0x00045fda pop.w {r4, r5, r6, lr}        |     
    0x00045fde b.w 0x45f10                   |     return void (*0x45f10)() ();
                                             | }
    ; assembly                           | /* r2dec pseudo code output */
                                         | /* /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-50593792.squashfs_v4_le_extract/usr/sbin/tc.iproute2 @ 0x45f00 */
                                         | #include <stdint.h>
                                         |  
    ; (fcn) sym.jsonw_uint ()            | void jsonw_uint (int16_t arg1, int16_t arg2) {
                                         |     r0 = arg1;
                                         |     r1 = arg2;
    0x00045f00 mov r2, r1                |     r2 = r1;
    0x00045f02 ldr r1, [pc, 8]           |     
    0x00045f04 add r1, pc                |     r1 = 0x8be16;
    0x00045f06 b.w 0x45d34               |     return void (*0x45d34)() ();
                                         | }
    ; assembly                               | /* r2dec pseudo code output */
                                             | /* /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-50593792.squashfs_v4_le_extract/usr/sbin/tc.iproute2 @ 0x45fb0 */
                                             | #include <stdint.h>
                                             |  
    ; (fcn) sym.jsonw_uint_field ()          | void jsonw_uint_field (int16_t arg1, int16_t arg2, int16_t arg3) {
                                             |     r0 = arg1;
                                             |     r1 = arg2;
                                             |     r2 = arg3;
    0x00045fb0 push {r3, r4, r5, lr}         |     
    0x00045fb2 mov r4, r0                    |     r4 = r0;
    0x00045fb4 mov r5, r2                    |     r5 = r2;
    0x00045fb6 bl 0x45cc4                    |     jsonw_name ();
    0x00045fba mov r1, r5                    |     r1 = r5;
    0x00045fbc mov r0, r4                    |     r0 = r4;
    0x00045fbe pop.w {r3, r4, r5, lr}        |     
    0x00045fc2 b.w 0x45f00                   |     return void (*0x45f00)() ();
                                             | }
    ; assembly                           | /* r2dec pseudo code output */
                                         | /* /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-50593792.squashfs_v4_le_extract/usr/sbin/tc.iproute2 @ 0x45f1c */
                                         | #include <stdint.h>
                                         |  
    ; (fcn) sym.jsonw_xint ()            | void jsonw_xint (int16_t arg1) {
                                         |     r0 = arg1;
    0x00045f1c ldr r1, [pc, 4]           |     r1 = *(0x00045f24);
    0x00045f1e add r1, pc                |     r1 += pc;
    0x00045f20 b.w 0x45d34               |     return void (*0x45d34)() ();
                                         | }
    ; assembly                               | /* r2dec pseudo code output */
                                             | /* /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-50593792.squashfs_v4_le_extract/usr/sbin/tc.iproute2 @ 0x45fe4 */
                                             | #include <stdint.h>
                                             |  
    ; (fcn) sym.jsonw_xint_field ()          | void jsonw_xint_field (int16_t arg1, int16_t arg2, int16_t arg3, int16_t arg4) {
                                             |     r0 = arg1;
                                             |     r1 = arg2;
                                             |     r2 = arg3;
                                             |     r3 = arg4;
    0x00045fe4 push {r4, r5, r6, lr}         |     
    0x00045fe6 mov r4, r0                    |     r4 = r0;
    0x00045fe8 mov r6, r2                    |     r6 = r2;
    0x00045fea mov r5, r3                    |     r5 = r3;
    0x00045fec bl 0x45cc4                    |     jsonw_name ();
    0x00045ff0 mov r2, r6                    |     r2 = r6;
    0x00045ff2 mov r3, r5                    |     r3 = r5;
    0x00045ff4 mov r0, r4                    |     r0 = r4;
    0x00045ff6 pop.w {r4, r5, r6, lr}        |     
    0x00045ffa b.w 0x45f1c                   |     return void (*0x45f1c)() ();
                                             | }

[*] Function printf used 1 times tc.iproute2