[*] Binary protection state of ip.iproute2

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


[*] Function printf tear down of ip.iproute2



r2dec has crashed (info: /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-50593792.squashfs_v4_le_extract/usr/sbin/ip.iproute2 @ 0x39e8c).
Please report the bug at https://github.com/radareorg/r2dec-js/issues
Use the option '--issue' or the command 'pddi' to generate 
the needed data for the issue.


r2dec has crashed (info: /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-50593792.squashfs_v4_le_extract/usr/sbin/ip.iproute2 @ 0x3b0f0).
Please report the bug at https://github.com/radareorg/r2dec-js/issues
Use the option '--issue' or the command 'pddi' to generate 
the needed data for the issue.
    ; assembly                           | /* r2dec pseudo code output */
                                         | /* /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-50593792.squashfs_v4_le_extract/usr/sbin/ip.iproute2 @ 0x4c5cc */
                                         | #include <stdint.h>
                                         |  
    ; (fcn) sym.jsonw_bool ()            | void jsonw_bool (int16_t arg1) {
                                         |     r0 = arg1;
    0x0004c5cc invalid                   |     goto label_0;
    0x0004c5ce ldr r2, [pc, 0x10]        |     
    0x0004c5d0 add r2, pc                |     r2 = 0x98bb6;
                                         |     do {
    0x0004c5d2 ldr r1, [pc, 0x10]        |         
    0x0004c5d4 add r1, pc                |         r1 = 0x98bbe;
    0x0004c5d6 b.w 0x4c45c               |         void (*0x4c45c)() ();
                                         | label_0:
    0x0004c5da ldr r2, [pc, 0xc]         |         
    0x0004c5dc add r2, pc                |         r2 = 0x98bca;
    0x0004c5de b 0x4c5d2                 |         
                                         |     } while (1);
                                         | }


