[*] Binary protection state of vdo-input-client

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


[*] Function fprintf tear down of vdo-input-client

    ; assembly                               | /* r2dec pseudo code output */
                                             | /* /logs/firmware/unblob_extracted/firmware_extract/4325012-58052244.squashfs_v4_le_extract/usr/bin/vdo-input-client @ 0x2ae8 */
                                             | #include <stdint.h>
                                             |  
    ; (fcn) fcn.00002ae8 ()                  | void fcn_00002ae8 () {
    0x00002ae8 lui gp, 2                     |     
    0x00002aec addiu gp, gp, -0x6a38         |     
    0x00002af0 addu gp, gp, t9               |     gp += t9;
    0x00002af4 addiu sp, sp, -0x30           |     
    0x00002af8 lw t9, -0x7efc(gp)            |     t9 = sym.imp.g_fprintf
    0x00002afc sw s1, 0x24(sp)               |     *(var_24h) = s1;
    0x00002b00 lw s1, -0x7f3c(gp)            |     s1 = *((gp - 8143));
    0x00002b04 sw s0, 0x20(sp)               |     *(var_20h) = s0;
    0x00002b08 lw s0, -0x7fdc(gp)            |     s0 = *((gp - 8183));
    0x00002b0c lw v0, (s1)                   |     v0 = *(s1);
    0x00002b10 sw a1, 0x34(sp)               |     *(arg_34h) = a1;
    0x00002b14 lw a1, -0x7fd8(gp)            |     a1 = *((gp - 8182));
    0x00002b18 sw s2, 0x28(sp)               |     *(var_28h) = s2;
    0x00002b1c move s2, a0                   |     s2 = a0;
    0x00002b20 lw a0, 0x425c(s0)             |     a0 = *((s0 + 4247));
    0x00002b24 sw ra, 0x2c(sp)               |     *(var_2ch) = ra;
    0x00002b28 sw gp, 0x10(sp)               |     *(var_10h) = gp;
    0x00002b2c sw a3, 0x3c(sp)               |     *(arg_3ch) = a3;
    0x00002b30 sw a2, 0x38(sp)               |     *(arg_38h) = a2;
    0x00002b34 addiu a1, a1, 0x3604          |     a1 += str.e_2K_r;
    0x00002b38 sw v0, 0x1c(sp)               |     *(var_1ch) = v0;
    0x00002b3c jalr t9                       |     t9 ();
    0x00002b40 nop                           |     
    0x00002b44 lw gp, 0x10(sp)               |     gp = *(var_10h);
    0x00002b48 addiu v0, sp, 0x34            |     v0 = sp + 0x34;
    0x00002b4c lw a0, 0x425c(s0)             |     a0 = *((s0 + 4247));
    0x00002b50 lw t9, -0x7f20(gp)            |     t9 = sym.imp.g_vfprintf
    0x00002b54 move a2, v0                   |     a2 = v0;
    0x00002b58 move a1, s2                   |     a1 = s2;
    0x00002b5c sw v0, 0x18(sp)               |     *(var_18h) = v0;
    0x00002b60 jalr t9                       |     t9 ();
    0x00002b64 lw gp, 0x10(sp)               |     gp = *(var_10h);
    0x00002b68 lw t9, -0x7ef8(gp)            |     t9 = sym.imp.fflush;
    0x00002b6c lw a0, 0x425c(s0)             |     a0 = *((s0 + 4247));
    0x00002b70 jalr t9                       |     t9 ();
    0x00002b74 lw v1, 0x1c(sp)               |     v1 = *(var_1ch);
    0x00002b78 lw v0, (s1)                   |     v0 = *(s1);
    0x00002b7c lw gp, 0x10(sp)               |     gp = *(var_10h);
                                             |     if (v1 == v0) {
    0x00002b80 bne v1, v0, 0x2b9c            |         
    0x00002b84 lw ra, 0x2c(sp)               |         ra = *(var_2ch);
    0x00002b88 lw s2, 0x28(sp)               |         s2 = *(var_28h);
    0x00002b8c lw s1, 0x24(sp)               |         s1 = *(var_24h);
    0x00002b90 lw s0, 0x20(sp)               |         s0 = *(var_20h);
    0x00002b94 addiu sp, sp, 0x30            |         
    0x00002b98 jr ra                         |         return v0;
                                             |     }
    0x00002b9c lw t9, -0x7f58(gp)            |     t9 = sym.imp.__stack_chk_fail;
    0x00002ba0 jalr t9                       |     t9 ();
    0x00002ba4 nop                           |     
    0x00002ba8 lui gp, 2                     |     
    0x00002bac addiu gp, gp, -0x6af8         |     
    0x00002bb0 addu gp, gp, t9               |     gp += t9;
    0x00002bb4 addiu sp, sp, -0x30           |     
    0x00002bb8 lw t9, -0x7e9c(gp)            |     t9 = sym.imp.syscall;
    0x00002bbc sw s1, 0x24(sp)               |     *(var_24h_2) = s1;
    0x00002bc0 move s1, a1                   |     s1 = a1;
    0x00002bc4 lw a1, -0x7fd8(gp)            |     a1 = *((gp - 8182));
    0x00002bc8 sw gp, 0x18(sp)               |     *(var_18h_2) = gp;
    0x00002bcc sw s2, 0x28(sp)               |     *(var_28h_2) = s2;
    0x00002bd0 sw ra, 0x2c(sp)               |     *(var_2ch_2) = ra;
    0x00002bd4 sw s0, 0x20(sp)               |     *(var_20h_2) = s0;
    0x00002bd8 move s2, a0                   |     s2 = a0;
    0x00002bdc addiu a2, zero, 1             |     a2 = 1;
    0x00002be0 addiu a1, a1, 0x360c          |     a1 += str.vdo.hal_stream;
    0x00002be4 addiu a0, zero, 0x1102        |     a0 = 0x1102;
    0x00002be8 jalr t9                       |     t9 ();
    0x00002bec lw gp, 0x18(sp)               |     gp = *(var_18h_2);
                                             |     if (v0 >= 0) {
    0x00002bf0 bltz v0, 0x2c48               |         
    0x00002bf4 lw t9, -0x7f48(gp)            |         t9 = sym.imp.ftruncate;
    0x00002bf8 move a1, s1                   |         a1 = s1;
    0x00002bfc move a0, v0                   |         a0 = v0;
    0x00002c00 move s0, v0                   |         s0 = v0;
    0x00002c04 jalr t9                       |         t9 ();
    0x00002c08 lw gp, 0x18(sp)               |         gp = *(var_18h_2);
                                             |         if (v0 < 0) {
    0x00002c0c bltz v0, 0x2c90               |             goto label_0;
                                             |         }
    0x00002c10 lw t9, -0x7f54(gp)            |         t9 = sym.imp.vdo_buffer_new_full;
    0x00002c14 move a1, s1                   |         a1 = s1;
    0x00002c18 move a0, s0                   |         a0 = s0;
    0x00002c1c sw zero, 0x14(sp)             |         *(var_14h) = 0;
    0x00002c20 sw zero, 0x10(sp)             |         *(var_10h_2) = 0;
    0x00002c24 move a2, zero                 |         a2 = 0;
    0x00002c28 move a3, zero                 |         a3 = 0;
    0x00002c2c jalr t9                       |         t9 ();
    0x00002c30 lw ra, 0x2c(sp)               |         ra = *(var_2ch_2);
    0x00002c34 lw s2, 0x28(sp)               |         s2 = *(var_28h_2);
    0x00002c38 lw s1, 0x24(sp)               |         s1 = *(var_24h_2);
    0x00002c3c lw s0, 0x20(sp)               |         s0 = *(var_20h_2);
    0x00002c40 addiu sp, sp, 0x30            |         
    0x00002c44 jr ra                         |         return v0;
                                             |     }
    0x00002c48 lw t9, -0x7f00(gp)            |     t9 = sym.imp.vdo_error_quark;
    0x00002c4c jalr t9                       |     t9 ();
    0x00002c50 nop                           |     
    0x00002c54 lw gp, 0x18(sp)               |     gp = *(var_18h_2);
    0x00002c58 lw a3, -0x7fd8(gp)            |     a3 = *((gp - 8182));
    0x00002c5c lw t9, -0x7f30(gp)            |     t9 = sym.imp.g_set_error;
    0x00002c60 addiu a3, a3, 0x361c          |     a3 += str.memfd_create:__m;
                                             |     do {
    0x00002c64 move a1, v0                   |         a1 = v0;
    0x00002c68 move a0, s2                   |         a0 = s2;
    0x00002c6c addiu a2, zero, 8             |         a2 = 8;
    0x00002c70 jalr t9                       |         t9 ();
    0x00002c74 lw ra, 0x2c(sp)               |         ra = *(var_2ch_2);
    0x00002c78 lw s2, 0x28(sp)               |         s2 = *(var_28h_2);
    0x00002c7c lw s1, 0x24(sp)               |         s1 = *(var_24h_2);
    0x00002c80 lw s0, 0x20(sp)               |         s0 = *(var_20h_2);
    0x00002c84 move v0, zero                 |         v0 = 0;
    0x00002c88 addiu sp, sp, 0x30            |         
    0x00002c8c jr ra                         |         return v0;
                                             | label_0:
    0x00002c90 lw t9, -0x7f00(gp)            |         t9 = sym.imp.vdo_error_quark;
    0x00002c94 jalr t9                       |         t9 ();
    0x00002c98 nop                           |         
    0x00002c9c lw gp, 0x18(sp)               |         gp = *(var_18h_2);
    0x00002ca0 lw a3, -0x7fd8(gp)            |         a3 = *((gp - 8182));
    0x00002ca4 lw t9, -0x7f30(gp)            |         t9 = sym.imp.g_set_error;
    0x00002ca8 addiu a3, a3, 0x3630          |         a3 += str.ftruncate:__m;
    0x00002cac b 0x2c64                      |         
                                             |     } while (1);
                                             | }
    ; assembly                           | /* r2dec pseudo code output */
                                         | /* /logs/firmware/unblob_extracted/firmware_extract/4325012-58052244.squashfs_v4_le_extract/usr/bin/vdo-input-client @ 0x14c0 */
                                         | #include <stdint.h>
                                         |  
    ; (fcn) loc._ftext ()                | void loc_ftext () {
                                         |     /* [13] -r-x section size 7040 named .text */
    0x000014c0 lui gp, 2                 |     
    0x000014c4 addiu gp, gp, -0x5410     |     
    0x000014c8 addu gp, gp, t9           |     gp += t9;
    0x000014cc lw v1, -0x7f78(gp)        |     v1 = *((gp - 8158));
    0x000014d0 lw v0, -0x7f3c(gp)        |     v0 = *((gp - 8143));
    0x000014d4 addiu sp, sp, -0x30       |     
    0x000014d8 lw t9, -0x7efc(gp)        |     t9 = sym.imp.g_fprintf
    0x000014dc lw v0, (v0)               |     v0 = *(v0);
    0x000014e0 sw s1, 0x28(sp)           |     *(var_28h) = s1;
    0x000014e4 move s1, a0               |     s1 = a0;
    0x000014e8 lw a0, (v1)               |     a0 = *(v1);
    0x000014ec sw a1, 0x34(sp)           |     *(arg_34h) = a1;
    0x000014f0 sw a2, 0x38(sp)           |     *(arg_38h) = a2;
    0x000014f4 lw a1, -0x7fd8(gp)        |     a1 = *((gp - 8182));
    0x000014f8 lw a2, -0x7fd8(gp)        |     a2 = *((gp - 8182));
    0x000014fc sw ra, 0x2c(sp)           |     *(var_2ch) = ra;
    0x00001500 sw a3, 0x3c(sp)           |     *(arg_3ch) = a3;
    0x00001504 sw gp, 0x10(sp)           |     *(var_10h) = gp;
    0x00001508 addiu a1, a1, 0x3504      |     a1 += str._n_s:_n;
    0x0000150c addiu a2, a2, 0x34f8      |     a2 += str.Settings;
    0x00001510 sw s0, 0x24(sp)           |     *(var_24h) = s0;
    0x00001514 sw v0, 0x1c(sp)           |     *(var_1ch) = v0;
    0x00001518 jalr t9                   |     t9 ();
    0x0000151c nop                       |     
    0x00001520 lw gp, 0x10(sp)           |     gp = *(var_10h);
    0x00001524 lw v0, -0x7fdc(gp)        |     v0 = *((gp - 8183));
    0x00001528 lw t9, -0x7e90(gp)        |     t9 = sym.imp.vdo_map_dump;
    0x0000152c lw s0, -0x7f10(gp)        |     s0 = *((gp - 8132));
    0x00001530 lw a0, 0x4258(v0)         |     a0 = *((v0 + 4246));
    0x00001534 jalr t9                   |     t9 ();
    0x00001538 lw gp, 0x10(sp)           |     gp = *(var_10h);
    0x0000153c lw a0, (s0)               |     a0 = *(s0);
    0x00001540 lw a2, -0x7fd8(gp)        |     a2 = *((gp - 8182));
    0x00001544 lw a1, -0x7fd8(gp)        |     a1 = *((gp - 8182));
    0x00001548 lw t9, -0x7efc(gp)        |     t9 = sym.imp.g_fprintf
    0x0000154c addiu a2, a2, 0x350c      |     a2 += str.vdo_input_client;
    0x00001550 addiu a1, a1, 0x3520      |     a1 += str._s:_;
    0x00001554 jalr t9                   |     t9 ();
    0x00001558 lw gp, 0x10(sp)           |     gp = *(var_10h);
    0x0000155c addiu a2, sp, 0x34        |     a2 = sp + 0x34;
    0x00001560 lw a0, (s0)               |     a0 = *(s0);
    0x00001564 lw t9, -0x7f20(gp)        |     t9 = sym.imp.g_vfprintf
    0x00001568 sw a2, 0x18(sp)           |     *(var_18h) = a2;
    0x0000156c move a1, s1               |     a1 = s1;
    0x00001570 jalr t9                   |     t9 ();
    0x00001574 lw gp, 0x10(sp)           |     gp = *(var_10h);
    0x00001578 lw t9, -0x7fac(gp)        |     t9 = sym.imp.exit;
    0x0000157c addiu a0, zero, 1         |     a0 = 1;
    0x00001580 jalr t9                   |     return t9 ();
                                         | }

[*] Function fprintf used 6 times vdo-input-client