[*] Binary protection state of lldpd

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


[*] Function fprintf tear down of lldpd

    ; assembly                           | /* r2dec pseudo code output */
                                         | /* /logs/firmware/unblob_extracted/firmware_extract/4325012-58052244.squashfs_v4_le_extract/usr/sbin/lldpd @ 0x5bd8 */
                                         | #include <stdint.h>
                                         |  
    ; (fcn) fcn.00005bd8 ()              | void fcn_00005bd8 () {
    0x00005bd8 lui gp, 5                 |     
    0x00005bdc addiu gp, gp, 0xd38       |     
    0x00005be0 addu gp, gp, t9           |     gp += t9;
    0x00005be4 addiu sp, sp, -0x28       |     
    0x00005be8 lw v0, -0x7904(gp)        |     v0 = *((gp - 7745));
    0x00005bec sw s0, 0x1c(sp)           |     *(var_1ch) = s0;
    0x00005bf0 lw s0, -0x792c(gp)        |     s0 = *((gp - 7755));
    0x00005bf4 lw a2, -0x7fc4(gp)        |     a2 = *(gp);
    0x00005bf8 lw t9, -0x7ae0(gp)        |     t9 = sym.imp.__fprintf_chk
    0x00005bfc sw fp, 0x20(sp)           |     *(var_20h) = fp;
    0x00005c00 lw a0, (s0)               |     a0 = *(s0);
    0x00005c04 move fp, sp               |     fp = sp;
    0x00005c08 lw a3, (v0)               |     a3 = *(v0);
    0x00005c0c sw ra, 0x24(sp)           |     *(var_24h) = ra;
    0x00005c10 sw gp, 0x10(sp)           |     *(var_10h) = gp;
                                         |     /* str.Usage:____s__OPTIONS_...__n */
    0x00005c14 addiu a2, a2, 0x5494      |     a2 += 0x5494;
    0x00005c18 addiu a1, zero, 1         |     a1 = 1;
    0x00005c1c jalr t9                   |     t9 ();
    0x00005c20 lw gp, 0x10(fp)           |     gp = *(var_10h);
    0x00005c24 lw a0, (s0)               |     a0 = *(s0);
    0x00005c28 addiu a1, zero, 1         |     a1 = 1;
    0x00005c2c lw a3, -0x7fc4(gp)        |     a3 = *(gp);
    0x00005c30 lw a2, -0x7fc4(gp)        |     a2 = *(gp);
    0x00005c34 lw t9, -0x7ae0(gp)        |     t9 = sym.imp.__fprintf_chk
                                         |     /* str.lldpd_1.0.3 */
    0x00005c38 addiu a3, a3, 0x54b0      |     a3 += 0x54b0;
                                         |     /* str.Version:__s_n */
    0x00005c3c addiu a2, a2, 0x54bc      |     a2 += 0x54bc;
    0x00005c40 jalr t9                   |     t9 ();
    0x00005c44 lw gp, 0x10(fp)           |     gp = *(var_10h);
    0x00005c48 lw a1, (s0)               |     a1 = *(s0);
    0x00005c4c lw t9, -0x7aac(gp)        |     t9 = sym.imp.fputc;
    0x00005c50 addiu a0, zero, 0xa       |     a0 = 0xa;
    0x00005c54 jalr t9                   |     t9 ();
    0x00005c58 lw gp, 0x10(fp)           |     gp = *(var_10h);
    0x00005c5c lw a3, (s0)               |     a3 = *(s0);
    0x00005c60 addiu a2, zero, 0x1b      |     a2 = 0x1b;
    0x00005c64 lw a0, -0x7fc4(gp)        |     a0 = *(gp);
    0x00005c68 lw t9, -0x79c0(gp)        |     t9 = sym.imp.fwrite;
    0x00005c6c addiu a1, zero, 1         |     a1 = 1;
                                         |     /* str._d_______Do_not_daemonize._n */
    0x00005c70 addiu a0, a0, 0x54cc      |     a0 += 0x54cc;
    0x00005c74 jalr t9                   |     t9 ();
    0x00005c78 lw gp, 0x10(fp)           |     gp = *(var_10h);
    0x00005c7c lw a3, (s0)               |     a3 = *(s0);
    0x00005c80 addiu a2, zero, 0x1b      |     a2 = 0x1b;
    0x00005c84 lw a0, -0x7fc4(gp)        |     a0 = *(gp);
    0x00005c88 lw t9, -0x79c0(gp)        |     t9 = sym.imp.fwrite;
    0x00005c8c addiu a1, zero, 1         |     a1 = 1;
                                         |     /* str._r_______Receive_only_mode_n */
    0x00005c90 addiu a0, a0, 0x54e8      |     a0 += 0x54e8;
    0x00005c94 jalr t9                   |     t9 ();
    0x00005c98 lw gp, 0x10(fp)           |     gp = *(var_10h);
    0x00005c9c lw a3, (s0)               |     a3 = *(s0);
    0x00005ca0 addiu a2, zero, 0x36      |     a2 = 0x36;
    0x00005ca4 lw a0, -0x7fc4(gp)        |     a0 = *(gp);
    0x00005ca8 lw t9, -0x79c0(gp)        |     t9 = sym.imp.fwrite;
    0x00005cac addiu a1, zero, 1         |     a1 = 1;
                                         |     /* str._i_______Disable_LLDP_MED_inventory_TLV_transmission._n */
    0x00005cb0 addiu a0, a0, 0x5504      |     a0 += 0x5504;
    0x00005cb4 jalr t9                   |     t9 ();
    0x00005cb8 lw gp, 0x10(fp)           |     gp = *(var_10h);
    0x00005cbc lw a3, (s0)               |     a3 = *(s0);
    0x00005cc0 addiu a2, zero, 0x42      |     a2 = 0x42;
    0x00005cc4 lw a0, -0x7fc4(gp)        |     a0 = *(gp);
    0x00005cc8 lw t9, -0x79c0(gp)        |     t9 = sym.imp.fwrite;
    0x00005ccc addiu a1, zero, 1         |     a1 = 1;
                                         |     /* str._k_______Disable_advertising_of_kernel_release__version__machine._n */
    0x00005cd0 addiu a0, a0, 0x553c      |     a0 += 0x553c;
    0x00005cd4 jalr t9                   |     t9 ();
    0x00005cd8 lw gp, 0x10(fp)           |     gp = *(var_10h);
    0x00005cdc lw a3, (s0)               |     a3 = *(s0);
    0x00005ce0 addiu a2, zero, 0x32      |     a2 = 0x32;
    0x00005ce4 lw a0, -0x7fc4(gp)        |     a0 = *(gp);
    0x00005ce8 lw t9, -0x79c0(gp)        |     t9 = sym.imp.fwrite;
    0x00005cec addiu a1, zero, 1         |     a1 = 1;
                                         |     /* str._S_descr_Override_the_default_system_description._n */
    0x00005cf0 addiu a0, a0, 0x5580      |     a0 += 0x5580;
    0x00005cf4 jalr t9                   |     t9 ();
    0x00005cf8 lw gp, 0x10(fp)           |     gp = *(var_10h);
    0x00005cfc lw a3, (s0)               |     a3 = *(s0);
    0x00005d00 addiu a2, zero, 0x31      |     a2 = 0x31;
    0x00005d04 lw a0, -0x7fc4(gp)        |     a0 = *(gp);
    0x00005d08 lw t9, -0x79c0(gp)        |     t9 = sym.imp.fwrite;
    0x00005d0c addiu a1, zero, 1         |     a1 = 1;
                                         |     /* str._P_name__Override_the_default_hardware_platform._n */
    0x00005d10 addiu a0, a0, 0x55b4      |     a0 += 0x55b4;
    0x00005d14 jalr t9                   |     t9 ();
    0x00005d18 lw gp, 0x10(fp)           |     gp = *(var_10h);
    0x00005d1c lw a3, (s0)               |     a3 = *(s0);
    0x00005d20 addiu a2, zero, 0x3d      |     a2 = 0x3d;
    0x00005d24 lw a0, -0x7fc4(gp)        |     a0 = *(gp);
    0x00005d28 lw t9, -0x79c0(gp)        |     t9 = sym.imp.fwrite;
    0x00005d2c addiu a1, zero, 1         |     a1 = 1;
                                         |     /* str._m_IP____Specify_the_IP_management_addresses_of_this_system._n */
    0x00005d30 addiu a0, a0, 0x55e8      |     a0 += 0x55e8;
    0x00005d34 jalr t9                   |     t9 ();
    0x00005d38 lw gp, 0x10(fp)           |     gp = *(var_10h);
    0x00005d3c lw a3, (s0)               |     a3 = *(s0);
    0x00005d40 addiu a2, zero, 0x50      |     a2 = 0x50;
    0x00005d44 lw a0, -0x7fc4(gp)        |     a0 = *(gp);
    0x00005d48 lw t9, -0x79c0(gp)        |     t9 = sym.imp.fwrite;
    0x00005d4c addiu a1, zero, 1         |     a1 = 1;
                                         |     /* str._u_file__Specify_the_Unix_domain_socket_used_for_communication_with_lldpctl_8_._n */
    0x00005d50 addiu a0, a0, 0x5628      |     a0 += 0x5628;
    0x00005d54 jalr t9                   |     t9 ();
    0x00005d58 lw gp, 0x10(fp)           |     gp = *(var_10h);
    0x00005d5c lw a3, (s0)               |     a3 = *(s0);
    0x00005d60 addiu a2, zero, 0x42      |     a2 = 0x42;
    0x00005d64 lw a0, -0x7fc4(gp)        |     a0 = *(gp);
    0x00005d68 lw t9, -0x79c0(gp)        |     t9 = sym.imp.fwrite;
    0x00005d6c addiu a1, zero, 1         |     a1 = 1;
                                         |     /* str._H_mode__Specify_the_behaviour_when_detecting_multiple_neighbors._n */
    0x00005d70 addiu a0, a0, 0x567c      |     a0 += 0x567c;
    0x00005d74 jalr t9                   |     t9 ();
    0x00005d78 lw gp, 0x10(fp)           |     gp = *(var_10h);
    0x00005d7c lw a3, (s0)               |     a3 = *(s0);
    0x00005d80 addiu a2, zero, 0x22      |     a2 = 0x22;
    0x00005d84 lw a0, -0x7fc4(gp)        |     a0 = *(gp);
    0x00005d88 lw t9, -0x79c0(gp)        |     t9 = sym.imp.fwrite;
    0x00005d8c addiu a1, zero, 1         |     a1 = 1;
                                         |     /* str._I_iface_Limit_interfaces_to_use._n */
    0x00005d90 addiu a0, a0, 0x56c0      |     a0 += 0x56c0;
    0x00005d94 jalr t9                   |     t9 ();
    0x00005d98 lw gp, 0x10(fp)           |     gp = *(var_10h);
    0x00005d9c lw a3, (s0)               |     a3 = *(s0);
    0x00005da0 addiu a2, zero, 0x3b      |     a2 = 0x3b;
    0x00005da4 lw a0, -0x7fc4(gp)        |     a0 = *(gp);
    0x00005da8 lw t9, -0x79c0(gp)        |     t9 = sym.imp.fwrite;
    0x00005dac addiu a1, zero, 1         |     a1 = 1;
                                         |     /* str._C_iface_Limit_interfaces_to_use_for_computing_chassis_ID._n */
    0x00005db0 addiu a0, a0, 0x56e4      |     a0 += 0x56e4;
    0x00005db4 jalr t9                   |     t9 ();
    0x00005db8 lw gp, 0x10(fp)           |     gp = *(var_10h);
    0x00005dbc lw a3, (s0)               |     a3 = *(s0);
    0x00005dc0 addiu a2, zero, 0x2c      |     a2 = 0x2c;
    0x00005dc4 lw a0, -0x7fc4(gp)        |     a0 = *(gp);
    0x00005dc8 lw t9, -0x79c0(gp)        |     t9 = sym.imp.fwrite;
    0x00005dcc addiu a1, zero, 1         |     a1 = 1;
                                         |     /* str._L_path__Override_path_for_lldpcli_command._n */
    0x00005dd0 addiu a0, a0, 0x5720      |     a0 += 0x5720;
    0x00005dd4 jalr t9                   |     t9 ();
    0x00005dd8 lw gp, 0x10(fp)           |     gp = *(var_10h);
    0x00005ddc lw a3, (s0)               |     a3 = *(s0);
    0x00005de0 addiu a2, zero, 0x54      |     a2 = 0x54;
    0x00005de4 lw a0, -0x7fc4(gp)        |     a0 = *(gp);
    0x00005de8 lw t9, -0x79c0(gp)        |     t9 = sym.imp.fwrite;
    0x00005dec addiu a1, zero, 1         |     a1 = 1;
                                         |     /* str._O_file__Override_default_configuration_locations_processed_by_lldpcli_8__at_start._n */
    0x00005df0 addiu a0, a0, 0x5750      |     a0 += 0x5750;
    0x00005df4 jalr t9                   |     t9 ();
    0x00005df8 lw gp, 0x10(fp)           |     gp = *(var_10h);
    0x00005dfc lw a3, (s0)               |     a3 = *(s0);
    0x00005e00 addiu a2, zero, 0x46      |     a2 = 0x46;
    0x00005e04 lw a0, -0x7fc4(gp)        |     a0 = *(gp);
    0x00005e08 lw t9, -0x79c0(gp)        |     t9 = sym.imp.fwrite;
    0x00005e0c addiu a1, zero, 1         |     a1 = 1;
                                         |     /* str._M_class_Enable_emission_of_LLDP_MED_frame._class_should_be_one_of:_n */
    0x00005e10 addiu a0, a0, 0x57a8      |     a0 += 0x57a8;
    0x00005e14 jalr t9                   |     t9 ();
    0x00005e18 lw gp, 0x10(fp)           |     gp = *(var_10h);
    0x00005e1c lw a3, (s0)               |     a3 = *(s0);
    0x00005e20 addiu a2, zero, 0x2a      |     a2 = 0x2a;
    0x00005e24 lw a0, -0x7fc4(gp)        |     a0 = *(gp);
    0x00005e28 lw t9, -0x79c0(gp)        |     t9 = sym.imp.fwrite;
    0x00005e2c addiu a1, zero, 1         |     a1 = 1;
                                         |     /* str._____________1_Generic_Endpoint__Class_I__n */
    0x00005e30 addiu a0, a0, 0x57f0      |     a0 += 0x57f0;
    0x00005e34 jalr t9                   |     t9 ();
    0x00005e38 lw gp, 0x10(fp)           |     gp = *(var_10h);
    0x00005e3c lw a3, (s0)               |     a3 = *(s0);
    0x00005e40 addiu a2, zero, 0x29      |     a2 = 0x29;
    0x00005e44 lw a0, -0x7fc4(gp)        |     a0 = *(gp);
    0x00005e48 lw t9, -0x79c0(gp)        |     t9 = sym.imp.fwrite;
    0x00005e4c addiu a1, zero, 1         |     a1 = 1;
                                         |     /* str._____________2_Media_Endpoint__Class_II__n */
    0x00005e50 addiu a0, a0, 0x581c      |     a0 += 0x581c;
    0x00005e54 jalr t9                   |     t9 ();
    0x00005e58 lw gp, 0x10(fp)           |     gp = *(var_10h);
    0x00005e5c lw a3, (s0)               |     a3 = *(s0);
    0x00005e60 addiu a2, zero, 0x3a      |     a2 = 0x3a;
    0x00005e64 lw a0, -0x7fc4(gp)        |     a0 = *(gp);
    0x00005e68 lw t9, -0x79c0(gp)        |     t9 = sym.imp.fwrite;
    0x00005e6c addiu a1, zero, 1         |     a1 = 1;
                                         |     /* str._____________3_Communication_Device_Endpoints__Class_III__n */
    0x00005e70 addiu a0, a0, 0x5848      |     a0 += 0x5848;
    0x00005e74 jalr t9                   |     t9 ();
    0x00005e78 lw gp, 0x10(fp)           |     gp = *(var_10h);
    0x00005e7c lw a3, (s0)               |     a3 = *(s0);
    0x00005e80 addiu a2, zero, 0x2b      |     a2 = 0x2b;
    0x00005e84 lw a0, -0x7fc4(gp)        |     a0 = *(gp);
    0x00005e88 lw t9, -0x79c0(gp)        |     t9 = sym.imp.fwrite;
    0x00005e8c addiu a1, zero, 1         |     a1 = 1;
                                         |     /* str._____________4_Network_Connectivity_Device_n */
    0x00005e90 addiu a0, a0, 0x5884      |     a0 += 0x5884;
    0x00005e94 jalr t9                   |     t9 ();
    0x00005e98 lw gp, 0x10(fp)           |     gp = *(var_10h);
    0x00005e9c lw a1, (s0)               |     a1 = *(s0);
    0x00005ea0 lw t9, -0x7aac(gp)        |     t9 = sym.imp.fputc;
    0x00005ea4 addiu a0, zero, 0xa       |     a0 = 0xa;
    0x00005ea8 jalr t9                   |     t9 ();
    0x00005eac lw gp, 0x10(fp)           |     gp = *(var_10h);
    0x00005eb0 lw a3, (s0)               |     a3 = *(s0);
    0x00005eb4 addiu a2, zero, 0x1d      |     a2 = 0x1d;
    0x00005eb8 lw a0, -0x7fc4(gp)        |     a0 = *(gp);
    0x00005ebc lw t9, -0x79c0(gp)        |     t9 = sym.imp.fwrite;
    0x00005ec0 addiu a1, zero, 1         |     a1 = 1;
                                         |     /* str.Additional_protocol_support._n */
    0x00005ec4 addiu a0, a0, 0x58b0      |     a0 += 0x58b0;
    0x00005ec8 jalr t9                   |     t9 ();
    0x00005ecc lw gp, 0x10(fp)           |     gp = *(var_10h);
    0x00005ed0 lw a3, (s0)               |     a3 = *(s0);
    0x00005ed4 addiu a2, zero, 0x35      |     a2 = 0x35;
    0x00005ed8 lw a0, -0x7fc4(gp)        |     a0 = *(gp);
    0x00005edc lw t9, -0x79c0(gp)        |     t9 = sym.imp.fwrite;
    0x00005ee0 addiu a1, zero, 1         |     a1 = 1;
                                         |     /* str._c_______Enable_the_support_of_CDP_protocol.__Cisco__n */
    0x00005ee4 addiu a0, a0, 0x58d0      |     a0 += 0x58d0;
    0x00005ee8 jalr t9                   |     t9 ();
    0x00005eec lw gp, 0x10(fp)           |     gp = *(var_10h);
    0x00005ef0 lw a1, (s0)               |     a1 = *(s0);
    0x00005ef4 lw t9, -0x7aac(gp)        |     t9 = sym.imp.fputc;
    0x00005ef8 addiu a0, zero, 0xa       |     a0 = 0xa;
    0x00005efc jalr t9                   |     t9 ();
    0x00005f00 lw gp, 0x10(fp)           |     gp = *(var_10h);
    0x00005f04 lw a3, (s0)               |     a3 = *(s0);
    0x00005f08 addiu a2, zero, 0x2e      |     a2 = 0x2e;
    0x00005f0c lw a0, -0x7fc4(gp)        |     a0 = *(gp);
    0x00005f10 lw t9, -0x79c0(gp)        |     t9 = sym.imp.fwrite;
                                         |     /* str.see_manual_page_lldpd_8__for_more_information_n */
    0x00005f14 addiu a0, a0, 0x5908      |     a0 += 0x5908;
    0x00005f18 addiu a1, zero, 1         |     a1 = 1;
    0x00005f1c jalr t9                   |     t9 ();
    0x00005f20 lw gp, 0x10(fp)           |     gp = *(var_10h);
    0x00005f24 lw t9, -0x7a0c(gp)        |     t9 = sym.imp.exit;
    0x00005f28 addiu a0, zero, 1         |     a0 = 1;
    0x00005f2c jalr t9                   |     return t9 ();
                                         | }
    ; assembly                           | /* r2dec pseudo code output */
                                         | /* /logs/firmware/unblob_extracted/firmware_extract/4325012-58052244.squashfs_v4_le_extract/usr/sbin/lldpd @ 0x14850 */
                                         | #include <stdint.h>
                                         |  
    ; (fcn) fcn.00014850 ()              | void fcn_00014850 () {
    0x00014850 lui gp, 4                 |     
    0x00014854 addiu gp, gp, 0x20c0      |     
    0x00014858 addu gp, gp, t9           |     gp += t9;
    0x0001485c addiu sp, sp, -0x40       |     
    0x00014860 lw t9, -0x7b14(gp)        |     t9 = sym.imp.fputs;
    0x00014864 sw s2, 0x28(sp)           |     *(var_28h) = s2;
    0x00014868 sw s0, 0x20(sp)           |     *(var_20h) = s0;
    0x0001486c move s2, a0               |     s2 = a0;
    0x00014870 move s0, a2               |     s0 = a2;
    0x00014874 sw fp, 0x38(sp)           |     *(var_38h) = fp;
    0x00014878 sw gp, 0x18(sp)           |     *(var_18h) = gp;
    0x0001487c move fp, sp               |     fp = sp;
    0x00014880 move a0, a1               |     a0 = a1;
    0x00014884 sw ra, 0x3c(sp)           |     *(var_3ch) = ra;
    0x00014888 sw s5, 0x34(sp)           |     *(var_34h) = s5;
    0x0001488c sw s4, 0x30(sp)           |     *(var_30h) = s4;
    0x00014890 sw s3, 0x2c(sp)           |     *(var_2ch) = s3;
    0x00014894 sw s1, 0x24(sp)           |     *(var_24h) = s1;
    0x00014898 move a1, s2               |     a1 = s2;
    0x0001489c jalr t9                   |     t9 ();
    0x000148a0 lw v0, (s0)               |     v0 = *(s0);
    0x000148a4 lw gp, 0x18(fp)           |     gp = *(var_18h);
                                         |     if (v0 == 0) {
    0x000148a8 beqz v0, 0x14940          |         goto label_0;
                                         |     }
    0x000148ac lw s4, -0x7fbc(gp)        |     s4 = *((gp - 8175));
    0x000148b0 lw s3, -0x7fbc(gp)        |     s3 = *((gp - 8175));
    0x000148b4 lw s5, -0x7fbc(gp)        |     s5 = *((gp - 8175));
    0x000148b8 addiu s4, s4, -0x7068     |     s4 += -0x7068;
    0x000148bc move s1, zero             |     s1 = 0;
    0x000148c0 move a3, s4               |     a3 = s4;
                                         |     /* str._s_s */
    0x000148c4 addiu s3, s3, -0x7170     |     s3 += -0x7170;
                                         |     /* esilref: ', ' */
    0x000148c8 addiu s5, s5, -0x717c     |     s5 += -0x717c;
    0x000148cc b 0x148d8                 |     
                                         |     while (v0 != 0) {
    0x000148d0 move a3, s4               |         a3 = s4;
                                         |         if (s1 == 0) {
    0x000148d4 movn a3, s5, s1           |             a3 = s5;
                                         |         }
    0x000148d8 lw t9, -0x7ae0(gp)        |         t9 = sym.imp.__fprintf_chk
    0x000148dc addiu s0, s0, 4           |         s0 += 4;
    0x000148e0 sw v0, 0x10(sp)           |         *(var_10h_2) = v0;
    0x000148e4 move a2, s3               |         a2 = s3;
    0x000148e8 addiu a1, zero, 1         |         a1 = 1;
    0x000148ec move a0, s2               |         a0 = s2;
    0x000148f0 jalr t9                   |         t9 ();
    0x000148f4 lw v0, (s0)               |         v0 = *(s0);
    0x000148f8 lw gp, 0x18(fp)           |         gp = *(var_18h);
    0x000148fc addiu s1, s1, 1           |         s1++;
    0x00014900 bnez v0, 0x148d0          |         
                                         |     }
    0x00014904 move a1, s2               |     a1 = s2;
                                         |     if (s1 != 0) {
    0x00014908 beqz s1, 0x14940          |         
    0x0001490c move sp, fp               |         
    0x00014910 lw ra, 0x3c(sp)           |         ra = *(var_3ch);
    0x00014914 lw fp, 0x38(sp)           |         fp = *(var_38h);
    0x00014918 lw s5, 0x34(sp)           |         s5 = *(var_34h);
    0x0001491c lw s4, 0x30(sp)           |         s4 = *(var_30h);
    0x00014920 lw s3, 0x2c(sp)           |         s3 = *(var_2ch);
    0x00014924 lw s2, 0x28(sp)           |         s2 = *(var_28h);
    0x00014928 lw s1, 0x24(sp)           |         s1 = *(var_24h);
    0x0001492c lw s0, 0x20(sp)           |         s0 = *(var_20h);
    0x00014930 lw t9, -0x7aac(gp)        |         t9 = sym.imp.fputc;
    0x00014934 addiu a0, zero, 0xa       |         a0 = 0xa;
    0x00014938 addiu sp, sp, 0x40        |         
    0x0001493c jr t9                     |         t9 ();
                                         |     }
                                         | label_0:
    0x00014940 move sp, fp               |     
    0x00014944 lw a0, -0x7fbc(gp)        |     a0 = *((gp - 8175));
    0x00014948 lw ra, 0x3c(sp)           |     ra = *(var_3ch);
    0x0001494c lw fp, 0x38(sp)           |     fp = *(var_38h);
    0x00014950 lw s5, 0x34(sp)           |     s5 = *(var_34h);
    0x00014954 lw s4, 0x30(sp)           |     s4 = *(var_30h);
    0x00014958 lw s3, 0x2c(sp)           |     s3 = *(var_2ch);
    0x0001495c lw s1, 0x24(sp)           |     s1 = *(var_24h);
    0x00014960 lw s0, 0x20(sp)           |     s0 = *(var_20h);
    0x00014964 move a3, s2               |     a3 = s2;
    0x00014968 lw t9, -0x79c0(gp)        |     t9 = sym.imp.fwrite;
    0x0001496c lw s2, 0x28(sp)           |     s2 = *(var_28h);
    0x00014970 addiu a2, zero, 7         |     a2 = 7;
    0x00014974 addiu a1, zero, 1         |     a1 = 1;
                                         |     /* str._none__n */
    0x00014978 addiu a0, a0, -0x7178     |     a0 += -0x7178;
    0x0001497c addiu sp, sp, 0x40        |     
    0x00014980 jr t9                     |     return t9 ();
                                         | }
    ; assembly                               | /* r2dec pseudo code output */
                                             | /* /logs/firmware/unblob_extracted/firmware_extract/4325012-58052244.squashfs_v4_le_extract/usr/sbin/lldpd @ 0x2ea00 */
                                             | #include <stdint.h>
                                             |  
    ; (fcn) fcn.0002ea00 ()                  | void fcn_0002ea00 () {
    0x0002ea00 lui gp, 2                     |     
    0x0002ea04 addiu gp, gp, 0x7f10          |     
    0x0002ea08 addu gp, gp, t9               |     gp += t9;
    0x0002ea0c addiu sp, sp, -0x440          |     
    0x0002ea10 sw s1, 0x430(sp)              |     *(var_430h) = s1;
    0x0002ea14 lw s1, -0x794c(gp)            |     s1 = *((gp - 7763));
    0x0002ea18 sw s3, 0x438(sp)              |     *(var_438h) = s3;
    0x0002ea1c sw s2, 0x434(sp)              |     *(var_434h) = s2;
    0x0002ea20 sw gp, 0x18(sp)               |     *(var_18h) = gp;
    0x0002ea24 sw ra, 0x43c(sp)              |     *(var_43ch) = ra;
    0x0002ea28 sw s0, 0x42c(sp)              |     *(var_42ch) = s0;
    0x0002ea2c lw v0, (s1)                   |     v0 = *(s1);
    0x0002ea30 move s2, a0                   |     s2 = a0;
    0x0002ea34 move s3, a1                   |     s3 = a1;
    0x0002ea38 sw v0, 0x424(sp)              |     *(var_424h) = v0;
    0x0002ea3c lw t9, -0x7c6c(gp)            |     t9 = sym.evutil_vsnprintf;
                                             |     if (a2 == 0) {
    0x0002ea40 beqz a2, 0x2eb3c              |         goto label_3;
                                             |     }
    0x0002ea44 addiu s0, sp, 0x24            |     s0 = sp + 0x24;
    0x0002ea48 addiu a1, zero, 0x400         |     a1 = aav.0x00000400;
    0x0002ea4c move a0, s0                   |     a0 = s0;
    0x0002ea50 bal 0x30218                   |     sym_evutil_vsnprintf ();
    0x0002ea54 lw gp, 0x18(sp)               |     gp = *(var_18h);
                                             | label_1:
    0x0002ea58 lw t9, -0x7a28(gp)            |     t9 = sym.imp.strlen;
                                             |     if (s3 != 0) {
    0x0002ea5c beqz s3, 0x2ea74              |         
    0x0002ea60 move a0, s0                   |         a0 = s0;
    0x0002ea64 jalr t9                       |         t9 ();
    0x0002ea68 sltiu v1, v0, 0x3fd           |         v1 = (v0 < 0x3fd) ? 1 : 0;
    0x0002ea6c lw gp, 0x18(sp)               |         gp = *(var_18h);
                                             |         if (v1 != 0) {
    0x0002ea70 bnez v1, 0x2eabc              |             goto label_4;
                                             |         }
                                             |     }
    0x0002ea74 lw v0, -0x7fd4(gp)            |     v0 = *((gp - 8181));
    0x0002ea78 lw t9, -0x690(v0)             |     t9 = *(v0);
    0x0002ea7c addiu v0, zero, 2             |     v0 = 2;
                                             |     if (t9 == 0) {
    0x0002ea80 beqz t9, 0x2eaf4              |         goto label_5;
                                             |     }
    0x0002ea84 move a1, s0                   |     a1 = s0;
                                             |     do {
    0x0002ea88 move a0, s2                   |         a0 = s2;
    0x0002ea8c jalr t9                       |         t9 ();
    0x0002ea90 lw gp, 0x18(sp)               |         gp = *(var_18h);
                                             | label_0:
    0x0002ea94 lw v1, 0x424(sp)              |         v1 = *(var_424h);
    0x0002ea98 lw v0, (s1)                   |         v0 = *(s1);
    0x0002ea9c lw ra, 0x43c(sp)              |         ra = *(var_43ch);
                                             |         if (v1 != v0) {
    0x0002eaa0 bne v1, v0, 0x2eb68           |             goto label_6;
                                             |         }
    0x0002eaa4 lw s3, 0x438(sp)              |         s3 = *(var_438h);
    0x0002eaa8 lw s2, 0x434(sp)              |         s2 = *(var_434h);
    0x0002eaac lw s1, 0x430(sp)              |         s1 = *(var_430h);
    0x0002eab0 lw s0, 0x42c(sp)              |         s0 = *(var_42ch);
    0x0002eab4 addiu sp, sp, 0x440           |         
    0x0002eab8 jr ra                         |         return v0;
                                             | label_4:
    0x0002eabc lw a2, -0x7fbc(gp)            |         a2 = *((gp - 8175));
    0x0002eac0 lw t9, -0x7cf8(gp)            |         t9 = sym.evutil_snprintf;
    0x0002eac4 addiu a1, zero, 0x400         |         a1 = aav.0x00000400;
    0x0002eac8 move a3, s3                   |         a3 = s3;
                                             |         /* esilref: ': &s' */
    0x0002eacc addiu a2, a2, -0x637c         |         a2 += -0x637c;
    0x0002ead0 subu a1, a1, v0               |         __asm ("subu a1, a1, v0");
    0x0002ead4 addu a0, s0, v0               |         a0 = s0 + v0;
    0x0002ead8 bal 0x30284                   |         sym_evutil_snprintf ();
    0x0002eadc lw gp, 0x18(sp)               |         gp = *(var_18h);
    0x0002eae0 lw v0, -0x7fd4(gp)            |         v0 = *((gp - 8181));
    0x0002eae4 lw t9, -0x690(v0)             |         t9 = *(v0);
    0x0002eae8 move a1, s0                   |         a1 = s0;
    0x0002eaec bnez t9, 0x2ea88              |         
                                             |     } while (t9 != 0);
    0x0002eaf0 addiu v0, zero, 2             |     v0 = 2;
                                             | label_5:
    0x0002eaf4 addiu v0, zero, 3             |     v0 = 3;
                                             |     if (s2 == v0) {
    0x0002eaf8 beq s2, v0, 0x2eb5c           |         goto label_7;
                                             |     }
    0x0002eafc addiu v0, zero, 1             |     v0 = 1;
                                             |     if (s2 == v0) {
    0x0002eb00 beq s2, v0, 0x2eb50           |         goto label_8;
                                             |     }
    0x0002eb04 lw a3, -0x7fbc(gp)            |     a3 = *((gp - 8175));
                                             |     if (s2 == v0) {
    0x0002eb08 beq s2, v0, 0x2eb48           |         goto label_9;
                                             |     }
    0x0002eb0c lw a3, -0x7fbc(gp)            |     a3 = *((gp - 8175));
                                             |     /* str.debug */
    0x0002eb10 addiu a3, a3, -0x398c         |     a3 += -0x398c;
                                             |     do {
                                             | label_2:
    0x0002eb14 lw v0, -0x792c(gp)            |         v0 = *((gp - 7755));
    0x0002eb18 lw a2, -0x7fbc(gp)            |         a2 = *((gp - 8175));
    0x0002eb1c lw t9, -0x7ae0(gp)            |         t9 = sym.imp.__fprintf_chk
    0x0002eb20 lw a0, (v0)                   |         a0 = *(v0);
                                             |         /* str.__s___s_n */
    0x0002eb24 addiu a2, a2, -0x397c         |         a2 += -0x397c;
    0x0002eb28 sw s0, 0x10(sp)               |         *(var_10h) = s0;
    0x0002eb2c addiu a1, zero, 1             |         a1 = 1;
    0x0002eb30 jalr t9                       |         t9 ();
    0x0002eb34 lw gp, 0x18(sp)               |         gp = *(var_18h);
    0x0002eb38 b 0x2ea94                     |         goto label_0;
                                             | label_3:
    0x0002eb3c sb zero, 0x24(sp)             |         *(var_24h) = 0;
    0x0002eb40 addiu s0, sp, 0x24            |         s0 = sp + 0x24;
    0x0002eb44 b 0x2ea58                     |         goto label_1;
                                             |         /* esilref: 'msg' */
                                             | label_9:
    0x0002eb48 addiu a3, a3, -0x5fd8         |         a3 += -0x5fd8;
    0x0002eb4c b 0x2eb14                     |         
                                             |     } while (1);
                                             | label_8:
    0x0002eb50 lw a3, -0x7fbc(gp)            |     a3 = *((gp - 8175));
                                             |     /* esilref: 'err' */
    0x0002eb54 addiu a3, a3, -0x3990         |     a3 += -0x3990;
    0x0002eb58 b 0x2eb14                     |     goto label_2;
                                             | label_7:
    0x0002eb5c lw a3, -0x7fbc(gp)            |     a3 = *((gp - 8175));
                                             |     /* str.warn */
    0x0002eb60 addiu a3, a3, -0x3984         |     a3 += -0x3984;
    0x0002eb64 b 0x2eb14                     |     goto label_2;
                                             | label_6:
    0x0002eb68 lw t9, -0x7984(gp)            |     t9 = sym.imp.__stack_chk_fail;
    0x0002eb6c jalr t9                       |     t9 ();
    0x0002eb70 nop                           |     
                                             | }
    ; assembly                                   | /* r2dec pseudo code output */
                                                 | /* /logs/firmware/unblob_extracted/firmware_extract/4325012-58052244.squashfs_v4_le_extract/usr/sbin/lldpd @ 0x23710 */
                                                 | #include <stdint.h>
                                                 |  
    ; (fcn) sym.event_base_dump_events ()        | void event_base_dump_events () {
    0x00023710 lui gp, 3                         |     
    0x00023714 addiu gp, gp, 0x3200              |     
    0x00023718 addu gp, gp, t9                   |     gp += t9;
    0x0002371c addiu sp, sp, -0x60               |     
    0x00023720 lw t9, -0x79c0(gp)                |     t9 = sym.imp.fwrite;
    0x00023724 sw s5, 0x4c(sp)                   |     *(var_4ch) = s5;
    0x00023728 move s5, a0                       |     s5 = a0;
    0x0002372c lw a0, -0x7fbc(gp)                |     a0 = *((gp - 8175));
    0x00023730 sw gp, 0x28(sp)                   |     *(var_28h) = gp;
    0x00023734 sw s7, 0x54(sp)                   |     *(var_54h) = s7;
    0x00023738 sw s0, 0x38(sp)                   |     *(var_38h) = s0;
    0x0002373c move a3, a1                       |     a3 = a1;
    0x00023740 sw ra, 0x5c(sp)                   |     *(var_5ch) = ra;
    0x00023744 sw fp, 0x58(sp)                   |     *(var_58h) = fp;
    0x00023748 sw s6, 0x50(sp)                   |     *(var_50h) = s6;
    0x0002374c sw s4, 0x48(sp)                   |     *(var_48h) = s4;
    0x00023750 sw s3, 0x44(sp)                   |     *(var_44h) = s3;
    0x00023754 sw s2, 0x40(sp)                   |     *(var_40h) = s2;
    0x00023758 sw s1, 0x3c(sp)                   |     *(var_3ch) = s1;
    0x0002375c move s0, a1                       |     s0 = a1;
    0x00023760 addiu a2, zero, 0x11              |     a2 = 0x11;
    0x00023764 addiu a1, zero, 1                 |     a1 = 1;
                                                 |     /* str.Inserted_events:_n */
    0x00023768 addiu a0, a0, -0x47e4             |     a0 += -0x47e4;
    0x0002376c jalr t9                           |     t9 ();
    0x00023770 lw s7, 0xd4(s5)                   |     s7 = *((s5 + 53));
    0x00023774 lw gp, 0x28(sp)                   |     gp = *(var_28h);
                                                 |     if (s7 == 0) {
    0x00023778 beqz s7, 0x23860                  |         goto label_6;
                                                 |     }
    0x0002377c lw s2, -0x7fbc(gp)                |     s2 = *((gp - 8175));
    0x00023780 lw fp, -0x7fbc(gp)                |     fp = *((gp - 8175));
    0x00023784 lw s1, -0x7fbc(gp)                |     s1 = *((gp - 8175));
    0x00023788 lw s3, -0x7fbc(gp)                |     s3 = *((gp - 8175));
    0x0002378c lw s6, -0x7fbc(gp)                |     s6 = *((gp - 8175));
    0x00023790 lw s4, -0x7fbc(gp)                |     s4 = *((gp - 8175));
                                                 |     /* str._Read */
    0x00023794 addiu s2, s2, -0x4854             |     s2 += -0x4854;
    0x00023798 addiu fp, fp, -0x7068             |     fp += -0x7068;
                                                 |     /* str._Signal */
    0x0002379c addiu s1, s1, -0x4844             |     s1 += -0x4844;
    0x000237a0 b 0x2380c                         |     
                                                 |     while (v1 == 0) {
    0x000237a4 andi v1, v0, 8                    |         v1 = v0 & 8;
    0x000237a8 move a3, fp                       |         a3 = fp;
                                                 |         if (v1 == 0) {
    0x000237ac movn a3, s1, v1                   |             a3 = s1;
                                                 |         }
    0x000237b0 andi a1, v0, 1                    |         a1 = v0 & 1;
    0x000237b4 move t0, fp                       |         t0 = fp;
    0x000237b8 move v1, a3                       |         v1 = a3;
                                                 |         if (a1 != 0) {
    0x000237bc bnez a1, 0x23848                  |             goto label_7;
                                                 |         }
                                                 | label_0:
    0x000237c0 andi v0, v0, 0x10                 |         v0 &= 0x10;
    0x000237c4 move a1, fp                       |         a1 = fp;
                                                 |         if (v0 != 0) {
    0x000237c8 bnez v0, 0x23854                  |             goto label_8;
                                                 |         }
                                                 | label_1:
    0x000237cc move v0, fp                       |         v0 = fp;
                                                 | label_2:
    0x000237d0 lw t9, -0x7ae0(gp)                |         t9 = sym.imp.__fprintf_chk
    0x000237d4 move a3, s7                       |         a3 = s7;
    0x000237d8 sw a1, 0x20(sp)                   |         *(var_20h) = a1;
    0x000237dc sw a0, 0x14(sp)                   |         *(var_14h) = a0;
    0x000237e0 sw a2, 0x10(sp)                   |         *(var_10h) = a2;
    0x000237e4 sw v0, 0x24(sp)                   |         *(var_24h) = v0;
    0x000237e8 sw v1, 0x1c(sp)                   |         *(var_1ch) = v1;
    0x000237ec sw t0, 0x18(sp)                   |         *(var_18h) = t0;
                                                 |         /* str.___p__fd__d__s_s_s_s_s_n */
    0x000237f0 addiu a2, s3, -0x47d0             |         a2 = s3 + -0x47d0;
    0x000237f4 addiu a1, zero, 1                 |         a1 = 1;
    0x000237f8 move a0, s0                       |         a0 = s0;
    0x000237fc jalr t9                           |         t9 ();
    0x00023800 lw s7, 8(s7)                      |         s7 = *((s7 + 2));
    0x00023804 lw gp, 0x28(sp)                   |         gp = *(var_28h);
                                                 |         if (s7 == 0) {
    0x00023808 beqz s7, 0x23860                  |             goto label_6;
                                                 |         }
    0x0002380c lhu v0, 0x30(s7)                  |         v0 = *((s7 + 24));
    0x00023810 move a1, fp                       |         a1 = fp;
    0x00023814 andi a0, v0, 2                    |         a0 = v0 & 2;
                                                 |         if (a0 == 0) {
    0x00023818 movn a1, s2, a0                   |             a1 = s2;
                                                 |         }
    0x0002381c andi v1, v0, 4                    |         v1 = v0 & 4;
    0x00023820 lw a2, 0x18(s7)                   |         a2 = *((s7 + 6));
    0x00023824 move a0, a1                       |         a0 = a1;
    0x00023828 beqz v1, 0x237a4                  |         
                                                 |     }
    0x0002382c andi v1, v0, 8                    |     v1 = v0 & 8;
    0x00023830 move a3, fp                       |     a3 = fp;
                                                 |     if (v1 == 0) {
    0x00023834 movn a3, s1, v1                   |         a3 = s1;
                                                 |     }
    0x00023838 andi a1, v0, 1                    |     a1 = v0 & 1;
                                                 |     /* str._Write */
    0x0002383c addiu t0, s6, -0x484c             |     t0 = s6 + -0x484c;
    0x00023840 move v1, a3                       |     v1 = a3;
                                                 |     if (a1 == 0) {
    0x00023844 beqz a1, 0x237c0                  |         goto label_0;
                                                 |     }
                                                 | label_7:
    0x00023848 andi v0, v0, 0x10                 |     v0 &= 0x10;
                                                 |     /* str._Timeout */
    0x0002384c addiu a1, s4, -0x483c             |     a1 = s4 + -0x483c;
                                                 |     if (v0 == 0) {
    0x00023850 beqz v0, 0x237cc                  |         goto label_1;
                                                 |     }
                                                 | label_8:
    0x00023854 lw v0, -0x7fbc(gp)                |     v0 = *((gp - 8175));
                                                 |     /* str._Persist */
    0x00023858 addiu v0, v0, -0x4830             |     v0 += -0x4830;
    0x0002385c b 0x237d0                         |     goto label_2;
                                                 | label_6:
    0x00023860 lw a0, 0x9c(s5)                   |     a0 = *((s5 + 39));
    0x00023864 lw s4, -0x7fbc(gp)                |     s4 = *((gp - 8175));
                                                 |     if (a0 <= 0) {
    0x00023868 blez a0, 0x23998                  |         goto label_9;
                                                 |     }
    0x0002386c lw t0, -0x7fbc(gp)                |     t0 = *((gp - 8175));
    0x00023870 lw s3, -0x7fbc(gp)                |     s3 = *((gp - 8175));
    0x00023874 move s1, zero                     |     s1 = 0;
                                                 |     /* str._Read_active */
    0x00023878 addiu s4, s4, -0x4824             |     s4 += -0x4824;
    0x0002387c addiu s6, t0, -0x7068             |     s6 = t0 + -0x7068;
                                                 |     /* str._Signal_active */
    0x00023880 addiu s3, s3, -0x4804             |     s3 += -0x4804;
    0x00023884 b 0x23894                         |     
                                                 |     while (v0 == 0) {
    0x00023888 slt v0, s1, a0                    |         v0 = (s1 < a0) ? 1 : 0;
    0x0002388c lw ra, 0x5c(sp)                   |         ra = *(var_5ch);
                                                 |         if (v0 == 0) {
    0x00023890 beqz v0, 0x2399c                  |             goto label_10;
                                                 |         }
    0x00023894 lw v0, 0x98(s5)                   |         v0 = *((s5 + 38));
                                                 | label_5:
    0x00023898 sll v1, s1, 3                     |         v1 = s1 << 3;
    0x0002389c lwx v0, v1(v0)                    |         __asm ("lwx v0, v1(v0)");
    0x000238a0 beql v0, zero, 0x23888            |         
                                                 |     }
    0x000238a4 addiu s1, s1, 1                   |     s1++;
    0x000238a8 lw a2, -0x7fbc(gp)                |     a2 = *((gp - 8175));
    0x000238ac lw t9, -0x7ae0(gp)                |     t9 = sym.imp.__fprintf_chk
    0x000238b0 move a3, s1                       |     a3 = s1;
                                                 |     /* str.Active_events__priority__d_:_n */
    0x000238b4 addiu a2, a2, -0x47b8             |     a2 += -0x47b8;
    0x000238b8 addiu a1, zero, 1                 |     a1 = 1;
    0x000238bc move a0, s0                       |     a0 = s0;
    0x000238c0 jalr t9                           |     t9 ();
    0x000238c4 lw fp, 0xd4(s5)                   |     fp = *((s5 + 53));
    0x000238c8 lw gp, 0x28(sp)                   |     gp = *(var_28h);
                                                 |     if (fp == 0) {
    0x000238cc beqz fp, 0x23984                  |         goto label_11;
                                                 |     }
    0x000238d0 lw v0, -0x7fbc(gp)                |     v0 = *((gp - 8175));
    0x000238d4 lw s2, -0x7fbc(gp)                |     s2 = *((gp - 8175));
    0x000238d8 lw s7, -0x7fbc(gp)                |     s7 = *((gp - 8175));
    0x000238dc sw v0, 0x34(sp)                   |     *(var_34h) = v0;
    0x000238e0 b 0x2393c                         |     
                                                 |     while (a0 == 0) {
    0x000238e4 andi a0, v0, 8                    |         a0 = v0 & 8;
    0x000238e8 move a3, s6                       |         a3 = s6;
                                                 |         if (a0 == 0) {
    0x000238ec movn a3, s3, a0                   |             a3 = s3;
                                                 |         }
    0x000238f0 andi v0, v0, 1                    |         v0 &= 1;
    0x000238f4 move a2, s6                       |         a2 = s6;
    0x000238f8 move a0, a3                       |         a0 = a3;
                                                 |         if (v0 != 0) {
    0x000238fc bnez v0, 0x23978                  |             goto label_12;
                                                 |         }
                                                 | label_3:
    0x00023900 move v0, s6                       |         v0 = s6;
                                                 | label_4:
    0x00023904 lw t9, -0x7ae0(gp)                |         t9 = sym.imp.__fprintf_chk
    0x00023908 move a3, fp                       |         a3 = fp;
    0x0002390c sw a0, 0x1c(sp)                   |         *(var_1ch) = a0;
    0x00023910 sw a2, 0x18(sp)                   |         *(var_18h) = a2;
    0x00023914 sw a1, 0x10(sp)                   |         *(var_10h) = a1;
    0x00023918 sw v0, 0x20(sp)                   |         *(var_20h) = v0;
    0x0002391c sw v1, 0x14(sp)                   |         *(var_14h) = v1;
                                                 |         /* str.___p__fd__d__s_s_s_s_n */
    0x00023920 addiu a2, s2, -0x4798             |         a2 = s2 + -0x4798;
    0x00023924 addiu a1, zero, 1                 |         a1 = 1;
    0x00023928 move a0, s0                       |         a0 = s0;
    0x0002392c jalr t9                           |         t9 ();
    0x00023930 lw fp, 8(fp)                      |         fp = *(arg_8h);
    0x00023934 lw gp, 0x28(sp)                   |         gp = *(var_28h);
                                                 |         if (fp == 0) {
    0x00023938 beqz fp, 0x23984                  |             goto label_11;
                                                 |         }
    0x0002393c lhu v0, 0x32(fp)                  |         v0 = *(arg_32h);
    0x00023940 move a2, s6                       |         a2 = s6;
    0x00023944 andi v1, v0, 2                    |         v1 = v0 & 2;
                                                 |         if (v1 == 0) {
    0x00023948 movn a2, s4, v1                   |             a2 = s4;
                                                 |         }
    0x0002394c andi a0, v0, 4                    |         a0 = v0 & 4;
    0x00023950 lw a1, 0x18(fp)                   |         a1 = *(arg_18h);
    0x00023954 move v1, a2                       |         v1 = a2;
    0x00023958 beqz a0, 0x238e4                  |         
                                                 |     }
    0x0002395c andi a0, v0, 8                    |     a0 = v0 & 8;
    0x00023960 move a3, s6                       |     a3 = s6;
                                                 |     if (a0 == 0) {
    0x00023964 movn a3, s3, a0                   |         a3 = s3;
                                                 |     }
    0x00023968 andi v0, v0, 1                    |     v0 &= 1;
                                                 |     /* str._Write_active */
    0x0002396c addiu a2, s7, -0x4814             |     a2 = s7 + -0x4814;
    0x00023970 move a0, a3                       |     a0 = a3;
                                                 |     if (v0 == 0) {
    0x00023974 beqz v0, 0x23900                  |         goto label_3;
                                                 |     }
                                                 | label_12:
    0x00023978 lw v0, 0x34(sp)                   |     v0 = *(var_34h);
    0x0002397c addiu v0, v0, -0x47f4             |     v0 += -0x47f4;
    0x00023980 b 0x23904                         |     goto label_4;
                                                 | label_11:
    0x00023984 lw a0, 0x9c(s5)                   |     a0 = *((s5 + 39));
    0x00023988 addiu s1, s1, 1                   |     s1++;
    0x0002398c slt v0, s1, a0                    |     v0 = (s1 < a0) ? 1 : 0;
    0x00023990 lw v0, 0x98(s5)                   |     v0 = *((s5 + 38));
                                                 |     if (v0 == 0) {
    0x00023994 bnel v0, zero, 0x23898            |         goto label_5;
                                                 |     }
                                                 | label_9:
    0x00023998 lw ra, 0x5c(sp)                   |     ra = *(var_5ch);
                                                 | label_10:
    0x0002399c lw fp, 0x58(sp)                   |     fp = *(var_58h);
    0x000239a0 lw s7, 0x54(sp)                   |     s7 = *(var_54h);
    0x000239a4 lw s6, 0x50(sp)                   |     s6 = *(var_50h);
    0x000239a8 lw s5, 0x4c(sp)                   |     s5 = *(var_4ch);
    0x000239ac lw s4, 0x48(sp)                   |     s4 = *(var_48h);
    0x000239b0 lw s3, 0x44(sp)                   |     s3 = *(var_44h);
    0x000239b4 lw s2, 0x40(sp)                   |     s2 = *(var_40h);
    0x000239b8 lw s1, 0x3c(sp)                   |     s1 = *(var_3ch);
    0x000239bc lw s0, 0x38(sp)                   |     s0 = *(var_38h);
    0x000239c0 addiu sp, sp, 0x60                |     
    0x000239c4 jr ra                             |     return v0;
                                                 | }
    ; assembly                           | /* r2dec pseudo code output */
                                         | /* /logs/firmware/unblob_extracted/firmware_extract/4325012-58052244.squashfs_v4_le_extract/usr/sbin/lldpd @ 0x14984 */
                                         | #include <stdint.h>
                                         |  
    ; (fcn) sym.version_display ()       | void version_display () {
    0x00014984 lui gp, 4                 |     
    0x00014988 addiu gp, gp, 0x1f8c      |     
    0x0001498c addu gp, gp, t9           |     gp += t9;
    0x00014990 addiu sp, sp, -0x68       |     
    0x00014994 sw s1, 0x54(sp)           |     *(var_54h) = s1;
    0x00014998 lw s1, -0x794c(gp)        |     s1 = *((gp - 7763));
    0x0001499c sw fp, 0x60(sp)           |     *(var_60h) = fp;
    0x000149a0 move fp, sp               |     fp = sp;
    0x000149a4 lw v0, (s1)               |     v0 = *(s1);
    0x000149a8 sw ra, 0x64(sp)           |     *(var_64h) = ra;
    0x000149ac sw s3, 0x5c(sp)           |     *(var_5ch) = s3;
    0x000149b0 sw s2, 0x58(sp)           |     *(var_58h) = s2;
    0x000149b4 sw s0, 0x50(sp)           |     *(var_50h) = s0;
    0x000149b8 sw gp, 0x18(sp)           |     *(var_18h) = gp;
    0x000149bc sw v0, 0x4c(fp)           |     *(var_4ch) = v0;
    0x000149c0 lw v0, -0x7fbc(gp)        |     v0 = *((gp - 8175));
                                         |     if (a2 == 0) {
    0x000149c4 beqz a2, 0x14cb4          |         goto label_3;
                                         |     }
    0x000149c8 lw a2, -0x7fbc(gp)        |     a2 = *((gp - 8175));
                                         |     /* str.1.0.3 */
    0x000149cc addiu v0, v0, -0x7168     |     v0 += -0x7168;
    0x000149d0 sw v0, 0x10(sp)           |     *(var_10h_2) = v0;
    0x000149d4 lw v0, -0x7fbc(gp)        |     v0 = *((gp - 8175));
    0x000149d8 lw t9, -0x7ae0(gp)        |     t9 = sym.imp.__fprintf_chk
                                         |     /* str.LLDP_MED */
    0x000149dc addiu v0, v0, -0x7160     |     v0 += -0x7160;
    0x000149e0 sw v0, 0x2c(fp)           |     *(var_2ch) = v0;
    0x000149e4 lw v0, -0x7fbc(gp)        |     v0 = *((gp - 8175));
    0x000149e8 move a3, a1               |     a3 = a1;
                                         |     /* str.Dot3 */
    0x000149ec addiu v0, v0, -0x7154     |     v0 += -0x7154;
    0x000149f0 sw v0, 0x30(fp)           |     *(var_30h) = v0;
    0x000149f4 lw v0, -0x7fbc(gp)        |     v0 = *((gp - 8175));
    0x000149f8 move s2, a1               |     s2 = a1;
                                         |     /* str.Custom_TLV */
    0x000149fc addiu v0, v0, -0x714c     |     v0 += -0x714c;
    0x00014a00 sw v0, 0x34(fp)           |     *(var_34h) = v0;
    0x00014a04 lw v0, -0x7fbc(gp)        |     v0 = *((gp - 8175));
                                         |     /* str._s__s_n */
    0x00014a08 addiu a2, a2, -0x7128     |     a2 += -0x7128;
                                         |     /* esilref: 'CDP' */
    0x00014a0c addiu v0, v0, -0x7140     |     v0 += -0x7140;
    0x00014a10 sw v0, 0x24(fp)           |     *(var_24h) = v0;
    0x00014a14 lw v0, -0x7fbc(gp)        |     v0 = *((gp - 8175));
    0x00014a18 addiu a1, zero, 1         |     a1 = 1;
                                         |     /* str.TEXT */
    0x00014a1c addiu v0, v0, -0x713c     |     v0 += -0x713c;
    0x00014a20 sw v0, 0x3c(fp)           |     *(var_3ch) = v0;
    0x00014a24 lw v0, -0x7fbc(gp)        |     v0 = *((gp - 8175));
    0x00014a28 sw zero, 0x38(fp)         |     *(var_38h) = 0;
                                         |     /* esilref: 'KV' */
    0x00014a2c addiu v0, v0, -0x7134     |     v0 += -0x7134;
    0x00014a30 sw v0, 0x40(fp)           |     *(var_40h) = v0;
    0x00014a34 lw v0, -0x7fbc(gp)        |     v0 = *((gp - 8175));
    0x00014a38 sw zero, 0x28(fp)         |     *(var_28h) = 0;
                                         |     /* str.JSON */
    0x00014a3c addiu v0, v0, -0x7130     |     v0 += -0x7130;
    0x00014a40 sw v0, 0x44(fp)           |     *(var_44h) = v0;
    0x00014a44 sw zero, 0x48(fp)         |     *(var_48h) = 0;
    0x00014a48 move s0, a0               |     s0 = a0;
    0x00014a4c jalr t9                   |     t9 ();
    0x00014a50 lw gp, 0x18(fp)           |     gp = *(var_18h);
    0x00014a54 move a3, s0               |     a3 = s0;
    0x00014a58 addiu a2, zero, 0x20      |     a2 = 0x20;
    0x00014a5c lw a0, -0x7fbc(gp)        |     a0 = *((gp - 8175));
    0x00014a60 lw t9, -0x79c0(gp)        |     t9 = sym.imp.fwrite;
    0x00014a64 addiu a1, zero, 1         |     a1 = 1;
                                         |     /* str.__Built_on_2023_05_31T13:12:12Z_n */
    0x00014a68 addiu a0, a0, -0x7120     |     a0 += -0x7120;
    0x00014a6c jalr t9                   |     t9 ();
    0x00014a70 lw gp, 0x18(fp)           |     gp = *(var_18h);
    0x00014a74 move a1, s0               |     a1 = s0;
    0x00014a78 lw t9, -0x7aac(gp)        |     t9 = sym.imp.fputc;
    0x00014a7c addiu a0, zero, 0xa       |     a0 = 0xa;
    0x00014a80 jalr t9                   |     t9 ();
    0x00014a84 lw gp, 0x18(fp)           |     gp = *(var_18h);
    0x00014a88 move a0, s2               |     a0 = s2;
    0x00014a8c lw a1, -0x7fc4(gp)        |     a1 = *(gp);
    0x00014a90 lw t9, -0x7908(gp)        |     t9 = sym.imp.strcmp;
                                         |     /* str.lldpd */
    0x00014a94 addiu a1, a1, 0x6450      |     a1 += 0x6450;
    0x00014a98 jalr t9                   |     t9 ();
    0x00014a9c lw gp, 0x18(fp)           |     gp = *(var_18h);
                                         |     if (v0 == 0) {
    0x00014aa0 beqz v0, 0x14b70          |         goto label_4;
                                         |     }
    0x00014aa4 lw a1, -0x7fc4(gp)        |     a1 = *(gp);
    0x00014aa8 lw t9, -0x7908(gp)        |     t9 = sym.imp.strcmp;
                                         |     /* esilref: 'lldpcli' */
    0x00014aac addiu a1, a1, 0x6970      |     a1 += 0x6970;
    0x00014ab0 move a0, s2               |     a0 = s2;
    0x00014ab4 jalr t9                   |     t9 ();
    0x00014ab8 lw gp, 0x18(fp)           |     gp = *(var_18h);
    0x00014abc beqz v0, 0x14b4c          |     
                                         |     while (1) {
                                         | label_0:
    0x00014ac0 lw t9, -0x7aac(gp)        |         t9 = sym.imp.fputc;
    0x00014ac4 move a1, s0               |         a1 = s0;
    0x00014ac8 addiu a0, zero, 0xa       |         a0 = 0xa;
    0x00014acc jalr t9                   |         t9 ();
    0x00014ad0 lw gp, 0x18(fp)           |         gp = *(var_18h);
    0x00014ad4 addiu a1, zero, 1         |         a1 = 1;
    0x00014ad8 move a0, s0               |         a0 = s0;
    0x00014adc lw a3, -0x7fbc(gp)        |         a3 = *((gp - 8175));
    0x00014ae0 lw a2, -0x7fbc(gp)        |         a2 = *((gp - 8175));
    0x00014ae4 lw t9, -0x7ae0(gp)        |         t9 = sym.imp.__fprintf_chk
                                         |         /* str.mipsisa32r2el_axis_linux_gnu_gcc___mel__mabi32__msoft_float___march34kc__msynci__fstack_protector_strong__pie__fPIE__D_FORTIFY_SOURCE2__Wformat__Wformat_security__Werrorformat_security___sysroot_home_svcj_build_build_build_tmp_work_mips32r2el_nf_poky_linux_lldpd_1.0.3_r0_recipe_sysroot___fdiagnostics_show_option__fdiagnostics_colorauto__pipe__Wall__W__Wextra__Wformat__Wformat_security__Wfatal_errors__Wcast_align__Winline__Wpointer_arith__fno_omit_frame_pointer__Wno_unused_parameter__Wno_missing_field_initializers__Wno_sign_compare__fstack_protector__fstack_protector_all__fstack_protector_strong___D_FORTIFY_SOURCE2__D_GNU_SOURCE___O2__pipe__g__feliminate_unused_debug_types__fmacro_prefix_map_home_svcj_build_build_build_tmp_work_mips32r2el_nf_poky_linux_lldpd_1.0.3_r0_usr_src_debug_lldpd_1.0.3_r0_______________________fdebug_prefix_map_home_svcj_build_build_build_tmp_work_mips32r2el_nf_poky_linux_lldpd_1.0.3_r0_usr_src_debug_lldpd_1.0.3_r0_______________________fdebug_prefix_map_home_svcj_build_build_build_tmp_work_mips32r2el_nf_poky_linux_lldpd_1.0.3_r0_recipe_sysroot_______________________fdebug_prefix_map_home_svcj_build_build_build_tmp_work_mips32r2el_nf_poky_linux_lldpd_1.0.3_r0_recipe_sysroot_native__ */
    0x00014ae8 addiu a3, a3, -0x6f80     |         a3 += -0x6f80;
                                         |         /* str.C_compiler_command:__s_n */
    0x00014aec addiu a2, a2, -0x6aa8     |         a2 += -0x6aa8;
    0x00014af0 jalr t9                   |         t9 ();
    0x00014af4 lw gp, 0x18(fp)           |         gp = *(var_18h);
    0x00014af8 addiu a1, zero, 1         |         a1 = 1;
    0x00014afc move a0, s0               |         a0 = s0;
    0x00014b00 lw a3, -0x7fbc(gp)        |         a3 = *((gp - 8175));
    0x00014b04 lw a2, -0x7fbc(gp)        |         a2 = *((gp - 8175));
    0x00014b08 lw t9, -0x7ae0(gp)        |         t9 = sym.imp.__fprintf_chk
                                         |         /* str.mipsisa32r2el_axis_linux_gnu_ld___sysroot_home_svcj_build_build_build_tmp_work_mips32r2el_nf_poky_linux_lldpd_1.0.3_r0_recipe_sysroot____Wl__z_relro__Wl__z_now___Wl__O1___Wl___as_needed__fstack_protector_strong__Wl__z_relro__z_now_ */
    0x00014b0c addiu a3, a3, -0x6a90     |         a3 += -0x6a90;
                                         |         /* str.Linker_command:______s_n */
    0x00014b10 addiu a2, a2, -0x69a4     |         a2 += -0x69a4;
    0x00014b14 jalr t9                   |         t9 ();
    0x00014b18 lw gp, 0x18(fp)           |         gp = *(var_18h);
                                         | label_2:
    0x00014b1c lw v1, 0x4c(fp)           |         v1 = *(var_4ch);
    0x00014b20 lw v0, (s1)               |         v0 = *(s1);
    0x00014b24 lw ra, 0x64(fp)           |         ra = *(var_64h);
                                         |         if (v1 != v0) {
    0x00014b28 bne v1, v0, 0x14cd8       |             goto label_5;
                                         |         }
    0x00014b2c move sp, fp               |         
    0x00014b30 lw fp, 0x60(sp)           |         fp = *(var_60h);
    0x00014b34 lw s3, 0x5c(sp)           |         s3 = *(var_5ch);
    0x00014b38 lw s2, 0x58(sp)           |         s2 = *(var_58h);
    0x00014b3c lw s1, 0x54(sp)           |         s1 = *(var_54h);
    0x00014b40 lw s0, 0x50(sp)           |         s0 = *(var_50h);
    0x00014b44 addiu sp, sp, 0x68        |         
    0x00014b48 jr ra                     |         return v0;
    0x00014b4c lw a1, -0x7fbc(gp)        |         a1 = *((gp - 8175));
                                         | label_1:
    0x00014b50 lw t9, -0x7f08(gp)        |         t9 = *(gp);
    0x00014b54 addiu a2, fp, 0x3c        |         a2 = fp + 0x3c;
                                         |         /* str.Additional_output_formats:___ */
    0x00014b58 addiu a1, a1, -0x6fa0     |         a1 += -0x6fa0;
                                         |         /* fcn.00014850 */
    0x00014b5c addiu t9, t9, 0x4850      |         t9 += 0x4850;
    0x00014b60 move a0, s0               |         a0 = s0;
    0x00014b64 bal 0x14850               |         fcn_00014850 ();
    0x00014b68 lw gp, 0x18(fp)           |         gp = *(var_18h);
    0x00014b6c b 0x14ac0                 |         
                                         |     }
                                         | label_4:
    0x00014b70 lw s3, -0x7f08(gp)        |     s3 = *(gp);
    0x00014b74 lw a1, -0x7fbc(gp)        |     a1 = *((gp - 8175));
                                         |     /* fcn.00014850 */
    0x00014b78 addiu s3, s3, 0x4850      |     s3 += 0x4850;
    0x00014b7c addiu a2, fp, 0x2c        |     a2 = fp + 0x2c;
                                         |     /* str.Additional_LLDP_features:____ */
    0x00014b80 addiu a1, a1, -0x70fc     |     a1 += -0x70fc;
    0x00014b84 move t9, s3               |     t9 = s3;
    0x00014b88 move a0, s0               |     a0 = s0;
    0x00014b8c bal 0x14850               |     fcn_00014850 ();
    0x00014b90 lw gp, 0x18(fp)           |     gp = *(var_18h);
    0x00014b94 addiu a2, fp, 0x24        |     a2 = fp + 0x24;
    0x00014b98 move a0, s0               |     a0 = s0;
    0x00014b9c lw a1, -0x7fbc(gp)        |     a1 = *((gp - 8175));
    0x00014ba0 move t9, s3               |     t9 = s3;
                                         |     /* str.Additional_protocols:________ */
    0x00014ba4 addiu a1, a1, -0x70dc     |     a1 += -0x70dc;
    0x00014ba8 bal 0x14850               |     fcn_00014850 ();
    0x00014bac lw gp, 0x18(fp)           |     gp = *(var_18h);
    0x00014bb0 move a3, s0               |     a3 = s0;
    0x00014bb4 addiu a2, zero, 0x20      |     a2 = 0x20;
    0x00014bb8 lw a0, -0x7fbc(gp)        |     a0 = *((gp - 8175));
    0x00014bbc lw t9, -0x79c0(gp)        |     t9 = sym.imp.fwrite;
    0x00014bc0 addiu a1, zero, 1         |     a1 = 1;
                                         |     /* str.SNMP_support:________________no_n */
    0x00014bc4 addiu a0, a0, -0x70bc     |     a0 += -0x70bc;
    0x00014bc8 jalr t9                   |     t9 ();
    0x00014bcc lw gp, 0x18(fp)           |     gp = *(var_18h);
    0x00014bd0 move a3, s0               |     a3 = s0;
    0x00014bd4 addiu a2, zero, 0x30      |     a2 = 0x30;
    0x00014bd8 lw a0, -0x7fbc(gp)        |     a0 = *((gp - 8175));
    0x00014bdc lw t9, -0x79c0(gp)        |     t9 = sym.imp.fwrite;
    0x00014be0 addiu a1, zero, 1         |     a1 = 1;
                                         |     /* str.Old_kernel_support:__________no__Linux_2.6.39__n */
    0x00014be4 addiu a0, a0, -0x7098     |     a0 += -0x7098;
    0x00014be8 jalr t9                   |     t9 ();
    0x00014bec lw gp, 0x18(fp)           |     gp = *(var_18h);
    0x00014bf0 move a3, s0               |     a3 = s0;
    0x00014bf4 addiu a2, zero, 0x25      |     a2 = 0x25;
    0x00014bf8 lw a0, -0x7fbc(gp)        |     a0 = *((gp - 8175));
    0x00014bfc lw t9, -0x79c0(gp)        |     t9 = sym.imp.fwrite;
    0x00014c00 addiu a1, zero, 1         |     a1 = 1;
                                         |     /* str.Privilege_separation:________enabled_n */
    0x00014c04 addiu a0, a0, -0x7064     |     a0 += -0x7064;
    0x00014c08 jalr t9                   |     t9 ();
    0x00014c0c lw gp, 0x18(fp)           |     gp = *(var_18h);
    0x00014c10 move a3, s0               |     a3 = s0;
    0x00014c14 addiu a2, zero, 0x23      |     a2 = 0x23;
    0x00014c18 lw a0, -0x7fbc(gp)        |     a0 = *((gp - 8175));
    0x00014c1c lw t9, -0x79c0(gp)        |     t9 = sym.imp.fwrite;
    0x00014c20 addiu a1, zero, 1         |     a1 = 1;
                                         |     /* str.Privilege_separation_user:___lldpd_n */
    0x00014c24 addiu a0, a0, -0x703c     |     a0 += -0x703c;
    0x00014c28 jalr t9                   |     t9 ();
    0x00014c2c lw gp, 0x18(fp)           |     gp = *(var_18h);
    0x00014c30 move a3, s0               |     a3 = s0;
    0x00014c34 addiu a2, zero, 0x23      |     a2 = 0x23;
    0x00014c38 lw a0, -0x7fbc(gp)        |     a0 = *((gp - 8175));
    0x00014c3c lw t9, -0x79c0(gp)        |     t9 = sym.imp.fwrite;
    0x00014c40 addiu a1, zero, 1         |     a1 = 1;
                                         |     /* str.Privilege_separation_group:__lldpd_n */
    0x00014c44 addiu a0, a0, -0x7018     |     a0 += -0x7018;
    0x00014c48 jalr t9                   |     t9 ();
    0x00014c4c lw gp, 0x18(fp)           |     gp = *(var_18h);
    0x00014c50 move a3, s0               |     a3 = s0;
    0x00014c54 addiu a2, zero, 0x2c      |     a2 = 0x2c;
    0x00014c58 lw a0, -0x7fbc(gp)        |     a0 = *((gp - 8175));
    0x00014c5c lw t9, -0x79c0(gp)        |     t9 = sym.imp.fwrite;
    0x00014c60 addiu a1, zero, 1         |     a1 = 1;
                                         |     /* str.Privilege_separation_chroot:__var_run_lldpd_n */
    0x00014c64 addiu a0, a0, -0x6ff4     |     a0 += -0x6ff4;
    0x00014c68 jalr t9                   |     t9 ();
    0x00014c6c lw gp, 0x18(fp)           |     gp = *(var_18h);
    0x00014c70 move a3, s0               |     a3 = s0;
    0x00014c74 addiu a2, zero, 0x22      |     a2 = 0x22;
    0x00014c78 lw a0, -0x7fbc(gp)        |     a0 = *((gp - 8175));
    0x00014c7c lw t9, -0x79c0(gp)        |     t9 = sym.imp.fwrite;
    0x00014c80 addiu a1, zero, 1         |     a1 = 1;
                                         |     /* str.Configuration_directory:______etc_n */
    0x00014c84 addiu a0, a0, -0x6fc4     |     a0 += -0x6fc4;
    0x00014c88 jalr t9                   |     t9 ();
    0x00014c8c lw gp, 0x18(fp)           |     gp = *(var_18h);
    0x00014c90 move a0, s2               |     a0 = s2;
    0x00014c94 lw a1, -0x7fc4(gp)        |     a1 = *(gp);
    0x00014c98 lw t9, -0x7908(gp)        |     t9 = sym.imp.strcmp;
                                         |     /* esilref: 'lldpcli' */
    0x00014c9c addiu a1, a1, 0x6970      |     a1 += 0x6970;
    0x00014ca0 jalr t9                   |     t9 ();
    0x00014ca4 lw gp, 0x18(fp)           |     gp = *(var_18h);
                                         |     if (v0 != 0) {
    0x00014ca8 bnez v0, 0x14ac0          |         goto label_0;
                                         |     }
    0x00014cac lw a1, -0x7fbc(gp)        |     a1 = *((gp - 8175));
    0x00014cb0 b 0x14b50                 |     goto label_1;
                                         | label_3:
    0x00014cb4 lw a3, -0x7fbc(gp)        |     a3 = *((gp - 8175));
    0x00014cb8 lw a2, -0x7fbc(gp)        |     a2 = *((gp - 8175));
    0x00014cbc lw t9, -0x7ae0(gp)        |     t9 = sym.imp.__fprintf_chk
                                         |     /* str.1.0.3 */
    0x00014cc0 addiu a3, a3, -0x7168     |     a3 += -0x7168;
                                         |     /* esilref: '&s
' */
    0x00014cc4 addiu a2, a2, -0x6990     |     a2 += -0x6990;
    0x00014cc8 addiu a1, zero, 1         |     a1 = 1;
    0x00014ccc jalr t9                   |     t9 ();
    0x00014cd0 lw gp, 0x18(fp)           |     gp = *(var_18h);
    0x00014cd4 b 0x14b1c                 |     goto label_2;
                                         | label_5:
    0x00014cd8 lw t9, -0x7984(gp)        |     t9 = sym.imp.__stack_chk_fail;
    0x00014cdc jalr t9                   |     t9 ();
    0x00014ce0 nop                       |     
    0x00014ce4 nop                       |     
    0x00014ce8 nop                       |     
    0x00014cec nop                       |     
                                         | }

[*] Function fprintf used 12 times lldpd