r2dec has crashed (info: /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-50593792.squashfs_v4_le_extract/usr/sbin/ip.iproute2 @ 0x4c6a0).
Please report the bug at https://github.com/radareorg/r2dec-js/issues
Use the option '--issue' or the command 'pddi' to generate 
the needed data for the issue.
    ; assembly                           | /* r2dec pseudo code output */
                                         | /* /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-50593792.squashfs_v4_le_extract/usr/sbin/ip.iproute2 @ 0x4c5f8 */
                                         | #include <stdint.h>
                                         |  
    ; (fcn) sym.jsonw_float ()           | void jsonw_float (int16_t arg1) {
                                         |     r0 = arg1;
    0x0004c5f8 ldr r1, [pc, 8]           |     r1 = *(0x0004c604);
    0x0004c5fa vmov r2, r3, d0           |     __asm ("vmov r2, r3, d0");
    0x0004c5fe add r1, pc                |     r1 += pc;
    0x0004c600 b.w 0x4c45c               |     return void (*0x4c45c)() ();
                                         | }
    ; assembly                                       | /* r2dec pseudo code output */
                                                     | /* /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-50593792.squashfs_v4_le_extract/usr/sbin/ip.iproute2 @ 0x4c6b8 */
                                                     | #include <stdint.h>
                                                     |  
    ; (fcn) sym.jsonw_float_field ()                 | void jsonw_float_field (int16_t arg1, int16_t arg2) {
                                                     |     r0 = arg1;
                                                     |     r1 = arg2;
    0x0004c6b8 pushls {r4, lr}                       |     __asm ("pushls {r4, lr}");
                                                     |     if (? <= ?) {
    0x0004c6ba movhi r4, r0                          |         r4 = r0;
                                                     |     }
                                                     |     if (? > ?) {
    0x0004c6bc subls sp, 8                           |         
                                                     |     }
    0x0004c6be vstr d0, [sp]                         |     __asm ("vstr d0, [sp]");
    0x0004c6c2 bl 0x4c3ec                            |     jsonw_name ();
    0x0004c6c4 mrc2 p13, 4, lr, c3, c13, 4           |     __asm ("mrc2 p13, 4, lr, c3, c13, 4");
    0x0004c6c8 lsrs r0, r0, 0xc                      |     r0 >>= 0xc;
    0x0004c6ca mov r0, r4                            |     r0 = r4;
    0x0004c6cc add sp, 8                             |     
    0x0004c6ce pop.w {r4, lr}                        |     
    0x0004c6d2 b.w 0x4c5f8                           |     return void (*0x4c5f8)() ();
                                                     | }
    ; assembly                           | /* r2dec pseudo code output */
                                         | /* /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-50593792.squashfs_v4_le_extract/usr/sbin/ip.iproute2 @ 0x4c608 */
                                         | #include <stdint.h>
                                         |  
    ; (fcn) sym.jsonw_hhu ()             | void jsonw_hhu (int16_t arg1, int16_t arg2) {
                                         |     r0 = arg1;
                                         |     r1 = arg2;
    0x0004c608 mov r2, r1                |     r2 = r1;
    0x0004c60a ldr r1, [pc, 8]           |     
    0x0004c60c add r1, pc                |     r1 = 0x98c26;
    0x0004c60e b.w 0x4c45c               |     return void (*0x4c45c)() ();
                                         | }
    ; assembly                                   | /* r2dec pseudo code output */
                                                 | /* /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-50593792.squashfs_v4_le_extract/usr/sbin/ip.iproute2 @ 0x4c728 */
                                                 | #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;
    0x0004c728 push {r3, r4, r5, lr}             |     
    0x0004c72a mov r4, r0                        |     r4 = r0;
    0x0004c72c mov r5, r2                        |     r5 = r2;
    0x0004c72e bl 0x4c3ec                        |     jsonw_name ();
    0x0004c730 cdp2 p6, 5, c4, c13, c9, 1        |     __asm ("cdp2 p6, 5, c4, c13, c9, 1");
    0x0004c734 mov r0, r4                        |     r0 = r4;
    0x0004c736 pop.w {r3, r4, r5, lr}            |     
    0x0004c73a b.w 0x4c608                       |     return void (*0x4c608)() ();
                                                 | }
    ; assembly                           | /* r2dec pseudo code output */
                                         | /* /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-50593792.squashfs_v4_le_extract/usr/sbin/ip.iproute2 @ 0x4c618 */
                                         | #include <stdint.h>
                                         |  
    ; (fcn) sym.jsonw_hu ()              | void jsonw_hu (int16_t arg1, int16_t arg2) {
                                         |     r0 = arg1;
                                         |     r1 = arg2;
    0x0004c618 mov r2, r1                |     r2 = r1;
    0x0004c61a ldr r1, [pc, 8]           |     
    0x0004c61c add r1, pc                |     r1 = 0x98c46;
    0x0004c61e b.w 0x4c45c               |     return void (*0x4c45c)() ();
                                         | }
    ; assembly                               | /* r2dec pseudo code output */
                                             | /* /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-50593792.squashfs_v4_le_extract/usr/sbin/ip.iproute2 @ 0x4c740 */
                                             | #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;
    0x0004c740 push {r3, r4, r5, lr}         |     
    0x0004c742 mov r4, r0                    |     r4 = r0;
    0x0004c744 mov r5, r2                    |     r5 = r2;
    0x0004c746 bl 0x4c3ec                    |     jsonw_name ();
    0x0004c74a mov r1, r5                    |     r1 = r5;
    0x0004c74c mov r0, r4                    |     r0 = r4;
    0x0004c74e pop.w {r3, r4, r5, lr}        |     
    0x0004c752 b.w 0x4c618                   |     return void (*0x4c618)() ();
                                             | }
    ; assembly                           | /* r2dec pseudo code output */
                                         | /* /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-50593792.squashfs_v4_le_extract/usr/sbin/ip.iproute2 @ 0x4c66c */
                                         | #include <stdint.h>
                                         |  
    ; (fcn) sym.jsonw_int ()             | void jsonw_int (int16_t arg1, int16_t arg2) {
                                         |     r0 = arg1;
                                         |     r1 = arg2;
    0x0004c66c mov r2, r1                |     r2 = r1;
    0x0004c66e ldr r1, [pc, 8]           |     
    0x0004c670 add r1, pc                |     r1 = 0x98cee;
    0x0004c672 b.w 0x4c45c               |     return void (*0x4c45c)() ();
                                         | }
    ; assembly                               | /* r2dec pseudo code output */
                                             | /* /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-50593792.squashfs_v4_le_extract/usr/sbin/ip.iproute2 @ 0x4c78c */
                                             | #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;
    0x0004c78c push {r3, r4, r5, lr}         |     
    0x0004c78e mov r4, r0                    |     r4 = r0;
    0x0004c790 mov r5, r2                    |     r5 = r2;
    0x0004c792 bl 0x4c3ec                    |     jsonw_name ();
    0x0004c796 mov r1, r5                    |     r1 = r5;
    0x0004c798 mov r0, r4                    |     r0 = r4;
    0x0004c79a pop.w {r3, r4, r5, lr}        |     
    0x0004c79e b.w 0x4c66c                   |     return void (*0x4c66c)() ();
                                             | }
    ; assembly                           | /* r2dec pseudo code output */
                                         | /* /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-50593792.squashfs_v4_le_extract/usr/sbin/ip.iproute2 @ 0x4c660 */
                                         | #include <stdint.h>
                                         |  
    ; (fcn) sym.jsonw_lluint ()          | void jsonw_lluint (int16_t arg1) {
                                         |     r0 = arg1;
    0x0004c660 ldr r1, [pc, 4]           |     r1 = *(0x0004c668);
    0x0004c662 add r1, pc                |     r1 += pc;
    0x0004c664 b.w 0x4c45c               |     return void (*0x4c45c)() ();
                                         | }


