[*] Binary protection state of iconv

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


[*] Function fprintf tear down of iconv

    ; assembly                           | /* r2dec pseudo code output */
                                         | /* /logs/firmware/unblob_extracted/firmware_extract/56048-12514271.gzip_extract/gzip.uncompressed_extract/5243916-15068666.gzip_extract/gzip.uncompressed_extract/usr/bin/iconv @ 0x12038 */
                                         | #include <stdint.h>
                                         |  
    ; (fcn) fcn.00012038 ()              | void fcn_00012038 (int32_t arg1) {
                                         |     r0 = arg1;
    0x00012038 push {r4, r5, r6, lr}     |     
    0x0001203c ldr r4, [pc, 0x108]       |     r4 = *(0x12148);
    0x00012040 subs r6, r0, 0            |     r6 = r0 - 0;
                                         |     if (r6 == r0) {
    0x00012044 beq 0x12078               |         goto label_0;
                                         |     }
    0x00012048 ldr r5, [pc, 0x100]       |     r5 = *(0x1214c);
    0x0001204c ldr r2, [pc, 0x100]       |     r2 = stderr;
    0x00012050 ldr r1, [pc, 0x100]       |     r1 = "Usage: iconv [-c] [-s] [-f fromcode] [-t tocode] [file ...]";
    0x00012054 ldr r3, [pc, 0x100]       |     r3 = "%s\n%s\n";
    0x00012058 ldr r0, [r5]              |     r0 = *(0x1214c);
    0x0001205c bl 0x10ba0                |     fprintf (r0, "Usage: iconv [-c] [-s] [-f fromcode] [-t tocode] [file ...]", r2, "%s\n%s\n", r4, r5)
    0x00012060 ldr r2, [r4]              |     r2 = *(r4);
    0x00012064 ldr r1, [pc, 0xf4]        |     r1 = "or:    iconv -l";
    0x00012068 ldr r0, [r5]              |     r0 = *(0x1214c);
    0x0001206c bl 0x10ba0                |     fprintf (r0, "or:    iconv -l", r2)
                                         |     do {
    0x00012070 mov r0, r6                |         r0 = r6;
    0x00012074 bl 0x10c6c                |         exit (r0);
                                         | label_0:
    0x00012078 ldr r1, [r4]              |         r1 = *(r4);
    0x0001207c ldr r0, [pc, 0xe0]        |         r0 = "Try__s___help_for_more_information.";
    0x00012080 bl 0x10b28                |         printf ("Try__s___help_for_more_information.", r1);
    0x00012084 ldr r1, [r4]              |         r1 = *(r4);
    0x00012088 ldr r0, [pc, 0xd8]        |         r0 = "Usage: %s [OPTION...] [-f ENCODING] [-t ENCODING] [INPUTFILE...]\n";
    0x0001208c bl 0x10b28                |         printf ("Usage: %s [OPTION...] [-f ENCODING] [-t ENCODING] [INPUTFILE...]\n", r1);
    0x00012090 mov r0, 0xa               |         r0 = 0xa;
    0x00012094 bl 0x10b1c                |         putchar (r0);
    0x00012098 ldr r0, [pc, 0xcc]        |         r0 = "or:    %s -l\n";
    0x0001209c bl 0x10b40                |         puts ("or:    %s -l\n");
    0x000120a0 mov r0, 0xa               |         r0 = 0xa;
    0x000120a4 bl 0x10b1c                |         putchar (r0);
    0x000120a8 ldr r0, [pc, 0xc0]        |         r0 = "Converts text from one encoding to another encoding.";
    0x000120ac bl 0x10b40                |         puts ("Converts text from one encoding to another encoding.");
    0x000120b0 ldr r0, [pc, 0xbc]        |         r0 = "Options_controlling_the_input_and_output_format:";
    0x000120b4 bl 0x10b40                |         puts ("Options_controlling_the_input_and_output_format:");
    0x000120b8 ldr r0, [pc, 0xb8]        |         r0 = "  -f ENCODING, --from-code=ENCODING\n                              the encoding of the input";
    0x000120bc bl 0x10b40                |         puts ("  -f ENCODING, --from-code=ENCODING\n                              the encoding of the input");
    0x000120c0 mov r0, 0xa               |         r0 = 0xa;
    0x000120c4 bl 0x10b1c                |         putchar (r0);
    0x000120c8 ldr r0, [pc, 0xac]        |         r0 = "  -t ENCODING, --to-code=ENCODING\n                              the encoding of the output";
    0x000120cc bl 0x10b40                |         puts ("  -t ENCODING, --to-code=ENCODING\n                              the encoding of the output");
    0x000120d0 ldr r0, [pc, 0xa8]        |         r0 = "Options_controlling_conversion_problems:";
    0x000120d4 bl 0x10b40                |         puts ("Options_controlling_conversion_problems:");
    0x000120d8 ldr r0, [pc, 0xa4]        |         r0 = "  -c                          discard unconvertible characters";
    0x000120dc bl 0x10b40                |         puts ("  -c                          discard unconvertible characters");
    0x000120e0 ldr r0, [pc, 0xa0]        |         r0 = "__unicode_substFORMATSTRING______________________________substitution_for_unconvertible_Unicode_characters";
    0x000120e4 bl 0x10b40                |         puts ("__unicode_substFORMATSTRING______________________________substitution_for_unconvertible_Unicode_characters");
    0x000120e8 ldr r0, [pc, 0x9c]        |         r0 = "  --byte-subst=FORMATSTRING   substitution for unconvertible bytes";
    0x000120ec bl 0x10b40                |         puts ("  --byte-subst=FORMATSTRING   substitution for unconvertible bytes");
    0x000120f0 mov r0, 0xa               |         r0 = 0xa;
    0x000120f4 bl 0x10b1c                |         putchar (r0);
    0x000120f8 ldr r0, [pc, 0x90]        |         r0 = "__widechar_substFORMATSTRING______________________________substitution_for_unconvertible_wide_characters";
    0x000120fc bl 0x10b40                |         puts ("__widechar_substFORMATSTRING______________________________substitution_for_unconvertible_wide_characters");
    0x00012100 ldr r0, [pc, 0x8c]        |         r0 = "Options controlling error output:";
    0x00012104 bl 0x10b40                |         puts ("Options controlling error output:");
    0x00012108 mov r0, 0xa               |         r0 = 0xa;
    0x0001210c bl 0x10b1c                |         putchar (r0);
    0x00012110 ldr r0, [pc, 0x80]        |         r0 = "  -s, --silent                suppress error messages about conversion problems";
    0x00012114 bl 0x10b40                |         puts ("  -s, --silent                suppress error messages about conversion problems");
    0x00012118 ldr r0, [pc, 0x7c]        |         r0 = "Informative output:";
    0x0001211c bl 0x10b40                |         puts ("Informative output:");
    0x00012120 ldr r0, [pc, 0x78]        |         r0 = "  -l, --list                  list the supported encodings";
    0x00012124 bl 0x10b40                |         puts ("  -l, --list                  list the supported encodings");
    0x00012128 ldr r0, [pc, 0x74]        |         r0 = "__help______________________display_this_help_and_exit";
    0x0001212c bl 0x10b40                |         puts ("__help______________________display_this_help_and_exit");
    0x00012130 mov r0, 0xa               |         r0 = 0xa;
    0x00012134 bl 0x10b1c                |         putchar (r0);
    0x00012138 ldr r3, [pc, 0x68]        |         r3 = "  --version                   output version information and exit";
    0x0001213c ldr r0, [pc, 0x68]        |         r0 = stdout;
    0x00012140 ldr r1, [r3]              |         r1 = "  --version                   output version information and exit";
    0x00012144 bl 0x10ca8                |         fputs (r0, "  --version                   output version information and exit");
    0x00012148 b 0x12070                 |         
                                         |     } while (1);
                                         | }

[*] Function fprintf used 3 times iconv