r2dec has crashed (info: /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-50593792.squashfs_v4_le_extract/usr/sbin/ip.iproute2 @ 0x4c770).
Please report the bug at https://github.com/radareorg/r2dec-js/issues
Use the option '--issue' or the command 'pddi' to generate 
the needed data for the issue.
    ; assembly                           | /* r2dec pseudo code output */
                                         | /* /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-50593792.squashfs_v4_le_extract/usr/sbin/ip.iproute2 @ 0x4c650 */
                                         | #include <stdint.h>
                                         |  
    ; (fcn) sym.jsonw_luint ()           | void jsonw_luint (int16_t arg1, int16_t arg2) {
                                         |     r0 = arg1;
                                         |     r1 = arg2;
    0x0004c650 mov r2, r1                |     r2 = r1;
    0x0004c652 ldr r1, [pc, 8]           |     
    0x0004c654 add r1, pc                |     r1 = 0x98cb6;
    0x0004c656 b.w 0x4c45c               |     return void (*0x4c45c)() ();
                                         | }
    ; assembly                               | /* r2dec pseudo code output */
                                             | /* /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-50593792.squashfs_v4_le_extract/usr/sbin/ip.iproute2 @ 0x4c758 */
                                             | #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;
    0x0004c758 push {r3, r4, r5, lr}         |     
    0x0004c75a mov r4, r0                    |     r4 = r0;
    0x0004c75c mov r5, r2                    |     r5 = r2;
    0x0004c75e bl 0x4c3ec                    |     jsonw_name ();
    0x0004c762 mov r1, r5                    |     r1 = r5;
    0x0004c764 mov r0, r4                    |     r0 = r4;
    0x0004c766 pop.w {r3, r4, r5, lr}        |     
    0x0004c76a b.w 0x4c650                   |     return void (*0x4c650)() ();
                                             | }
    ; assembly                           | /* r2dec pseudo code output */
                                         | /* /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-50593792.squashfs_v4_le_extract/usr/sbin/ip.iproute2 @ 0x4c5ec */
                                         | #include <stdint.h>
                                         |  
    ; (fcn) sym.jsonw_null ()            | void jsonw_null (int16_t arg1) {
                                         |     r0 = arg1;
    0x0004c5ec ldr r1, [pc, 4]           |     r1 = *(0x0004c5f4);
    0x0004c5ee add r1, pc                |     r1 += pc;
    0x0004c5f0 b.w 0x4c45c               |     return void (*0x4c45c)() ();
                                         | }
    ; assembly                               | /* r2dec pseudo code output */
                                             | /* /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-50593792.squashfs_v4_le_extract/usr/sbin/ip.iproute2 @ 0x4c7c0 */
                                             | #include <stdint.h>
                                             |  
    ; (fcn) sym.jsonw_null_field ()          | void jsonw_null_field (int16_t arg1, int16_t arg2) {
                                             |     r0 = arg1;
                                             |     r1 = arg2;
    0x0004c7c0 push {r4, lr}                 |     
    0x0004c7c2 mov r4, r0                    |     r4 = r0;
    0x0004c7c4 bl 0x4c3ec                    |     jsonw_name ();
    0x0004c7c8 mov r0, r4                    |     r0 = r4;
    0x0004c7ca pop.w {r4, lr}                |     
    0x0004c7ce b.w 0x4c5ec                   |     return void (*0x4c5ec)() ();
                                             | }
    ; assembly                           | /* r2dec pseudo code output */
                                         | /* /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-50593792.squashfs_v4_le_extract/usr/sbin/ip.iproute2 @ 0x4c67c */
                                         | #include <stdint.h>
                                         |  
    ; (fcn) sym.jsonw_s64 ()             | void jsonw_s64 (int16_t arg1) {
                                         |     r0 = arg1;
    0x0004c67c ldr r1, [pc, 4]           |     r1 = *(0x0004c684);
    0x0004c67e add r1, pc                |     r1 += pc;
    0x0004c680 b.w 0x4c45c               |     return void (*0x4c45c)() ();
                                         | }
    ; assembly                               | /* r2dec pseudo code output */
                                             | /* /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-50593792.squashfs_v4_le_extract/usr/sbin/ip.iproute2 @ 0x4c7a4 */
                                             | #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;
    0x0004c7a4 push {r4, r5, r6, lr}         |     
    0x0004c7a6 mov r4, r0                    |     r4 = r0;
    0x0004c7a8 mov r6, r2                    |     r6 = r2;
    0x0004c7aa mov r5, r3                    |     r5 = r3;
    0x0004c7ac bl 0x4c3ec                    |     jsonw_name ();
    0x0004c7b0 mov r2, r6                    |     r2 = r6;
    0x0004c7b2 mov r3, r5                    |     r3 = r5;
    0x0004c7b4 mov r0, r4                    |     r0 = r4;
    0x0004c7b6 pop.w {r4, r5, r6, lr}        |     
    0x0004c7ba b.w 0x4c67c                   |     return void (*0x4c67c)() ();
                                             | }
    ; assembly                           | /* r2dec pseudo code output */
                                         | /* /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-50593792.squashfs_v4_le_extract/usr/sbin/ip.iproute2 @ 0x4c638 */
                                         | #include <stdint.h>
                                         |  
    ; (fcn) sym.jsonw_u64 ()             | void jsonw_u64 (int16_t arg1) {
                                         |     r0 = arg1;
    0x0004c638 ldr r1, [pc, 4]           |     r1 = *(0x0004c640);
    0x0004c63a add r1, pc                |     r1 += pc;
    0x0004c63c b.w 0x4c45c               |     return void (*0x4c45c)() ();
                                         | }
    ; assembly                               | /* r2dec pseudo code output */
                                             | /* /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-50593792.squashfs_v4_le_extract/usr/sbin/ip.iproute2 @ 0x4c6f0 */
                                             | #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;
    0x0004c6f0 push {r4, r5, r6, lr}         |     
    0x0004c6f2 mov r4, r0                    |     r4 = r0;
    0x0004c6f4 mov r6, r2                    |     r6 = r2;
    0x0004c6f6 mov r5, r3                    |     r5 = r3;
    0x0004c6f8 bl 0x4c3ec                    |     jsonw_name ();
    0x0004c6fc mov r2, r6                    |     r2 = r6;
    0x0004c6fe mov r3, r5                    |     r3 = r5;
    0x0004c700 mov r0, r4                    |     r0 = r4;
    0x0004c702 pop.w {r4, r5, r6, lr}        |     
    0x0004c706 b.w 0x4c638                   |     return void (*0x4c638)() ();
                                             | }


r2dec has crashed (info: /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-50593792.squashfs_v4_le_extract/usr/sbin/ip.iproute2 @ 0x4c628).
Please report the bug at https://github.com/radareorg/r2dec-js/issues
Use the option '--issue' or the command 'pddi' to generate 
the needed data for the issue.
    ; assembly                               | /* r2dec pseudo code output */
                                             | /* /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-50593792.squashfs_v4_le_extract/usr/sbin/ip.iproute2 @ 0x4c6d8 */
                                             | #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;
    0x0004c6d8 push {r3, r4, r5, lr}         |     
    0x0004c6da mov r4, r0                    |     r4 = r0;
    0x0004c6dc mov r5, r2                    |     r5 = r2;
    0x0004c6de bl 0x4c3ec                    |     jsonw_name ();
    0x0004c6e2 mov r1, r5                    |     r1 = r5;
    0x0004c6e4 mov r0, r4                    |     r0 = r4;
    0x0004c6e6 pop.w {r3, r4, r5, lr}        |     
    0x0004c6ea b.w 0x4c628                   |     return void (*0x4c628)() ();
                                             | }
    ; assembly                           | /* r2dec pseudo code output */
                                         | /* /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-50593792.squashfs_v4_le_extract/usr/sbin/ip.iproute2 @ 0x4c644 */
                                         | #include <stdint.h>
                                         |  
    ; (fcn) sym.jsonw_xint ()            | void jsonw_xint (int16_t arg1) {
                                         |     r0 = arg1;
    0x0004c644 ldr r1, [pc, 4]           |     r1 = *(0x0004c64c);
    0x0004c646 add r1, pc                |     r1 += pc;
    0x0004c648 b.w 0x4c45c               |     return void (*0x4c45c)() ();
                                         | }
    ; assembly                               | /* r2dec pseudo code output */
                                             | /* /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-50593792.squashfs_v4_le_extract/usr/sbin/ip.iproute2 @ 0x4c70c */
                                             | #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;
    0x0004c70c push {r4, r5, r6, lr}         |     
    0x0004c70e mov r4, r0                    |     r4 = r0;
    0x0004c710 mov r6, r2                    |     r6 = r2;
    0x0004c712 mov r5, r3                    |     r5 = r3;
    0x0004c714 bl 0x4c3ec                    |     jsonw_name ();
    0x0004c718 mov r2, r6                    |     r2 = r6;
    0x0004c71a mov r3, r5                    |     r3 = r5;
    0x0004c71c mov r0, r4                    |     r0 = r4;
    0x0004c71e pop.w {r4, r5, r6, lr}        |     
    0x0004c722 b.w 0x4c644                   |     return void (*0x4c644)() ();
                                             | }

[*] Function printf used 1 times ip.iproute2